Modelo Lógico
O que é modelo lógico Descrição de estruturas de dados em uma forma passível de ser processada por um SGBD; Não considera aspectos físicos de armazenamento, acesso e desempenho. Tipos de modelo Modelo Hierárquico Modelo de rede Modelo Relacional Modelo orientado a objetos Modelo Objeto-Relacional Modelo NOSQL
MODELO RELACIONAL
Modelo Relacional Principal modelo de dados para aplicações comerciais; Simples; O BD é uma coleção de relações; Cada relação se parece com uma tabela de valores; Cada linha na tabela representa uma coleção de valores de dados relacionados, um fato do mundo real, uma entidade ou relacionamento do modelo conceitual
Modelo Relacional Cada linha é chamada TUPLA Um cabeçalho de coluna é conhecido como ATRIBUTO A tabela é chamada RELAÇÃO Os valores possíveis em cada coluna é chamado DOMÍNIO, e deve ser atômico Um esquema de relação é composto do nome da relação e de uma lista de atributos
Relação
Atributos
Esquema Aluno (nome, idade, sexo, matricula)
Características das relações Não existe ordem entre as tuplas de uma relação
Características das relações Desde que seja mantida a correspondência entre atributos e valores, não existe ordem entre os atributos de uma relação
Características das relações Todos os atributos de uma relação devem ser atômicos
Características das relações Cada tupla da relação pode ser interpretada como um fato
Características das relações Todos os atributos devem ter nomes distintos Nenhuma relação possui tuplas em duplicata
Chave primária
Chave primária O valor do atributo-chave é utilizado para identificar uma tupla de forma única Uma chave é uma propriedade que deve ser respeitada por todas as instâncias da relação Nenhum atributo chave pode ter valor nulo (integridade da entidade)
ENGENHEIRO PROJETO Codigo Nome Codigo Título 01 João 02 Maria 03 José 010 Projeto Escola 020 Projeto Fruticultura 030 Projeto Segundo Tempo
Engenheiro (Código, Nome) Projeto (Código, Título) Falta alguma coisa?
E o relacionamento??? Engenheiro (Código, Nome) Projeto (Código, Título)
ENGENHEIRO PROJETO Codigo Nome Codigo Título 01 João 02 Maria 03 José 010 Projeto Escola 020 Projeto Fruticultura 030 Projeto Segundo Tempo
Como armazenar o relacionamento ATUAÇÃO?
Observações Cada projeto só pode ter um único engenheiro relacionado; Cada engenheiro pode se relacionar com vários projetos; Tanto o nome do engenheiro, quanto o título do projeto não necessitam se repetir dentro do BD, basta uma única vez.
Chave Estrangeira Cria-se na Entidade Projeto (lado N do relacionamento) um novo atributo; Esse novo atributo irá receber o código (chave primária) do engenheiro que atua no projeto; ENGENHEIRO PROJETO Codigo 01 João Nome Codigo Título Engenheiro_fk 010 Projeto Escola 01 02 Maria 03 José 020 Projeto Fruticultura 01 030 Projeto Segundo Tempo 03
Observações O nome do atributo que é chave estrangeira não precisa ser idêntico ao da chave primária ao qual ele referencia; Recomenda-se o uso do sufixo _FK para indicar que é uma chave estrangeira. Porque a chave estrangeira irá receber valores da chave primária da outra relação e não outro atributo?
Chave Estrangeira Tem-se as relações X e Y; Um atributo em X é uma chave estrangeira se fizer referência à chave primária de Y; Os atributos que compõem a chave estrangeira de X tem o mesmo domínio que os atributos da chave primária de Y.
Integridade Referencial Qualquer tupla pertencente a uma relação R1 que referencia uma outra relação R2, tem de necessariamente referenciar uma tupla existente em R2 ENGENHEIRO PROJETO Codigo 01 João Nome Codigo Título Engenheiro_fk 010 Projeto Escola 01 02 Maria 03 José 020 Projeto Fruticultura 01 030 Projeto Segundo Tempo 05
Chave estrangeira
E se...
Exercício
Atributo Composto
Atributo Derivado
Atributo multivalorado
Atributo de relacionamento
Entidade Fraca
Relacionamento Ternário
Agregação Uma nova relação: os atributos da entidade agregada são as chaves de cada uma das entidades participantes mais os atributos do relacionamento A chave primária da entidade agregada consiste dos atributos chaves das duas entidades participantes
Agregação
Agregação Homem(idhomem, salario, nome) Mulher(idmulher, nome, profissao) Casamento (idhomem, idmulher, data) Filho(idfilho, idhomem, idmulher nome, sexo)
Agregação Qual é o modelo relacional?
Agregação Qual é o modelo relacional? Homem (Id-homem, salario, nome, homem_fk, mulher_fk) Mulher (Id-mulher, nome, profissao, homem_fk, mulher_fk) Casamento (Id-homem, id-mulher, data)
Exercício