Baixe o app para aproveitar ainda mais
Prévia do material em texto
Técnicas de Modelagem Leandro Correia leandro.correia@pro.unifacs.br Agenda • Modelo Relacional – Conceitos – Regras de integridade – Modelos de BD – Diagrama ER • Projeto de BDR – Implementação de relacionamentos – Normalização – Desnormalização Modelo Relacional S# Name Status City Domínios S# SNAME STATUS CITY S1 S2 S3 S4 S5 Smith Jones Blake Clark Adams 20 10 30 20 30 London Paris Paris London Athens S Relação C a rd in a lid a d e Tuplas Atributos Grau da Relação Primary Key Modelo Relacional Modelo Relacional Conceitos do Modelo Relacional • Relação • Tupla • Cardinalidade • Atributo • Grau • Chave Primária (PK) • Domínio • Tabela • Linha ou Registro • Número de Linhas • Coluna ou Campo • Número de Colunas • Identificador único • Conjunto de valores válidos Modelo Relacional Conceitos do Modelo Relacional • Uma relação é composta de um cabeçalho e um corpo: – Cabeçalho: Conjunto fixo de atributos; – Corpo: Conjunto de tuplas variando no tempo. • Propriedades de uma relação: – Não há tuplas duplicadas; – As tuplas não seguem um ordenamento (de cima para baixo); – Os atributos não seguem um ordenamento (da esquerda para direita); – Todos os valores de atributos são atômicos. Modelo Relacional Conceitos do Modelo Relacional • Predicado “Um fornecedor com um número de identificação específico (S#) tem um nome (SNAME), um valor de status (STATUS), é localizado numa cidade (CITY) e não existem dois fornecedores com o mesmo número de identificação.” • Proposição S# = “S1” SNAME = “Smith” STATUS = 20 CITY = “London” • Relação S (S#, SNAME, STATUS, CITY) Modelo Relacional Regras de Integridade Relacional • Chaves Candidatas – Conjunto de atributos que identificam uma tupla de maneira única numa relação; – Uma chave candidata para uma relação R é um sub-conjunto do conjunto de atributos de R, dito K, se e somente se: • Não existem duas tuplas distintas de R com o mesmo valor de K; (Unicidade) • Nenhum sub-conjunto próprio de K atende à propriedade de Unicidade. (Irredutibilidade) Modelo Relacional Regras de Integridade Relacional • Chave Primária – Caso especial de chave candidata; – Dentre o conjunto de chaves candidatas: • Uma é escolhida como Chave Primária (Primary Key); • As demais são ditas Chaves Alternativas. – Toda Relação possui pelo menos uma Chave Candidata, pois relações não possuem tuplas duplicadas. (propriedade de relações). Modelo Relacional Regras de Integridade Relacional • Chave Estrangeira – Uma chave estrangeira é um atributo ou conjunto de atributos numa relação R2, cujos valores são necessariamente equivalentes à chave primária de uma relação R1 (R1 e R2 não necessariamente distintos); DEPTO ( DEPTO#, DNAME ) PRIMARY KEY ( DEPTO# ) EMP ( EMP#, ENAME, DEPTO#, SALARY ) PRIMARY KEY ( EMP# ) FOREIGN KEY ( DEPTO# ) REFERENCES DEPTO Modelo Relacional Regras de Integridade Relacional • Integridade de Entidade – Não se permite a nenhum atributo que participe da chave primária de uma relação que aceite valores nulos. • Integridade Referencial – Se uma relação R2 inclui uma chave estrangeira FK equivalendo a uma chave primária PK de uma relação R1, então todo valor de FK em R2 deve: • Ser igual a valor de PK em alguma tupla R1, ou • Ser totalmente nulo (cada valor de atributo que participa deste valor FK deve ser nulo). Obs.: R1 e R2 não são necessariamente distintos. Modelo Relacional Regras de Integridade Relacional • Regras de Integridade Referencial – Restricted (Restrita) • Não é permitido a atualização (alteração/exclusão) de tupla pai que possua filhos. – Cascades (Cascata) • As atualizações são propagadas das tuplas pai para as tuplas filhas. – Nullifies (Nula) • Na atualização de tuplas pai, os valores de chave estrangeira das tuplas filhas são atualizados para NULL. Modelo Relacional Modelos de Bancos de Dados “Um modelo de (banco de) dados é uma descrição dos tipos de informações que estão armazenados em um banco de dados.” Heuser, C. A. (2001) Modelo Relacional Modelos de Bancos de Dados • Modelo Conceitual – Modelo de dados abstrato; – Descreve a estrutura de um banco de dados independente de um SGBD particular; – Exemplo: Departamento Funcionário Lotação (1,n) (1,1) Modelo Relacional Modelos de Bancos de Dados • Modelo Lógico – Modelo de dados que descreve a estrutura de um banco de dados conforme vista pelo usuário de um SGBD particular; – Exemplo: • Departamento (cod_departamento, nome_departamento, sigla_departamento) • Funcionario (mat_funcionario, nome_funcionario, cod_departamento) Modelo Relacional Modelos de Bancos de Dados • Diagrama Entidade/Relacionamento – Criado por Peter Chen, em 1976; – Técnica para modelagem de dados; – Entidade • Conjunto de objetos da realidade modelada sobre o qual se deseja manter informações no banco de dados (pessoas, empresas, departamentos, funcionários, filmes, vendas, produtos, etc; • Represntada por um retângulo. – Relacionamento • Conjunto de associações entre as entidades; • Representado por um losango. Modelo Relacional Modelos de Bancos de Dados • Diagrama Entidade/Relacionamento – Cardinalidade • Número mínimo ou máximo de ocorrências de entidade associadas a uma ocorrência de outra entidade, através de um relacionamento; • Máxima: varia de 1 a n, ou seja, uma ocorrência de uma entidade estará associada a pelo menos 1 e no máxino n ocorrências da outra entidade; • Mínima: varia de 0 a 1, indicando se associação entre as entidade é opcional (0) ou obrigatória (1). Modelo Relacional Modelos de Bancos de Dados • Exemplos: Disciplina Aluno Matrícula (0,n) (0,n) Gênero Filme Classificação (0,n) (1,1) Modelo Relacional Modelos de Bancos de Dados • Exemplos: Pessoa Matrimônio (0,1) (0,1) h o m e m m u lh e r Projeto de Bancos de Dados Relacionais Projeto de Bancos de Dados Relacionais Implementação de Relacionamentos • 3 estratégias básicas – Criação de uma tabela para representar o relacionamento; – Criação de colunas adicionais em uma tabela existente; – Fusão de tabelas de entidades. Projeto de Bancos de Dados Relacionais Normalização • Dependências Funcionais – Sejam X e Y atributos de uma relação R. Representamos a dependência funcional de Y em relação a X por: • R.X R.Y ou • R.X determina funcionalmente R.Y ou • Y é funcionalmente dependente de X se e somente se, para cada valor de X em R, existir precisamente um único valor de Y em R. Determinante Dependente Projeto de Bancos de Dados Relacionais Normalização • Dependências Funcionais – Exemplos • Na relação SP (S#, P#, QTY): { S#, P# } { QTY } { S#, P# } { S# } { S#, P# } { P# } – Se o dependente é um sub-conjunto do determinante, a dependência é dita trivial • Exemplo: { S#, P# } { S# } – Caso contrário, a dependência é dita não trivial • Exemplo: { S#, P# } { QTY } Projeto de Bancos de Dados Relacionais Normalização • Dependências Funcionais – Regras de inferência de Armstrong • Sejam A, B e C sub-conjuntos arbitrários do conjunto de atributos de uma relação R e AB significa a união entre A e B, ficam valendo as seguintes regras: Reflexão Se B é sub-conjunto de A, então A B Ampliação/Soma Se A B então AC BC Transitividade Se A B e B C então A C Auto-Determinação A A Projeto de Bancos de Dados Relacionais Normalização • Dependências Funcionais – Regras de inferência de Armstrong (continuação)Decomposição Se A BC, então A B e A C União Se A B e A C, então A BC Composição Se A B e C D, então AC BD Projeto de Bancos de Dados Relacionais Normalização • Dependências Funcionais cod_livro titulo_livro cod_livro cod_editora cod_livro nome_editora cod_livro peso_livro cod_livro qtd_paginas cod_livro qtd_capitulos titulo_livro cod_liv titulo_livro cod_ed titulo_livro nome_ed titulo_livro peso_liv titulo_livro qtpaginas_liv titulo_livro qtcapitulos_liv cod_editora nome_editora nome_editora cod_editora LIVRO cod_livro titulo_livro cod_editora nome_editora peso_livro qtd_paginas qtd_capitulos Projeto de Bancos de Dados Relacionais Normalização • Dependências Funcionais cod_livro titulo_livro cod_editora nome_editora peso_livro qtd_paginas qtd_capitulos titulo_livro cod_livro cod_editora nome_editora peso_livro qtd_paginas qtd_capitulos cod_livro e titulo_livro são chaves candidatas. Todos os atributos de uma relação devem ser funcionalmente dependentes das chaves candidatas e, consequentemente, da chave primária. Projeto de Bancos de Dados Relacionais Normalização • 1a Forma Normal (1FN ou 1NF) – Uma relação está 1FN se e somente se todos os seus domínios só contém valores atômicos; – O modelo relacional exige que as relações estejam pelo menos na 1FN; – Características: • Estrutura tabular; • Princípio da atomicidade; • Proibição de campos multivalorados. Projeto de Bancos de Dados Relacionais Normalização • 1a Forma Normal (1FN ou 1NF) FUNCIONARIO matricula nome cod_depend 1052 Bob Jones D213 1053 Liz Moore 1107 Ted Smith D240 D241 FUNCIONARIO matricula nome cod_depend 1052 Bob Jones D213 1053 Liz Moore 1107 Ted Smith D240 1107 Ted Smith D241 Não está na 1FN Está na 1FN Projeto de Bancos de Dados Relacionais Normalização • 2a Forma Normal (2FN ou 2NF) – Uma relação está na 2 FN se e somente se está na 1FN e todos os atributos não chave são totalmente dependentes da chave primária; – Diz respeito às chaves primárias compostas; – Se a chave primária de uma relação não é composta e a relação está na 1FN, ela está também na 2FN; – Uma relação que está na 1 FN pode não estar na 2FN se sua chave for composta. Projeto de Bancos de Dados Relacionais Normalização • 2a Forma Normal (2FN ou 2NF) – Decomposição funcional • p# nome_peca • p# cod_cor • p# cor • p# peso • (f#,p#) quantidade FORNECEDOR_PECA f# p# nome_peca cod_cor cor peso quantidade A única dependência total é de quantidade. Projeto de Bancos de Dados Relacionais Normalização • 2a Forma Normal (2FN ou 2NF) – Dependêcias parciais • Problemas de atualização (insert, update, delete); FORNECEDOR_PECA f# s# nome_peca cod_cor cor peso quantidade f1 p1 prego c1 cinza 13 300 f1 P2 porca c2 preto 15 200 f2 p1 prego c1 cinza 13 750 f2 p3 chave c3 azul 10 650 f2 p4 roda c2 preto 23 400 f4 p5 jante c1 cinza 25 200 Projeto de Bancos de Dados Relacionais Normalização • 2a Forma Normal (2FN ou 2NF) – Dependêcias parciais • Solução: decomposição de projeção sem perda de dados (non-loss projection decomposition); FORNECEDOR_PECA f# p# quantidade PECA p# nome_peca cod_cor cor peso quantidade Projeto de Bancos de Dados Relacionais Normalização • 3ª Forma Normal (3FN ou 3NF) – Uma relação está na 3 FN se e somente se ela está na 2 FN e seus atributos não chave são mutuamente independentes; – Os atributos são considerados mutuamente independentes quando nenhum atributo é funcionalmente dependente de nenhuma combinação dos outros, exceto da chave primária; – A título de simplificação a terceira forma normal considera que a relação terá somente uma chave candidata, ou seja, a chave primária. Projeto de Bancos de Dados Relacionais Normalização • 3ª Forma Normal (3FN ou 3NF) – Os atributos cod_cor e cor são dependentes funcionalmente um do outro; – Dependência indesejada durante as atualizações de dados; – Não está na 3FN. PECA cod_peca nome_peca cod_cor cor peso Projeto de Bancos de Dados Relacionais Normalização • 3ª Forma Normal (3FN ou 3NF) – Opções para normalização da relação: • Eliminar o atributo cod_cor; (Opção 1) • Criar uma relação distinta para as informações sobre cor. (Opção 2) PECA cod_peca nome_peca cod_cor peso COR cod_cor cor Opção 2 PECA cod_peca nome_peca cor peso Opção 1 Projeto de Bancos de Dados Relacionais Normalização • Boyce and Codd Normal Form (BCNF) – Uma relação está na BCNF se e somente se todo determinante é chave candidata; – Um determinante é qualquer atributo do qual algum outro atributo é funcionalmente dependente; – As anomalias resolvidas pela BCNF aparecem em relações com as seguintes características: • Múltiplas chaves candidatas; • Chaves candidatas são compostas; • Chaves candidatas possuem ao menos um atributo em comum. Projeto de Bancos de Dados Relacionais Normalização • Boyce and Codd Normal Form (BCNF) – Exemplo: Relação de Monitores de Disciplinas: • Cada disciplina pode ter vários monitores; • Um monitor só monitora uma disciplina. MONITOR aluno disciplina monitor aluno disciplina monitor Aline Física II Mário Aline Lógica Marcos Aline Pesquisa Ana Carlos Física II Paula João Física II Mário Projeto de Bancos de Dados Relacionais Normalização • Boyce and Codd Normal Form (BCNF) – Dependências funcionais • monitor disciplina • {aluno, disciplina} monitor • {aluno, monitor} disciplina monitor aluno disciplina Está na 3FN, mas não está na BCNF. Projeto de Bancos de Dados Relacionais Normalização • Boyce and Codd Normal Form (BCNF) – Solução (decomposição sem perdas): ALUNO_MONITOR aluno monitor Aline Mário Aline Marcos Aline Ana Carlos Paula João Mário MONITOR_DISCIPLINA monitor displina Mário Física II Marcos Lógica Ana Pesquisa Paula Física II Atende à BCNF.
Compartilhar