Modelos de Dados
Roteiro
Contextualização de Modelos de Dados
Classificação de Modelos de Dados
Modelo de Dados
Entidade-Relacionamento
Modelo de Dados ER Estendido (EER)
Contexto do uso de Modelo de Dados
Abstração
Separação de detalhes conceituais de detalhes
físicos
Arquitetura de 3 camadas:
Níveis: Interno, Externo e Conceitual
Modelo de Dados:
Conjunto de conceitos que podem ser usados para
descrever a estrutura de um banco de dados,
Categoria dos Modelos de Dados
Alto Nível:
Modelos de Dados Conceituais ou Modelos Lógicos
com Base em Objetos
Baixo Nível:
Modelos de Dados Físicos
Intermediários:
Modelos de Dados Representacionais ou de
Implementação ou Lógicos com Base em Registros
São utilizados para classificar os SGBDs quanto ao
Modelos de Dados de Alto Nível
Possuem conceitos que descrevem os
dados como os usuários os percebem
Utilizam conceitos como Entidades,
Atributos e Relacionamentos
Exemplo: Modelo
Modelos de Dados de Baixo Nível
Descrevem como os dados são
armazenados em arquivos de
computador
Não são manipulados pelos usuários ou
aplicações de bancos de dados
Exemplos: Modelo Unificado (
unifying
model
) e o Modelo de Partição de
Modelos de Dados Representacionais
Oferecem conceitos que podem ser
entendidos pelos usuários finais, mas não
estão distantes da forma como os dados
estão organizados no computador
Ocultam detalhes de armazenamento dos
Modelos de Dados Representacionais
São os mais utilizados nos SGBDs comerciais
tradicionais
Existem várias ferramentas “
case”
que
auxiliam na sua construção por computador
através de interface gráfica
Exemplos: Modelo Relacional, Modelo de
Rede, Modelo Hierárquico e Modelo de Dados
Orientado a Objetos (muito próximo dos
Modelo Entidade-Relacionamento
Descreve os elementos do mundo real
(entidades) com uma existência
independente, suas propriedades (atributos)
e a forma como estes elementos se
inter-relacionam (inter-relacionamentos)
Obtido a partir de requisitos de dados e
Modelo Entidade-Relacionamento
Entidades
Representa uma classe de elementos do mundo
real a qual desejamos guardar dados
Cada elemento representado é chamado de instância
Exemplo de entidades: Banco, Cia. Aérea,
Universidade.
Exemplo de instâncias: Itaú, Bradesco, Gol, TAM,
Modelo Entidade-Relacionamento
Atributos
São propriedades que descrevem cada instância
de uma entidade.
Representam de fato cada dado a ser
armazenado.
Domínio: conjunto de valores possíveis para o
atributo.
Exemplo: Nome do Banco, Endereço da
Modelo Entidade-Relacionamento
Tipos dos elementos:
Entidades Regulares ou Fracas
Atributos
Simples ou Compostos
Monovalorados ou Multivalorados
Armazenados ou Derivados
Relacionamentos
Binários ou Ternários
Modelo Entidade-Relacionamento
Representação
Diagrama de Entidade-Relacionamento – DER
(criado por Peter Chen em 1976)
Notações mais utilizadas
Peter Chen
Modelo Entidade-Relacionamento
Elementos (conforme notação de Peter Chen)
Entidade regular
Entidade fraca
Relacionamento
<<nome>>
<<nome>>
Modelo Entidade-Relacionamento
Elementos (conforme notação de Peter Chen)
Atributo simples
Atributo multivalorado
Atributo composto
Atributo derivado
<<nome>>
<<nome>>
<<nome>>
Modelo Entidade-Relacionamento
Exemplo
Nome da entidade: singular, indicando a classe
de elementos representados pela mesma
Nome do relacionamento: ação ou relação entre
as entidades envolvidas.
Aluno Matriculado Disciplina código
nome
sigla
nome
Carga_horária telefones
Modelo Entidade-Relacionamento
Exemplo: Entidade Fraca
Curso
possui código
nome
Modelo Entidade-Relacionamento
Exemplo
Auto-Relacionamento
Professor código
nome
coordena
Modelo Entidade-Relacionamento
Exemplo: Relacionamento Ternário
Professor código
nome
Turma Disciplina
sigla
Modelo Entidade-Relacionamento
Mapeamento de Cardinalidade
Expressa a quantidade de elementos de cada
entidade no relacionamento com as demais.
Forma de descrição
Notação de Peter Chen
Ligação entre a entidade e o relacionamento e
Razão de cardinalidade
ou
Restrição estrutural de participação
Notação de James Martin
Modelo Entidade-Relacionamento
Razão de Cardinalidade
Utiliza a quantidade máxima de elementos de uma
entidade que participam do relacionamento, que pode ser:
1 – Indica que a entidade participa com no máximo 1 elemento no
relacionamento
N – Indica que a entidade pode participar com muitos elementos no
relacionamento.
Caso seja conhecida a quantidade máxima de elementos que uma
Modelo Entidade-Relacionamento
Restrição Estrutural de Participação
Utiliza as cardinalidades mínima e máxima de
elementos que uma entidade pode se relacionar:
Modelo Entidade-Relacionamento
Mapeamento de Cardinalidade (Peter Chen)
Participação parcial de E1 em R e total de E2 em R
Razão de cardinalidade 1:N para E1:E2 em R
Restrição Estrutural de
participação (0,n) de E1 em R
E1 R E2
E1 1 R N E2
Modelo Entidade-Relacionamento
Exemplo
Razão de Cardinalidade
Restrição Estrutural de Participação
Curso Possui Disciplina código
nome sigla
nome
Carga_horária
1 N
Curso Possui Disciplina código
nome sigla
nome
Modelo Entidade-Relacionamento
Exemplo
Professor código
nome
coordena
coordenador subordinado
Professor código
nome
coordena
coordenador subordinado
Modelo Entidade-Relacionamento
Exemplo
Seria possível ?
Professor código
nome
coordena
coordenador subordinado
Modelo Entidade-Relacionamento
Mapeamento de Cardinalidade (James Martin)
Quanto à cardinalidade Quanto à obrigatoriedade
| Um
⪪
MuitosModelo Entidade-Relacionamento
Exemplo
Curso Disciplina
código
nome sigla
nome
Modelo Entidade-Relacionamento
Possibilidades
E
E
E
Modelo Entidade-Relacionamento
Modelo Entidade-Relacionamento
Exemplo:
Necessitamos modelar os dados de avaliações de provas de
candidatos de um concurso para cargos de professor em uma universidade pública estadual
O objetivo do modelo é registrar os dados de avaliações das
provas dos candidatos, para permitir conhecer a classificação de cada um no concurso.
Cada candidato pode realizar quantas inscrições quiser.
As provas são avaliadas por três professores, que atribuem
notas às mesmas. A nota de cada avaliação é obtida pela média aritmética das notas dos avaliadores.
Modelo Entidade-Relacionamento
Exemplo:
Informações sobre os candidatos: número da inscrição,
nome, RG, orgão expedidor do RG, UF e CPF.
Informações sobre os avaliadores: nome, Universidade a
que pertence e titulação.
Um professor pode participar de mais de uma banca
avaliadora, em sub-áreas diferentes
Cada Sub-Área possui duas provas: uma escrita e uma
didática
Toda banca avaliadora deve possuir um Presidente, que
também atribui nota às avaliações.
As provas são aplicadas para cada área e sub-área do
Modelo Entidade-Relacionamento
Candidato Faz Prova
Modelo Entidade-Relacionamento
Exercício:
Considere um sistema de controle acadêmico de uma universidade fictícia
Deseja-se manter informações sobre alunos, cursos, disciplinas e departamentos
Deseja-se manter informações sobre a associação de alunos a cursos, de disciplinas a
cursos, de disciplinas a departamentos bem como de disciplinas a suas disciplinas pré – requisitos.
Cada disciplina possui exatamente um departamento responsável e um departamento
é responsável por muitas disciplinas, podendo não ser responsável por nenhuma (departamento recém-criado ou desativado).
Um aluno está inscrito em exatamente um curso e um curso pode ter nele inscritos
muitos alunos (inclusive nenhum)
Uma disciplina pode possuir diversos pré-requisitos, mas não são todas as disciplinas
que possuem pré-requisitos
Uma disciplina pode ser pré-requisito de muitas outras disciplinas, mas nem todas as
disciplinas são pré-requisitos de outra disciplina
Uma disciplina pode aparecer no currículo de muitos cursos (inclusive nenhum) e um
curso pode possuir muitas disciplinas em seu currículo (inclusive nenhuma)
Dados de disciplina: sigla, nome e carga horária. Dados de alunos: Matrícula e nome.
Modelo Entidade-Relacionamento
Exercício:
Projete um esquema ER para o banco de dados “Empresa”, descrito da
seguinte maneira:
A empresa é organizada em departamentos;
Cada departamento tem um nome, um número e um empregado que o
gerencia. Armazena-se a data de início que o empregado começou a gerenciar o departamento. Um departamento pode ter diversas
localizações;
Um departamento controla inúmeros projetos, sendo que cada um tem um
nome, um número e uma localização;
Do empregado armazena-se o nome, o número do RG, endereço, salário,
sexo e data de nascimento. Todo empregado é associado a um
Modelo Entidade-Relacionamento
Entidade Associativa:
Não é considerada válida por alguns autores
Entidade 1 Relacionamento1 Entidade 2
Modelo Entidade-Relacionamento
Entidade Associativa
Exemplo:
Vamos modelar um banco de dados que deve
refletir o seguinte fato:
Um médico atende um paciente, durante uma
consulta, podendo prescrever medicamentos.
Um médico pode atender vários pacientes, mas um
por vez.
Modelo Entidade-Relacionamento
Entidade Associativa
Exemplo:
Dados a serem armazenados:
Do médico: CRM, nome e especialidade
Do paciente: RG, nome e data de nascimento
Modelo Entidade-Relacionamento
Entidade Associativa
Primeira proposta:
Médico Atende Paciente CRM
Nome
Especialidade
RG
Nome
Modelo Entidade-Relacionamento
Entidade Associativa
Primeira proposta NÃO está correta, pois:
Modela, em um único relacionamento, o fato deModelo Entidade-Relacionamento
Entidade Associativa
Segunda proposta:
Médico Atende Paciente CRM
Nome
Especialidade
RG
Nome
DataNasc
Código
Nome
Modelo Entidade-Relacionamento
Entidade Associativa
Segunda proposta também NÃO está
correta, pois:
Modela a prescrição como dados pertinentes ao
atendimento, e não como um fato. Ou seja, neste modelo, apenas o atendimento ao
Modelo Entidade-Relacionamento
Entidade Associativa
Terceira proposta:
Médico Atende Paciente CRM
Nome
Especialidade
RG
Nome
DataNasc
Modelo Entidade-Relacionamento
Entidade Associativa
Terceira proposta NÃO está correta, pois:
Relacionamentos ligam entidades, e nãoModelo Entidade-Relacionamento
Entidade Associativa
Quarta proposta:
Médico Atende Paciente CRM
Nome
Especialidade
RG
Nome
DataNasc
Modelo Entidade-Relacionamento
Entidade Associativa
A quarta proposta é bastante utilizada por muitos
autores, mas outros afirmam que não é permitida em modelagem ER.
Utiliza o conceito de “Entidade Associativa”, que
descreve uma entidade obtida a partir de um fato ou relacionamento.
Como entidade, pode ser ligada a outras através
Modelo Entidade-Relacionamento
Entidade Associativa
Quinta proposta:
Médico Atende Paciente
Medicamento CRM
Nome
Especialidade
RG
Nome
DataNasc
Modelo Entidade-Relacionamento
Entidade Associativa
A quinta proposta é apontada por muitos
autores como a representação correta em
modelagem ER do tipo de situação
Modelo Entidade-Relacionamento Estendido
Criados para representar mais
precisamente aspectos do mundo real
em banco de dados.
Inclui conceitos de:
Superclasse e Subclasse
Modelo Entidade-Relacionamento Estendido
Superclasse e Subclasse
São agrupamentos entre entidades onde uma ou
mais entidades (subclasses) possuem todas as
características de outras entidades (superclasses), mas possuem características próprias, que podem envolver tanto atributos quanto relacionamentos específicos.
Também podem ser originadas quando se deseja
Modelo Entidade-Relacionamento Estendido
Generalização e Especialização
Utilizados justamente quando uma
entidade possui todo o comportamento de
outra, mas adicionalmente possui
características próprias, quer sejam
Modelo Entidade-Relacionamento Estendido
Notação para Generalização e
Especialização:
Superclasse
Sub-Classe Sub-Classe Sub-Classe Sub-Classe Sub-Classe
Modelo Entidade-Relacionamento Estendido
Exemplo
Professor
d
Matrícula
Nome
DtIniContrato
Projeto
Código DtInício
Validade
Modelo Entidade-Relacionamento Estendido
Notação para Especialização Reticulada
e União ou Categoria:
Sub-Classe Disjunta Sub-Classe Disjunta Sub-Classe Conjunta Sub-Classe Conjunta Subclasse Compartilhada Subclasse De União U
Modelo Entidade-Relacionamento Estendido
Exemplo
Mamífero Aquático Professor Técnico
Cetáceo Funcionário
Modelo Entidade-Relacionamento Estendido
Exemplo
Modelo Entidade-Relacionamento Estendido
Sugestão para Atualização de nosso
Modelo ER para EER:
Prova
d
Tipo
Modelo Entidade-Relacionamento Estendido (EER)
Candidato Faz Prova
É_Realizada n n 1 Inscrição Nome RG Expedidor UF Data Média Nome Nota Questões Número Área Sub-Área Avaliação 3 n Prova Escrita Prova Didática d
Esquema EER para o banco de dados CONCURSO
Formada_por
Exercício
Banco
de dados “Hotel”
Um hotel mantém o cadastro de seus clientes com RG,
Modelo Relacional
Modelo Representacional
Utiliza o conceito de Relação Matemática,
com base teórica em Teoria dos Conjuntos e
Lógica de Predicados
Sucessor dos modelos de dados hierárquicos
e de rede
São os mais implementados pelos SGBDs
Modelo Relacional
Conceitos:
Representa o banco de dados como uma coleção
de relações
Cada relação é formada, por sua vez, por um
conjunto de atributos e de tuplas, descrevendo os dados e suas propriedades no banco de dados
Possibilita representar o domínio dos atributos,
Modelo Relacional
Relação:
Apresentada de forma tabular: tabela
Atributos: colunas da tabela
Tuplas: linhas da tabela
O nome da relação e seu conjunto de atributos definem um
Esquema de Relação: R (A1,A2,…,An)
O domíno de um atributo da relação é indicado por dom(A1)
Formalmente, uma relação é o subconjunto do produto
cartesiano dom(A1) X dom(A2) X … X dom(An)
O conjunto de tuplas da relação em um dado instante
Modelo Relacional
Relação:
Exemplo: Candidato (Inscrição, Nome,
RG_numero, RG_expedidor, RG_UF)
Nome da relação
Atributos
Modelo Relacional
Restrições:
Restrições de Estado:
Restrição de Domínio
Restrição de Chave ou em Valores Nulos
Restrição de Integridade de Entidade
Nenhum valor de Chave Primária deve ser nulo Restrição de Integridade Referencial
Utiliza o conceito de Chave Estrangeira
Restrição de Integridade Semântica
Modelo Relacional
Restrições de Estado:
Restrição de Domínio:
Dentro de cada tupla, um atributo A deve ter
um valor atômico dentro de dom(A).
Por exemplo: se para um atributo RG seu
domínio for “Inteiro”, não deverá ser possível
atribuir um valor fora deste domínio, como
Modelo Relacional
Restrições de Estado:
Restrição de Chave:
Superchave é um subconjunto de atributos de
um esquema E com a propriedade de que duas tuplas, em qualquer relação R de E, não
tenham as mesmas combinações de valores para esses atributos
T1[SK]≠T2[SK], onde SK é um subconjunto de
atributos
Modelo Relacional
Restrições de Estado:
Restrição de Chave: Chave: uma chave K é uma superchave com a
propriedade adicional de, ao remover qualquer atributo A
de K, o conjunto de atributos K’ restante não é mais
superchave de R
Chave e superchave mínima: Se qualquer atributo for
removido, a restrição de unicidade não é mantida
Um esquema de relação pode ter mais de uma chave
Modelo Relacional
Restrições de Estado:
Restrição de Chave:
Exemplos: Superchaves:
{RG, Nome, DataNascimento}
{RG, Nome, Sexo}
{RG, Nome, DataNascimento, Sexo}
Chave:
Modelo Relacional
Restrições de Estado:
Restrição de Integridade de Entidade
Dado um BD relacional com esquema Sdefinido como um conjunto de relações
S = {R1, R2, ..., Rn}
Os atributos que compõem a chave primária PK
de cada relação R em S não podem ter valores nulos em nenhuma tupla de r(R).
Modelo Relacional
Restrições de Estado:
Restrição de Integridade Referencial
Restrição envolvendo tuplas entre duasrelações
Tuplas em uma relação R1 tem atributos que
compõem FK (chamados chave estrangeira), que por sua vez referencia atributos chave primária PK de uma outra relação R2.
Uma tupla t1 em R1 referencia outra tupla t2 em R2
Modelo Relacional
Restrições de Estado:
Restrição de Integridade Referencial
Exemplo:
RG Nome DataNascimento Departamento Sexo
CodDepartamento NomeDepartamento Gerente
Empregado
Departamento
Modelo Relacional
Restrições de Estado:
Restrição de Integridade Semântica
Baseada na semântica da aplicação. Não pode ser expressa no modelo em si. Exemplos:
“O número máximo de horas trabalhadas por um
empregado não pode ultrapassar 40 horas por
semana”
“O salário de qualquer empregado da empresa não
pode ser maior do que o salário de seu supervisor
Modelo Relacional
Restrições de Transição:
São restrições que só podem ser validadas
através da visão de dois ou mais estados
do banco de dados.
Exemplo:
“O salário de um empregado não pode ser
Modelo Relacional
Operações:
Duas categorias: atualização e recuperação
Atualização:
Não devem violar as restrições de integridade
especificadas no esquema de banco de dados
Básicas: Insert, Delete e Modify
Recuperação:
Modelo Relacional
Atualizações: Ações em caso de
violações
Cancelar a operação que causa a violação
de restrições
Realizar a operação informando o usuário
Propagar as atualizações para corrigir
violação
Modelo Relacional
Insert:
Inserção de tupla com valores de atributos
inválidos: viola restrição de domínio
Inserção de tupla com chave já existente: viola
restrição de chave
Inserção de tupla com chave nula: viola Restrição
de integridade de entidade
Inserção de tupla com chave estrangeira inválida:
Modelo Relacional
Delete:
Remoção de tuplas podem violar restrições de
integridade referencial.
Por exemplo: remover um departamento que
tenha empregados associados através de chave estrangeira.
Para estes casos, deve-se escolher o que fazer
quando a remoção for efetuada:
Não fazer a remoção (RESTRICT)
Propagar a remoção para as relações associadas
Modelo Relacional
Modify:
Modificação de atributos não chave para valores
não válidos: viola restrição de domínio
Modificação valor de chave primária: similar a
remover tupla e inserir uma nova tupla
Modificação valor de chave estrangeira: pode
violar restrição de integridade referencial.
SGBD verifica se o valor da chave refere-se a alguma
Modelo Relacional
Mapeamento:
Utilizando um algoritmo de mapeamento,
gera-se o modelo relacional a partir do
modelo entidade-relacionamento
Processo apoiado pelo uso de ferramentas
Modelo Relacional
Esquema Relacional do banco de dados “Concurso”:
Inscrição Nome RG_Número RG_Expedidor RG_UF
Candidato
Area SubArea Tipo Data
Prova
Nome Titulação Universidade
Professor
Area SubArea Tipo Questao Enunciado
Prova_Escrita_Questões
Inscrição Area SubArea Tipo
Provas_Candidato
Banca_Membros
Professor Inscrição Area SubArea Tipo Nota
Modelo Relacional
BANCA Area Subarea Presidente
Computação 05.03.05 Joyce Martins Mendes Battaglia Computação 05.03.06 Edjair de Souza Mota
Matemática 05.02.01 Denis Gabos
PROVAS_CANDIDATO Inscrição Area Subarea Tipo EST-0040 Computação 05.03.05 Escrita EST-0040 Computação 05.03.05 Didática EST-0050 Computação 05.03.06 Escrita EST-0060 Matemática 05.02.01 Escrita EST-0060 Matemática 05.02.01 Didática
BANCA_MEMBROS Area Subarea Membro
Computação 05.03.05 Joyce Martins Mendes Battaglia Computação 05.03.05 Ernande Ferreira de Melo Computação 05.03.05 José Luiz de Souza Pio Computação 05.03.06 Edjair de Souza Mota Matemática 05.02.01 Denis Gabos Matemática 05.02.01 Guiou Kobayashi
PROVA Area Subarea Tipo Data
Computação 05.03.05 Escrita 02/12/2007 Computação 05.03.05 Didática 05/12/2007 Computação 05.03.06 Escrita 02/12/2007 Computação 05.03.06 Didática 06/12/2007 Matemática 05.02.01 Escrita 09/12/2007 Matemática 05.02.01 Didática 11/12/2007
PROVA_ESCRITA_QUESTOES Area Subarea Tipo Questao Enunciado
Computação 05.03.05 Escrita 1 Fale sobre Modelos Computação 05.03.05 Escrita 2 Exemplifique modelos CANDIDATO Inscrição Nome RG_numero RG_expedidor RG_UF
EST-0040 André Luiz do Vale Soares 0999717-2 SSP AM EST-0050 Flávio José Mendes Coelho 1234567-8 SSP PA EST-0060 Danielle Pompeu Noronha 1112223-3 SSP AM Estado do banco de dados CONCURSO
Modelo Relacional
Normalização:
Minimização de redundância
Minimização de anomalias de inserção,
exclusão e atualização