Edson Silva edsoncs@gmail.com BD / ADO. NET Edson Silva edsoncs@gmail.com.

Slides:



Advertisements
Apresentações semelhantes
Criando aplicações WEB
Advertisements

Ana Paula B. Barboza Ivana Xavier Rodrigues
Tópicos em Banco de Dados
Banco de Dados I Aula 20.
ADO.NET (cont.). 1 Acesso a Bases de DadosADO.NET Namespace System.Data Modos de aceder à informação OLE DB – namespace System.Data.OleDb SQL - namespace.
ASP.NET e ADO.NET.
Tecnologia de Programação BD em.Net: Conexão com SQL Server 1º Semestre 2009 > PUCPR > BSI Bruno C. de Paula.
BD em.NET: Passo a passo conexão com SQL Server 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Prof. Alessandro J. de Souza
Java Conexão com Banco de Dados
Banco de Dados SQL TRIGGERS (Gatilhos)
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
Sistemas de Informação Redes de Computadores
Maurício Edgar Stivanello
Motor de Armazenamento
Sistema Gerenciador de Banco de Dados SGBD
Linguagens de Programação Orientadas a Objetos
Banco de Dados Oracle AESO.
Introdução à Engenharia da Computação
Material III-Bimestre Wagner Santos C. de Jesus
MySQL Gerdson de Araújo Silva Universidade Federal de Alagoas Maceió-AL, 21 de maio de 2009.
Introdução a JDBC Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1.
Banco de dados Profª Kelly Medeiros.
Administração de Sistemas de Informação Banco de Dados
Python Persistência de Dados
Acesso a Base de Dados JDBC Trabalho Realizado por:
Tecnologias Web ADO.NET
Rodrigo Cristiano Silva
Prof. Eduardo Mantovani Prof. Fábio de P. Santos AES 2007.
ADO.NET Framework INE 5612 – DSOOII
XIV Jornada de Cursos .NET com C# Antônio Carlos Bruno Inojosa.
Aula 7 Prof. Naércio Filho Técnico em Informática
Banco de Dados II Prof. Antônio Cordeiro.
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Programação Orientada a objetos II
JSP / Servlets Avançado
XIII Jornada de Cursos .NET com C# Lucas Mello Flávio Almeida.
Prof. Rodrigo de Matos Vargas
Linguagem Técnica de Programação VI
FaculdadePitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Sistemas Gerenciadores de Banco de Dados Prof.: Fernando Hadad Zaidan.
JDBC Java Database Connectivity. JDBC Especificação para uso de base de dados em aplicações e applets JAVA; API para uso de drivers JDBC; Compatível com.
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Linguagem de Definição de Dados
Programação Orientada à Objetos
A abordagem de banco de dados para gerenciamento de dados
Configuração do Ambiente de programação
Academia de Ensino Superior 2007 O Ciclo de Dados.
SQLite Banco de Dados II.
Ricardo Ferreira Schiavo
Bruno Inojosa MCP.NET Framework.NET com C#. SQL Básico.
Banco de Dados I I Comandos SQL
Controle de Concorrência
Acesso a Bases de Dados ADO.NET. Namespace System.Data Modos de aceder à informação OLE DB – namespace System.Data.OleDb SQL - namespace System.Data.SqlClient.
Conceitos básicos Professor Esp. Diego André Sant’Ana
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
Leo Silva Leonardo Murta Luiz Viana Persistência em Java.
UCSal – Bacharelado em Informática
Plano de Ensino Conceitos e Características Tipos de Banco de Dados
Acessando banco de dados com JAVA.  Linguagem independente de plataforma; ◦ “Write once, run anywhere” ◦ JVM  Java Virtual Machine  Mecanismo que permite.
Bancos de Dados Sistema de Banco de dados – sistema de manutenção de registros por computador. É considerado como uma sala.
Programação para Web I AULA 2 BANCO DE DADOS.
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
UFCD_ 133 E-Direito Formadora: Ana Atayde Trabalho realizado por Joaquim Vieira e Vítor Vieira.
Persistência de dados e padrão DAO
Banco de Dados Marcio Ferreira da Silva. PHP e Banco de Dados Uma das facilidades do PHP é na utilização dos bancos de dados. O MySQL é um banco de dados.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin/Mauricio Universidade de Mogi das Cruzes.
Atividade ASP.NET Portal da Memoria Atividade Desenvolver uma aplicação ASP.NET com funcionalidade similar à existente no site centenário.ifrn.edu.br utilizando.
Transcrição da apresentação:

Edson Silva edsoncs@gmail.com BD / ADO. NET Edson Silva edsoncs@gmail.com

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

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.

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.

Modelo Relacional Tabelas Registros Colunas Chave Relacionamentos

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

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.

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

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.

Provedores de Dados – Data Provider Componentes do Provedor de Dado XxxConnection – SqlConnection, etc XxxTransaction – SqlTransaction, etc XxxException – SqlException, etc XxxError – SqlError, etc XxxCommand –SqlCommand, etc XxxParameter –SqlParameter, etc XxxDataReader –SqlDataReader, etc XxxDataAdapter –SqlDataAdapter, etc XxxPermission –SqlClientPermission, etc

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.

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

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 http://www.connectionstrings.com possui strings para diversas fontes

Exemplo para SQL Server: Data Source=servidor; Initial Catalog=banco; 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;

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.

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

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

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

DataSet DataSet Tables DataTable Rows DataRow DataRelation Constraint ForeignKeyConstraint http://adoguy.com

Acesso Desconectado DataSet Os recursos não são alocados para o processamento dos dados Abrir a conexão Preencher o DataSet Fechar a conexão Manipular o DataSet Atualizar dados SqlDataAdapter SqlConnection SQL Server 7.0 (e posterior)

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

Acesso Desconectado XxxDataAdapter SelectCommand UpdateCommand InsertCommand DeleteCommand XxxDataReader XxxCommand XxxCommand XxxCommand XxxCommand XxxConnection sp_SELECT sp_UPDATE sp_INSERT sp_DELETE

Acesso Desconectado DataColumn DataRow DataTable Constraints DataRelation

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.

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();

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

Execução de Comandos (Conectado) Executando comando de consulta string query = @"SELECT 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();

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).