Roteiro Conceitos e Arquitetura de Sistemas de Banco de Dados Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto [email protected] www.decom.ufop.br/luiz BCC321 - Banco de Dados I Ementa 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Conceitos básicos em sistemas de banco de dados. Conceitos e arquitetura de sistemas de banco de dados. Modelagem conceitual de dados. Modelo Relacional: conceitos básicos e restrições de integridade. Linguagens: álgebra e cálculo relacional. A linguagem SQL e o uso de APIs. Projeto de banco de dados. Normalização de banco de dados. Noções de processamento de transações, concorrência e recuperação de falhas. Aspectos de implementação de banco de dados. Posicionamento Conceitos: Modelos de Dados, Esquemas e Instâncias Arquitetura para os Sistemas de Banco de Dados Linguagens de Banco de Dados e Interfaces Módulos Componentes do SGBD Arquiteturas Centralizada e Cliente/Servidor para os SGBDs Conceitos e Arquiteturas de Sistemas de Banco de Dados Modelos de Dados, Esquemas e Instâncias I Modelos de dados: conjunto de conceitos que podem ser usados para descrever a estrutura de um banco de dados. I Permitem a abstração dos dados. I Estrutura de um banco de dados: tipos de dados, relacionamentos e restrições pertinentes aos dados (+ conjunto de operações para especicar como recuperar e modicar a base de dados). I Esquema: descrição (textual ou gráca) da estrutura de um banco de dados de acordo com um determinado modelo de dados. I Construtor do esquema: cada objeto do esquema. I Diagrama esquemático: ilustração que mostra alguns aspectos do esquema. I Instância: conjunto de dados armazenados em um banco de dados em um determinado instante de tempo. Diagrama Esquemático de um Banco de Dados Instância do Banco de um Dados Esquemas e Instâncias Categorias de Modelos de Dados I Esquema: I Denido durante o projeto do banco de dados. I Armazenado no catálogo do banco de dados. I Espera-se que I não seja alterado com frequência. Estado do banco de dados: I I O SGBD é parcialmente responsável por assegurar que cada estado do banco de dados seja I I instância do banco de dados. Inicialmente temos o estado vazio (sem nenhum dado). A cada atualização de dados alteramos o estado do banco de dados. I Também conhecido como I Classicação de acordo com os tipos de conceitos utilizados: válido. I Alto nível ou modelos de dados conceituais. Modelos de dados representativos ou de implementação. Baixo nível ou modelos de dados físicos. Categorias de Modelos de Dados Modelos de dados conceituais I I I I Utilizam conceitos que descrevem os dados como os usuários os percebem. Conceitos: entidades, atributos e relacionamentos. Independente de aspectos de implementação em um SGBD. Exemplos: Categorias de Modelos de Dados Modelos de dados representativos (lógicos) I I I I Modelo relacional. I Modelo entidade-relacionamento (ER). I Modelo hierárquico. I Modelo orientado a objetos (OO). Categorias de Modelos de Dados Oferecem conceitos para a descrição a estrutura de um banco de dados da forma como será manipulado através do SGBD. Ocultam alguns detalhes de armazenamento de dados. Exemplos: I Modelo de rede. Arquitetura para os Sistemas de Banco de Dados Características importantes da abordagem com uso de BD: I I Modelos de dados físicos I I I Utilizam conceitos que descrevem os detalhes de como os dados estão sicamente armazemados. Conceitos: formato dos registros, ordem dos registros e os caminhos de acesso. Independência de dados e programas; Suporte a múltiplas visões de usuários; Uso de catálogo. Arquitetura proposta para realização e visualização dessas características. Arquitetura de Três-Esquemas (ANSI/SPARC) I I Objetivo: separar as aplicações do usuário do banco de dados físico. Os esquemas são denidos por três níveis. A Arquitetura Três-Esquemas A Arquitetura Três-Esquemas Nível externo I Esquema externo ou visão de usuário: descreve a parte do BD que um grupo de usuários tem interesse e oculta o restante do banco desse grupo. Nível conceitual I Esquema conceitual: descreve a estrutura de todo o BD. Oculta detalhes de armazenamento físico e se concentra na descrição de entidades, tipos de dados, relacionamentos etc. Nível interno I Esquema interno: descreve a estrutura de armazenamento físico do banco de dados. I Utiliza um modelo de dados físico e descreve os detalhes completos de armazenamento de dados e caminhos de acesso ao banco de dados. A Arquitetura Três-Esquemas I A maioria dos SGBDs não separa os três níveis completamente: Independência de Dados I I Alguns SGBDs incluem detalhes do nível físico no esquema conceitual. I Na maioria dos SGBDs os esquemas externos são especicados com o mesmo modelo de dados que descreve a informação no nível conceitual. I É a capacidade de mudar o esquema em um nível do sistema de banco de dados sem que ocorram alterações do esquema no próximo nível mais alto. O SGBD usa software para realizar os mapeamentos entre os níveis. Independência de Dados Tipos de independência de dados: Independência de Dados Lógica É a capacidade de alterar o esquema conceitual sem mudar o esquema externo ou os programas. Exemplo: modicar o esquema conceitual para expandir o BD (adicionando um item de dados). Linguagens de Banco de Dados O SGBD deve oferecer linguagens e interfaces apropriadas para cada categoria de usuários I I Usada pelo DBA e projetistas para denir os esquemas. I Linguagem de Denição de Armazenamento (Storage Denition Language SDL) I Utilizada para especicar o esquema interno em SGBDs onde uma clara separação é mantida entre os níveis Independência Física de Dados É a capacidade de mudar o esquema interno sem ter que alterar o esquema conceitual. Exemplo: criação de estruturas de acesso adicionais para melhorar o desempenho da recuperação ou atualização de dados. Linguagem de Denição de Dados (Data Denition Language DDL) conceitual e interno. I Linguagem de Denição de Visões (View Denition Language VDL) I Em uma verdadeira arquitetura três-esquemas: terceira linguagem (VDL) para especicar as visões dos usuários e seus mapeamentos para o esquema conceitual. I Na maioria dos SGBDs a DDL é usada para denir os esquemas conceitual e externo. Linguagens de Banco de Dados Continuação... I Linguagem de Manipulação de Dados (Data Manipulation Language DML) Linguagens de Banco de Dados Continuação... I language ). dos dados. I DML = sublinguagem de dados. I Tipos de DMLs: I I Alto nível (ou não procedural ou declarativas): os usuários especicam quais dados recuperar sem especicar como obtê-los. Nível baixo (ou procedural): requerem que o usuário especique que dados são necessários e como obtê-los. Se comandos DML forem embutidos em um programa de linguagem de propósito geral: I Linguagem de propósito geral = linguagem hospedeira (host I Usada para recuperação, inserção, remoção e modicação I Se comandos DML (de alto nível) forem utilizados de maneira isolada e interativa: I DML = linguagem de consulta (query language ). I SQL = DDL + VDL + DML + comandos para especicações das restrições. Interfaces I Interfaces Baseadas em Menus. I I Menus que guiam o usuário durante a formulação da I entendê-las. I Se a interpretação da solicitação for bem sucedida, a Baseadas em Formulários. interface gera uma consulta de alto nível correspondendo à solicitação da linguagem natural. I Um formulário para cada grupo de usuário. I O usuário pode preencher todos os campos do formulário de I entrada para inserir um novo dado. Para Usuários Parametrizáveis. I Usuários parametrizáveis: caixas de banco. I O usuário pode preencher somente alguns campos e o I Comandos são adaptados com o objetivo de minimizar o SGBD recuperar os dados faltantes para os campos vazios. I Baseadas em Linguagem Natural. I Aceitam solicitações escritas em diferentes idiomas e tentam pesquisa. I Ex.: menus suspensos (pull-down ). Grácas (GUI). número de teclas utilizadas para realizar cada solicitação. I I Formulário + menus. I Interfaces utilizadas pelos DBAs para criação de contas, I O usuário pode especicar uma consulta manipulando um autorizações de acesso, ajuste de parâmetros etc. formulário diagramático. Módulos Componentes do SGBD Para DBAs. Utilitários do Sistema de Banco de Dados Utilitários que auxiliam o DBA no gerenciamento do sistema: I Carga (loading ) I Backup I Arquivos de dados ⇒ Banco de dados. I Transferência de dados de um SGBD para outro. I Para descarregar todo o BD em uma ta. I A cópia backup pode ser usada para restaurar o BD em casos de falhas. I Reorganização de arquivos I Reorganizar um arquivo de BD buscando melhorar seu desempenho. Controla o acesso à informação do SGBD que está armazenada no disco I Monitoramento deProcessa desempenho as definições do esquema e I Monitora o uso do BD e fornece estatísticas para o DBA. armazena suas descrições no catálogo. Arquiteturas Centralizada e Cliente/Servidor Arquitetura Centralizada para os SGBDs Histórico I I Antigamente: grandes computadores centrais (mainframes ) para processar todas as funções do SBD (programas de aplicação e interface com usuários + funcionalidades do SGBD). Os usuários acessavam o sistema via terminais que não tinham poder de processamento. Com o passar do tempo os SGBDs começam a explorar o poder de processamento disponível do lado do usuário (PCs e as estações de trabalho), gerando as arquiteturas SGBD cliente-servidor. Arquiteturas Cliente/Servidor para os SGBDs Arquiteturas Cliente/Servidor de Duas Camadas I I Lado do cliente: interface com os usuários e os programas de aplicação. Lado do servidor: SGBD. Usuário Dois tipos principais de arquiteturas de SGBD foram criados utilizando-se os fundamentos da estrutura cliente/servidor: I Arquiteturas Cliente/Servidor de Duas Camadas. I Arquiteturas Cliente/Servidor de Três Camadas. Programa de Aplicação Driver do SGBD C O M Computador Cliente C O M SGBD S O Banco de Dados Computador Servidor COM = Software de Comunicação de Rede SO = Sistema Operacional I I I O ODBC (Open Database Connectivity ) oferece uma API (Interface para o Programa de Aplicação) pela qual os programas de aplicação podem acessar o SGBD. A maioria dos fornecedores de SGBD fornecem os drivers ODBC para seus sistemas. Um driver processa as solicitações ODBC e envia instruções SQL para o SGBD. Arquiteturas Cliente/Servidor de Três Camadas I Possui uma camada intermediária entre o cliente e o servidor de banco de dados. I Servidor de Aplicações: armazena as regras de negócio (restrições ou procedimentos para vericação e validação dos dados). I Servidor de Aplicações: também pode incrementar a segurança do BD checando as credenciais do cliente antes de enviar uma solicitação ao servidor de BD. FIM Perguntas?