Roteiro Modelagem de Dados: Usando o Modelo Entidade-Relacionamento Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto [email protected] www.decom.ufop.br/luiz Posicionamento Modelagem de Dados: Usando o Modelo Entidade-Relacionamento Uma Aplicação Exemplo de Banco de Dados Tipos de Entidade, Conjuntos de Entidade e Atributos-Chave Tipos de Relacionamento, Funções e Restrições Estruturais Tipo de Entidade Fraca BCC321 - Banco de Dados I Ementa 1. Conceitos básicos em sistemas de banco de dados. 2. Conceitos e arquitetura de sistemas de banco de dados. 3. Modelagem conceitual de dados. 4. Modelo Relacional: conceitos básicos e restrições de integridade. 5. Linguagens: álgebra e cálculo relacional. 6. A linguagem SQL e o uso de APIs. 7. Projeto de banco de dados. 8. Normalização de banco de dados. 9. Noções de processamento de transações, concorrência e recuperação de falhas. 10. Aspectos de implementação de banco de dados. Processo de Projeto de Banco de Dados EMPRESA: Exemplo de uma Aplicação de Banco de Dados EMPRESA: Exemplo de uma Aplicação de Banco de Dados Descrição do “minimundo” Descrição do “minimundo” I I I I I I I A empresa está organizada em departamentos. Cada projeto tem um nome exclusivo, um número exclusivo e uma única localização. Armazenamos o nome de cada funcionário, o número do cpf, endereço, salário, sexo e data de nascimento. I Cada depto tem um nome exclusivo, um número exclusivo e um funcionário que o gerencia. Temos a data que cada funcionário começou a gerenciar o depto. O depto pode ter diversas localizações. Um depto controla um número qualquer de projetos. I I I Queremos ter o controle dos dependentes de cada funcionário. I Diagrama do Esquema ER para o Banco de Dados EMPRESA Um funcionário está alocado a um depto, mas pode trabalhar em diversos projetos que não são controlados, necessariamente, pelo mesmo depto. Controlamos o número de horas semanais que o funcionário trabalha em cada projeto. Controlamos o supervisor direto de cada funcionário. Guardamos o primeiro nome, sexo, data de nascimento e o seu parentesco com o funcionário. Entidades e Atributos Entidades e Atributos I Entidade: objeto básico que o modelo ER representa (“algo” do mundo real). I Atributos: propriedades particulares que descrevem a entidade. Tipos de Atributos Atributos Simples (Atômicos) versus Compostos I Simples (atômicos): não são divisíveis. I Compostos: podem ser divididos em subpartes menores. I I Exemplos: I Simples versus Composto. I I Univalorado versus Multivalorado. I Armazenado versus Derivado. Atributos Monovalorados versus Multivalorados I Monovalorados: têm um valor único para uma dada entidade. I I Atributos Armazenados versus Derivados I I Ex.: Titulação – pessoas podem ter mais de um título acadêmico. Um atributo multivalorado pode ter limites inferior e superior para restringir o número de valores permitidos para cada entidade. Dois ou mais valores de atributos estão relacionados. I Ex.: Idade é um atributo monovalorado de uma pessoa. Multivalorados: podem ter um conjunto de valores para a mesma entidade. I atributo Endereço pode ser subdividido em EndereçoRua, Cidade, Estado e CEP. atributo Nome pode ser subdividido em PrimeiroNome e Sobrenome. I Ex.: os atributos Idade e DataNascimento de uma pessoa. O valor de Idade (atributo derivado) pode ser determinado a partir do valor de DataNascimento (atributo armazenado). Valores de atributos derivados de entidades relacionadas. Ex.: atributo NumerodeFuncionários, de uma entidade departamento, derivado da contagem do número de funcionários que trabalham nesse departamento. Atributos Tipos de Entidade e Conjuntos de Entidade I Tipo de entidade: define um conjunto de entidades que possuem os mesmos atributos. I Conjunto de entidades: é a coleção de todas as entidades de um tipo de entidade em particular. I I Atributos Complexos = atributos compostos e multivalorados. Cada tipo de entidade é descrito por seu nome e atributos. {EndereçoFone( {Fone(CodigoArea,NumeroFone)} , Endereço(EndereçoRua(Numero,Rua,Apartamento),Cidade,Estado,CEP))} I Valores Nulls (Nulos): I I Entidade não tem um valor aplicável a um atributo. Ex.: atributo Apartamento. Não se conhece o valor de um atributo para uma entidade. Tipos de Entidade e Conjuntos de Entidade I Nos diagramas ER: I I I Atributo-chave de um Tipo de Entidade I Um tipo de entidade é representado como uma caixa retangular (incluindo seu nome). Os nomes dos atributos são colocados em elipses e conectados ao seu tipo de entidade por linhas retas. Os atributos multivalorados são identificados por elipses duplas. Numero Nome I Uma restrição das entidades é a chave (restrição de exclusividade). Atributo cujos valores são distintos para cada uma das entidades. I I I Localizacoes Diversos atributos formando uma chave (chave composta): a combinação dos valores dos atributos deve ser distinta para cada entidade. I DEPARTAMENTO Numero_funcionarios I Ex.: atributo Nome para o tipo de entidade EMPRESA. Ex.: atributo CPF para o tipo de entidade FUNCIONARIO. Ex.: atributo Registro(NumeroRegistro,Estado) é uma chave composta para o tipo de entidade CARRO. Nenhum dos dois atributos componentes simples (NumeroRegistro,Estado), sozinho, é uma chave. Na notação diagramática ER, cada atributo-chave tem seu nome sublinhado dentro da elipse. Domínio de um Atributo I I Conjunto de valores válidos que podem ser atribuídos a um atributo para cada entidade. Exemplo: I I I Tipo de entidade FUNCIONARIO – atributo Idade: conjunto de números inteiros entre 16 e 70. Tipo de entidade FUNCIONARIO – atributo Nome: conjunto de strings de caracteres alfabéticos, separados por caracteres de espaço. Os domínios dos atributos não são mostrados nos diagramas ER. Projeto Conceitual Inicial do Banco de Dados EMPRESA DEPARTAMENTO Nome, Numero, {Localizacoes}, Gerente, DataInicioGerencia PROJETO Nome, Numero, Localizacao, DepartamentoControle FUNCIONARIO Nome(Pnome,Minicial,Unome), Cpf, Sexo, Endereco, Salario, Datanasc, Departamento, Supervisor, {Trabalha_Para(Projeto,Horas)} DEPENDENTE Funcionário, NomeDependente, Sexo, Data_nascimento, Parentesco Refinando o Projeto Conceitual Inicial I I O projeto conceitual apresentado até aqui ainda não está finalizado. O modelo ER possui três conceitos: I I I I I Entidades. Atributos. Relacionamentos. Relacionamentos I I Associações entre duas ou mais entidades distintas com um significado. Exemplos: I FUNCIONARIO José Trabalha_em PROJETO Beta. I FUNCIONARIO Manoel Gerencia DEPARTAMENTO Finanças. I DEPARTAMENTO Pessoal Controla PROJETO Crescer. Ele será refinado após a apresentação do conceito de relacionamento. Alguns aspectos dos requisitos serão representados como relacionamentos. Tipo de Relacionamento Tipo de relacionamento TRABALHA_PARA I Define um conjunto de associações (relacionamentos) entre n tipos de entidade E1 , E2 , . . . , En . I Matematicamente, um tipo de relacionamento R é um conjunto de (instâncias de) relacionamentos ri , em que cada ri associa-se a n entidades individuais (e1 , e2 , . . . , en ) e cada entidade ej pertence a um tipo de entidade Ej . I Diagrama ER: I I ri = (e1 , e2 , . . . , en ) R ∈ E1 × E2 × . . . × En FUNCIONARIO TRABALHA PARA DEPARTAMENTO Grau de um Tipo de Relacionamento I I Nomes de Função e Relacionamentos Recursivos É o número de tipos de entidade que participam do relacionamento. Exemplos: I I Relacionamento TRABALHA_PARA é de grau dois (binário). A seguir, um exemplo de relacionamento de grau três (ternário). I Cada tipo de entidade que participa de um tipo de relacionamento executa uma função. I Significado da função é dado por um nome, atribuído a cada tipo de entidade. I I Exemplo: No tipo de relacionamento TRABALHA_PARA, FUNCIONARIO executa a função de trabalhador, e DEPARTAMENTO desempenha a função de empregador. Nomes de Função e Relacionamentos Recursivos I O mesmo tipo de entidade pode participar mais de uma vez em um tipo de relacionamento em funções diferentes → relacionamento recursivo. I Restrições em Tipos de Relacionamento I Limitam a possibilidade de combinações de entidades que podem participar no conjunto de relacionamentos. I Exemplo: Cada funcionário tem que trabalhar para exatamente um departamento. Tipos de restrições: Exemplo: I I Razão de Cardinalidade: especifica o número máximo de instâncias de relacionamento em que uma entidade pode participar1 . I I 1 Relacionamento GERENCIA, 1:1 Ex.: relacionamento binário TRABALHA_PARA, DEPARTAMENTO:FUNCIONARIO tem razão de cardinalidade 1:N. Razões de cardinalidade possíveis: 1:1, 1:N, N:1, M:N. válido para um relacionamento binário Relacionamento TRABALHA_EM, M:N Restrições em Tipos de Relacionamento I I I Participação: determina o número mínimo de instâncias de relacionamento em que cada entidade pode participar (restrição de cardinalidade mínima). Tipos de restrições de participação: I I I I Total (dependência de existência). Ex.: Todo funcionário deve TRABALHAR_PARA um departamento. Uma entidade funcionário pode existir apenas se participar de, pelo menos, uma instância de relacionamento TRABALHA_PARA. Parcial. Ex.: Nem todo funcionário GERENCIA um departamento. Razão de Cardinalidade + Restrição de Participação ⇒ Restrições Estruturais. Nos diagramas ER: participação total (linha dupla) e participação parcial (linha simples). FUNCIONARIO GERENCIA I I I I Para tipos de relacionamento M:N, atributos determinados pela combinação de entidades participantes de uma instância de relacionamento devem ser especificados como atributos de relacionamento. I Para um tipo de relacionamento 1:N, um atributo do relacionamento pode ser migrado para o tipo de entidade do lado N do relacionamento. Tipo de Entidade Fraca I Tipos de entidade que não tem seus próprios atributos-chave. I As entidades são identificadas por meio do relacionamento com entidades de outro tipo de entidade (chamado de tipo de entidade identificador), juntamente com os valores de alguns atributos (chave parcial). I Chave parcial: é um conjunto de atributos que identifica, de modo exclusivo, as entidades fracas que estão relacionadas a uma mesma entidade proprietária. I Exemplo: Tipo de entidade DEPENDENTE. DataInicio GERENCIA Número de horas que um FUNCIONARIO trabalhou em um PROJETO. O valor do atributo Horas depende de uma combinação particular (funcionário,projeto). I Atributo de um tipo de relacionamento no diagrama ER: FUNCIONARIO Um tipo de relacionamento também pode ter atributos. Exemplo: atributo Horas para o tipo de relacionamento TRABALHA_EM. DEPARTAMENTO Atributos de Tipos de Relacionamento I Atributos de Tipos de Relacionamento Tipos de restrições: DEPARTAMENTO Diagrama do Esquema ER para o Banco de Dados EMPRESA Tipos de Relacionamento com Grau > 2 Tipos de Relacionamento com Grau > 2 Notação para Diagramas ER Notação para Diagramas ER Como Prática Geral... I Dada uma descrição narrativa dos requisitos: I I I Os substantivos do texto tendem a originar nomes de tipos de entidade. Os verbos tendem a indicar nomes de tipos de relacionamento. Nomes de atributos ⇒ surgem de substantivos adicionais que descrevem os substantivos correspondentes aos tipos de entidade. Diagramas ER e Convenções de Nomenclatura I Escolher nomes que carreguem, o tanto quanto possível, os significados dos diferentes construtores do esquema. I Usar nomes no singular para os tipos de entidade. I Usar letras maiúsculas para os tipos de entidade e tipos de relacionamento. I Usar a primeira letra maiúscula para os nomes dos atributos. I Usar letras minúsculas para os nomes dos papéis. Diagramas ER com Restrições Estruturais (min,max) Diagrama de classe UML Atividade I Ler Apêndice A [Navathe, 2005]: “Notações Diagramáticas Opcionais para Modelos ER”. Perguntas? FIM