Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo Os três níveis da arquitetura ...

Post on 21-Apr-2015

110 views 4 download

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