Modelo de Dados

Propaganda
Modelo de Dados
Disciplina de Sistemas de Banco de Dados
Prof. Marcos Antonio Schreiner
30/09/2015
Motivação
• Por que utilizar Banco de Dados:
– Abstração dos dados;
– Separar aplicações dos detalhes do arquivo;
– Separar a aplicação dos detalhes de persistência dos
dados.
• Logo é preciso utilizar os modelo de dados
– Ferramentas conceituais para a descrição dos dados
– dos relacionamentos existentes entre os dados e
– da semântica e das restrições que atuam sobre estes.
Modelo de Dados
• Modelo para organização dos dados de um BD
– São conceitos para a representação de dados
• exemplos: entidade, tabela, atributo, …
– Há diferentes níveis de abstração de dados
• modelos conceituais
• modelos lógicos
• modelos físicos
Projeto de Banco de Dados
Minimundo
Independe do SGBD
Conjunto de
necessidades
Análise de
requisitos
Esquema
conceitual
Modelo
conceitual
Depende do SGBD
Esquema em
linguagem de
implementação
Modelo
Lógico
Modelo
físico
Projeto de Banco de Dados
• Análise de requisitos
– entrevistas a usuários de BD
– documentação do sistema
• Modelo conceitual
– descreve conceitos sobre as necessidades dos usuários
Modelo Conceitual
●
Representação com alto nível de abstração
– Representação mais natural dos fatos do mundo real:
• Propriedades
• Relacionamentos
●
●
Representação independente de BD.
Preocupação com a semântica da aplicação. Por exemplo
alunos de muitos cursos de uma universidade.
Matrícula
(1,N)
Alunos
Nome
(N,1)
Lotação
Ano Ingresso
Cursos
Código
Nome
Modelo Entidade-Relacionamento
• Um dos modelos conceituais mais utilizados.
• Características:
– Desenvolvido para facilitar o projeto lógico do BD;
– Representa estruturas lógicas globais do BD;
– Modelos de dados com considerável capacidade
semântica;
– Representa problemas por meio de entidades e
relacionamentos entre estas entidades.
Entidade
• Qualquer objeto distinguível que deva ser
representado no banco de dados (Date, 2003).
• Algo do mundo real com uma existência
independente (Elmasri e Navathe, 2012).
• Pode ser:
– existência física: uma pessoa, um carro.
– existência conceitual: uma companhia, um
emprego, um curso.
• Composta por propriedades particulares: Atributos
Atributo
• Propriedades Específicas que descrevem a
Entidade (Elmasri e Navathe, 2012) ou um
relacionamento.
• Por exemplo:
– Pessoa (nome, data_nasc, cpf)
• Domínio de um atributo
– conjunto de valores possíveis para o atributo
– pode assumir valor nulo (NULL)
– exemplos:
– nome: varchar(50)
– data_nasc: date
Atributo - Classificação
• Os atributos podem ser:
– Simples ou atômico
●
Não pode ser decomposto em atributos.
●
Exemplo: idade
– Composto
●
Pode ser decomposto em outros atributos.
●
Possui elemento de concatenação dos atributos que o compõe
●
Exemplo: endereço é composto de nome_rua, nro_casa,
complemento, nome_bairro, ...
Atributo - Classificação
• Os atributos podem ser:
–
–
Monovalorado
●
possui um único valor para cada entidade
●
exemplo: idade
Multivalorado:
●
Possui múltiplos valores para cada entidade
●
Exemplo: atributo telefone
valores: 222-0000, 222-0001, ...
●
●
pode possuir limites inferior/superior com relação à
multiplicidade dos valores assumidos
exemplo: nro_min = 0, nro_max = 3
Atributo - Classificação
• Os atributos podem ser:
–
Armazenado
●
–
Está realmente armazenado no BD
Derivado
●
Pode ser determinado através de outros atributos
●
Exemplos:
–
idade = data_atual – data_nascimento
–
nro_empregados = soma de todos os empregados
Atributo Chave
• Chave primária
– conjunto mínimo de atributos que identificam de
maneira única uma entidade.
– escolhida pelo projetista do Banco de Dados como meio
de identificação de uma entidade.
• Exemplo:
COD_empregado
EMPREGADO
nome_empregado
endereço_empregado
Atributo Chave Primária
• A chave primária pode ser:
– Simples: Formada por apenas um atributo;
– Composta: Formada por dois ou mais atributos.
• Exemplo:
Matrícula
Matrícula Código_curso
(1,N)
Alunos
(N,1)
Lotação
Cursos
Código
Nome
Ano Ingresso
Nome
Atributo Chave Candidata
•
São atributos candidatos a chave primária, mas
que podem não ser chave primária.
• Exemplo:
• CPF;
• RG;
• CODIGO DE BARRAS.
Como escolher a chave primária?
Escolha da Chave Primária
• A chave primária deve atender as seguintes restrições:
– Identificar somente uma entidade;
– Não pode ter valores nulos;
OBS1: É adequado escolher chaves naturais ao invés de criar
chaves artificiais.
OBS2: Devido a integridade dos dados é ideal que a chave primária
seja um atributo que não será alterado. Entretanto existem
operações do SGBD que garantem a integridade caso a chave
primária seja alterada ou removida.
O que fazer? Por enquanto cada um faça sua escolha. Vamos
aprender com os nosso próprios erros.
Tipo de Entidade
• É uma coleção de entidades que têm os mesmos
atributos (Elmasri e Navathe, 2011).
• Ou seja, entidades de um tipo de entidade
– compartilham os mesmos atributos
– possuem seus próprios valores para cada atributo
• Por exemplo:
– Todos os funcionários de um departamento são do tipo de
entidade FUNCIONARIO.
Exemplo e Representação
COD_empregado
EMPREGADO
nome_empregado
endereço_empregado
Tipo entidade: EMPREGADO
Entidades
COD_empregado: 01199945652 COD_empregado: 1401601900
nome_empregado: Roberta
nome_empregado: João
endereço_empregado: Rua XV endereço_empregado: Rua Dallas
Relacionamento
• Relacionamento
– Interligam as Entidades (Date, 2003).
– Atributo do tipo Entidade em outra Entidade (Elmasri e
Navathe, 2012).
• Tipo relacionamento
– conjunto de relacionamentos do mesmo tipo
• Exemplo: pessoa trabalha para empresa
pessoa
trabalha
empresa
Relacionamento
• Derivadas do minimundo sendo analisado
• Restrições estruturais:
– Cardinalidade: Determina número de entidades em um
relacionamento.
– Participação: Determina se a entidade existe por causa
do relacionamento.
Restrição de cardinalidade
• “Especifica o número MÁXIMO de instâncias de
relacionamento em que uma entidade pode
participar”(Elmasri e Navathe, 2011).
• Cardinalidades:
–
–
–
–
●
um-para-um ( 1 : 1 )
um-para-muitos ( 1 : n )
muitos-para-um ( n : 1)
muitos-para-muitos ( m : n )
OBS: ( m:n ) gera dois relacionamentos: ( 1:n ) e ( n:1 )
Exemplo - Cardinalidade
Restrição de Participação
• “Especifica se a exitência de uma entidade
depende dela estar relacionada a outra entidade
por meio do relacionamento”(Elmasri e Navathe,
2011).
• Tipos de participação:
• Total
• Parcial
Restrição de Participação
• Participação Total
EMPREGADO
n
1 DEPARTAMENTO
trabalha
• Participação Parcial
EMPREGADO
m
desenvolve
n
PROJETO
Resumo de Notações
tipo entidade
...
atributo composto
tipo relacionamento
E1
E2
R
Participação Total
de E2 em R
atributo
E1
atributo derivado
1
R
n
E2 cardinalidade 1:n
Exercícios
1) O que é um Modelo Conceitual de Dados?
2) Descreva o Modelo Entidade-Relacionamento e cada
um de seus elementos.
3) Elabore graficamente o Projeto Conceitual do problema
do exercício 6 do conteúdo anterior (Projeto de Banco
de Dados de uma Livraria).
4) Refaça o exercício 3 utilizando o DBDesigner.
Modelo Lógico
• Representam os dados em alguma estrutura
lógica de armazenamento.
– Também denominado modelos de BD.
– Dependente de BD. Por exemplo:
•
•
•
•
Modelo relacional (tabelas)
Modelos hierárquico (árvore)
Modelo orientado a objetos (classes e objetos)
Modelo objeto-relacional
Alunos
COD
COD
NOME
NOME
Cursos
COD
COD
ANO_ING
ANO_ING CODIGO_
CODIGO_
RESSO
CURSO
RESSO
CURSO
CODIGO
CODIGO
NOME
NOME
Modelo Lógico
• Suporte a métodos de acesso
– Linguagem de Definição de Dados (DDL - Data
Definition Language)
• Especificação dos conceitos.
• dados, domínios dos dados, relacionamentos e
restrições.
– Linguagem de manipulação de Dados (DML - Data
Manipulation Language)
• Manipulação dos conceitos.
Modelo Lógico
A história dos modelos de BD é dividida em 3
gerações:
• 1a geração: Modelos pré-relacionais
– modelos hierárquico e de rede
• 2a geração: Modelo relacional
• 3a geração: Modelos pós-relacionais
– modelos orientado a objetos, objeto-relacional,
etc.
Modelo Hierárquico
• Árvores;
• Os nós das árvores uma ocorrência de registros, onde
cada registro é uma coleção de campos (atributos).
• Os registros no nó Pai precede os registros no nó filho;
• As arestas da árvore são os relacionamentos.
• O acesso aos dados ocorre da raiz para as folhas e da
esquerda para a direita.
Modelo Hierárquico - Exemplo
Modelo em Rede
• Eliminou a hierarquia;
• Permitiu que o mesmo registro se relacione com mais
registros (1:N).
• Dados os relacionamentos 1:N entre os registros A e C e
entre os registros D e C é possível construir um
relacionamento M:N entre A e D.
• O modelo em rede possibilita acesso a qualquer nó da
rede sem passar pela raiz.
Modelo em Rede - Exemplo
Problemas - Rede e Hierárquico
• Modelos com várias limitações
– Representação de relacionamentos insuficiente;
• Modelo Hierárquico (1-1 ou 1-N)
– Problemas de performance
• Varredura em estruturas em grafo ou árvore.
• Cria código de manipulação de dados acoplado ao
sistema. Qual o problema disso?
– Falta de uma linguagem declarativa para consultas
• linguagem declarativa X linguagem procedural?
• consultas exigem programação pela aplicação
• manipulam um registro por vez.
– Baixa performance de acesso
Modelo Relacional
• Definido em 1970 (E. Codd – IBM).
• Modelo com uma sólida base formal
– Teoria dos conjuntos e álgebra relacional.
• Modelo simples
– Tabelas e relações entre tabelas.
• Linguagens declarativas para manipulação de dados
– Álgebra relacional (formais).
– Linguagem de Consulta Estruturada (SQL Structured Query Language) (comercial).
Modelo Relacional
• Apresenta cinco conceitos:
– Domínio
– Atributo
– Tupla
– Relação
– Chave
Modelo Relacional - Domínio
• Conjunto de valores permitidos para um dado.
Por exemplo:
– inteiro, string (domínios básicos)
– data, hora (domínios compostos)
– [0, 120], (‘M’, ‘F’) (domínios definidos)
• Operações válidas para os domínios
– inteiro (somar, dividir, i1 maior que i2, ...)
– data (extrair dia, extrair mês, d1 anterior a d2, ...)
• Definição de domínios é por meio da DDL.
Modelo Relacional - Atributos
• Um item de dado do BD
• Possui um nome e um domínio
• Exemplos:
– nome: string
– idade: [0,120]
Modelo Relacional - Tupla
• Um conjunto de pares (atributo, valor)
– É a ocorrência de um fato do mundo real.
• Valor
– definido no momento da criação de uma tupla
– deve ser:
• compatível com o domínio OU NULL (valor inexistente).
• atômico (indivisível,não-estruturado e monovalorado).
• Exemplo:
– tupla de aluno: {(nome, ‘João’), (idade, 34),
(matrícula, 03167034), ...}
Modelo Relacional - Relação
• Uma relação é uma tabela composta por uma
coleção de Tuplas.
• Uma relação é composta por um cabeçalho e um
corpo.
• Cabeçalho
– Número fixo de atributos (grau da relação).
– Atributos não-ambíguos.
• Corpo
– Conjunto de tuplas (cardinalidade da relação)
Relação – Definição Formal
• Um esquema relacional R, indicado por R(A1, A2, …, An)
é composto por um nome de R e uma lista de atributos
A1, A2, …, An. Cada atributo Ai é o nome de um papel
desempenhado por algum domínio D em R e descrito por
dom(Ai).
(Elmasri e Navathe, 2011)
Relação – Definição Formal
• Uma relação r(R), de um esquema relacional R(A1, A2,
…, An) é um conjunto de n tuplas r = {t1, t2, …, tn}. Cada
tupla ti é uma lista ordenada de n valores t = <v1, v2, …,
vn>, em que cada valor ti, é um elemento de dom(Ai).
(Elmasri e Navathe, 2011)
Modelo Relacional - Chave
• Conjunto de um ou mais atributos de uma relação
que identifica uma única tupla.
• Tipos de chaves:
– chave primária:
• atributo(s) cujo (conjunto de) valor(es) identifica(m)
unicamente uma tupla em uma relação.
• Exemplos:
– alunos: matrícula
– cidades: nome, estado
Modelo Relacional - Chave
• Tipos de chaves:
– chave estrangeira em um relação R1:
• Identifica uma tupla em uma relação R2.
• Uma chave estrangeira em uma tupla t1, tem um valor que
ocorre como chave primária de alguma tupla em R2 ou
tem o valor null.
• Os atributos da chave estrangeira em R1 têm o mesmo
domínio dos atributos da chave primária em R2.
• Exemplos.
– alunos: id_curso (referência a um curso)
– curso: id_universidade (referência a uma universidade)
Modelo Relacional - Integridade
• Segundo Date (2003), “O problema de
integridade é o problema de assegurar que os
dados do banco de dados estão corretos”.
• No modelo relacional as regras básicas são:
• Garantir a identificação para os dados sem
ambiguidade.
• Regra de Integridade de Entidade (RIE).
• Garantir apenas relacionamentos válidos.
• Regra de Integridade Referencial (RIR)
Modelo Relacional - RIE
• Dada uma tupla tk de uma relação R
– Chave primaria não nula:
– Chave primaria identifica somente uma tupla:
Modelo Relacional - RIE
• Dadas duas relações R
e R2, uma chave
estrangeira cei (R1) --> cp(R2) e uma tupla tk Є R1,
então:
1
– Chave estrangeira é NULL
– Chave estrangeira é diferente de NULL
Modelo Físico
• Modelo de armazenamento dos dados:
– formato de registros
– localização
– ordem dos registros e
– caminho de acesso.
• Caminho de Acesso: é uma estrutura de que
facilita a busca de um registro.
• Por exemplo?
Modelo Físico - Característica
• Independência física dos dados
– Capacidade de alterar a representação interna dos
dados sem alterar o esquema lógico.
– Por exemplo: Reorganizar a estrutura de índices.
Exercícios
4) Diferencia DDL de DML.
5) Descreva o Modelo Relacional e o diferencie do Modelo
Hierárquico e em Rede.
6) Defina RIE e RIR.
7) Implemente o Projeto Conceitual do exercício 3,
utilizando o banco de dados Mysql e sua interface
phpmyadmin.
Download