Prévia do material em texto
Análise e Desenvolvimento de Sistemas Modelagem de Banco de Dados Prof. Camilo de Lelis Modelo Conceitual 17/10/2023Prof. Camilo de Lelis2 O objetivo é: Representar a semântica da informação, independente de considerações de eficiência. O objetivo NÃO é: Descrever a estrutura do armazenamento do banco de dados ➢Um modelo conceitual deve ter: ➢ clareza ➢ exatidão Modelo Semântico (Entidade-Relacionamento) Modelo Entidade Relacionamento Estendido 17/10/2023Prof. Camilo de Lelis3 Introduz semântica adicional ao modelo ER Utilizado na modelagem de aplicações mais complexas, tais como CAD/CAM, BD gráficos, BD geográficos. O modelo ERE engloba todos os conceitos do modelo ER mais os conceitos de subclasse, superclasse, generalização e especialização e o conceito de herança de atributos. Conceitos 17/10/2023Prof. Camilo de Lelis4 ❖Subclasse, superclasse, hierarquia, herança; ❖ Generalização, especialização; ❖ Agregação. Generalização 17/10/2023Prof. Camilo de Lelis5 Generalização Resultado da união de dois ou mais tipos entidade de nível mais baixo (subclasse), produzindo um tipo-entidade de nível mais alto (superclasse) É uma abstração de um conjunto de entidades Passos: Suprime-se as diferenças entre os tipos-entidade Identifica-se os atributos em comum Generaliza-se uma superclasse Conceito geral de generalização 17/10/2023Prof. Camilo de Lelis6 Generalização/Especialização em MER 17/10/2023Prof. Camilo de Lelis7 Os conceitos superclasse (supertipo), subclasse (subtipo), herança, generalização, especialização estão intimamente relacionados. Subclasse/Superclasse 17/10/2023Prof. Camilo de Lelis8 Subclasse(subtipo): Subconjunto de entidades Resulta do agrupamento de entidades em subgrupos de um tipo-entidade Outro exemplo: Superclasse (supertipo): tipo-entidade Empregado Subclasses (subtipos): Secretário, Cada entidade que é membro de qualquer uma das subclasses também é empregado Subclasses e Superclasses 17/10/2023Prof. Camilo de Lelis9 Um tipo de entidade pode ter subgrupos de entidades que são significativos e necessitam ser representados explicitamente. Exemplo: As entidades que são membros do tipo entidade EMPREGADO podem ser agrupadas em: SECRETARIA TÉCNICO ENGENHEIRO Cada um desses subgrupos é uma subclasse do tipo entidade EMPREGADO (superclasse para cada uma dessas subclasses) 17/10/2023Prof. Camilo de Lelis10 Superclasse Subclasses e Superclasses 17/10/2023Prof. Camilo de Lelis11 São chamados de relacionamentos superclasse/subclasse: EMPREGADO/SECRETARIA EMPREGADO/TECNICO EMPREGADO/ENGENHEIRO Um membro de uma subclasse é a mesma entidade da superclasse. Uma entidade não pode existir apenas por ser membro de uma subclasse; ela precisa ser também membro de uma superclasse. Uma entidade pode ser membro de várias subclasses. Não é necessário que toda entidade de uma superclasse seja membro de alguma subclasse. Especialização 17/10/2023Prof. Camilo de Lelis12 Especialização Resultado da separação de um tipo-entidade de nível mais alto (superclasse), formando vários tipos-entidade de nível mais baixo (subclasse) Passos: Define-se um conjunto de subclasses de um tipo entidade Associa-se atributos adicionais específicos às subclasses Estabelece-se relacionamentos adicionais específicos às subclasses, caso necessário Especialização 17/10/2023Prof. Camilo de Lelis13 É o processo de definir um conjunto de subclasses de um tipo de entidade. O conjunto de subclasses é definido com base em algumas características de distinção das entidades da superclasse. Podemos ter diversas especializações para o mesmo tipo entidade. CASO 1: determinados atributos aplicam-se somente a alguns conjuntos de entidades específicos; Especialização 17/10/2023Prof. Camilo de Lelis14 existem relacionamentos dos quais participam apenas entidades de alguns subconjuntos específicos; 17/10/2023Prof. Camilo de Lelis15 Atributos que se aplicam apenas às entidades de uma subclasse em particular ➔ atributos específicos locais Atributo VelocidadeDigitação de SECRETARIA Uma subclasse pode participar de tipos relacionamento específicos. Exemplo: A subclasse EMPREGADO- HORISTA participa do relacionamento PERTENCE_A Generalização 17/10/2023Prof. Camilo de Lelis16 Pode ser visto como o processo inverso à especialização; Resultado da união de dois ou mais tipos-entidade de nível mais baixo (subclasse), produzindo um tipo-entidade de nível mais alto (superclasse); É uma abstração de um conjunto de entidades. Procedimento: Suprimir diferenças entre os tipos-entidade; Identificar atributos em comum, generalizando-os em uma superclasse. Generalização 17/10/2023Prof. Camilo de Lelis17 É o processo contrário da especialização. Vários tipos de entidades com atributos comuns são generalizadas em uma única superclasse. Exemplo: Características da Especialização e Generalização 17/10/2023Prof. Camilo de Lelis18 Subclasses definidas por predicado: Se pudermos determinar exatamente as entidades que vão se tornar membros de cada subclasse ( Uma condição no valor de algum atributo da superclasse) Especialização definida por atributo: Se todas as subclasses da especialização têm sua condição determinada pelo mesmo atributo da superclasse. Subclasse definida pelo usuário: Quando não temos uma condição que determine que a entidade seja membro de uma subclasse. Herança 17/10/2023Prof. Camilo de Lelis19 Uma entidade que é membro de uma subclasse herda: Todos os atributos da entidade como um membro da superclasse. Todos os relacionamentos dos quais a superclasse participa. Exemplo: No exemplo SECRETARIA herda todos os atributos de EMPREGADO (Nome, SSN, DataNasc e Endereço); Herança 17/10/2023Prof. Camilo de Lelis20 De atributos Atributos da superclasses são herdados pelas subclasses De relacionamentos Instâncias de relacionamento da superclasse são herdados pelas entidades das subclasses Observação Qualquer entidade membro de um subclasse deve ser também membro da superclasse Qualquer membro da superclasse deve ser também membro de uma subclasse. Representação 17/10/2023Prof. Camilo de Lelis21 Conjuntos de entidades mais específicos herdam todos os atributos do conjunto de entidades mais genérico; Representação 17/10/2023Prof. Camilo de Lelis22 Herança... 17/10/2023Prof. Camilo de Lelis23 Conjuntos de entidades mais específicos herdam todos os atributos do conjunto de entidades mais genérico Herança 17/10/2023Prof. Camilo de Lelis24 Conjuntos de entidades mais específicos PARTICIPAM de todos os conjuntos de relacionamentos definidos para o conjunto de entidades mais genérico Herança 17/10/2023Prof. Camilo de Lelis25 Chave: A chave dos conjuntos de entidades mais específicos é herdada do conjunto de entidades mais genérico. Ou seja, a chave é definida implicitamente: Herança (Múltiplos níveis) 17/10/2023Prof. Camilo de Lelis26 Restrições 17/10/2023Prof. Camilo de Lelis27 Especialização definida pelo atributo As subclasses que participam da hierarquia são determinadas por uma condição baseada em algum atributo da subclasse exemplo: tipo_empregado (secretária, engenheiro, etc.) Restrições 17/10/2023Prof. Camilo de Lelis28 Restrição de disjunção Subclasses mutuamente exclusivas Uma entidade de uma superclasse deve ser membro, quando muito, de apenas uma subclasse Representação: “d” (disjunção) Exclusão Mútua: Uma disciplina não pode ser de graduação e pós ao mesmo tempo. Restrições 17/10/2023Prof. Camilo de Lelis29 Restrição de disjunção Subclasses que se sobrepõem (sobrepostas) Uma entidade de uma superclassepode ser membro de mais do que uma subclasse Representação: “o” (overlap) Restrições 17/10/2023Prof. Camilo de Lelis30 Restrição de completude Total Cada entidade de uma superclasse deve ser membro de alguma subclasse na especialização Parcial Uma entidade de uma superclasse não pertence a qualquer uma das subclasses Representação: Representação: Exemplo 17/10/2023Prof. Camilo de Lelis31 Restrição de totalidade 17/10/2023Prof. Camilo de Lelis32 Especialização parcial 17/10/2023Prof. Camilo de Lelis33 Sobreposição 17/10/2023Prof. Camilo de Lelis34 Observações 17/10/2023Prof. Camilo de Lelis35 Restrições de disjunção e de completude são independentes. Logo, existem as seguintes possibilidades de hierarquias: total disjunta; parcial disjunta; total com sobreposição; parcial com sobreposição Total Disjunta 17/10/2023Prof. Camilo de Lelis36 Parcial Disjunta 17/10/2023Prof. Camilo de Lelis37 Total Sobreposta 17/10/2023Prof. Camilo de Lelis38 Parcial Sobreposta 17/10/2023Prof. Camilo de Lelis39 Total Disjunta 17/10/2023Prof. Camilo de Lelis40 Parcial Disjunta 17/10/2023Prof. Camilo de Lelis41 Total Sobreposta 17/10/2023Prof. Camilo de Lelis42 Parcial Sobreposta 17/10/2023Prof. Camilo de Lelis43 Hierarquias e Reticulados de Especialização e Generalização 17/10/2023Prof. Camilo de Lelis44 Uma subclasse pode ter subclasses próprias, formando uma hierarquia ou um reticulado. Hierarquia Toda subclasse participa como uma subclasse em apenas um relacionamento superclasse/subclasse. Reticulado Uma subclasse pode participar em mais de um relacionamento superclasse/subclasse. Hierarquias e Reticulados de Especialização e Generalização 17/10/2023Prof. Camilo de Lelis45 Uma subclasse com mais de uma superclasse é chamada de subclasse compartilhada. Em uma especialização hierárquica ou reticulada uma subclasse herda os atributos de todas as superclasses predecessoras. Herança múltipla: a subclasse compartilhada herda diretamente os atributos e relacionamentos de múltiplas classes. Tipos união 17/10/2023Prof. Camilo de Lelis46 Cada relacionamento superclasse/subclasse visto até o momento têm uma superclasse única. Pode surgir a necessidade de modelar um único relacionamento superclasse/subclasse com mais de uma superclasse. A subclasse (tipo união ou categoria) representará uma coleção de objetos que é um subconjunto da UNIÃO de diferentes tipos de entidade. Na figura temos 2 categorias: PROPRIETÁRIO é uma subclasse da união de PESSOA, BANCO E EMPRESA; VEICULO_REGISTRADO é uma subclasse da união de CARRO e CAMINHÃO. Observações sobre tipos União 17/10/2023Prof. Camilo de Lelis47 Observações sobre tipos União 17/10/2023Prof. Camilo de Lelis48 Observações sobre tipos União 17/10/2023Prof. Camilo de Lelis49 Observações sobre tipos União 17/10/2023Prof. Camilo de Lelis50 Tipos de relacionamentos com grau maior que 2 17/10/2023Prof. Camilo de Lelis51 Agregação 17/10/2023Prof. Camilo de Lelis52 Uma das limitações do modelo ER é que não é possível expressar relacionamentos entre relacionamentos. A agregação é uma abstração através da qual relacionamentos são tratados como entidades de nível superior. Seria essa a opção melhor? 17/10/2023Prof. Camilo de Lelis53 Desejado mas não permitido 17/10/2023Prof. Camilo de Lelis54 Também desejado mas não é permitido. Utilizando uma Agregação Definições 17/10/2023Prof. Camilo de Lelis55 DML - Linguagem de Manipulação de Dados DDL - Linguagem de Definição de Dados DCL - Linguagem de Controle de Dados DTL - Linguagem de Transação de Dados DQL - Linguagem de Consulta de Dados Definições 17/10/2023Prof. Camilo de Lelis56 DDL e DML são agrupadores de comandos SQL, são responsáveis por dividir os diferentes tipos de comandos. O DQL que embora agrupe somente um comando, é o mais utilizado, pois, ele agrupa o comando Select. O DML é responsável pelos comandos Insert, Update, Delete e também o Select. Já o DDL é responsável pelos comandos de criação e alteração no banco de dados, como o Create, Alter e Drop. a diferença entre DDL e DML é que um agrupa comandos de definição de dados (DDL), e o outro comandos de manipulação de dados (DML). Exercício 17/10/2023Prof. Camilo de Lelis57 Modele o problema abaixo: Em um banco, clientes possuem contas. Estas contas podem ser conta corrente e conta poupança, entre outras. Conta corrente possui como características número, saldo, data de abertura e limite do cheque especial Conta poupança possui os atributos número, saldo, data de abertura e taxa de juros Observações 17/10/2023Prof. Camilo de Lelis58 Regras de inserção e remoção (exemplos) Se uma entidade de uma superclasse for removida então ela deve ser automaticamente removida de todas as subclasses a que pertence; Se uma entidade for inserida em uma superclasse então ela deve ser necessariamente inserida em todas as subclasses definidas pelo atributo, quando este for satisfeito; Observações 17/10/2023Prof. Camilo de Lelis59 Regras de inserção e remoção (exemplos) Se uma entidade for inserida em uma superclasse com especialização total então ela deve ser necessariamente inserida em pelo menos uma das subclasses da especialização; Uma subclasse pode possuir outras subclasses especificadas a partir dela Passos: Modelagem de Qualquer Problema 17/10/2023Prof. Camilo de Lelis60 Classificar tipos-entidade e atributos Tipos-entidade possuem informações descritivas, atributos não Atributos devem ser mantidos de forma atômica Atributos deve ser relacionados às entidades que eles descrevem Identificar chaves primárias Passos: Modelagem de Qualquer Problema 17/10/2023Prof. Camilo de Lelis61 Identificar os tipos-relacionamentos e seus atributos Determinar o grau do relacionamento Definir relacionamentos ternários cuidadosamente Determinar a cardinalidade Identificar tipos-entidade forte e tipos-entidade fracas Passos: Modelagem de Qualquer Problema 17/10/2023Prof. Camilo de Lelis62 Identificar as hierarquias de generalização e de subconjunto “Podemos notar que um projetista de BD necessita de um bom conhecimento do minimundo que está sendo modelado para que possa tomar essas decisões! Slide 1: Análise e Desenvolvimento de Sistemas Slide 2: Modelo Conceitual Slide 3: Modelo Entidade Relacionamento Estendido Slide 4: Conceitos Slide 5: Generalização Slide 6: Conceito geral de generalização Slide 7: Generalização/Especialização em MER Slide 8: Subclasse/Superclasse Slide 9: Subclasses e Superclasses Slide 10 Slide 11: Subclasses e Superclasses Slide 12: Especialização Slide 13: Especialização Slide 14: Especialização Slide 15 Slide 16: Generalização Slide 17: Generalização Slide 18: Características da Especialização e Generalização Slide 19: Herança Slide 20: Herança Slide 21: Representação Slide 22: Representação Slide 23: Herança... Slide 24: Herança Slide 25: Herança Slide 26: Herança (Múltiplos níveis) Slide 27: Restrições Slide 28: Restrições Slide 29: Restrições Slide 30: Restrições Slide 31: Exemplo Slide 32: Restrição de totalidade Slide 33: Especialização parcial Slide 34: Sobreposição Slide 35: Observações Slide 36: Total Disjunta Slide 37: Parcial Disjunta Slide 38: Total Sobreposta Slide 39: Parcial Sobreposta Slide 40: Total Disjunta Slide 41: Parcial Disjunta Slide 42: Total Sobreposta Slide 43: Parcial Sobreposta Slide 44: Hierarquias e Reticulados de Especialização e Generalização Slide 45: Hierarquias e Reticulados de Especialização e Generalização Slide 46: Tipos união Slide 47: Observações sobre tipos União Slide 48: Observações sobre tipos União Slide 49: Observações sobre tiposUnião Slide 50: Observações sobre tipos União Slide 51: Tipos de relacionamentos com grau maior que 2 Slide 52: Agregação Slide 53: Seria essa a opção melhor? Slide 54 Slide 55: Definições Slide 56: Definições Slide 57: Exercício Slide 58: Observações Slide 59: Observações Slide 60: Passos: Modelagem de Qualquer Problema Slide 61: Passos: Modelagem de Qualquer Problema Slide 62: Passos: Modelagem de Qualquer Problema