Pós-graduação em Ciência da Computação CCM-202 Sistemas de Banco de Dados Motivação Objetivo da abordagem de BD: Modelos Conceituais de Dados Profa. Maria Camila Nardini Barioni [email protected] Bloco B - sala 937 oferecer abstração dos dados separar aplicações dos usuários dos detalhes de hardware ferramenta utilizada: modelo de dados Modelo de dados: conjunto de ferramentas conceituais para a descrição dos dados e dos relacionamentos existentes entre os dados, da semântica e das restrições que atuam sobre estes 2° quadrimestre de 2011 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 Categorias de Modelos de Dados 2 Categorias de Modelos de Dados Modelo de dados de implementação Divisão baseada nos tipos de conceitos oferecidos para descrever a estrutura do BD Modelo de dados conceitual oferece conceitos que podem ser facilmente utilizados por usuários finais não estão distantes da maneira na qual os dados estão organizados dentro do computador modelo de alto nível oferece conceitos próximos aos usuários exemplo: modelo entidade-relacionamento Modelo de dados físico CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 3 independe do SGBD CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 depende do SGBD análise de requisitos esquema conceitual projeto conceitual esquema em linguagem de implementação mapeamento para modelo entrevistas a usuários de BD documentação do sistema Projeto conceitual projeto físico Modelo Relacional Modelo Entidade Mapeamento Relacionamento MER para o (MER) Modelo Relacional CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 4 Análise de requisitos conjunto de necessidades modelo de baixo nível descreve como os dados estão armazenados fisicamente no computador Projeto de BD Modelo de Dados e o Projeto de BD minimundo é implementado de maneira direta exemplo: modelo relacional 5 utiliza modelo de dados de alto nível descreve de maneira concisa as necessidades dos usuários inclui descrições detalhadas dos tipos de dados, relacionamentos e restrições é fácil de ser entendido CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 6 1 Pós-graduação em Ciência da Computação CCM-202 Sistemas de Banco de Dados Projeto de BD Modelo Entidade-Relacionamento Mapeamento para modelo tradução do esquema conceitual em uma linguagem de alto nível para uma linguagem de implementação (Parte 1) Projeto físico Profa. Maria Camila Nardini Barioni [email protected] Bloco B - sala 937 especificação de estruturas internas de armazenamento especificação das formas de organização de arquivos para BD 2° quadrimestre de 2011 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 7 Modelo Entidade Relacionamento Modelo Entidade Relacionamento Características O ME-R oferece 4 Construtores para a representação da semântica: foi desenvolvido para facilitar o projeto lógico do BD permite a representação da estrutura lógica global do BD é um dos modelos de dados com maior capacidade semântica representa um problema como um conjunto de entidades e relacionamentos entre estas entidades CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 9 Entidade Tipo-Relacionamento Atributos de Relacionamentos 10 Caracterizam uma entidade ou um relacionamento Pode ser um objeto com: existência física: uma pessoa, um carro existência conceitual: uma companhia, um emprego, um curso exemplo: tipo-entidade cliente atributos: nome_cliente endereço_cliente data_nascimento Domínio de um atributo Descrita por propriedades particulares: atributos CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 Atributos de Entidades CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 Possui existência independente Tipo-Entidade Atributos Qualquer coisa do mundo real envolvida no problema 11 conjunto de valores possíveis para o atributo pode assumir valor nulo (i.e., null) exemplos: nome_cliente: varchar(50) data_nascimento: date CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 12 2 Exemplos Classificação dos Atributos Tipo-entidade cliente atributos: nome_cliente endereço_cliente data_nascimento entidade e1: Simples versus Compostos não pode ser decomposto (dividido) em atributos mais básicos exemplo: sexo nome_cliente: Márcia endereço_cliente: Rua X, 1 data_nascimento: 12/03/1970 atributos mais básicos possui como valor a concatenação dos valores dos atributos simples que o formam exemplo: atributo endereço, composto de nome_rua, nro_casa, complemento, nome_bairro, ... CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 13 Atributos Compostos endereço estado nro valores: 222-0000, 222-0001, ... se nenhuma consulta será realizada sobre os atributos mais básicos de um atributo composto, então o atributo composto pode ser armazenado no BD como um atributo simples CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 pode possuir limites inferior/superior com relação à multiplicidade dos valores assumidos exemplo: nro_min = 0, nro_max = 3 15 Classificação dos Atributos Descrito por um nome e uma lista de atributos atributo derivado pode ser determinado através de outros atributos ou Entidades de um tipo-entidade através de entidades relacionadas exemplos: idade = data_atual - data_nascimento nro_empregados = soma das entidades empregado para um departamento pode ou não ser armazenado no BD CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 16 Conjunto de entidades do mesmo tipo atributo armazenado está realmente armazenado no BD CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 Tipo-Entidade Armazenados versus Derivados atributo multivalorado possui múltiplos valores para cada entidade exemplo: atributo telefone nro_apartamento Observação atributo monovalorado possui um único valor para cada entidade exemplo: idade cep nome 14 Monovalorados versus Multivalorados podem formar hierarquias cidade CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 Classificação dos Atributos Atributos Simples x Compostos rua atributo composto pode ser decomposto (dividido) em vários outros entidade e2: nome_cliente: Romualdo endereço_cliente: Rua Floriano Peixoto, 10 data_nascimento: 10/10/1982 atributo simples ou atômico 17 compartilham os mesmos atributos possuem seus próprios valores para cada atributo CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 18 3 Representação Restrição de Chave CPF_empregado EMPREGADO Chave primária nome_empregado endereço_empregado tipo-entidade: empregado conjunto mínimo de atributos que identificam de maneira única uma entidade escolhida pelo projetista do BD como o principal meio de identificação de um tipo-entidade Exemplo: entidades (instâncias) CPF_empregado CPF_empregado: 192876433-0 nome_empregado: Maria endereço_empregado: Rua X CPF_empregado: 150150150-0 nome_empregado: José endereço_empregado: Rua Y CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 EMPREGADO endereço_empregado 19 Relacionamento e Tipo-relacionamento associação entre entidades conjunto de relacionamentos do mesmo tipo Exemplo: pessoa trabalha para empresa é opcional deve ser feita sempre que possa existir ambigüidade na interpretação Contrata Empresa trabalha CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 21 Restrição de Cardinalidade Cardinalidades EMPREGADO um-para-um ( 1 : 1 ) um-para-muitos ( 1 : n ) muitos-para-um ( n : 1) muitos-para-muitos ( m : n ) CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 Contrata Contrata Curso Contratada por CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 EMPREGADO Determina o número de entidades às quais outras entidades podem ser associadas através de um relacionamento Contratada por 22 Restrição de Cardinalidade Restrição Estrutural 20 Cada Tipo-Entidade que participa de um TipoRelacionamento tem um PAPEL no relacionamento A indicação de cada papel Tipo-relacionamento CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 Papéis nos Relacionamentos Relacionamento nome_empregado EMPREGADO 23 1 n m gerencia trabalha desenvolve 1 1 n DEPARTAMENTO DEPARTAMENTO PROJETO CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 24 4 Exercício Atributo de Tipo-Relacionamento Diferencie semanticamente as duas modelagens representadas a seguir: a) Determinado pela combinação das entidades participantes em uma instância do relacionamento horas_trabalhadas Exemplo: cod_funcionário nome_funcionário FUNCIONÁRIO nro_telefone b) m FUNCIONÁRIO n utiliza EMPREGADO TELEFONE nro_telefone cod_funcionário nome_funcionário CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 25 atributos de curso: código_curso, nome_curso atributos de disciplina: código_disciplina, nome_disciplina, carga_horária PROJETO CPF_empregado nro_projeto nome_empregado nome_projeto CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 26 Um setor do hospital é responsável por realizar vários procedimentos (ex. do setor de cirurgia: cirurgia vascular, radiocirurgia, etc), cada um com um código único, um nome e um custo total. Um médico do hospital pode trabalhar em vários setores, sendo determinada a especialidade em que ele atua em cada setor. Faça duas diferentes modelagens, de acordo com as especificações a seguir n Um hospital é organizado em setores (ex.: maternidade, prontosocorro, cirurgia, etc), cada um com um nome único, uma sigla e um médico responsável por gerenciá-lo. Uma data determina quando o médico iniciou suas atividades de gerência no setor. Dados os tipos-entidade curso e disciplina desenvolve Exemplo – Hospital Exercício m Para cada médico são armazenadas informações como: nome, CPF, endereço, telefone(s) de contato, salário e CRM. As buscas pelos médicos são sempre realizadas por meio de seu CRM. uma disciplina é obrigatória ou optativa, independentemente do curso (modelagem 1) uma disciplina pode ser obrigatória para um curso e optativa para outro curso (modelagem 2) CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 Para a realização de cada procedimento são utilizados vários materiais, cada um com um código único, um nome e a nacionalidade. Cada material pode ser usado em quantidades variadas em diversos procedimentos. 27 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 28 Exemplo – Administradora de imóveis data_início nome 1 gerencia sigla (descrição adaptada de Carlos Alberto Heuser) CPF 1 CRM A administradora trabalha tanto com administração de condomínios, quanto com a administração de aluguéis Uma entrevista com o gerente da administradora resultou nas seguintes informações: nome SETOR m n trabalha MÉDICO salário endereço 1 especialidade telefone realiza n PROCEDIMENTO código n m usa quantidade MATERIAL código nome nome custo nacionalidade CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 29 A administradora administra condomínios formados por unidades condominiais. Para cada condomínio a administradora precisa saber seu nome (que é único) e endereço (nome da rua, número, bairro e cep). Para cada unidade condominal seu número único e o andar; Cada unidade condominial é de propriedade de uma ou mais pessoas. Uma pessoa pode possuir diversas unidades; Cada unidade pode estar alugada para no máximo uma pessoa. Uma pessoa pode alugar diversas unidades. Uma data determina quando a pessoa alugou uma unidade condominal; Para cada pessoa são armazenadas informações como CPF, nome, telefones (residencial, comercial e celular) e endereços (comercial e para correspondência). CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 30 5 rua número nome nro endereço bairro cep CONDOMÍNIO Bibliografia andar 1 composto n UNIDADE m Elmasri, Ramez; Navathe, Shamkant B. Sistemas de banco de dados. 4 ed. São Paulo: Addison Wesley, 2005, 724 p. Bibliografia: p. [690]-714. n data possui aluga n Heuser, Carlos Alberto. Projeto de banco de dados. 5 ed. Porto Alegre: Sagra Luzzatto, 2004, 236 p. 1 PESSOA nome cpf rua telefone número endereço Material Didático produzido pelos professores Cristina Dutra de Aguiar Ciferri e Caetano Traina Júnior bairro cep - 2° quadrimestre de 2011 CCM-202 Sistemas de Banco de Dados 31 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 32 6