Universidade Estadual de Mato Grosso do Sul Ciência da Computação Banco de Dados Prof. Nilton [email protected] Modelagem Conceitos e arquitetura do SBD; Modelo de dados entidade-relacionamento – modelo ER; Modelo de dados relacional; Mapeamento ER para o relacional. 2 Modelos de Dados Modelo (de banco) de dados para descrever a estrutura do banco de dados numa determinada etapa do projeto Classificação segundo o nível de abstração Modelo conceitual Modelo lógico Modelo físico 3 Modelo Conceitual descreve a estrutura de um BD de forma independente de qualquer implementação exemplo Modelo Entidade-Relacionamento representado pelo diagrama E-R notação de Peter Chen idcli nomecli Cliente dtadm N classe idfilme loca N nomefilme Filme genero 4 Modelo Lógico descreve a estrutura do banco de dados em função de uma futura implementação usando um SGBD lógico para perseguir a implementação ideal primar pela qualidade exemplo Modelo Relacional baseado em relações representação tabular (plana) 5 Modelo Físico descreve os detalhes de armazenamento (interno) dos dados e das formas de acesso a esses dados físico para garantir a implementação possível primar pelo desempenho derivado a partir do respectivo modelo lógico como? detalhes de armazenamento: organização de arquivos acesso aos dados: utilização de índices 6 Esquemas e Instâncias Um banco de dados apresenta um esquema e uma instância Esquema Definição do BD Estático, invariante no tempo Instância Manipulação do BD Dinâmica, variante no tempo Esquema Instância 7 Esquemas e Instâncias 8 Arquitetura de 3 Esquemas •Ajuda a obter e visualizar as três características importantes de um SBD (isolamento entre dados e programas, suporte a múltiplas visões e a natureza autocontida) Visão 1 Visão 2 Visão N Nível externo ou de visão Nível conceitual Nível interno Banco de dados (tabelas e restrições de integridade) Mecanismos de desempenho no acesso ao banco de dados 9 Esquemas de Visão ou esquemas externos ou visões do usuário definem as visões dos usuários do banco de dados, isto é, uma parte do banco de dados de interesse de um grupo de usuários cada um vê o banco de dados ao seu modo Uso de um modelo de dados de alto nível ou um modelo de dados de implementação 10 Esquema Conceitual definição conceitual do banco de dados, isto é, descreve a estrutura de todo banco de dados para uma comunidade de usuários no modelo relacional: tabelas (campos e tuplas), relacionamentos e restrições de integridade unificador das visões dos usuários daí, os esquemas de visão definitivos são estabelecidos depois que se definiu o esquema conceitual Uso de um modelo de dados de alto nível ou um modelo de dados de implementação 11 Esquema Interno descreve a estrutura de armazenamento físico do banco de dados com objetivo de melhorar o desempenho caminhos de acesso índices hashing 12 Independência de Dados A arquitetura de 3 esquemas pode ser utilizada para explicar o conceito de independência de dados É a capacidade de mudar o esquema num nível de um SBD sem ter que mudar o(s) esquema(s) no(s) nível(eis) seguinte(s) mais alto. Independência lógica de dados Ex: expandir o banco de dados adicionando um tipo de registro ou um item de dados Independência física de dados Ex: criar estruturas de acesso adicionais Arquitetura de 3 esquemas ajuda a alcançar a independência dos dados, tanto física como a lógica, mas o mapeamento desses níveis requer trabalho adicional durante a execução de uma consulta. Por isto, poucos SGBDs implementam a arquitetura de 3 13 esquemas completamente. Linguagens do SGBD Linguagem de definição de dados (DDL – Data Definition Language) Linguagem de definição do armazenamento (SDL – Storage Definition Language) Linguagem de definição de visão (VDL – View Definition Language) Linguagem de manipulação de dados (DML – Data Manipulation Language) Linguagem hospedeira 14 DDL: data definition language definir os esquemas conceitual e interno quando não existe separação entre níveis conceitual e interno definir o esquema conceitual quando há a separação entre os níveis... 15 SDL: storage definition language definir o esquema interno o mapeamento entre os dois esquemas (conceitual e interno) pode ser especificado por qualquer uma das linguagens (DDL, SDL). 16 VDL: view definition language especificar as visões dos usuários e seus mapeamentos para o esquema conceitual alguns SGBD usam DDL para especificar tanto o esquema conceitual como o externo 17 DML: data manipulation language para incluir/alterar/modificar/consultar os dados DML de alto nível ou não procedural utilizada sozinha em operações complexas do BD orientada a conjuntos de registros DML de baixo nível ou procedural embutida numa linguagem de programação orientada a registros (usa(usa-se loops loops)) 18 Linguagem hospedeira os comandos da DML estão embutidos na linguagem de programação Nos SGBDs atuais as linguagens apresentadas não são consideradas distintas, é utilizada uma linguagem integrada compreensiva. Ex: linguagem SQL (DDL+VDL+DML) 19 Interfaces do SGBD Interfaces baseadas em menus Interfaces baseadas em formulários Interfaces gráficas (diagramas menus+forms menus+forms)) Interfaces de linguagem natural Interfaces para usuários leigos Interfaces para DBAs 20 Módulos Típicos de um SGBD 21 Utilitários de um SGBD Carregador de arquivos Backup Reorganizador de arquivos Gerador de relatórios Monitor de desempenho ... 22 Classificação dos SGBDs Critério principal 1. Modelo de dados Relacional, Objeto, ObjetoObjeto-Relacional (atuais), Hierárquico e Rede e outros Outros critérios 2. Número de usuários Monousuário, Multiusuário 3. Número de locais Centralizado, Distribuído (homogêneo/heterogêneo) 4. Preço (US$) 100 a 3.000 (monousuários, PC), 10.000 a 100.000 (a maioria), > 10.000 (alguns mais elaborados) 5. Propósito Geral, específico (OLTP) 23 Bancos de Dados Centralizados 24 Redes de Microcomputadores 25 Arquitetura Cliente/Servidor com Servidor de Arquivos 26 Arquitetura Cliente/Servidor com Servidor de Bancos de Dados 27 Arquitetura Cliente/Servidor com Múltiplos Servidores de Bancos de Dados Cooperativos 28 Banco de Dados Cliente/Servidor com Gerência de Dados Remota 29 Banco de Dados Cliente/Servidor com Gerência de Dados Distribuída 30 Banco de Dados Cliente/Servidor com três níveis (three-tier architecture) 31 Bancos de Dados via Web 32 Arquitetura de Intregração 33