Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Tecnologias de acesso á base de dados

No description
by

Hugo Pereira

on 2 April 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Tecnologias de acesso á base de dados

Arquitetura
Poo
Construção do interface de base de dados
Tecnologias de acesso á base dados
Metodos de acesso a base de dados
Temos várias tipos de bases de dados como :
Mysql,Oracle, Sybase, MSQL, PostgreSQL ou qualquer outra com ligação ODBC
ODBC - ( é um padrão para acesso a sistemas gerenciadores de bases de dados)
PHP
Para que o php possa fazer ligação com qualquer base de dados, ele precisa de 3 comandos básicos:
- Um que faz a ligação com o servidor
- Um que seleciona a base de dados que o utilizador deseja
- Um que executa uma "query" SQL.
1 - O endereço do servidor, o nome do utilizador e a password para a ligação. A função retorna um valor inteiro, que é o identificador da ligação estabelecida e deverá ser armazenado numa variável para ser utilizado depois.
Quando fizer a ligação, o identificador da ligação fica armazenado na variável $ligação.
Nas outras base de dados os comandos sao diferentes no entanto usam o mesmo padrão.
ASP
C#
VB.net
Outras linguagens/ ligação á BD
<%
Set cnnDB = Server.CreateObject("ADODB.Connection")
cnnDB.ConnectionString = "driver=MySQL ODBC 3.51 Driver;server=mysql01.redehost.com.br;uid=utilizador;pwd=senha;database=base_de_dados"
cnnDB.Open
%>
MySqlConnection _connection = new MySqlConnection("Server=servidor; Database=nomeBase;Uid=utilizador;Pwd=senha");
_connection.Open();
Dim _connection As New MySqlConnection("Server=servidor; Database=nomeBanco;Uid=usuario;Pwd=senha")
_connection.Open()
Acesso a base de dados
As arquitecturas tradicionais de acesso a base de dados,foram desenvolvidas para acesso em rede local,nestas
arquicteturas,o programa estabelece uma conexão e assim que é carregado, envia comandos através da mesma,normalmente em linguagem sql.
Componentes ADO e SQL
ADO: componentes genéricos para acesso com drivers OLE/DB, como Access, Microsoft SQL Server e Oracle.
ADOCommand
Este objeto está associado a um comando SQL e a uma conexão.
ADODataReader
Este objeto está associado a um conjunto de resultados de uma query ou stored procedure. Ele é criado pelo método Execute do ADOCommand.
ADOConnection
Este objeto gerencia uma conexão ao servidor de base de dados ou à fonte de dados.

Cada cópia do objeto corresponderá a uma conexão distinta á base de dados. O controle de transação é feito a nível deste objeto.
COMANDOS da Biblioteca ADO
Exemplo de uso do ADOCommand
ADOCommand Cmd = new AdoCommand(“select * from products”, Cnx);
Este comando é normalmente usado para criar, adicionar, apagar, procurar ou então fazer atualização de algo na base de dados.
Exemplo de uso do ADODataReader
ADOCommand Cmd = new AdoCommand(...);
ADODataReader DR;
Cmd.Execute(out DR);
O ADODataReader contém vários métodos e propriedades para navegar no conjunto de resultados. Os principais são:


Método Read(): Lê um registo, move o “apontador de registro” para o registro seguinte e retorna false se chegou ao final;

GetXXX: Vários métodos que lêem o valor de um campo, dependendo de seu tipo, por exemplo, GetString(0).



ADOConnection Cnx = new ADOConnection(string de conexão);
- Abra uma conexão
- Para estabelecer uma conexão com a fonte de dados, devemos criar um objeto.


- A string de conexão é qualquer “string de conexão ODBC”
- Fecha-se uma conexão Quando nós termina-nos de trabalhar com a nossa base de dados,devemos utilizar o método Close para libertar a conexão e recursos alocados. Iremos provavelmente usar um try/finally.


Quando terminamos de trabalhar com o ADODataReader, nós devemos utilizar o método Close para libertar os recursos alocados. Iremos usar um try/finally.
Só podemos mover o registo corrente para a frente, ainda assim, apenas na medida que estiver a ler.

Não é possivel mover o registo para posições arbitrárias.

Não é possivel alterar o conjunto de resultado.

O ADODataReader serve essencialmente para ler completamente
o resultado de uma query SQL SELECT. Esta é uma situação
bastante comum durante o desenvolvimento.
SQLCommand
Este comando é normalmente usado para criar, adicionar, apagar, procurar ou então fazer atualização de algo na base de dados.
SQLDataReader
O SQLDataReader contém vários métodos e propriedades para navegar no conjunto de resultado. Os principais são:
Comandos Biblioteca SQL
No SQL o padrão é o mesmo, basta trocar o "ADO" por "SQL" e o resto da sintaxe é a igual .
Como por exemplo termos
ADOCommand cmd = new ado
command ("select*from products", Cnx")

SQLCommand cmd = new sqlcommand ("select*from products", Cnx")
Método Read(): Lê um registo, move o “apontador de registo” para o registo seguinte e retorna false se chegou ao final;

GetXXX: Vários métodos que lêem o valor de um campo, dependendo de seu tipo, por exemplo, GetString(0).
Quando nós terminamos de trabalhar com o SQLDataReader, nós devemos utilizar o método Close para libertar os recursos alocados(lidos). iremos usar um try/finally.
Só podemos mover o registo corrente para a frente, ainda assim, apenas na medida que estiver a ler.

Não é possivel mover o registo para posições arbitrárias

Não é possivel alterar o conjunto de resultado.

O SQLDataReader serve essencialmente para ler completamente o resultado de uma query SQL SELECT. Esta é uma situação bastante comum durante o desenvolvimento.
SQLConnection
SQLConnection Cnx = new SQLConnection(string de conexão);
- Abra uma conexão
- Para estabelecer uma conexão com a fonte de dados, devemos criar um objeto.


- A string de conexão é qualquer “string de conexão ODBC”
- Fecha-se uma conexão quando nós termina-nos de trabalhar com a nossa base de dados. Nós devemos utilizar o método Close para libertar a conexão e os recursos alocados. Iremos provavelmente usar um try/finally.


Este objeto gerencia uma conexão ao servidor de base de dados ou à fonte de dados. Cada cópia do objeto corresponderá a uma conexão distinta á base de dados. O controle de transação é feito a nível deste objeto.
COMANDOS da Biblioteca SQl
O que é?
É um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos.
É um conceito das ciências e da epistemologia (a teoria do conhecimento) que define um exemplo típico ou modelo de algo.
paradigma
Poo
- Programação de orientação a objetos
Em POO, implementa-se um conjunto de classes que definem os objetos presentes.Cada classe determina o comportamento e estados possíveis dos seus objetos, assim como o relacionamento com outros como C++, C♯, VB.NET, Java entre outras linguagens...
Consultas avançadas
Manipulação de registos
INSERT INTO NOME_DA_TABELA (coluna1, coluna2, coluna3, ....colunaN)
VALUES (valor1, valor2, valor3, ..., valorN);


Através da instrução Insert, podemos adicionar uma ou mais linhas para uma tabela do banco de dados:
Utilizar a instrução Insert
Dentro da secção da instrução Values, podemos utilizar os seguintes valores em conjunto, ou não, com as seguintes funções:



Insert:

INSERT INTO CLIENTES (codigo,nome, idade) VALUES (1, 'Natália da Silva', '12');
INSERT INTO CIDADES (CODCIDADE, CODPAIS, NOMECIDADE) VALUES (4, 55, 'Lisboa');
INSERT INTO ITENS VALUES (1, 13, 200.87);


No parâmetro Nome_da_Tabela, podemos especificar tanto o nome de uma tabela da base de dados, como também de uma View atualizável. Caso não especifiquemos o nome das colunas que receberão valores dentro da instrução Insert, o servidor da base de dados utilizará todas as colunas da tabela informada.


Através da instrução Insert, podemos inserir várias linhas a partir de um único comando:

INSERT INTO NOME_DA_TABELA_DESTINO (
coluna1, coluna2, coluna3, ...., colunaN)
SELECT (coluna1, coluna2, coluna3, ..., colunaN)
FROM NOME_DA_TABELA_ORIGEM;



Inserindo várias linhas
A instrução Select, precisa ter o mesmo número de colunas listadas da expressão Insert.

Caso o nome das colunas não seja informado, o Select precisa retornar um resultado que possua o mesmo número de colunas que a tabela onde os dados serão inseridos.


INSERT INTO CIDADE_PT
SELECT * FROM CIDADE;

INSERT INTO OBJETOS (CODIGO, NF, QUANT)
SELECT (CODIGO, NUM_NF, QUANT)
FROM OBJETOS_VALIDOS
WHERE NUM_NF = 15;

INSERT INTO CLIENTES (CODIGO, NOME, FONE, ENDERECO)
SELECT (COD_CLI, NOME, FONE_CLI, END_CLI)
FROM CLIENTES_INATIVOS;



Utilizar a instrução update
Para atualizar os valores armazenados em registos existentes na tabela, devemos utilizar o comando Update:


UPDATE NOME_DA_TABELA
SET COLUNA1 = VALOR1, COLUNA2 = VALOR2, COLUNA3 = VALOR3, ...., COLUNAN = VALORN
WHERE CONDICOES;
Adicionar, Alterar e Remover Dados
Para inserir, alterar ou apagar dados nas tabelas da base, através de instruções SQL, devemos utilizar os comandos Insert, Update e Delete. Através desses três comandos, manipulamos as informações em uma ou mais tabelas da base de dados.



·Valores gerais como números, strings ou data;

·Função Cast: Para converter um valor de um tipo para outro durante a operação de inserção;

·Função Upper: Para converter uma string que está ser inserida para maiúscula;

·Função Gen_Id: Normalmente utilizada com Generators para geração de um valor único;

·Valor Null: Para inserção de nulo para a coluna durante a operação de inserção do registro;

·User: Comando utilizado para inserir o nome do utilizador conectado na base de dados;

·Variável: Podemos inserir variáveis ou parâmetros através de Stored Procedures ou Triggers;


O programador utiliza uma interface de programação comum para todas as bases de dados.
Uma interface comum é normalmente conseguida através da existência de drivers por SGBD (como é o caso do ODBC)
O que é SGBD?
Sistema de Gerenciamento de bases de dados
A linguagem Java oferece, através da Java Application Programming Interface (Java API), vários conjuntos de pacotes de classes com funcionalidades específicas.
A comunicação entre o SGB MySQL e a aplicação Java é realizada através da API Java Database Connectivity (JDBC), que fornece uma maneira simples de aceder registos através de comandos em (SQL)
Criar um objecto Statement
Na linguagem Java é necessário criar um objecto Statement para enviar comandos à base de dados.
Um objecto Statement é criado a partir do objecto Connection
Statement statement = con.createStatement();
Enviar um comando SQL
Podem ser utilizados os seguintes métodos para enviar um comando SQL:
Método 1
Boolean execute(string sql)
Return true se o resultado é um objecto ResultSet, false se é uma contagem de updates.
Exemplo:
String sql=”SELECT col1, col3 FROM tabela1”;
ResultSet rs = statement.execute(sql);
If (hasResultSet) rs = statement.getResultSet(sql);
Else c = statement.getUpdateCount(sql);

Método 2
método 3
Processar o resultado
ResultSet executeQuery (String sql)
Este método envia queries (consultas) à base de dados e retorna um objecto ResultSet que contém os dados produzidos pela query SQL.
Int executeUpdate(String sql)
Este método permite fazer modificações na base de dados com os comandos INSERT, UPDATE ou DELETE, e retorna o número de linhas.
O processamento do objecto ResultSet retornado pela execução de uma query (consulta) à base de dados é efectuado linha a linha, usando o método next.
Exemplo:
While (resultSet.next())
System.out.println(resultSet.getInt(1)+” “+ resultSet.getString(3);
Posicionado numa linha, o objecto ResultSet fornece vários métodos get[tipo] que têm como argumento o índice da coluna (as colunas têm índices a partir de 1), ou o nome da coluna, e retornam o resultado no tipo especificado no método get.
SQL: componentes exclusivos para acesso a Microsoft SQL Server, com melhor performance.
Introdução
Conclusão
Irei falar sobre os métodos de ligação á base de dados, a sua arquitectura de componentes de a acesso a base de dados,construção
de interface a base de dados
manipulação de registos e consultas avançadas em linguagem
POO(Programação e Orientação a Objetos)

Com este trabalho concluo que existem
várias maneiras de acessar numa base, como com php, asp, C# entre outras,na parte da arquitectura de acesso a base de dados, estas
foram desenvolvidas para acesso em rede local, acerca da construção do interface da base de dados utilizamos Java, e sabemos que ao usar o Java API, oferece-nos vários conjuntos de pacotes de classes com funcionalidades específicas*
*na manipulação de registos temos
o
Insert, Update e Delete ao
qual expliquei como cada um
funciona e por fim as consultas avançadas em POO(Programação e Orientação de Objetos), que implementa-se um conjunto de classes que definem os objetos presentes.
Delete
O delete como o nome ja
diz serve para apagar registos de uma tabela que pertence a uma base de dados.
DELETE FROM nome_tabela
WHERE coluna = valor;
DELETE FROM fornecedor
WHERE francisco='Microsoft';
API
Uma API é uma interface bem-definida que permite
que um componente de software acesse através do seu
código a outro componente, e isto é suportado pela
linguagem de programação.
Exemplo
- Um sistema operacional possui uma grande quantidade de funçõesna API, que permitem ao programador criar janelas, acessar arquivos, criptografar dados etc.

- Mas as APIs dos sistemas operacionais costumam ser dissociadas de tarefas mais essenciais, como a manipulação de blocos de memória e acesso a dispositivos.

- Essas tarefas são atributos do núcleo de sistema e raramente são programáveis.
mysqli_connect(<’host_da_BD’>,<’Nome_de_utilizador’>,<’Password’>);
O comando mysqli_connect permite estabelecer a ligação à base de dados pretendida
$ligax=mysqli_connect('localhost','root'); //Ligação ao MySQL
Arquitectura de acesso ODBC
- Cada fabricante de SGBD que deseje que a sua Base de Dados possa ser utilizada por aplicações que utilizem ODBC tem que implementar um driver que obedeça as especificações da ODBC.

- O driver deve implementar toda ou parte de API (application programming interface/ conjunto de funções de programação) da ODBC.
Existem dois tipos de arquitectura de acesso a bases de dados através de JDBC.
No tipo de arquitectura da direita o driver conecta-se à base de dados e instruções SQL em nome do programa Java. Os resultados são enviados do driver para o gestor de drivers e finalmente para a aplicação.
No tipo de arquitectura da esquerda o driver JDBC comunica com um driver ODBC através de uma “ponte”. Um driver JDBC pode comunicar com múltiplos drivers ODBC. Os drivers ODBC executam as instruções SQL para a base de dados e os resultados são enviados pela sequência contrária até chegarem à aplicação Java.
Full transcript