DIAGRAMA ENTIDADE-RELACIONAMENTO Atributos de Relacionamento A quem pertencem os atributos: PRECO QUANTIDADE e PRAZO? PRECO, n n Produto Produto Fornecedor V d Vende n n Vende Preço Fornecedor Prazo Quant Unidade I 1 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO DESENVOLVIMENTO 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ÇÕES - Atributo versus entidade relacionada; - Atributo versus generalização/especialização; - Atributos opcionais e multivalorados. Unidade I 2 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO ATRIBUTO VERSUS ENTIDADE RELACIONADA Modelar 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 AUTOMÓVEL Cor como entidade AUTOMÓVEL (0,n) (1,1) COR cor CRITÉRIOS - Está vinculado a outros objetos (entidades, atributos, relacionamentos, entidades genéricas ou especializadas)? - Possui propriedades particulares que se deseja modelar? l do d objeto bj t é fixo fi durante d t toda t d a vida id do d sistema? i t ? - O valor Unidade I 3 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO ATRIBUTOS OPCIONAIS E MULTIVALORADOS Aconselhável o emprego de atributos obrigatórios e monovalorados MODELAGEM DE ATRIBUTOS OPCIONAIS - só os engenheiros têm CREA; código - só os médicos têm CRM; nome - só para quem tem CNH é que categoria DtVcto tem significado; EMPREGADO f funcional i l - será ád de grande d interesse i t CREA para a empresa controlar as datas de vencimento das CNH CRM N Nº CNH DtVcto dos médicos e engenheiros? CNH - o uso de atributos opcionais não estará escondendo diferentes categorias de empregados? CRITÉRIO Verificar se a modelagem com o uso de generalização / especialização não é mais conveniente. Unidade I 4 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO MODELAGEM DE ATRIBUTOS OPCIONAIS SOLUÇÃO MAIS ADEQUADA EMPREGADO código MOTORISTA Nº CNH Unidade I Dt Vcto CNH nome ENGENHEIRO CREA MÉDICO CRM 5 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO MODELAGEM DE ATRIBUTOS MULTIVALORADOS Indesejáveis pelos seguintes motivos: - Ainda não têm implementação direta no modelo relacional (SQL-2); - Indução a erros na modelagem pela ocultação de entidades tid d e relacionamentos l i t em atributos t ib t deste d t tipo. ti código nome EMPREGADO Dependente (0,n) Lançamento de pagamento (0,n) CRITÉRIO A Aconselhável lhá l substituí-los b tit í l por entidades tid d relacionadas. l i d Unidade I 6 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO SOLUÇÃO Ç Substituição de atributos multivalorados por entidades relacionadas. nome EMPREGADO (1,1) (1,1) (0,n) LANÇAMENTO PAGAMENTO (0,n) DEPENDENTE valor (0,n) (1,1) nome data de nascimento código descrição Unidade I 7 Banco de Dados 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 Unidade I 8 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO CONSTRUÇÃO DE MODELO CONCEITUAL 1º PASSO - Ler cuidadosamente todo o texto para compreendê-lo e ter uma idéia g geral do que será modelado. Se 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: Lembre se: entidade é um objeto e atributo é uma qualidade de um objeto. 2 PASSO - Realize uma nova leitura no texto, 2º 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) ondulado). Marque tudo (tudo mesmo) sem qualquer constrangimento. Durante a modelagem, o que não for relevante será d desconsiderado id d Unidade I 9 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO 3º PASSO - Numa folha de p papel p auxiliar escreva à esquerda q em 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 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 documentados. documentados 4º PASSO – Com uma linha feita a lápis, una os atributos lançados na coluna da direita às entidades (coluna da esquerda) que parecem pertencer. Observe que ao final nenhum atributo pode sobrar, ou seja, obrigatoriamente bi i todos d atributos ib terão que pertencer a alguma l 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. Unidade I 10 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO 5 PASSO – Desconfie das entidades que não têm atributos, 5º 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 é necessário Ainda á i levantar l t as cardinalidades di lid d dos d relacionamentos, o que é feito à partir as informações contidas no texto . 7º PASSO – Por último, desenhe o Modelo Conceitual. Unidade I 11 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO Locadora de Vídeo Uma pequena locadora de vídeo possui ao redor de 2.000 fitas de vídeo, cujo empréstimo deve ser controlado. C d fita Cada fit possuii um número. ú P Para cada d filme, fil é necessário á i saber b seu título e sua categoria (comédia, drama, aventura, ...). Cada filme recebe um identificador próprio. Para cada fita é controlado que filme ela contém. contém Para cada filme há pelo menos uma fita, fita e cada fita contém somente um filme. Alguns poucos filmes necessitam 2 fitas. Os clientes podem desejar encontrar os filmes estrelados pelo seu ator predileto. predileto Por isso, isso é necessário manter a informação dos atores que estrelam em cada filme. Nem todo filme possui estrelas. Para cada ator, os clientes às vezes desejam saber o nome real, bem como a data de nascimento. nascimento A locadora possui muitos clientes cadastrados. Somente clientes cadastrados podem alugar fitas. Para cada cliente é necessário saber seu prenome e seu sobrenome, seu telefone e seu endereço. Além disso, cada cliente recebe um número de associado. Finalmente, desejamos saber que fitas cada cliente tem emprestadas. p Um cliente p pode ter várias fitas em um instante no tempo. Não são mantidos registros históricos de aluguéis. Unidade I 12 Banco de Dados I 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. redundâncias Unidade I 13 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO MODELO CORRETO Não apresenta erros de modelagem (sintáticos e semânticos). ERROS SINTÁTICOS O 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; - especializar i li atributos t ib t ou relacionamentos; l i t ERROS SEMÂNTICOS O 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. Unidade I 14 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO MODELO COMPLETO - Verificar se todos os dados que devem ser mantidos pelo BD estão presentes; - verificar se as transações de modificação desejadas no BD podem ser executadas sobre o modelo; - verificar se todas as propriedades expressáveis estão no modelo d l e as não ã expressáveis á i estão tã anotadas t d à parte. t MODELO LIVRE DE REDUNDÂNCIAS - O modelo deve ser mínimo e não deve ter conceitos redundantes; - redundâncias mais comuns: - relacionamentos redundantes; - atributos redundantes. Unidade I 15 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO RELACIONAMENTOS REDUNDANTES - Podem ser eliminados sem haver perda de informação. (0,n) FÁBRICA ATUAÇÃO (1,1) (1 1) (1,1) F/D LOCALIZAÇÃO FABR (0,n) DEPARTAMENTO (1,1) LOCALIZAÇÃO DEPTO (1,1) D/E (0,n) (0,n) (0,n) EMPREGADO (0,n) ASSOCIADO Unidade I TRABALHO (0 n) (0,n) (0,n) MÁQUINA (0,n) (1,1) SINDICATO 16 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO ATRIBUTOS REDUNDANTES Um atributo é redundante quando pode ser derivado à partir de procedimentos de busca de dados ou cálculos sobre o BD BD. código ódi cadastro d t nome nome DEPARTAMENTO (1,1) número de empregados g Unidade I (1,n) LOTAÇÃO EMPREGADO código do departamento 17 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO LOCAL DOS ATRIBUTOS Os atributos e relacionamentos estão corretamente posicionados? cpf nome cpf PESSOA PESSOA (1,n) (1,n) ALUGUEL ALUGUEL (0,n) cod nome dt aluguel (0,n) endereco IMOVEL cod endereco IMOVEL dt aluguel l l Unidade I 18 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO ATRIBUTOS CUJOS VALORES SE MODIFICAM NO TEMPO Modelo: tende a refletir o seu estado momentâneo (instância) Aspectos temporais: auditorias, questões legais e estatísticas ex: O salário lá i de d um empregado d é um atributo t ib t que se modifica difi ao longo do tempo. EMPREGADO código EMPREGADO (1,1) nome Recebe ((0,n) , ) código nome salário Salário S lá i modelado d l d como atributo t ib t = só registra o valor atual SALÁRIO data valor Salário modelado como entidade = registra o histórico do valor Unidade I 19 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO RELACIONAMENTOS QUE SE MODIFICAM NO TEMPO A modelagem de relacionamentos 1:1 e 1:n que modificam-se ao longo g do tempo é realizada alterando-se o relacionamento para n:n e criando-se um atributo identificador no próprio relacionamento. 1:1 EMPREGADO 1: n EMPREGADO 1 n Alocação 1 Alocação data MESA O BD só registra o valor atual. Unidade I n MESA EMPREGADO n Lotação 1 DEPTO EMPREGADO data n Lotação n DEPTO O BD registra o histórico. 20 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO RELACIONAMENTOS QUE SE MODIFICAM NO TEMPO A modelagem de relacionamentos n:n que modificam-se ao longo do tempo é realizada criando criando-se se um atributo identificador no próprio relacionamento. PARTICIPANTE PARTICIPANTE n data Inscrição n CURSO O BD só registra o valor atual. Unidade I data n Inscrição n CURSO O BD registra o histórico. 21 Banco de Dados 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 incorreto - Normalmente esta entidade é destinada à modelagem da organização que está sendo modelada -Deve Deve ser investigada, investigada pois pode estar ocultando algum relacionamento. PADRÕ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 - MERISE. Unidade I 22 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO NOTAÇÃO DE ENGENHARIA DE INFORMAÇÕES Sua importância é devida ao fato de ser suportada por várias ferramentas CASE. É também conhecida por Notação James Martin. DEPARTAMENTO (1,1) DEPARTAMENTO EMPREGADO LOTAÇÃO (0,n) tem lotado EMPREGADO está lotado em - Relacionamento representado por uma linha que une as entidades tid d ( não ã estão tã previstos i t atributos t ib t nos relacionamentos); l i t ) -O losango é substituído por verbos em ambas direções; - As cardinalidades são representadas graficamente; Unidade I 23 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO NOTAÇÃO DE ENGENHARIA DE INFORMAÇÕES Generalização/especialização: subconjunto (subtipo) - aninhamento Generalização/ Especialização Unidade I 24 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO NOTAÇÃO DE ENGENHARIA DE INFORMAÇÕES Engenharia de Informações “Chen” Unidade I 25 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO MERISE Sua importância é devida ao fato de ser muito utilizada na França e países europeus. DEPARTAMENTO (1,1) DEPARTAMENTO EMPREGADO LOTAÇÃO (0,n) (0,n) LOTAÇÃO (1,1) EMPREGADO - O relacionamento é representado por uma elipse; - As cardinalidades aparecem invertidas; Unidade I 26 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO USO DE FERRAMENTAS DE MODELAGEM - Trabalho profissional: não é recomendada a modelagem manual -Apoio p do computador p à modelagem g é recomendável desde o início 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 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;; p - Não há integração entre o DER e o DD Unidade I 27 Banco de Dados I DIAGRAMA ENTIDADE-RELACIONAMENTO PRICED_PRODUCTS ID PRICE PRICED PRODUCT * PRICE o QUANTITY IN STOCK o SIZE CODE PDT_ID QUANTITY_IN_STOCK SIZE_CODE PPT_PK PPT_PDT_FK PPT_PDT_FK K FOR OBTAINABLE AS PRODUCT # * * o o PRODUCTS ID DESCRIPTION PRODUCT TYPE DISCOUNT DAY PHOTO ID PROMPT Creating Table 'PRODUCTS' CREATE TABLE PRODUCTS (ID NUMBER(38) NOT NULL ,DESCRIPTION VARCHAR2(30) NOT NULL ,PRODUCT_TYPE VARCHAR2(10) NOT NULL ,DISCOUNT_DAY VARCHAR2(1) ,PHOTO PHOTO VARCHAR2(40) ); PROMPT Creating Table 'PRICED_PRODUCTS' CREATE TABLE PRICED_PRODUCTS (ID NUMBER(10,0) NOT NULL ,PRICE PRICE NUMBER(6 NUMBER(6,2) 2) DEFAULT 0 NOT NULL ,PDT_ID NUMBER(38) NOT NULL ,QUANTITY_IN_STOCK NUMBER(38) ,SIZE_CODE VARCHAR2(2) ); PROMPT Creating Primary Key on 'PRODUCTS' ALTER TABLE PRODUCTS ADD (CONSTRAINT PDT_PK PRIMARY KEY (ID)); DESCRIPTION PRODUCT_TYPE DISCOUNT_DAY PHOTO PDT_PK PROMPT Creating Primary Key on 'PRICED_PRODUCTS' ALTER TABLE PRICED_PRODUCTS ADD (CONSTRAINT PPT_PK PRIMARY KEY (ID)); PROMPT C Creating ti F Foreign i K Keys on 'PRICED_PRODUCTS' ALTER TABLE PRICED_PRODUCTS ADD CONSTRAINT PPT_PDT_FK FOREIGN KEY (PDT_ID) REFERENCES PRODUCTS (ID); Unidade I 28 Banco de Dados I