Fundação Centro de Análise, Pesquisa e Inovação Tecnológica Instituto de Ensino Superior - FUCAPI SISTEMAS DE BANCOS DE DADOS: CONCEITOS E ARQUITETURA Disciplina: Banco de Dados Prof: Márcio Palheta, Esp. Manaus - AM
ROTEIRO Conceitos Básicos três-esquemas Independência de Dados Centralizada e Cliente/Servidor Básicas para SGBDs Referência 15/02/2011 2
CONCEITOS BÁSICOS Esquemas ou conotação é a intitulação dada a descrição do banco de dados O esquema é definido durante o projeto do banco de dados e não se espera que seja alterado frequentemente (por ser complexo) A apresentação do esquema é denominado de diagrama esquemático Mostra alguns aspectos do esquema como os nomes dos tipos de registros (Objetos) e itens de dados (Atributos) 15/02/2011 3
CONCEITOS BÁSICOS Diagrama Esquemático para BD ALUNO Nome Matricula Turma Curso Atributos CURSO Nome Numero Creditos Departamento DISCIPLINA Identificador NumeroCurso Semestre Ano Instrutor Cada objeto do esquema (ALUNO, CURSO...) é um construtor do esquema 15/02/2011 4
CONCEITOS BÁSICOS Há alguns aspectos que não são especificados no diagrama esquemático Exemplo: não exibe o tipo de dado de cada item de dado nem o relacionamento entre os diversos arquivos Lembrando que o dado no banco de dados pode ser alterado frequentemente, ao contrário do esquema do banco 15/02/2011 5
CONCEITOS BÁSICOS Os banco de dados em um determinado momento, são chamados de estados do banco de dados ou instantâneo (snapshot) Também chamado de conjunto corrente de ocorrências ou instâncias O estado do banco de dados muda a cada alteração realizada Ao se criar um banco de dados, o estado corrente é o estado vazio 15/02/2011 6
CONCEITOS BÁSICOS O estado inicial do banco de dados se dar no momento em que o banco é populado ou carregado com dados iniciais O SGBD é parcialmente responsável por assegurar que cada estado do BD seja um estado válido O SGBD armazena as descrições dos construtores do esquema e suas restrições (metadados) no catálogo do SGBD 15/02/2011 7
ARQUITETURA TRÊS-ESQUEMAS
ARQUITETURA TRÊS-ESQUEMAS O estudo da arquitetura e da independência de dados exige o conhecimento de três das quatro características importantes da abordagem com uso de banco de dados 1. Separação de programas e dados (independência de dados e operação de programa) 2. Suporte a múltipla visões (views) de usuários 3. Uso de catálogo para armazenar a descrição do banco de dados (esquema) 15/02/2011 9
ARQUITETURA TRÊS-ESQUEMAS O objetivo da arquitetura de três-esquemas (ANSI/SPARC) é separar o usuário da aplicação do banco de dados físico 15/02/2011 10
ARQUITETURA TRÊS-ESQUEMAS Usuários Finais M a p e a m e n t o NÍVEL EXTERNO Mapeamento externo/conceitual NÍVEL CONCEITUAL Mapeamento conceitual/interno NÍVEL INTERNO Visão Externa Esquema Conceitual Esquema Interno Visão Externa 15/02/2011 11
ARQUITETURA TRÊS-ESQUEMAS O NÍVEL INTERNO descreve a estrutura de armazenamento físico do banco de dados Utiliza modelo de dado físico e descreve detalhes completos do armazenamento de dados e caminhos de acesso ao banco de dados 15/02/2011 12
ARQUITETURA TRÊS-ESQUEMAS O NÍVEL CONCEITUAL descreve a estrutura de todo banco de dados para a comunidade de usuários (modelo de dados de alto nível) Oculta detalhes das estruturas de armazenamento físico e se concentra na descrição de entidades; Tipos de dados; Conexões; Operações de usuários; Restrições 15/02/2011 13
ARQUITETURA TRÊS-ESQUEMAS O NÍVEL EXTERNO ou visão (view) abrange a visão do usuário Cada esquema externo descreve a parte do banco de dados que um determinado grupo de interesse O esquema externo oculta partes do banco de dados para um determinado grupo sem permissão Tipicamente é implementado através de um modelo de dados representacional (alto nível) 15/02/2011 14
ARQUITETURA TRÊS-ESQUEMAS A arquitetura de três-esquemas é uma ferramenta conveniente com a qual o usuário pode visualizar os níveis do esquema em um sistema de banco de dados A maioria dos SGBDs não separa os três níveis completamente, mas suporta a arquitetura de três-esquemas de alguma forma 15/02/2011 15
ARQUITETURA TRÊS-ESQUEMAS Observe que os três esquemas são apenas descrições dos dados; na verdade, o dado que existe de fato está no nível físico A comunicação entre os níveis se dá através do processo de transformação de solicitações e resultados (mapeamentos) 15/02/2011 16
INDEPENDÊNCIA DE DADOS
INDEPENDÊNCIA DE DADOS É capacidade de mudar o esquema em um nível do sistema de banco de dados sem que ocorram alterações graves do esquema no próximo nível mais alto Exemplo: Nível mais alto NÍVEL EXTERNO NÍVEL CONCEITUAL NÍVEL INTERNO Nível mais baixo 15/02/2011 18
INDEPENDÊNCIA DE DADOS É possível definir dois tipos de independência de dados: 1. Independência lógica de dados 2. Independência física de dados 15/02/2011 19
1. Independência lógica de dados É a capacidade de alterar o esquema conceitual sem grande mudanças ou nenhuma no esquema externo ou os programas Exemplo: Expandir o banco (adicionando um tipo de registro ou item de dados) Reduzir o banco (removendo um tipo de registro ou item de dados) 15/02/2011 20
1. Independência lógica de dados Somente a definição da visão e os mapeamentos precisam ser alterados em um SGBD que suporta a independência lógica dos dados Após uma reorganização lógica no esquema conceitual, os programas que utilizam os construtores do esquema externo devem funcionar como antes da reorganização As alterações nas restrições podem ser aplicadas ao esquema conceitual, sem afetar os esquemas externos ou os programas 15/02/2011 21
1. Independência lógica de dados Histórico Escolar NumAluno IdDiscplina Nota 17 112 A Diagrama Esquemático Conceitual Histórico Escolar Nome NumAluno IdDiscplina Nota NumCurso Smith 17 112 A CC1310 Histórico Escolar Nome NumAluno IdDiscplina Nota Semestre Ano Smith 17 112 A Primeiro 2010 15/02/2011 22
2. Independência física de dados É a capacidade de alterar o esquema interno sem grande mudanças ou nenhuma no esquema conceitual ou os programas As mudanças no esquema interno podem ser necessárias para que alguns arquivos físicos possam ser reorganizados Exemplo: Criação de estruturas de acesso adicionais para aperfeiçoar o desempenho da recuperação ou atualização de dados Se os mesmos dados permanecem como anteriormente no banco de dados, não deveríamos ter de alterar o esquema conceitual 15/02/2011 23
2. Independência física de dados Se criarmos uma rota de acesso (access path) para aumentar a velocidade de recuperação de registros de DISCIPLINAS por Semestre e Ano, não será preciso que uma consulta como 'listar todas as disciplinas oferecidas no segundo semestre de 1998' fosse alterada, embora a consulta pudesse ser executada de forma mais eficiente pelo SGBD por meio do novo caminho de acesso 15/02/2011 24
INDEPENDÊNCIA DE DADOS A independência de dados ocorre porque quando o esquema é alterado em algum nível, o esquema no próximo nível acima permanece sem mudanças Apenas o mapeamento entre os dois níveis é modificado A arquitetura de três-esquemas pode tornar mais fácil a independência de dados, tanto física quanto lógica 15/02/2011 25
INDEPENDÊNCIA DE DADOS Entretanto, os dois níveis de mapeamentos criam uma sobrecarga (overhead) durante a compilação ou a execução de uma consulta ou de um programa, provocando ineficiências no SGBD Por causa disso, poucos SGBDs têm implementadas toda a arquitetura de três-esquemas 15/02/2011 26
ARQUITETURA CENTRALIZADA E CLIENTE/SERVIDOR BÁSICA PARA SGBDs
Visão Geral Evolução da de um Sistema de Gerenciamento de Banco de Dados (SGBD) Sistemas pioneiros e monolíticos Bloco único Formando um Sistema Fortemente Integrado Pacotes de SW SGBD Cliente / Servidor Pacotes Modulares SGBD 15/02/2011 28
Visão Geral Motivação da Evolução Computadores grandes e Centralizados Mainframes substituídos Personal Computers PCs Estações de Trabalho Workstations Conectados Servidores Web Banco de Dados Arquivos Aplicações outros 15/02/2011 29
Centralizada Usadas pelos mainframes Processa TODAS as funções do sistema Inclui programas de aplicações e interfaces com os usuário Razão dos mainframes utilizar tal arquitetura Os usuários acessavam os banco de dados através de terminais Os terminais não tinha poder de processamento, apenas ofereciam a exibição das informações 15/02/2011 30
Centralizada Mainframes de processamento Terminais de acesso Executa remotamente e envia a exibição aos terminais 15/02/2011 31
Centralizada Terminais Monitor de vídeo Monitor de vídeo Monitor de vídeo Software Progs. de Aplicações Controle de Terminais Editores de texto SGBD Compiladores CPU HW/Firmware Sistema Operacional Barramento S do sistema (bus) Controlador Memória Controlador Disco Controlador Impressora / gravador 15/02/2011 32
s Cliente/Servidor Básicas As funcionalidades do sistema são distribuídas em dois módulos 1. Módulo Cliente 2. Módulo Servidor 15/02/2011 33
s Cliente/Servidor Básicas Módulo Cliente Projetado para ser executado em uma estação de trabalho ou PCs Processa programas de aplicação e as interfaces de usuários que acessam o banco de dados Trata interação com o usuário e oferece uma interface amigável (formulários ou GUIs interface gráficas para usuários). Exemplo de GUIs são os menus 15/02/2011 34
s Cliente/Servidor Básicas Módulo Servidor Trata o armazenamento de dados; Trata da segurança do acessos; Trata as pesquisas; Trata a concorrência local Trata da recuperação de dados (buffer e caching) e outras funções 15/02/2011 35
s Cliente/Servidor de Duas Camadas para os SGBDs Do lado cliente estão as interfaces e programas de aplicações Do lado servidor estão as consultas e as funcionalidades de transações Nesse tipo de arquitetura os servidores são chamados de servidor de consulta ou servidor de transação 15/02/2011 36
s Cliente/Servidor de Duas Camadas para os SGBDs Quando o acesso ao SGBD é necessário O programa estabelece uma conexão com o programa do lado cliente Uma vez criada a conexão, o programa cliente pode comunicar-se com o SGBD 15/02/2011 37
s Cliente/Servidor de Duas Camadas para os SGBDs Um padrão denominado Open Database Connectivity (ODBC) fornece as interfaces para o programa de aplicação Geralmente os drivers ODBC são oferecidos pelos fornecedores do SGBDs. Exemplo: JDBC (aplicação Java) 15/02/2011 38
s Cliente/Servidor de Duas Camadas para os SGBDs As vantagens dessa arquitetura são A simplicidade A compatibilidade com os sistemas existentes Com a chegada da WWW (World Wide Web) mudou os papéis de cliente e servidores, direcionando-os para arquitetura de trêscamadas 15/02/2011 39
s Cliente/Servidor de Três Camadas para Aplicações Web Muitas aplicações para a Web usam uma arquitetura chamada arquitetura de três camadas que possui uma camada intermediária entre o cliente e o servidor de banco de dados Essa camada intermediária, ou camada do meio, é, algumas vezes, chamada servidor de aplicações ou servidor Web, dependendo da aplicação 15/02/2011 40
s Cliente/Servidor de Três Camadas para Aplicações Web O servidor Web papel armazena as regras de negócio (procedimentos ou restrições) que são usadas para acessar os dados do servidor de banco de dados Também pode incrementar a segurança do banco de dados checando as credenciais do cliente antes de enviar uma solicitação ao servidor de banco de dados 15/02/2011 41
s Cliente/Servidor de Três Camadas para Aplicações Web Cliente Gui Interface Web Servidor de Aplicação ou Servidor Web Programas de Aplicação Páginas Web Servidor de Banco de Dados Sistema de Gerenciamento de Banco de Dados 15/02/2011 42
REFERÊNCIAS ELMASRI, R., NAVATHE, S. B. Sistemas de Banco de Dados, 4ª Edição. Editora Pearson Addison Wesley. Ano 2005 15/02/2011 43