Baixe o app para aproveitar ainda mais
Prévia do material em texto
Banco de Dados I 1 1º Módulo de Informática Etec – Matão - 2014 SUMÁRIO INTRODUÇÃO ..................................................................................................................................... 3 1 INDEPENDÊNCIA DE DADOS ...................................................................................................... 3 2 SISTEMA GERENCIADOR DE BANCO DE DADOS (SGBD) .................................................. 4 2.1 CARACTERÍSTICAS DE UM SGBD ................................................................................................................. 4 3 DEFINIÇÕES ..................................................................................................................................... 6 4 O MODELO ENTIDADE-RELACIONAMENTO ......................................................................... 6 4.1 ENTIDADES ................................................................................................................................................. 6 4.2 ATRIBUTOS ................................................................................................................................................ 7 4.3 CHAVE PRIMÁRIA ....................................................................................................................................... 7 4.4 ATRIBUTOS MULTIVALORADOS ................................................................................................................. 8 4.5 ATRIBUTOS COMPOSTOS ........................................................................................................................... 9 4.6 ATRIBUTO DERIVADO................................................................................................................................. 9 EXERCÍCIOS ...................................................................................................................................... 10 4.7 ENTIDADES FRACAS...................................................................................................................................10 5 RELACIONAMENTOS.................................................................................................................. 11 5.1 CARDINALIDADE DOS RELACIONAMENTOS ...............................................................................................11 EXERCÍCIOS ...................................................................................................................................... 12 5.2 ATRIBUTOS DE RELACIONAMENTO ...........................................................................................................13 5.3 GRAU DOS RELACIONAMENTOS ................................................................................................................13 Relacionamento Unário ou Auto Relacionamentos .........................................................................................13 Relacionamentos Binários ..............................................................................................................................14 Relacionamentos Ternários ............................................................................................................................14 Como Determinar as Cardinalidades de um Relacionamento Ternário ...........................................................14 EXERCÍCIOS ...................................................................................................................................... 15 6 MAPEAMENTO DO MODELO ER PARA MODELO RELACIONAL ................................... 16 Banco de Dados I 2 1º Módulo de Informática Etec – Matão - 2014 MAPEANDO ENTIDADES .................................................................................................................................16 ENTIDADES FRACAS ........................................................................................................................................16 RELACIONAMENTO BINÁRIO COM CARDINALIDADE 1:1 .................................................................................16 RELACIONAMENTO BINÁRIO COM CARDINALIDADE 1:N ................................................................................17 RELACIONAMENTO BINÁRIO COM CARDINALIDADE M:N ...............................................................................17 RELACIONAMENTOS TERNÁRIOS ....................................................................................................................18 ATRIBUTOS COMPOSTOS E MULTIVALORADOS ..............................................................................................18 RELACIONAMENTO UNÁRIO (1:1) ...................................................................................................................18 RELACIONAMENTO UNÁRIO (1:N) ..................................................................................................................19 RELACIONAMENTO UNÁRIO (N:M) .................................................................................................................19 EXERCÍCIOS ...................................................................................................................................... 19 GENERALIZAÇÃO E ESPECIALIZAÇÃO ..................................................................................... 22 RELACIONAMENTOS ENTRE ENTIDADES ESPECIALIZADAS ..............................................................................22 MAPEAMENTO DE GENERALIZAÇÃO E ESPECIALIZAÇÃO .................................................................................23 Outras Formas de Mapeamento .....................................................................................................................23 Outras Formas de Mapeamento .....................................................................................................................24 Outras Formas de Mapeamento .....................................................................................................................25 AGREGAÇÃO ..................................................................................................................................... 25 DIAGRAMA E-R COM RELACIONAMENTOS REDUNDANTES.............................................................................26 MAPEANDO AGREGAÇÃO ...............................................................................................................................27 OUTRO EXEMPLO DE AGREGAÇÃO .................................................................................................................27 EXERCÍCIOS ...................................................................................................................................... 28 MAPEAMENTO ...............................................................................................................................................28 MODELAGEM CONCEITUAL .............................................................................................................................30 Construa o DER e depois faça o mapeamento .................................................................................................30 Banco de Dados I 3 1º Módulo de Informática Etec – Matão - 2014 INTRODUÇÃO Com o surgimento de aplicações computacionais sentiu-se a necessidade de armazenar informações de maneira que elas pudessem ser usadas posteriormente, para essas informações dá-se o nome de Dados. Pode-seentender por Banco de Dados qualquer sistema que reúna e mantenha organizada uma série (conjunto) de informações relacionadas a um determinado assunto em uma determinada ordem. A lista telefônica é um exemplo, nela percebemos que todos os dados (informações) referentes a uma pessoa estão na mesma linha. Com isso surgiu o conceito de Sistema Gerenciador de Banco de Dados (SGBD). Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses dados. Esse conjunto de dados é comumente chamado de Banco de Dados. O principal objetivo de um SGBD é proporcionar um ambiente tanto conveniente quanto eficiente para a recuperação e armazenamento das informações do banco de dados. SGBDs são projetados para gerir grandes volumes de informações. Devem possuir mecanismos para definição e manipulação de dados, além de prover compartilhamento e segurança dos mesmos. 1 INDEPENDÊNCIA DE DADOS O desenho a seguir representa um sistema de processamento de arquivo típico: De acordo com a figura 1, nota-se que os programas gravam seus dados em disco, seguindo estruturas próprias. Para acessá-los é necessário conhecer sua estrutura. Se vários programas compartilham seus dados, todos devem conhecer e manipular as mesmas estruturas. Arquivo Cliente Figura 1 - Sistema de Processamento de Arquivo Resumindo: Banco/Base de Dados: Coleção, conjunto de dados relacionados; Dados: Valor de um campo armazenado, matéria-prima para obtenção de informação; Informação: Dados compilados e processados de acordo com solicitação de consultas e análises. Banco de Dados I 4 1º Módulo de Informática Etec – Matão - 2014 Se algum programa precisar de alguma mudança de dados, todos os programas terão que ser alterados, mesmo que a alteração ocorra em dados que ele não utiliza. Se entre os programas e os dados for colocado um sistema que converte o formato em que os dados estão gravados para o formato específico que cada programa precisa dos dados, então cada programa: Vê apenas os dados que lhe interessa; Não precisa entrar em detalhes de como seus dados estão fisicamente gravados; Não precisa ser modificado se a estrutura de dados que ele não utiliza for mudada. É feita uma conversão específica dos dados gravados para a forma usada em cada programa. Alterar os dados obriga a alterar a forma de conversão para cada programa, mas não cada programa em si. As alterações ficam concentradas nesse sistema intermediário. Esse sistema intermediário é chamado de Sistema Gerenciador de Banco de Dados (Figura 2). 2 SISTEMA GERENCIADOR DE BANCO DE DADOS (SGBD) Como já foi dito, um SGBD é um conjunto de programas com a finalidade de manipular um conjunto de dados. A introdução de um SGBD em uma organização demanda o surgimento de um novo profissional, o Administrador de Banco de Dados (DBA). O DBA é responsável pela manutenção do SGBD e da Base de Dados em si, centralizando todo o gerenciamento sobre a estrutura dos dados da empresa. 2.1 CARACTERÍSTICAS DE UM SGBD Seguem as características que um SGBD deve ter: BD SGBD Figura 2- Independência de Dados provida pelo SGBD Banco de Dados I 5 1º Módulo de Informática Etec – Matão - 2014 CONTROLE DE REDUNDÂNCIA: A redundância, ou seja, a repetição de dados deve ser evitada para se minimizar possibilidade de inconsistências. COMPARTILHAMENTO DE DADOS: Em um ambiente multiusuários deve- se possibilitar a manipulação simultânea de dados distintos ou dos mesmos dados conforme regras abaixo. CONTROLE DE ACESSO: Verificação automática do tipo de acesso pedido por cada usuário. Os níveis de segurança são estabelecidos para cada usuário independentemente, de acordo com suas necessidades. A identificação de cada usuário, por parte do SGBD, é feita pelo nome e senha cadastrados. CONTROLE DE TRANSAÇÃO: Transação é o conjunto de operações que devem ser executadas completamente. São normalmente usadas em situações críticas (atualizações ou inclusões) de longa duração que podem afetar a consistência do BD (Banco de Dados). O SGBD deve utilizar mecanismos internos para que nenhuma falha ocorra durante a execução da transação. ACESSO EM MÚLTIPLAS INTERFACES: Possibilidade usar diversas interfaces mesmo se o SGBD estiver sendo utilizado. Por exemplo: Se existe uma aplicação em JAVA com o SGBD MySQL, se trocar a linguagem para PHP, não é necessário fazer alterações no SGBD. RESTRIÇÕES DE INTEGRIDADE: Estabelecimento de um formato para os dados inseridos de modo a garantir integridade e facilitar o armazenamento. Ex. tamanho dos nomes sempre igual a 30 e em maiúsculo, armazenamento dos salários em dólar, etc. Algumas regras de integridade são estabelecidas pelo próprio SGBD para manter o BD consistente e outras são definidas pelo DBA por meio de sentenças condicionais que são verificadas toda vez que um dado é armazenado no BD. BACKUP E RECUPERAÇÃO: Estabelecer o backup automático do BD total ou parcial em momentos estabelecidos pelo DBA. Proporcionar proteção contra a perda de informações devido a falhas no dispositivo de armazenamento (discos). INDEPENDÊNCIA DE DADOS: A descrição física dos arquivos é mantida internamente pelo SGBD e é de sua inteira responsabilidade e exclusividade. Programas aplicativos não dispõem da descrição física e sim de uma descrição externa. Alterações nos arquivos podem não afetar os programas aplicativos. INDEXAÇÃO AUTOMÁTICA: Com a indicação explícita dos atributos que serão mais utilizados em consultas, o SGBD cria os arquivos de indexação que tornarão mais rápidas as pesquisas. A estrutura de indexação e de organização dos arquivos de dados é própria de cada SGBD e normalmente não é de domínio dos usuários comuns. Banco de Dados I 6 1º Módulo de Informática Etec – Matão - 2014 3 DEFINIÇÕES • Um Banco de Dados é uma coleção de dados logicamente relacionados, com algum significado. Associações aleatórias de dados não podem ser chamadas de base de dados; • Um Banco de Dados é projetado, construído e preenchido (instanciado) com dados para um propósito específico. Ele tem um grupo de usuários e algumas aplicações pré-concebidas para atendê-los; • Um Banco de Dados representa algum aspecto do mundo real, também chamado de base de dados, tendo alguma fonte de dados, algum grau de interação com eventos do mundo real e uma audiência que está ativamente interessada no seu conteúdo. Construir uma base de dados é o processo de armazenar os dados em algum meio que seja controlado pelo SGBD. Manipular uma base de dados indica a utilização de funções como a de consulta, para recuperar dados específicos, modificação da base de dados para refletir mudanças no “mini - mundo” (inserções, atualizações e remoções), e geração de relatórios. 4 O MODELO ENTIDADE-RELACIONAMENTO O uso do Modelo Entidade-Relacionamento (MER) foi apresentado por Peter Cher em 1976. Atualmente não existe um padrão único de modelo E- R(Entidade - Relacionamento) aceito universalmente; em vez disto, há um conjunto de conceitos dos quais se origina a maioria das variantes do E-R. No MER, os elementos que o compõe são representados graficamente através da ferramenta denominada Diagrama Entidade - Relacionamento (DER). A seguir são descritos os principais elementos que compõe o MER. 4.1 ENTIDADES Define-seentidade como aquele objeto que existe no mundo real com uma identificação distinta e com um significado próprio. São as “coisas” que existem no negócio (objeto de análise), ou ainda, descrevem o negócio. Se alguma “coisa”, existente no negócio gera interesse de se manter os dados, isto a caracteriza como uma Entidade do Negócio. Entidades de um mesmo tipo são agrupadas em Classes de Entidade. Assim, a classe de entidades FUNCIONARIOS é o conjunto de todas as instâncias de funcionários. Neste texto, classes de entidades estão impressas em letra maiúscula. Cada ocorrência de um funcionário dentro da classe FUNCIONARIO é denominada de Instância de Entidade. Alguns exemplos de instancias de entidades: O FUNCIONARIO João; O VEICULO Corsa; A ALUNA Maria; O CLIENTE Pedro; O PRODUTO A323.... Banco de Dados I 7 1º Módulo de Informática Etec – Matão - 2014 A representação gráfica de uma entidade no MER se realiza através de um retângulo, com o nome desta entidade em seu interior (sem utilizar acentuação), como mostra a figura 4. 4.2 ATRIBUTOS Toda entidade possui propriedades (características) que são denominadas Atributos. No MER supõe-se que todas as instâncias de uma dada classe de entidade possuem os mesmos atributos. Considere a entidade FUNCIONARIO em uma empresa. O que descreve esse funcionário, quais são as características que ele possui que são do interesse da empresa? Funcionário é descrito por: número de matrícula nome data da admissão Como é representado na tabela 1. Tabela 1 - Entidade Funcionário numero_Matricula nome data_Admissao 4455 João 24/04/1991 4456 Pedro 20/03/1992 4457 Manuel 14/04/1992 4458 Carlos 01/04/1995 No DER os atributos PODEM ser representados por uma elipse em torno de seu nome, como mostra a figura 5. Exemplo: 4.3 CHAVE PRIMÁRIA Não existem DUAS INSTÂNCIAS DE ENTIDADES IGUAIS. Sempre deverá existir um atributo (ou atributos) que nunca se repete. CLIENTE FUNCIONARIO PRODUTO NOTA FISCAL ORDEM DE PRODUCAO Figura 4 – Exemplos de Entidade Figura 5 – Representação de Atributos FUNCIONARIO Matricula Nome Data_Admissao Atributos Banco de Dados I 8 1º Módulo de Informática Etec – Matão - 2014 O que é uma instância de entidade? É a combinação de valores atribuídos a um participante da entidade. Imaginemos a entidade FUNCIONARIO e considerando que uma empresa pode ter vários funcionários, esses valores atribuídos são as informações que a empresa deseja armazenar de seus funcionários, por exemplo: nome, telefone, endereço, etc. Então, chamamos de instância de entidade cada um desses funcionários. Este atributo tem a função de atuar como identificador único das instâncias da entidade, e é denominado de Chave Primária. No exemplo a seguir, a chave primária é o atributo MATRICULA. Então, como a chave primária identifica uma instância da entidade, ela tem duas restrições importantes: Não se repete; Não contém valor NULO. Um VALOR NULO é um valor que não tem significado algum para o mundo real, somente para o conceitual. No DER, um atributo chave primária é representa por um traço abaixo de seu nome, como mostra a figura 6. Além da chave primária também temos: _Superchave: é o conjunto de um ou mais atributos que, tomado coletivamente, permite-nos identificar unicamente uma entidade no conjunto de entidade. _Chaves candidatas: chaves com unicidade em uma relação: Ex: CPF, RG, título eleitoral. Todos os atributos que conseguem identificar uma Relação. Chave secundária: chave sem unicidade em uma relação. Ex: idade, sexo, endereço. 4.4 ATRIBUTOS MULTIVALORADOS São atributos que para cada instância de uma entidade, ele pode ocorre várias vezes. No DER, é representado por duas elipses em torno do nome do atributo. Ex.: Telefones para clientes ou alunos, Nomes de cidades à beira de uma rodovia, Nomes dos autores de um livro, etc. A figura 7 representa o atributo telefone dos clientes de uma empresa. A representação em um SGBD para atributos multivalorados é mostrada na tabela 2: Figura 6 – Atributo Chave Primária FUNCIONARIO Matricula Nome Data_Admissao Chave primária Banco de Dados I 9 1º Módulo de Informática Etec – Matão - 2014 Tabela 2 - Representação em um SGBD de atributos multivalorados da entidade cliente RG Nome 1116 João 1220 Pedro 4.5 ATRIBUTOS COMPOSTOS São atributos formados por outros atributos. Ex: telefones, endereços, nome, área de uma sala, etc. A figura 8 representa atributos compostos de uma entidade: Em um SGBD, os atributos são representados da maneira como mostra a tabela 3. Tabela 3 - Atributo Composto em um SGBD Numero Comprimento Largura Altura 100 5 3 3 200 5 2 3 300 7 3 3 4.6 ATRIBUTO DERIVADO São atributos derivados de outros atributos ou originados de algum cálculo. Por exemplo, na figura 9, temos os campos idade e qtde_de_func. O primeiro é calculado a partir da data de nascimento e o segundo é obtido através da contagem dos funcionários. Por esta razão, este atributo não precisa ser armazenado. RG Telefone 1116 3382-0000 1116 9711-1111 1220 9700-0000 Figura 7 – Atributo Multivalorado CLIENTE No me RG Telefone Atributo Multivalorado Sala Numero Dimensao Comprimento Largura Altura Figura 8 – Atributo Composto Banco de Dados I 10 1º Módulo de Informática Etec – Matão - 2014 EXERCÍCIOS Para os exercícios abaixo crie o DE-R e identifique a chave primária para cada entidade. 1. Em uma Empresa trabalham muitos funcionários. Deseja-se guardar do funcionário o código, nome, RG, CPF, endereço (formado por rua, número e bairro), telefone residencial e telefone celular. 2. Uma locadora possui muitos clientes. Deseja-se saber do cliente seu código, nome, endereço, bairro, cidade, CEP, telefones, data de nascimento e idade. 3. Um hotel possui muitos quartos. Deseja-se armazenar dos quartos seu numero, tipo e andar. 4.7 ENTIDADES FRACAS Pode ocorrer que alguma instância de entidade possua uma dependência existencial com outra instância de entidade e neste caso cada instância daquela entidade, existe somente porque está associada à outra instância de entidade diferente. Dizer que uma Entidade é fraca, significa dizer: QUE NÃO INTERESSA MANTER NA BASE OS DADOS DE UMA ENTIDADE SE ELA NÃO ESTIVER RELACIONADA COM OUTRA ENTIDADE. Este tipo de Entidade é denominado Entidade Fraca. Exemplo: Dependente é um tipo de Entidade Fraca, pois existe somente se existir o funcionário. A figura 10 representa o DER da entidade fraca. Considerando a entidade Funcionário e seus Dependentes, a tabela 4 representa as instâncias de cada entidade: Tabela 4 - Representação das entidades Funcionários e Dependentes FUNCIONARIO Num_Func Nome Data_Admissão 4455 João 24/04/1991 4456 Pedro 20/03/1992 4457 Manuel 14/04/1992 4458 Carlos 01/04/1995 Dependente Figura 10 – Entidade Fraca Figura 9 – Atributo Derivado FUNCIONARIO Código Data_Nasc idade Qtde_de_func Atributo Derivado Banco de Dados I11 1º Módulo de Informática Etec – Matão - 2014 DEPENDENTE Num_Func Nome_dependente Parentesco 4455 Francisco Filho 4456 Daniel Filho 4456 Maria Filho 5 RELACIONAMENTOS O relacionamento existe quando um ou mais dados de uma tabela estão relacionados de alguma forma com um ou mais dados de outra tabela. Agora que já temos as definições de Entidades e de Relacionamento, vamos aprender como encontrá-los em um problema: Cliente faz empréstimos Desta frase, o que é Entidade e o que é relacionamento? Pode-se dizer que os SUBSTANTIVOS são as Entidades e os VERBOS são os Relacionamentos. Sendo assim tem-se: Entidades: Cliente e Empréstimo. Relacionamento: Faz A figura 11 representa graficamente um relacionamento. 5.1 CARDINALIDADE DOS RELACIONAMENTOS A quantidade de Entidades envolvidas em um Relacionamento é determinada pela Cardinalidade do Tipo de Relacionamento, ou seja, pode-se estabelecer a quantidade mínima e máxima de entidades envolvidas com cada entidade relacionada. A Cardinalidade Mínima que determina a quantidade mínima de entidades relacionadas é determinada por um número representativo, ou seja, 0 (zero), 1, 2,... N(muitos). Relacionamento Figura 11 – Representação gráfica de um relacionamento Cliente Emprestimo faz Figura 12 – Identificação de entidade e relacionamento ãp Banco de Dados I 12 1º Módulo de Informática Etec – Matão - 2014 A Cardinalidade Máxima que determina a quantidade máxima de Entidades relacionadas é determinada por um número representativo, ou seja, 0 (zero), 1, 2,... N (muitos). Cardinalidade 1:1 (um para um) Cardinalidade 1:N (um para muitos) Cardinalidade N:M (muitos para muitos) EXERCÍCIOS 1. Dentre os atributos num-matrícula, nome, endereço, CPF e data-nasc, relativos à entidade EMPREGADO, escolha aquele(s) que poderia(m) ser usado(s) para atributo chave primária da entidade. Representar o DER da entidade EMPREGADO. 2. Dentre os atributos num-placa, ano-fabricação, marca, cor, modelo e num- chassi referentes a um automóvel, que atributo(s) deveria(m) ser o atributo determinante da entidade AUTOMÓVEL? Faça o DER da entidade AUTOMÓVEL. 3. Uma Empresa possui funcionários. Do funcionário deseja-se guardar o número, nome e cargo. Um funcionário trabalha em uma Empresa. Deseja-se guardar da Empresa o CNPJ, nome, cidade, endereço. 4. Deseja-se fazer um banco de dados para uma rede de hotelaria. Um hotel possui quartos. Deseja-se guardar do quarto, o número, tipo, andar. Cada quarto pertence a apenas um hotel (código, nome, cidade). 5. Um soldado, que possui as características nome, registro militar (RM), data de nascimento, possui armas. Uma arma, que possui as características como número de série, registro e calibre, é de um soldado. Uma arma é limpa por vários soldados. Um soldado limpa várias armas 6. Os Atletas participam de competições. Em uma competição participam vários atletas. Descreva atributos para as competições e para os atletas. Ementa Disciplina possui 1 1 1 Aluno Disciplina cursa N M Departamento Funcionario possui N Banco de Dados I 13 1º Módulo de Informática Etec – Matão - 2014 5.2 ATRIBUTOS DE RELACIONAMENTO Considere a figura 13. Atributos de Relacionamentos são igualmente representados como elipses, ligadas aos conjuntos de Relacionamento. 5.3 GRAU DOS RELACIONAMENTOS Um Relacionamento pode envolver duas ou mais Entidades; O Grau do Relacionamento é o número de Entidades envolvidas; Desta forma podem-se categorizar os tipos de relacionamento. Abaixo seguem esses tipos: Relacionamento Unário ou Auto Relacionamentos Uma instância ou conjunto de instância de uma mesma Entidade, pode se relacionar com outra(s) instância(s) da mesma Entidade. Exemplos 1 e 2. Funcionário gerencia Funcionário Disciplina é pré-requisito de Disciplina Exemplo 1 O tipo de relacionamento Gerencia associa um funcionário com seu gerente, no qual ambas as entidades são membros do mesmo tipo de entidade Funcionário. Dessa forma o tipo entidade Funcionário participa duas vezes: uma vez no papel de gerente e outra no papel de funcionário. Exemplo 2 N M Aluno Disciplina cursa nota Figura 13 – Atributo de relacionamento ãp Disciplina Pré-requisito 1 Funcionario Gerencia N Banco de Dados I 14 1º Módulo de Informática Etec – Matão - 2014 Relacionamentos Binários Relacionamento que envolve duas Entidades. Relacionamentos Ternários Os conjuntos de relacionamento podem envolver mais de dois conjuntos de entidades. Como Determinar as Cardinalidades de um Relacionamento Ternário Para determinar as Cardinalidades, por exemplo, de ALUNO-PROFESSOR- DISCIPLINA, faça o seguinte: 1. Escolha uma Entidade, por exemplo, ALUNO, e pergunte: Para cada Aluno, quantos pares Professor-Disciplina eu tenho. 2. Coloque a resposta na Entidade ALUNO. Neste caso N. Isto é, um Professor lecionando uma Disciplina pode ter vários Alunos. 3. Escolhendo a Entidade PROFESSOR. Pergunta-se: Para cada Professor, quantos pares Aluno-Disciplina eu tenho. 4. Coloque a resposta na Entidade PROFESSOR. Neste caso 1. Isto é, um Aluno não pode ter em determinada certa Disciplina mais do que um Professor (no caso deste exemplo). 5. Escolhendo a Entidade DISCIPLINA. Pergunta-se: Para cada Disciplina, quantos pares Aluno-Professor eu tenho. 6. Coloque a resposta na Entidade Disciplina. Neste caso N. Isto é, um Professor pode lecionar a determinado Aluno mais do que uma Disciplina. Aluno Disciplina cursa N M Professor Aluno P A D Disciplina Banco de Dados I 15 1º Módulo de Informática Etec – Matão - 2014 EXERCÍCIOS Verificar na situação abaixo quais são as entidades, os atributos (Chave primária, compostos, multivalorados e derivados) e seus relacionamentos fazer a representação gráfica por meio do DER. 1. Um funcionário é supervisionado por um gerente (o gerente também é um funcionário). Um gerente supervisiona vários funcionários. Do funcionário deseja-se saber nome, CPF e endereço. 2. Um médico trata de pacientes. Do médico deseja-se saber CRM, nome e suas especializações. O médico pede exames para vários pacientes. Um paciente, no qual há necessidade de sabermos seu número, nome, endereço e idade, é tratado por vários médicos. Um paciente realiza vários tipos de exames. Um tipo de exame, destes há necessidade de guardar seu número, data e descrição, é feito por vários pacientes a pedido do médico. 3. Uma Transportadora quer automatizar seu controle de transporte. Ela deseja ter as seguintes informações de seus caminhões: marca, modelo, ano, capacidade de transporte e a data em que um motorista viajou com o caminhão (mais de um motorista pode dirigir um caminhão). Do motorista deseja-se saber nome, RG, idade, endereço e o caminhão com o qual já viajou. Um caminhão pode transportar diversos produtos, destes produtos deseja-se saber nome, marca, fabricante e data de transporte( um tipo de produto pode viajar em mais de um caminhão). 4. Uma empresa de agenciamento de mão-de-obra pretende informatizar o seu cadastro de profissionais, candidatos a empregostemporários, objetivando construir um banco de dados onde possa manter os dados cadastrais dos profissionais e seus contratos temporários com as empresas clientes. O profissional é identificado por um número de controle e, além dessa informação, ficam registrados o seu nome, endereço, nascimento e profissão. Os contratos de mão-de-obra temporária são feitos individualmente (um contrato para cada profissional) com as empresas clientes. Cada contrato é identificado por um número único, a vigência do contrato (data de início e de término) e o valor pago por hora trabalhada. As empresas clientes são identificadas por um CNPJ e possuem um nome e endereço. 5. Um médico (número, nome, especialidade) passa diversas receitas e cada receita é passada por apenas um médico. Uma receita (código da receita, data) pode ter vários medicamentos descriminados (Código, nome do medicamento, recomendação de uso), mas cada receita pertence a apenas um paciente (cpf, nome, idade, enfermidade), sendo que um paciente pode ter várias receitas. 6. Os clientes (sobre os quais deseja-se armazenar Número, Nome e Endereço) compram apólices de seguro (no mínimo uma para se tornar cliente). Sobre as apólices de seguro é importante armazenar Número e Valor. Cada apólice de seguro dá cobertura a apenas um veículo (Placa, modelo, marca, ano, valor). Caso o carro se envolva em acidentes e acione o seguro, é importante armazenar a Data, hora e o Local do acidente. Banco de Dados I 16 1º Módulo de Informática Etec – Matão - 2014 6 MAPEAMENTO DO MODELO ER PARA MODELO RELACIONAL O MER é um Modelo Conceitual: Pode ser usado para especificar conceitualmente a estrutura de dados de uma aplicação. O Modelo Relacional é um Modelo Lógico (porém bem próximo ao Físico): é uma descrição de um banco de dados no nível de abstração visto pelo usuário do SGBD. Assim, o modelo lógico é dependente do tipo particular de SGBD que estão sendo usado. O Mapeamento permite que se traduzam os esquemas concebidos com um modelo de conteúdo semântico mais alto para uma implementação utilizando um modelo lógico (ou físico). O Mapeamento do MER para o Modelo Relacional (MRel) é um procedimento executado em 6 passos consecutivos apresentados a seguir. MAPEANDO ENTIDADES Cada Conjunto de Entidades é mapeada como uma relação que envolve todos os atributos do conjunto de entidades. Os atributos CHAVES comporão a chave da relação. Aluno {RA, Nome} ENTIDADES FRACAS Conjunto de Entidades Fracas(CEF) são mapeadas numa relação formada por todos os atributos do CEF mais os atributos que são chave das relação ao qual o CEF depende. Funcionario {CodigoF, NomeFunc, Fone} Dependente {CodigoF, NomeDep, Idade} RELACIONAMENTO BINÁRIO COM CARDINALIDADE 1:1 Conjunto de Relacionamentos Binários (CRB) de Cardinalidade 1:1 não são representados como novas relações. Seus atributos são acrescentados numa das relações que mapeiam os Conjuntos de Entidades (CE) envolvidos (qualquer uma). Nessa mesma relação incluem-se também os atributos chave da relação que mapeia o outro CE. Aluno RA Nome Dependente Funcionario possui NomeDep Idade CodigoF Nome Fone N 1 Banco de Dados I 17 1º Módulo de Informática Etec – Matão - 2014 Disciplina {Sigla, Nome, Num_Creditos} Ementa {Nome, data_aprov, Sigla_disc} RELACIONAMENTO BINÁRIO COM CARDINALIDADE 1:N Conjunto de Relacionamentos Binários (CRB) de cardinalidade 1:N também não são representados como novas relações. Seus atributos são acrescentados na relação que mapeia o CE que ocupa o papel de cardinalidade N. Os atributos chave da relação que mapeia o CE que participa com cardinalidade 1 são também acrescentados na CE com papel de cardinalidade N. Professor={CodigoP, Nome} Disciplina={Sigla, Nome, Num_Creditos, CodigoP, Horario} RELACIONAMENTO BINÁRIO COM CARDINALIDADE M:N Cada CR Binário de Cardinalidade M:N é representado como uma nova relação. Os atributos da relação são os do CR mais os atributos chave das relações que mapeiam os CEs envolvidos. A Chave da Relação é a concatenação dos atributos chaves das relações que mapeiam os CEs envolvidos. Aluno= { RA, Nome} Disciplina= { Sigla, nome, Num_creditos} Matriculado= { RA, Sigla, nota} Aluno Disciplina Matriculado Nota RA Sigla Nome Num_creditos M N Nome 1 N Professor Disciplina possui Horario CodigoP Sigla Nome Num_Creditos Nome Banco de Dados I 18 1º Módulo de Informática Etec – Matão - 2014 RELACIONAMENTOS TERNÁRIOS Conjuntos de Relacionamentos de ordem maior do que dois com cardinalidade diferente de M:N:P têm um mapeamento complexo. Assim, usualmente se mapeiam os conjuntos de relação ternários, quaternários, etc. como se todos fossem de cardinalidade vários para vários para vários... etc. Aluno {RA, Nome} Disciplina {Sigla, nome, Num_creditos} Professor {Codigo, Nome} Monitora {RA, Sigla, Codigo} ATRIBUTOS COMPOSTOS E MULTIVALORADOS Os atributos compostos serão decompostos nas relações e os multivalorados tornar-se-ão relações cuja chave primária será composta pela chave da entidade possuidora do atributo mais o atributo multivalorado. Secretaria {Num_func, rua, bairro} Secretaria_Telefone {Num_func, telefone} RELACIONAMENTO UNÁRIO (1:1) Secretaria Num_func endereco rua bairro telefone 1 Pessoa casa 1 Cod_Pessoa Nome_Pessoa Aluno Disciplina monitora RA Sigla Nome Num_creditos M N Nome Professor Codigo Nome P Banco de Dados I 19 1º Módulo de Informática Etec – Matão - 2014 Pessoa {cod_Pessoa, nome_Pessoa, cod_Pessoa_Conjugue} RELACIONAMENTO UNÁRIO (1:N) Funcionario {cod_Func, nome_Func, cod_supervisor} RELACIONAMENTO UNÁRIO (N:M) Disciplina {cod_Disc, nome_Disc} Pre_requisito {cod_Disc, cod_pre_requisito} EXERCÍCIOS Faça o mapeamento dos relacionamentos abaixo: 1. Relacionamento Binário - cardinalidade 1:1 2. Relacionamento Binário - cardinalidade 1:N Conferencia organiza Comissao codConf Nome codCom Nro_membro 1 1 Data_instalacao 1 Funcionario supervisiona N Cod_Func Nome_Func M Disciplina Pré-requisitos N Cod_Disc Nome_Disc 1 Professor ministra Disciplina codP nomeP sigla nomeD N horario Banco de Dados I 20 1º Módulo de Informática Etec – Matão - 2014 3. Relacionamento Binário - cardinalidade N:M 4. Relacionamento unário ou auto relacionamento – Cardinalidade 1:N 5. Relacionamento unário ou auto relacionamento – Cardinalidade N:M 6. Relacionamento Ternário – Cardinalidade 1:N:N 7. Relacionamento Ternário – Cardinalidade M:N:P Aluno matricula Disciplina nro_Alu nomeA sigla nomeD N M Nota Pecas Componentes N M numero descricao codFunc nome Funcionario Supervisiona N 1 N Aluno monitora Disciplina Nro_Alu nomeA sigla nome D horario Professor Cod_P rof Nome P M 1 Banco de Dados I21 1º Módulo de Informática Etec – Matão - 2014 8. Relacionamento Binário: Entidade Fraca 1:N 9. Multivalorados 10. Faça o mapeamento do Diagrama E-R N P Projeto fornece Fornecedor CodProj Inicio codF nomeF qtde Peca codPeca nomePe M Livro possui Copia isbn titulo ncopia dataAquisicao 1 N Aluno Nro_Aluno NomeA Telefone s Graduacao corresponde Disciplina sigla nome D N 1 Turma CodigoT Horario Sala CodigoA Laboratorio Horario Aula_pratica tem 1 N Banco de Dados I 22 1º Módulo de Informática Etec – Matão - 2014 GENERALIZAÇÃO E ESPECIALIZAÇÃO Algumas entidades contêm conjunto de atributos específicos. Quando ocorre a situação de uma entidade possuir atributos que não fazem parte de todas as instâncias da entidade ou quando estas instâncias se relacionarem de maneira diferente com outras entidades, temos ai o conceito de GENERALIZAÇÃO/ ESPECIALIZAÇÃO. Considere a entidade CLIENTE com os atributos númeroCliente, NomeCliente e QuantiaDevida. Suponha que um CLIENTE pode ser uma única pessoa individual, uma associação ou uma corporação e que serão armazenados dados adicionais dependendo do tipo. Suponha ainda que estes dados adicionais são: CLIENTE-INDIVIDUAL: Endereco, NumeroPrevidenciaSocial CLIENTE-ASSOCIACAO: NomeAssociado, Endereco, Taxa CLIENTE-CORPORACAO: PessoaContato, Fone, NumeroIdenti_cacao Para modelar esta situação demos 2 alternativas: 1. Alocar todos estes atributos na entidade CLIENTE. Neste caso, alguns dos atributos não são aplicáveis a todas as entidades. 2. Definir 3 entidades para cada um dos tipos. As quais seriam: CLIENTE- INDIVIDUAL, CLIENTEASSOCIACAO e CLIENTE-CORPORACAO. A figura abaixo demonstra esta situação do cliente. Uma vez que a entidade CLIENTE é uma entidade genérica, ela é denominada de GENERALIZAÇÃO (ou entidade de nível superior) e as entidades INDIVIDUAL, ASSOCIADO e CORPORAÇÃO são denominadas ESPECIALIZAÇÃO (ou entidade de nível inferior). RELACIONAMENTOS ENTRE ENTIDADES ESPECIALIZADAS Entre as especializações pode haver relacionamento. Considere a figura abaixo, ela demonstra o relacionamento que existe entras as especializações PROFESSOR e ALUNO. Cliente Individual Associado Corporação NumeroCliente NomeCliente QuantiaDevida Endereço NumPrevSocial Endereço Taxa PessoaContato Telefone Banco de Dados I 23 1º Módulo de Informática Etec – Matão - 2014 MAPEAMENTO DE GENERALIZAÇÃO E ESPECIALIZAÇÃO Outras Formas de Mapeamento _ Modelo entidade relacionamento – E1: superclasse – E2, ..., En : subclasses de E1 _ Modelo relacional – as tabelas de E2 a En possuirão: _ os seus atributos específicos _ os atributos de E1 _ a chave primária de E1 _ Chave primária das subclasses – chave primária de E1 Aluno Professor Funcionário leciona Curso titulacao funcao Pessoa CPF Idade Nome numero Banco de Dados I 24 1º Módulo de Informática Etec – Matão - 2014 Outras Formas de Mapeamento _ Modelo entidade relacionamento – E1: superclasse – E2, ..., En : subclasses de E1 _ Modelo relacional – a tabela de E1 possuirá: _ os atributos de E1 _ os atributos de E2, ..., En _ o atributo discriminador, caso necessário Banco de Dados I 25 1º Módulo de Informática Etec – Matão - 2014 Outras Formas de Mapeamento _ Modelo entidade relacionamento – E1: superclasse – E2, ..., En : subclasses de E1 _ Modelo relacional – a tabela de E1 possuirá: _ os atributos de E1 – a tabela referente à junção das subclasses possuirá: _ os atributos de E2, ..., En _ a chave primária de E1 _ um atributo discriminador, caso necessário _ Chave primária da tabela referente à junção – chave primária de E1 AGREGAÇÃO Uma limitação do modelo E-R é que não é possível expressar relacionamentos entre relacionamentos. Para ilustrar esta necessidade, considere um banco de dados descrevendo informações sobre Funcionários que trabalham em um determinado Projeto e utilizam uma série de diferentes Máquinas em seus trabalhos. Usando o modelo básico de construção E-R, obtemos o diagrama E-R da figura abaixo. Banco de Dados I 26 1º Módulo de Informática Etec – Matão - 2014 DIAGRAMA E-R COM RELACIONAMENTOS REDUNDANTES No exemplo da figura anterior, o relacionamento usa deve empregar informações já existentes previamente no conjunto de relacionamento Trabalho. Além disso, há pares Funcionário-Trabalho que não usam nenhuma máquina, isto é, não estão em usa. A solução é usar a Agregação. A agregação é uma abstração por meio da qual, relacionamentos são tratados como entidades de nível superior. Assim, para nosso exemplo, o relacionamento Trabalho e as entidades FUNCIONÁRIO e PROJETO, tornam-se uma única entidade. Isto permite que relacionar o conjunto FUNCIONARIO, TRABALHO e PROJETO com a entidade MÁQUINA. A figura abaixo mostra a solução de nosso problema em forma de agregação. Agora com agregação, significa dizer que o conjunto Funcionário-Projeto nem sempre utilizam máquinas. Outros exemplos: Assassino-Vitima-Arma, Cliente-Conta-CartãoCrédito, Rua- Bairro-Linha. Agora que já temos a noção do uso da Agregação vamos analisar os casos em que se deve usá-la: Funcionário Projeto Máquina Id Horas Nome Numero Descricao Id Descricao usa trabalho M N N M Funcionário Projeto Máquina Id Horas Nome Numero Descricao Id Descricao usa trabalho M N N M Banco de Dados I 27 1º Módulo de Informática Etec – Matão - 2014 Quando é necessário identificar cada relacionamento. Quando é necessário mais de um relacionamento envolvendo as mesmas entidades. MAPEANDO AGREGAÇÃO _ Dados vistos em um nível mais baixo – Atributos dos tipos-relacionamentos – Chaves primárias dos tipos-entidades Projeto (ID_Proj, nome) Funcionário (Numero, Descrição) Trabalha (ID_Proj, numero, horas) Maquina (ID_maquina, descrição_maq) Usa (ID_Proj, numero, ID_maq) OUTRO EXEMPLO DE AGREGAÇÃO Funcionário Projeto Máquina Id Horas Nome Numero Descricao Id Descricao usa trabalha M N N M Banco de Dados I 28 1º Módulo de Informática Etec – Matão - 2014 Observações gerais sobre agregação: Agregações envolvendo relacionamentos 1:N NÃO existem, pois nesse caso cada entidade do lado N já indica, por meio do relacionamento, com qual entidade do lado 1 está relacionada. As entidades dentro da agregação podem ser relacionar, normalmente, com outras entidades, para isso, a linha do relacionamento deve ultrapassar os limites da agregação. Nada impede de se fazer uma agregação envolvendo mais de dois conjuntos de entidades relacionados por um relacionamento, mas só pode haver um relacionamento em uma agregação. Por fim, vamos aprender como se "lê" uma agregação tomando como exemplo a figura acima: a leitura é feita de "dentro pra fora", ou seja, lê-se primeiro o relacionamento dentro da agregação para em seguida ler o que está fora da mesma. Sendo assim, no exemplo a leitura é feita da seguinte forma: um médico consulta um paciente e, a partir dessa consulta, pode ou não solicitar um exame. EXERCÍCIOS MAPEAMENTO Exercício 1 - Exercício 2 - Exercício 3 - Banco de Dados I 29 1º Módulo de Informática Etec – Matão - 2014 Exercício 4 - Exercício 5 - Banco de Dados I 30 1º Módulo de Informática Etec – Matão - 2014 6. Mapeie o esquema entidade relacionamento em um esquema relacional, especifique todas as chaves primárias e estrangeiras. MODELAGEM CONCEITUAL Construa o DER e depois faça o mapeamento 7. Construa um diagrama E-R (incluindo as cardinalidades) para controle do prontuário de pacientes de um hospital. O hospital possui um conjunto de pacientes e um conjunto de médicos. No registro dos pacientes, temos o nome, RG, CPF, endereço e telefone. No registro dos médicos temos o nome, especialidade, RG, CPF, CRM, endereço e telefone. Cada paciente tem associado a si um prontuário (sua ficha), onde são registradas basicamente todas as ocorrências, exames, consultas, medicamentos ministrados associados a ele. Cada registro no seu prontuário, além de ter a data tem que estar relacionado a um médico, que é o responsável pela informação do registro cadastrado no sistema. 8. Construa um diagrama E-R para uma companhia de seguros de automóveis com um conjunto de clientes, onde cada um possui um um número de carros. Banco de Dados I 31 1º Módulo de Informática Etec – Matão - 2014 Os dados do cliente são nome, RG, CPF, endereço e telefone. Do carro deve- se armazenar a placa, código Renavan, fabricante, modelo, e ano. Associado a cada carro há um histórico de ocorrências. Um carro podem possuir várias ocorrências ou nenhuma. Cada ocorrência deve ter uma data, local e descrição. 9. Exemplo de projeto conceitual de um banco de dados EMPRESA a) A empresa está organizada em departamentos. Cada departamento tem um nome único, um número único e um empregado que controla o departamento. Temos a data em que o empregado começou a gerenciar o departamento. E este pode ter diversas localizações. b) Um departamento controla um número qualquer de projetos, cada qual com um nome único, um número único e uma localização. c) Armazenamos o nome de cada empregado, o número do seguro social, endereço, salário, sexo e data de nascimento. Um empregado está alocado a um departamento, mas pode trabalhar em diversos projetos que não são controlados, necessariamente, pelo mesmo departamento. Controlamos o número de horas semanais que um empregado trabalha em cada projeto. Também controlamos o supervisor direto de cada empregado. d) Queremos ter o controle dos dependentes de cada empregado para fins de seguro. Guardamos o primeiro nome, sexo, data de nascimento de cada dependente, e o parentesco dele com o empregado. 10. Um berçário deseja informatizar suas operações. Quando um bebê nasce, algumas informações são armazenadas sobre ele, tais como: nome, data do nascimento, peso do nascimento, altura, a mãe deste bebê e o médico que fez seu parto. Para as mães, o berçário também deseja manter um controle, guardando informações como: cpf, nome, endereço, telefone. Para os médicos, é importante saber: CRM, nome, telefone celular e especialidade. 11. Uma floricultura deseja informatizar suas operações. Inicialmente, deseja-se manter um cadastro de todos os seus clientes, mantendo informações como: CPF, nome, telefone e endereço (Rua, número, bairro, cidade). Deseja também manter um cadastro contendo informações sobre os produtos que vende, tais como: nome do produto, tipo, preço e quantidade em estoque. Quando um cliente faz uma compra, a mesma é armazenada, mantendo informação sobre o cliente que fez a compra, a data da compra, o valor total e os produtos comprados. 12. Uma biblioteca deseja manter informações sobre seus livros. Inicialmente, quer armazenar para os livros as seguintes características: ISBN, título, ano, editora e autores deste livro. Para os autores, deseja manter: nome e nacionalidade. Cabe salientar que um autor pode ter vários livros, assim como um livro pode ser escrito por vários autores. Cada livro da biblioteca pertence a uma categoria. A biblioteca deseja manter um cadastro de todas as categorias existentes, com informações como: código da categoria e descrição. Uma categoria pode ter vários livros associados a ela. Banco de Dados I 32 1º Módulo de Informática Etec – Matão - 2014 13. Mapeie o diagrama ER abaixo em um esquema relacional. 14. Usando seus conhecimentos de generalização/especialização, analise as duas classes abaixo e proponha um novo modelo que elimine as duplicações. Depois de corrigido, faça o mapeamento para o modelo relacional. Banco de Dados I 33 1º Módulo de Informática Etec – Matão - 2014 15. Usando seus conhecimentos de generalização/especialização, analise as duas classes abaixo e proponha um novo modelo que elimine as duplicações. Depois de corrigido, faça o mapeamento para o modelo relacional. 16. Usando seus conhecimentos de generalização/especialização, analise as duas classes abaixo e proponha um novo modelo que elimine as duplicações. Depois de corrigido, faça o mapeamento para o modelo relacional. Banco de Dados I 34 1º Módulo de Informática Etec – Matão - 2014 17. Elaborar o esquema conceitual para o BD de uma companhia. A companhia é organizada em departamentos. Cada departamento tem um nome e um número. Além disto, um departamento controla vários projetos, cada um dos quais com um nome, um número de identificação e o período de tempo no qual deve ser desenvolvido. Na referida companhia, cada projeto somente pode ser desenvolvido por um departamento específico. Existem somente três tipos de funcionários que trabalham na companhia: pesquisador, secretário e de limpeza. Para os pesquisadores, deseja-se armazenar: o nome, o endereço, o sexo, a data de aniversário, o salário e a área de atuação. Para os secretários, deseja-se armazenar: o nome, o endereço, o sexo, a data de aniversário, o salário e o grau de escolaridade. Já para os funcionários de limpeza, deseja-se armazenar: o nome, o endereço, o sexo, a data de aniversário, o salário, o cargo e a jornada de trabalho. Os cargos dos funcionários responsáveis pela limpeza são hierárquicos. Assim, deseja-se armazenar também, para cada funcionário de limpeza, informações sobre o funcionário de limpeza que o gerencia. Os funcionários da companhia são identificados por meio de um código de identificação, e podem estar associados a apenas um únicodepartamento. Funcionários que são pesquisadores podem trabalhar em diversos projetos, independentemente desses projetos estarem sendo desenvolvidos no mesmo departamento no qual o empregado está associado. Deve- se armazenar o número de horas semanais trabalhadas por cada pesquisador em cada projeto no qual ele trabalha. Devem-se armazenar também informações sobre os dependentes de cada funcionário para propósitos de ajuda família. Deve-se armazenar o nome, o sexo e a data de aniversário, além do grau de parentesco com o funcionário. 18. Mapeie o esquema entidade relacionamento em um esquema relacional, especifique todas as chaves primárias e estrangeiras.
Compartilhar