Banco de Dados e Acesso a Dados - PowerPoint PPT Presentation

About This Presentation
Title:

Banco de Dados e Acesso a Dados

Description:

Title: Databases and Data Access Author: Stephen J. Howard, Mark Sapossnek, Charlie Ferebee Keywords: ado data access data sql Last modified by: Funda o Instituto ... – PowerPoint PPT presentation

Number of Views:113
Avg rating:3.0/5.0
Slides: 74
Provided by: StephenJ48
Category:
Tags: acesso | ambiente | banco | dados

less

Transcript and Presenter's Notes

Title: Banco de Dados e Acesso a Dados


1
Banco de Dados e Acesso a Dados
  • Prof.Dr. Antonio Geraldo da Rocha Vidal
  • EAD-5881 - Tecnologia de Informática
  • FEA/USP

2
Bancos de Dados Databases
  • Virtualmente todos os aplicativos interessantes
    exigem um armazenamento de dados estruturado e
    persistente.
  • E-Commerce registrar um pedido, entregar um
    pedido etc.
  • Recursos Humanos dados de pessoal, salários e
    benefícios.
  • Vendas pedidos, produtos, cobranças e
    pagamentos.
  • CRM dados de e sobre clientes.
  • Pesquisas dados primários, dados secundários,
    resultados etc.
  • As necessidades de armazenamento de dados variam
    de acordo com o tipo de aplicativo
  • Processamento de Transações (Transaction
    Processing - OLTP)
  • Processamento Analítico (Business
    Intelligence/Data Warehouse - OLAP
  • Web Sites e Enterprise Portals
  • Etc.

3
Bancos de Dados Requisitos
  • Permitir armazenar, consultar e modificar dados
  • Permitir mover, copiar e transformar dados
  • Permitir executar backup e recuperação de dados
  • Garantir a integridade dos dados
  • Ser escalável e estar sempre disponível
  • Atender a um grande número de usuários
  • Armazenar e processar enormes volumes de dados
  • Possuir alto desempenho com baixo tempo de
    resposta
  • Ser seguro
  • Permitir o desenvolvimento de aplicativos

4
Banco de DadosEvolução da Tecnologia
  • Baseado em arquivos
  • Hierárquico
  • Rede
  • Relacional (RDBMS)
  • Orientado a Objetos
  • XML (eXtensible Markup Language)

5
Bancos de Dados RelacionaisTabelas
  • Tabela (relação, entidade)
  • Uma coleção de dados sobre uma coisa específica
  • Organizada em linhas e colunas
  • Coluna (atributo, campo)
  • Descreve parte de uma entidade (p.ex. Nome)
  • Tem um tipo de dado (p.ex. integer, character,
    binary)
  • Pode ser nulo
  • Linha (tupla, registro)
  • Uma única instância de dados em uma tabela
  • Cada linha é única

ID Nome SobreNome
1 José Silva
2 Maria Santos
6
Bancos de Dados Relacionais Relacionando Dados
  • As tabelas podem ser relacionadas através de
    dados chave chave-primária x chave-estrangeira
    (p.ex. um livro possui um autor)
  • Chave-primária (primary-key ou PK)
  • Garante a unicidade de uma linha
  • Pode ser composta por uma ou mais colunas
  • Assegura a integridade da entidade
  • Chave-estrangeira (foreign-key ou FK)
  • Estabelece um relacionamento lógico entre tabelas
  • Uma ou mais colunas de uma tabela que coincidem
    com a chave-primária de outra tabela
  • Integridade referencial

7
Bancos de Dados Relacionais Relacionando Dados
  • O diagrama, esquema ou modelo relacional mostra
    as tabelas, colunas, chaves-primárias,
    chaves-estrangeiras e relacionamentos de um Banco
    de Dados.

Livro
IDLivro
IDAutor
Título
Gênero
Autor
IDAutor
Nome
Sobrenome
1
8N
Modelo de Dados
8
Bancos de Dados Relacionais Relacionando Dados
Tabela Livro
Chave-primária PK
IDLivro IDAutor Título Gênero
1 2 Minha vida como DBA Autobiografia
2 1 Database Handbook Referência
PK/FK Relacionamento
Chave-estrangeira FK
IDAutor Nome Sobrenome
1 José Silva
2 Maria Santos
Tabela Autor
9
Bancos de Dados RelacionaisTipos de
Relacionamentos
  • Um-para-Um (11)
  • Uma linha da tabela X casa com uma linha da
    tabela Y
  • Um Livro tem no máximo e no mínimo um Registro
    ISBN
  • Um-para-Muitos (1M)
  • Uma linha na tabela X casa com 0 ou linhas na
    tabela Y
  • Uma Editora publica um ou mais Livros
  • Muitos-para-Muitos (MN)
  • 1 ou linhas na tabela X casam com 1 ou linhas
    na tabela Y
  • Um Autor escreve um ou mais Livros Um Livro é
    escrito por um ou mais Autores.

10
Bancos de Dados RelacionaisRelacionamento MN
  • Mais complexo
  • Resulta em tabelas muito grandes ( com dados
    repetidos)
  • Difícil de assegurar a integridade de dados
  • Solução criar uma terceira tabela
  • A terceira tabela contém a chave-primária das
    duas tabelas originais em uma chave composta.
  • Os dados são repetidos na terceira tabela, mas
    não nas duas tabelas originais.

11
Bancos de Dados Relacionais Relacionamentos MN
Os dados são duplicados aqui
12
Bancos de Dados Relacionais Normalização/Desnorma
lização
  • Normalização
  • O processo de dividir poucas tabelas grandes em
    muitas tabelas pequenas
  • Meta minimizar redundância de dados, maximizar
    precisão
  • Melhora o desempenho para atualizações
  • Desejável em aplicações transacionais
  • Desnormalização
  • O processo de combinar muitas tabelas pequenas em
    poucas tabelas grandes.
  • Meta melhorar o desempenho
  • Introduz redundância de dados
  • Melhora o desempenho para consultas
  • Desejável em aplicações analíticas e data
    warehouse

13
Bancos de Dados Relacionais Junções
  • Uma junção é um modo de combinar dados de
    múltiplas tabelas, normalmente utilizando os
    relacionamentos entre chaves-primárias e
    chaves-estrangeiras.

Tabela Distribuidor
Tabela Produto
Distrib.
Contato
Estado
Custo
Distrib.
Produto
Pontual
Maria A.
SP
10
Pontual
CD
Anglo
José P.
MG
5
Pontual
VHS
8
Anglo
Game
25
Anglo
DVD
14
Bancos de Dados Relacionais Junções
  • O resultado de uma junção natural.

Distrib.
Estado
Contato
Custo
Produto
Maria A.
SP
Pontual
10
CD
Maria A.
SP
Pontual
5
VHS
Anglo
MG
José P.
8
Game
Anglo
MG
José P.
25
DVD
15
Bancos de Dados Relacionais Structured Query
Language - SQL
  • Linguagem padrão para acesso a um banco de dados
    relacional, padronizada pelo American National
    Standards Institute (ANSI) SQL-92
  • Aberta, mas não realmente
  • As funções mais comuns são geralmente as mesmas
    entre os diversos produtos existentes.
  • A maioria dos produtos têm extensões
    proprietárias.
  • Subconjuntos da SQL
  • Data Definition Language (DDL)
  • Data Manipulation Language (DML)
  • Data Control Language (DCL)

16
Bancos de Dados Relacionais DDL Exemplos
  • Usada para criar e modificar objetos de banco de
    dados.

CREATE DATABASE Livraria
CREATE TABLE Livro ( LivroID INT
IDENTITY(1,1) PRIMARY KEY, Titulo
VARCHAR(40) NOT NULL, DatPub DATE NOT
NULL, Descricao VARCHAR(80), Genero
INT NOT NULL )
17
Bancos de Dados Relacionais DML Exemplos
  • Selecionar dados a serem consultados.

SELECT FROM Autor
SELECT AutorID, Nome, SobreNome FROM Autor
SELECT AutorID, Nome, SobreNome, Telefone
FROM Autor WHERE Cidade São Paulo
SELECT Nome, SobreNome, Telefone FROM Autor
WHERE AutorID 249
18
Bancos de Dados Relacionais DML Exemplos
  • Inserir, atualizar e excluir dados.

INSERT INTO Livro (Titulo, DatPub, Descricao,
Genero) VALUES (Projeto de Banco de Dados,
GETDATE(), Como construir um Banco de
Dados, 3)
UPDATE Autor SET Telefone 3091-1234
WHERE AutorID 5
DELETE FROM Autor WHERE AutorID 5
19
Bancos de Dados Relacionais DCL Exemplos
  • Configura opções de segurança em objetos de banco
    de dados.

GRANT INSERT, UPDATE, DELETE ON Autor TO
Maria, José
REVOKE CREATE TABLE FROM José
DENY ALL ON Autor, Livro TO Salete
20
Bancos de Dados Relacionais Views (Visões)
  • Uma view é uma tabela virtual.
  • Abstrai as estruturas das tabelas relacionadas.
  • Abstrai uma consulta possivelmente complexa.
  • Fornece abstração quanto à segurança.
  • No MS SQL Server, uma view pode ser
  • Indexada
  • Atualizada (alteração e inserção de dados)

21
Bancos de Dados Relacionais Exemplo de Definição
de View
CREATE VIEW Pedidos AS SELECT p.PedidoID,
c.Nome FROM Cliente c INNER JOIN Pedido p
ON c.ClienteID p.ClienteID ORDER BY
p.PedidoID
22
Bancos de Dados Relacionais Exemplo de
Utilização de Views
SELECT FROM Pedidos WHERE Nome 'Meu Melhor
Cliente'
PedidoID Nome
101 Meu Melhor Cliente
137 Meu Melhor Cliente

23
Bancos de Dados Relacionais Stored
Procedures(Procedimentos Armazenados)
  • Um grupo de comandos SQL que é armazenado e
    executado dentro do banco de dados.
  • Não faz parte do SQL padronizado.
  • Fornece grande desempenho.
  • Pode controlar acesso a dados.
  • Pode aceitar parâmetros.
  • Pode retornar diversos tipos de dados
  • Parâmetros de saída
  • Valores de retorno
  • Conjuntos de dados de retorno

24
Bancos de Dados Relacionais Stored Procedure
CREATE PROCEDURE HistPedidos _at_ClienteID
nchar(5) AS SELECT NomeProduto,
TotalSUM(Quantidade) FROM Produto P, Itens
Pedidos IP, Pedido P, Cliente C WHERE
C.ClienteID _at_ClienteID AND C.ClienteID
P.ClienteID AND P.PedidoID IP.PedidoID AND
IP.ProdutoID P.ProdutoID GROUP BY NomeProduto
25
Bancos de Dados Relacionais Stored Procedure
exec HistPedidos ACNIELSEN'
NomeProduto Total
Papel A4 6
Cartucho HP 692C 21
... ...
26
Bancos de Dados Relacionais Stored Procedure
  • Use o comando RETURN para retornar o status
  • 0 é o padrão no MS SQL Server
  • Só pode ser numérico
  • Use parâmetros OUTPUT para retornar resultados

RETURN 1
CREATE PROCEDURE MinhaProcedure _at_ValRetorno INT
OUTPUT ... SELECT _at_ValRetorno NomeColuna FROM
Tabela
27
Bancos de Dados Relacionais Triggers (Gatilhos)
  • Como as stored procedures, triggers são conjuntos
    de comandos SQL que são armazenados e executados
    dentro do banco de dados.
  • Porém, não são diretamente chamados por um
    usuário.
  • São executadas quando uma determinada modificação
    de dados ocorrer (INSERT, UPDATE ou DELETE)
  • Garante a execução de regras de negócio.
  • FOR AFTER a trigger é executada depois que a
    ação de atualização especificada for completada.
  • FOR INSTEAD OF a trigger é executada no lugar da
    ação de atualização especificada.

28
Bancos de Dados Relacionais Transações
  • Transação uma seqüência de comandos SQL que
    constitua uma unidade lógica de trabalho.
  • Deve aderir às propriedades ACID
  • Atômica todos os comandos são executados com
    sucesso ou todos falham.
  • Consistente deve deixar os dados em um estado
    consistente quando completada.
  • Isolada não pode ver as modificações feitas por
    outras transações simultâneas.
  • Durável deve ser permanente quando completada,
    até no caso de queda do sistema.

29
Bancos de Dados Relacionais Concorrência
  • Níveis de isolamento
  • Read Uncommitted
  • Read Committed
  • Repeatable Read
  • Serializable
  • Tradeoffs (concorrência vs. integridade de dados)
  • Bloqueios
  • Asseguram a integridade de transações e a
    consistência do banco de dados.
  • Evitam que os usuários vejam dados fantasmas.
  • Podem resultar em deadlocks (paralisações).

30
Acesso a DadosIntrodução
  • ODBC (Open Database Connectivity)
  • Interoperabilidade para vários sistemas
    gerenciadores de banco de dados (DBMS).
  • API largamente aceita.
  • Usa SQL como linguagem de acesso a dados.
  • DAO (Data Access Objects)
  • Interface de programação para bancos de dados
    JET/ISAM.
  • Usa automação (ActiveX, OLE automation).
  • RDO (Remote Data Objects)
  • Versão mais sofisticada e otimizada do ODBC.
  • Desenvolvido especialmente para bancos de dados
    cliente/servidor.

31
Acesso a DadosIntrodução
  • OLE DB
  • Amplo acesso a dados, relacionais e outros.
  • Construído através da tecnologia COM
  • Não restrito à SQL para a recuperação de dados
  • Pode utilizar drives ODBC.
  • Interface de baixo-nível (C).
  • ADO (ActiveX Data Objects)
  • Interface simples, orientada a objetos e baseada
    em componentes.
  • Fornece um modelo de programação para o OLE DB
    acessível fora do C.

32
ADO TradicionalEstrutura de Acesso
Aplicação
ADO
OLE DB
ODBC Provider
Simple Provider
Native Provider
OLE DB Provider
ODBC
OLE DB Provider
ODBC Driver
TextFile
Mainframe
Database
Database
33
ADO TradicionalCaracterísticas
  • ADO foi projetado através de um modelo conectado,
    firmemente acoplado.
  • Apropriado para arquiteturas cliente/servidor.
  • Principalmente relacional (XML é hierárquico).
  • Porém, o projeto dos objetos não foi bem
    definido
  • Há muitas formas para se fazer a mesma coisa.
  • Os objetos tentam fazer coisas demais.
  • Não foi originalmente projetado para trabalhar em
    ambiente distribuído, de múltiplas camadas.

34
ADO.NETMetas do ADO.NET
  • Projeto mais bem acabado.
  • Altamente escalável através de um modelo
    desconectado e robusto.
  • Rico suporte a XML (hierárquico além do
    relacional).
  • Acesso de dados sobre HTTP.
  • Mantém o modelo de programação do ADO.
  • Mantém o ADO disponível via interoperabilidade
    .NET vs. COM.

35
ADO.NETProvedores
  • Combina ADO e OLEDB em uma só camada.
  • Cada provedor contém um conjunto de classes que
    implementa interfaces comuns.
  • Implementações de provimento gerenciável
  • ADO fornece acesso a qualquer fonte de dados
    compatível com OLE DB.
  • SQL Server fornece desempenho otimizado quando
    for usado o MS SQL Server ou o Oracle.
  • Exchange recupera e atualiza dados no Microsoft
    Exchange.

36
ADO.NETProvedores Gerenciáveis
Aplicação
ADO.NET
SQL Managed Provider
ADO Managed Provider
OLE DB Provider
SQL ServerDatabase
Database
37
ADO.NETEstilos de Acesso a Dados
  • Somente-para-frente, somente-leitura
  • A aplicação envia uma consulta e depois lê e
    processa os resultados.
  • Cursor tipo mangueira ou duto de comunicação
  • Objeto DataReader
  • Desconectado
  • A aplicação envia uma consulta e depois recupera
    e armazena os resultados para processamento.
  • Minimiza tempo conectado ao banco de dados.
  • Objeto DataSet

38
ADO.NETLigações de Dados (Data Binding)
  • Componente chave de formulários Web.
  • Uso flexível e fácil
  • Liga ou anexa uma propriedade de um controle a
    uma informação em qualquer tipo de fonte de
    dados.
  • Fornece controle sobre como os dados vêm e
    voltam.
  • Controles simples para exibir um único valor.
  • Controles complexos para exibir estruturas de
    dados.

ltaspLabel runatserver Text'lt Pedidos(0).Nome
gt'/gt
39
Classes ADO.NET IDbConnection Interface
  • Cria uma conexão única com uma fonte de dados
    (data source).
  • Implementada pelas classes SqlDbConnection e
    OleDbConnection
  • Funcionalidade
  • Abre e fecha conexões
  • Inicia transações
  • A classe IDbTransaction fornece métodos Commit e
    Rollback
  • Usada em conjunto com objetos IDbCommand e
    IDataAdapter.
  • Propriedades adicionais, métodos e coleções
    dependem do provedor de dados.

40
Classes ADO.NET IDbCommand Interface
  • Representa um comando a ser enviado para a fonte
    de dados (data source).
  • Normalmente, mas não necessariamente em SQL.
  • Implementado pelas classes OleDbCommand e
    SqlCommand.
  • Funcionalidade
  • Define o comando a ser executado
  • Executa o comando
  • Passa e recupera parâmetros
  • Cria uma versão compilada do comando
  • ExecuteReader retorna linhas
  • ExecuteNonQuery não retorna nada
  • ExecuteScalar retorna um único valor
  • Propriedades adicionais, métodos e coleções
    dependem do provedor de dados.

41
Classes ADO.NET IDataReader Interface
  • Somente para frente (forward-only), somente
    leitura (read-only) acesso tipo mangueira ou
    duto a uma série de dados.
  • Implementado pelas classes SqlDataReader e
    OleDbDataReader.
  • Criado através do método ExecuteReader da classe
    IDbCommand.
  • Operações associadas com o objeto IDbConnection
    são desabilitadas até que o leitor seja fechado.

42
Classes ADO.NET DataReader Exemplo
string sConnString ProviderSQLOLEDB.1
User IDsaInitial CatalogMeuBanco
Data SourceMeuServidor OleDbConnection
sqlCon new OleDbConnection(sConnString) sqlCon.
Open() string sQueryString SELECT NomeCliente
FROM Cliente OleDbCommand sqlCmd new
OleDbCommand(sQueryString, sqlCcon) OleDbDataRead
er sqlReader sqlCmd.ExecuteReader() while
(sqlReader.Read()) Console.WriteLine(sqlReade
r.GetString(0)) sqlReader.Close() sqlCon.Close
()
43
Classes ADO.NET Demonstração DataReader
44
Classes ADO.NET System.Data.OleDb Namespace
  • Provedor gerenciado para uso com provedores de
    dados OLEDB
  • SQLOLEDB (SQL Server) usa System.Data.SQL
  • MSDAORA (Oracle)
  • JOLT (Jet)
  • OLEDB para provedores ODBC
  • Classes OleDbConnection, OleDbCommand e
    OleDbDataReader
  • Classes para tratamento de erros
  • Classes para pool de conexões

45
Classes ADO.NET Demonstração OleDb Data Access
46
Classes ADO.NET System.Data.SqlClient Namespace
  • Provedor gerenciado nativo para o SQL Server
  • Construído com TDS (Tabular Data Stream) para
    alto desempenho com o SQL Server
  • Classes SqlConnection, SqlCommand e
    SqlDataReader.
  • Classes para
  • Tratamento de erros
  • Pool de conexões (implicitamente habilitadas por
    definição)
  • System.Data.SqlTypes fornece classes para tipos
    de dados nativos do SQL Server.

47
Classes ADO.NET Demonstração Stored Procedure
48
Classes ADO.NET System.Data Namespace
  • Contém os principais classes do ADO.NET.
  • O DataSet desconectado é sua classe central.
  • Suporta todos os tipos de aplicativos
  • Internet
  • ASP.NET (C, VB.NET e JavaScript)
  • XML
  • Windows
  • C
  • VB.NET

49
Classes ADO.NET System.Data Namespace (cont.)
  • Contém classes usadas por ou derivadas de
    provedores gerenciados
  • IDbConnection
  • IDbCommand
  • IDbDataReader

50
Classes ADO.NET DataSet
  • Uma coleção de tabelas
  • Não possui conhecimento da fonte de dados
  • Mantém todos os relacionamentos entre as tabelas
  • Modelo de programação rico (possui objetos para
    tabelas, colunas, relacionamentos, e assim por
    diante)
  • Lembra-se do estado original e atual dos dados
  • Pode modificar dinamicamente dados e metadados
  • O formato para serialização nativo é o XML
  • Localizada no pacote System.Data

51
Classes ADO.NET DataSet
DataSet
DataTable
DataColumn
DataRow
DataRelation
52
Classes ADO.NET Demonstração Atualização via
DataSet
53
Classes ADO.NET DataTable
  • Objeto na memória representando uma tabela
  • Colunas
  • Linhas
  • Esquema definido por coleção de colunas
  • A integridade de dados é provida através de
    objetos Constraint
  • Eventos públicos
  • Modificar / excluir linhas (registros)
  • Modificar colunas

54
Classes ADO.NET DataColumn
  • Bloco de construção fundamental de um esquema
    DataTable (contido na coleção de colunas).
  • Define que tipo de dados pode ser aceito (via
    propriedade DataType).
  • Outras propriedades importantes incluem
    AllowNull, Unique, e ReadOnly.
  • Pode conter Constraints (coleção na DataTable).
  • Pode conter Relações (coleção no DataSet).

55
Classes ADO.NET DataRow
  • Representa dados em uma DataTable (contida em
    coleção de linhas).
  • Segue o esquema definido por objetos DataColumns.
  • Possui propriedades para determinar o estado das
    linhas (por exemplo, nova, alterada, excluída, e
    assim por diante).
  • Todas as adições e modificações são atualizadas
    (committed) através do método AcceptChanges do
    objeto DataTable.

56
Classes ADO.NET DataRelation
  • Relaciona duas DataTables via DataColumns.
  • O valor DataType de ambas DataColumns deve ser
    idêntico.
  • Atualizações podem ser cascateadas para
    DataTables filhas.
  • As modificações que invalidam a relação não são
    permitidas.

57
Classes ADO.NET IDataAdapter Interface
  • Popula ou envia atualizações para um DataSet
  • Implementado por OleDbDataAdapter e
    SqlDataAdapter.
  • Não conectado.
  • Representa uma abordagem assíncrona.
  • Um super conjunto de um objeto command.
  • Contém quatro objetos de comandos padrão para
    Select, Insert, Update, e Delete.

58
Classes ADO.NET DataSet Exemplo
string sConnString Persist Security
InfoFalse User IDsaInitial
CatalogNorthwind Data
SourceMEUSERVIDOR SqlConnection sqlCon new
SqlConnection(sConnString) sqlCon.Open() string
sqlString SELECT NomeEmpresa FROM
Cliente SqlDataAdapter sqlDataAdapter new
SqlDataAdapter() DataSet sqlDataSet new
DataSet() sqlDataAdapter.SelectCommand new
SqlCommand(sqlString, sqlCon) sqlDataAdapter.Fill
(sqlDataSet) slqCon.Close()
59
Classes ADO.NET Criando um DataSet via Código
  • Criação do DataSet
  • Definição das tabelas

DataSet dataset new DataSet() dataset.DataSetNa
me Autores DataTable autor new
DataTable(Autor) DataTable livro new
DataTable(Livro)
60
Classes ADO.NET Criando um DataSet via Código
  • Definição das colunas
  • Definição das chaves

DataColumn id autor.Columns.Add("ID",
typeof(Int32)) id.AutoIncrement
true autor.PrimaryKey new DataColumn
id DataColumn nome new
autor.Columns.Add("Nome",typeof(String)) DataCol
umn isbn livro.Columns.Add("ISBN",
typeof(String)) livro.PrimaryKey new
DataColumn isbn DataColumn titulo
livro.Columns.Add("Titulo",typeof(String)) DataC
olumn idautorlivro.Columns.Add(idAutor,typeof(I
nt32)) DataColumn foreignkey new
DataColumn idautor
61
Classes ADO.NET Criando um DataSet via Código
  • Adição das tabelas no DataSet

dataset.Tables.Add (autor) dataset.Tables.Add
(livro)
62
Classes ADO.NET Criando um DataSet via Código
  • Adição de dados e gravação do DataSet

DataRow vidal autor.NewRow() vidal"Nome"
Antonio Geraldo da Rocha Vidal" autor.Rows.Add(v
idal) DataRelation autorlivro new
DataRelation(AutorLivro",
autor.PrimaryKey, foreignkey) dataset.Relati
ons.Add(autorlivro) DataRow clipper
livro.NewRow() clipperidAutor"
vidal"ID" clipper"ISBN" "1000-XYZ" clipper
"Titulo" Clipper 5.0" livro.Rows.Add(clipper
) dataset.AcceptChanges()
63
Classes ADO.NET Demonstração DataSet
64
Classes ADO.NET DataSets Tipados
  • DataSet tipados
  • Derivados da classe DataSet
  • Usam esquemas XML para gerar novas classes
  • Tabelas, colunas, etc. compiladas em novas classes

DataSet.Customers.FirstName
  • DataSet não tipados
  • Não possuem esquema de construção automático
  • Tabelas, colunas, etc. são expostas como coleções

DataSet.TablesCustomers.Rows0FirstName
65
Classes ADO.NET Erros e Exceções
  • Classe Error
  • Contém informações sobre um erro ou advertência
    retornada por uma fonte de dados.
  • Criada e administrada pelas classes Errors
  • Classe Errors
  • Contém todos os erros gerados por um adapter
  • Criada pela classe Exception
  • Classe Exception
  • Criada sempre que um erro acontece
  • Sempre contém pelo menos uma instância de Erro

66
Classes ADO.NET Exemplo de Erros e Exceções
try DataTable minhaTabela new DataTable()
minhaTabela.Columns.Add(minhaColuna)
minhaTable.Columns.Add(minhaColuna) //
Oops!! catch (DataException myException)
Console.WriteLine ("Mensagem "
minhaException.Message "\n" Fonte "
minhaException.Source "\n"
Rastreamento " minhaException.StackTrace
"\n")
67
Classes ADO.NET Demonstração DataException
68
Referências
  • Introdução ao ADO
  • http//msdn.microsoft.com/msdnmag/issues/1100/adop
    lus/adoplus.asp
  • ADO.NET
  • http//msdn.microsoft.com/library/default.asp?URL
    /library/dotnet/cpguide/cpconaccessingdata.htm
  • ADO Guides the Evolution of the Data Species
  • http//msdn.microsoft.com/library/techart/adoplus.
    htm
  • ADO.NET for the ADO Programmer
  • http//msdn.microsoft.com/library/techart/adonetde
    v.htm
  • ADO Rocks and Rolls in .NET Applications
  • http//msdn.microsoft.com/library/welcome/dsmsdn/d
    ata02222001.htm
  • Meditando sobre OLE DB e .NET
  • http//msdn.microsoft.com/library/welcome/dsmsdn/d
    ata03222001.htm

69
Referências
  • Reading Data Reader Secrets
  • http//msdn.microsoft.com/library/welcome/dsmsdn/d
    ata04122001.htm
  • Database-like Data Containers
  • http//msdn.microsoft.com/library/default.asp?URL
    /library/welcome/dsmsdn/data04122001.htm
  • ADO
  • http//msdn.microsoft.com/library/default.asp?URL
    /library/psdk/dasdk/ados4piv.htm
  • Universal Data Access
  • http//www.microsoft.com/data/
  • SQL Server
  • http//www.microsoft.com/sql/default.asp

70
Bibliografia
  • Profissional ADO.NET Programando, Paul Dickinson
    et all, Editora Alta Books, Rio de Janeiro, 2002
  • SQL Server 2000 Completo e Total, Jeffrey
    Shapiro, Makron Books, São Paulo, 2002

71
ApêndiceADO vs. ADO.NET
  • ADO é uma camada de automação mais lenta sobre
    OLE DB para uso com Visual Basic, etc.
  • ADO.NET fornece acesso direto e rápido a dados a
    partir de qualquer linguagem.
  • ADO.NET essencialmente fundiu OLE DB e ADO em uma
    única camada.

72
ApêndiceADO Tradicional vs. ADO.NET
Característica ADO ADO.NET
Representação de dados residentes na memória Usa RecordSet, que pode conter apenas uma tabela Usa o DataSet, que pode conter uma ou mais tabelas representadas por DataTables
Relacionamento entre múltiplas tabelas Requer executar JOINs com tabelas Realiza através do objeto DataRelation
Acesso aos dados Percorre seqüencialmente as linhas de um RecordSet Uma o paradigma de navegação para acesso não seqüêncial
Acesso disconectado Fornecido pelo RecordSet mas tipicamente suporta o acesso conectado Comunica-se através de chamadas padronizadas com o DataAdapter
73
ApêndiceADO Tradicional vs. ADO.NET
Característica ADO ADO.NET
Programação Usa o objeto Connection para transmitir comandos Usa programação baseada em documentos XML
Compartilhamento de dados desconectados entre camadas e componentes Usa objetos COM para transmitir um RecordSet desconectado Transmite um DataSet através de um arquivo XML
Transmissão de dados através de Firewalls Problemática pois os firewalls são tipicamente configurados para não permitir acesso a nível de sistema Suportada através de objetos DataSet que usam arquivos XML, que podem passar através firewalls
Escalabilidade Manutenção de conexões com bancos de dados ativas por longos períodos. Acesso desconectado a bancos de dados sem exigir bloqueios de dados.
Write a Comment
User Comments (0)
About PowerShow.com