Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal de Mato Grosso Instituto de Computação Disciplina de Banco de Dados Modelagem de Dados Prof. MSc Allan Gonçalves de Oliveira allan@ic.ufmt.br Junho – 2013 Universidade Federal de Mato Grosso Instituto de Computação Disciplina de Banco de Dados Aula 2 Modelagem de Dados Junho - 2013 Tópicos ➔ Conceitos básicos ➔ O que é Modelagem de Dados? ➔ Modelo Entidade Relacionamento ➔ MER-Estendido ➔ Exemplos ➔ Exercícios Modelagem ➔ Um modelo ➔ representação idealizada de um sistema a ser construído; ➔ simplificação da realidade que ajuda a entender um problema complexo; ➔ consiste ➔ de notações gráficas e textuais que representam as partes essenciais de um sistema ➔ considera diversas perspectivas diferentes e complementares. ➔ está inserida em diversos artefatos do desenvolvimento de software Artefatos ➔ IC - UFMT [Amber2001] 6 Engenharia de Software na prática Modelagem ➔ No contexto de Banco de Dados uma modelagem é a representação dos dados que serão armazenados. ➔ não envolve a manipulação ➔ não envolve o processamento ➔ não envolve a forma de visualização O que é Modelagem ➔ Arquitetura de Banco de Dados SGBD Conexão Aplicação Visão Várias visões O que é Modelagem ➔ Arquitetura de Banco de Dados SGBD Conexão Aplicação Visão Conceitual Física Lógica O que é Modelagem ➔ Arquitetura de Banco de Dados SGBD Conexão Aplicação Visão Conceitual Física Lógica ● Próxima do Usuário Final ● Longe de Tecnologia ● Representação por Diagramas O que é Modelagem ➔ Arquitetura de Banco de Dados SGBD Conexão Aplicação Visão Conceitual Física Lógica ● Próxima da Programação ● Depende da Tecnologia ● Representação por Modelo do SGBD ● relações (tabelas) ● cursores O que é Modelagem ➔ Arquitetura de Banco de Dados SGBD Conexão Aplicação Visão Conceitual Física Lógica ● Próxima do DBA ● Próxima do Armazenamento ● Representação por estrutura de dados ● listas, ● registros, ● blocos, ● setores, ● trilhas O que é Modelagem ➔ Arquitetura de Banco de Dados SGBD Conexão Aplicação Visão Conceitual Física Lógica Modelagem Física ➔ O Projeto Físico envolve ➔ definir os locais de armazenamento dos dados ➔ Disk array ➔ RAID ➔ Tamanho e organização de arquivos ➔ Tablespaces ➔ Segmentos ➔ Extensões ➔ Blocos ➔ Arquivos de recuperação (redo log) ➔ Organização e local Modelagem Física ➔ O Projeto Físico envolve (cont.) ➔ Métodos de Acesso ➔ B-Tree ➔ Bitmap ➔ Hash ➔ Organização de Armazenamento ➔ Visão ➔ Visão Materializada ➔ Cluster Modelagem Física ➔ O Projeto Físico envolve (cont.) ➔ Tamanho de memória ➔ SGA ➔ Cache/Buffer ➔ Área de Programa ➔ Área de dados ➔ Pool compartilhado ➔ ... Modelagem Física ➔ O Projeto Físico envolve (cont.) ➔ Métodos de Acesso ➔ B-Tree ➔ Bitmap ➔ Hash ➔ GIST (PostgreSQL) ➔ Cartuchos (Oracle) ➔ Organização de Armazenamento ➔ Cluster ➔ Backup Modelagem Lógica ➔ O Projeto Lógico envolve ➔ Definição de tabelas ➔ Inserção dos dados (previsão) ➔ Definição das Consultas e Relatórios ➔ Quais ➔ Quantidade e freqüência (previsão) ➔ Procedimentos Armazenados ➔ Tipos de Conexão ➔ Direitos de Acesso ➔ Direitos e Papéis Modelagem Conceitual ➔ O Projeto Conceitual ➔ ???????? 20 Modelagem Conceitual ➔ Normalmente parte-se de um documento que descreve o mundo real ➔ Levantamento de requisitos ➔Metáforas ➔ remetem a experiências já conhecidas pelos usuários ➔Metodologias como Extremme Programming colocam a metáfora como obrigatória. ➔ Priorizado o que tem valor para o cliente e para o negócio 21 Levantamento de Requisitos ➔ Descrição detalhada da organização e seu ambiente computacional ➔ Questões organizacionais ➔ objetivos ➔ estrutura ➔ operações ➔ problemas ➔ Ambiente/sistema Computacional ➔ objetivos ➔ escopo e fronteiras ➔ origem das informações e usuários ➔ necessidades do usuário final 22 Modelagem Conceitual ➔ Modelos Conceituais ou Semânticos ➔ Modelo Entidade-Relacionamento ➔ Modelos semânticos recaem sobre o conceito de Abstrações: os construtores Semânticos do modelo são organizados como ocorrências de abstrações. ➔ Abstrair consiste em desconsiderar detalhes da informação disponível para ter-se uma visão mais geral (mais abstrata). 23 Modelagem Conceitual ➔ A conceituação do modelo apoia-se no processo de modelagem tal como é desenvolvido pelos analistas OS TRÊS REINOS Reino Real Reino da Representação Reino Imaginário Percepção Modelagem Implementação 24 Modelagem Conceitual ➔ No processo de Percepção da aplicação, o projetista não entende determinados detalhes do mundo real. Esses detalhes não são sequer imaginados. Reino Real Reino da Representação Reino Imaginário Percepção Modelagem Implementação 25 Modelagem Conceitual ➔ No processo de Modelagem da aplicação, o projetista desconsidera outros detalhes do mundo real, por não ser de interesse modelá-los. Reino Real Reino da Representação Reino Imaginário Percepção Modelagem Implementação 26 Modelagem Conceitual ➔ Tanto na Percepção quanto na modelagem, os detalhes descartados não são colocados no sistema implementado. ➔ A Abstração coloca os detalhes, bem como os dados abstratos no sistema implementado. Assim, o sistema pode “ver” os dados com mais ou menos detalhe, conforme o interesse. Reino Real Reino da Representação Reino Imaginário Percepção Modelagem Implementação 27 Modelagem Conceitual ➔ A conceituação do modelo apoia-se no processo de modelagem tal como é desenvolvido pelos analistas ➔ OS TRÊS REINOS Reino Real Reino da Representação Reino Imaginário Percepção Modelagem Implementação Modela-se o que é percebido (entendido). Do entendido: Modela-se (ou representa-se) somente aquilo que é de interesse para o sistema que está sendo estudado. Modelagem de Dados ➔ Modelo Entidade Relacionamento ➔ Proposto em 1976 P. Chen, ''The Entity-Relationship Model - Toward a Unified View of Data,'' ACM Trans. on Database Systems, Vol. 1, No. 1, March 1976. Modelagem de Dados ➔ O Modelo Entidade Relacionamento possui apenas 2 abstrações (construtores semânticos). ➔ Qualquer informação do Mundo Real pode ser representada escolhendo-se apenas entre: ➔ Entidades; ➔ Relacionamentos; Modelo ER ➔ Entidades ➔ Representa algo do Mundo Real; ➔ Alguns autores denominam ➔ entidade e ➔ conjunto de entidades ➔ Usaremos a denominação ➔ instância de entidade e ➔ entidade Modelo ER ➔ Entidades ➔ Composta de Atributos ➔ Representam as propriedades da Entidade quando isolada. ➔ Representação: NomeEntidade atributo1 atributo2atributo2 atributo5 atributo3 atributo6 atributo4 Modelo ER ➔ Entidades ➔ Composta de Atributos ➔ Representam as propriedades da Entidade quando isolada. ➔ Representação: NomeEntidade atributo1 atributo2atributo2 atributo5 atributo3 atributo6 atributo4 Modelo ER - Entidade ➔ Exemplo: Paciente cpf atributo2telefonerua idade bairro endereço dataNascimento nome cidade estado Modelo ER - Entidade ➔ Tipos de Atributos ➔ Monovalorado ➔ armazena apenas 1 valor. ➔ Multivalorado ➔ armazena vários valores. ➔ Ex: Paciente atributo2telefone nome Modelo ER - Entidade ➔ Tipos de Atributos ➔ Chave ➔ Identifica uma instância da entidade. ➔ Ex: Paciente cpf Modelo ER - Entidade ➔ Tipos de Atributos (cont.) ➔ Composto ➔ possui subatributos ➔ Ex: Paciente rua bairro endereço cidade estado Modelo ER - Entidade ➔ Tipos de Atributos (cont.) ➔ Derivado ➔ Seu valor é obtido a partir de outro(s) atributo ➔ Ex: Paciente idade dataNascimento Modelo ER ➔ Relacionamentos ➔ Representam as interações entre as Entidades ➔ Representação: NomeEntidade2NomeEntidade1 Ação Modelo ER - Relacionamento ➔ Exemplo MédicoPaciente possui Modelo ER - Relacionamento ➔ Cardinalidade ➔ Representa a forma como cada instância da entidade participa no relacionamento. ➔ Tipos: ➔ 1:1 – cada instância da entidade pode se relacionar com apenas um instância da outra entidade. ➔ 1:N – cada instância da entidade pode se relacionar com várias instâncias da outra entidade. ➔ N:M – cada instância da entidade pode se relacionar com várias instâncias da outra entidade e vice-versa. Modelo ER - Relacionamento ➔ Cardinalidade ➔ Representação: NomeEntidade2NomeEntidade1 Ação N1 NomeEntidade2NomeEntidade1 Ação MN NomeEntidade2NomeEntidade1 Ação Modelo ER - Relacionamento ➔ Multiplicidade ➔ Representa a forma como cada instância da entidade participa no relacionamento. ➔ Expressa a participação mínima e máxima ➔ Tipos: ➔ n..m – n é o valor mínimo e m o máximo; ➔ * – zero ou mais; ➔ + – um ou mais ➔ Obs: seu posicionamento é o inverso da cardinalidade. Modelo ER - Relacionamento ➔ Multiplicidade ➔ Representação: NomeEntidade2NomeEntidade1 Ação* NomeEntidade2NomeEntidade1 Ação(1..5) Modelo ER - Relacionamento ➔ Atributo ➔ Representa a informação que surge somente quando as entidades se relacionam. ➔ Representação: NomeEntidade2NomeEntidade1 Ação* atributo Modelo ER - Relacionamento ➔ Atributo ➔ Representa a informação que surge somente quando as entidades se relacionam. ➔ Representação: NomeEntidade2NomeEntidade1 Ação* atributo Modelo ER - Relacionamento ➔ Atributo ➔ Exemplo DisciplinaAluno Cursou MN nota Modelo ER - Relacionamento ➔ Participação Total ➔ Representa que a instância da entidade é obrigada a participar no relacionamento. ➔ Exemplo: ➔ Toda peça cadastrada deve estar relacionada com o motor. PeçaMotor possui Modelo ER - Relacionamento ➔ Cardinalidade ➔ Representação: NomeEntidade2NomeEntidade1 Ação* NomeEntidade2NomeEntidade1 Ação(1..5) Modelo ER - Relacionamento ➔ Grau de um Conjunto Relacionamento ➔ número de entidades que participam no relacionamento. ➔ Tipos ➔ Unário – envolve 1 entidade (autorrelacionamento) ➔ Binário – envolve 2 entidades ➔ Ternário – 3 entidades ➔ . . . Modelo ER - Relacionamento ➔ Relacionamento Ternário FuncionárioCliente compra Produto Modelo ER - Relacionamento ➔ Papéis ➔ Representa o papel da entidade no relacionamento. ➔ Obrigatórios em autorrelacionamentos ➔ Exemplo: Empregado gerencia é_gerenciado gerencia Modelo ER - Relacionamento ➔ Entidade Fraca ➔ Sua instância existe somente se ligada à uma instância da entidade forte. ➔ Exemplo: ➔ Turma só existe se ligado à uma disciplina. TurmaDisciplina possui Turmapossui 53 Exercício ➔ Apresentar o Diagrama Entidade Relacionamento (DER) da seguinte mini-especificação(10 minutos): ”Uma clínica médica deseja informatizar seu sistema. Para isso sabe-se que é preciso armazenar informações dos pacientes e médicos. Cada paciente é atendido por apenas um médico. Em cada atendimento é preciso armazenar a data e hora, bem como um diagnóstico e a descrição do atendimento. É necessário armazenar os dados pessoais dos médicos e dos pacientes. Para os médicos é preciso incluir as especialidades que possuem.Deseja-se obter relatórios mensais envolvendo os pacientes que desenvolveram determinada doença e o remédio utilizado.” Modelagem de Dados ➔ Modelagem Conceitual: O que são entidades na organização? Como essas entidades interagem? Quais informações são importantes para tratamento? Quais são as restrições de integridade e as regras de negócio? Modelo ER ➔ Dicas ➔ entidade ou atributo? ➔ Se controle maior então deve ser entidade ➔ entidade ou relacionamento? ➔ Se é ação então é relacionamento ➔ relacionamento binário ou n-ário? ➔ Usar sempre que possível relacionamento binários. E-R Estendido: Especialização ➔ Proposto inicialmente por: J. Smith and D. Smith, ''Database Abstractions: Aggregation and Generalization,'' ACM Trans. on Database Systems, Vol. 2, No. 2, June 1977. ➔ Abstrações ➔ Especialização / Generalização ➔ Agregação E-R Estendido: Especialização ➔ Especialização/Generalização ➔ Especialização ➔ instâncias de uma mesma entidade são distingüiveis de outras instâncias do conjunto. ➔ têm atributos ou relacionamentos que não se aplicam ao conjunto todo. ➔ Generalização é o inverso. ➔ É estabelecido um relacionamento do tipo É_UM (IS_A) entre as especializações e a generalização. ➔ Herança de propriedades ➔ uma especialização herda todas as propriedades ➔ atributos e ➔ relacionamentos E-R Estendido: Especialização FuncionárioCliente Pessoa ➔ Exemplo Espec ializa ção G en er al iz aç ão É_ U M E-R Estendido: Especialização ➔ Especialização/Generalização ➔ Cobertura ➔ restrições sobre o relacionamento ➔ Tipos: ➔ Parcial / Total ➔ Indica se existe instância da generalização ou somente das especializações. ➔ Exclusivo / Sobreposição ➔ Indica se a instância da especialização pertence ao conjunto de somente uma entidade ou de várias entidades E-R Estendido: Especialização T, E FuncionárioCliente Pessoa ➔ Exemplo cpf nome salário depto preferência endereço E-R Estendido: Especialização T, E FuncionárioCliente Pessoa ➔ Exemplo cpf nome salário depto preferência endereço Atributos genéricos Atributos específicos Atributos específicos Exemplo de especialização E-R Estendido ➔ Abstração de Agregação ➔ corresponde à idéia de que elementos de modelagem podem associar-se, formando outros objetos que representam essa ssociação. ➔ A Abstração de Agregação corresponde à idéia de que associações entre entidades também correspondem a entidades. MédicoPaciente atende Consulta data E-R Estendido: Agregação ➔ Abstração de Agregação ➔ Uma agregação ocorre em duas situações: ➔ Quando é necessário identificar-se cada relacionamento (o relacionamento tem chave); ➔ Quando é necessário mais de um relacionamento envolvendo as mesmas entidades. E-R Estendido: Agregação ➔ Abstração de Agregação ➔ 1o. Caso: O relacionamento tem um identificador próprio: ➔ Nesse caso, embora seja possível identificar a entidade agregação por um identificador próprio, ela também pode ser identificada também pelo relacionamento entre as entidades que participam do relacionamento: AlunoProfessor orienta título E-R Estendido: Agregação ➔ Abstração de Agregação ➔ 1º. Caso: O relacionamento tem um identificador próprio: ➔ Nesse caso, embora seja possível identificar a entidade agregação por um identificador próprio, ela também pode ser identificada também pelo relacionamento entre as entidades que participam do relacionamento:AlunoProfessor orienta título Projeto E-R Estendido: Agregação ➔ Abstração de Agregação ➔ 2º. Caso: Pode haver mais de um relacionamento envolvendo as mesmas entidades: ➔ Nesse caso, para identificar a entidade agragação, deve-se identificar as entidades que participam do relacionamento, além de ser necessário complementar esse identificador com atributos próprios da entidade agregação. MédicoPaciente atende data Paciente não pode ser atendido mais de uma vez! E-R Estendido: Agregação ➔ Abstração de Agregação ➔ 2º. Caso: Pode haver mais de um relacionamento envolvendo as mesmas entidades: ➔ Nesse caso, para identificar a entidade agragação, deve-se identificar as entidades que participam do relacionamento, além de ser necessário complementar esse identificador com atributos próprios da entidade agregação. MédicoPaciente atende data Consulta Modelo ER ➔ Exercício 2 ➔ Descreva a situação representada pelo DER abaixo: Planta Ornamental Frutífera nome altura tipo_ambiente flor nome peso Aduborecebe N M quantidade Adubagem data Funcionário faz N 1 código nome data_admissão cargo possui1 1 nome composição Fruta época tempo_maturação P, S Modelo ER ➔ Exercício 3 “Um vendedor de frutas decidiu criar um sistema que manipule as informações relacionadas com seu negócio. As informações desejadas para armazenamento estão relacionadas com as frutas e verduras disponibilizadas aos clientes. Para cada fruta deseja-se armazenar seu nome, peso, época de venda, calorias, custo e preço. Para as verduras deseja-se saber seu nome, durabilidade, validade, preço, peso. Sabe-se que os tipos de fruta são: bocaiúva, jambo e carambola. As bocaiúvas são vendidas em sacos, cujo valor é adicionado ao custo dessa fruta. Para melhor atender os clientes, um cadastro é mantido com os dados pessoais (nome, endereço, telefone, etc) e as frutas preferidas. Além disso, deseja-se saber de cada cliente quais são os membros de sua família para identificar qual fruta da época é mais adequada para ser oferecida. Deseja-se gerar no final de cada mês um relatório de vendas. Outro relatório importante é o de frutas da época para saber no mês anterior quais frutas serão encomendadas e vendidas no mês seguinte.” Algoritmo básico para Modelagem ➔ Partindo de um texto que descreve/especifica um sistema, devem ser utilizados os seguintes passos como um guia para determinar qual deve ser a ação mais significativa a ser tomada num determinado instante, para obter uma modelagem que represente o mais fielmente possível o sistema especificado. Algoritmo básico para Modelagem (15 Passos) 1.Grifar palavras importantes para a compreensão do sistema; 2.Separar as palavras grifadas em duas colunas, uma para substantivos, e uma para verbos; 3.Classificar, “a princípio”, ➔ os substantivos como sendo: ➔ Conjunto de entidades, Atributos, Papéis, Valores de Atributos, Definições da Base; ➔ E os verbos como sendo: ➔ Relacionamentos, Ações (Procedimentos), Regras Algoritmo básico para Modelagem (15 Passos) 4.Vincular uma chave para cada Conjunto de Entidade; a)Avaliar cada atributo, verificando se ele poderia ser chave de alguma entidade. 5.Vincular cada Conjunto de Entidades os seus atributos; 6.Vincular a cada Atributo seus valores: a)Verificar se cada Atributo não pode ser promovido a Conjunto de Entidade; b)Verificar se cada Conjunto de Entidades não pode ser rebaixado para Atributo ou Valor; Repetir os passos de 4 a 6 até estabilizar Algoritmo básico para Modelagem (15 Passos) 7.Vincular cada conjunto de Relacionamentos as entidades que assumem cada papel do relacionamento; 8.Colocar os papéis nos respectivos Conjuntos de Relacionamentos; a)Veririficar os papéis que não existam em nenhum conjunto de relacionamento, e criar o conjunto de relacionamento adequado; b)Verificar as palavras marcadas como conjuntos de relacionamentos que são apenas papéis de outros conjuntos de relacionamentos; 9.Vincular a cada conjunto de relacionamento os seus atributos. Algoritmo básico para Modelagem (15 Passos) 10. Redistirbuir os atributos restantes entre os conjunto e entidades e de relacionamentos ou papéis; Repetir os passos 3 a 10 até estabilizar 12. Verificar as ações e Regras. Se elas sempre se refererem a dados que já estão modelados, desconsiderá-las; senão identificar quais são esses dados e repetir os passos 2 a 11; Algoritmo básico para Modelagem (15 Passos) 12.As definições da base são descartadas; a)Verificar se existem conjuntos de entidades que têm apenas uma instância. Se houver, verificar se todos os seus relacionamentos são de cardinalidades 1:1 ou 1:N. Nesse caso, descartar cada conjunto de entidade nessa situação e seus conjuntos de Relacionamentos. 13.Verificar cada conjunto de relacionamento para confirmar que apenas os papéis indicados são necessários, senão criar os que faltam e vincular os conjuntos de entidades adequados. Algoritmo básico para Modelagem (15 Passos) 14.Verificar se cada conjunto de relacionamentos de ordem N > 2 não pode ser “desmembrado” em 2 ou mais conjuntos de Relacionamentos de ordem menor. 15.Verificar todos os Conjuntos de Entidades que são fracos para algum conjunto de Relacionamentos. 78 Modelagem Conceitual ➔ Modelagem de Regras de Negócio e Restrições ➔ O MER facilita representação dos dados contudo não aborda a manipulação desses dados ➔ Regras de negócio devem ser colocadas no Dicionário de Dados ➔ Arquitetura N-camadas as regras de negócio devem ser distribuídas nas diversas camadas. Dever de Casa ➔ Trazer DER do Projeto com no mínimo ➔ 10 Entidades. ➔ 2 Especializações ➔ 1 Agregação ➔ Fazer representação equivalente em UML. Referências ➔ Rob; Coronel; Database Systems: Design, Implementation, and Management, Fifth Edition. ➔ Database Architecture and Implementation www.cs.ust.hk/~dimitris/COMP530/530.html ➔ Silberschatz, A.; Korth, H.F.; Sudarshan,S.; ”Database System Concepts”; Fifth Edition; 2008. ➔ Traina, C. ; Apostila de Modelagem de Dados; ICMC-USP; www.gbdi.icmc.usp.br; 2000; Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Database Initial Study Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Slide 47 Slide 48 Slide 49 Slide 50 Slide 51 Slide 52 Slide 53 Overview of Database Design Slide 55 Slide 56 Slide 57 Slide 58 Slide 59 Slide 60 Slide 61 Slide 62 Slide 63 Slide 64 Slide 65 Slide 66 Slide 67 Slide 68 Slide 69 Slide 70 Slide 71 Slide 72 Slide 73 Slide 74 Slide 75 Slide 76 Slide 77 Slide 78 Slide 79 Slide 80
Compartilhar