Material 3 - DECOM-UFOP

Propaganda
Roteiro
Modelagem de Dados: Usando o Modelo
Entidade-Relacionamento
Luiz Henrique de Campos Merschmann
Departamento de Computação
Universidade Federal de Ouro Preto
[email protected]
www.decom.ufop.br/luiz
Posicionamento
Modelagem de Dados: Usando o Modelo
Entidade-Relacionamento
Uma Aplicação Exemplo de Banco de Dados
Tipos de Entidade, Conjuntos de Entidade e Atributos-Chave
Tipos de Relacionamento, Funções e Restrições Estruturais
Tipo de Entidade Fraca
BCC321 - Banco de Dados I
Ementa
1. Conceitos básicos em sistemas de banco de dados.
2. Conceitos e arquitetura de sistemas de banco de
dados.
3. Modelagem conceitual de dados.
4. Modelo Relacional: conceitos básicos e restrições de
integridade.
5. Linguagens: álgebra e cálculo relacional.
6. A linguagem SQL e o uso de APIs.
7. Projeto de banco de dados.
8. Normalização de banco de dados.
9. Noções de processamento de transações, concorrência e
recuperação de falhas.
10. Aspectos de implementação de banco de dados.
Processo de Projeto de Banco de Dados
EMPRESA: Exemplo de uma Aplicação de Banco
de Dados
EMPRESA: Exemplo de uma Aplicação de Banco
de Dados
Descrição do “minimundo”
Descrição do “minimundo”
I
I
I
I
I
I
I
A empresa está organizada em departamentos.
Cada projeto tem um nome exclusivo, um número exclusivo
e uma única localização.
Armazenamos o nome de cada funcionário, o número do
cpf, endereço, salário, sexo e data de nascimento.
I
Cada depto tem um nome exclusivo, um número exclusivo e
um funcionário que o gerencia.
Temos a data que cada funcionário começou a gerenciar o
depto.
O depto pode ter diversas localizações.
Um depto controla um número qualquer de projetos.
I
I
I
Queremos ter o controle dos dependentes de cada
funcionário.
I
Diagrama do Esquema ER para o Banco de Dados EMPRESA
Um funcionário está alocado a um depto, mas pode
trabalhar em diversos projetos que não são controlados,
necessariamente, pelo mesmo depto.
Controlamos o número de horas semanais que o funcionário
trabalha em cada projeto.
Controlamos o supervisor direto de cada funcionário.
Guardamos o primeiro nome, sexo, data de nascimento e o
seu parentesco com o funcionário.
Entidades e Atributos
Entidades e Atributos
I
Entidade: objeto básico que o modelo ER representa
(“algo” do mundo real).
I
Atributos: propriedades particulares que descrevem a
entidade.
Tipos de Atributos
Atributos Simples (Atômicos) versus Compostos
I
Simples (atômicos): não são divisíveis.
I
Compostos: podem ser divididos em subpartes menores.
I
I
Exemplos:
I
Simples versus Composto.
I
I
Univalorado versus Multivalorado.
I
Armazenado versus Derivado.
Atributos Monovalorados versus Multivalorados
I
Monovalorados: têm um valor único para uma dada
entidade.
I
I
Atributos Armazenados versus Derivados
I
I
Ex.: Titulação – pessoas podem ter mais de um título
acadêmico.
Um atributo multivalorado pode ter limites inferior e
superior para restringir o número de valores permitidos para
cada entidade.
Dois ou mais valores de atributos estão relacionados.
I
Ex.: Idade é um atributo monovalorado de uma pessoa.
Multivalorados: podem ter um conjunto de valores para a
mesma entidade.
I
atributo Endereço pode ser subdividido em EndereçoRua,
Cidade, Estado e CEP.
atributo Nome pode ser subdividido em PrimeiroNome e
Sobrenome.
I
Ex.: os atributos Idade e DataNascimento de uma
pessoa. O valor de Idade (atributo derivado) pode ser
determinado a partir do valor de DataNascimento
(atributo armazenado).
Valores de atributos derivados de entidades relacionadas.
Ex.: atributo NumerodeFuncionários, de uma entidade
departamento, derivado da contagem do número de
funcionários que trabalham nesse departamento.
Atributos
Tipos de Entidade e Conjuntos de Entidade
I
Tipo de entidade: define um conjunto de entidades que
possuem os mesmos atributos.
I
Conjunto de entidades: é a coleção de todas as entidades de
um tipo de entidade em particular.
I
I
Atributos Complexos = atributos compostos e
multivalorados.
Cada tipo de entidade é descrito por seu nome e atributos.
{EndereçoFone( {Fone(CodigoArea,NumeroFone)} ,
Endereço(EndereçoRua(Numero,Rua,Apartamento),Cidade,Estado,CEP))}
I Valores Nulls (Nulos):
I
I
Entidade não tem um valor aplicável a um atributo. Ex.:
atributo Apartamento.
Não se conhece o valor de um atributo para uma entidade.
Tipos de Entidade e Conjuntos de Entidade
I
Nos diagramas ER:
I
I
I
Atributo-chave de um Tipo de Entidade
I
Um tipo de entidade é representado como uma caixa
retangular (incluindo seu nome).
Os nomes dos atributos são colocados em elipses e
conectados ao seu tipo de entidade por linhas retas.
Os atributos multivalorados são identificados por elipses
duplas.
Numero
Nome
I
Uma restrição das entidades é a chave (restrição de
exclusividade).
Atributo cujos valores são distintos para cada uma das
entidades.
I
I
I
Localizacoes
Diversos atributos formando uma chave (chave composta):
a combinação dos valores dos atributos deve ser distinta
para cada entidade.
I
DEPARTAMENTO
Numero_funcionarios
I
Ex.: atributo Nome para o tipo de entidade EMPRESA.
Ex.: atributo CPF para o tipo de entidade
FUNCIONARIO.
Ex.: atributo Registro(NumeroRegistro,Estado) é uma
chave composta para o tipo de entidade CARRO. Nenhum
dos dois atributos componentes simples
(NumeroRegistro,Estado), sozinho, é uma chave.
Na notação diagramática ER, cada atributo-chave tem seu
nome sublinhado dentro da elipse.
Domínio de um Atributo
I
I
Conjunto de valores válidos que podem ser atribuídos a um
atributo para cada entidade.
Exemplo:
I
I
I
Tipo de entidade FUNCIONARIO – atributo Idade:
conjunto de números inteiros entre 16 e 70.
Tipo de entidade FUNCIONARIO – atributo Nome:
conjunto de strings de caracteres alfabéticos, separados por
caracteres de espaço.
Os domínios dos atributos não são mostrados nos
diagramas ER.
Projeto Conceitual Inicial do Banco de Dados
EMPRESA
DEPARTAMENTO
Nome, Numero, {Localizacoes}, Gerente, DataInicioGerencia
PROJETO
Nome, Numero, Localizacao, DepartamentoControle
FUNCIONARIO
Nome(Pnome,Minicial,Unome), Cpf, Sexo, Endereco, Salario,
Datanasc, Departamento, Supervisor,
{Trabalha_Para(Projeto,Horas)}
DEPENDENTE
Funcionário, NomeDependente, Sexo, Data_nascimento,
Parentesco
Refinando o Projeto Conceitual Inicial
I
I
O projeto conceitual apresentado até aqui ainda não está
finalizado.
O modelo ER possui três conceitos:
I
I
I
I
I
Entidades.
Atributos.
Relacionamentos.
Relacionamentos
I
I
Associações entre duas ou mais entidades distintas com um
significado.
Exemplos:
I
FUNCIONARIO José Trabalha_em PROJETO Beta.
I
FUNCIONARIO Manoel Gerencia DEPARTAMENTO
Finanças.
I
DEPARTAMENTO Pessoal Controla PROJETO Crescer.
Ele será refinado após a apresentação do conceito de
relacionamento.
Alguns aspectos dos requisitos serão representados como
relacionamentos.
Tipo de Relacionamento
Tipo de relacionamento TRABALHA_PARA
I
Define um conjunto de associações (relacionamentos) entre
n tipos de entidade E1 , E2 , . . . , En .
I
Matematicamente, um tipo de relacionamento R é um
conjunto de (instâncias de) relacionamentos ri , em que cada
ri associa-se a n entidades individuais (e1 , e2 , . . . , en ) e cada
entidade ej pertence a um tipo de entidade Ej .
I
Diagrama ER:
I
I
ri = (e1 , e2 , . . . , en )
R ∈ E1 × E2 × . . . × En
FUNCIONARIO
TRABALHA
PARA
DEPARTAMENTO
Grau de um Tipo de Relacionamento
I
I
Nomes de Função e Relacionamentos Recursivos
É o número de tipos de entidade que participam do
relacionamento.
Exemplos:
I
I
Relacionamento TRABALHA_PARA é de grau dois
(binário).
A seguir, um exemplo de relacionamento de grau três
(ternário).
I
Cada tipo de entidade que participa de um tipo de
relacionamento executa uma função.
I
Significado da função é dado por um nome, atribuído a
cada tipo de entidade.
I
I
Exemplo:
No tipo de relacionamento TRABALHA_PARA,
FUNCIONARIO executa a função de trabalhador, e
DEPARTAMENTO desempenha a função de empregador.
Nomes de Função e Relacionamentos Recursivos
I
O mesmo tipo de entidade pode participar mais de uma
vez em um tipo de relacionamento em funções diferentes
→ relacionamento recursivo.
I
Restrições em Tipos de Relacionamento
I
Limitam a possibilidade de combinações de entidades que
podem participar no conjunto de relacionamentos.
I
Exemplo: Cada funcionário tem que trabalhar para
exatamente um departamento.
Tipos de restrições:
Exemplo:
I
I
Razão de Cardinalidade: especifica o número máximo de
instâncias de relacionamento em que uma entidade pode
participar1 .
I
I
1
Relacionamento GERENCIA, 1:1
Ex.: relacionamento binário TRABALHA_PARA,
DEPARTAMENTO:FUNCIONARIO tem razão de
cardinalidade 1:N.
Razões de cardinalidade possíveis: 1:1, 1:N, N:1, M:N.
válido para um relacionamento binário
Relacionamento TRABALHA_EM, M:N
Restrições em Tipos de Relacionamento
I
I
I
Participação: determina o número mínimo de instâncias
de relacionamento em que cada entidade pode participar
(restrição de cardinalidade mínima).
Tipos de restrições de participação:
I
I
I
I
Total (dependência de existência). Ex.: Todo funcionário
deve TRABALHAR_PARA um departamento.
Uma entidade funcionário pode existir apenas se participar
de, pelo menos, uma instância de relacionamento
TRABALHA_PARA.
Parcial. Ex.: Nem todo funcionário GERENCIA um
departamento.
Razão de Cardinalidade + Restrição de Participação ⇒
Restrições Estruturais.
Nos diagramas ER: participação total (linha dupla) e
participação parcial (linha simples).
FUNCIONARIO
GERENCIA
I
I
I
I
Para tipos de relacionamento M:N, atributos determinados
pela combinação de entidades participantes de uma
instância de relacionamento devem ser especificados como
atributos de relacionamento.
I
Para um tipo de relacionamento 1:N, um atributo do
relacionamento pode ser migrado para o tipo de entidade
do lado N do relacionamento.
Tipo de Entidade Fraca
I
Tipos de entidade que não tem seus próprios
atributos-chave.
I
As entidades são identificadas por meio do relacionamento
com entidades de outro tipo de entidade (chamado de tipo
de entidade identificador), juntamente com os valores de
alguns atributos (chave parcial).
I
Chave parcial: é um conjunto de atributos que identifica, de
modo exclusivo, as entidades fracas que estão relacionadas
a uma mesma entidade proprietária.
I
Exemplo: Tipo de entidade DEPENDENTE.
DataInicio
GERENCIA
Número de horas que um FUNCIONARIO trabalhou em
um PROJETO.
O valor do atributo Horas depende de uma combinação
particular (funcionário,projeto).
I
Atributo de um tipo de relacionamento no diagrama ER:
FUNCIONARIO
Um tipo de relacionamento também pode ter atributos.
Exemplo: atributo Horas para o tipo de relacionamento
TRABALHA_EM.
DEPARTAMENTO
Atributos de Tipos de Relacionamento
I
Atributos de Tipos de Relacionamento
Tipos de restrições:
DEPARTAMENTO
Diagrama do Esquema ER para o Banco de Dados EMPRESA
Tipos de Relacionamento com Grau > 2
Tipos de Relacionamento com Grau > 2
Notação para Diagramas ER
Notação para Diagramas ER
Como Prática Geral...
I
Dada uma descrição narrativa dos requisitos:
I
I
I
Os substantivos do texto tendem a originar nomes de tipos
de entidade.
Os verbos tendem a indicar nomes de tipos de
relacionamento.
Nomes de atributos ⇒ surgem de substantivos adicionais
que descrevem os substantivos correspondentes aos tipos de
entidade.
Diagramas ER e Convenções de Nomenclatura
I
Escolher nomes que carreguem, o tanto quanto possível, os
significados dos diferentes construtores do esquema.
I
Usar nomes no singular para os tipos de entidade.
I
Usar letras maiúsculas para os tipos de entidade e tipos
de relacionamento.
I
Usar a primeira letra maiúscula para os nomes dos
atributos.
I
Usar letras minúsculas para os nomes dos papéis.
Diagramas ER com Restrições Estruturais (min,max)
Diagrama de classe UML
Atividade
I
Ler Apêndice A [Navathe, 2005]: “Notações Diagramáticas
Opcionais para Modelos ER”.
Perguntas?
FIM
Download