Baixe o app para aproveitar ainda mais
Prévia do material em texto
Unidade 1. Introdução a Projeto de Banco de Dados 1.1 Primeiras Palavras O projetista de banco de dados é o profissional que conhece as ferramentas de modelagem de base de dados e as aplica para materializar um banco de dados da maneira a satisfazer todos os requisitos do usuário. Ele deve achar a equação que pondera o espaço de armazenamento e a performance e para isso deve ter em mente que é necessário fazer vários níveis de refinamento para melhorar o projeto. Como melhorar o projeto? Como aumentar o desempenho? Como melhorar a confiabilidade? As respostas dessas perguntas serão discutidas neste e nos próximos capítulos. 1.2 Problematizando o tema O que é projeto de banco de dados? Quais suas etapas? Como tomar a melhor decisão em um projeto de banco de dados? 1.3 Conceitos Básicos Bancos de dados tornaram-se essenciais em nosso dia a dia. São inúmeras as aplicações que utilizam sistemas de banco de dados: bancos financeiros: armazenam todas as transações bancárias empresas aéreas: reservas de assentos em vôos, agendamentos de vôos vendas: clientes, produtos, estoques, compras revendedores online: registro de pedidos, recomendações personalizadas industria: produção, estoque, pedidos, fornecedores recursos humanos: registro de empregados, salários, dedução de taxas universidades: registros de alunos, disciplinas, salas, notas bibliotecas: registro de acervo, registro de usuário, registro de empréstimo Muitas dessas aplicações são ditas aplicações tradicionais de banco de dados, pois envolvem essencialmente textos e números, porém têm crescido as aplicações que envolvem dados ditos não convencionais como áudio, vídeo, mapas, imagens de satélites, etc. O emprego de avanços tecnológicos tornaram possíveis aplicações inovadoras de sistemas de banco de dados, tais como: banco de dados multimídia: armazenam e manipulam figuras, videoclipes, mensagens sonoras; sistemas de informações geográficas: armazenam e analisam mapas, dados do tempo e imagens de satélite; 1 data warehouses: utilizados em conjunto com ferramentas de processamento analítico online (OLAP) possibilitam empresas extrair e analisar informações úteis de grandes bancos de dados para tomada de decisão; tecnologia de bancos de dados ativos e de tempo real são utilizados no controle de processos industriais e de produção. tecnologia de banco de dados aplicadas a WWW aprimora a recuperação de informações pelos usuários da internet. Para que você possa compreender as aplicações mais avançadas começaremos explorando bancos de dados convencionais. Nas próximas seções conheceremos um pouco mais sobre os conceitos que cercam os sistemas de banco de dados. 1.4 O que é Banco de Dados? Um banco de dados é uma coleção de dados relacionados, que possui algumas propriedades implícitas [ELMASRI 2005]: representa aspectos do mundo real (chamado minimundo ou universo do discurso) e mudanças no minimundo devem ser refletidas no banco de dados; é uma coleção lógica e coerente de dados com algum significado inerente; é projetado, construído e povoado por dados que atendem a uma proposta específica dirigida a um grupo de usuários. Um banco de dados pode ser gerado e mantido manualmente ou pode ser computadorizado. Obviamente, aqui abordaremos apenas sobre bancos de dados computadorizados. A coleção das informações armazenadas no banco de dados em um determinado momento é uma instância do banco de dados. O projeto geral do banco de dados é o esquema do banco de dados. Depois de finalizado, os esquemas raramente são modificados. 1.5 Banco de Dados versus Processamento de Arquivos No processamento de arquivos, cada usuário define e implementa os arquivos necessários para uma aplicação específica, como parte da programação da aplicação. Mesmo que mais de uma aplicação necessite trabalhar com o mesmo conjunto de dados, cada aplicação mantém suas informações em arquivos separados e também as aplicações que os manipulam. Isso implica em redundâncias indesejadas, tanto em termos de definição e armazenamento de dados quanto de esforço para manter os dados comuns atualizados. Utilizando um banco de dados, um único repositório de dados é construído e mantido para ser acessado por vários usuários. As principais características da abordagem de banco de dados são: 2 natureza autodescritiva do sistema de banco de dados; isolamento entre os programas e os dados, e a abstração dos dados; suporte para as múltiplas visões dos dados; compartilhamento de dados e processamento de transações 1.6 Modelo de Dados Modelo de dados é uma coleção de ferramentas conceituais para descrever dados, relações de dados, semântica de dados e restrições de consistência. Um modelo de dados oferece uma maneira de descrever o projeto de um banco de dados no nível físico, lógico e de visão. É usual encontrarmos a seguinte categorização dos modelos de dados: Modelo Relacional que representa os dados como uma coleção de tabelas. Cada tabela possui diversas colunas e cada coluna possui um nome único. É o modelo de dados mais usado. Esse modelo é um exemplo de um modelo de dados baseado em registros. Historicamente, o modelo de dados em rede e o modelo de dados hierárquico precederam o modelo relacional. Esses modelos estavam intimamente relacionados com sua implementação subjacente. Modelo Entidade/Relacionamento (MER) é baseado em uma percepção do mundo real que consiste em uma coleção de objetos básicos, chamados entidades e as relações entre esses objetos. Uma entidade é uma "coisa" ou "objeto" no mundo real que é distinguivel dos outros objetos. O MER é muito usado no projeto de banco de dados conceitual. Modelo Baseado em Objeto pode ser visto como uma extensão ao modelo ER com noções de encapsulamento, métodos e identidade de objeto. O modelo relacional-objeto combina os recursos do modelo orientado a objeto com o relacional. Modelo Semi-estruturado permite a especificação dos dados em que itens de dados individuais do mesmo tipo possam ter distintos conjuntos de atributos. Isso é o oposto dos modelos mencionados anteriormente. A Extensible Markup Language (XML) é amplamente utilizada para representar dados semi- estruturados. 1.7 O que é Sistema de Banco de Dados? Um sistema de banco de dados contém informação sobre algum extrato do mundo real do qual se pretende armazenar dados e recuperar informações. Na figura 1.1 está representada uma configuração simplificada de um sistema de banco de dados. 3 Figura 1.1 Configuração simplificada de um sistema de banco de dados (extraida de [ELMASRI 2005] - figura cedida pela Editora Pearson). Conforme apresentado na Figura 1.1, um sistema de banco de dados é basicamente constituído por um conjunto de dados interrelacionados, que aparece na figura como "banco de dados armazenados"; por metadados, ou seja, por um conjunto de dados sobre os dados e as restrições que se aplicam aos mesmos, que aparece na figura como " Definição dos Dados Armazenados" - comumente chamado de Dicionário de Dados; o software gerenciador de banco de dados - que é um ambiente conveniente e eficiente para acessar os dados, e, finalmente um conjunto de programas de aplicações e/ou consultas que fazem a interface com o usuário e/ou programador do sistema. 1.8 Projeto de Banco de Dados O projeto de um sistema de banco de dados segue as seguintes etapas, apresentadas no diagrama da Figura 1.2: 4 Figura 1.2 Etapas de desenvolvimento de um projeto de sistema de banco de dados. (extraído de [ELMASRI 2005] - ilustração cedida pela editora Pearson) Levantamento de requisitos (independe do SGBD). Na fase de levantamento de requisitos e análise de requisitos podem ser aplicadastécnicas de engenharia de software que facilitam a comunicação entre especialistas de computação e especialistas de domínio. É uma fase essencial para o desenvolvimento do sistema, pois a qualidade da solução está intrinsecamente relacionada a um documento de requisitos preciso. Projeto Conceitual (independe do SGBD). A etapa de projeto conceitual é realizada a partir do documento de requisitos e é independente de implementação, ou seja,independe de SGBD. O fruto desta etapa é a construção de um modelo conceitual, que será aqui representado por um diagrama entidade relacionamento. Nesta etapa podem ainda surgir questões sobre os requisitos, sendo recomendável questionar o especialista do domínio sobre tais dúvidas; neste sentido o modelo conceitual pode auxiliar no refinamento dos requisitos do sistema. 5 Projeto Lógico. Esta etapa tem por objetivo transformar o modelo conceitual em um modelo lógico. O modelo lógico define como o banco de dados será implementado em SGBD específico. Projeto Físico nesta etapa o modelo do banco de dados é enriquecido com detalhes que influenciam no desempenho do banco de dados, mas não interferem em sua funcionalidade. O modelo obtido nesta fase é o modelo físico do banco de dados. Estas etapas, conforme [HEUSER 2008] salienta, são adequadas para a construção de um novo banco de dados. Caso já exista um banco de dados ou um conjunto de arquivos convencionais, e se pretenda construir um novo banco de dados, o processo anterior é modificado e incorpora uma etapa de engenharia reversa. 1.6 Pessoas em torno de um Sistema de Banco de Dados Nesta seção vamos enfocar os profissionais que no cotidiano se envolvem na construção, manutenção e uso de um grande banco de dados. Uma primeira figura que se destaca em ambientes que lidam com grandes quantidades de dados e que necessitam de adequada gestão desses dados por intermédio de sistemas de banco de dados é o projetista de banco de dados. Os projetistas devem entrevistar todos os grupos de possíveis usuários para conhecer suas necessidades de dados, ou seja, são os responsáveis pela identificação dos dados que serão armazenados no banco e também por escolher as estruturas adequadas para representar e armazenar esses dados. Os projetistas começam a trabalhar antes mesmo do sistema ter sido implementado e alimentado com os dados. Uma outra figura, não menos importante, em se tratando de grandes bancos de dados é o administrador de banco de dados (DBA) que é responsável pela autorização para o acesso ao banco, pela coordenação e monitoração de seu uso e por adquirir recursos de software e hardware conforme necessário. É responsável por problemas como brechas de segurança ou tempo de resposta ruim do sistema. Ou seja, o DBA é o responsável pelo sistema de banco de dados durante toda sua vida útil. Já foi dito que um sistema de banco de dados é desenvolvido para um grupo de usuários, então obviamente, este é um grupo de pessoas importante no contexto. Usuários podem ser categorizados em usuários leigos - são aqueles que interagem com o sistema apenas por intermédio de programas de aplicação previamente concebidos; programadores de aplicação - são profissionais de computação que interagem com o sistema com o intuito de escrever programas de aplicação; usuários avançados interagem com o sistema sem escrever programas, formulam suas requisições em uma linguagem de consulta de banco de dados e usuários especializados são usuários avançados que escrevem aplicações de banco de dados especializadas que não se encaixam na estrutura de processamento de dados tradicional. 6 1.9 Arquitetura de três-esquemas A arquitetura de três-esquemas (também conhecida como arquitetura ANSI/SPARC) para sistemas de banco de dados foi proposta para auxiliar a realização e visualização de importantes características do uso de banco de dados: independência entre dados e programas; suporte a múltiplas visões de usuários e uso de catálogo (ou dicionário de dados) para armazenar a descrição do banco de dados. O objetivo dessa arquitetura, ilustrada na Figura 1.3, é a separação entre o usuário da aplicação e o banco de dados físico. Pode-se observar três níveis: o nível interno (ou físico) que tem um esquema interno que descreve a estrutura de armazenamento físico do banco de dados. Esse esquema utiliza um modelo de dados físico e descreve os detalhes completos do armazenamento de dados e caminhos de acesso aos mesmos. O nível conceitual (ou lógico) que possui um esquema conceitual que descreve a estrutura de todo o banco de dados para a comunidade usuária. Esse esquema oculta detalhes de armazenamento físico, concentrando-se em descrição de entidades, tipos de dados, conexões, operações de usuários e restrições. O nível externo (ou de visão) abrange os esquemas externos ou visões dos usuários. Cada esquema externo descreve a parte do banco de dados que um dado grupo de usuários tem interesse e oculta o restante do banco de dados desse grupo. Figura 1.3 - Arquitetura Three-Schema (extraída de [ELMASRI 2005]) 1.10 Independência de Dados 7 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. Existem dois tipos de 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 de aplicação. Possíveis alterações no esquema externo: adicionar um tipo de registro ou item de dados, variar restrições ou remover um tipo de registro ou item de dados. Independência de dados física: é a capacidade de mudar o esquema interno sem alterar o esquema conceitual. Consequentemente, o esquema externo também não necessita alteração. Possíveis mudanças em nível físico podem ser necessariás quando arquivos físicos precisam ser reorganizados para aperfeiçoar o desempenho da recuperação ou atualização de dados. Com um sistema gerenciador de banco de dados (SGBD) que implementa a arquitetura de três-esquemas, o catálogo é expandido para incluir informações de como mapear os dados entre níveis. Ou seja, o SGBD utiliza software adicional para realizar os mapeamentos e garantir a independência de dados o que acarreta uma sobrecarga durante a compilação ou a execução de uma consulta ou de um programa, provocando ineficiências no SGBD. Porisso poucos SGBDs implementam a arquitetura três-esquemas completa. 1.11 Linguagens de Banco de Dados Após termos obtido o esquema lógico e físico do banco de dados devemos escolher o Sistema Gerenciador de Banco de Dados (SGBD) que se deseja utilizar para implementá-lo. A linguagem de definição de dados (data definition language) é usada pelo DBA e pelos projetistas do banco de dados para definir ambos os esquemas conceitual e interno. O SGBD terá um compilador DDL cuja função é processar os comandos DDL a fim de identificar os construtores e para armazenar a descrição do esquema no catálogo do SGBD. Quando os esquemas do banco de dados estiverem compilados e o banco de dados populado com os dados, os usuários devem ter alguns meios para manipular esse banco. As manipulações típicas são a recuperação, inserção, remoção e modificação dos dados. A linguagem de manipulação de dados (DML) é fornecida pelo SGBD para essa finalidade. Basicamente, existem dois tipos de DMLs: procedurais e declarativas. As procedurais requerem que um usuário especifique que dados são necessários e como obtê-los. As 8 declarativas exigem apenas que os usuários especifiquem o que desejam sem especificar como obtê-los. A parte de uma DML que envolve recuperação de informações é chamada de linguagem de consulta. 1.12 Software Gerenciador de Banco de Dados Um Sistema Gerenciador de Bancode Dados (SGBD) é um complexo sistema de software. Os principais módulos componentes de um SGBD encontram-se ilustrados, de forma simplificada, na Figura 1.4. O banco de dados e o catálogo são normalmente armazenados no disco. O acesso ao disco é controlado principalmente pelo sistema operacional do ambiente onde está instalado o SGBD. Um módulo de alto nível do SGBD, chamado de módulo de gerenciamento dos dados armazenados, controla o acesso à informação do SGBD que está armazenada em disco. O compilador DDL processa as definições do esquema, especificadas na DDL, e armazena as descrições dos esquemas no catálogo do SGBD. O catálogo inclui informações como nomes e tamanhos dos arquivos, nomes e tipos de itens de dados, detalhes de armazenamento de cada arquivo, informações de mapeamento entre os esquemas e restrições, além de muitas outras informações necessárias para os módulos do SGBD. Os módulos de software do SGBD acessam as informações do catálogo conforme necessário. O compilador de consulta manipula as consultas de alto nível que são feitas interativamente. Analisa sintaxe, compila ou interpreta a consulta criando um código de acesso ao BD e então gera as chamadas ao runtime. O pré-compilador extrai os comandos DML dos programas escritos em uma linguagem de programação hospedeira. Esses comandos são enviados ao compilador DML para compilação, gerando códigos para o acesso ao BD. O restante do programa é enviado para o compilador da linguagem de programação hospedeira. Os códigos-objeto para os comandos DML e o restante do programa são acoplados, formando uma transação customizada cujo código executável inclui as chamadas para o runtime. O processador de consulta de banco de dados em tempo de execução (runtime) recebe os comandos para a recuperação ou atualização e os executa no banco de dados. 9 Figura 1.4 - Arquitetura simplicada dos componentes de SGBD. (extraída de [ELMASRI 2006]) Abstrações no Projeto Conceitual de Banco de Dados Para auxiliar o projetista na tarefa de modelar os dados, existem os mecanismos de abstração de dados que permitem melhor representar a semântica da informação envolvida na aplicação. As abstrações comumente usadas no projeto conceitual são: classificação, agregação e generalização. Abstração de Classificação: é usada para agrupar objetos similares, caracterizados por propriedades comuns, em classes de objetos. Ex: classe EMPREGADO - instancias : (João, Pedro, ..., Maria). A classificação estabelece um relacionamento É- INSTANCIA-DE entre cada elemento da classe e a classe. Abstração de Agregação: é um conceito de abstração para construir objetos compostos a partir de seus objetos componentes. Ex: Uma entidade é uma agregação de atributos: PESSOA, composta por Nome, Sexo, Profissão. Um relacionamento é uma agregação de entidades e atributos. Um atributo composto é uma agregação de atributos. Podem-se agregar entidades relacionadas entre si, compondo uma entidade de nível mais alto. Essa abstração estabelece um relacionamento É-PARTE-DE entre os componentes e a classe. 10 Abstração de Generalização: define um relacionamento de subconjunto entre os elementos de duas ou mais classes. Ex: classes CARRO e BICICLETA são subconjuntos da classe VEÍCULO. Essa abstração estabelece um relacionamento É- UM entre a classe pai (chamada superclasse) e cada classe filha (subclasse). As subclasses são definidas com base em alguma característica da superclasse. No exemplo dado, essa característica é tipo de veículo (Carro, Bicicleta). Propriedade Fundamental da Generalização: todas as abstrações definidas para a classe genérica são herdadas por todas as classes que são subconjunto. Abstração de Divisão: nessa abstração subdivide-se os atributos em partes, criando um atributo composto; 1.13 Modelo ER (Entity-Relationship) Devido à popularidade e ampla utilização do modelo Entidade-Relacionamento (ER) para o projeto conceitual de bancos de dados, várias extensões desse modelo foram propostas, visando sua utilização para a modelagem de informações mais complexas. O modelo ER foi proposto por Peter Chen em 1976, sendo que originalmente o modelo incluia somente os conceitos de entidade, relacionamento e atributos; posteriormente outros conceitos foram introduzidos no modelo, tais como atributos compostos e hierarquias de generalização. As entidades representam classes de objetos do mundo real. Na Figura 1.5, Aluno e Professor são exemplos de entidades. São representadas graficamente através de um retângulo. Relacionamentos representam associações entre duas ou mais entidades. Na Figura 1.5, orienta representa um relacionamento binário entre as entidades Professor e Aluno, representando que um aluno tem 1 (um) professor como orientador e um professor orienta n (vários) alunos. Os relacionamentos são representados graficamente através de losangos. Os atributos representam propriedades das entidades ou dos relacionamentos. Na Figura 1.5 tem-se para a entidade Aluno os atributos nro_aluno e nome; Professor possui os atributos nome, sexo e nro_orientados. O atributo nro_oritentados é atributo derivado, o valor de um atributo derivado é determinado em função dos valores de outros atributos ou em função do relacionamento. 11 Figura 1.5 Exemplo de Diagrama Entidade-Relacionamento Cardinalidade mínima e máxima de uma entidade em um relacionamento Para indicar, de forma mais precisa, a cardinalidade de um relacionamento, pode-se usar uma notação que indique a ocorrência mínima e máxima de cada entidade no relacionamento. Por exemplo, a cardinalidade do relacionamento da Figura 1.6 indica que um aluno pode ou não ter um orientador e pode ter no máximo 1 orientador; um professor orienta vários alunos, podendo haver professor que não orienta nenhum aluno. Figura 1.6 Exemplo de notação de Cardinalidade Mínima e Máxima de um Relacionamento Cardinalidade mínima e máxima de um atributo Os atributos também são caracterizados por cardinalidade mínima e máxima. Por exemplo, na entidade Professor, da Figura 1.7, o atributo títulos possui cardinalidade mínima 1 e máxima n, indicando que cada professor deve ter no mínimo um título e pode ter vários. Quando não especificado no atributo, o valor da cardinalidade é (1,1). A notação comumente adotada na literatura para um atributo multivalorado é um circulo duplo. A notação de cardinalidade mínima e máxima foi adotada somente neste material. Figura 1.7 Cardinalidade mínima e máxima de um atributo. 12 Cardinalidade mínima de atributo igual a 0 (zero) indica atributo opcional; cardinalidade máxima de atributo maior que 1 (um) indica que o atributo é multivalorado. Atributos compostos Um atributo composto representa um grupo de atributos que possuem uma afinidade em significado ou uso. Como exemplo, considere o atributo endereço na Figura 1.8, que é composto por Rua, Cidade, Estado e Nro. Figura 1.8 Exemplo de Atributo Composto Atributos derivados Um atributo derivado é um atributo cujo valor pode ser gerado a partir de outros valores armazenados no banco de dados. Na Figura 1.7, o atributo nro-orientandos é um atributo derivado, pois pode ser calculado através do relacionamento orienta. Observe que um atributo derivado é representado através de uma elipse tracejada. Um identificador interno é um atributo ou grupo de atributos que determina uma entidade. Será adotada a representação da Figura 1.9 para identificador interno. Figura 1.9 Identificador interno RA.Quando uma entidade B é identificada através de outra entidade A associada a ela, tem-se um identificador externo. A entidade B é chamada entidade fraca. A Figura 1.10 apresenta a notação para a identificação externa. Essa notação indica que o identificador de A faz parte do identificador de B (Id-B é um identificador parcial de B e isso está indicado através de um grifo tracejado). Enderço rua nro Cidade Estado 13 Figura 1.10 Exemplo de Identificador Externo 1.14 Extensão do Modelo ER Para permitir melhor expressar as informações a serem modeladas, foram introduzidos no modelo ER as hierarquias de generalização e de subconjunto. Hierarquia de Generalização: Uma classe E é uma generalização de um grupo de classes E1, E2, ..., En. Se cada objeto das classes E1, E2, ..., En é também um objeto da classe E. Uma forma de representar uma hierarquia de generalização é dada na Figura 1.11. Propriedades de Cobertura da generalização Cobertura TOTAL ou PARCIAL: E E1 E2 En . . . Figura 1.11 Hierarquia de generalização 14 A cobertura de uma generalização é total (t) se cada elemento da classe genérica é mapeada para pelo menos um elemento das classes especializadas. Ex: A generalização formada pela classe PESSOA e as subclasses HOMEM e MULHER (Figura 1.12) possui cobertura total. A cobertura é parcial (p) se existe algum elemento da classe genérica que não é mapeado para nenhum elemento das subclasses. Exemplo: Suponha que VEÍCULO é uma classe que contém outros tipos de veículos além de carros e bicicletas. A generalização da Figura 1.12 é parcial. Figura 1.12- cobertura total Figura 1.13- cobertura parcial Cobertura EXCLUSIVA (DISJUNÇÃO) ou de SOBREPOSIÇÃO (OVERLAPPING): A cobertura de uma generalização é exclusiva (e) se cada elemento da classe genérica é mapeado para no máximo um elemento das subclasses. Por exemplo, a Figura 1.14 representa uma cobertura exclusiva. (p,e) Figura 1.14. Cobertura parcial e exclusiva. A cobertura é de sobreposição (s) se existe algum elemento da classe genérica que é mapeado para elementos de duas ou mais subclasses diferentes. Por exemplo, na Figura 1.15, supondo que pode existir aluno que cursa a graduação e a pós-graduação ao mesmo tempo, tem-se uma cobertura de sobreposição. parcial total Pessoa Homem Mulher Veículo Carro Bicicleta Veículo Carro Bicicleta 15 Figura 1.15 Cobertura de sobreposição. Notação: Para denotar o tipo de cobertura de uma hierarquia de generalização será usada a seguinte notação: (t,e), (t,s), (p,e), (p,s) e será indicado como na figura 1.12. Quando em uma generalização a cobertura não está especificada, admite-se que é (t,e). Hierarquia de Subconjunto: uma entidade E1 é um subconjunto de uma entidade E se toda ocorrência de E1 for também uma ocorrência de E (Figura 1.17). É um caso particular da hierarquia de generalização. Numa hierarquia de subconjunto o tipo de cobertura é (p,e) sempre. A representação de hierarquia de subconjunto é dada na Figura 1.16 Observações: 1. O identificador da entidade genérica é também um identificador para as entidades da especialização. 2. Entidades da especialização podem ter outros identificadores, como mostrado na figura Figura 1.18. sobreposição Aluno Aluno- Graduaçao Aluno-Pós- Graduação Cliente Cliente Especial nro-cli nome-cli endereço vantagens Figura 1.16. Exemplo E E1 e1 e2 e3 e4 e5 Figura 1.17. Hierarquia de subconjunto. 16 1.15 Considerações finais Aqui apresentamos os conceitos básicos e definições usadas em projeto de banco de dados. Neste capítulo, vimos os principais conceitos envolvidos no projeto conceitual de um banco de dados. Vamos aprofundar esse conhecimento no próximo capítulo que é dedicado especificamente para projeto e refinamento do projeto conceitual de um banco de dados. 1.16 Exercícios 1. O que é banco de dados? 2. O que é um SGBD? 3. Qual é a diferença de um Modelo de Dados e um Esquema de Dados? 4. O que é o Modelo Conceitual de Dados? 5. O que é o Modelo Lógico de Dados? 6. O que é o Modelo Físico de Dados? 7. A definição do tipo de índice a ser usado em uma tabela faz parte de qual etapa de um projeto de banco de dados? 8. A definição do tipo de um atributo (inteiro, alfanumérico,…) faz parte de qual etapa de um projeto de banco de dados? 9. Nas figuras a seguir, classifique a cobertura das especializações (total/parcial e exclusiva/sobreposição). RG Nome título Situação- Serv-militar nome-solteira nro-emp nome divisão categoria posição Pessoa Homem Mulher Empr Chefe Gerente Militar divisão ident-na-divisão Figura 1.18. Exemplo de hierarquia. 17 10. Interprete as hierarquias de generalização/especialização como um tipo de relacionamento. Como as restrições de cobertura (total/parcial e exclusiva/sobreposição) se relacionam com as restrições de relacionamento total, entidade fraca e cardinalidade mínima e máxima? 11. Transforme as hierarquias da questão 9 em relacionamentos. 12. Simplifique o esquema conceitual a seguir: (c) 18 13. Faça o esquema conceitual para os seguintes requisitos. - Uma oficina mecânica mantém informações sobre todos seus clientes, fornecedores e funcionários. - De cada pessoa armazena-se seu nome, RG, CPF, endereço, telefone (no mínimo 1), e-mail. - De cada funcionário, armazena-se a data de contratação, seu salário total e seu salário-hora; - De cada fornecedor armazena-se seu cnpj - Para cada serviço realizado, armazena-se os funcionários que o executaram, a data em que o mesmo foi realizado, o tempo demorado e o valor final cobrado (calculado com base no preço das peças, custo da mão de obra, acrescida em 30%); - Um serviço pode envolver produtos/peças comprados de fornecedores. Assim para cada serviço, os produtos usados e os fornecedores onde os mesmos foram obtidos devem ser cadastrados; Os fornecedores variam os preços dos produtos. Assim para cada peça do serviço realizado, deve ser armazenado o preço da mesma ao ser comprada; - Mantêm-se todos os tipos de serviços realizados na oficina. 1.17 Estudos complementares Ler Capítulos 1 e 2 do Livro: Heuser, C.A. Projeto De Banco De Dados Editora Bookman, Porto Alegre, 6a. Edição, 2009. 1.18 Bibliografia Adicional Batini, C.; Ceri, S. & Navathe, S.B. - Conceptual Database Design. The Benjamin/Cummings Publishing Company, Inc., 470p., 1992. Elmasri, R.E. & Navathe, S.B.– Fundamentos de Banco de Dados. Addison-Wesley, 4a. Edição, 2005. Silberchatz, A.; Korth, H.F.; Sudarshan, S. - Sistemas deBanco de Dados. Makron Books, 3a.Edição, 1999. Date, C.J. - Introdução a Sistemas de Banco de Dados. Editora Campus, (tradução da 8a. edição), 2004. 19 Heuser, C.A. – Projeto de Banco de Dados. Editora Sagra-Luzzato, 5a. Edição, 2001.
Compartilhar