UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Roteiro 4 - Modelo Relacional (parte 2) Objetivos: o o o Detalhar os conceitos sobre entidades e relacionamentos no modelo conceitual ER; Detalhar as etapas da modelagem conceitual e física; Executar o levantamento de requisitos para desenvolvimento da modelagem de bancos de dados; Ferramentas necessárias software Dia, software Workbench, Bibliografias de livros da faculdade. Introdução Este roteiro tem como objetivo explorar as propriedades da elaboração de modelagens para bancos de dados baseados no esquema relacional. Serão incluídos conceitos complementares necessários à modelagem e representação visual de elementos e um detalhamento sobre as propriedades de relacionamentos. O modelo relacional representa o banco de dados como uma coleção de relações. Cada relação é semelhante a uma tabela de valores, e cada linha representa uma coleção de valores de dados relacionados. Uma linha representa um fato que normalmente corresponde a uma entidade ou relacionamento do mundo real. Os nomes da tabela e de coluna são usados para ajudar a interpretar o significado dos valores em cada linha. De maneira formal, uma linha é chamada de tupla, um cabeçalho é chamado de atributo e a tabela é chamada de relação. O tipo de dado que descreve os tipos de valores que podem aparecer em uma coluna é representado por um domínio de valores possíveis. Domínios: consiste em um conjunto de valores atômicos (indivisíveis). Alguns exemplos de domínios são: • • Numeros_telefone_nacional: conjunto de números de telefone com dez dígitos válidos no Brasil; Cadastro_pessoa_física: conjunto de números do CPF com onze dígitos. Nos domínios um tipo de dado ou formato é especificado, no caso de números de telefone pode ser declarado como uma sequência de caracteres na forma (dd)-dddd-dddd, onde cada d é um dígito numérico (decimal) e os dois primeiros dígitos formam um código código de área de telefone válido. Pode-se concluir então que um domínio recebe um nome, tipo de dado e formato. Valores Atômicos: cada valor em uma tupla é um valor atômico (não pode ser decomposto), ele não é divisível em componentes dentro da estrutura do modelo relacional básico. Não são permitidos atributos compostos ou multivalorados. Isto leva a uma regra adotada em modelagem relacional chamada de 1ª forma normal, vista mais adiante. Valores NULLS: são utilizados para representar valores que pode ser desconhecidos ou não se aplicam a uma tupla .Em modelagens relacionais é evitado o uso de valores NULLS, devido a causarem problemas futuros em comparações com outros valores. Ex: se duas entidades de pessoa possuírem endereço NULL não significa que possuem o mesmo endereço. Para a elaboração de um projeto de banco de dados são necessárias algumas etapas: • Levantamento ou análise de requisitos: onde os projetistas entrevistam os usuários esperados para entenderem e documentarem os requisitos de dados. Nesta etapa surgem duas necessidades também conhecidas da engenharia do software: os requisitos de dados e os requisitos funcionais da aplicação. O resultado disso tudo é a criação da modelagem conceitual. • Projeto Conceitual: consiste em uma descrição dos requisitos de dados dos usuários e inclui detalhes dos tipos de entidade, relacionamentos e restrições, todos expressos utilizando conceitos da modelagem de alto nível. Como não trata de detalhes de implementação, estes conceitos são mais fáceis de entender e podem ser utilizados para a comunicação com usuários não técnicos. P á g | 24 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Uma técnica tradicional e ainda muito utilizada para realizar projetos de banco de dados é concentrar nas estruturas e restrições de banco de dados durante o seu projeto conceitual. A modelagem do modelo Entidade-Relacionamento (ER) é um modelo de dados conceitual de alto nível e os seus conceitos são amplamente utilizados atualmente. UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas • Projeto Lógico ou mapeamento do modelo de dados: consiste na real implementação do banco de dados utilizando um SGBD comercial. Este mapeamento geralmente é automatizado ou semiautomatizado em ferramentas de projeto de bancos de dados . • Projeto Físico: onde são detalhadas as estruturas de armazenamento internas, organizações de índices, caminhos de acesso e parâmetros físicos do projeto para os arquivos do banco de dados. São projetadas e implementadas operações como transações que obedecerão a especificações de transação de alto nível, ou seja, na descrição do minimundo juntamente com os requisitos funcionais. Entidades e atributos: Conceitos O modelo ER descreve os dados como entidades, relacionamentos e atributos. Relembrando estes conceitos: • Atributo compostos versus simples (atômicos): Atributos compostos são atributos que podem ser divididos em partes menores, representando atributos mais básicos, com significados independentes, Ex: logradouro: que pode ser subdividido em Cidade, Estado e Cep. Atributos simples são atributos indivisíveis (atômicos), Ex: CPF de uma pessoa. Atributos compostos podem ajudar em modelagens onde não é necessário especificar subcomponentes de atributos. • Atributos de valor único versus multivalorados: Atributos de valor único são os que possuem apenas um único valor para uma entidade em particular, Ex: idade. Atributos multivalorados podem assumir diversos valores em determinadas situações, Ex: formação_academica. • Atributos armazenados versos derivados: em alguns casos, dois(ou mais) valores de atributos estão relacionados. Como exemplo sejam os atributos idade e data_nascimento. Sabe-se que idade pode ser calculada através da data atual e do valor da data de nascimento de uma pessoa, neste caso o atributo idade é considerado um atributo derivado do atributo data_nascimento e data_nascimento é o atributo armazenado. Figura 7 - Atributo composto Entidade: consiste em algo no mundo real com uma existência independente, um objeto com uma existência física (pessoa, carro, funcionário), ou um objeto com uma existência conceitual (empresa, cargo, curso). Tipo de entidade: define uma coleção de entidades que têm os mesmos atributos. Cada tipo de entidade é descrito por seu nome e atributos. A coleção de entidades de determinado tipo é agrupada em um conjunto de entidades, que é chamado de extensão do tipo de entidade. Atributos-chave ou chave: consiste em uma restrição de exclusividade sobre os atributos. São atributos cujos valores são distintos para cada entidade individual no conjunto de entidades e são utilizados para identificar cada entidade de maneira exclusiva. Na notação de diagramas ER cada atributo-chave tem seu nome sublinhado dentro da oval que representa um atributo. Alguns tipos de entidade possuem mais de um atributo-chave, Ex: um campo registro, de um veículo. P á g | 25 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Atributos: propriedades específicas que descrevem uma entidade. Ex: a entidade funcionário é descrita com os atributos nome, idade, endereço, salário e cargo. Existem tipos de atributos envolvidos no modelo ER que ajudam a realizar a modelagem: UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Figura 8 - atributo chave representado no diagrama ER OBSERVAÇÃO: Um tipo de entidade pode não ter chave e, neste caso, é chamado de tipo de entidade fraca. Em notação de diagrama não há o conceito de chave primária, se dois atributos forem sublinhados separadamente, então cada um é uma chave por si só, observada de forma composta no diagrama. Conceitos complementares sobre relacionamentos Ex: um atributo gerente de uma entidade DEPARTAMENTO refere-se a um funcionário que gerencia o departamento; um atributo departamento_gerenciador de uma entidade PROJETO refere-se ao departamento que controla o projeto; um atributo supervisor de uma entidade FUNCIONARIO refere-se a outro funcionário (aquele que supervisiona esse funcionário); o atributo departamento de FUNCIONARIO refere-se ao departamento para o qual o funcionário trabalha, e assim por diante. No modelo ER, essas referências não devem ser representadas como atributos, mas como relacionamentos. À medida que o projeto é refinado estes atributos são convertidos em relacionamentos entre os tipos de entidades. Já foram detalhados que relacionamentos utilizam nomes de função. Cada tipo de entidade que participa de um relacionamento desempenha nele uma função em particular. O nome da função significa a função que uma entidade participante do tipo de entidade desempenha e é sempre identificado com verbos como trabalha_para, por exemplo. Restrições de relacionamentos: consistem em restrições que limitam as combinações de entidades que podem participar no conjunto de relacionamentos correspondente. As restrições são determinadas com base na situação do minimundo e são divididas em dois tipos: razão de cardinalidade e participação. • Razão de cardinalidade: especifica o número máximo de instâncias de relacionamento em que uma entidade pode participar, e as razões de cardinalidade possíveis são 1:1, 1:N, N:1 e N:N. • Participação: especifica se uma entidade depende dela estar relacionada a outra entidade por meio do tipo de relacionamento. Esta restrição especifica o número mínimo de instâncias de relacionamento em que cada entidade pode participar, e é também conhecida como Cardinalidade Mínima. Existem os tipos de restrições de participação total e parcial. Seja o exemplo com as entidades FUNCIONARIO e DEPARTAMENTO e os relacionamentos TRABALHA_PARA e GERENCIA Total: quando um atributo do relacionamento deve participar sempre do relacionamento, criando uma condição de existência. Ex: um funcionário sempre trabalha para um departamento. Parcial: quando um atributo do relacionamento nem sempre é esperado de participar em todas as instâncias do relacionamento. Uma parte do conjunto de entidades está relacionada a outra. Ex: nem sempre um funcionário deverá gerenciar um departamento. P á g | 26 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Na modelagem conceitual é natural que alguns atributos de entidades sejam, na realidade, relacionamentos implícitos. Sempre que um atributo de um tipo de entidade se refere a outro tipo de entidade, existe algum relacionamento. UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Nos diagramas ER, a participação total (ou dependência de existência) é exibida como uma linha dupla que conecta o tipo de entidade participante ao relacionamento, enquanto a participação parcial é representada por uma linha simples. Como no exemplo a seguir: Figura 9 - Relacionamento com participação total de departamento Figura 10 - Relacionamento com participação parcial Nos relacionamentos é muito comum a geração de entidades que não possuem atributos-chave próprios, recebendo o nome de tipo de entidade fraca. Entidades relacionadas a um tipo de entidade fraca são identificadas por estarem relacionadas a entidades específicas de outro tipo em combinação com um de seus valores de atributo, recebendo o nome de tipo de entidade de identificação ou proprietário (entidade pai ou dominante) e o relacionamento que relaciona um tipo de entidade fraca ao seu proprietário de relacionamento de identificação do tipo de entidade fraca. Por exemplo, considere o tipo de entidade DEPENDENTE, relacionado a EMPREGADO, que é usado para representar os dependentes de cada empregado através do relacionamento 1:N.Os atributos de DEPENDENTE são Nome (apenas o primeiro nome do dependente),DataNasc, Sexo e Relação com o empregado (esposa, marido, filho, sogra, etc.). Dois dependentes de empregados distintos podem ter os mesmos valores para os atributos, mesmo assim eles ainda serão entidades distintas. Os dependentes serão identificados como entidades distintas após a determinação da entidade empregado com a qual cada um está relacionado. OBSERVAÇÃO: um tipo de entidade fraca sempre tem uma restrição de participação total (dependência de existência) com relação ao seu relacionamento de identificação por não poder ser identificada sem uma entidade proprietária. Em diagramas ER, tanto um tipo de entidade fraca quanto seu relacionamento são identificados ao delimitar suas caixas de losangos com linhas duplas. P á g | 27 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Ex: UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Exemplo geral de modelagem ER Conceitual: Figura 11 - modelagem de companhia: exemplo Símbolo Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. A Tabela 1 apresenta asa principais figuras que representam os elementos em uma modelagem conceitual: Significado Entidade Entidade fraca Relacionamento Relacionamento de identificação Atributo Atributo-chave Atributo multivalorado Atributo composto Atributo derivado Participação total de E2 em R P á g | 28 UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Razão de cardinalidade 1: N para E1: E2 em R Tabela 1 - representação de elementos para modelagme conceitual Tarefas: 1) Defina os seguintes termos: Conceito Descrição Valor de atributo Instância de relacionamento Atributo multivalorado Atributo-chave Valores atômicos 2) O que é uma função de participação? Qual a importância do uso de nomes em relacionamentos? 3) Dê 4 exemplos de atributos multivalorados; 4) Realizar a elaboração da modelagem de um banco de dados considerando os temas sugeridos. As etapas de elaboração devem seguir os seguintes passos: a. Definir uma dupla para o desenvolvimento das tarefas. Os nomes componentes da dupla deverão ser registrados para avaliação do roteiro. b. Escolher um tema, disponível em http://192.168.200.3/andre/ads/proj_bd/2012-2/roteiros/roteiro-4-temas.txt para ser explorado em um projeto de um banco de dados. Realizar o levantamento dos requisitos para as operações realizadas para as operações efetuadas no tema escolhido. c. Desenvolver a modelagem conceitual no software dia, identificando as entidades participantes da modelagem, os atributos que farão partes delas, detalhando quais serão os atributos-chave e em seguida criar os relacionamentos entre as entidades. Nos relacionamentos detalhe os tipos de relação que irão compor a modelagem (total ou parcial). d. Criar no Microsoft word a simulação dos armazenamentos dos dados nas tabelas que foram criadas. e. Desenvolver no workbench a modelagem física e efetuar a Forward engineer para a criação das tabelas no mysql. f. No workbench acessar o painel de query database e criar o script .sql para a inserção e listagem de todos os dados em todas as tabelas do banco criado. Sugestões de temas: Controle de Fabricação de sorvetes em Sorveteria; Imobiliária: controle de aluguéis de imóveis; Sistema acadêmico: gerenciamento de aulas e frequência; Hospital: controle de dados de cirurgias em Pacientes; Loja de Ferragem: controle de estoque; Acadêmico: controle de aulas ministradas por professores; P á g | 29 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Atributos derivados UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Supermercado: controle de escalas de horário de funcionários; Administradora de Condomínio: controle de pagamentos de condomínio e pagamentos de funcionários do condomínio; Venda de equipamentos de informática: tipos de equipamentos, nota fiscal de venda e clientes; Fábrica de Bebidas: insumos para fabricação das bebidas, matéria-prima, equipamentos ; Transportadora: controle de rotas percorridas por veículos; Controle de Projetos de empresa de desenvolvimento; Empresa de Pedágios: controle de pagamentos dos pedágios por veículos; Fábrica de Veículos: controle de fabricação dos veículos, controle de peças; Controle de Embarques de Aeroporto; Controle de vendas de entradas de um teatro; Vendas de carnes de um açougue; Controle de Cemitério: controle de jazigos, cremação, aluguéis e jazigos perpétuos. Controle Farmacêutico: Controle de venda de medicamentos, estoque de remédios, tipo de tarja de medicamentos. Controle da CEASA: recebimento de frutas, tipos de frutas, empregados, caminhões e carregamentos. Oficina Mecânica: controle de atendimentos a clientes e reparos em veículos; Salão de Beleza: controle de cortes, estoque de produtos, controle de profissionais e de atendimentos; Controle de Polícia: controle de suspeitos, crimes, investigadores e operações policiais. Clínica Médica conveniada: controle de atendimento de profissionais, lista de espera de pacientes, funcionários. Controle de eventos: tipos de eventos, controle de fotos, profissionais, locais e clientes. Controle de vendas de Pneus: controle de atendimentos, marcas e detalhes das características dos pneus, pneus para tipos de veículos diferentes; • Capítulo 7: Elmasri, Navathe – Sistemas de banco de dados 6ª Edição; • “Introdução a Banco de dados”, Osvaldo Kataro Tokai, disponível em http://pt.scribd.com/doc/50780287/BD; • Material disponibilizado em aula; P á g | 30 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Referências