atributos de relacionamentoatributos de … entidade-relacionamento modelagem de atributos...
TRANSCRIPT
DIAGRAMA ENTIDADE-RELACIONAMENTO
Atributos de RelacionamentoAtributos de RelacionamentoA quem pertencem os atributos: PRECO QUANTIDADE e PRAZO?
Produto FornecedorV d
n n
PRECO, QUANTIDADE e PRAZO?
Produto FornecedorVende
n nProduto FornecedorVende
n n
PreçoQuant
Prazo
1Banco de Dados IUnidade I
Quant
DIAGRAMA ENTIDADE-RELACIONAMENTO
DESENVOLVIMENTO DA MODELAGEMDESENVOLVIMENTO DA MODELAGEM- Observar o contexto e não os objetos independentemente;
- Sujeita, a todo momento, a alterações;
- Durante o desenvolvimento do modelo, com o aumento do conhecimento sobre a realidade a ser modelada, o modelo será cada vez mais refinado e aperfeiçoado.p ç
CRITÉRIOS PARA A ESCOLHA DE CONSTRUÇÕESCRITÉRIOS PARA A ESCOLHA DE CONSTRUÇÕES
- Atributo versus entidade relacionada;Atributo versus generalização/especialização;- Atributo versus generalização/especialização;
- Atributos opcionais e multivalorados.
2Banco de Dados IUnidade I
DIAGRAMA ENTIDADE-RELACIONAMENTO
ATRIBUTO VERSUS ENTIDADE RELACIONADAModelar um objeto como atributo de uma entidade ou como
outra entidade relacionada àquela primeira?Como modelar a COR de um automóvel?
Cor como atributo Cor como entidade
COR(0,n) (1,1)
AUTOMÓVELAUTOMÓVEL(0,n) (1,1)
corCRITÉRIOS
- Está vinculado a outros objetos (entidades, atributos, relacionamentos, entidades genéricas ou especializadas)?
- Possui propriedades particulares que se deseja modelar?
O l d bj t é fi d t t d id d i t ?3
Banco de Dados IUnidade I
- O valor do objeto é fixo durante toda a vida do sistema?
DIAGRAMA ENTIDADE-RELACIONAMENTO
ATRIBUTOS OPCIONAIS E MULTIVALORADOSAconselhável o emprego de atributos obrigatórios e
monovaloradosMODELAGEM DE ATRIBUTOS OPCIONAISMODELAGEM DE ATRIBUTOS OPCIONAIS
código- só os engenheiros têm CREA;- só os médicos têm CRM;nome
EMPREGADO
código
categoriaf i l
- só os médicos têm CRM;- só para quem tem CNH é que DtVcto tem significado;
á d d i tfuncional
DtVctoNº CNHCRM
CREA - será de grande interessepara a empresa controlar asdatas de vencimento das CNHDtVcto
CNHN CNHCRM dos médicos e engenheiros?
- o uso de atributos opcionais nãoestará escondendo diferentes ca-
Verificar se a modelagem com o uso de generalização /
CRITÉRIO tegorias de empregados?
4Banco de Dados IUnidade I
especialização não é mais conveniente.
DIAGRAMA ENTIDADE-RELACIONAMENTO
MODELAGEM DE ATRIBUTOS OPCIONAIS
SOLUÇÃO MAIS ADEQUADA
EMPREGADO
SOLUÇÃO MAIS ADEQUADA
nomeEMPREGADO
código
MÉDICOMOTORISTA ENGENHEIRO
CRMNº CNH Dt Vcto CNHCREA
5Banco de Dados IUnidade I
DIAGRAMA ENTIDADE-RELACIONAMENTO
MODELAGEM DE ATRIBUTOS MULTIVALORADOSIndesejáveis pelos seguintes motivos:
Ainda não têm implementação direta no modelo- Ainda não têm implementação direta no modelo relacional (SQL-2);
- Indução a erros na modelagem pela ocultação de tid d l i t t ib t d t tientidades e relacionamentos em atributos deste tipo.
nomecódigo
EMPREGADO
Lançamento depagamento (0,n)
Dependente (0,n)
A lhá l b tit í l tid d l i d
CRITÉRIO
pagamento (0,n)
6Banco de Dados IUnidade I
Aconselhável substituí-los por entidades relacionadas.
DIAGRAMA ENTIDADE-RELACIONAMENTO
SOLUÇÃOSubstituição de atributos multivalorados por entidades
relacionadas.
Ç
EMPREGADO
(1,1)(1,1)
nome
(0,n)(0,n)
(1,1)(1,1)
LANÇAMENTOPAGAMENTO
DEPENDENTEvalor
nome
(0,n)
(1,1)
data denascimento(1,1)
códigodescrição
7Banco de Dados IUnidade I
DIAGRAMA ENTIDADE-RELACIONAMENTO
CONSTRUÇÃO DE MODELO CONCEITUAL
ANTES DE LER UM MODELO DESCRITIVO, LEMBRE-SE:
- Um substantivo (sujeito) normalmente indica a existência de uma entidade
- Um verbo (ação) é uma indicação da existência de um relacionamento
- Um adjetivo (qualificação do sujeito), é uma indicação da existência de um atributo de uma entidade
- Um advérbio temporal (qualificação do verbo), é uma indicação da existência de um atributo de um relacionamento
8Banco de Dados IUnidade I
DIAGRAMA ENTIDADE-RELACIONAMENTO
CONSTRUÇÃO DE MODELO CONCEITUAL
1º PASSO - Ler cuidadosamente todo o texto para compreendê-lo e ter uma idéia geral do que será modelado. gSe necessário leia todo o texto novamente, até que tenha a total compreensão do que será modelado. Neste passo não use material de escrita. Lembre-se: entidade é um objeto euse material de escrita. Lembre se: entidade é um objeto e atributo é uma qualidade de um objeto.
2º PASSO - Realize uma nova leitura no texto agora2 PASSO - Realize uma nova leitura no texto, agora sublinhando à lápis o que você ache que seja uma entidade (traço reto) sobre a qual deseja-se armazenar dados no BD. Faça agora o mesmo para os atributos (traço ondulado)Faça agora o mesmo para os atributos (traço ondulado).Marque tudo (tudo mesmo) sem qualquer constrangimento. Durante a modelagem, o que não for relevante será d id ddesconsiderado
9Banco de Dados IUnidade I
DIAGRAMA ENTIDADE-RELACIONAMENTO
3º PASSO - Numa folha de papel auxiliar escreva à esquerda p p qem uma coluna todas as ENTIDADES (traço reto) que foram levantadas. Noutra coluna à direita, escreva todos os ATRIBUTOS (traço ondulado) também levantados. Faça umaATRIBUTOS (traço ondulado) também levantados. Faça uma nova leitura do texto e certifique-se de que, segundo a sua opinião, todas as entidades e atributos estão estão ali documentadosdocumentados.
4º PASSO – Com uma linha feita a lápis, una os atributos lançados na coluna da direita às entidades (coluna dalançados na coluna da direita às entidades (coluna da esquerda) que parecem pertencer. Observe que ao final nenhum atributo pode sobrar, ou seja,
b i i d ib lobrigatoriamente todos atributos terão que pertencer a alguma entidade. Observe também que em certas situações o atributo parece pertencer a mais de uma entidade, isto pode indicar que este atributo comum a duas entidades pode ser um atributo do relacionamento entre elas.
10Banco de Dados IUnidade I
DIAGRAMA ENTIDADE-RELACIONAMENTO
5º PASSO – Desconfie das entidades que não têm atributos5 PASSO Desconfie das entidades que não têm atributos, com toda certeza elas ficarão fora do BD. Não tenha receio, risque-as.
6º PASSO – Têm-se agora perfeitamente definidas as entidades, os relacionamentos e os atributos de ambos.Ai d é á i l t di lid d dAinda é necessário levantar as cardinalidades dos relacionamentos, o que é feito à partir as informações contidas no texto .
7º PASSO – Por último, desenhe o Modelo Conceitual.
11Banco de Dados IUnidade I
DIAGRAMA ENTIDADE-RELACIONAMENTO
Locadora de Vídeo
Uma pequena locadora de vídeo possui ao redor de 2.000 fitas devídeo, cujo empréstimo deve ser controlado.C d fit i ú P d fil é á i bCada fita possui um número. Para cada filme, é necessário saber seu
título e sua categoria (comédia, drama, aventura, ...). Cada filmerecebe um identificador próprio. Para cada fita é controlado que filmeela contém Para cada filme há pelo menos uma fita e cada fitaela contém. Para cada filme há pelo menos uma fita, e cada fitacontém somente um filme. Alguns poucos filmes necessitam 2 fitas.Os clientes podem desejar encontrar os filmes estrelados pelo seu
ator predileto Por isso é necessário manter a informação dos atoresator predileto. Por isso, é necessário manter a informação dos atoresque estrelam em cada filme. Nem todo filme possui estrelas. Paracada ator, os clientes às vezes desejam saber o nome real, bem comoa data de nascimentoa data de nascimento.A locadora possui muitos clientes cadastrados. Somente clientes
cadastrados podem alugar fitas. Para cada cliente é necessário saberseu prenome e seu sobrenome, seu telefone e seu endereço. Alémseu prenome e seu sobrenome, seu telefone e seu endereço. Alémdisso, cada cliente recebe um número de associado.
Finalmente, desejamos saber que fitas cada cliente tememprestadas. Um cliente pode ter várias fitas em um instante no
12Banco de Dados IUnidade I
p ptempo. Não são mantidos registros históricos de aluguéis.
DIAGRAMA ENTIDADE-RELACIONAMENTO
VERIFICAÇÃO DO MODELOÇ- Um modelo ER após construído deve ser validado e verificado;- Um modelo ER para ser considerado bom deve:
- ser correto;- ser completo;- não conter redundâncias- não conter redundâncias.
13Banco de Dados IUnidade I
DIAGRAMA ENTIDADE-RELACIONAMENTO
MODELO CORRETONão apresenta erros de modelagem (sintáticos e semânticos).
ERROS SINTÁTICOSO modelo não respeita as regras de construção de modelos ER:
- associar atributos a atributos;- associar atributos a relacionamentos;- associar relacionamento a relacionamento;- associar entidade a entidade;
i li t ib t l i t- especializar atributos ou relacionamentos;
ERROS SEMÂNTICOSERROS SEMÂNTICOSO modelo respeita as regras de construção de modelos ER, mas representa a realidade modelada de forma inconsistente:
- estabelecer as associações incorretas;- usar uma entidade do modelo como atributo de outra entidade;- usar número de entidades incorretas no relacionamento.
14Banco de Dados IUnidade I
usar número de entidades incorretas no relacionamento.
DIAGRAMA ENTIDADE-RELACIONAMENTO
MODELO COMPLETO
- Verificar se todos os dados que devem ser mantidos pelo BD estão presentes;pelo BD estão presentes;
- verificar se as transações de modificação desejadas no BD podem ser executadas sobre o modelo;no BD podem ser executadas sobre o modelo;
- verificar se todas as propriedades expressáveis estão d l ã á i tã t d à tno modelo e as não expressáveis estão anotadas à parte.
MODELO LIVRE DE REDUNDÂNCIAS
- O modelo deve ser mínimo e não deve ter conceitosredundantes;
- redundâncias mais comuns:- relacionamentos redundantes;
15Banco de Dados IUnidade I
- atributos redundantes.
DIAGRAMA ENTIDADE-RELACIONAMENTO
RELACIONAMENTOS REDUNDANTESRELACIONAMENTOS REDUNDANTES
- Podem ser eliminados sem haver perda de informação.
FÁBRICA
(1 1)
ATUAÇÃO(0,n)(1,1)
F/D(1,1)
LOCALIZAÇÃOFABR(0,n)
DEPARTAMENTO LOCALIZAÇÃODEPTO
(1,1)
(1,1)
MÁQUINA
D/E
EMPREGADO
(0,n)(0,n)
(0,n)
(0,n) (0 n)
SINDICATO
(0,n)TRABALHO MÁQUINAEMPREGADO
ASSOCIADO
(0,n)
(0,n)(1,1)
16Banco de Dados IUnidade I
SINDICATOASSOCIADO
DIAGRAMA ENTIDADE-RELACIONAMENTO
ATRIBUTOS REDUNDANTESATRIBUTOS REDUNDANTES
Um atributo é redundante quando pode ser derivado à partir de procedimentos de busca de dados ou cálculos sobre o BDde procedimentos de busca de dados ou cálculos sobre o BD.
ódi d tcódigo nome cadastro nome
LOTAÇÃO EMPREGADODEPARTAMENTO(1,1) (1,n)
código donúmero deempregados código do
departamentog
17Banco de Dados IUnidade I
DIAGRAMA ENTIDADE-RELACIONAMENTO
LOCAL DOS ATRIBUTOSLOCAL DOS ATRIBUTOS
Os atributos e relacionamentos estão corretamente posicionados?posicionados?
cpf nome cpf nome
PESSOA
(1,n)
PESSOA
(1,n)
ALUGUEL ALUGUEL dt aluguel
cod endereco
(0,n)
cod endereco
dt aluguel(0,n)
IMOVEL
cod endereco
dt l lIMOVEL
cod endereco
18Banco de Dados IUnidade I
dt aluguel
DIAGRAMA ENTIDADE-RELACIONAMENTO
ATRIBUTOS CUJOS VALORES SE MODIFICAM NOATRIBUTOS CUJOS VALORES SE MODIFICAM NO TEMPO
Modelo: tende a refletir o seu estado momentâneo (instância)
O lá i d d é t ib t difi
Modelo: tende a refletir o seu estado momentâneo (instância)Aspectos temporais: auditorias, questões legais e estatísticas
ex: O salário de um empregado é um atributo que se modifica ao longo do tempo.
EMPREGADOcódigo nome
EMPREGADO Recebe(1,1)
(0,n)
código nome
código nome salário( , )
SALÁRIO
S lá i d l d t ib t data valorSalário modelado como atributo = só registra o valor atual
Salário modelado como entidade = registra o histórico do valor
19Banco de Dados IUnidade I
= registra o histórico do valor
DIAGRAMA ENTIDADE-RELACIONAMENTO
RELACIONAMENTOS QUE SE MODIFICAM NO TEMPOA modelagem de relacionamentos 1:1 e 1:n que modificam-se
ao longo do tempo é realizada alterando-se o relacionamento
RELACIONAMENTOS QUE SE MODIFICAM NO TEMPO
gpara n:n e criando-se um atributo identificador no próprio relacionamento.
1:1 1: n
nEMPREGADO
1EMPREGADO
nEMPREGADO
datanEMPREGADO
1:1 1: n
Alocação
nMESA
dataAlocação
1MESA
Lotação
nDEPTO
Lotação
1DEPTOMESAMESA DEPTODEPTO
O BD só registra o valor atual.
O BD registra o histórico.
20Banco de Dados IUnidade I
atual.
DIAGRAMA ENTIDADE-RELACIONAMENTO
RELACIONAMENTOS QUE SE MODIFICAM NO TEMPO
A modelagem de relacionamentos n:n que modificam-se ao longo do tempo é realizada criando se um atributo identificador
RELACIONAMENTOS QUE SE MODIFICAM NO TEMPO
longo do tempo é realizada criando-se um atributo identificador no próprio relacionamento.
nPARTICIPANTE
dataPARTICIPANTE
Inscrição
n
n
data
Inscrição
n
n
data
O BD só registra o valor O BD registra o histórico.
CURSOCURSO
O BD só registra o valor atual.
21Banco de Dados IUnidade I
DIAGRAMA ENTIDADE-RELACIONAMENTO
ENTIDADE ISOLADA
- Entidade que não se relaciona a nenhuma outra do modelo- Em princípio não torna o modelo incorretoEm princípio não torna o modelo incorreto- Normalmente esta entidade é destinada à modelagem da organização que está sendo modeladaDeve ser investigada pois pode estar ocultando algum-Deve ser investigada, pois pode estar ocultando algum
relacionamento.
PADRÕES DE MODELAGEMPADRÕES DE MODELAGEM
- Inúmeros autores propondo inúmeros modelos- Na prática e na literatura não há um só modelo ER
VARIANTES DE MODELOS ER
- Modelo proposto por Peter Chen;- Notação de Engenharia de Informações; e
22Banco de Dados IUnidade I
Notação de Engenharia de Informações; e- MERISE.
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
NOTAÇÃO DE ENGENHARIA DE INFORMAÇÕESSua importância é devida ao fato de ser suportada por várias
ferramentas CASE. É também conhecida por Notação James Martin.
NOTAÇÃO DE ENGENHARIA DE INFORMAÇÕES
EMPREGADOLOTAÇÃODEPARTAMENTO LOTAÇÃO(1,1) (0,n)
EMPREGADODEPARTAMENTO tem lotado
- Relacionamento representado por uma linha que une as tid d ( ã tã i t t ib t l i t )
está lotado em
entidades ( não estão previstos atributos nos relacionamentos);-O losango é substituído por verbos em ambas direções;- As cardinalidades são representadas graficamente;
23Banco de Dados IUnidade I
As cardinalidades são representadas graficamente;
DIAGRAMA ENTIDADE-RELACIONAMENTO
NOTAÇÃO DE ENGENHARIA DE INFORMAÇÕESNOTAÇÃO DE ENGENHARIA DE INFORMAÇÕES
Generalização/especialização: subconjunto (subtipo) aninhamentoGeneralização/especialização: subconjunto (subtipo) - aninhamento
Generalização/Especialização
24Banco de Dados IUnidade I
DIAGRAMA ENTIDADE-RELACIONAMENTO
NOTAÇÃO DE ENGENHARIA DE INFORMAÇÕESNOTAÇÃO DE ENGENHARIA DE INFORMAÇÕES
Engenharia de Informações
“Chen”
25Banco de Dados IUnidade I
DIAGRAMA ENTIDADE-RELACIONAMENTO
MERISESua importância é devida ao fato de ser muito utilizada na França e países europeus.
MERISE
EMPREGADOLOTAÇÃODEPARTAMENTO LOTAÇÃO(1,1) (0,n)
EMPREGADOLOTAÇÃODEPARTAMENTO (0,n) (1,1)
- O relacionamento é representado por uma elipse;- As cardinalidades aparecem invertidas;
26Banco de Dados IUnidade I
DIAGRAMA ENTIDADE-RELACIONAMENTO
USO DE FERRAMENTAS DE MODELAGEM
- Trabalho profissional: não é recomendada a modelagem manual-Apoio do computador à modelagem é recomendável desde o iníciop p g
USO DE FERRAMENTA CASE
- Existem em várias configurações e preços- Exigências mínimas para uma ferramenta CASE:
- Capacidade de edição diagramática- Dicionário de Dados- Integração entre o DER e o DD
ÓUSO DE FERRAMENTAS DE PROPÓSITO GERAL
- Empresas com orçamento apertadoEmpresas com orçamento apertado- Uso de programas de propósito geral- Dicionário de Dados editado através de planilha, editor de texto ou preferencialmente um banco de dados;
27Banco de Dados IUnidade I
p ;- Não há integração entre o DER e o DD
DIAGRAMA ENTIDADE-RELACIONAMENTO
PRICED_PRODUCTSPROMPT Creating Table 'PRODUCTS'CREATE TABLE PRODUCTS
PRICED PRODUCT* PRICE
IDPRICEPDT_IDQUANTITY_IN_STOCK
(ID NUMBER(38) NOT NULL,DESCRIPTION VARCHAR2(30) NOT NULL,PRODUCT_TYPE VARCHAR2(10) NOT NULL,DISCOUNT_DAY VARCHAR2(1)PHOTO VARCHAR2(40) ); PRICE
o QUANTITY IN STOCKo SIZE CODE
FOR
SIZE_CODE
PPT_PKPPT_PDT_FK
K
,PHOTO VARCHAR2(40) );
PROMPT Creating Table 'PRICED_PRODUCTS'CREATE TABLE PRICED_PRODUCTS(ID NUMBER(10,0) NOT NULLPRICE NUMBER(6 2) DEFAULT 0 NOT NULL
OBTAINABLE AS
PRODUCTS
PP
T_P
DT_
FK ,PRICE NUMBER(6,2) DEFAULT 0 NOT NULL,PDT_ID NUMBER(38) NOT NULL,QUANTITY_IN_STOCK NUMBER(38),SIZE_CODE VARCHAR2(2) );
PRODUCT# ID* DESCRIPTION* PRODUCT TYPEo DISCOUNT DAYo PHOTO
PRODUCTS
IDDESCRIPTIONPRODUCT TYPE
PROMPT Creating Primary Key on 'PRODUCTS'ALTER TABLE PRODUCTSADD (CONSTRAINT PDT_PK PRIMARY KEY (ID));
PROMPT Creating Primary Key on_DISCOUNT_DAYPHOTO
PDT_PK
PROMPT Creating Primary Key on 'PRICED_PRODUCTS'ALTER TABLE PRICED_PRODUCTSADD (CONSTRAINT PPT_PK PRIMARY KEY (ID));
PROMPT C ti F i KPROMPT Creating Foreign Keys on 'PRICED_PRODUCTS'ALTER TABLE PRICED_PRODUCTS ADD CONSTRAINTPPT_PDT_FK FOREIGN KEY
28Banco de Dados IUnidade I
(PDT_ID) REFERENCES PRODUCTS (ID);