Escolar Documentos
Profissional Documentos
Cultura Documentos
Processo de
Modelagem
Mundo Real
Solução
Modelo de dados
=
descrição formal da estrutura de um banco de
dados
Modelo Conceitual
Modelo que captura as
necessidades da organização em termos de
armazenamento de dados independente de
implementação.
Modelo Lógico
Objetivo de transformar o modelo
conceitual em modelo lógico. Define como o BD
será implementado em um SGBD específico.
Professor: Rogério Lopes
Modelagem e Projeto de Banco de Dados
MODELO DE BANCO DE DADOS
1 N AGÊNCIA
BANCO
Número da agência
Número do Banco
Mundo Real
nível conceitual
Modelo Relacional
nível lógico
nível físico
Entidade Fraca
Relacionamento
Atributo Simples
Atributo Identificador
Atributo
Multivalorado
Professor: Rogério Lopes
Modelagem e Projeto de Banco de Dados
DIAGRAMA ENTIDADE RELACIONAMENTO - DER
Convenções
Atributo Composto
Relacionamento 1 para N
Consulta
idmed datcon
idpac idpac datnasc
nome
1,N 1,N 1,1 0,N
Médico atende Paciente Dependente
idmed
nome 0,N
1,N possui
receita
0,1
idpla
0,N Plano nomeplano
Remédio
RETÂNGULO Entidade
Empregado Departamento
ENTIDADES INDEPENDENTES
Entidades que não dependem de outras
para sua existência e identificação
Professor: Rogério Lopes
Modelagem e Projeto de Banco de Dados
COMPONENTES DO MER
EXEMPLO DE ENTIDADES FORTES X FRACAS
1 N
Funcionário possu Dependente
i
LOSANGO
Relacionamento
=
Conjunto de associações entre entidades
C1 C2
C3 C4 C5 Entidade Cliente
Cidade Distribuidor
Distribuição
Produto
auto-relacionamento
=
relacionamento entre ocorrências de uma mesma
entidade
Funcionário
supervisiona é supervisionado
Supervisão
Relacionamentos 1 x 1
Pouco utilizado;
Leia-se Um para Um.
Relacionamentos 1 x N
Leia-se: Um para muitos.
Relacionamentos N x N
Leia-se: Muitos para Muitos.
Cidade Distribuidor
N 1
Distribuição
N
Produto
Departamento Empregado
Departamento Empregado
Idade
Nome
Matrícula
Duas instâncias da entidade ALUNO teriam os mesmos atributos, por
exemplo, Matrícula, Nome e Idade;
A primeira instância poderia possuir os valores Matrícula =
0268134 , Nome = Alan e Idade = 30;
A segunda instância poderia possuir os valores
Matrícula = 0890103 , Nome = Antonio e Idade = 48.
Professor: Rogério Lopes
Modelagem e Projeto de Banco de Dados
ATRIBUTO
Atributo
=
dado que é associado a cada ocorrência de uma
entidade ou de um relacionamento
nº de parcelas
nome financeira
taxa de juros
código da financeira nº da venda
COMPOSTO
Pode ser referenciado hora no todo, hora na parte:
Endereço, composto por rua, número, cidade, etc;
Nome, composto por nome e sobrenome.
ALUNO
Nome
Matrícula
nome Sobrenome
MULTIVALORADO
Pode existir instâncias em que um atributo possua
um
conjunto de valores para uma única entidade;
Ex: Telefone.
ALUNO
Idade
Telefone
Matrícula
MÁXIMA
Atributo monovalorado (cardinalidade máxima
“1”) cada entidade possui no máximo um valor
associado;
Atributo multivalorado (cardinalidade máxima “n”).
Endereço
Telefone (0,n)
Rua CEP
Nome (1,1)
Atributo Multivalorado:
- Corresponde a nenhum ou a vários números telefônicos.
Atributo Simples:
- Corresponde a um único valor.
ALUNO PRATELEIRA
Idade capacidade
Nome número do corredor
Matrícula número da prateleira
Atributo identificador
=
conjunto de atributos e relacionamentos cujos
valores distinguem uma ocorrência da entidade
das demais
Nome Nome
Matrícula nº sequencial
Generalização / Especialização
código
FILIAL POSSUI CLIENTE nome
(1,1) (0,n)
PESSOA PESSOA
FÍSICA JURÍDICA
RG SEXO CNPJ
código
FILIAL POSSUI CLIENTE nome
(1,1) (0,n)
PESSOA PESSOA
FÍSICA JURÍDICA
RG SEXO CNPJ
código
CLIENTE nome
PESSOA PESSOA
FÍSICA JURÍDICA
RG SEXO CNPJ
matrícula funcional
FUNCIONÁRIO tipo de funcionário
MOTORISTA SECRETÁRIA
CNH
Veículo
Veículo Veículo
Terrestre Aquático
Automóvel Veículo
Barco
Anfíbio
A questão agora é:
Com que entidade existente deve estar
relacionada a nova entidade (Medicamento)?
Professor: Rogério Lopes
Modelagem e Projeto de Banco de Dados
ENTIDADE ASSOCIATIVA (AGREGAÇÃO)
Se Medicamento fosse relacionado a Médico:
Teríamos apenas a informação de que médico
prescreveu que medicamento, faltando a informação
do paciente que os teve prescritos.
n n n
Médico Consulta Paciente
n
Prescrição Medicamento
n
Medicamento Prescrição
n
PRESCRIÇ Uma entidade associativa
ÃO
nada mais é do que uma
redefinição de um
n
relacionamento que passa
a ser tratado como se
MEDICAMENTO
fosse também uma
entidade.
Professor: Rogério Lopes
Modelagem e Projeto de Banco de Dados
ENTIDADE ASSOCIATIVA (AGREGAÇÃO)
1 1
Médico Paciente
Concede n n Participa
Consulta
Prescrição
Medicamento
TABELAS (Relações)
=
Conjunto não ordenado de linhas (tuplas, na
linguagem acadêmica);
CHAVE PRIMÁRIA
=
É uma coluna ou uma combinação de colunas
cujos valores
distinguem uma linha das demais dentro de
uma
tabela
CHAVE ESTRANGEIRA
=
coluna ou uma combinação de colunas, cujos
valores aparecem necessariamente na chave
primária de uma tabela.
CHAVE ESTRANGEIRA
=
coluna ou uma combinação de colunas, cujos
valores aparecem necessariamente na chave
primária de uma tabela.
RESTRIÇÕES DE INTEGRIDADE
=
uma regra de consistência de dados que é
garantida pelo próprio SGBD.
Integridade de chave:
Trata-se da restrição que define que os valores
da chave primária e alternativa devem ser únicos.
Integridade referencial
É a restrição que define que os valores
dos campos que aparecem em uma chave
estrangeira devem aparecer na chave primária da
tabela referenciada.
NOTAÇÃO
Emp
(CodigoEmp,Nome,CodigoDepto,CategFuncional,CIC)
CodigoDept referencia Dept
Dept (CodigoDepto,Nome)
Professor: Rogério Lopes
Modelagem e Projeto de Banco de Dados
TRANSFORMAÇÕES
ENTRE
MODELOS
Modelo ER
(nível conceitual)
Modelo Relacional
(nível lógico)
Professor: Rogério Lopes
Modelagem e Projeto de Banco de Dados
VISÃO GERAL DO PROJETO LÓGICO
Prim nome
telefone NumMed
Medico (NumMedico, PrimNome,
UltNome, Especialidade, Telefone,
nome Médico Endereco)
Endereco
Ult nome Especialidade
NumPac
Endereco nome
Paciente (NumPac, Nome, Endereco)
Paciente
1,1
possui
0,N
Dependente
Dependente (NumPac, NumDepe,
Numdepe Nome)
Nome
NumPac referencia Paciente
Plano
NumPlano
0,1
Plano (NumPlano, Nome)
nome
Tem
Paciente (NumPac, Nome,NumPlano)
NumPac nome NumPlano referencia Plano
0,N
Paciente
Distribuicao
Produto (CodProd,Nome)
(CodProd,CodDistr,CodCid,DataInic)
Cidade (CodCid,Nome)
Distribuidor (CodDistr,Nome) CodProd referencia Produto
CodDistr referencia Distribuidor
CodCid referencia Cidade
Professor: Rogério Lopes
Modelagem e Projeto de Banco de Dados
IMPLEMENTAÇÃO DE GENERALIZAÇÃO/ESPECIALIZAÇÃO
Uma tabela por entidade especializada
Exemplo:
CPF -> nome, endereço então CPF -> nome e CPF ->
endereço
Leia o exemplo acima da seguinte maneira:
Se com um número de CPF eu encontro o nome e o
endereço de uma pessoa, então com este mesmo
número eu posso encontrar apenas o nome e com
este mesmo número eu posso encontrar apenas o
endereço.
Exemplo:
CPF -> endereço então CPF, idade -> endereço
Leia o exemplo acima da seguinte maneira:
Se com um número de CPF eu encontro o endereço
de uma pessoa, então com este mesmo número
mais a idade da pessoa eu posso encontrar o
endereço também.
Exemplo:
CPF -> código-cidade e código-cidade -> nome-cidade
então CPF -> nome-cidade
Leia o exemplo acima da seguinte maneira:
Se com um número de CPF eu encontro o
código da cidade de uma pessoa, e com o código da
cidade eu encontro o nome da cidade, então com o
número do CPF eu posso encontrar o nome da
cidade.
Professor: Rogério Lopes
Modelagem e Projeto de Banco de Dados
NORMALIZAÇÃO
Definição:
Técnica que permite depurar um projeto de banco de
dados, através da identificação de inconsistências
(informações em duplicidade, dependências funcionais
mal resolvidas, etc).
Porque normalizar?
À medida que um conjunto de relações passa para uma
forma normal, vamos construindo um banco de dados
mais confiável;
O objetivo da normalização não é eliminar todos
as inconsistências, e sim controlá-las.
O Órgão compras
será excluído também
Professor: Rogério Lopes
Modelagem e Projeto de Banco de Dados
NORMALIZAÇÃO
Porque Normalizar?
Exemplo:
Proj (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal,
DataIni, TempAl)) ;
Proj (CodProj, Tipo, Descr)
ProjEmp (CodProj,CodEmp, Nome, Cat, Sal,
DataIni,
TempAl)
Dependências Funcionais:
{IdPaciente, IdMédico} -> {Data, Hora}
{IdPaciente} -> {NomePaciente}
{IdMédico} -> {NomeMédico, CRMmédico}
2ª Forma Normal
=
uma tabela encontra-se na Segunda Forma Normal,
quando, além de estar na 1FN, não contém
dependências parciais.
Exemplo:
Exempo:
Pacientes (Id, Nome, Identidade, Telefone, Sexo, SiglaConvênio,
NomeConvênio, TelefoneConvênio)
As dependências funcionais são:
{Id} -> {Nome, Identidade, Telefone, Sexo, SiglaConvênio}
{SiglaConvênio} -> {NomeConvênio, TelefoneConvênio}
Resumo