Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 1 Conceitos de Sistemas de Banco de Dados e Arquitetura • Modelos de Dados, Esquemas e Instâncias • Arquitetura de Banco de Dados e Independência de Dados • Linguagem de Banco de Dados e Interfaces • O Ambiente de Sistemas de Banco de Dados • Classificação de Sistemas Gerenciadores de Banco de Dados (SGBDs) UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 2 Modelos de Dados... • Abstração de dados - oculta os detalhes de armazenamento de dados que não são necessários à maioria dos usuários do banco de dados. • Um Modelo de Dados é um conjunto de conceitos que pode ser usado para descrever a estrutura de um banco de dados. • Estrutura de um BD - tipos de dados, relações, restrições, operações básicas e comportamentos que devem valer para os dados UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 3 Modelo de Dados... Modelo: é a representação abstrata e simplificada de um sistema real, com a qual se pode explicar ou testar o seu comportamento, em seu todo ou em partes. UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 4 Categorias de Modelo de Dados... • Conceitual (Alto-nível) - provê conceitos que estão próximos à forma pela qual os usuários percebem os dados. • Físico (Baixo-nível) - provê conceitos que descrevem os detalhes de como os dados são armazenados no computador. • Lógico (Representacional/ Implementacional ) provê conceitos que podem ser entendidos pelos usuários, mas que estão, de certo modo, vinculados à forma como os dados estão organizados no computador. UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 5 Categorias de Modelo de Dados... • Modelos Conceituais – Entidade/Relacionamento (ER) – Modelos Orientados a Objetos (Object-oriented data models) • Modelos Lógicos – Relacional – Hierárquico – Rede • Modelos Físicos: métodos de acesso + estruturas de armazenamento... UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 6 Esquemas e Instâncias... • Esquemas são unidades de especificação que servem de mapeamento para as estruturas de um banco de dados. • Diagrama de Schema - é a descrição da base de dados (meta-dados) • Schema construct - cada objeto do schema • Estado da Base de Dados - é o conjunto de dados na Base de Dados em um determinado instante (conjunto de ocorrências ou instância) UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 7 Esquemas e Instâncias...... DIAGRAMA DE SCHEMA STUDENT Name StudentNumber COURSE CourseName Class CourseNumber Major CreditHours Department PREREQUISITE CourseNumber PrerequisiteNumber SECTION SectionIdentifier CourseNumber GRADE_REPORT StudentNumber SectionIdentifier UERJ - Agosto 2000 Semester Year Instructor Grade © Oscar Luiz Monteiro de Farias 8 Esquemas e Instâncias... Estado da Base de Dados (Extensão) Schema da Base de Dados (Intensão) UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 9 Níveis de Modelagem - Origem... • Dificuldades existentes antes da arquitetura em três níveis de schema (arquitetura ANSI-SPARC): Um mesmo modelo de dados, concebido para uma aplicação, necessitava de um esquema para cada tipo de implementação do SGBD (relacional, hierárquico, rede, etc.) e para cada visão. UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 10 Níveis de Modelagem - Origem... N0 de esquemas para uma aplicação = N0 de tipos de implementação x N0 de diferentes visões [antes da arquitetura em três níveis de schema] UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 11 Níveis de Modelagem - Origem... IMP 1 Visão 1 IMP 2 Visão 2 Visão 3 IMP 3 Visão 4 IMP 4 Visão 5 [antes da arquitetura em três níveis de schema] UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 12 Arquitetura ANSI-SPARC USUÁRIOS FINAIS NÍVEL EXTERNO VISÃO 1 VISÃO N (esquema externo 1) (esquema externo n) NÍVEL CONCEITUAL NÍVEL INTERNO ESQUEMA INTERNO 1 STORED DATABASE UERJ - Agosto 2000 ESQUEMA CONCEITUAL BD ESQUEMA INTERNO M BD © Oscar Luiz Monteiro de Farias BD 13 Arquitetura em 3 níveis (ANSI-SPARC) • Nível Externo mais próximo do usuário, relacionado à forma como o dado é percebido (visto) pelo usuário • Nível Conceitual relacionado à representação lógica dos dados armazenados no banco de dados • Nível Interno mais próximo da representação física dos dados, aquele relacionado à forma como o dado é fisicamente armazenado UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 14 Arquitetura em 3 níveis de esquema • Os três níveis de schema são apenas descrições dos dados • Os dados reais existem apenas no nível físico • Mapeamento: é o processo de transformar pedidos e resultados entre os diferentes níveis da arquitetura • o catálogo deve ser expandido em um SGBD de 3 níveis de esquema para incluir informações relativas a como mapear pedidos e dados entre os diversos níveis. UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 15 Independência de Dados • Independência de dados: é a capacidade de alterar o schema em um nível do Sistema de Banco de Dados, sem ter que alterar o schema do nível superior mais próximo. • Independência lógica de dados: é a capacidade de alterar o schema conceitual sem ter que alterar schemas externos ou programas aplicativos. • Independência física de dados: é a capacidade de alterar o schema interno sem ter que alterar o schema conceitual (externo). UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 16 Linguagens de SGBD (DBMS Languages)... • Data Definition Language (DDL): utilizada para definir os schemas conceitual e interno (níveis lógico e físico), em SGBDs em que não há uma separação estrita entre estes dois níveis. • Storage Definition Language (SDL): usada para especificar o esquema interno. • View Definition Language (VDL): usada para especificar as visões dos usuários e o seu mapeamento no esquema conceitual. • Data Manipulation Language (DML): usda para consultas e atualizações na base de dados. UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 17 Linguagens de SGBD (DBMS Languages)... • É comum nos SGBDs não separar os diferentes tipos de linguagem (SDL, DDL, VDL e DML). Um exemplo típico é a linguagem de banco de dados relacional SQL - structured query language. • Há dois tipos de DMLs: – high level ou nonprocedural (set-at-a-time or setoriented) ex.: SQL – low-level ou procedural (record-at-a-time) UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 18 Linguagens de SGBD (DBMS Languages)... • Host-language - linguagem de programação de uso geral em que são inseridos comandos DML. • data sublanguage - a linguagem DML que é inserida na host-language • user-friendly interfaces - para usuários naive e paramétricos UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 19 Interfaces dos SGBDs • browsing - permitem ao usuário varrer o conteúdo da base de dados em uma forma não estruturada • baseadas em menus • gráficas • baseadas em formulários • linguagens naturais • para usuários paramétricos - pequeno conjunto de comandos abreviados • para os DBAs - incluem comandos privilegiados UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 20 Ambiente de um Sistema de Banco de Dados UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 21 Ambiente de um Sistema de Banco de Dados • Stored Data Manager - controla o acesso à informação do SGBD armazenada em disco (base de dados + catálogo). • DDL Compiler - processa definições de esquemas (meta-dados), especificadas na DDL, e armazenaas no catálogo do SGBD. • Run-time database processor - responsável pelo acesso à base de dados em tempo de execução (o acesso a disco é feito via SDM). UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 22 Ambiente de um Sistema de Banco de Dados • Query Compiler - processa consultas de alto nível que são submetidas interativamente. Faz o parsing e analisa a consulta, após o que gera calls ao run-time-processor para executar os pedidos. • Precompiler - extrai os comandos DML de programas aplicativos escritos em uma linguagem hospedeira. • DML Compiler - compila comandos DML em código objeto que provê acesso ao banco de dados. UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 23 Utilitários em um Sistema de Banco de Dados • • • • • Database utilities ajudam o DBA a executar o Sistema de Banco de Dados. Loading - usado para conversões: formato corrente do arquivo => estruturas de arquivos do BD. Backup Reorganização de arquivos - utilizado para melhorar a performance do sistema. Monitoramento de performance outros utilitários - sorting files, compressão de dados, monitoramento de acesso, sistemas de dicionários de dados expandidos. UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 24 Facilidades de Comunicação • Interface com Software de Comunicação: sua função é possibilitar a usuários remotos o acesso ao Banco de Dados, através de terminais, workstations, microcomputadores, etc. • O sistema integrado SGBD/sistema de comunicação de dados é chamado de sistema DB/DC. • Arquitetura Client-Server UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 25 Classificação dos SGBDs • Modelo de dados: relacional, network, hierárquico, orientado a objetos • N0 de usuários: multi-usuário, stand-alone • Centralizado x Distribuído • Homogêneo x Heterogêneo • Custo • Propósito geral x propósito específico UERJ - Agosto 2000 © Oscar Luiz Monteiro de Farias 26