MODELAGEM DE DADOS MODELO RELACIONAL

Documentos relacionados
Unidade 4 Projeto de BD Relacional

Transformação de Diagramas MER em Diagramas DR

Banco de Dados I Unidade 3: Projeto de BD Relacional. Cláudio Baptista

Modelo Lógico de Dados. Modelo Relacional

Análise e Projeto de Sistemas

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO PROJETO DE BANCO DE DADOS RELACIONAL. Profº Erinaldo Sanches Nascimento

Dependência Funcional e Normalização)

2010 Diagrama Entidade - Associação

Modelo Entidade Relacionamento Estendido (ERE)

Objetivos:

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

Prof. Fabiano Taguchi

NORMALIZAÇÃO. Lílian Simão Oliveira

18/03/2012. Independência de Dados: capacidade de modificar a definição dos esquemas em. determinado nível, sem afetar o esquema do nível superior;

Mapeamento Modelo Entidade Relacionamento para Modelo Relacional. Evandro E.S Ruiz, Ph.D.

Fundamentos de Banco de Dados e Modelagem de Dados

MODELAGEM DE DADOS PARTE 1

Banco de Dados I 3 Modelagem de Dados Lógico e Físico

BANCO DE DADOS. Bacharelado em Sistemas de Informação MODELAGEM DE DADOS. Profº Luciano Roberto Rocha. Itararé, 2º período

Ciclo de Desenvolvimento de BD

Qualidade de projeto de BD relacional

MATA60 BANCO DE DADOS Aula 3- Modelo de Entidades e Relacionamentos. Prof. Daniela Barreiro Claro

Sistemas de Banco de Dados Prof. Flávio de Oliveira Silva, M.Sc. O esquema de uma relação é escrito da seguinte forma:

Banco de Dados Aula 02

Banco de Dados. André Luís Duarte Capítulo 2. exatasfepi.com.br

Introdução aos Sistemas de Bancos de Dados 1 a versão - MAC5760 DCC-IME-USP J.E.FERREIRA e O.TAKAI Terceira Forma Normal (3FN)

Informática II Cap. 5-1 Modelo Relacional, Normalização e Diagramas E-R

Modelagem Conceitual e o Modelo Entidade-Relacionamento

Normalização de Tabelas. Prof. Antonio Almeida de Barros Junior

Modelo Entidade-Relacionamento (E-R)

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1/64

Modelo Relacional. Aula 02

Banco de Dados. Aula 3 - Prof. Bruno Moreno 26/08/2011

Parte NORMALIZAÇÃO. As regras mais importantes oferecidas pelo Sistema Gerenciador de Banco de Dados. são:

Bancos de Dados. 7. Mapeamento ER/ERE para Relacional

BANCO DE DADOS I/MODELAGEM DE DADOS Prof. Ricardo Rodrigues Barcelar

SISTEMA DE INFORMAÇÃO Modelo Conceitual. Prof. Luiz Fernando Laguardia Campos FMS

Ano: 2014 Banca: FCC Órgão: TJ-AP Prova: Analista Judiciário - Área Apoio Especializado - Tecnologia da Informação

Tópico: Modelagem CONTEÚDO PROGRAMÁTICO

Banco de Dados I Engenharia Reversa e Normalização

Banco de Dados Modelagem e Normalização

Roteiro. Normalização. BCC321 - Banco de Dados I. Ementa. Para que serve a normalização? Posicionamento

Revisão e Exercícios. Relacionamento. Projeto de Bancos de Dados. Chave e Domínio. Tipos de Atributos

Entidade Associativa

Modelo Relacional Wendel Melo

Banco de Dados I. Aula 17 - Prof. Bruno Moreno 08/11/2011

Modelagem semântica permite aproximar o modelo obtido do mundo real Exemplo de modelos:

Técnicas de Modelação de Dados

Introdução a Banco de Dados Aula 02. Prof. Silvestri

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Banco de Dados. Modelo de Dados Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai DCC-IME-USP

Análise e Projeto de Sistemas I

MER e DER Entidades Relacionamentos Atributos Ferramentas CASE Exemplos de DERs Exemplo de Minimundo. Banco de Dados. Aula 1.

Bancos de Dados Aula #2 - Modelos Conceituais de Dados

Engenharia Reversa e Normalização

Engenharia Reversa e Normalização

Revisando Banco de Dados. Modelo Relacional

Bancos (Bases) de Dados Aula #5 - Projeto do BD Relacional pelo

O que é modelo lógico. Tipos de modelo

Modelo Relacional. Banco de Dados 2º trimestre Prof. Patrícia Lucas

Unidade 2 Modelo Conceitual

BANCO DE DADOS GEOGRÁFICOS E WEBMAPPING -PROJETO LÓGICO RELACIONAL. Prof. Angelo Augusto Frozza, M.Sc.

GES013 Sistema de Banco de Dados Normalização de Relações em Projeto de BD (1FN a FNBC)

Normalização. Anomalias Dependência e determinantes Normalização

Teoria e Metodologia de Projeto de Banco de Dados

Projeto de Banco de Dados

Modelagem de dados usando MER. Andre Noel

Banco de Dados I. Aula 10 - Prof. Bruno Moreno 23/09/2011

Projeto de Banco de Dados

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Modelo Entidade-Relacionamento. Aécio Costa

Ciclo de Desenvolvimento de Sistemas de BD

Conceitos Básicos de modelagem de dados Modelo conceitual Modelo Lógico Modelo Físico

SISTEMAS DE INFORMAÇÃO

1. MINI MUNDO Descrição formal da realidade a ser representada. Exemplo: suponhamos que as Faculdades Dom Bosco funcionem assim:

14/03/12. Tipos de fragmentação. Projeto de Bancos de Dados Distribuídos (Parte 01) Correção das regras de fragmentação. Grau de fragmentação

BANCO DE DADOS. Araújo Lima. Ago / Araújo

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

Banco de Dados Prof. Célio R. Castelano Página 1 de 9. Álgebra Relacional

MODELAGEM DE DADOS. Projeto de Banco de Dados Modelo Conceitual. Prof. Rosemary Melo

PCS3413 Engenharia de Software e Banco de Dados

Modelagem de Dados. Modelagem Conceitual

Transcrição:

MODELAGEM DE DADOS MODELO RELACIONAL Profa. Rosemary Melo

MODELO LÓGICO RELACIONAL Conceitos Básicos Criado por Edgar Codd, nos anos 70. Tornou-se um padrão de fato para aplicações comerciais a partir de 1987, devido sua simplicidade e performance. Representa os dados num BD como uma coleção de relações (tabelas). Uma relação representa um conjunto de valores que pode implicar numa coleção de relacionamentos entre conjunto de valores. 2

Exemplo: banco de dados de departamento e empregados Nome da tabela Tabela Depto DEPTO# NOMEDEPTO ORÇAMENTO D1 Marketing 10M D2 Desenvolvimento 12M D3 Pesquisa 5M Emp EMP# NOMEEMP DEPTO# SALÁRIO E1 Lopez D1 40K E2 Cheng D1 42K E3 Finzi D2 30K E4 Saito D2 35K Linhas (registros), uma ocorrência de Depto Colunas (campos), dado da tabela (associado a um tipo de dado)

MODELO RELACIONAL CONTEMPLA TRÊS ASPECTOS: Aspecto estrutural - dados são percebidos como tabelas Aspecto de integridade - suas tabelas satisfazem restrições de integridade (mudanças feitas no banco de dados não acarretam inconsistência nos dados). Aspecto manipulador uso de operações para que o usuário possa manipular essas tabelas (derivam tabelas a partir de outras tabelas, ex.: restrição, projeção e junção) 4

Exemplo: banco de dados de departamento e empregados Depto DEPTO# NOMEDEPTO ORÇAMENTO D1 Marketing 10M D2 Desenvolvimento 12M D3 Pesquisa 5M Emp EMP# NOMEEMP DEPTO# SALÁRIO E1 Lopez D1 4000 E2 Cheng D1 4200 E3 Finzi D2 3000 E4 Saito D2 3500 Restrição: Depto onde Orçamento>8M DEPTO# NOMEDEPTO ORÇAMENTO D1 Marketing 10M D2 Desenvolvimento 12M Projeção: DEPTO sobre DEPTO#, Orçamento DEPTO# D2 Desenvolvimento 12M E4 Saito 3500 5 D1 D2 ORÇAMENTO Junção: DEPTOs e EMPs sobre DEPTO# DEPTO# NOMEDPTO ORÇAMENTO EMP# NOMEEMP SALÁRIO D1 Marketing 1oM E1 Lopez 4000 D1 Marketing 10M E2 Cheng 4200 D2 Desenvolvimento 12M E3 Finzi 3000 D3 10M 12M 5M

MODELO RELACIONAL Na terminologia de BD Relacional: Tabela é chamada de Relação. Linha é chamada de Tupla. Coluna é chamada de Atributo. 6

MODELO RELACIONAL Definições: Um esquema de relação R, denotado por R(A1, A2,..., An) é usado para descrever uma relação. Ex.: Empregado (Matr, Nome, Endereço, Função, Depart) Cada atributo Ai pertence a um conjunto de valores possíveis, denotado de domínio (dom(ai)). O grau de uma relação é o número de atributos que seu esquema contém. Ex.: Estudante(matr, nome, fone, idade, curso) => grau = 5 7

MODELO RELACIONAL Características das Relações: Cada tabela terá um nome, que será único e um conjunto de atributos com seus respectivos nomes e tipos. Todos os valores de um atributo são do mesmo tipo de dados (domínio). Cada atributo numa relação tem um nome que é único dentro da relação. 8

MODELO RELACIONAL Características das Relações: 1 Um mesmo atributo pode ter nomes diferentes nas diversas relações em que participa. 2 Atributos que representam diferentes conceitos podem ter mesmo nome. Ex.: Empregado (Matr, Nome, End, Função, Salário, Dep) 2 Departamento(CodDepart, Nome, Gerente, DataInicio) 1 9

MODELO RELACIONAL Características das Relações: A ordem dos atributos e das tuplas não têm importância. Todo atributo possui valor atômico. Todas as tuplas devem ser únicas (conjuntos). EMP# NOMEEMP DEPTO# SALÁRIO E1 Lopez D1 40K E2 Cheng D1 42K E3 Finzi D2 30K E4 Saito D2 35K 10

MODELO RELACIONAL Restrições de Integridade: Integridade de chave Toda tupla tem um conjunto de atributos (chave primária) que a identifica de maneira única na relação. Integridade de Entidade: Nenhum valor de chave primária poderá ser NULO. Integridade referencial: Relação pode ter um conjunto de atributos que contém valores com mesmo domínio de um conjunto de atributos que forma a chave primária de uma outra relação (chave estrangeira). 11

MODELO RELACIONAL Exemplo: Depto DEPTO# NOMEDEPTO ORÇAMENTO D1 Marketing 10M D2 Desenvolvimento 12M D3 Pesquisa 5M Emp EMP# NOMEEMP DEPTO# SALÁRIO E1 Lopez D1 40K E2 Cheng D1 42K E3 Finzi D2 30K E4 Saito D2 35K Observação: Uma chave estrangeira pode referenciar-se a sua própria relação (auto-relacionamento). Ex.: Empregado(matrícula, nome, salário, matr_supervisor) 12

MODELO RELACIONAL Regras para definição de chaves estrangeiras: Um conjunto de atributos de uma relação R1 é uma chave estrangeira se satisfaz as seguintes regras: Regra 1 : Os atributos da chave estrangeira tem o mesmo domínio dos atributos da chave primária de outra relação R2. Regra 2: Um valor da chave estrangeira numa tupla t1 de R1 possui o mesmo valor da chave primária para alguma tupla t2 em R2 ou é NULO. 13

Chave primária Fornecedor F# FNOME STATUS CIDADE F1 Smith 20 Londres F2 Jones 10 Paris F3 Blake 30 Paris F4 Clark 20 Londres F5 Adams 30 Atenas Chave primária Chave candidata Peça Exemplos P# PNOME COR PESO CIDADE P1 Porca Vermelho 12 Londres P2 Pino Verde 17 Paris P3 Parafuso Azul 17 Oslo P4 Parafuso Vermelho 14 Londres P5 Came Azul 12 Paris P6 Tubo Vermelho 19 Londres Chave estrangeira Chave estrangeira FornecedorPeca F# e P# Chave primária F# P# QDE F1 P1 300 F1 P2 200 F1 P3 400 F1 P4 200 F1 P5 100 F1 P6 100 F2 P1 300 F2 P2 400 F3 P2 200 F4 P2 200 F4 P4 300 F4 P5 400

ÁLGEBRA RELACIONAL Coleção de operadores que tomam relações como seus operandos e retornam uma relação como seu resultado. Sua função é oferecer uma fundamentação teórica para banco de dados relacional, particularmente linguagem de consulta para tais banco de dados. Oriunda da álgebra original que consistia em sete operadores divididos em dois grupos: Operadores de conjunto : União, Interseção, Diferença e Produto Cartesiano. Operadores relacionais : Restrição (Seleção), Projeção e Junção. 15

Para que serve a álgebra? Definir os dados que deverão ser obtidos como resultado de uma consulta. Definir os dados que deverão ser inseridos, alterados ou eliminados. Definir os dados que deverão ser visualizados através de uma visão. 16

Operadores 17 a b c x y a a b b c c x y x y x y a1 a2 a3 b1 b1 b3 b1 b2 b3 c1 c1 c3 a1 a2 a3 b1 b1 b3 c1 c1 c3 Restrição Projeção Produto Cartesiano União Interseção Diferença Junção

ÁLGEBRA RELACIONAL OPERADORES RELACIONAIS: UNIÃO 18

ÁLGEBRA RELACIONAL OPERADORES RELACIONAIS: INTERSEÇÃO 19

ÁLGEBRA RELACIONAL OPERADORES RELACIONAIS: DIFERENÇA Operação de União e Interseção são comutativas, mas a Diferença não é. Os operadores de União, Interseção e Diferença requerem que as tabelas contenham a mesma estrutura das colunas (mesmo grau e mesmo domínio). 20

ÁLGEBRA RELACIONAL OPERADORES RELACIONAIS: PRODUTO CARTESIANO 21

ÁLGEBRA RELACIONAL OPERADORES RELACIONAIS: SELEÇÃO 22

ÁLGEBRA RELACIONAL OPERADORES RELACIONAIS: PROJEÇÃO 23

ÁLGEBRA RELACIONAL OPERADORES RELACIONAIS: JUNÇÃO Na junção, quando a comparação é uma igualdade (ex.: Depto=CodDep) => é chamada equijoin. Junção Natural: é uma equijoin onde uma das colunas idênticas é eliminada. 24

Exercícios A F# FNOME STATUS CIDADE F1 Smith 20 Londres F2 Jones 10 Paris F5 Adams 30 Atenas Para as Relações acima Quantas tuplas? Qual o grau? Quais os atributos? Quais os tipos? Quais os valores? Qual o resultado da União de A e B Diferenca de A e B Interseção entre A e B Defina uma projeção para A Defina uma restrição para B B F# FNOME STATUS CIDADE F3 Blake 30 Paris F4 Clark 20 Londres F5 Adams 30 Atenas

Exercícios Dada as tabelas Funcionário e Dependente abaixo: F# FNOME FSALARIO FCARGO 1 Maria da Silva 2000,00 Programador 2 Jose Santos 3000,00 Analista 3 Carla Costa 3500,00 Gerente 4 Antônio Souza 2200,00 Programador 5 Marcelo Duarte 2800,00 Analista F# D# DNOME PARENTESCO 1 1 Mariana da Silva Filho 1 2 Jorge da Silva Cônjuge 2 3 Ana Santos Cônjuge 3 4 Antônia Costa Mãe 4 5 Maria Souza Filho 4 6 Paulo Souza Filho Qual o resultado das seguintes expressões: FUNCIONARIO WHERE FCARGO = Programador DEPENDENTE {NOME,PARENTESCO} FUNCIONARIO JOIN DEPENDENTE WHERE F#=F# (1) {DNOME} Qual a expressão para as seguintes necessidades: Fornecer nome dos funcionários que possuem cônjuge como dependente Fornecer nome dos funcionários com salário acima de 3000,00 26

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Permite traduzir os esquemas concebidos de um BD em um nível de abstração mais alto (MER) para o nível de implementação. Principais conceitos do MER: Tipos de entidades (regular, fraca) Graus de relacionamentos (binário, n-ário) Atributos (simples, compostos, multivalorados) Restrições (chave, cardinalidade, etc) 27

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regras para efetuar o mapeamento: Regra 1 - Entidades Regulares Regra 2 - Atributo Multivalorado Regra 3 - Entidades Fracas Regra 4 - Relacionamento Binário 1:1 Regra 5 - Relacionamento Binário 1:N Regra 6 - Relacionamento Binário N:M Regra 7 - Relacionamentos Ternários Regra 8 - Generalização/Especialização Regra 9 - Agregação 28

MAPEAMENTO DO MODELO E-R PARA RELACIONAL O modelo gerado a partir das noves regras executadas pode ser considerado o modelo relacional inicial. Nos casos em que este modelo relacional inicial não atende aos requisitos de performance do BD, há um processo de refinamento e melhoria do modelo, até ser atingido o modelo relacional satisfatório. As regras foram definidas tendo em vista dois objetivos básicos: Obter um banco de dados que permita boa performance de instruções de consulta e alteração do banco de dados. Obter um banco de dados que simplifique o desenvolvimento e manutenção de aplicações. 29

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 1 Entidades Regulares Para cada entidade regular E no esquema E-R, criar uma relação R que inclua todos os atributos simples e derivados de E. Para cada atributo composto de E inclua somente os seus atributos simples. Escolha um dos atributos identificadores de E para ser a chave primária de R. Se a chave escolhida de E for composta, então o conjunto de atributos simples que o compõem irão formar a chave primária de R. 30

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 1 Entidades Regulares Exemplo: MER Modelo Relacional 31

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 2 Atributo Multivalorado Criar uma nova relação R que inclua o atributo multivalorado A mais a chave primária K da relação que representa a entidade (ou relacionamento) que tem A como atributo. A chave primária de R é a combinação de A e K. Se o atributo multivalorado é composto, inclua apenas os atributos simples que o compõe. 32

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 2 Atributo Multivalorado Exemplo: MER Modelo Relacional 33

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 3 Entidades Fracas Para cada entidade fraca W, com entidade forte E, no esquema E-R, criar uma relação R e incluir todos os atributos simples de W como atributo de R. Incluir como atributos da chave estrangeira de R, os atributos que compõem à chave primária da entidade forte E. A chave primária de R é a combinação da chave primária da entidade forte E e a chave da entidade fraca W. 34

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 3 Entidades Fracas Exemplo: MER Modelo Relacional 35

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 4 Relacionamento Binário 1:1 Identifique as relações S e T que correspondem às entidades que participam do relacionamento. Escolha uma das relações, digamos S, e inclua como chave estrangeira em S a chave primária de T. É melhor escolher para desempenhar o papel de S, a entidade que tenha participação total no relacionamento. Inclua todos os atributos simples do relacionamento 1:1 como atributo de S. 36

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 4 Relacionamento Binário 1:1 Exemplo: MER Modelo Relacional 37

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 5 Relacionamento Binário 1:N Identifique as relações S que represente a entidade que participa do lado N do relacionamento. Inclua como chave estrangeira em S, a chave primária da relação T que representa a outra entidade (lado 1) que participa do relacionamento. Inclua qualquer atributo simples do relacionamento 1:N em S. 38

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 5 Relacionamento Binário 1:N Exemplo: MER Modelo Relacional 39

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 6 Relacionamento Binário N:M Crie uma nova relação S para representar o relacionamento. Inclua como chave estrangeira em S as chaves primárias das relações que participam do relacionamento. A combinação destas chaves formará a chave primária da relação S. Inclua qualquer atributo do relacionamento N:M em S. Dica: Pode-se mapear o relacionamento 1:1 ou 1:N de maneira similar ao M:N. Isto é usado quando poucas instâncias do relacionamento existe, evitando valores nulos nas chaves estrangeiras. 40

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 6 Relacionamento Binário N:M Exemplo: MER Modelo Relacional 41

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 7 Relacionamentos Ternários Para cada relacionamento n-ário R, criar uma nova relação S para representar R. Incluir como chave estrangeira em S, as chaves primárias das relações que representam as entidades participantes em R. Incluir qualquer atributo simples do relacionamento R (ou componentes simples dos atributos compostos) como atributo de S. A chave primária de S é a combinação de todas as chaves estrangeiras de S. 42

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 7 Relacionamentos Ternários Exemplo: MER Modelo Relacional 43

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 8 Generalização/Especialização Converta cada especialização E e sua generalização G, cujos atributos são {k, a1, a2,...,na} e k é a chave primária, em esquemas de relações usando uma das seguintes opções: Opção 1: Criar uma relação L para G com os atributos Atrib(L)= {k, a1,...,an} e chave primária k. Criar também uma relação Li para cada especialização Ei, com os seguintes atributos: Atrib(Li) = {k} U {atributos de Ei}, k será a chave primária de G Exemplo: Empregado(Matr, Nome, Salario, TipoTrab) Secretária(Matr, VelocDigit) Técnico(Matr, Especialidade) Engenheiro(Matr, Tipo, CREA) 44

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 8 Generalização/Especialização Opção 1: Exemplo: MER Modelo Relacional 45

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 8 Generalização/Especialização Opção 2: Criar uma relação Li para cada especialização Ei, com os atributos Atrib(Li)= {atributos de Ei} U {k,a1,a2,...,an} e chave primária (Li)=k Exemplo: Secretária(Matr, Nome, Salário, VelDigitação) Técnico(Matr, Nome, Salário, Especialidade) Engenharia(Matr, Nome, Salário, CREA) 46

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 8 Generalização/Especialização Opção 2: Exemplo: MER Modelo Relacional Atenção! O atributo Tipotrab não precisa neste caso. 47

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 8 Generalização/Especialização Opção 3: Criar uma única relação L com atributos Atrib(L) = {k,a1,...,na} U {atributos de E1} U... U {atributos de Em} U {t} e chave primária k. Onde t é um atributo de tipo que indica a especialização a qual a tupla pertence (opção usada para especialização cujas especializações são disjuntas) Exemplo: Empregado(Matr, Nome, Salário, Endereco, TipoEmp, VelDigitação, EspTec, TipoEng, CREA) 48

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 8 Generalização/Especialização Opção 3: Exemplo: MER Modelo Relacional 49

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 8 Generalização/Especialização Opção 4: Criar uma única relação L com atributos Atrib(L) = {k,a1,...,an} U {atributos de E1} U... U {atributos de Em} U {t1,t2,...,tm} e chave primária k. Onde cada ti é um atributo booleano que indica se uma tupla pertence a uma especialização Ei (opção usada para especializações sobrepostas) 50

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 8 Generalização/Especialização Opção 4: Exemplo: Peça(Código, Descrição, Mflag, Desenho, Data, Lote, Cflag, Fornecedor, Preço) 51

MAPEAMENTO DO MODELO E-R PARA RELACIONAL Regra 9 Agregação

Exercício 1) Fazer o mapeamento do seguinte modelo ER abaixo para o relacional

2) Considere o cenário a seguir: Exercício Uma empresa de TI precisa construir um sistema para gerenciar sua fabrica de software de acordo com o seguinte cenário: Todo funcionário da empresa possui um nome, CPF, telefone, email e salário. Os analistas de sistemas são responsáveis por definir o que será desenvolvido junto com o usuário e, portanto, seu cadastro deve conter a descrição da sua formação superior e o nome do idioma que ele mais conhece. Os programadores devem informar o nome da linguagem que tem mais domínio. A Fábrica de Software é chefiada por um funcionário é dividida em equipes de trabalho. Uma equipe está dedicada a uma área, é composta por diversos funcionários e é responsável por uma lista de sistemas. Cada sistema desenvolvido na empresa possui um nome, é desenvolvido em uma linguagem e possui uma versão. Os sistemas desktop são desenvolvidos para uma plataforma e contêm a lista dos programas que o compõe. Cada programa possui um nome e uma quantidade de linhas. Os sistemas Web devem indicar o servidor onde estão instaladas e contem uma lista com o nome a URL das páginas que o compõe. Para o cenário acima construa o modelo conceitual de dados utilizando os conceitos vistos em sala de aula, em seguida faça o mapeamento deste modelo para o Relacional.

NORMALIZAÇÃO Teoria formal que auxilia no projeto de um BD, de modo a avaliar a qualidade do esquema relacional. OBJETIVOS GERAIS Organizar os dados de modo que eles possam ser representados em tabelas, onde cada atributo seja atômico. Garantir que os itens de dados estejam associados com as chaves corretas, minimizando a redundência dos dados.

NORMALIZAÇÃO ANOMALIAS DE MODIFICAÇÃO Relação: cliente = {nome, atividade, taxa} Tabela Anomalia de Eliminação Eliminando a linha do aluno José, perdemos as informações referentes a atividade Musculação, bem como seu valor. Anomalia de Inserção Quando a academia implanta um novo curso, não podemos inseri-lo até que um aluno tenha a disposição de fazê-lo. Anomalia de Alteração Para modificar o texto da modalidade Judô, teremos que modificá-lo em duas linhas.

NORMALIZAÇÃO FORMAS NORMAIS A Normalização tem como objetivo avaliar a qualidade do esquema relacional e transformá-lo, se for o caso, em um esquema relacional equivalente, menos redundante e mais estável. Codd identificou 3 tipos de formas normais: Primeira Forma Norma (1FN) Segunda Forma Normal (2FN) Terceira Forma Normal (3FN) Outros pesquisadores acrescentaram outros tipos: Forma Normal Boyce-Codd (FNBC) Quarta Forma Normal (4FN) Quinta Forma Normal (5FN) Uma relação é dita estar em determinada forma normal se ela satisfizer a um conjunto específico de restrições. Normalizar demais diminui a eficiência dos aplicativos. Normalizar pouco abre brechas para inconsistências.

NORMALIZAÇÃO FORMAS NORMAIS Primeira Forma Norma (1FN) Uma entidade está na primeira forma normal quando não possuir grupos repetitivos, ou seja, quando todos os seus atributos são Atômicos e Monovalorados. Um atributo atômico é aquele que não é tratado em partes separadas. Um atributo monovalorado é aquele que possui somente um valor (não uma lista). Relação cliente: cliente={cpf, nome, endereço, (telefone)} Qual o atributo multivalorado?

NORMALIZAÇÃO FORMAS NORMAIS Primeira Forma Norma (1FN) A aplicação da 1FN consiste em: Substituir o atributo composto pelas partes que o compõem. Eliminar da entidade os atributos multivalorados, criando uma entidade para os mesmos, conforme seu agrupamento. Definir como chave primária desta nova entidade: a chave da entidade origem + o atributo da nova entidade. Exemplo: Relação Cliente: cliente={cpf, nome, endereço, (telefone)} Solução: cliente={cpf, nome, rua, bairro, número, cep} fone_cliente={cpf, telefone}

NORMALIZAÇÃO FORMAS NORMAIS Dependência Funcional Dados dois conjuntos de atributos A e B de uma entidade, diz-se que: B é funcionalmente dependente de A ou A determina B ou B depende de A, Se a cada valor de A estiver associado um, e só um, valor de B. Uma dependência funcional é representada por: A B Onde A é denominado Determinante

NORMALIZAÇÃO FORMAS NORMAIS Dependência Funcional Exemplo1 - identificação de dependências funcionais: Departamento N_funcionário? N_funcionário Departamento? Nome_próprio N_funcionário? N_funcionário Apelido?

NORMALIZAÇÃO FORMAS NORMAIS Dependência Funcional Exemplo2 - identificação de dependências funcionais: O preço é funcionalmente dependente de artigo (Artigo Preço)? O preço é funcionalmente dependente de papelaria (Papelaria Preço)? Preço depende funcionalmente de quem?

NORMALIZAÇÃO FORMAS NORMAIS Segunda Forma Norma (2FN) Uma tabela encontra-se na segunda forma normal quando, além de estar na 1FN, não contém Dependências Funcionais Parciais, ou seja, todos atributos não chave devem depender funcionalmente da chave primária composta. Podemos observar então que se aplica a segunda forma normal, apenas em entidades que possuem chave primária composta Entidades com apenas um atributo na chave primária, já estão na segunda forma normal.

NORMALIZAÇÃO FORMAS NORMAIS Segunda Forma Norma (2FN) Exemplo Identificar dependências funcionais Relação Alunos/Disciplinas: aluno_disciplina = {mat_aluno, cod_discip, nome_aluno, carga_horar_discip, nota} Dependências Funcionais: mat_aluno -> nome_aluno cod_discip -> carga_horar_discip (mat_aluno,cod_discip) -> nota Existem atributos que contêm dependência parcial da chave?

NORMALIZAÇÃO FORMAS NORMAIS Segunda Forma Norma (2FN) A aplicação da 2FN consiste em: Eliminar da entidade os atributos que não dependam de todos os atributos da chave primária. Criar uma nova entidade com os atributos excluídos mais os atributos da chave primária que causam a dependência dos atributos excluídos na entidade origem. Definir como chave primária desta nova entidade, os atributos herdados da chave primária da entidade de origem.

NORMALIZAÇÃO FORMAS NORMAIS Segunda Forma Norma (2FN) Exemplo1 - Aplicação da 2FN Relação Alunos/Disciplinas: aluno_disciplina = {mat_aluno, cod_discip, nome_aluno, carga_horar_discip, nota} Onde: mat_aluno -> nome_aluno cod_discip -> carga_horar_discip (mat_aluno,cod_discip) -> nota Solução: aluno_disciplina = {mat_aluno, cod_discip, nota} disciplina = {cod_discip, carga_horar_discip} aluno = {mat_aluno, nome_aluno}

NORMALIZAÇÃO FORMAS NORMAIS Segunda Forma Norma (2FN) Exemplo2 - Aplicação da 2FN Relação Projeto/Funcionário: projeto_funcionario = {cod_proj, cod_func, nome, categoria, salario, data_ini, temp_proj} Onde: (cod_proj, cod_func) -> data_ini, temp_proj cod_func -> nome, categoria, salario Solução: projeto_funcionario = {cod_proj, cod_func, data_ini, temp_proj} Funcionario = {cod_func, nome, categoria, salario}

NORMALIZAÇÃO FORMAS NORMAIS Terceira Forma Norma (3FN) Uma Relação está na 3FN quando estiver na 2FN e não existir dependência transitiva dos atributos, ou seja, todos os atributos da entidade dependam única e exclusivamente dos atributos da chave primária. Exemplo Identificar dependências funcionais Relação Compra: compra = {cod_compra, cod_cliente, nome_cliente, valor_compra, tel_cliente} Dependências Funcionais: cod_compra-> cod_cliente, valor_compra cod_cliente -> nome_cliente, tel_cliente Existem atributos que contêm dependência funcional transitiva?

NORMALIZAÇÃO FORMAS NORMAIS Terceira Forma Norma (3FN) A aplicação da 3FN consiste em: Eliminar da entidade os atributos que dependam de atributos que não pertencem a chave primária. Criar uma nova entidade com os atributos excluídos mais o atributo causador da dependência transitiva dos atributos excluídos Definir como chave primária desta nova entidade, o atributo herdado da entidade de origem e que causou a dependência transitiva

NORMALIZAÇÃO FORMAS NORMAIS Terceira Forma Norma (3FN) Exemplo1 - Aplicação da 3FN Relação Compra: compra = {cod_compra, cod_cliente, nome_cliente, valor_compra, tel_cliente} Onde: cod_compra-> cod_cliente, valor_compra cod_cliente -> nome_cliente, tel_cliente Solução: compra = {cod_compra, cod_cliente, valor_compra} cliente = {cod_cliente, nome_cliente, tel_cliente}

NORMALIZAÇÃO FORMAS NORMAIS Terceira Forma Norma (3FN) Exemplo2 - Aplicação da 2FN e 3FN Relação Chamada/Funcionario : chamada_funcionario = {rg_funcion, num_chamado, duracao_chamada, nome_funcion, cod_cidade_chamada, nome_cidade_chamada} Onde: rg_funcion, num_chamado -> duracao_chamada, cod_cidade_chamada rg_funcion -> nome_funcion cod_cidade -> nome_cidade Solução: chamada_funcionario = {rg_funcion, num_chamado, duracao_chamada, cod_cidade_chamada} funcionario = {rg_funcion, nome_funcion} cidade = {cod_cidade, nome_cidade}

NORMALIZAÇÃO FORMAS NORMAIS Considerações Finais Uma entidade estará normalizada se estiver atendendo até a terceira forma normal, ou seja, uma entidade estará normalizada se: Não possuir grupos repetitivos (1 FN) Os atributos dependem de todos e unicamente de todos os atributos da chave primária (2FN e 3FN) Um modelo de dados está normalizado se todas as suas entidades estão normalizadas até a terceira forma normal.

Exercício Considere o cenário a seguir: Uma empresa de fornecimento de energia elétrica precisa construir um sistema para controlar as contas de energia dos seus clientes que funcione da seguinte maneira. O sistema deverá ter todos os clientes cadastrados com nome e telefone. Os clientes podem ser pessoa física ou jurídica. Para pessoa física também é cadastrado o CPF e para pessoa jurídica o CNPJ. O valor do Kw /h cobrado depende do tipo de cliente. Além disso, pessoa jurídica paga um adicional de 5% de imposto sobre o valor da conta. Clientes possuem contas mensais geradas a partir do seu consumo de energia. Desta forma, quando um cliente solicita a ligação da energia para a sua casa, é instalado um relógio (medidor) na residência. As residências são cadastradas com rua, número, bairro, cidade e estado. É possível que um cliente tenha mais de uma residência. Todos os meses um funcionário da empresa vai às casa dos clientes para fazer uma leitura no medidor. Assim, o sistema deve guardar os registros mensais de leitura do medidor realizados em cada residência (mês, ano, consumo no mês em kw). Este consumo é utilizado para calcular o valor da conta naquele mês.

Exercício O sistema deverá prover os seguintes relatórios: gráfico com o consumo mensal de um cliente ao longo do ano; Relatório de faturamento total da empresa em venda de energia; Relatório com a quantidade de energia mensalmente vendida pela empresa a seus clientes. Para o cenário acima, desenvolver Modelo de entidades e relacionamentos Mapeamento do modelo de entidade e relacionamento para relacional Definição das tabelas normalizadas na 3FN.