A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

BD / ADO. NET Edson Silva CONTEÚDO Bases de Dados Relacionais (Vantagens) Bases de Dados Relacionais (Desvantagens) Modelo Relacional.

Apresentações semelhantes


Apresentação em tema: "BD / ADO. NET Edson Silva CONTEÚDO Bases de Dados Relacionais (Vantagens) Bases de Dados Relacionais (Desvantagens) Modelo Relacional."— Transcrição da apresentação:

1 BD / ADO. NET Edson Silva

2 CONTEÚDO Bases de Dados Relacionais (Vantagens) Bases de Dados Relacionais (Desvantagens) Modelo Relacional Acesso a Dados Arquitetura de Acesso a Dados na plataforma.NET Provedores de Dados Strings de Conexão Pool de Conexões Execução de Comandos Transações

3 Bases de Dados Relacionais (Vantagens) Resposta rápida aos pedidos de informação. Como os dados estão integrados numa única estrutura (a base de dados) a resposta a questões complexas processa-se mais velozmente. Acesso múltiplo. O software de gestão de base de dados permite que os dados sejam acedidos de diversíssimas maneiras. Nomeadamente, os dados podem ser visualizados através de pesquisas sobre qualquer um dos campos da tabela. Flexibilidade. Em consequência da independência entre dados e programas, qualquer alteração num desses elementos não implica modificações drásticas no outro. Integridade da informação. Dada a absoluta exigência de não permitir a redundância, as modificações de dados são feitas num só sítio, evitando-se assim possíveis conflitos entre diferentes versões da mesma informação. Melhor gestão da informação. Em consequência da localização central dos dados, sabe-se sempre como e onde está a informação.

4 Bases de Dados Relacionais (Desvantagens) A principal, e mais significativa, desvantagem dos sistemas de gestão de base de dados é o seu custo, não tanto em termos de preço do software de base, mas fundamentalmente em despesas de desenvolvimento Os custos resultantes duma má conceptualização são enormes. A construção duma base de dados deficiente tem consequências nefastas numa organização.

5 Modelo Relacional Tabelas Registros Colunas Chave Relacionamentos

6 Acesso a Dados (ADO) A tecnologia para acessar dados na plataforma.Net é formada por um conjunto de classes, interfaces, estruturas e enumerações do Framework.NET; Principais namespaces: System.Data System.Data.OleDb System.Data.Odbc System.Data.SqlClient System.Data.OracleClient System.Xml

7 Arquitetura da plataforma.NET A ADO.Net foi projetado para permitir versatilidade no acesso aos dados e centrada na representação dos dados no formato XML; A sua arquitetura permite dois tipos de acessos aos dados: Conectado e Desconectado; Os provedores de dados (Data Providers) são responsáveis por efetivamente acessar a fonte de dados, quer seja um banco de dados relacional, uma planilha do excel, um arquivo texto, uma classe de negócio, um webservice, etc.

8 Arquitetura da plataforma.NET API ADO.NET OLE DB.NET Data Provider OLE DB.NET Data Provider Fontes OLEDB (SQL Server 6.5) Outros Data Providers Outros Data Providers Oracle, Interbase, DB2, MySQL, etc SQL Server.NET Data Provider SQL Server.NET Data Provider SQL Server 7.0 (e posterior)

9 Provedores de Dados – Data Provider Implementação ADO.NET para acessar determinada fonte dados, tipicamente um SGBDR; Os namespaces System.Data.OleDb e System.Data.Odbc permitem acessar fontes de dados através dos mecanismos OleDb e Odbc respectivamente. Mas apresentam uma performance inferior em relação aos provedores especializados e somente devem ser utilizados quando for necessário independência de provedor; Os namespaces Data.SqlCliente e Data.OracleClient representam os provedores de dados especializados para o SQL Server e Oracle respectivamente; A depender do SGBD a ser utilizado será necessário obter o provedor de dados específico. Ex: DB2, Firebird, MySQL, Postgree, etc.

10 Provedores de Dados – Data Provider Componentes do Provedor de Dado XxxConnection – SqlConnection, etc Xxx Transaction – SqlTransaction, etc Xxx Exception – SqlException, etc Xxx Error – SqlError, etc XxxCommand –SqlCommand, etc Xxx Parameter –SqlParameter, etc XxxDataReader –SqlDataReader, etc XxxDataAdapter –SqlDataAdapter, etc XxxPermission –SqlClientPermission, etc

11 Pool de Conexões Gerencia a utilização das conexões com o SGBD; A função do pool de conexões é manter um conjunto de conexões com o SGBD e fornecê- las a camada de Negócio ou Acesso a Dados, evitando o overhead na abertura e fechamento de conexões; A abertura de novas conexões pode ser limitada e é feita sob-demanda quando não há conexões disponíveis; A utilização de pool de conexões é essencial em aplicações web e distribuída.

12 Pool de Conexões SGBD Pool de Conexões Componente de negócio Componente de Acesso a Dados...

13 Strings de Conexão Define os parâmetros para a realização de uma conexão com uma fonte de dados. É utilizada pela classe xxxConnection Parâmetros –SGBD –Banco de Dados –Usuário e Senha –Definição do Pool de Conexão –Timeout –Etc. O site possui strings para diversas fontes

14 Strings de Conexão Exemplo para SQL Server: Data Source=servidor; Initial Catalog=banco; User Id=usuario; Password=senha; Pooling=true; Max Pool Size=100; Min Pool Size=10; Connection Timeout=15;

15 Acesso Conectado É o modelo de acesso tradicional; A conexão com o SGBD é alocada enquanto durar as operações de manipulação dos dados; Apresenta maior performance que o modelo desconectado, mas pode acarretar deficiência na escalabilidade; Não é adequado para aplicações Web/Distribuídas com grande volume de acesso.

16

17 Acesso Conectado SQL Server 7.0 (e posterior) Os recursos são alocados até finalizar a operação 1.Abrir Conexão 2.Executar comandos 3.Utilizar o Reader 4.Fechar o Reader 5.Fechar a conexão SqlConnection SqlCommand SqlDataReader

18 Acesso Desconectado No modelo desconectado os dados são obtidos e armazenados em memória; O namespace System.Data contém as classes que representam as entidades do mundo relacional: Tabela = DataTable Campo = DataField Linha = DataRow Relacionamento = DataRelation Uma vez em memória os dados são manipulados e em seguida as alterações persistidas, através da abertura de uma nova conexão; Somente no momento da leitura e persitência a conexão é aberta com o SBGD

19 Acesso Desconectado Server Data Store Database Connection Stored Procedure DataSet DataTable

20 DataSet Tables DataTable Rows DataRow

21 Acesso Desconectado Os recursos não são alocados para o processamento dos dados 1.Abrir a conexão 2.Preencher o DataSet 3.Fechar a conexão 4.Manipular o DataSet 5.Abrir a conexão 6.Atualizar dados 7.Fechar a conexão SqlConnection SqlDataAdapter DataSet SQL Server 7.0 (e posterior)

22 Acesso Desconectado Data source DataAdapter DataTable DataSet DataAdapter Fill Update Fill Update

23 Acesso Desconectado sp_SELECT XxxCommand SelectCommandUpdateCommandInsertCommandDeleteCommand XxxDataAdapter XxxCommand XxxConnection sp_UPDATEsp_INSERTsp_DELETE XxxDataReader

24 Acesso Desconectado DataRow DataColumn DataTable DataRelation Constraints

25

26 Execução de Comandos O ADO.NET é orientado a objetos e possui classes representando os elementos necessários para acessar a camada de dados; Existem classes representando os elementos comuns no acesso aos dados: conexão, comandos SQL, parâmetros, transações, etc A execução de comandos é simples, intuitiva e produtiva; É necessário utilizar os namespace do Data Provider a ser utilizado; Uma aplicação corporativa normalmente utiliza ambos o modelos de acesso a dados: Conectado e Desconectado.

27 Execução de Comandos (Conectado) Abrindo e Fechando a conexão // Obtendo a string de conexão do arquivo de configuração string stringDeConexao = ConfigurationSettings.AppSettings["STRING_CONEXAO"]; // Instanciando a conexão SqlConnection con = new SqlConnection(stringDeConexao); // Abrindo a conexão con.Open(); // // Executando comandos // // Fechando a conexão con.Close();

28 Executando comando de atualização com parâmetros string insertCliente INTO cliente (cpf, nome) SqlCommand cmd = new SqlCommand(insertCliente, con); // Adicionando SqlParameter p1 = new P1.Value = " "; cmd.Parameters.Add(p1); // Adicionando SqlParameter p2 = new p2.Value = "José Maria R Santos Júnior"; cmd.Parameters.Add(p2); // Executando o comando cmd.ExecuteNonQuery(); Execução de Comandos (Conectado)

29 Executando comando de consulta string query cli.nome, con.numero, con.saldo, con.data_abertura FROM cliente cli INNER JOIN conta con ON con.codigo_cliente = cli.codigo"; SqlCommand cmd = new SqlCommand(query, con); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { string nome = reader["nome"].ToString(); int conta = Convert.ToInt32(reader["numero"]); decimal saldo = Convert.ToDecimal(reader["saldo"]); DateTime dt = Convert.ToDateTime(reader["data_abertura"]); Console.WriteLine(nome + ", " + conta + ", " + saldo + ", " + dataAbertura.ToString("dd/MM/yyyy")); } // Fechando o DataReader (Importante) reader.Close();

30 Transações Uma transação garante que um grupo de comandos SQL seja executado com sucesso ou desfeito em caso de falha; Possui as seguintes características Atomicidade, Consistência, Isolamento e Durabilidade (ACID).


Carregar ppt "BD / ADO. NET Edson Silva CONTEÚDO Bases de Dados Relacionais (Vantagens) Bases de Dados Relacionais (Desvantagens) Modelo Relacional."

Apresentações semelhantes


Anúncios Google