Você está na página 1de 44

Banco de Dados

Aula 4 - Modelo de Dados e


seus níveis de abstração

Prof. João Paulo Pimentel


joao.pimentel@projecao.br

Modelos de Banco de Dados


• Os modelos de banco de dados são usados
para descrever, mais detalhadamente, a
estrutura de um banco de dados.

• Os modelos são baseados em três níveis:

• Conceitual
• Lógico
• Físico

Modelo Conceitual
• É o modelo de mais alto nível, ou seja, que está
mais próximo da realidade dos usuários.

• O nível conceitual é desenvolvido com alto nível


de abstração, a partir dos requisitos do sistema,
extraídos na fase de levantamento de requisitos.

• Esse modelo pode ser elaborado por meio de


dois diagramas: Diagrama de Entidade e
Relacionamento e/ou o Diagrama de Classes.

Modelo Conceitual
• Exemplo de um DER – Diagrama de Entidade e
Relacionamento:
Modelo Conceitual
• Exemplo de um Diagrama de Classes da UML
(Unified Modeling Language - Linguagem de
Modelagem Unificada):
Modelo Lógico
• Descreve como os dados serão armazenados
no banco e também seus relacionamentos.

• Esse modelo adota alguma tecnologia, pode


ser:

• Relacional
• Orientado a Objetos
• Orientado a colunas, dentre outros.

Modelo Lógico
• Exemplo de um Banco de Dados Relacional:
Modelo Físico
• Conhecido também como Modelo de
Implementação, descreve, por meio de alguma
linguagem, como será feita a armazenagem no
banco.

• Nesse nível se escolhe qual Sistema


gerenciador de Banco de dados (SGBD) será
usado, levando em consideração o modelo
lógico adotado. Pode ser: PostgreSQL, MySQL,
Oracle, MS SQL Server, DB2, dentre outros.

Modelo Físico
• Exemplo de código SQL para criação de objetos
no banco:

• Criando a Tabela turma


Modelo Físico
• Criando a tabela professor
Modelo Lógico Relacional
• Edgar Frank Codd desenvolveu o modelo
relacional de dados. Na época, Cood era
pesquisador da IBM quando publicou o artigo
“Relational Model of Data for Large Shared Data
Banks” na revista ACM.

• Neste artigo, Cood demonstra a teoria de banco


de dados relacional, na qual utiliza tabelas
(linhas e colunas) e operações da lógica
matemática e teoria dos conjuntos para interagir
com os dados.

Modelo Lógico Relacional


• Conceitos básicos para compreensão do Modelo
relacional:

• Entidade: elemento do campo de atuação do sistema


que possui propriedades que o distingue. Ex: Carro,
Pessoa, Animal.

• Atributo: propriedade da entidade. Sinônimos: Coluna,


Campo. Ex: cor, nome, tamanho.

• Tupla: conjunto de atributos de uma entidade.


Sinônimos: Linha, Registro. Ex: Cachorro (rex, preto, 8)

Modelo Lógico Relacional


• Relação: conjunto de tuplas. Sinônimos: Tabela,
Arquivo. Ex: Cachorro (nome, cor, idade)
Modelo Lógico Relacional
• Chave Primária

• Conhecida no Diagrama de Entidade e


relacionamento (DER) como atributo
identificador, a chave primária no modelo
lógico é o conjunto de um ou mais atributos de
uma entidade.

• Tem como função garantir que não haverá


tuplas duplicadas, repetidas em uma relação.

Modelo Lógico Relacional


• Quando a chave primaria possui um único
campo é chamada Chave primária simples.
Quando possui mais de um campo, Chave
primária composta.

• A chave primária de uma relação vem


sublinhada.

• Exemplos de aplicação:

Modelo Lógico Relacional


• Em uma relação Pessoa(cpf, numero_
identidade, nome, idade) podemos dizer que o
cpf e o numero_identidade são chaves
candidatas, ou seja, chaves que podem servir
como chave primaria por serem únicas para
cada pessoa. Nesse caso escolhemos o cpf para
ser chave primária. A representação no modelo
lógico fica assim:
Modelo Lógico Relacional
• Agora, se nenhum dos atributos de uma relação
lhe garantir unicidade, podemos criar um
atributo. Nesse mesmo exemplo supomos que
seja somente Pessoa(nome, idade), nem nome
nem idade garantem a unicidade da tupla, pode
existir pessoas que tenham o mesmo nome e a
mesma idade. Sendo assim, podemos criar o
n o s s o p r ó p r i o a t r i b u t o i d e n t i f i c a d o r,
chamaremos de id_pessoa e a cada pessoa
criada, acrescentamos, incrementamos +1 a
esse atributo. Fica assim:
Modelo Lógico Relacional
• Chave Estrangeira

• Uma chave externa ou estrangeira é criada


quando há um relacionamento entre tabelas.
Essa chave é um campo que referencia a chave
primaria de uma outra relação.

• Considere os esquemas a seguir:


Modelo Lógico Relacional


• Quem seriam as chaves primária e estrangeira
do esquema abaixo?
Modelo Lógico Relacional
• Nessas relações podemos afirmar: placa é
chave primária (atributo identificador) de Moto;
cpfProprietario é chave estrangeira em Moto
que referencia o Proprietário da mesma; cpf é
chave primária de Proprietario; id é chave
candidata.

• Vamos entender como funcionam as regras de


mapeamento esquema ER para Lógico
relacional?

Modelo Lógico Relacional


• Depois de criado o modelo Conceitual, o
próximo passo é a criação do modelo lógico.

• Existe um processo conhecido como


mapeamento que nos auxilia na passagem do
modelo conceitual para o modelo lógico
relacional de dados. Os conceitos servem para
mapear, ou seja, mudar as representações do
modelo de Entidade e Relacionamento para
representações equivalentes no modelo
relacional.

Modelo Lógico Relacional


• Regras gerais para mapeamentos de entidades:

Modelo Lógico Relacional


• 1° Exemplo (Atributo identificador e atributo
composto):

• Seguindo as regras, o mapeamento do exemplo


acima fica assim:

Modelo Lógico Relacional


• O atributo identificador cpf, virou a chave
primária na relação; o atributo composto
endereco foi mapeado de maneira que os seus
componentes se tornaram campos na relação,
mas o atributo mais abstrato endereço não foi
mapeado.

Modelo Lógico Relacional


• 2° Exemplo (Atributo multi-valorado):

Modelo Lógico Relacional


• 1° opção:

• Nessa primeira alternativa, o atributo multi-


valorado telefone foi mapeado em uma nova
relação, que recebe a chave primária de pessoa
identidade e o numero que é o número de
telefone. A chave primária dessa nova relação
Telefone, é uma chave composta, formada pela
junção de identidade e numero.

Modelo Lógico Relacional


• 2° opção:

• Nessa segunda alternativa foram criados três


campos na relação pessoa para receber os
valores correspondentes a três telefones. Essa
alternativa é adequada quando se estabelece
um número fixo da quantidade de números de
atributos. No entanto, quando não se sabe esse
número, a 1° opção se torna mais adequada.

Modelo Lógico Relacional


• Mapeamento de entidades Fracas:

• No exemplo acima, linha mais grossa que liga


Dependente representa que Dependente é uma
entidade fraca, ou seja, não existe se Sócio
não existir.

Modelo Lógico Relacional


• O seu mapeamento para o modelo lógico
relacional de dados fica assim:

• A chave primária da relação Dependente é


composta da chave primária de Socio mais a
chave primaria de Dependente, que nesse caso
é o codigo. Portanto, a chave primaria de
entidades fracas será sempre chave composta.

Zé-cício 1
• Vamos Mapear os relacionamentos?

Resposta do Zé-cício 1
Sobre o Zé-cício 1
• Em um relacionamento 1:1, de acordo com os
passos demonstrado, escolhe-se uma das
relações para receber a chave estrangeira,
essa que é a chave primária da relação que
ocorre o relacionamento. Obs: não é regra, mas
geralmente, nesses casos, escolhe-se a relação
que possui participação total no relacionamento.

• Nesse Zé-cício 1 é o motor, pois é (1,1), ou seja


irá sempre existir, enquanto moto (0,1) pode ou
não existir.

Zé-cício 2
• Vamos Mapear os relacionamentos?

Resposta do Zé-cício 2
Sobre o Zé-cício 2
• Em um relacionamento 1:N, escolhe-se a
relação “N” (no caso Moto) e inclui como chave
estrangeira a chave primária da outra relação.
Inclui também os atributos do relacionamento.
Zé-cício 3
• Vamos Mapear os relacionamentos?

Resposta do Zé-cício 3
Sobre o Zé-cício 3
• Em um relacionamento N:N, cria-se uma nova
relação e inclui como chave estrangeira, as
chaves primarias das relações em que ocorre
o relacionamento. A chave primaria dessa nova
relação (no caso Trabalha) será uma chave
composta. Por fim, carrega também os
atributos do relacionamento.
Zé-cício 4
• Como Mapear os relacionamentos n-ários?

Resposta do Zé-cício 4
Zé-cício 5
• Como Mapear os relacionamentos com
Generalização / especialização?

Resposta do Zé-cício 5
Sobre o Projeto Final BD 1

• Atualizar o Modelo Conceitual do Projeto


(incluindo os campos e chaves) e Mapear os
relacionamentos.

• Entregar na Tarefa aberta no blog.


Por hoje é só!!!

E até a próxima aula.

Você também pode gostar