Prévia do material em texto
Banco de Dados Haroldo Amaral (haroldo.amaral@gmail.com) Licenciatura em Computação – 5° Período 23/02/2011 Aula 05 – O Modelo Entidade-Relacionamento (ER) O Projeto de BD A Modelagem Conceitual (Tipos) Entidade (Tipos) Relacionamentos Atributos 23/02/2011 Banco de Dados 2 23/02/2011 Banco de Dados 3 Projeto de um BD Diagrama simplificado ilustrando as principais fases do PROJETO de um Banco de Dados A Modelagem Conceitual 23/02/2011 Banco de Dados 4 O Modelo Entidade-Relacionamento (ER) 23/02/2011 Banco de Dados 5 Entidades 23/02/2011 Banco de Dados 6 Uma ENTIDADE constitui um conceito básico do modelo ER, usado para representar ‘algo’ do mundo real, com uma existência independente Pode representar um objeto com uma existência física Por exemplo, uma Pessoa, um Carro ou um Empregado Pode representar um objeto com uma existência conceitual Por exemplo, uma Empresa, um Trabalho ou um Projeto Entidades 23/02/2011 Banco de Dados 7 As propriedades (características) que a descrevem uma entidade são representadas por seus ATRIBUTOS Por exemplo, uma entidade Empregado pode ser descrita pelos atributos Nome, Endereço, Idade e FoneResidencial Cada um dos atributos de uma entidade terá um valor (ou conjunto de valores) Os valores dos atributos que descrevem cada entidade se tornarão a maior parte dos dados armazenados no BD Para cada atributo, existe um conjunto de valores permitidos – DOMÍNIO Por exemplo, o domínio do atributo Nome da entidade EMPREGADO poderia ser o conjunto de todas as strings de texto de certo tamanho Entidades 23/02/2011 Banco de Dados 8 Atributos 23/02/2011 Banco de Dados 9 O Modelo ER pode representar diversos tipos de atributos Simples vs. Composto Univalorado vs. Multivalorado Armazenado vs. Derivado Atributos Simples e Atributos Compostos 23/02/2011 Banco de Dados 10 Atributos simples (ou atômicos) são atributos que não são divisíveis em partes Atributos compostos podem ser divididos em sub-partes menores com significados independentes, representando atributos simples ou ainda atributos compostos Atributos Monovalorados e Atributos Multivalorados 23/02/2011 Banco de Dados 11 Atributos monovalorados são atributos que possuem um valor único Por exemplo, Idade é um atributo monovalorado de uma Pessoa Atributos multivalorados são atributos que podem ter um conjunto de valores Por exemplo, a Titulação de uma Pessoa pode ser um atributo multivalorado, uma vez que ela pode possuir zero ou mais títulos Um atributo multivalorado deve ter um limite inferior e superior para restringir o número de valores permitidos para cada entidade individual Atributos Armazenados e Atributos Derivados 23/02/2011 Banco de Dados 12 Em alguns casos, dois ou mais valores de atributos podem estar relacionados Por exemplo, os atributos Idade e DataNascimento de uma Pessoa Para uma entidade Pessoa, o valor da Idade pode ser determinado pela data corrente e o valor do de DataNascimento Assim, o atributo Idade é chamado de atributo derivado do atributo DataNascimento que, por sua vez, é chamado de atributo armazenado Alguns atributos podem ainda ser derivados de entidades relacionadas Por exemplo, o atributo NumeroEmpregados , de uma entidade Departamento, pode ser derivado da contagem de empregados relacionados (que trabalham) ao departamento Atributos 23/02/2011 Banco de Dados 13 Valores nulos (nulls) de atributos É possível que uma entidade possua atributos que não tenham valores aplicáveis a um(ns) dele(s) Por exemplo, o atributo Titulação pode ter um valor null para uma entidade Pessoa que não possui títulos Por exemplo, o atributo TelefoneResidencial pode ter um valor null quando não se conhece o seu valor para uma entidade Pessoa Atributos 23/02/2011 Banco de Dados 14 Atributos compostos e multivalorados podem ser aninhados de maneira arbitrária, sendo assim chamados de atributos complexos Por exemplo, o atributo EnderecoFone de uma entidade PESSOA Tipos Entidade 23/02/2011 Banco de Dados 15 Um tipo entidade define uma coleção (conjunto) de entidades que possuem os mesmos atributos, descrito pelo seu nome e seus atributos Tipos Entidade 23/02/2011 Banco de Dados 16 Por questões de simplicidade, na maioria das vezes, usamos o termo “Entidade” para denotarmos a Entidade propriamente dita e o Tipo Entidade associado Representação gráfica ER: Um tipo entidade, num diagrama ER, é representado por um retângulo, com o seu nome Os nomes dos atributos são colocados em elipses conectados por linhas retas ao seu tipo entidade Atributos compostos são conectados aos seus atributos componentes por linhas retas Atributos multivalorados são identificados por elipses duplas Tipos Entidade 23/02/2011 Banco de Dados 17 Representação gráfica – Exemplo: Empregado Nome PNome InicialM UNome Sexo SSN DataNascimento Endereço Salário Departamento Nome Número Localizações Restrições de Chave de Tipo Entidade 23/02/2011 Banco de Dados 18 Um tipo entidade, geralmente, possui um atributo (ou conjunto de atributos), cujos valores são distintos para cada entidade ATRIBUTOS-CHAVE Isso garante a propriedade de unicidade para todo o conjunto de entidades de um tipo entidade Restrições de Chave de Tipo Entidade 23/02/2011 Banco de Dados 19 Uma SUPERCHAVE é um conjunto de um ou mais atributos que, juntos, permitem identificar unicamente uma entidade de um tipo entidade Esse conceito é redundante, pois uma superchave pode conter atributos desnecessários, na garantia da unicidade Estamos interessados em superchaves para as quais nenhum subconjunto apropriado é uma superchave Essas superchaves mínimas são chamadas de CHAVES CANDIDATAS Todos os atributos componentes devem ser incluídos para garantir a propriedade de unicidade É possível haver vários conjuntos distintos de atributos que possam servir como chave candidata Restrições de Chave de Tipo Entidade 23/02/2011 Banco de Dados 20 Então, entre as possíveis chaves candidatas, temos que escolher apenas uma como o principal meio de identificar entidades dentro de um conjunto de entidades A chave candidata escolhida é chamada de CHAVE PRIMÁRIA Num diagrama ER, os atributos-chave têm seus nomes sublinhados dentro da elipse Restrições de Chave de Tipo Entidade 23/02/2011 Banco de Dados 21 Representação gráfica – Exemplo: Empregado Nome PNome InicialM UNome Sexo SSN DataNascimento Endereço Salário Departamento Nome Número Localizações Atividade 23/02/2011 Banco de Dados 22 Atividade 23/02/2011 Banco de Dados 23 A empresa está organizada em departamentos. Cada departamento tem um único nome, um único número e um empregado que gerencia o departamento. Temos a data em que o empregado começou a gerenciar o departamento. E este pode ter diversas localizações Um departamento controla um número qualquer de projetos, cada qual com um único nome, um único número e uma localização Armazenamos o nome de cada empregado, o número do seguro social, endereço, salário, sexo e data de nascimento. Um empregado está alocado a um departamento, mas pode trabalhar em diversos projetos que não são controlados, necessariamente, pelo mesmo departamento. Controlamos o número de horas semanais que um empregado trabalha em cada projeto. Também controlamos o supervisor direto de cada empregado Queremos ter controle dos dependentes de cada empregado para fins de seguro. Guardamos o primeiro nome, sexo, data de nascimento de cada dependente e o parentesco com o empregado Atividade 23/02/2011 Banco de Dados 24 Observações: O modelo ER, por ser uma abstração de alto nível, nem sempre conseguimos modelar qualquer realidade O único conceito que temos, até o momento, é o de entidade e seus atributos Assim, precisamos modelar o minimundo, com o máximo de exatidão, apenas com esse conceito do modelo ER À medida que formos vendo outros conceitos do modelo ER, refinamos o projeto, tornando a modelagem mais próximada realidade Após análise do minimundo, identificamos quatro tipos de entidades: Atividade 23/02/2011 Banco de Dados 25 Um tipo entidade DEPARTAMENTO, com os atributos Nome, Número, Localizações, Gerente e DataInícioGerência. O atributo Localizações é o único multivalorado. Nome e Número são atributos-chave (separados e não compostos), pois foram definidos como únicos (não existe mais de um com o mesmo valor) Atividade 23/02/2011 Banco de Dados 26 Um tipo entidade PROJETO, com os atributos Nome, Número, Localização e DepartamentoControle. Nome e Número são atributos-chave (separados) Atividade 23/02/2011 Banco de Dados 27 Um tipo entidade EMPREGADO, com os atributos Nome, SSN, Sexo, Endereço, Salário, DataNascimento, Departamento e Supervisor. Nome (PrimeiroNome, InicialMeio, ÚltimoNome) e Endereço (Rua, Número, Apto, Cidade, Estado, CEP) podem ser atributos compostos; no entanto, isso não foi especificado nos requisitos Como representar o fato de um empregado poder trabalhar em diversos projetos e o número de horas semanais trabalhadas? Pode ser representada por um atributo composto multivalorado de EMPREGADO, chamado TrabalhaEm, com os componentes simples (Projeto, Horas) Outra alternativa seria representar por um atributo composto multivalorado de PROJETO, chamado Trabalhadores, com os componentes simples (Empregado, Horas) Atividade 23/02/2011 Banco de Dados 28 Atividade 23/02/2011 Banco de Dados 29 Um tipo entidade DEPENDENTE, com os atributos Empregado, NomeDependente, Sexo, DataNascimento e Parentesco Relacionamentos 23/02/2011 Banco de Dados 30 Relacionamentos 23/02/2011 Banco de Dados 31 Relacionamentos 23/02/2011 Banco de Dados 32 Quando um atributo de uma entidade referencia outra entidade, há um relacionamento De acordo com o exemplo: O atributo Gerente, de DEPARTAMENTO, corresponde a um empregado que gerencia o departamento O atributo DepartamentoControle, de PROJETO, diz respeito ao departamento que controla o projeto O atributo Supervisor, de EMPREGADO, refere-se a outro empregado O atributo Departamento, de EMPREGADO, corresponde ao departamento no qual o empregado trabalha ... Relacionamentos 23/02/2011 Banco de Dados 33 No projeto inicial dos tipos entidade, os RELACIONAMENTOS são capturados na forma de atributos À medida que o projeto é refinado, esses atributos são convertidos em relacionamentos entre as entidades Assim, no modelo ER, todas as referências citadas no exemplo deveriam ser representadas por RELACIONAMENTOS e não por atributos Os RELACIONAMENTOS constituem um conceito do Modelo ER para expressar associações entre duas ou mais ENTIDADES Tipos Relacionamento 23/02/2011 Banco de Dados 34 Da mesma forma que definimos um tipo entidade, um tipo relacionamento R entre n tipos entidade E1, E2, ..., En define um conjunto de associações (ou conjunto de relacionamentos) entre essas entidades Matematicamente, O conjunto de relacionamentos R é um conjunto de instâncias de relacionamento ri, tal que, cada ri associa-se a n entidades individuais (e1, e2, ..., en) Cada entidade ej em ri é um membro do tipo entidade Ej, 1 j n Cada um dos tipos entidade participantes E1, E2, ..., En é dito participante do tipo relacionamento R Cada uma das entidades individuais e1, e2, ..., en é conhecida como participante da instância de relacionamento ri Grau de um Tipo Relacionamento 23/02/2011 Banco de Dados 35 O grau de um tipo relacionamento é o número de entidades que participam dele Nesse sentido, podemos distinguir dois tipos de relacionamentos: Relacionamentos Binários Aqueles que envolvem apenas duas entidades Relacionamentos N-ários Aqueles que envolvem mais de duas entidades Normalmente, considera-se apenas relacionamentos com grau três – relacionamentos ternários Os relacionamentos com grau maior que dois são mais complexos e devem ser evitados Tipos Relacionamento 23/02/2011 Banco de Dados 36 Exemplo de relacionamento binário: Algumas instâncias no conjunto de relacionamentos TRABALHA_PARA, que representa um tipo relacionamento entre EMPREGADO e DEPARTAMENTO Tipos Relacionamento 23/02/2011 Banco de Dados 37 Nos diagramas ER, os tipos relacionamento são representados por losangos, com seu nome, onde os tipos entidade são conectados ao tipo relacionamento por linhas retas Empregado Nome PNome InicialM UNome Sexo SSN DataNascimento Endereço Salário Departamento Nome Número Localizações TRABALHA_PARA Grau de um Tipo Relacionamento 23/02/2011 Banco de Dados 38 Exemplo de relacionamento ternário (veremos em breve): Algumas instâncias de relacionamento no conjunto de relacionamentos ternário FORNECE Tipos Relacionamento Recursivos 23/02/2011 Banco de Dados 39 Cada tipo entidade que participa de um tipo relacionamento exerce um papel Quando os tipos entidade participantes são distintos, os nomes dos papéis não são necessários, uma vez que o próprio tipo entidade identifica o seu papel Entretanto, quando os tipos entidade são os mesmos, o nome do papel é essencial para definir o sentido de participação Esses tipos relacionamentos são chamados RELACIONAMENTO RECURSIVOS (ou AUTO-RELACIONAMENTOS) Tipos Relacionamento Recursivos 23/02/2011 Banco de Dados 40 Exemplo: Um relacionamento recursivo SUPERVISÃO entre EMPREGADO, no papel de supervisor (1), e EMPREGADO, no papel de subordinado (2) Tipos Relacionamento Recursivos 23/02/2011 Banco de Dados 41 Exemplo: Empregado Nome PNome InicialM UNome Sexo SSN DataNascimento Endereço Salário SUPERVISÃO Supervisor Supervisiona Papéis Restrições sobre Tipos Relacionamento 23/02/2011 Banco de Dados 42 Restrições sobre relacionamentos limitam a possibilidade de combinações das entidades participantes Essas restrições são determinadas no minimundo Dois tipo restrições podem ser definidas: Razão de cardinalidade Restrições de participação Restrições de Cardinalidade 23/02/2011 Banco de Dados 43 Especifica o número MÁXIMO de instâncias de relacionamento em que uma entidade pode participar Considerando um conjunto de relacionamentos binário R entre conjuntos de entidades A e B, a cardinalidade máxima pode ser ... Restrições de Cardinalidade 23/02/2011 Banco de Dados 44 Restrições de Cardinalidade 23/02/2011 Banco de Dados 45 Exemplo: Relacionamento GERENCIA 1:1 Restrições de Cardinalidade 23/02/2011 Banco de Dados 46 Restrições de Cardinalidade 23/02/2011 Banco de Dados 47 Exemplo: Um relacionamento SUPERVISÃO 1:N de supervisor para subordinado Restrições de Cardinalidade 23/02/2011 Banco de Dados 48 Restrições de Cardinalidade 23/02/2011 Banco de Dados 49 Exemplo: Um relacionamento TRABALHA_PARA N:1 Restrições de Cardinalidade 23/02/2011 Banco de Dados 50 Restrições de Cardinalidade 23/02/2011 Banco de Dados 51 Exemplo: Um relacionamento TRABALHA_EM M:N Restrições de Cardinalidade 23/02/2011 Banco de Dados 52 As razões de cardinalidade para relacionamentos binários, nos diagramas ER, são representadas pela exibição de 1, M ou N nos losangos Empregado Nome PNome InicialM UNome Sexo SSN DataNascimento Endereço Salário Departamento Nome Número Localizações TRABALHA_PARA 1 N Restrições de Participação 23/02/2011 Banco de Dados 53 A restrição de participação determina se a existência de uma entidade depende dela estar relacionada à outra entidade, por meio do tipo relacionamento Essa restrição determina o número MÍNIMO de instâncias de relacionamento em que cada entidade pode participar Também chamada de restrição de cardinalidade MÍNIMA Restrições de Participação 23/02/2011 Banco de Dados 54 Nesse sentido, a participação de um conjunto de entidades E num conjunto de relacionamentos R pode ser: Total (ou dependência de existência) Se todas as entidades em E participam em pelo menos um relacionamento em R Participação obrigatória Representada pela exibição de 1 Parcial Se apenas algumasentidades em E participam em relacionamentos em R Participação opcional Representada pela exibição de 0 Restrições de Participação 23/02/2011 Banco de Dados 55 Exemplo: Participação Total de EMPREGADO no relacionamento TRABALHA_PARA Restrições de Participação 23/02/2011 Banco de Dados 56 Exemplo: Participação Parcial de EMPREGADO no relacionamento GERENCIA Restrições Estruturais 23/02/2011 Banco de Dados 57 As razões de cardinalidade e restrições de participação, juntas, definem as RESTRIÇÕES ESTRUTURAIS de um tipo relacionamento Nos diagramas ER: A participação total é exibida como uma linha dupla conectada ao tipo entidade participante do relacionamento A participação parcial é representada por uma linha única OU As restrições estruturais (cardinalidades máxima e mínima) são representadas por um par, onde o primeiro valor indica a cardinalidade mínima e o segundo valor indica a cardinalidade máxima Restrições Estruturais 23/02/2011 Banco de Dados 58 Exemplo: Empregado Nome PNome InicialM UNome Sexo SSN DataNascimento Endereço Salário Departamento Nome Número Localizações TRABALHA_PARA 1 N CONTROLA Projeto Nome Número Localização 1 N Restrições Estruturais 23/02/2011 Banco de Dados 59 Exemplo: Empregado Nome PNome InicialM UNome Sexo SSN DataNascimento Endereço Salário Departamento Nome Número Localizações TRABALHA_PARA (1, 1) (1, N) CONTROLA Projeto Nome Número Localização (1, 1) (0, N) Atributos de Tipos Relacionamento 23/02/2011 Banco de Dados 60 Os tipos relacionamento também podem ter atributos, similares aos atributos dos tipos entidade Atributos de tipos relacionamento M:N são determinados pela combinação de entidades participantes de uma instância de relacionamento, e não por uma entidade única Por exemplo, o atributo Horas, no relacionamento TRABALHA_EM, entre EMPREGADO e PROJETO, é determinado por uma combinação empregado-projeto, e não separadamente por qualquer uma das entidades Atributos de Tipos Relacionamento 23/02/2011 Banco de Dados 61 Exemplo: Atributo Horas do relacionamento M:N TRABALHA_EM entre EMPREGADO e PROJETO Atributos de Tipos Relacionamento 23/02/2011 Banco de Dados 62 Atributos de relacionamento 1:1 podem ser migrados para um dos tipos entidade participantes Por exemplo, para um tipo relacionamento GERENCIA entre os tipos entidade EMPREGADO e DEPARTAMENTO, o atributo DataInício pode ser atributo tanto de EMPREGADO quanto de DEPARTAMENTO Toda entidade departamento ou empregado participa de, pelo menos, uma instância do relacionamento Portanto, o valor do atributo DataInício pode ser determinado pela entidade departamento ou pela entidade empregado Atributos de Tipos Relacionamento 23/02/2011 Banco de Dados 63 Exemplo: Atributo DataInício do relacionamento 1:1 GERENCIA entre EMPREGADO e DEPARTAMENTO (DataInício) (DataInício) (DataInício) Atributos de Tipos Relacionamento 23/02/2011 Banco de Dados 64 Atributos de relacionamento 1:N (ou N:1) podem ser migrados apenas para o tipo entidade do lado N do relacionamento Por exemplo, para um tipo relacionamento TRABALHA_PARA entre os tipos entidade EMPREGADO e DEPARTAMENTO, o atributo DataInício pode ser atributo de EMPREGADO Indica quando um empregado começou a trabalhar para um departamento Cada empregado trabalha apenas para um departamento, portanto, participa de pelo menos uma instância do relacionamento TRABALHA_PARA Atributos de Tipos Relacionamento 23/02/2011 Banco de Dados 65 Exemplo: Participação Total de EMPREGADO no relacionamento TRABALHA_PARA (DataInício) (DataInício) Tipos Entidade Fraca 23/02/2011 Banco de Dados 66 Tipos entidade que não possuem seus próprios atributos-chave Entidades que pertencem a um tipo entidade fraca são identificadas por estarem RELACIONADAS a entidades específicas de outro tipo entidade, pela combinação de valores de seus atributos Esse outro tipo entidade é chamado de tipo entidade IDENTIFICADOR ou tipo entidade PROPRIETÁRIA O tipo relacionamento entre o tipo entidade fraca e seu tipo proprietário de RELACIONAMENTO IDENTIFICADOR do tipo entidade fraca Tipos Entidade Fraca 23/02/2011 Banco de Dados 67 Um tipo entidade fraca sempre possui uma restrição de participação total em relação ao seu relacionamento identificador Ou seja, uma entidade fraca não poderá ser identificada sem um tipo proprietário Um tipo entidade fraca, normalmente, possui uma CHAVE PARCIAL, que é um conjunto de atributos que identifica, de modo exclusivo, as entidades fracas que estão relacionadas a uma mesma entidade proprietária Tipos Entidade Fraca 23/02/2011 Banco de Dados 68 Em diagramas ER, tanto o tipo entidade fraca quanto seu relacionamento identificador serão representados pela borda dupla no retângulo e no losango Empregado Nome PNome InicialM UNome Sexo SSN DataNascimento Endereço Salário DEPENDENTE Nome Sexo DataNascimento DEPENDENTE_DE N 1 Parentesco Atividade 23/02/2011 Banco de Dados 69 Podemos, agora, refinar o projeto de BD do exercício anterior, mudando os atributos que representam relacionamento para tipos relacionamento Os seguintes tipos relacionamento são especificados ... Atividade 23/02/2011 Banco de Dados 70 GERENCIA, tipo relacionamento 1:1 entre EMPREGADO e DEPARTAMENTO. A participação de EMPREGADO é parcial e a de DEPARTAMENTO é total. O atributo DataInício é designado ao tipo relacionamento TRABALHA_PARA, tipo relacionamento 1:N entre DEPARTAMENTO e EMPREGADO. Ambas as participações são totais CONTROLA, tipo relacionamento 1:N entre DEPARTAMENTO e PROJETO. A participação de PROJETO é total, enquanto a de DEPARTAMENTO é parcial Atividade 23/02/2011 Banco de Dados 71 SUPERVISÃO, tipo relacionamento 1:N entre EMPREGADO (no papel de supervisor) e EMPREGADO (no papel de supervisionado). Ambas as participações são parciais TRABALHA_EM, tipo relacionamento M:N entre EMPREGADO e PROJETO, com o atributo Horas. Ambas as participações são totais DEPENDE_DE, tipo relacionamento 1:N entre EMPREGADO e DEPENDENTE, que também é o relacionamento identificador para o tipo entidade fraca DEPENDENTE. A participação de EMPREGADO é parcial e a de DEPENDENTE é total 23/02/2011 Banco de Dados 72 Um diagrama do esquema ER para o banco de dados EMPRESA 23/02/2011 Banco de Dados 73 Um diagrama do esquema ER para o banco de dados EMPRESA, com as restrições estruturais usando a notação (min, max) (0,N) (1,1) (0,N) (1,1) (0,N) (0,1) (0,1) (1,1) (1,1) (4,N) Referências Usadas 23/02/2011 Banco de Dados 74