Prévia do material em texto
MODELAGEM E IMPLEMENTAÇÃO DE BANCO DE DADOS COM SQL Alfredo Boente alfredo.boente@uva.br Aula 02 Arquitetura de Banco de Dados Arquitetura de Banco de Dados Tipos de Arquitetura Introdução Uma arquitetura de banco de dados descreve como os dados são gerenciados, desde a coleta até a transformação, a distribuição e o consumo. Ela define o plano para os dados e a maneira como eles irão fluir pelos sistemas de armazenamento de dados. Embora tenhamos uma sólida arquitetura de banco de dados, a relação com o conceito de independência de dados é fundamental para qualquer DBA – Data Base Administrator. Arquitetura de Banco de Dados Tipos de Arquitetura Introdução Um conceito muito importante explorado nesse estudo é a Independência de dados, pois é um dos objetivos de um SGBD, e consiste na capacidade de isolar programas de aplicação das mudanças em estruturas de armazenamento (esquema físico), definição dos dados (esquema lógico), advinda do estudo e da definição de requisitos (esquema conceitual) e das estratégias de acesso do BD. Mais sobre Modelo Conceitual Entidade Forte x Entidade Fraca As entidades fortes possuem um alto grau de independência de existência de identificação. Geralmente, outras entidades podem depender dela para serem identificadas. As entidades fracas possuem dependência de existência e/ou identificação. São sempre ligadas a outras tabelas através de relacionamentos. Mais sobre Modelo Conceitual Arquitetura de Banco de Dados Mais sobre Modelo Conceitual Relacionamento Forte x Relacionamento Fraco Sabe-se que os relacionamentos fortes existem entre entidades referenciadas como entidades fortes. Já os relacionamentos fracos existem em decorrência de existir o relacionamento entre entidades e, pelo Menos uma delas, ser caracterizada como entidade fraca. Mais sobre Modelo Conceitual Arquitetura de Banco de Dados Mais sobre Modelo Conceitual Grau dos Relacionamentos O grau de um relacionamento corresponde ao número de entidades envolvidas na mesma relação. O grau de um relacionamento pode ser: Unário: Onde uma entidade se relaciona com ela mesma. Binário: Onde duas entidades participam de um relacionamento. Este é o grau utilizado na maioria dos relacionamentos. Mais sobre Modelo Conceitual Arquitetura de Banco de Dados Mais sobre Modelo Conceitual Grau dos Relacionamentos O grau de um relacionamento corresponde ao número de entidades envolvidas na mesma relação. O grau de um relacionamento pode ser: Ternário: Onde três entidades participam de um relacionamento. Muito se discute sobre o uso e aplicabilidade de relacionamentos com grau maior que dois (ternários e n-ários) em modelos de dados. Alguns autores sugerem inclusive que esses relacionamentos não sejam adotados. N-ário: Onde quatro ou mais entidades participam de um relacionamento. Mais sobre Modelo Conceitual Arquitetura de Banco de Dados Mais sobre Modelo Conceitual Grau dos Relacionamentos A figura a seguir mostra os graus de relacionamentos. Mais sobre Modelo Conceitual Arquitetura de Banco de Dados Mais sobre Modelo Conceitual Classificação dos Atributos Atributo identificador: Representado através de uma bola cheia na extremidade do atributo. Atributos identificadores identificam ou compõe a identificação única de uma ocorrência em uma entidade. Vale ressaltar que uma entidade e/ou relacionamento pode possuir mais de um atributo identificador, desde que os mesmos em conjunto componham a identificação única. Mais sobre Modelo Conceitual Arquitetura de Banco de Dados Mais sobre Modelo Conceitual Classificação dos Atributos Atributo não identificado: Representado através de uma bola vazia na extremidade do atributo. Corresponde a maioria das ocorrências de uma entidade. Além disso, atributos não identificados podem ser opcionais, ou seja, em algumas instâncias de entidade, alguns atributos poderão conter valores nulos. Mais sobre Modelo Conceitual Arquitetura de Banco de Dados Mais sobre Modelo Conceitual Classificação dos Atributos Atributos multivalorados: Representado através de uma flor ou asterisco na extremidade do atributo. Representam mais de uma ocorrência de valor. Atributos compostos: Representados através de uma oval com vários nós na extremidade do atributo. Representa mais de um tipo de informação em um atributo. Mais sobre Modelo Conceitual Arquitetura de Banco de Dados Mais sobre Modelo Conceitual Classificação dos Atributos Veja exemplos: Mais sobre Modelo Conceitual Arquitetura de Banco de Dados Aprendizagem Baseada em Problemas Situação-problema: Num contexto de uma escola de ensino fundamental e médio, certa escola deseja implementar um sistema de informação para gestão escolar. Então, precisa-se desenvolver um modelo conceitual de banco de dados, a partir das seguintes informações básicas: Uma Escola tem várias turmas; Uma turma tem vários professores, sendo que um professor pode ministrar aulas em mais de uma turma; Uma turma tem sempre aulas na mesma sala, mas uma sala pode estar associada a várias turmas diferentes (com horários diferentes e nunca no mesmo horário de ocupação, obviamente). Mais sobre Modelo Conceitual Arquitetura de Banco de Dados ATIVIDADE EXTRA CLASSE ATIVIDADE EXTRA CLASSE Mais sobre Modelo Conceitual Arquitetura de Banco de Dados Exercício de Fixação: Faça uma revisita aos modelos conceituais desenvolvidos por você na aula anterior (Berçário, Floricultura e Empresa de Venda de Produtos de Limpeza), e complemente-os com seus respectivos atributos, conforme classificação de cada caso. Mais sobre Modelo Conceitual Arquitetura de Banco de Dados Aprendizagem Baseada em Problemas Situação-problema: Na analogia da construção da casa, a modelagem lógica equivale a planta elaborada pelo Engenheiro. Ela deve conter todas as especificações necessárias para a construção de uma casa, seguindo essa linha a modelagem lógica também deve conter todas as especificações para a construção do banco de dados físico. Como realizamos uma modelagem lógica? Mais sobre Modelo Conceitual Arquitetura de Banco de Dados Aprendizagem Baseada em Problemas Metodologia: Após a explanação dos alunos, o professor deverá apresentar a estrutura do modelo de dados lógico (relacional), dando ênfase as restrições de integridade de entidade e restrições de integridade referencial, demonstrando sua estrutura gráfica. Apresentar estudo de caso modelado numa ferramenta CASE. Avaliar em conjunto com os alunos estudo de caso que tenha aplicabilidade prática. Mais sobre Modelo Conceitual Arquitetura de Banco de Dados Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados Modelos de dados: conjunto de conceitos que podem ser usados para descrever a estrutura de um banco de dados. Permitem a abstração dos dados. Estrutura de um banco de dados: tipos de dados, relacionamentos e restrições pertinentes aos dados (+ conjunto de operações para especificar como recuperar e modificar a base de dados). Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados Esquema: descrição (textual ou gráfica) da estrutura de um banco de dados de acordo com um determinado modelo de dados. • Construtor do esquema: cada objeto do esquema. • Diagrama esquemático: ilustração de alguns aspectos do esquema. Instância: conjunto de dados armazenados em um banco de dados em um determinado instante de tempo. Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados Diagrama Esquemático de um Banco de Dados Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados Instância do um Banco de Dados Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados Esquema e Instância de Banco de Dados Esquema: • Definido durante o projeto do banco de dados. • Armazenado no catálogo do bancode dados. • Espera-se que não seja alterado com frequência. Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados Estado do banco de dados: • Também conhecido como 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. • O SGBD é parcialmente responsável por assegurar que cada estado do banco de dados seja válido. Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados Categorias de Modelos de Dados Classificação de acordo com os tipos de conceitos utilizados: • Alto nível ou modelos de dados conceituais. • Modelos de dados lógicos ou implementação. • Baixo nível ou modelos de dados físicos. Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados Modelos de Dados Conceituais Utilizam entidades, atributos e relacionamentos, que descrevem os dados como os usuários os percebem. São independente de aspectos de implementação em um SGBD. Exemplos: Modelo entidade-relacionamento (ER); Modelo orientado a objetos (OO); outros. Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados Categorias de Modelos de Dados Modelos de Dados Lógicos 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: Modelo relacional; Modelo hierárquico; Modelo de rede. LEMBRETE: Nosso foco é o Modelo Relacional de BD. Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados Categorias de Modelos de Dados Modelos de Dados Físicos Utilizam formato dos registros, ordem dos registros e os caminhos de acesso que descrevem os detalhes de como os dados estão fisicamente armazenados. Como o modelo físico será oriundo do modelo lógico implementado e, este é relacional, de base universal, nosso modelo físico descreverá scripts SQL – Structure Query Language. Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados Características importantes da abordagem com uso de BD - Independência de dados e programas; - Suporte a múltiplas visões de usuários; - Uso de catálogo. Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados Arquitetura proposta para realização e visualização dessas características Arquitetura de Três-Esquemas (ANSI/SPARC) • Objetivo: separar as aplicações do usuário do banco de dados físico. • Os esquemas são definidos por três níveis. Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados A Arquitetura Três-Esquemas - Nível externo - Nível conceitual - Nível interno Nível externo 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. Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados Nível conceitual 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 Esquema interno: descreve a estrutura de armazenamento físico do banco de dados. Utiliza um modelo de dados físico e descreve os detalhes completos de armazenamento de dados e caminhos de acesso ao banco de dados. Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados A Arquitetura Três-Esquemas Arquitetura de Banco de Dados Tipos de Arquitetura Arquitetura de Banco de Dados A Arquitetura Três-Esquemas A maioria dos SGBDs não separa os três níveis completamente: • Alguns SGBDs incluem detalhes do nível físico no esquema conceitual. • Na maioria dos SGBDs os esquemas externos são especificados com o mesmo modelo de dados que descreve a informação no nível conceitual. Arquitetura de Banco de Dados Independência de Dados Independência de Dados Modificabilidade do Banco de Dados Independência de Dados é 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. Tipos de independência de dados: - Independência Lógica de Dados - Independência Física de Dados Arquitetura de Banco de Dados Independência de Dados Independência de Dados Independência de dados Lógica e Física Independência de Dados Lógica é a capacidade de alterar o esquema conceitual sem mudar o esquema externo ou os programas. Exemplo: modificar o esquema conceitual para expandir o banco de dados (adicionando um ou mais itens de dados). Arquitetura de Banco de Dados Independência de Dados Independência de Dados Independência de dados Lógica e Física Independência de Dados Física é 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. Arquitetura de Banco de Dados Linguagem de Dados Arquitetura e Linguagem de Banco de Dados Linguagem de Banco de Dados A linguagem oferecida pelo SGBD para criação e manipulação de base de dados universal é a SQL – Structure Query Language. Arquitetura de Banco de Dados Linguagem de Dados Arquitetura e Linguagem de Banco de Dados Linguagem de Banco de Dados O SGBD deve oferecer linguagens e interfaces apropriadas para cada categoria de usuários: Linguagem de Definição de Dados (Data Definition Language - DDL) é usada pelo DBA e projetistas para definir os esquemas de banco de dados. Arquitetura de Banco de Dados Linguagem de Dados Arquitetura e Linguagem de Banco de Dados Linguagem de Banco de Dados O SGBD deve oferecer linguagens e interfaces apropriadas para cada categoria de usuários: Linguagem de Definição de Armazenamento (Storage Definition Language - SDL) é utilizada para especificar o esquema interno em SGBDs onde uma clara separação é mantida entre os níveis conceitual e interno. Arquitetura de Banco de Dados Linguagem de Dados Arquitetura e Linguagem de Banco de Dados Linguagem de Banco de Dados Linguagem de Definição de Visões (View Definition Language - VDL) • Em uma verdadeira arquitetura três-esquemas: terceira linguagem (VDL) para especificar as visões dos usuários e seus mapeamentos para o esquema conceitual. • Na maioria dos SGBDs a DDL é usada para definir os esquemas conceitual e externo. Arquitetura de Banco de Dados Linguagem de Dados Arquitetura e Linguagem de Banco de Dados Linguagem de Banco de Dados Linguagem de Manipulação de Dados (Data Manipulation Language - DML) é usada para recuperação, inserção, remoção e modificação dos dados. Tipos de DMLs: Alto nível (ou não procedural ou declarativas): os usuários especificam quais dados recuperar sem especificar como obtê-los. Baixo nível (ou procedural): requerem que o usuário especifique que dados são necessários e como obtê-los. Arquitetura de Banco de Dados Linguagem de Dados Arquitetura e Linguagem de Banco de Dados Linguagem de Banco de Dados Se comandos DML forem embutidos em um programa de linguagem de propósito geral: • Linguagem de propósito geral = linguagem hospedeira (host language). • DML = sublinguagem de dados. Arquitetura de Banco de Dados Linguagem de Dados Arquitetura e Linguagem de Banco de Dados Linguagem de Banco de Dados Se comandos DML (de alto nível) forem utilizados de maneira isolada e interativa: • DML = linguagem de consulta (query language). • SQL = DDL + VDL + DML + comandos para especificações das restrições. Arquitetura de Banco de Dados Linguagem de Dados Arquitetura e Linguagem de Banco de Dados Interfaces Baseadas em Menus Menus que guiam o usuário durante a formulação da pesquisa. Exemplo: Menus suspensos (pull-down);Interfaces Baseadas em Formulários Um formulário para cada grupo de usuário; O usuário pode preencher todos os campos do formulário de entrada para inserir um novo dado; O usuário pode preencher somente alguns campos e o SGBD recuperar os dados faltantes para os campos vazios. Arquitetura de Banco de Dados Linguagem de Dados Arquitetura e Linguagem de Banco de Dados Interfaces Baseadas em Gráficas (GUI) Formulário + menus; O usuário pode especificar uma consulta manipulando um formulário diagramático. Interfaces Baseadas em Linguagem Natural Aceitam solicitações escritas em diferentes idiomas e tentam entendê-las. Se a interpretação da solicitação for bem sucedida, a interface gera uma consulta de alto nível correspondendo à solicitação da linguagem natural. Arquitetura de Banco de Dados Linguagem de Dados Arquitetura e Linguagem de Banco de Dados Interfaces para Usuários Parametrizáveis Usuários parametrizáveis: caixas de banco. Comandos são adaptados com o objetivo de minimizar o número de teclas utilizadas para realizar cada solicitação. Interfaces para DBAs Interfaces utilizadas pelos DBAs para criação de contas, autorizações de acesso, ajuste de parâmetros etc. Arquitetura de Banco de Dados Linguagem de Dados Arquitetura e Linguagem de Banco de Dados Módulos Componentes do SGBD Arquitetura de Banco de Dados Linguagem de Dados Arquitetura e Linguagem de Banco de Dados Utilitários que auxiliam o DBA no gerenciamento do SGBD Carga (loading): Arquivos de dados - Banco de dados. Transferência de dados de um SGBD para outro. Backup: Para descarregar todo o BD em uma tabela. A cópia backup pode ser usada para restaurar o BD em casos de falhas. Reorganização de arquivos: Reorganizar um arquivo de BD buscando melhorar seu desempenho. Monitoramento de desempenho: Monitora o uso do BD e fornece estatísticas para o DBA. Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Vamos analisar o estudo de caso da empresa RENALF LOGÍSTICA, especializada na distribuição física de produtos. Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Como foco principal de sua atividade fim, a RENALF LOGÍSTICA, apresenta seu fluxo de distribuição de produtos e retorno retorno financeiro. Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Com base na visão da atividade fim da empresa RENALF LOGÍSTICA, vamos agora analisar alguns objetivos-chave: 1. Identificar as entidades 2. Identificar os relacionamentos 3. Normalizar as entidades 4. Criar o DER correspondente Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos A situação é a seguinte: A RENALF LOGÍSTICA deseja armazenar os dados de seus contatos, sejam eles Clientes, Fornecedores, Colaboradores, Contadores ou Transportadoras. A empresa precisa se comunicar com essas pessoas através de telefone, e-mail e correspondência impressa, visando uma melhor integração de serviços. Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Entidades: Nosso primeiro passo é encontrar as entidades. Algumas delas nos foram dadas de “mão beijada”: •Cliente •Fornecedor •Colaborador •Contador •Transportadora Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Vamos imaginar os atributos dessas entidades: Nome, Email, Rua, Número, Complemento, Bairro, Cidade, CEP, Estado, CPF, CNPJ, RG, Data RG, Órgão RG, Sexo, Raça, Naturalidade, Nacionalidade, Nome Pai, Nome Mãe, Inscrição Estadual, Inscrição Municipal, Nome de Fantasia, Inscrição CRC, UF CRC. Veja que temos vários atributos. Alguns deles servem para mais do que uma entidade, por exemplo, Nome. Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos As cinco entidades precisarão desse atributo. No entanto CRC é um atributo utilizado apenas pelo Contador. Vamos organizar esses atributos para facilitar a visualização. Atributos Comuns às Cinco Entidades Nome Email Site Rua Número Complemento Bairro Cidade CEP Estado Atributos Comuns às Cinco Entidades - Pessoa Física. Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Existem alguns atributos que são específicos para Pessoa Física, independentemente de ser Cliente, Fornecedor, Colaborador, Transportadora ou Contador. São os seguintes: CPF RG Data RG Órgão RG Sexo Raça Naturalidade Nacionalidade Nome Pai Nome Mãe Atributos Comuns às Cinco Entidades - Pessoa Jurídica. Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Existem alguns atributos que são específicos para Pessoa Jurídica, independentemente de ser Cliente, Fornecedor, Colaborador, Transportadora ou Contador. São os seguintes: CNPJ Inscrição Estadual Inscrição Municipal Nome de Fantasia Atributos do Contador Finalmente temos dois atributos específicos para Contadores: Inscrição CRC UF CRC Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Temos Cliente, Fornecedor, Contador, Colaborador e Transportadora. Todas essas entidades são PESSOA, sendo que temos dados específicos para PESSOA_FISICA e dados específicos para PESSOA_JURIDICA. Além disso, embora CONTADOR seja uma PESSOA, temos dados específicos para ele que não convém gravar para as demais entidades (Inscrição CRC e UF CRC). Uma proposta a ser implementada é a criação de uma tabela PESSOA a partir da técnica de GENERALIZAÇÃO. Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Vajamos como fica a proposta de modelagem: Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Vamos analisar a tabela PESSOA: Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Vamos analisar a tabela PESSOA_FÍSICA: Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Vamos analisar a tabela PESSOA_JURÍDICA: Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Vamos analisar a tabela PESSOA_ENDEREÇO: Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Vamos analisar a tabela PESSOA_TELEFONE: Arquitetura de Banco de Dados Modelagem de Dados Estudos de Casos Então, utilizou-se a técnica de GENERALIZAÇÃO para definirmos diversas tabelas associadas a tabela PESSOA, conforme foram aqui apresentadas. A modelagem nos levaria a modelar também as seguintes tabelas: CLIENTE, TRANSORTADORA, FORNECEDOR, CONTADOR e COLABORADOR, todas apresentadas neste estudo de caso da empresa RENALF LOGÍSTICA. Arquitetura de Banco de Dados Modelagem de Dados ATIVIDADE EXTRA CLASSE ATIVIDADE EXTRA CLASSE Arquitetura de Banco de Dados Modelagem de Dados Exercícios: 1) O professor da disciplina atribui exercícios de modelagem e implementação de banco de dados aos alunos 2) O professor da disciplina atribui exercícios de modelagem e implementação de banco de dados aos alunos 3) O professor da disciplina atribui exercícios de modelagem e implementação de banco de dados aos alunos Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Slide 47 Slide 48 Slide 49 Slide 50 Slide 51 Slide 52 Slide 53 Slide 54 Slide 55 Slide 56 Slide 57 Slide 58 Slide 59 Slide 60 Slide 61 Slide 62 Slide 63 Slide 64 Slide 65 Slide 66 Slide 67 Slide 68