Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo Os três níveis da arquitetura ...
Transcript of Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo Os três níveis da arquitetura ...
Banco de Dados Parte 04
Ceça
Ceça Moraes2
Conteúdo Os três níveis da arquitetura Mapeamentos Arquitetura cliente-servidor
Ceça Moraes3
Arquitetura de um SGBD
Arquitetura ANSI/SPARC ANSI/SPARC Study Group on Database Management
Systems
Três níveis de abstração Nível InternoInterno ou FísicoFísico
Descreve o modo como os dados estão armazenados Nível ExternoExterno ou Lógico de UsuárioLógico de Usuário
Descreve o modo como os dados são vistos pelos usuários (visões)
Nível ConceitualConceitual ou Lógico ComunitárioLógico Comunitário Nível de simulação entre os dois anteriores; descreve
dados e relacionamentos entre eles
Ceça Moraes4
Arquitetura de um SGBD
Nível Externo(Visões de usuários individuais
Nível Conceitual(Visões Lógicas do Banco)
Nível Interno(Visões do meio de armazenamento)
Ceça Moraes5
Exemplo: BD de Funcionários
Esquema Conceitual FUNCIONARIO(NUMERO_FUNCIONARIO:string,
NOME_FUNCIONARIO:string,SALARIO:decimal) DEPARTAMENTO(NUMERO_DEPTO:string,
NOME_DEPTO:string) LOTACAO(NUMERO_FUNCIONARIO:string,
NUMERO_DEPTO:string) Esquema Físico
Relações guardadas como arquivos desordenados Índices na segunda coluna de FUNCIONARIO
Esquema Externo info_func(NOME_FUNCIONARIO:string,SALARIO:d
ecimal)
Ceça Moraes6
Exemplo: BD de Funcionários
Externo Java Externo Cobol
public class func { 01 FUNC
private String NOME; 02 NOME_F PIC X(29).
private double SAL; 02 SAL PIC 9(10,5).
Conceitual
FUNCIONARIO
NÚMERO_FUNCIONARIO CHARACTER (6)
NOME_FUNCIONARIO CHARACTER (29)
SALÁRIO NUMERIC(5)
Interno
FUNC_ARMAZENADO BYTES=46
PREFIXO TYPE=BYTE(6),OFFSET=0
FUN# TYPE=BYTE(6),OFFSET=6,INDEX=FUNX
FUNN TYPE=BYTE(29),OFFSET=12
PAGTO TYPE=FULLWORD,OFFSET=41
Ceça Moraes7
Mapeamentos entre os níveis
Os itens de dados têm nomes diferentes em certos pontos
O nome do funcionário nas visões... Java é NOME Cobol é NOME_F Conceitual é NOME_FUNCIONARIO Interna é FUNN O sistema deve estar ciente dessas
correspondências (mapeamento entre visões)
Ceça Moraes8
Mapeamentos
Aplicação Aplicação
Usuário 1 Usuário 2 Usuário n
Aplicação
EsquemaExterno A
EsquemaExterno B
Visão Externa A
Mapeamento externo/conceitual A
Mapeamento externo/conceitual B
SGBD
...
BD armazenado – Visão Interna
Visão Externa B
Mapeamento conceitual/interno
Definição da estrutura de
armazenamento Esquema
Interno
Esquema Conceitua
l
Visão ConceitualEsquemase mapeamentosconstruídos emantidospelo DBA
Ceça Moraes9
Linguagens
Linguagem depende do usuário Programação convencional Linguagem de Consulta (SQL)
É uma combinação de uma DDL (Data Definition Language) e uma DML (Data Manipulation Language)
Ceça Moraes10
Linguagem de Definição de Dados
(DDL) Fornece uma notação para definir o
esquema do banco de dados Ex: create table conta (
numero_conta char(10), saldo integer);
Compilador de DDL gera um conjunto de tabelas que são armazenadas em um dicionário de dados
Ceça Moraes11
Linguagem de Manipulação de
Dados (DML) Linguagem para acessar e manipular os
dados organizados por um modelo apropriado no BD
Também conhecida com linguagem de consulta
SQL Linguagem de consulta mais amplamente
utilizada Select,Insert,Update, Delete
Ceça Moraes12
Mapeamentos
Mapeamento conceitual/interno Um mapeamento Define a correspondência entre a visão
conceitual e o banco de dados fisicamente armazenado
Mapeamento externo/conceitual Vários, um para cada visão Define a correspondência entre uma visão
externa específica e a visão conceitual
Ceça Moraes13
SGBDProcessamentos nos
níveis Trata todos os acessos ao banco. Um usuário faz um pedido de acesso O SGBD intercepta o pedido e o analisa O SGBD inspeciona, por sua vez:
o esquema externo para esse usuário, o mapeamento externo/conceitual, o esquema conceitual, o mapeamento conceitual/interno e a definição da estrutura de armazenamento
O SGBD executa as operações necessárias sobre o banco de dados armazenado
Ambiente SGBD
Ceça Moraes14
Arquiteturas de acesso em
Camadas
Ceça Moraes16
Arquitetura de Aplicação Cliente-
Servidor Aplicações
Programas Ferramentas
Processadores de consultas
Geradores de relatório Extração de dados
AplicaçõesClientes
UsuáriosFinais
SGBDServidor
Dados
Cliente-Servidor
Ceça Moraes17
Cliente-Servidor
Ceça Moraes18
Cliente-Servidor 2 Camadas
Existe um padrão de estabelecer conexão com a aplicação e o SGBD, chamado Open Database Connectiviy(ODBC)
Na linguagem de programação Java é JDBC
simplicidade e a compatibilidade
Ceça Moraes19
Cliente-Servidor 2 Camadas
Ceça Moraes20
Cliente-Servidor 2 Camadas
Ceça Moraes21
Ceça Moraes22
Cliente-Servidor 3 Camadas (Web)
Clientes
UsuáriosFinais
Aplicações AplicaçõesAplicações
WEBWEB
SGBDServidor
Dados
Módulos do SGBD
Ceça Moraes23
Interação entre Módulos do SGBD
O BD e o dicionário de dados são armazenados em disco acesso ao disco é controlado
principalmente pelo sistema operacional (SO)
Módulo de gerenciamento dos dados armazenados do SGBD controla o acesso aos dados e dicionário
Ceça Moraes24
Interação entre Módulos do SGBD
O gerenciador de dados armazenados pode usar os serviços do SO para executar a transferência de dados entre o disco e a memória principal do computador
O gerenciador controla a manipulação dos buffers na memória Uma vez que o dado está nos buffers da memória
principal, pode ser processado por outros módulos do SGBD
Ceça Moraes25
Interação entre Módulos do SGBD
O compilador DDL processa as definições do esquema e as armazena (metadados) no dicionário
O dicionário inclui nomes e tamanhos dos arquivos nomes e tipos de itens de dados, detalhes de armazenamento de arquivos informações de mapeamentos entre esquemas restrições
Ceça Moraes26
Interação entre Módulos do SGBD
processador de banco de dados em tempo de execução (runtime) controla o acesso ao banco de dados em
tempo de execução, recebe os comandos para a recuperação
ou atualização e os executa no banco de dados
Os acessos passam pelo gerenciador de dados armazenados
27
Interação entre Módulos do SGBD
O compilador de pesquisa (query) manipula as consultas de alto nível que são feitas interativamente
analisa a sintaxe, compila ou interpreta a consulta e então gera as chamadas ao processador em tempo de execução para executar o código
Ceça Moraes28
Iterações entre Módulos do SGBD
O pré-compilador extrai os comandos DML dos programas escritos em uma linguagem de programação
Esses comandos são enviados para o compilador DML para compilação, gerando códigos para o acesso ao banco de dados..
Ceça Moraes29
Ceça Moraes30
Referências & Leitura
Navathe – Capítulo 2
Date – Capítulo 2