Modelo Lógico de Dados. Modelo Relacional

Documentos relacionados
Banco de dados. Conteúdo: Modelo relacional Prof. Patrícia Lucas

Abordagem relacional. Capítulo 4

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

Informática. Banco de Dados Relacional. Professor Julio Alves.

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

AULA 01 Bancos de Dados Relacionais Arquitetura Linguagem SQL Componentes: DDL, DML, DCL. Prof. Msc. Célio R. Castelano

Modelo Lógico. Felippe Lima Felippels.wordpress.com

Introdução ao Modelo Relacional

INTRODUÇÃO AO MODELO RELACIONAL

Modelo Relacional (Parte 1) Abordagem Relacional

ATRIBUTOS. Prof. Me. Hélio Esperidião

Banco de dados. Conteúdo: Tradução entre os modelos Entidade Relacionamento e Relacional Prof. Patrícia Lucas

MODELO RELACIONAL Prof.: Jacson Tiola Técnico em Redes de Computadores

Fundamentos de Banco de Dados e Modelagem de Dados

Prof.: Clayton Maciel Costa

MODELAGEM DE DADOS PARTE 1

Prof. Fabiano Taguchi

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

MODELAGEM DE DADOS UNIDADE 4 Modelo Entidade-Relacionamento. Luiz Leão

Projeto de BD Relacional

Revisando Banco de Dados. Modelo Relacional

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

Projeto de BD Relacional

Conceitos de Modelo Relacional Restrições de um Banco de Dados

Modelagem Conceitual parte I

Modelagem Conceitual parte I

Modelagem de Dados. Modelagem Conceitual

Projeto de BD Relacional

Professor Eros Moura, DSc

Modelagem Conceitual e o Modelo Entidade-Relacionamento

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

Abordagem relacional Capítulo 4

Transformações entre modelos

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

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

Modelo Entidade Relacionamento Estendido (ERE)

BCD29008 Banco de dados

Projeto de Banco de Dados

Projeto de Banco de Dados

Restrições de Integridade. Prof. Jefferson Silva CEFET.PHB - PI

Unidade 2 Modelo Conceitual

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

Modelo Relacional Prof. Msc Denival A. dos Santos

Transformação ER para modelo relacional

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;

Computação Instrumental

O que é modelo lógico. Tipos de modelo

Modelo Relacional. Modelo Relacional. Tabelas

MODELAGEM DE DADOS -PROJETO CONCEITUAL DE BD. Prof. Angelo Augusto Frozza, M.Sc.

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

Modelo Relacional Wendel Melo

INTRODUÇÃO (MODELAGEM DE BANCO DE DADOS) Professor Carlos Muniz

Entidade Associativa

Chave alternativa. Angélica Toffano Seidel Calazans Abordagem Relacional

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

Banco de Dados Mapeamento Entidade Relacionamento para Relacional

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

Sistema de Banco de Dados

Banco de Dados. Modelagem de Dados. Prof.: Salustiano Rodrigues

MODELO DE BANCO DE DADOS RELACIONAL

MODELAGEM DE DADOS PARTE 2

Ciclo de Desenvolvimento de BD

Análise e Projeto de Sistemas I

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

01 - Quais as principais vantagens da utilização de um Sistema de Banco de Dados em relação aos sistemas tradicionais de gerenciamento de arquivos?

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

PCS3413 Engenharia de Software e Banco de Dados

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

Banco de Dados I (MAB489)

2. Revisão e Dicas de Modelagem Conceitual

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

Com base nos slides vistos em sala de aula resolva os seguintes exercícios:

Bancos de Dados Aula #2 - Modelos Conceituais de Dados

Prof. Fabiano Taguchi

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

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

Modelo Relacional. Relacionamento. Processo de Projeto de. Programa. Modelo Entidade Relacionamento

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

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS BANCO DE DADOS I PROFA. CLEIANE GONÇALVES OLIVEIRA

PROJETO LÓGICO DE BDOO

PROJETO DE BANCO DE DADOS -PROJETO CONCEITUAL. Prof. Angelo Augusto Frozza, M.Sc.

Análise e Projeto de Sistemas

Modelo de Dados Wendel Melo

Arquitetura dos SBDs Características e Benefícios Visão Geral de Projeto de BD MER: Entidades e Atributos Atividade.

Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance.

Banco de Dados. Aula 7 - Prof. Bruno Moreno 13/09/2011

Modelo Entidade Relacionamento

Introdução e projeto de Bancos de dados Completo

Banco de Dados Modelagem e Normalização

Projeto de Bancos de Dados

Modelo de dados relacional e as restrições de um BD relacional

Abordagem ER. Capítulo 2

Abordagem ER. Capítulo 2

Modelo Relacional. Aula 02

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

Restrições do modelo relacional

Tradução da relações de generalização/especialização do modelo conceitual para o lógico

Transcrição:

Modelo Lógico de Dados Modelo Relacional 1

Composição de um Banco de Dados Relacional É composto de tabelas ou relações O termo tabela é mais comum nos produtos comerciais e na prática O termo relação foi utilizada na literatura original sobre a abordagem relacional (daí a denominação relacional ) e é mais comum na área acadêmica 2

Tabelas Tabela é um conjunto não ordenado de linhas (tuplas, na terminologia acadêmica) Cada linha é composta por uma série de campos (valor de atributo na terminologia acadêmica) Cada campo é identificado por um nome de campo (nome de atributo, na terminologia acadêmica) 3

Tabelas O conjunto de campos homônimos de todas as linhas de uma tabela formam uma coluna Emp CódigoEmp Nome CódigoDepto Categ Funcional E5 Souza D1 C5 E3 Santos D2 C5 E2 Silva D1 C2 E1 Soares D1-4

Tabelas Observações: Cada linha representa uma tupla As linhas de uma tabela não têm ordenação - a ordem de recuperação é arbitrária, a menos que uma ordenação seja especificada na instrução de consulta Não existem linhas duplicadas Não é possível referenciar linhas de uma tabela por posição Os valores de campo de uma tabela são atômicos e monovalorados As consultas podem ser feitas por qualquer critério envolvendo os campos de uma ou mais linhas 5

Chaves Candidatas Coluna ou conjunto de colunas de uma Tabela que identifica de forma única cada linha da tabela e é mínimo (no caso de conjunto) nessa condição O fato de todas as linhas de uma tabela serem distintas entre si garante a existência de ao menos uma chave candidata na tabela Aluno ( RA, Nome, CPF, Data_Nascimento, RG, Emissor_RG) Chaves candidatas: RA CFP (RG, Emissor_RG) (mínimo, precisa do par de valores) 6

Chave Candidata Observações: Exige-se que seja mínima (quando todas as suas colunas forem efetivamente necessárias para garantir o requisito de unicidade de valores da chave) Uma tabela sempre tem ao menos uma chave candidata e pode ter mais do que uma Não existe uma classificação para as chaves candidatas. Todas a mesma relevância na tabela 7

Chave Primária Uma das chaves candidatas da Tabela deve ser escolhida com sua Chave Primária Não existe regra para decidir qual das chaves candidatas deve ser a escolhida Na escolha deve ser considerada a existência de referências a esta chave primária em outras tabelas (chave estrangeira) Ao definir uma chave primária está se definindo uma restrição de integridade e não um caminho de acesso (índice) 8

Chave Estrangeira É uma coluna ou uma combinação de colunas, cujos valores aparecem necessariamente na chave primária de uma tabela Usada para implementar relacionamento em um banco de dados relacional 9

Chave Estrangeira Exemplo: Depto CódigoDepto D1 D2 D3 NomeDepto Compras Engenharia Vendas Emp CódigoEmp Nome CódigoDepto CIC E1 Souza D1 132123123 E2 Santos D2 123124112 E3 Silva D2 125323422 E5 Soares D1 543523345 10

Chave Estrangeira Observações: No exemplo anterior, a coluna CodigoDepto da tabela Emp é uma chave estrangeira em relação à chave primária da tabela Dept Na tabela Emp, os valores do campo CodigoDepto de todas as linhas devem aparecer na coluna CodigoDepto da tabela Dept A existência de uma chave estrangeira impõe restrições que devem ser garantidas ao executar as diversas operações e alteração do banco de dados 11

Mapeamento do Modelo Conceitual para o Modelo Relacional Um modelo conceitual construído utilizando o Modelo Entidade-Relacionamento pode ser mapeado para um modelo lógico Relacional A equivalência mais direta é cada Entidade = uma Tabela cada Atributo = uma Coluna cada Ocorrência = uma Linha 12

Mapeamento de Entidades Para cada Entidade deve ser criada uma relação (tabela) Para cada atributo simples incluir uma coluna na tabela No caso de atributo composto, incluir somente os atributos simples que o compõe (Endereço) código nome Endereço EMPREGADO DataNasc Empregado(Codigo, Nome, Logradouro, Numero, Bairro, Cidade, Estado, DataNasc) 13

Mapeamento de Atributos Multivalorados Para cada atributo multivalorado deve ser criada uma tabela formada pela chave primária da Tabela/Entidade e pelo atributo multivalorado A chave primária da nova tabela será o par de atributos Se o atributo multivalorado for composto. Por ex.: Ingrediente formado por Nome do ingrediente e quantidade, todo o grupo vai para a nova tabela código nome Modo de Preparo Ingrediente (n) RECEITA Receita(Codigo, Nome, Modo_Preparo) Ingrediente_Receita (CodReceita, Ingrediente) 14

Nome das colunas O nome do atributo(modelo conceitual) pode ser diferente do nome do campo da tabela (coluna) Objetivo Facilidade de programação como o uso de nomes curtos Evitar nomes iguais. Ex.: Todas entidades com o atributo nome Evitar espaços no nome da coluna, pois são proibidos nos BD relacionais Dica Defina um padrão para converter o nome dos atributos, principalmente dos nomes compostos que necessitam abreviação. Ex.: Nome do Responsável NomeRes 15

Nome para a chave primária É boa prática compor o nome da chave primária com uma identificação da tabela a qual ela pertence código nome Endereço Data de Nascimento EMPREGADO Empregado(CodEmp, Nome, Endereco, DataNasc) Como geralmente, elas se tornam chaves estrangeiras de outras tabelas, esta prática facilita a programação e compreensão dos campos 16

Mapeamento de Relacionamentos Um relacionamento pode ser transformado em: Uma tabela Uma coluna de uma das tabelas envolvidas Fusão de duas tabelas Esta decisão depende da cardinalidade mínima e máxima dos relacionamentos No caso da fusão devemos considerar também outros relacionamentos da entidade 17

Entidades Fracas Criar uma tabela para cada entidade fraca Nessa tabela incluir como chave estrangeira a chave primária da tabela que representa a entidade possuidora/identificadora As entidades fracas têm chave primária composta de duas partes: A chave primária da tabela (entidade) possuidora A chave parcial da tabela(entidade) fraca código nome Codigo nome Data de Nascimento EMPREGADOS (1,1) (0,n) Dependencia DEPENDENTES Empregados(CodEmp, Nome) Dependentes(CodEmp, CodDep, Nome, DataNasc) 18

Implementação de Relacionamentos 1:1 19

Relacionamentos Binários - Um para Um Ambas entidades têm participação opcional adição de colunas 20

Relacionamentos Binários - Um para Um Ambas entidades têm participação opcional tabela própria 21

Relacionamentos Binários - Um para Um Ambas entidades têm participação opcional fusão de tabelas 22

Relacionamentos Binários - Um para Um Ambas entidades têm participação opcional Solução por fusão de tabelas é inviável Chave primária artificial (já que pode não estar completa) Solução por adição de colunas: melhor Menor número de junções Menor número de chaves Solução por tabela própria: aceitável 23

Implementação de Relacionamentos 1:1 24

Relacionamentos Binários - Um para Um Participação opcional/obrigatória Fusão de tabelas 25

Relacionamentos Binários - Um para Um Participação opcional/obrigatória Adição de colunas 26

Relacionamentos Binários - Um para Um Adição de colunas versus fusão de tabelas Fusão de tabelas é melhor em termos de número de junções e número de chaves Adicão de colunas é melhor em termos de campos opcionais Fusão de tabelas é considerada a melhor e adição de colunas é aceitável 27

Relacionamentos Binários - Um para Muitos 28

Relacionamentos Binários - Um para Muitos Já temos duas tabelas, uma para cada conjunto de entidades que participam do relacionamento Incluir como chave estrangeira, na tabela do lado muitos (o lado N ), a chave primária da tabela do lado um Incluir também colunas com os atributos do relacionamento 29

Relacionamentos Binários - Um para Muitos 30

Relacionamentos Binários Muitos para Muitos 31

Relacionamentos Binários Muitos para Muitos Já temos duas tabelas, uma para cada conjunto de entidades que participa do relacionamento Criar uma nova tabela contendo, como chaves estrangeiras, as chaves primárias dessas duas tabelas A combinação dessas chaves estrangeiras forma a chave primária da nova tabela Incluir também colunas com os atributos do relacionamento 32

Relacionamentos Binários Muitos para Muitos 33

Modelo Lógico de Dados Modelo Relacional Parte 2 Restrições de Integridade Generalizações / Especializações 34

Diagrama para Modelo Lógico Relacional Tabela: representada por um retângulo Relacionamentos somente binários (entre 2 tabelas) tipo 1:N Se for obrigatório, corte transversal: 35

Exemplos Departamento Engenheiro Empregado Participa_Proj Departamento (Codigo, Nome) Empregado (Matricula, Nome, CodDepto) Projeto 36

Chave Estrangeira - restrições impostas Quando da inclusão de uma linha na tabela que contém a chave estrangeira: deve ser garantido que o valor da chave estrangeira, se informado, exista na coluna da chave primária referenciada Se o relacionamento não for do tipo obrigatório, a chave estrangeira pode não ser informada Exemplo: um novo empregado deve atuar em um departamento já existente no banco de dados (na tabela Departamento) 37

Chave Estrangeira - restrições impostas Quando da alteração do valor da chave estrangeira: deve ser garantido que o novo valor de uma chave estrangeira, se informado, exista na coluna da chave primária referenciada Exemplo: se um empregado muda de departamento, deve-se garantir que o novo departamento já exista no banco de dados (na tabela Departamento) 38

Chave Estrangeira - restrições impostas Quando da exclusão de uma linha da tabela que contém a chave primária referenciada pela chave estrangeira: deve ser garantido que na coluna chave estrangeira não apareça o valor da chave primária que está sendo excluída Exemplo: um departamento não pode ser excluído, caso exista algum empregado que o referencie 39

Chave Estrangeira - restrições impostas Quando da alteração do valor da chave primária referenciada pela chave estrangeira: deve ser garantido que na coluna chave estrangeira não apareça o antigo valor da chave primária que está sendo alterada Exemplo: um departamento somente pode ter o seu código alterado se não for referenciado por nenhum empregado 40

Chave Estrangeira Pode acontecer de uma chave estrangeira referenciar a chave primária da própria tabela (e não de uma tabela diferente, como no exemplo anterior). Exemplo: Emp CódigoEmp Nome CódigoDepto Código Emp Gerente E1 Souza D1 - E2 Santos D2 E5 E3 Silva D2 E5 E5 Soares D1 E1 Código Emp Gerente é uma chave estrangeira que Referencia a chave da própria tabela (auto-relacionamento) 41

Valores Vazios Normalmente, os SGBDs relacionais exigem que todas as colunas que compõem a chave primária sejam obrigatórias A mesma exigência não é feita para as demais chaves Atenção: Vazio é diferente de zeros ou brancos 42

Restrições de Integridade Banco de dados íntegro: reflete corretamente a realidade representada pelo banco de dados e os dados são consistentes entre si Um SGBD deve garantir a integridade dos dados através do mecanismo de restrição de integridade 43

Restrições de Integridade Restrição de integridade: regra de consistência de dados que é garantida pelo próprio SGBD Na abordagem relacional as restrições de integridade estão classificadas em: Integridade de domínio Integridade de vazio Integridade de chave Integridade referencial 44

Restrições de Integridade Domínio: É um conjunto de valores (alfanumérico, numérico,...) que um campo de uma tabela pode assumir É chamado de domínio da coluna ou domínio do campo Integridade de domínio: especifica que o valor de um campo deve obedecer a definição de valores admitidos para a coluna (o domínio da coluna) Nos SGBDs relacionais é possível usar domínios pré-definidos (número inteiro, número real, alfanumérico de tamanho definido, data,...) É possível usar um conjunto finito de valores: (Masc, Fem), (Sim, Não), (1, 2,, 5, 7, 11, 13) É possível usar uma fórmula: > 0 e < 1000 45

Restrições de Integridade Valores vazios: Deve-se especificar se o conteúdo de uma coluna pode estar vazio (em inglês null ) Estar vazio significa que o campo não recebeu nenhum valor de seu domínio As colunas que podem conter valores vazios são as colunas opcionais As colunas que não podem conter valores vazios são as colunas obrigatórias Integridade de vazio: Especifica se os campos de uma coluna podem ou não ser vazios (se a coluna é obrigatória ou opcional) Campos que compõem a chave primária não podem ser vazios 46

Restrições de Integridade Integridade de chave: Trata-se da restrição que define que os valores da chave primária devem ser únicos Integridade referencial: Define que os valores dos campos que aparecem em uma chave estrangeira devem aparecer na chave primária da tabela referenciada 47

Restrições de Integridade Declarativas As restrições citadas devem ser garantidas automaticamente por um SGBD relacional a partir da sua declaração na definição das tabelas, não sendo necessário nenhuma programação para garanti-las explicitamente São restrições de Integridade Declarativa: Chave Primária Unicidade (chaves candidatas) Integridade Referencial (Chave Estrangeira) Integridade de Domínio Integridade de Vazio 48

Restrições Semânticas de Integridade Existem restrições de integridade que não podem ser definidas de forma declarativa para um SGBD relacional São chamadas restrições semânticas Necessário que seja feita programação procedural na aplicação ou no SGBD Exemplos: um empregado do departamento Finanças não pode ter a categoria funcional Engenheiro um empregado não pode ter um salário maior que seu superior imediato 49

Generalização/Especialização (1 Tabela) Horistas Prestadores De Serviços Mensalistas CPF nome Endereco Alternativa (1 tabela): PrestadoresServicos(CPF, Nome, Endereco, CustoHora, HorasTrabalhadas, Salario, Tipo) Regras Chave primária referente a entidade genérica Adicionar uma coluna Tipo Uma coluna para cada atributo da entidade genérica e das especializadas Possíveis colunas referentes aos relacionamentos envolvendo as entidades ustohora HorasTrabalho Salario Observações Minimizando a junções Menor número de chaves Muitos atributos opcionais 50

Generalização/Especialização (2 Tabelas) Alternativa (2 tabelas): Horistas, Mensalistas Prestadores De Serviços CPF nome Horistas(CPF,Nome,Endereco,CustoHora,HorasTrabalho) Mensalistas(CPF, Nome, Endereco Salario) Endereco Horistas Mensalistas Observações Unicidade da chave primária não pode ser garantida de forma declarativa pelo SGBD, por serem 2 tabelas independentes Necessário programação procedural ustohora HorasTrabalho Salario 51

Generalização/Especialização (3 Tabelas) Abordagem geral (3 tabelas): Prestadores_de_Servicos, Horistas, Mensalistas Prestadores De Serviços CPF nome Endereco Prestadores_de_Servicos(CPF, Nome, Endereco, Tipo) Horistas(CPF,CustoHora,HorasTrabalhadas) Mensalistas(CPF,Salario) Horistas Mensalistas Regras Incluir a chave primária da tabela genérica em cada tabela especializada como chave estrangeira Adicionar o atributo Tipo Observações ustohora HorasTrabalho Salario Redução de atributos opcionais Ocorrência de uma das 2 tabelas especializadas conforme o valor do atributo Tipo somente pode ser garantida através de programação procedural 52