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