Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Modelo Relacional Modelo Relacional Criado por Edgar Codd (matemático Britanico), nos anos 70; Desenvolveu o modelo de banco de dados relacional, quando era pesquisador no laboratório da IBM em San José; Em junho de 1970 publicou um artigo chamado "Relational Model of Data for Large Shared Data Banks" ("Modelo de dados relacional para grandes bancos de dados compartilhados") na Revista ACM ("Association for Computing Machinery") Vol. 13, No. 6, pp. 377–387. O modelo relacional chegou a ser implementado ainda em vida de Codd, pela própria IBM, num sistema de uso restrito chamado BS12; Utilizado em empresas a partir de 1987. Conjunto de dados vistos segundo um conjunto de tabelas. Modelo Relacional Terminologia Tabela - Relação. Linha - Tupla. Coluna - Atributo. Tabela composta de linhas, colunas e chaves primárias e relacionadas através de chaves estrangeiras. Modelo Relacional Tabela: Conjunto não ordenado de linhas (tuplas), em que cada linha é composta de campos (valor de atributo) Cada campo é identificado por um Nome (nome de atributo) Conjunto de campos das linhas de uma tabela que possuem o mesmo nome formam uma coluna. Exemplo de esquema de modelo relacional Tabela Transformando o Modelo ER num Esquema Relacional Transformação entre os modelos Modelo ER (conceitual) c Projeto lógico de BD relacional Engenharia reversa de BD relacional Ciclo de re-engenharia de BD Modelo relacional (lógico) Transformação entre modelos modelo ER (nível conceitual) Transformação ER para relacional Refinamento do modelo relacional modelo relacional (nível lógico) Entidades Cada entidade é traduzida para uma tabela Cada atributo da entidade define uma coluna desta tabela Atributos identificadores da entidade correspondem a chave primária da tabela. Tradução inicial: Regras que seguem podem fundir tabelas Nomes de colunas boas praticas Referenciados frequentemente em programas formas de texto em computador Para diminuir o trabalho de programadores manter os nomes de colunas curtos. SGBD relacional e outras nome de uma coluna não pode conter brancos Alguns sgbd’s possuem limite de tamanho de nome das colunas; Entidades data de admissão data de nascimento código nome endereço Pessoa (CodigoPess, Nome, Endereço, DataNasc, DataAdm) PESSOA Esquema Lógico no Modelo Relacional Nome da coluna da chave primária Chave primária PK pode aparecer em outras tabelas estrangeira FK Recomendável nomes das colunas que compõem a chave primária na forma de chave sufixados ou prefixados com o nome ou sigla da tabela na qual aparecem como chave primária Exemplo CodigoPess Relacionamento - Alternativas Tabela própria Adição de colunas a uma das tabelas Fusão de tabelas Alternativa depende da cardinalidade (máxima mínima do relacionamento) e Relacionamento – Criação de Tabela (0,n) (0,n) ATUAÇÃO Código Nome Função Título Código Engenheiro (CodEng,Nome) Projeto (CodProj,Título) Atuação (CodEng,CodProj,Função) CodEng referencia Engenheiro CodProj referencia Projeto PROJETO ENGENHEIRO Relacionamento – Adição de coluna (0,n) (1,1) LOTAÇÃO Código Nome Data lotação Código Nome Departamento (CodDept,Nome) Empregado (CodEmp,Nome,CodDept,DataLota) CodDept referencia Departamento EMPREGADO DEPARTAMENTO Relacionamento – Fusão de tabela (1,1) (1,1) ORGANIZAÇÃO Data Instalação Ender Código Nome Conferência (CodConf,Nome,DataInstComOrg,EnderComOrg) COMISSÃO CONFERÊNCIA Exemplificando Casos e Situações de Transformações Transformando Entidades em Relações Criar uma relação R para cada entidade. A relação R terá o mesmo nome da entidade; Incluir como atributos da relação: Atributos simples da entidade Componentes simples de atributos compostos O identificador da entidade torna-se uma chave primária na relação Se o identificador escolhido for composto, o conjunto de atributos simples formarão juntos a chave de R Funcionário (RG, nome, sexo,cidade, UF) Transformando Entidades Fracas em Relações Criar uma relação R para cada entidade fraca Incluir como atributos da relação: Atributos simples da entidade Componentes simples de atributos compostos a PK da entidade proprietária como chave estrangeira (FK) Chave primária de R Combinação da PK da entidade proprietária com o identificador parcial da entidade fraca Dependente (Nome, parentesco,idade, RG ) Exercício código nome (1,1) (0,n) número da empresa nome (1,1) (0,n) número do empregado (0,n) nome nome número de seqüência DEPENDENTE EMPREGADO (1,1) EMPRESA GRUPO Exercício Resolução Grupo (CodGrup,Nome) Empresa (CodGrup,NoEmpresa,Nome) Empregado (CodGrup,NoEmpresa,NoEmpreg, Nome) Dependente (CodGrup,NoEmpresa,NoEmpreg,NoSeq,Nome) Transformando Atributos Multivalorados Seja A um atributo multivalorado de uma entidade ou relacionamento Criar uma nova relação R contendo A; Chave da relação R é o atributo chave da entidade ou os atributos chaves das entidades envolvidas no relacionamento + o atributo multivalorado; Funcionário (RG, nome,sexo,cidade, UF) Telefones_func (RG, fone ) Relacionamentos Unários 1:N Incluir na relação a chave referente ao papel do lado “um” no relacionamento A chave incluída é uma chave estrangeira referenciando os valores da chave primária nome (0,N) gerenciado id gerenciar (1,1) gerente Funcionário (id, nome, id_gerente ) Funcionário Relacionamentos Unários n:n Criar uma relação representando a entidade participante do relacionamento Outra para representar o relacionamento N:M A chave da relação que representa o relacionamento é formada pelo par de chaves da entidade nome (0,N) São de cod requisito (0,N) possui Disciplina (Cod, nome ) Requisito (CodDisc, Cod_requisito) Disciplina Relacionamentos Binários 1:n Criar uma relação para cada entidade participante no relacionamento Incluir a chave primária da entidade do lado “1” como FK na entidade do lado “N” nome NumDepto coordenador RG sexo (0,N) (1,1) Trabalhar FK PK Funcionário (RG, nome, sexo, NumDepto) Departamento (NumDepto, coordenador) Departamento Funcionário PK Relacionamento Binários 1:1 Caso especial do caso 1:N Criar uma relação para cada entidade participante do relacionamento A chave primária de cada uma das relações é incluída como FK da outra relação Observar as cardinalidade mínima para evitar campos null; cic nome num coordenador RG sexo (1,1) (0,1) Trabalhar FK Funcionário (RG, nome, sexo, Num) Departamento (Num, coordenador, RG) Funcionário Departamento Relacionamentos Binários n:n Criar uma relação para cada entidade participante no relacionamento Criar uma nova relação Incluir como atributos FK as chaves primárias de cada entidade participante do relacionamento Esses atributos compõem a chave primária da nova relação Incluir os atributos do relacionamento CNPJ reponsável codigo modelo localização (0,N) (0,N) Produzir Produto Fabricante cnpj responsável localização codigo modelo Produção cnpj codigo Fabricante Produto Relacionamento Binário n:n Esquemas resultantes do Mapeamento para o modelo relacional: Fabricante (cnpj, responsável,localização) Produto (código, modelo) Produção(cnpj, codigo) CNPJ Relacionamento Binário n:n Nome codigo localização sexo cic nome (1,N) (1,N) Atender Esquemas resultantes do Mapeamento para o modelo relacional: Filial (CNPJ, Nome, Localização) Cliente (Código, Nome, Sexo, CIC) Atendimento (CNPJ, Código) Cliente Filial Qtd_mensal CNPJ reponsável codigo modelo localização preco (0,N) (0,N) Produzir Produto Fabricante cnpj responsável localização codigo modelo Produção cnpj codigo Qtd_mensal preço Produto Fabricante Atributo no Relacionamento n:n Atributo no Relacionamento Esquemas resultantes do Mapeamento para o modelo relacional: Fabricante (cnpj, responsável,localização) Produto (código, modelo) Produção(cnpj, codigo, preço, Qdade_mensal) Relacionamentos Ternários Converte-se o relacionamento ternário em uma entidade qtde localização CNPJ reponsável codigo modelo data (0,N) (0,N) Produzir nome num tipo Material Produto Fabricante Relacionamentos Ternários Produto Fabricante Esquemas resultantes do Mapeamento para o modelo relacional: Fabricante (cnpj, responsável,localização) Produto (código, modelo) Material (num, nome, tipo) Produção(num, cnpj, codigo, data, qdade) cnpj responsável localização codigo modelo Produção Material cnpj codigo num qtde data num nome tipo Relacionamentos de Generalizações Três abordagens principais Criar uma relação única superclasse Criar “N” relações subclasses Criar “N+1” relações superclasse e subclasses Escolha da abordagem Restrição de não-sobreposição Disjuntas, Sobreposição Restrições de completude Total, Parcial Relacionamentos de Generalizações nome cod cpf sexo cnpj Pessoa Juridica Pessoa Fisica Cliente Relacionamentos de Generalizações Mapear para uma única relação Opção 1a: Criar uma única relação, com o nome da superclasse Adicionar todos os atributos da superclasse Adicionar todos os atributos das subclasses A chave primária será definida pela PK da superclasse Adicionar um atributo indicando a qual subclasse pertence a tupla OBS: Dispensa a utilização de várias tabelas em consultas Boa opção para subclasses disjuntas pode gerar valores null Cliente codigo nome cnpj cpf sexo Tipo Relacionamentos de Generalizações Mapear para uma única relação Opção 1b: Criar uma única relação, com o nome da superclasse Adicionar todos os atributos da superclasse Adicionar todos os atributos das subclasses A chave primária será definida pela PK da superclasse Adicionar um atributo para cada subclasse indicando o tipo OBS: Dispensa a utilização de várias tabelas em consultas Boa opção para subclasses sobrepostas pode gerar muitos valores null Cliente codigo nome cnpj cpf sexo Tipo_PF Tipo_PJ Relacionamentos de Generalizações Mapear para várias relações Criar uma relação Li para cada subclasse Si e incluir os atributos da subclasse Incluir em cada Li os atributos da superclasse A chave de Li é a o atributo identificador da superclasse OBS: Não indicado para generalizações parciais ou com sobreposição Relacionamentos de Generalizações Mapear para várias relações nome cpf sexo cnpj Pessoa Juridica Pessoa Fisica Cliente cod Relacionamentos de Generalizações Mapear para várias relações Esquemas resultantes do Mapeamento para o modelo relacional: Pessoa_fisica (codigo, cpf, nome, sexo) Pessoa_juridica (codigo, nome, cnpj) Pessoa Juridica codigo nome cnpj Pessoa Fisica codigo nome cpf sexo Relacionamentos de Generalizações Mapear para várias relações Criar uma relação para a superclasse e por somente seus atributos, além de definir sua chave primária. Criar uma relação Li para cada subclasse Si e incluir os atributos da subclasse e a chave primária da superclasse Relacionamentos de Generalizações Mapear para várias relações N+1 nome cpf sexo cnpj Pessoa Juridica Pessoa Fisica Cliente cod Relacionamentos de Generalizações Mapear para várias relações Esquemas resultantes do Mapeamento para o modelo relacional: Cliente(codigoCli, nome) Pessoa_fisica (codigoCli, cpf, nome, sexo) Pessoa_juridica (codigoCli, nome, cnpj) Pessoa Juridica codigoCli cnpj Pessoa Fisica codigoCli cpf sexo Ciente codigoCli nome
Compartilhar