André Luiz do Vale Soares

82 

Full text

(1)

Modelos de Dados

(2)

Roteiro

Contextualização de Modelos de Dados

Classificação de Modelos de Dados

Modelo de Dados

Entidade-Relacionamento

Modelo de Dados ER Estendido (EER)

(3)

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,

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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,

(11)

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

(12)

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

(13)

Modelo Entidade-Relacionamento

Representação

 Diagrama de Entidade-Relacionamento – DER

(criado por Peter Chen em 1976)

 Notações mais utilizadas

 Peter Chen

(14)

Modelo Entidade-Relacionamento

Elementos (conforme notação de Peter Chen)

Entidade regular

Entidade fraca

Relacionamento

<<nome>>

<<nome>>

(15)

Modelo Entidade-Relacionamento

Elementos (conforme notação de Peter Chen)

Atributo simples

Atributo multivalorado

Atributo composto

Atributo derivado

<<nome>>

<<nome>>

<<nome>>

(16)

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

(17)

Modelo Entidade-Relacionamento

Exemplo: Entidade Fraca

Curso

possui código

nome

(18)

Modelo Entidade-Relacionamento

Exemplo

Auto-Relacionamento

Professor código

nome

coordena

(19)

Modelo Entidade-Relacionamento

Exemplo: Relacionamento Ternário

Professor código

nome

Turma Disciplina

sigla

(20)

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

(21)

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

(22)

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:

(23)

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

(24)

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

(25)

Modelo Entidade-Relacionamento

Exemplo

Professor código

nome

coordena

coordenador subordinado

Professor código

nome

coordena

coordenador subordinado

(26)

Modelo Entidade-Relacionamento

Exemplo

 Seria possível ?

Professor código

nome

coordena

coordenador subordinado

(27)

Modelo Entidade-Relacionamento

Mapeamento de Cardinalidade (James Martin)

 Quanto à cardinalidade

 Quanto à obrigatoriedade

| Um

Muitos

(28)

Modelo Entidade-Relacionamento

Exemplo

Curso Disciplina

código

nome sigla

nome

(29)

Modelo Entidade-Relacionamento

Possibilidades

E

E

E

(30)

Modelo Entidade-Relacionamento

(31)

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.

(32)

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

(33)

Modelo Entidade-Relacionamento

Candidato Faz Prova

(34)

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.

(35)

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

(36)

Modelo Entidade-Relacionamento

Entidade Associativa:

 Não é considerada válida por alguns autores

Entidade 1 Relacionamento1 Entidade 2

(37)

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.

(38)

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

(39)

Modelo Entidade-Relacionamento

Entidade Associativa

Primeira proposta:

Médico Atende Paciente CRM

Nome

Especialidade

RG

Nome

(40)

Modelo Entidade-Relacionamento

Entidade Associativa

Primeira proposta NÃO está correta, pois:

 Modela, em um único relacionamento, o fato de

(41)

Modelo Entidade-Relacionamento

Entidade Associativa

Segunda proposta:

Médico Atende Paciente CRM

Nome

Especialidade

RG

Nome

DataNasc

Código

Nome

(42)

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

(43)

Modelo Entidade-Relacionamento

Entidade Associativa

Terceira proposta:

Médico Atende Paciente CRM

Nome

Especialidade

RG

Nome

DataNasc

(44)

Modelo Entidade-Relacionamento

Entidade Associativa

Terceira proposta NÃO está correta, pois:

 Relacionamentos ligam entidades, e não

(45)

Modelo Entidade-Relacionamento

Entidade Associativa

Quarta proposta:

Médico Atende Paciente CRM

Nome

Especialidade

RG

Nome

DataNasc

(46)

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

(47)

Modelo Entidade-Relacionamento

Entidade Associativa

Quinta proposta:

Médico Atende Paciente

Medicamento CRM

Nome

Especialidade

RG

Nome

DataNasc

(48)

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

(49)

Modelo Entidade-Relacionamento Estendido

Criados para representar mais

precisamente aspectos do mundo real

em banco de dados.

Inclui conceitos de:

Superclasse e Subclasse

(50)

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

(51)

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

(52)

Modelo Entidade-Relacionamento Estendido

Notação para Generalização e

Especialização:

Superclasse

Sub-Classe Sub-Classe Sub-Classe Sub-Classe Sub-Classe

(53)

Modelo Entidade-Relacionamento Estendido

Exemplo

Professor

d

Matrícula

Nome

DtIniContrato

Projeto

Código DtInício

Validade

(54)

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

(55)

Modelo Entidade-Relacionamento Estendido

Exemplo

Mamífero Aquático Professor Técnico

Cetáceo Funcionário

(56)

Modelo Entidade-Relacionamento Estendido

Exemplo

(57)

Modelo Entidade-Relacionamento Estendido

Sugestão para Atualização de nosso

Modelo ER para EER:

Prova

d

Tipo

(58)

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

(59)

Exercício

Banco

de dados “Hotel”

 Um hotel mantém o cadastro de seus clientes com RG,

(60)

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

(61)

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,

(62)

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

(63)

Modelo Relacional

Relação:

 Exemplo: Candidato (Inscrição, Nome,

RG_numero, RG_expedidor, RG_UF)

Nome da relação

Atributos

(64)

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

(65)

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

(66)

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

(67)

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

(68)

Modelo Relacional

Restrições de Estado:

Restrição de Chave:

 Exemplos:

 Superchaves:

 {RG, Nome, DataNascimento}

 {RG, Nome, Sexo}

 {RG, Nome, DataNascimento, Sexo}

 Chave:

(69)

Modelo Relacional

Restrições de Estado:

Restrição de Integridade de Entidade

 Dado um BD relacional com esquema S

definido 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).

(70)

Modelo Relacional

Restrições de Estado:

Restrição de Integridade Referencial

 Restrição envolvendo tuplas entre duas

relaçõ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

(71)

Modelo Relacional

Restrições de Estado:

 Restrição de Integridade Referencial

 Exemplo:

RG Nome DataNascimento Departamento Sexo

CodDepartamento NomeDepartamento Gerente

Empregado

Departamento

(72)

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

(73)

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

(74)

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:

(75)

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

(76)

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:

(77)

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

(78)

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

(79)

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

(80)

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

(81)

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

(82)

Modelo Relacional

Normalização:

Minimização de redundância

Minimização de anomalias de inserção,

exclusão e atualização

Aliadas a outros fatores, garante um bom

Figure

Updating...

References

Updating...

Related subjects :