telefone
FORNECEDORES
FORNECIMENTO
PRODUTOS
FORNECEDORES
FORNECIMENTO
PRODUTOS
DICIONRIO DE DADOS
FORNECEDORES = cdigo + cnpj + razo social + ENDERECO + {telefone} PRODUTOS = codigo + nome + preco unit ENDERECO= RUA + cidade + estado + cep RUA = logradouro + numero + (complemento)
CNPJ
nome
Preco unit
FORNECEDORES
FORNECIMENTO
PRODUTOS
logradouro
codigo
CNPJ
Razao social
endereco
Telefone
(0 , n )
FORNECEDORES
FORNECEDORES
Dicionrio de Dados: FORNECEDORES = codigo + CNPJ + razaosocial + ENDERECO + {telefone} ENDEREO = RUA + cidade + estado + codigopostal RUA = logradouro + numero + (complemento)
Relacionamentos
Pompilho (2002, p.79) define relacionamento como uma estrutura que indica associaes entre elementos de um conjunto de entidades. Conjunto de conexes entre objetos
Relacionamentos
Por ser uma afirmao, normalmente dita nos dois sentidos
Ex.: CLIENTES COMPRAM ITENS ITENS SO COMPRADOS POR CLIENTES
Relacionamentos
Com esses dois elementos (verbo e seta) possvel estabelecer uma forma ativa ou passiva para leitura do modelo
COMPRAM CLIENTES ITENS
Podemos afirmar que clientes compram itens denotando a voz ativa do verbo referido e por outro lado, itens so comprados por clientes denotando a voz passiva.
Relacionamentos
Pode existir mais que um tipo de relacionamento entre duas entidades:
POSSUEM
PESSOAS UTILIZAM
VEICULOS
Relacionamentos
ENTIDADE
PAPEL1
PAPEL2
Relacionamentos
Relacionamentos
Relacionamento entre objetos de tipo diferente
Relacionamentos
Grau ou Cardinalidade do Relacionamento
Refere-se ao numero mximo de possveis associaes de um relacionamento Busca definir o numero mximo de pares que cada indivduo de uma entidade poder fazer com os indivduos de outra entidade
EMITEM FORNECEDORES 1 N NOTAS FISCAIS
Relacionamentos
emite
Um fornecedor FORNECEDORES
EMITEM 1 N
Por Um fornecedor
emitida
Relacionamentos
Os graus dos relacionamentos podem ser enquadrados em trs grandes grupos:
1:1 1:N M:N (Um-para-um) (Um-para-Muitos) (Muitos-para-Muitos)
Relacionamentos
Relacionamento 1:1
RECEBEM
1 1
PESSOAS
CERTIDES DE OBITO
Relacionamentos
Relacionamento 1:N
POSSUEM EMPRESAS
FILIAIS
Relacionamentos
Relacionamento M:N
Relacionamentos
Relacionamentos ternrios
P-A-D
1 N
PROFESSORES
ALUNOS
DISCIPLINAS
Relacionamentos
Obrigatoriedade de participao em um relacionamento (cardinalidade mnima) POSSUEM EMPRESAS (1,1) (0,N) FILIAIS
Interpretao:
Uma empresa possui no mnimo nenhuma e no mximo muitas filiais. Uma filial de no mnimo 1 e no mximo 1 empresa.
Relacionamentos
Exemplo
POSSUEM AVIES
(0,N)
(4,15)
TRIPULANTES
Relacionamentos
Relacionamentos Independentes
Permitem que ocorra relacionamento entre elementos das entidades, sem que se tenha que avaliar qualquer outro relacionamento existente.
MINISTRAM (0,N) (1,N)
DISCIPLINAS
Relacionamentos
Relacionamentos Contingentes
Tendo dependncia uns com os outros, impem o estabelecimento simultneo de associaes entre os vrios elementos envolvidos.
NECESSITAM
(0,N) (1,N) EXAMES FSICOS
Relacionamentos
Relacionamentos mutuamente exclusivos
Nesse tipo de relacionamento, se a associao de um elemento for estabelecida, no poder ser estabelecida pelos demais
REALIZAM (0,N)
GRAVIDAS
REALIZAM (0,N) (1,N) CESREA
Relacionamentos
Relacionamentos mutuamente exclusivos
REALIZAM (0,N) GRAVIDAS REALIZAM (0,N) (1,N) CESREA (1,N) PARTO NORMAL
Relacionamentos
Relacionamentos Parciais ou Totais
Diz-se que um relacionamento parcial, quando no par ordenado dos elementos x e y oriundos da Entidades X e Y, no existe a obrigatoriedade de que para todo x exista um y relacionado.
Relacionamentos
Relacionamentos Parciais ou Totais
Diz-se que um relacionamento total, quando no par ordenado dos elementos x e y oriundos da Entidades X e Y, existe a obrigatoriedade de que para todo x exista um y relacionado, ou seja, todo elemento na Entidade X deve possuir uma relao com no mnimo um elemento da Entidade Y
Relacionamentos
Relacionamentos Parciais ou Totais
Representamos a totalidade acrescentando uma bolinha cheia na sada da aresta do Relacionamento que une o Losango ao ngulo da Entidade, no caso desse Relacionamento ser Total para esta Entidade
POSSUEM
EMPREGADOS 1 N
DEPENDENTES
Relacionamentos
Uma notao alternativa para a totalidade a de explicitar na prpria cardinalidade os valores mximos e mnimos.
LOTAM DEPARTAMENTOS
(1,N)
(0,N) EMPREGADOS
Relacionamentos
Relacionamentos com Atributos
Exemplo: Relacionamento com cardinalidade mxima 1:1 com atributo alocado no relacionamento
Cdigo nome Data nascimento Data registro numero livro folha
(1,1)
PESSOAS
RECEBEM
(1,1)
CERTIDES DE NASCIMENTO
Relacionamentos
Relacionamentos com Atributos
Relacionamento com cardinalidade 1:1 com atributo alocado na entidade da direita
Cdigo nome Data nascimento RECEBEM livro numero folha Data registro
(1,1)
(1,1)
PESSOAS
CERTIDES DE NASCIMENTO
Relacionamentos
Relacionamentos com Atributos
Relacionamento com cardinalidade mxima 1:N com atributo alocado no relacionamento
matricula nome
Data admisso
(1,1)
(0,N)
EMPREGADOS
DEPENDENTES
Relacionamentos
Relacionamentos com Atributos
Relacionamento com cardinalidade 1:N com atributo alocado na entidade de cardinalidade mxima N
matricula nome Data admisso POSSUEM (1,1) (0,N)
numero
EMPREGADOS
DEPENDENTES
Relacionamentos
Relacionamentos com Atributos
Relacionamento com cardinalidade mxima M:N com atributo alocado no relacionamento
nome
codigo durao COMPEM
faixa
codigo
Nome
ano da criao
MUSICAS
(1,N)
(0,N)
CDS
Relacionamentos
Entidade Fraca
So entidades que no possuem identidade prpria, ou seja, no possuem atributos suficientes para formar uma chave. Sua existncia est condicionada a existncia de outra entidade dita Forte O relacionamento entre a entidade forte e a fraca e de grau 1:N e a participao da entidade fraca total
Relacionamentos
Entidade Fraca
O atributo determinante da entidade fraca ser formado pelo atributo determinante da entidade forte mais um atributo diferenciador pertencente a entidade fraca
matricula nome nome
matricula
numero
Data de nascimento
(0,N)
EMPREGADOS
DEPENDENTES
Relacionamentos
Agregaes
Em alguns casos (e no raros) necessitamos vincular uma entidade C a um par, formado pelo relacionamento de outras entidades A e B Ou seja, precisamos construir um relacionamento entre a C com o relacionamento de A e B. Para resolver este problema, adotamos uma estrutura denominada Agregao
Relacionamentos
Agregaes
ITENS PEDIDO REQUISITAM (0,N) (1,N)
PEDIDOS DE COMPRA
MATERIAIS
(1,1)
ATENDEM
Relacionamentos
Agregaes
Analisando o modelo proposto e tomando por base a linha do tempo, est sendo demonstrado que o relacionamento REQUISITAM envolvendo as entidades PEDIDOS DE COMPRA e MATERIAIS d-se em um primeiro momento. Em um segundo momento, d-se o relacionamento entre o agregado ITENS DE PEDIDO e a entidade ORDENS DE COMPRA Um agregado pode ser representado por um retngulo envolvendo o relacionamento das entidades
Relacionamentos
Agregaes
Notao alternativa para agregao
A-B R1
(0,N)
A (1,1)
(1,N) B
R2
(0,N) C
Relacionamentos
Generalizao e Especializao
matricula
nome
especialidade
MDICOS
Nome orientador
Data avaliao
Local de atuao
Tempo de permanncia
Data efetivao
RESIDENTES
EFETIVOS
Relacionamentos
Generalizao e Especializao
codigo
nome Ano fabricao
MEIOS DE TRANSPORTE
Quilometragem mxima
Altitude mnima
Altitude mxima
TERRESTRE
AEREO
AQUATICO
Relacionamentos
Generalizao e Especializao
TOP DOWN, parte-se de um conjunto de entidades iniciais e vai se refinando at alcanar nveis mais detalhados. BOTTOM UP, parte da anlise de elementos mais detalhados
Relacionamentos
Generalizao e Especializao
Especializaes so disjuntas,define que, um individuo, poder pertencer a no mximo uma entidade especializada a uma Categoria. No-disjunta ou Inclusiva, pois reconhece a possibilidade de um mesmo indivduo realizar papis distintos no contexto.
Relacionamentos
Generalizao e Especializao
Na bibliografia consultada encontramos as seguintes sugestes, ambas a serem escritas dentro do tringulo:
Um X para especializao disjunta e um O para nodisjunto, ou Um C para especializao disjunta e um P para nodisjunto
Como as especializaes disjuntas so as mais comuns, podemos convencionar no acrescentar nenhuma caracterstica nesses casos e adotar um P para representar a especializao no-disjunta
Notao
Diversos so as notaes que podem ser utilizadas para representar um Modelo Conceitual. As mais difundidas so as de James Martin e as de Peter Chen
Dicionrio de Dados
O dicionrio de dados uma relao de todos os elementos de dados componentes do sistema. Notao do Dicionrio de Dados
SIGNIFICADO
composto de E Opcional (pode estar presente ou ausente) Iterao Escolha uma das opes alternativas Comentrio Identificador (campo chave)
Dicionrio de Dados
Exemplo
NOME = TITULO-CORTESIA + PRIMEIRO-NOME + (NOME-INTERMEDIRIO) + ULTIMO-NOME TITULO-CORTESIA = [ Sr. | Srta. | Sra. | Sras. | Dr. | Professor ] PRIMEIRO-NOME = {CARACTER-VALIDO} NOME-INTERMEDIARIO = {CARACTER-VALIDO} ULTIMO-NOME = {CARACTER-VALIDO} CARACTER-VALIDO = [ A Z | a z | 0 9 | | - | | ]
COMPOEM
c
FABRICACAO INTERNA COMPRADOS
(1,N)
(1,N)
(0,N)
REPRESENTANTES
CLIENTES
(0,N)
(0,N)
(1,1)
LOCAIS
DICIONRIO DE DADOS
MATERIAIS = codigom + nome + quantidade FABRICAO INTERNA = codigom + modelo + precocusto COMPRADOS = codigom + precocompra + dataultimacompra PROJETOS = codigop + nome + dataelaborao + objetivo CLIENTES = codigoc + razaosocial + ENDEREO + (e_mail) + 1{telefones} REPRESENTANTES = codigor + razosocial + endereo + (e_mail) + 1{telefones} ARMAZENS = codigoa + telefone LOCAIS = codigol + bairro + cidade EMPREGADOS = codigoe + nome + dataadmissao ALOCAO = datainicio + datafim CARGOS = codigoc2 + nome + salario ENDERECO=logradouro + numero + (complemento) + bairro + cidade + UF + CEP
Modelagem de Dados
A partir do MCD obtemos o MLD Um Modelo Lgico aquele em que os objetos, caractersticas e relacionamentos so representados de acordo com as regras de implementao a partir das restries impostas por uma tecnologia A obteno do modelo lgico se d pela traduo dos elementos presentes no Modelo Conceitual
Modelagem de Dados
Simbologia
Tabelas (traduo das Entidades) so representadas por um Retngulo, com o nome da tabela escrito dentro do retngulo. Observe que por se tratar de um objeto a ser compreendido e armazenado dentro de um SGBD, aceita-se abreviaturas
Materiais
Modelagem de Dados
Simbologia
Colunas (traduo dos atributos) so representadas dentro do retngulo da tabela, com suas respectivas caractersticas.
Ex.: Tabela MATERIAIS representando a entidade MATERIAIS e as colunas CODIGO, NOME e QUANTIDADE representando atributos com mesma nomenclatura.
Modelagem de Dados
Ligaes (traduo dos relacionamentos): so representadas conforme a tabela abaixo.
As regras para anlise e traduo dos relacionamentos sero estudadas em detalhes mais a frente. Cardinalidade 0,1 1,1 0,N Ligao
1,N
Modelagem de Dados
Propriedades do Modelo Relacional Normalizado
Cada clula pode ser vazia ou conter no Mximo 1 valor. A ordem das linhas irrelevante do ponto do visto do usurio. No h duas linhas iguais Cada coluna tem um nome Duas colunas distintas devem ter nomes diferentes. A partir do nome, a ordem das colunas irrelevante. Cada relao tem um nome prprio diferente dos demais nomes de relao. Os valores de uma coluna so retirados de um conjunto denominado Domnio. Duas ou mais colunas podem ter o mesmo domnio
Modelagem de Dados
Mapeamento do MCD para o MLD
Entidade Regulares Para cada Entidade Forte E no MCD ser criada uma tabela T no MLD. Incluir todos os atributos simples e os atributos compostos j decompostos como colunas em T.
CLIENTES CODIGOC <pk> not null RAZAO_SOCIAL not null LOGRADOURO not null NUMERO not null COMPLEMENTO null BAIRRO not null CIDADE not null ESTADO not null CEP not null E_MAIL null
Modelagem de Dados
Mapeamento do MCD para o MLD
Tabela de Relacionamento a terceira soluo ser criar uma nova tabela para abrigar o relacionamento. Esta soluo mais indicada para relacionamento de cardinalidade M:N.
PESSOAS CODIGO <pk> not null NOME not null DATA_NASCIMENTO not null
REGISTRO CODIGO <pk,fk1> not null NUMERO <pk,fk2> not null DATA_REGISTRO not null
CERTIDOES_DE_NASCIMENTO NUMERO <pk> not null LIVRO not null FOLHA not null
Modelagem de Dados
Mapeamento do MCD para o MLD
Relacionamento de Cardinalidade 1:N
codigo
CNPJ Razao social Razao social
codigo
POSSUEM
CNPJ
EMPRESAS
(1,1)
(0,N)
FILIAIS
Modelagem de Dados
Mapeamento do MCD para o MLD
Transposio de Chave Estrangeira inserir na entidade que possui a cardinalidade N a Chave Primria da Entidade que possui cardinalidade 1 como Chave Estrangeira
FILIAIS EMPRESAS CODIGO <pk> not null CNPJ not null RAZAO_SOCIAL not null CODIGOFILIAL <pk> not null CODIGO <fk> not null CNPJ not null RAZAOSOCIAL not null
Modelagem de Dados
Mapeamento do MCD para o MLD
Relacionamento de Cardinalidade M:N
CDS MUSICAS CODIGO <pk> not null NOME not null DURACAO not null GRAVACAO CODIGO <pk,fk1> not null CDS_CODIGO <pk,fk2> not null FAIXA not null CODIGO <pk> not null NOME not null ANOCRIACAO not null
Modelagem de Dados
Mapeamento do MCD para o MLD
Relacionamentos enrios Os relacionamentos sero traduzidos conforme a cardinalidade dos mesmos.
nome Data admissao matricula P-A-D
1 N
PROFESSORES
nome codigo
N
ALUNOS
carga horaria
DISCIPLINAS
P-A-D
1 N
ALUNOS
codigo
DISCIPLINAS
PROFESSORES MATRICULA <pk> not null NOME not null DATA_ADMISSAO not null
TURMAS MATRICULA <pk,fk1> not null ALU_MATRICULA <pk,fk2> not null CODIGO <pk,fk3> not null
ALUNOS MATRICULA <pk> not null NOME not null E_MAIL null
DISCIPLINAS CODIGO <pk> not null NOME not null CARGA_HORARIA not null
Modelagem de Dados
Generalizao Especializao
1 : Criar uma tabela para cada entidade generalizada e uma tabela para cada entidade especializada.
MEDICOS MATRICULA <pk> not null NOME not null ESPECIALIDADE not null
RESIDENTES MATRICULA <pk,fk> not null NOME_DO_ORIENTADOR not null DATA_INICIO_RESIDENCIA not null DATA_AVALIACAO not null
EFETIVOS MATRICULA <pk,fk> not null LOCAL_DE_ATUACAO not null TEMPO_DE_PERMANENCIA not null DATA_EFETIVACAO not null
Modelagem de Dados
Generalizao Especializao
MEDICOS MATRICULA <pk> not null NOME not null ESPECIALIDADE not null NOME_DO_ORIENTADOR null DATA_INICIO_RESIDENCIA null DATA_AVALIACAO null LOCAL_DE_ATUACAO null TEMPO_DE_PERMANDENCIA null DATA_EFETIVACAO null
2: Criar somente a tabela para a entidade generalizada e migrar todos os atributos e relacionamentos das entidades especializadas para ela
Modelagem de Dados
Generalizao Especializao
3 - Criar somente tabelas para as entidades especializadas e migrar todos os atributos e relacionamentos da entidade generalizada para cada uma dessas tabelas.
RESIDENTES MATRICULA <pk> not null NOME not null ESPECIALIDADE not null NOME_DO_ORIENTADOR not null DATA_INICIO_RESIDENCIA not null DATA_AVALIACAO not null EFETIVOS MATRICULA <pk> not null NOME not null ESPECIALIDADE not null LOCAL_DE_ATUACAO not null TEMPO_DE_PERMANENCIA not null DATA_EFETIVACAO not null
Modelagem de Dados
Agregao
A traduo da Agregao se dar em duas partes:
Primeiro ser tratado o aspecto relativo ao relacionamento (aquele que dar vida ao agregado) Em segundo lugar faremos a traduo do aspecto relativo a entidade, ou seja, ao agregado e seus vnculos com os demais elementos do modelo
Modelagem de Dados
Agregao
data numero valortotal ITENS PEDIDO REQUISITAM PEDIDOS DE COMPRA (0,N) codigo quantidade (1,N) nome quantidade
MATERIAIS
(1,1)
Modelagem de Dados
Agregao
PEDIDOS_COMPRA NUMERO <pk> not null DATA not null VALORTOTAL not null ITENS_PEDIDO NUMERO <pk,fk1> not null CODIGO <pk,fk2> not null QUANTIDADE not null MATERIAIS3 CODIGO <pk> not null NOME not null VALOR_UNITARIO not null
ORDENS_COMPRA CODIGO_ <pk> not null NUMERO <fk> not null CODIGO_MATERIAL <fk> not null DATA not null VALOR_TOTAL not null
Modelagem de Dados
Auto-relacionamento
nome matricula Data admissao cargo
(1,1)
FUNCIONRIOS
(0,N)
EMPREGADOS MATRICULA <pk> not null NOME not null DATA_ADMISSAO not null CARGO not null EMP_MATRICULA_GERENTE <fk> not null
GERENCIA
GERENCIAM
GERENCIADO
Modelagem de Dados
Auto-relacionamento
COMPONENTE DE
codigo (1,N) nome quantidade (0,N)
MATERIAIS
COMPEM
COMPOSTO DE
MATERIAIS CODIGO <pk> not null NOME not null QUANTIDADE not null COMPOSICAO CODIGO <pk,fk1> not null PRO_CODIGO <pk,fk2> not null
com posi o codi gom _com posto codi gom _com ponente <pk,fk1> <pk,fk2> not nul l not nul l
consum o codi gom codi gop m ateri ai s codi gom nom e quanti dade <pk> not nul l not nul l not nul l <pk,fk1> <pk,fk2> not nul l not nul l proj etos codi gop nom e datael aboracao obj eti vo <pk> not not not not nul l nul l nul l nul l
al ocacao fabri cacaoi nterna codi gom m odel o precocusto <pk,fk> not nul l not nul l not nul l com prados codi gom codi goe precocom pra dataul ti m acom pra <pk,fk1> <fk2> not not not not nul l nul l nul l nul l codi gop codi goe datai ni ci o codi goc2 datafi m <pk,fk1> <pk,fk2> <pk> <fk3> not not not not not nul l nul l nul l nul l nul l CARGOS codi goc2 nom e sal ari o <pk> not nul l not nul l not nul l
em pregados uso codi gom com _codi gom <pk,fk1> <pk,fk2> not nul l not nul l codi goe nom e dataadm i ssao al uguei s not nul l not nul l not nul l codi gor codi goa <pk,fk1> <pk,fk2> not nul l not nul l arm azens codi goa codi gol tel efone <pk> <fk> not nul l not nul l not nul l <pk> not nul l not nul l not nul l
com pras codi gom codi goc codi gor <pk,fk1> <pk,fk2> <pk,fk3>
representantes codi gor razaosoci al l ogradouro num ero bai rro ci dade estado cep e_m ai l <pk> not nul l not nul l not nul l not nul l not nul l not nul l not nul l not nul l nul l
cl i entes codi goc razaosoci al l ogradouro num ero bai rro ci dade estado cep e_m ai l <pk> not nul l not nul l not nul l not nul l not nul l not nul l not nul l not nul l nul l
aval i stas codi gor codi goa <pk,fk1> <pk,fk2> not nul l not nul l
tel efones codi goc tel efone <pk,fk> <pk> not nul l not nul l l ocai s codi gol bai rro ci dade <pk> not nul l not nul l not nul l
Software 12345-78
23456-89 R. Itu 49, Itu SP 11000 R. Vitoria 12, Computer 34567-00 Vitoria ES 30000 Brasoft 23456-89 R. Itu 49, Itu SP 11000 Brasoft
Uma tabela est em 1FN Normal se: Est integrado por tabelas As linhas da tabela so unvocas As linhas no contem itens repetitivos Os atributos so atmicos Os atributos no contem valores nulos.
Estiver em 1 FN
ITEM_PEDIDO Cd. Qtde. Produto 033A 04 002M 01 145J 13 002M 02 083P 10 033A 50 145J 50 029K 15 083P 10
Preco Unit. 130,00 499,00 256,00 450,00 85,00 110,00 110,00 200,00 87,00
Criar novas tabelas com as colunas dependentes parcialmente das chaves e excluir essas colunas da tabela original.
PRODUTO Cd. Produto 033A 002M 145J 083P 029K Nome Produto DOS COREL ABC ZAPT WIN
ITEM_PEDIDO Cd. Qtde. Produto 033A 04 002M 01 145J 13 002M 02 083P 10 033A 50 145J 50 029K 15 083P 10
Preco Unit. 130,00 499,00 256,00 450,00 85,00 110,00 110,00 200,00 87,00
FORNECEDOR CNPJ 12345-78 23456-89 34567-00 Nome Fornec. Logradouro Numer Cidade o Software Av. Lapa 777 Lapa Brasoft R. Itu 49 Itu Computer R. Vitoria 12 Vitoria Uf RJ SP ES cep 20000 11000 30000
DML
Bibliografia
DATE, C.J. Introduo a Sistemas de Banco de Dados. 8ed. Rio de Janeiro: Elsevier, 2003. ELMASRI, R., NAVATHE, S. B. Sistemas de Banco de Dados. 4ed. So Paulo: Adisson Wesley, 2005. GILLENSON, M. L. Fundamentos de Sistemas de Gerncia de Banco de Dados. Rio de Janeiro: LTC, 2002. GUIMARES, C. C. Fundamentos de Bancos de Dados. Modelagem, projeto e linguagem SQL. So Paulo: Unicamp, 2003. KORTH, H. F. & SILBERSCHATZ, A. Sistema de Bancos de Dados. 3ed. So Paulo: Makron Books, 1999.