Baixe o app para aproveitar ainda mais
Prévia do material em texto
Modelos de Dados Etapas do Projeto de Banco de Dados Prof. Anderson Barroso 2 4. Projeto Físico 3. Projeto Lógico 2. Projeto Conceitual 1. Levantamento de Requisitos MODELO DE DADOS Introdução Arquitetura de “três esquemas” fornece uma visão abstraída dos dados armazenados no nível físico - Nível Conceitual – O modelo conceitual fornece uma representação mais simples dos dados, garantindo o tratamento eficiente das informações – Esta representação é chamada de Modelo de Dados Definição Formal – “É um conjunto de conceitos que são utilizados para descrever a estrutura de um banco de dados escondendo detalhes da forma como é feito o armazenamento de dados” (ELMASRI; NAVATHE, 2005) Prof. Anderson Barroso 3 Categorias dos Modelos de Dados Modelo de Dados Conceitual – Características • Representação de um banco de dados utilizando conceitos mais flexíveis • Linguagem mais próxima ao do usuário final • Sem regras rígidas de implementação • Independente de tecnologia • A primeira proposta de representação do mundo real • Início do trabalho de definição da estrutura da base de dados • O objetivo principal é propor uma estrutura de banco de dados que represente da melhor forma o mundo real Prof. Anderson Barroso 4 Categorias dos Modelos de Dados Modelo de Dados Conceitual – Modelos da categoria • Modelo de Entidade e Relacionamento (E-R) • Modelo Orientado à Objeto (OO) Prof. Anderson Barroso 5 Categorias dos Modelos de Dados Modelo de Dados Representacional – Características • Também conhecido como modelo de dados Lógico ou de implementação • Representa uma estrutura de banco de dados que será implementado no SGBD • Possui conceitos mais rígidos e regras de implementação no SGBD • Possui uma linguagem mais afastada do usuário final • Ainda assim é um modelo de provê um bom nível de abstração Prof. Anderson Barroso 6 Categorias dos Modelos de Dados Modelo de Dados Representacional – Modelos da categoria • Relacional • Rede • Hierárquico Prof. Anderson Barroso 7 Modelo E-R - Projeto Conceitual Modelo E-R Conceitos Básicos – Definido por Peter Chen em 1976 – Utilizado para identificar: • Tipos de dados a serem armazenados • Associações entre os dados • Características dos dados e das associações – O Modelo E-R descreve os dados através dos conceitos: Entidade, Atributos, Relacionamentos (Cardinalidade, Obrigatoriedade) Prof. Anderson Barroso 9 Modelo E-R Baseia-se no princípio que o mundo real deve ser representando por dois conjuntos básicos: Entidade e Relacionamento – Entidade • É o objeto básico do Modelo E-R e representa “algo” do mundo real” (ELMASRI; NAVATHE, 2005) • Pode ser um objeto de existência física: Carro, Pessoa ou Funcionário • Também pode ser um objeto de existência conceitual: Um curso de graduação • Pode ser um evento do mundo real: Uma venda Prof. Anderson Barroso 10 Modelo E-R Entidade – Exemplo 01: “Cada aluno está vinculado a apenas um curso, sendo que cada aluno possui um número de matrícula único, nome, data de nascimento, créditos cursados e média geral” • Identificamos a entidade Aluno – Exemplo 02: “Os cursos de graduação são coordenados por apenas um professor e possui um código único, nome e total de créditos necessários para que um aluno possa concluir o curso” • Identificamos as entidades Curso e Professor Prof. Anderson Barroso 11 Modelo E-R Entidade – Instância de entidade: Representa cada ocorrência da entidade – Exemplos da instâncias da entidade Aluno Prof. Anderson Barroso 12 Modelo E-R No modelo E-R as entidades são representadas através de retângulos Prof. Anderson Barroso 13 Modelo E-R Entidades – Atributos • Após identificação das entidades é preciso localizar os atributos que as formam • “Atributos são características vinculadas a uma determinada entidade” (MEDEIROS, 2007) – Exemplo: “Cada disciplina da universidade possui um código único, nome e uma quantidade de créditos” – É possível identificar os atributos Código da disciplina, nome e quantidade de créditos Prof. Anderson Barroso 14 Modelo E-R Entidade – Atributo chave • Dentre os atributos elencados é importante identificar um atributo chave que consegue identificar uma determinada instância de entidade • Exemplo: Entidade Aluno, atributo chave matrícula • Os atributos chaves são representados por um círculo preenchido Prof. Anderson Barroso 15 Modelo E-R Relacionamentos – Representa as associações entre as instâncias de entidades diferentes – Conforme estudo de caso, podemos observar situações de referências entre as entidades – Exemplo: “Cada aluno está vinculado a apenas um curso” – Associação entre a entidade Aluno com a entidade Curso Prof. Anderson Barroso 16 Modelo E-R Relacionamentos – Cardinalidade ou Multiplicidade • Define a quantidade de elementos de uma entidade que se relaciona com uma quantidade de elementos de outra entidade • Quando identificamos o relacionamento é necessário definir as quantidades de associações entre as instâncias de entidade Prof. Anderson Barroso 17 Cardinalidade de 1:N ou N:1 Modelo E-R Relacionamentos – Cardinalidade ou Multiplicidade • Diagrama de Ocorrência Prof. Anderson Barroso 18 Modelo E-R Relacionamentos – Cardinalidade de N:N Prof. Anderson Barroso 19 Modelo E-R Relacionamentos – Cardinalidade de 1:1 Prof. Anderson Barroso 20 Modelo E-R O que vimos até então? – Relacionamentos binários – Envolve duas entidades O que veremos ainda? – Relacionamentos ternários – Relacionamentos recursivos ou Auto- Relacionamento – Realizar generalizações/especialização de entidades – Entidade associativa – Obrigatoriedade nos Relacionamentos – Relacionamentos com Atributos Prof. Anderson Barroso 21 Modelo E-R Relacionamento ternário – Ocorre quando identificamos três entidades que juntas representam alguma informação – “Ao final do semestre, as disciplinas são associadas aos alunos em um determinado período letivo” • Um aluno em determinado semestre pode ter várias disciplinas? • Um aluno pode cursar a mesma disciplina em vários semestres? • Uma disciplina em determinado semestre pode ser cursada por vários alunos? Prof. Anderson Barroso 22 Modelo E-R Relacionamento ternário Prof. Anderson Barroso 23 Modelo E-R Relacionamento Recursivo ou Auto-Relacionamento – Ocorre quando uma entidade se relaciona com ela mesma – “É possível cada disciplina ter apenas uma outra como pré-requisito” Prof. Anderson Barroso 24 Modelo E-R Generalização/Especialização – Ocorre quando uma entidade pode ser subdividida em outras entidades que possuem características particulares – Exemplo: Arquivo pode ter os subtipos Áudio, Imagem e Texto • Atributos comuns: Nome e tamanho • Áudio: duração • Imagem: dimensão • Texto: quantidade de caracteres Prof. Anderson Barroso 25 Modelo E-R Generalização/Especialização Prof. Anderson Barroso 26 ARQUIVO ÁUDIO IMAGEM TEXTO Modelo E-R Entidade Associativa – Surgiu da necessidade de relacionar um relacionamento já definido com outra entidade Prof. Anderson Barroso 27 Modelo E-R Obrigatoriedade nos Relacionamentos – Considere o exemplo – Aplicando a obrigatoriedade nos relacionamentos podemos fazer as seguintes perguntas? • Qual a quantidade mínima de alunos que um curso pode ter? • Qual a quantidade máxima de alunos que um curso pode ter? • Qual a quantidade mínima de cursos que um aluno pode estar associado? • Qual a quantidade máxima de cursos que um aluno pode estar associado? Prof. Anderson Barroso 28 Modelo E-R Obrigatoriedade nos Relacionamentos – Notação (Min, Max) • Uma notação alternativa para expressar restrições de cardinalidade e participação Prof. Anderson Barroso 29 Modelo E-R Relacionamentos com Atributos “Cada curso está associado a um conjuntode disciplinas, sendo que para cada curso a disciplina é vinculada a um determinado período curricular” Prof. Anderson Barroso 30 Modelo E-R Entidade Fraca – Uma entidade é caracterizada como fraca em relação a outra entidade quando sua identificação unívoca é dependente da identificação de outra – Banco é uma entidade forte a agência é uma entidade fraca Prof. Anderson Barroso 31 Exercícios 1) Represente o D.E.R para cada situação abaixo: a) Um paciente ocupa obrigatoriamente, apenas um leito do hospital b) Um funcionário está sempre alocado a um único setor que por sua vez possui vários funcionários alocados c) Em um zoológico cada animal ocupa sempre uma única jaula. Uma jaula pode ser coletiva. Prof. Anderson Barroso 32 Exercícios Prof. Anderson Barroso 33 2) Represente o D.E.R para cada situação abaixo: “Para o aluno que estudou em escola pública por mais de 5 anos ou mais a Universidade permite que ele entre em um tipo de programa de ajuda de custo” “Cada aluno nesta situação pode estar ligado a um único tipo de programa. Atualmente os tipos de programas existentes são: Aluno Trabalhador, Aluno Estagiário, Aluno Atleta e Aluno Carente” “Alunos com menos de 5 anos de escola pública somente podem estar associados ao programa Aluno Trabalhador” “Cada tipo de programa possui uma quantidade máxima de alunos que podem ser atendidos atualmente. O valor de ajuda de custo de cada tipo de programa é diferenciado entre eles” O modelo deve responder: a) Dado um aluno, qual o seu nome e de que tipo de programa participa? b) Qual o valor da ajuda de custo de cada programa, o máximo de alunos que cada tipo de programa pode atender e o total de alunos atingidos por cada programa? Modelo E-R Dicionário de dados – São notações vinculadas ao DER que auxiliam na descrição dos dados – Existem várias notações para descrever os dados – Notação de Yordon = : Equivalente + : Concatenação | : Seleção n{a}m: Repetição de n até no máximo M (a) : Opcionalidade /* */: Comentários @ : Atributo chave () : Opcionalidade – Exemplos • Aluno = @matrícula + nome + endereco + (email) + sexo + 0{disciplinas}N • sexo = M|F Prof. Anderson Barroso 34 Modelo E-R Considere o DER Prof. Anderson Barroso 35 Pessoa Idioma Cargo Habilidade Domínio do Idioma Experiência Modelo E-R Exemplo de dicionário de dados Prof. Anderson Barroso 36 idioma = @cod-idioma + nom-idioma domínio do idioma = @cod-idioma + @cod-pessoa + leitura + escrita + fala /* os atributos leitura, escrita e fala são graduados em pouco, regular e bastante */ habilidade = @cod-hab + dsc-hab experiência = @cod-pessoa + @cod-cargo + dat-início + ( dat-fim ) + tipo-exp pessoa = @cod-pessoa + cpf-pessoa + nom-pessoa + tipo-pessoa + ( cod- setor + dat-admissão ) + dat-nasc + sexo + endereço + com-endereço + bairro + cidade + uf + cep + ( fone + celular + e-mail ) + 0 { num-cur + tipo-cur + ( ano-conclusão + nom-curso + cod-inst + cod-área + crg-horária ) } N /* para cursos incompletos o ano de conclusão não possuirá valor e para especialização, a carga horária é requerida O atributo tipo-cur determina a graduação que vai do 1º grau até o doutorado*/ cargo = @cod-cargo + dsc-cargo + tipo-cargo Modelo Relacional Modelo Relacional Criado por Edgar Ted Codd, em 1970 Definição – Consiste de uma teoria desenvolvida para bancos de dados relacionais, visando o processamento eficiente de requisições dos usuários a informações da base de dados Estrutura Básica – Coleção de relações (tabelas) – As tabelas são compostas por uma coleção de atributos (colunas) onde cada tupla (linha) representa um relacionamento entre o conjunto de valores Prof. Anderson Barroso 38 Modelo Relacional Relação ou tabela “Alunos” Prof. Anderson Barroso 39 Modelo Relacional Considerações sobre as relações – O cabeçalho de uma relação é o conjunto de atributos que a compõe; – O corpo de uma relação é o conjunto de tuplas que a compõe; – O número de atributos de uma relação determina o seu grau – A cardinalidade de uma relação é dada pela número de tuplas que a compõe; – O domínio de um atributo determina os tipos de operações aplicáveis ao atributo; Prof. Anderson Barroso 40 Modelo Relacional Propriedades das relações – Em uma relação não é permitida, sob nenhuma hipótese, a existência de tuplas duplicadas; – As tuplas de uma relação não seguem um determinado nível de ordenação; – Os atributos de uma relação também não seguem um determinado nível de ordenação; – Todos os domínios, e consequentemente os possíveis valores dos atributos, devem ser atômicos: • Cada coluna ou atributo deve armazenar apenas um valor e não um conjunto de valores • Uma vez definido o tipo da coluna os valores das colunas devem obedecer ao tipo de dado definido Prof. Anderson Barroso 41 Restrições Além de representar os dados em formas de tabelas, o modelo relacional também define um conjunto de validações que devem ser impostas aos dados com objetivo de não permitir que os dados fiquem inconsistentes Estas validações são conhecidas como Restrições Podemos impor as principais restrições – Restrição de Domínio – Restrições de Atributos Obrigatórios – Restrições de Chave – Restrições de Integridade Referencial – Restrições de Integridade Semântica Prof. Anderson Barroso 42 Restrições Restrição de Domínio – Restrição que atua sobre os dados de uma coluna – Precisamos definir qual o tipo de valor que pode ser atribuído a cada coluna – Valores do tipo inteiro, real, lógico, caracter, texto, data, dentre outros – Também é possível definir restrições condicionais, por exemplo: O atributo média da tabela de alunos deve ter valores maiores ou iguais a zero e menores ou iguais a dez Prof. Anderson Barroso 43 nome caracter(80) salario real(8,2) check (salario <= 10000) sexo caracter(1) check( sexo in ('M','F') ) Restrições Restrições de Atributos Obrigatórios – Atributos que não são obrigatórios são identificados no modelo relacional como NULL – Já os obrigatórios são representador como NOT NULL – O SGBD deve garantir que um atributo definido como NOT NULL, sempre será preenchido no cadastro da linha – Exemplos • E-mail: NULL (O atributo “e-mail” é opcional) • Nome: NOT NULL (O atributo “nome” é obrigatório) Prof. Anderson Barroso 44 Restrições Restrições de Chave – Para evitar redundância as linhas (tuplas) de uma tabela (relação) devem ser distintas – Para garantir este conceito, devemos selecionar um conjunto de atributos que não se repetirá em linhas diferentes da tabela, atributo chave – Tabela de alunos com os atributos: Nome, Cidade, Estado • Solução: Criar um campo que faça a identificação, número da matrícula Prof. Anderson Barroso 45 Restrições Restrições de Chave – Tipos de restrições de chave • Superchave – Conjunto de atributos que identificam unicamente uma tupla da relação • Chave candidata (UNIQUE KEY) – São as menores superchaves • Chave primária (PRIMARY KEY) – É a chave candidata escolhida para identificar a tupla de uma relação Prof. Anderson Barroso 46 Restrições Chaves – Considere a relação: Alunos( #matricula, nome, cpf, rg ) São superchaves: matricula, nome, cpf, rg matricula, cpf matricula, rg cpf, rg cpf, nome matricula cpf Prof. Anderson Barroso 47 São chaves candidatas: matricula cpf Chave primária escolhida: matricula Restrições Restrições de Chave “Além de impor a não repetição das chaves primárias e candidatas, o SGBD também garante que as chaves primárias não deverão ser NULL. Esta restrição é imposta, pois com os atributos vazios não é possível realizar a distinção das linhas” (ELMARSI; NAVATHE, 2005). Prof. Anderson Barroso 48 Restrições Restrição de Integridade Referencial – Para implementar os relacionamentosidentificados no Modelo E-R utilizamos a restrição de integridade referencial – A integridade referencial consiste na referência que uma linha de uma tabela faz em relação a outra linha da tabela – Por exemplo, para podermos indicar o curso que um aluno está vinculado, precisamos definir um atributo na tabela de alunos para referenciar um curso na tabela de cursos Prof. Anderson Barroso 49 Restrições Restrição de Integridade Referencial – O campo criado na tabela de Alunos é chamado de chave estrangeira – A chave estrangeira deve estar sempre associada a uma chave primária na tabela de referência – O SGBD deve garantir a consistência de referência, ou seja, obrigatoriamente deve existir na tabela referenciada Prof. Anderson Barroso 50 Restrições Tipos de Integridade Referencial – CASCADE • Deleção: remove todas as linhas que referenciam a linha removida • Atualização: atualização em cascata o valor da chave estrangeira para as linhas que referenciam a chave primária atualizada Prof. Anderson Barroso 51 Restrições Tipos de Integridade Referencial – RESTRICTED • Deleção: não permite a remoção se existirem linhas que referenciam a chave excluída • Atualização: não permite a atualização da chave primária se existirem linhas referenciando a mesma Prof. Anderson Barroso 52 Restrições Tipos de Integridade Referencial – NULLIFIES • Deleção: todas as chaves estrangeiras que referenciam a chave primária removida têm seu valor modificado para nulo • Atualização: todas as chaves estrangeiras que referenciam a chave primária alterada são modificadas para o valor nulo Prof. Anderson Barroso 53 Restrições Outros tipos de restrição – As restrições vistas até então já garantem bons resultados quanto a consistência de dados – Entretanto, existem restrições que ultrapassam os limites do modelo relacional – Exemplos: • “O salário de um funcionário não pode ser superior ao salário do seu superior imediato” • “O aluno não pode cursar uma disciplina se não tiver cursados os pré-requisitos para ela” – São chamadas de Restrições de Integridade Semântica Prof. Anderson Barroso 54 Restrições Asserções – São restrições que validam os dados diante de qualquer manutenção no banco de dados – Expressa uma condição que sempre deve ser satisfeita para os dados de uma base – Exemplo: Prof. Anderson Barroso 55 create assertion salario_funcionario check ( not exists ( select cod_func from funcionarios f, setores s where f.cod_setor = s.cod_setor and f.salario > s.sal_maximo ) ) Restrições Triggers – São comandos executados automaticamente quando ocorre alguma atualização no SGBD – Os comandos são definidos em um linguagem de programação específica do SGBD – São executados diante de um comando de inclusão, alteração ou exclusão – Devem ser utilizadas para validar a entrada de dados, gerando mensagens de erro quando algo de errado ocorra – Exemplos: • Matrícula: verificação de pré-requisito • Histórico: não permitir lançamento caso aluna já possua aprovação na disciplina Prof. Anderson Barroso 56 Restrições Exemplo trigger Oracle: Prof. Anderson Barroso 57 create trigger turmas_aiu after insert, update on turmas for each row declare begin if :new.vagas < :new.vagas_ocupadas then raise_application_error( -20000,'As vagas ocupadas '|| 'não pode ser maior '|| 'do a quantidade de vagas'|| 'ofertadas' ); else insert into log ( usuario, log ) values ( user, :new.vagas||';'||:new.vagas_ocupadas); end if; end; Restrições Operações que podem violar as Restrições – As principais operações em bancos de dados relacionais são recuperação e atualização – Iremos tratar apenas das operações de atualização que são: • Inclusão (Insert) • Alteração (Update) • Exclusão (Delete) Prof. Anderson Barroso 58 Restrições Operações que podem violar as Restrições – Inclusão (Insert) • Realiza a inclusão de uma linha em uma determinada tabela • Esta operação é feita informando as colunas e os valores para cada coluna da tabela • Nesta operação podemos ter as seguinte violações – Violação de restrição de domínio – Violação de restrição de chave – Violação de obrigatoriedade – Violação de integridade referencial – Violação de integridade semântica Prof. Anderson Barroso 59 Restrições Operações que podem violar as Restrições – Exclusão (Delete) • Realiza a exclusão de linhas em determinada tabela • Restrições que podem ser violadas: Integridade referencial e integridade semântica • Existe uma artifício que pode evitar que a violação ocorra – Chamado de remoção em cascata (deve ser utilizada com muita cautela) Prof. Anderson Barroso 60 Restrições Operações que podem violar as Restrições – Atualização (Update) • Realiza a alteração do valor de um ou mais atributos de uma linha • Durante a operação de atualização, devem ser especificados os atributos que serão alterados e seus valores novos • Caso a alteração não seja realizada nos atributos que façam parte da chave primária ou da estrangeira, as violações que podem ocorrer são de domínio, integridade semântica e atributos obrigatórios Prof. Anderson Barroso 61 Restrições Operações que podem violar as Restrições – Atualização (Update) • Quando ocorrer alteração do valor de um campo de chave primária podemos ter as violações de: – Restrição de Chave – Restrição de Integridade Referencial – Restrição de Atributos Obrigatórios – Restrição de Domínio – Restrição de Integridade Semântica Prof. Anderson Barroso 62 Projeto de Banco de Dados Objetivo: Projetar um esquema de banco de dados relacional com base no esquema conceitual (Projeto Lógico) Algumas ferramentas utilizam o Modelo E-R para desenvolver o esquema graficamente, e depois o convertem de maneira automática em um esquema de banco de dados relacional, gerando até mesmo os scripts DDL do banco Nesta etapa ocorre a escolha do SGBD levando em consideração os Custos e Requisitos Técnicos Existe um algoritmo para converter as construções básicas do modelo E-R em relações Em suma, o projeto lógico, utilizando o modelo relacional realiza a transformação de: – Entidades em tabelas – Atributos em colunas Prof. Anderson Barroso 63 Projeto de Banco de Dados Projeto Conceitual Entidades Atributos Relacionamentos Especializações Entidades fracas etc Projeto Lógico Tabelas Campos Chaves primárias, estrangeiras e restrição de chave única Restrição de integridade Prof. Anderson Barroso 64 Projeto de Banco de Dados Etapa 1: Mapeamento de entidades – Cada entidade vira uma relação – Definição das chaves primárias (CP), candidatas (CC) e estrangeiras (CE) Prof. Anderson Barroso 65 #mat_alu (CP) *nom_alu ºend_alu *media_alu *cpf (cc) Alunos Projeto de Banco de Dados Etapa 2: Mapeamento de tipos de entidade fraca Prof. Anderson Barroso 66 #COD_BANCO (CP) (CE) #COD_AGENCIA *NOM_AGENCIA AGENCIAS #COD_BANCO (CP) *NOM_BANCO BANCOS (1,1) (0,N) Projeto de Banco de Dados Etapa 3: Mapeamento de tipos de relacionamento binários 1:1 Prof. Anderson Barroso 67 #COD_PROF (cp) *NOM_PROF PROFESSORES #COD_CURSO (CP) *NOM_CURSO COD_PROF (CE) CURSOS (0,1) (0,1) #COD_CURSO (cp) *NOM_CURSO CURSOS #COD_PROF (CP) *NOM_PROF COD_CURSO (CE) PROFESSORES (0,1) (0,1) a) b) Projeto de Banco de Dados Etapa 4: Mapeamento de tipos de relacionamento binários 1:N Prof. Anderson Barroso 68 #COD_CURSO (CP) *NOM_CURSO CURSOS #MAT_ALU (CP) *NOM_ALU ºEND_ALU * COD_CURSO (CE) ALUNOS (0,N) (1,1) Projeto de Banco de Dados Etapa 5: Mapeamento de tipos de relacionamento binários N:N Prof. Anderson Barroso 69 #MAT_ALU (CP) *NOM_ALU ºEND_ALU ALUNOS #MAT_ALU (CP)(CE) #COD_DISC (CP)(CE) *DAT_MAT MATRICULAS #COD_DISC (CP) *NOM_DISC *QTD_CRED DISCIPLINAS (0,N) (0,N) Projeto de Banco de Dados Etapa 6:Mapeamento de Generalização/Especialização – O mapeamento pode ser feito utilizando três estratégias 1. Agregar todas as entidades em uma só, e todos os atributos das entidades de nível inferior serão incorporados nesta entidade permitindo valores nulos 2. Cada entidade de nível inferior são mapeadas para uma tabela quem mantém um relacionamento de 1:1 com a tabela de nível superior 3. Cada entidade de nível inferior gera uma nova tabela agregando os campos da entidade de nível superior Prof. Anderson Barroso 70 Projeto de Banco de Dados Etapa 6: Mapeamento de Generalização/Especialização Prof. Anderson Barroso 71 Projeto de Banco de Dados Etapa 6: Mapeamento de Generalização/Especialização – Estratégia 01: Agregar todas as entidades em uma só, e todos os atributos das entidades de nível inferior serão incorporados nesta entidade permitindo valores nulos Prof. Anderson Barroso 72 #MAT_ALU (CP) *NOM_ALU ºEND_ALU ºDISSERTACAO ºTESE ºMEDIA_GERAL ºTIPO_INGRESSO ALUNOS Projeto de Banco de Dados Etapa 6: Mapeamento de Generalização/Especialização – Estratégia 01: Agregar todas as entidades em uma só, e todos os atributos das entidades de nível inferior serão incorporados nesta entidade permitindo valores nulos – Observações • Tabelas com grande quantidade de valores nulos • Não existe a necessidade de junções com outras tabelas • É necessário implementar regras para garantir a consistência dos campos Prof. Anderson Barroso 73 Projeto de Banco de Dados Etapa 6: Mapeamento de Generalização/Especialização – Estratégia 02: Cada entidade de nível inferior são mapeadas para uma tabela quem mantém um relacionamento de 1:1 com a tabela de nível superior Prof. Anderson Barroso 74 #MAT_ALU *NOM_ALU *TPO_ALU ºEND_ALU ALUNOS #MAT_ALU *DISSERTACAO MESTRADOS #MAT_ALU *TESE DOUTORADOS #MAT_ALU *MEDIA_GERAL ESPECIALIZACOES #MAT_ALU *TIPO_INGRESSO GRADUACOES 1 00 0 0 1 1 1 Projeto de Banco de Dados Etapa 6: Mapeamento de Generalização/Especialização – Estratégia 02: Cada entidade de nível inferior são mapeadas para uma tabela que mantém um relacionamento de 1:1 com a tabela de nível superior – Observações • É necessário realizar junções para obter os dados necessários • Elimina a necessidade de campos nulos • Necessidade de se implementar validações para consistência entre tabelas de nível superior e de nível inferior Prof. Anderson Barroso 75 1 Projeto de Banco de Dados Etapa 6: Mapeamento de Generalização/Especialização – Estratégia 03: Cada entidade de nível inferior gera uma nova tabela agregando os campos da entidade de nível superior Prof. Anderson Barroso 76 #MAT_ALU *NOM_ALU ºEND_ALU *DISSERTACAO MESTRADOS #MAT_ALU *NOM_ALU ºEND_ALU *TESE DOUTORADOS #MAT_ALU *NOM_ALU ºEND_ALU *MEDIA_GERAL ESPECIALIZACOES #MAT_ALU *NOM_ALU ºEND_ALU *TIPO_INGRESSO GRADUACOES Projeto de Banco de Dados Etapa 6: Mapeamento de Generalização/Especialização – Estratégia 03: Cada entidade de nível inferior gera uma nova tabela agregando os campos da entidade de nível superior – Observações • Elimina o uso de valores nulos • Para se recuperar, por exemplo, o nome de todos os alunos, será necessário a realizar união • Possibilidade de redundância de dados • Dificuldade de implementar relacionamento com a tabela de nível superior • Como não existe a tabela de nível superior, há a necessidade de implementação de mecanismos que mantenham a consistência sem redundância entre de dados referente à tabela pai Prof. Anderson Barroso 77 Projeto de Banco de Dados Etapa 7: Mapeamento de relacionamentos recursivos ou Auto Relacionamento Prof. Anderson Barroso 78 #COD_DISC *NOM_DISC *QTD_CRED *COD_DISC_PRE (CE) DISCIPLINAS Projeto de Banco de Dados Etapa 8: Mapeamento de entidade associativa Prof. Anderson Barroso 79 DISCIPLINAS{ #COD_DISC, NOM_DISC, QTD_CRED} PERIODOS_LETIVOS{ #ANO, #SEMESTRE, DAT_INI, DAT_TER} PROFESSORES {#COD_PROF, NOM_PROF} OFERTAS { #COD_DISC (ce), #ANO (ce), #SEMESTRE (ce), #COD_PROF (ce), TOTAL_VAGAS, VAGAS_OCUP } Projeto de Banco de Dados Etapa 9: Mapeamento de relacionamentos ternários Prof. Anderson Barroso 80 DISCIPLINAS{ #COD_DISC, NOM_DISC, QTD_CRED} ALUNOS { #MAT_ALU, NOM_ALU } PERIODOS_LETIVOS{ #ANO, #SEMESTRE, DAT_INI, DAT_TER} HISTORICOS {#COD_DISC (ce), #MAT_ALU (ce), #ANO, #SEMESTRE, MEDIA} Exemplo - Requisitos Prof. Anderson Barroso 81 Fábrica A Fábrica comercializa vários produtos, cada um dos quais com um código, um nome, e um preço. Em cada momento a empresa deve ainda saber qual a quantidade existente no armazém de cada um dos produtos; Uma encomenda deve ter um número e a data em que foi feita, pode ter vários produtos, mas diz respeito apenas a um fornecedor; De cada fornecedor a empresa deseja guardar a informação do seu nome, número de contribuinte, morada, forma de pagamento, prazo de pagamento, e um código interno de tipo de fornecedor; Produto N X Armazém 1 Produto N X Encomenda N Encomenda N X Fornecedor 1 Exemplo – Modelo Conceitual Prof. Anderson Barroso 82 Exemplo – Lógico Prof. Anderson Barroso 83 Exemplo – Projeto de Banco Prof. Anderson Barroso 84 Prof. Anderson Barroso 85 Modelo de Representação Prof. Anderson Barroso 86 Leitura Complementar NAVATHE, Shamkant B, ELMASRI, Ramez. Sistemas de Banco de Dados. Addison Wesley BRA, 2005. – Capítulo 7: Modelagem de dados usando o modelo Entidade -Relacionamento DATE, Christopher J. Introdução a Sistemas de Banco de Dados. 8 ed. Rio de Janeiro: Campus, 2004. – Capítulo 5: Modelo Relacional NAVATHE, Shamkant B, ELMASRI, Ramez. Sistemas de Banco de Dados. Addison Wesley BRA, 2005. – Capítulo 3: O modelo de dados relacional e as restrições em banco de dados. NAVATHE, Shamkant B, ELMASRI, Ramez. Sistemas de Banco de Dados. Addison Wesley BRA, 2005. – Capítulo 9: Projeto de banco de dados relacional por mapeamento ER e ERR para relacional Prof. Anderson Barroso 87
Compartilhar