Conteúdo do curso Modelos conceituais Universidade Estadual de Campinas - UNICAMP Instituto de Computação - IC MC536 – Bancos de Dados: Teoria e Prática Aula #3 – Modelos conceituais: MER e MER Estendido Profs. Anderson Rocha e André Santanchè Campinas, 1 de Agosto de 2012 Anderson Rocha Arquitetura de Banco de Dados 1/44 Conteúdo do curso Modelos conceituais Conteúdo do curso 1. Introdução: arquitetura de banco de dados. 2. Modelos de dados: modelagem e abstrações. 3. Modelos conceituais: modelo entidade-relacionamento (ER) básico e estendido. 4. Modelo relacional: definições e formalização. 5. Mapeamento do modelo ER para o modelo relacional. 6. Dependências funcionais e normalização. 7. Linguagens de definição e de manipulação de dados. I I Álgebra relacional; Cálculo relacional. 8. Processamento de consultas. 9. Controle de concorrência. 10. Mecanismos de proteção e recuperação. Anderson Rocha Arquitetura de Banco de Dados 2/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Modelagem de dados usando o modelo ER I O modelo Entidade/Relacionamento (ER) é um modelo de dados conceitual de alto nı́vel. I Utilizado para o projeto conceitual dos dados. Precisa de informações das especificações das operações básicas feitas pelos usuários finais I I I Especificação de requisitos. Criado em 1976 por Peter Chen. Anderson Rocha Arquitetura de Banco de Dados 3/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Abordagem Entidade-Relacionamento I Modelo de dados é representado através de um modelo entidade-relacionamento (MER). I MER é representado graficamente por um diagrama de entidade-relacionamento (DER). Anderson Rocha Arquitetura de Banco de Dados 4/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Conceitos básicos do modelo ER (1) Conceito Definição São conjuntos de instâncias, objetos Entidade da realidade modelada. São ações que interagem com as enRelacionamento tidades. São caracterı́sticas comuns às Atributos instâncias que formam entidades/relacionamentos. Restrição imposta às entidades e aos relacionamentos, onde todas as instâncias de 1 entidade têm que esTotalidade tar relacionadas a instâncias da outra entidade envolvida no relacionamento Anderson Rocha Arquitetura de Banco de Dados 5/44 Sı́mbolo Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Conceitos básicos do modelo ER (2) I Entidades são objetos ou “coisas” do mundo real que possuem uma existência independente e são de interesse para uma determinada aplicação. I Atributos são propriedades usadas para descrever uma entidade/relacionamento. Anderson Rocha Arquitetura de Banco de Dados 6/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Conceitos básicos do modelo ER (3) Figura: Entidade Livros, é composta pelos atributos Código, Tı́tulo e Idioma. Anderson Rocha Arquitetura de Banco de Dados 7/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Atributos (1) I Simples: geralmente é só um conjunto de caracteres. I Compostos: formado pelo conjunto de n atributos simples. Exemplo: Endereço = rua + número + bairro. Figura: Atributo composto. Anderson Rocha Arquitetura de Banco de Dados 8/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Atributos (2) I Monovalorados: cada atributo possui uma instância. I Multivalorados: um atributo pode possuir n instâncias, por exemplo um livro que possui várias edições. Neste caso, edições seria um atributo multivalorado de livros. Exemplo: Figura: Atributo multivalorado. Anderson Rocha Arquitetura de Banco de Dados 9/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Atributos (3) I Armazenados-básicos: são os atributos comuns desenhados explicitamente no modelo ER). I Derivados: não são armazenados no BD, possuem valores calculados quando necessário e são representados por linha tracejada. Exemplo: lucro da venda de um livro pode ser calculado já que existem os valores de preço de venda e de custo. Figura: Atributo derivado. I Cada atributo de um tipo de entidade possui um conjunto de valores, ou domı́nio. Anderson Rocha Arquitetura de Banco de Dados 10/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Atributo Identificador (Chave) (1) I Atributo (ou combinação de atributos) que identifica univocamente uma instância de entidade. I Atributo identificador pode ser composto. I Uma entidade pode tem mais de um atributo identificador. Anderson Rocha Arquitetura de Banco de Dados 11/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Atributo Identificador (Chave) (2) Figura: Atributos identificadores. Anderson Rocha Arquitetura de Banco de Dados 12/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Atributo Identificador (Chave) (3) I O conceito de chave foi introduzido por Peter Chen em 1976, com o motivo de identificar uma instância. I Porém a chave deve ser vista de forma mais ampla, como uma restrição de integridade. Para o conceito de chave deve-se entender que a instância é única. I O valor de um atributo que é chave não pode se repetir dentro do conjunto de todas as instâncias da entidade. Anderson Rocha Arquitetura de Banco de Dados 13/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Relacionamento (1) I Um relacionamento é uma associação entre duas ou mais entidades distintas (ou instâncias da entidade), com um determinado significado. I Exemplo: Empregado João Trabalha Em Departamento Pesquisa. I Um tipo de relacionamento R entre n tipos de entidades e1 , e2 , . . . , en define um conjunto de associações entre entidades desse tipo. Anderson Rocha Arquitetura de Banco de Dados 14/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Auto-Relacionamento I Relacionamento entre instâncias da mesma entidade. I Instâncias participam com papéis diferentes. Anderson Rocha Arquitetura de Banco de Dados 15/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Grau de relacionamento (1) I O grau de um relacionamento é o número de entidades participantes 1. Unários; 2. Binários; 3. Ternários. Anderson Rocha Arquitetura de Banco de Dados 16/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Grau de relacionamento (2) Figura: Relacionamento unário. Anderson Rocha Arquitetura de Banco de Dados 17/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Grau de relacionamento (3) Figura: Relacionamento binário. Anderson Rocha Arquitetura de Banco de Dados 18/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Grau de relacionamento (4) Figura: Relacionamento ternário. Anderson Rocha Arquitetura de Banco de Dados 19/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Relacionamento I Mais do que um relacionamento pode existir entre as mesmas entidades. Anderson Rocha Arquitetura de Banco de Dados 20/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Restrições sobre tipos de relacionamento (1) I Relação de cardinalidade – especifica o número de instâncias de um tipo de relacionamento que uma entidade pode participar. I I Pode ser: 1 para 1 (1:1), 1 para n (1:n), n para 1 (n:1) ou n para n (n:n). Relação de participação – especifica se a existência das entidades dependem de ela estar associada ou não a outra entidade. Pode ser chamada de obrigatória (total) ou opcional (parcial). Anderson Rocha Arquitetura de Banco de Dados 21/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Restrições sobre tipos de relacionamento (2) I CARDINALIDADE + PARTICIPAÇÃO = RESTRIÇÕES ESTRUTURAIS. I As restrições estruturais definem como as entidades serão representadas, ou seja, a participação mı́nima e máxima das instâncias dos tipos de entidades nos relacionamentos. Anderson Rocha Arquitetura de Banco de Dados 22/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Cardinalidade máxima I Um-para-um (1:1). I Um-para-muitos (1:N) ou muitos-para-um (N:1). I Muitos-para-muitos (N:M). Anderson Rocha Arquitetura de Banco de Dados 23/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Relacionamento N : 1 Figura: Relacionamento N : 1. Anderson Rocha Arquitetura de Banco de Dados 24/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Relacionamento N : M Figura: Relacionamento N : M. Anderson Rocha Arquitetura de Banco de Dados 25/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Cardinalidade mı́nima (1) I Também chamada de restrição de participação ou restrição de dependência de existência. I I Zero (participação opcional, existência não dependente) “Associação opcional”. Um ou muitos (participação obrigatória, existência dependente) “Associação obrigatória”. Anderson Rocha Arquitetura de Banco de Dados 26/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Cardinalidade mı́nima (2) I Especificada em cada participação de uma entidade E em um relacionamento R. I Especifica que cada entidade e ∈ E se relaciona com no mı́nimo min e no máximo max instâncias do relacionamento em R. I Padrão (sem restrição): min = 0, max = n. I Deve ter min ≤ max, min ≥ 0, max ≥ 1. I Derivada do conhecimento do domı́nio da aplicação. Anderson Rocha Arquitetura de Banco de Dados 27/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Cardinalidade mı́nima (3) Figura: Exemplo de cardinalidade mı́nima e máxima. Anderson Rocha Arquitetura de Banco de Dados 28/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Cardinalidade mı́nima (3) Figura: Exemplo de cardinalidade mı́nima e máxima. Anderson Rocha Arquitetura de Banco de Dados 29/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Entidade Associativa (1) I Tipo de entidade que associa instâncias de um ou mais tipos de entidades e contém atributos que são peculiares para o relacionamento. Anderson Rocha Arquitetura de Banco de Dados 30/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Entidade Associativa (2) I Como identificar? I I I I Relacionamento do tipo N : M; A entidade associativa tem significado independente; Tem um ou mais atributos; Participa de um ou mais relacionamentos independentemente das entidades do relacionamento associado. Anderson Rocha Arquitetura de Banco de Dados 31/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Entidade Associativa (3) Anderson Rocha Arquitetura de Banco de Dados 32/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Entidade Associativa (4) Anderson Rocha Arquitetura de Banco de Dados 33/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Exercı́cios (1) I Uma pequena locadora de vı́deos possui cerca de 2.000 fitas de vı́deo, cujo empréstimo deve ser controlado. I Cada fita possui um número. I Para cada filme, é necessário saber seu tı́tulo e sua categoria (comédia, drama, aventura, . . . ). I Cada filme recebe um identificador próprio. Para cada fita é controlado que filme ela contém. I Para cada filme há pelo menos uma fita, e cada fita contém somente um filme. I Alguns poucos filmes necessitam duas fitas. I Os clientes podem desejar encontrar os filmes estrelados pelo seu ator predileto. Por isso, é necessário manter a informação dos atores que atuam em cada filme. Anderson Rocha Arquitetura de Banco de Dados 34/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Exercı́cios (2) I Nem todo filme possui atores considerados “estrelas”. I Os clientes, às vezes, desejam receber referências de determinado ator, tais como o nome real, a data de nascimento, etc. I A locadora possui muitos clientes cadastrados. I Somente clientes cadastrados podem alugar fitas. I Para cada cliente é necessário saber seu pré-nome e seu sobrenome, seu telefone e seu endereço. I Cada cliente recebe um número de associado. I Desejamos saber quais fitas estão locadas por um dado cliente. I Um cliente pode locar várias fitas ao mesmo tempo. Não são mantidos registros históricos de aluguéis. Anderson Rocha Arquitetura de Banco de Dados 35/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Solução Figura: Uma solução possı́vel para o problema da videolocadora. Anderson Rocha Arquitetura de Banco de Dados 36/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) MER estendido I I Inclui todos os conceitos do MER básico. Conceitos adicionais 1. 2. 3. 4. Subclasses/Superclasses; Especialização/Generalização; Herança de atributos; Agregação Anderson Rocha Arquitetura de Banco de Dados 37/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Subclasses e superclasses I Uma entidade pode ter subgrupos adicionais de suas entidades. I Uma entidade que é membro de uma subclasse herda todos os atributos e relacionamentos da entidade superclasse. I Processos de Especialização e Generalização. Anderson Rocha Arquitetura de Banco de Dados 38/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Restrição de não-sobreposição I I Conhecida como Disjointness Constraint. Especifica que as subclasses da especialização sejam disjuntas I I I Uma entidade pode ser um membro de no máximo uma subclasse da especialização; Representação: d no diagrama EER. Se não é disjunto, há sobreposição I I A mesma instância pode ser membro de mais de uma subclasse da especialização; Representação: o no diagrama EER. Anderson Rocha Arquitetura de Banco de Dados 39/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Restrição de Completude I I Conhecida como Completeness Constraint. Total I I I Especifica que toda instância na superclasse deve ser membro de alguma subclasse; Representação: t no diagrama EER. Parcial I I Permite que uma entidade não pertença a nenhuma das subclasses; Representação: p no diagrama EER. Anderson Rocha Arquitetura de Banco de Dados 40/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Generalização Figura: Exemplo de generalização. Anderson Rocha Arquitetura de Banco de Dados 41/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Agregação I Agrega duas ou mais entidades em “conceito” (entidade) de mais alto nı́vel. Figura: Exemplo de agregação. Anderson Rocha Arquitetura de Banco de Dados 42/44 Conteúdo do curso Modelos conceituais Anderson Rocha MER básico (ER) MER estendido (EER) Arquitetura de Banco de Dados 43/44 Conteúdo do curso Modelos conceituais MER básico (ER) MER estendido (EER) Dúvidas? Figura: O pensador - Auguste Rodin. Anderson Rocha Arquitetura de Banco de Dados 44/44