Banco de Dados
Parte 04
Ceça
Conteúdo
Os
três níveis da arquitetura
Mapeamentos
Arquitetura cliente-servidor
2
Ceça Moraes
Arquitetura de
um SGBD
Arquitetura ANSI/SPARC
ANSI/SPARC Study Group on Database Management
Systems
Três níveis de abstração
Nível Interno ou Físico
Nível Externo ou Lógico de Usuário
Descreve o modo como os dados são vistos pelos
usuários (visões)
Nível Conceitual ou Lógico Comunitário
3
Descreve o modo como os dados estão armazenados
Nível de simulação entre os dois anteriores; descreve
dados e relacionamentos entre eles
Ceça Moraes
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)
4
Ceça Moraes
Exemplo: BD de
Funcionários
5
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:
decimal)
Ceça Moraes
Exemplo: BD de
Funcionários
Externo Java
public class func {
private String NOME;
private double SAL;
Externo Cobol
01 FUNC
02 NOME_F PIC X(29).
02 SAL PIC 9(10,5).
Conceitual
FUNCIONARIO
NÚMERO_FUNCIONARIO
NOME_FUNCIONARIO
SALÁRIO
CHARACTER (6)
CHARACTER (29)
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
6
Ceça Moraes
Mapeamentos
entre os níveis
Os itens de dados têm nomes diferentes em
certos pontos
O nome do funcionário nas visões...
7
Java é NOME
Cobol é NOME_F
Conceitual é NOME_FUNCIONARIO
Interna é FUNN
O sistema deve estar ciente dessas
correspondências (mapeamento entre visões)
Ceça Moraes
Mapeamentos
Usuário 1
Usuário 2
Usuário n
Aplicação
Aplicação
Aplicação
Esquema
Externo B
Esquema Visão Externa A
Externo A
Mapeamento
externo/conceitual A
Esquemas
e
mapeamentos
construídos e
mantidos
pelo DBA
Mapeamento
externo/conceitual B
Esquema Visão Conceitual
Conceitual
SGBD
Mapeamento
conceitual/interno
Definição da
estrutura de
armazenamento
Esquema Interno
8
Visão Externa B
...
BD armazenado – Visão Interna
Ceça Moraes
Linguagens
Linguagem
depende do usuário
Programação convencional
Linguagem de Consulta (SQL)
9
É uma combinação de uma DDL (Data
Definition Language) e uma DML (Data
Manipulation Language)
Ceça Moraes
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
10
Ceça Moraes
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
11
Linguagem de consulta mais amplamente
utilizada
Select,Insert,Update, Delete
Ceça Moraes
Mapeamentos
Mapeamento
Um mapeamento
Define a correspondência entre a visão
conceitual e o banco de dados fisicamente
armazenado
Mapeamento
12
conceitual/interno
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 Moraes
SGBD
Processamentos
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:
13
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
Ceça Moraes
Ambiente
SGBD
14
Ceça Moraes
Arquiteturas de
acesso em
Camadas
Arquitetura de
Aplicação ClienteServidor
Usuários
Finais
Aplicações
Clientes
Aplicações
Programas
Ferramentas
Servidor
SGBD
Processadores de
consultas
Geradores de relatório
Extração de dados
Dados
16
Ceça Moraes
Cliente-Servidor
17
Ceça Moraes
Cliente-Servidor
18
Ceça Moraes
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
19
Ceça Moraes
Cliente-Servidor 2
Camadas
20
Ceça Moraes
Cliente-Servidor 2
Camadas
21
Ceça Moraes
Cliente-Servidor 3
Camadas (Web)
Usuários
Finais
Aplicações
Clientes
Aplicações
Aplicações
WEB
Servidor
SGBD
Dados
22
Ceça Moraes
Módulos do SGBD
23
Ceça Moraes
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
24
Ceça Moraes
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
25
Uma vez que o dado está nos buffers da memória
principal, pode ser processado por outros módulos
do SGBD
Ceça Moraes
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
26
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 Moraes
Interação entre
Módulos do SGBD
processador
de banco de dados em
tempo de execução (runtime)
27
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
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
28
Ceça Moraes
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..
29
Ceça Moraes
Referências &
Leitura
Navathe
Date
30
– Capítulo 2
– Capítulo 2
Ceça Moraes