Prévia do material em texto
MODELAGEM E IMPLEMENTAÇÃO DE BANCO DE DADOS COM SQL Alfredo Boente alfredo.boente@uva.br Aula 03 Modelo de Dados Lógico Relacional Modelo Lógico Introdução O Modelo Lógico de banco de dados, descreve os esquemas lógicos de dados, por meio de uma linguagem de especificação, baseada num SGBD. Existem três tipos distintos de modelos lógico. São eles: Relacional; Redes; Hierárquico. Modelo de Banco de Dados Introdução Mas antes mesmo de iniciarmos nossas atividades associadas ao modelo lógico, precisamos massificar mais alguns detalhes importantes acerca do modelo conceitual de banco de dados, essenciais para um estudo mais completo no âmbito do modelo lógico de dados. Modelo Lógico Modelo de Banco de Dados Modelo de Banco de Dados Modelo Lógico Modelo Lógico O modelo lógico (no caso da nossa disciplina aplicaremos a visão relacional com foco em base universal), já leva em conta algumas limitações e implementa recursos como adequação de padrão e nomenclatura, define as chaves primárias e estrangeiras, normalização, integridade referencial, dentre outras. Modelo de Banco de Dados Modelo Lógico Modelo Lógico O modelo lógico deve ser criado levando em conta os exemplos de modelagem de dados criados no modelo conceitual. Veja o exemplo ao lado de um modelo lógico (relacional). VAMOS RACIOCINAR ? VAMOS RACIOCINAR ? Modelo de Banco de Dados Modelo Lógico Modelo de Banco de Dados Modelo Lógico Modelo Lógico Considere o modelo conceitual mostrado anteriormente, para a escola de ensino fundamental e médio: Modelo de Banco de Dados Modelo Lógico Modelo Lógico Precisamos, inicialmente, considerar todas as entidades que compõe o modelo conceitual. As ligações entre as entidades do modelo, perfazem os possíveis relacionamento entre essas entidades. Em seguida, deve-se considerar as possíveis entidades- relacionamentos, pois no modelo lógico, precisam ser representadas por meio de uma relação, ou seja, através de uma tabela, com todos os atributos que a compõe. Modelo de Banco de Dados Modelo Lógico Modelo Lógico Vejamos como fica o modelo lógico da escola de ensino fundamental e médio: VAMOS PARA O PRÓXIMO ? VAMOS PARA O PRÓXIMO ? Modelo de Banco de Dados Modelo Lógico Modelo de Banco de Dados Modelo Lógico Modelo Lógico Vamos considerar na prática o seguinte modelo conceitual de dados para certa empresa: Modelo de Banco de Dados Modelo Lógico Modelo Lógico Transformando o modelo conceitual em modelo lógico de dados. Modelo de Banco de Dados Modelo Lógico Modelo de Banco de Dados Modelo Lógico Aprendizagem Baseada em Problemas Situação-problema: Proposta de implantação de um sistema de controle e gerenciamento de empréstimos de livros de uma biblioteca acadêmica: A biblioteca dispõe de livros, também denominados títulos. Estes possuem nome, autores e editoras. Cada título pertence a uma área de conhecimento e possui um código único de identificação. Cada título possui vários exemplares. Cada exemplar possui um código único de identificação. Cada título pode ter vários autores e um mesmo autor pode ter escrito vários títulos. Um autor possui código, nome, telefone e endereço. Modelo de Banco de Dados Modelo Lógico Aprendizagem Baseada em Problemas Situação-problema: As editoras possuem código, nome, telefone e endereço. As áreas de conhecimento possuem código e uma descrição. Usuários, que podem ser alunos, professores ou funcionários, tomam livros emprestados por uma semana. A data de empréstimo é importante no processo. Cada usuário possui um código, nome, telefone e endereço. Cada título possui várias palavras-chave e uma palavra-chave pode estar ligada a vários títulos. Uma palavra-chave possui código e descrição. Modelo de Banco de Dados Modelo Lógico Aprendizagem Baseada em Problemas Metodologia: O aluno deverá desenvolver um modelo lógico, através do DER, visando obter duas soluções para o mesmo problema. A primeira, modelando a partir da notação Pé-de-Galinha (Visual Paradigma) e a segunda a partir da notação de Peter Chen (BrModelo). Com base neste último, utilizando o BrModelo, desenvolva o modelo lógico correspondente, com os ajustes necessários, se for o caso. Modelo de Banco de Dados Modelo Lógico Modelo de Banco de Dados Modelo Lógico Aprendizagem Baseada em Problemas Modelagem Conceitual – Crow-Foot: Modelo de Banco de Dados Modelo Lógico Aprendizagem Baseada em Problemas Modelagem Conceitual – Peter Chen: Modelo de Banco de Dados Modelo Lógico Aprendizagem Baseada em Problemas Modelagem Lógico – Relacional: Modelo de Banco de Dados Modelo Lógico ATIVIDADE EXTRA CLASSE ATIVIDADE EXTRA CLASSE Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Situação-problema: Na analogia da construção da casa, a modelagem lógica equivale a planta elaborada pelo Engenheiro, nela deve conter todas as especificações necessárias para a construção de uma casa, seguindo essa linha a modelagem lógica também deve conter todas as especificações para a construção do banco de dados físico, então como realizamos a transformação da modelagem conceitual para modelagem lógica? Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Metodologia: Após a análise dos alunos, o professor deve apresentar a concepção do modelo lógico relacional, demonstrando a representação gráfica da estrutura e as várias opções de transformação do modelo conceitual para lógico de acordo com cada cardinalidade da estrutura no Diagrama Entidade- Relacionamento. Utilizando a ferramenta CASE, BrModelo, deverá ser apresentado estudo de caso para a transformação do modelo conceitual para o lógico. Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Situação-problema: Proposta de implantação de um sistema de gestão de certa escola de música que necessita manter uma base de dados organizada com o objetivo de prover informações sobre músicos, orquestras, sinfonias e instrumentos, onde: Cada orquestra é catalogada contendo o seu nome, cidade, país e data correspondentes à sua criação; Orquestras executam sinfonias, as mais variadas. Os profundos conhecedores de música são capazes até de selecionar a orquestra que melhor desempenha uma determinada sinfonia. Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Situação-problema: De cada uma sinfonia, é possível saber o seu nome, o compositor e a data de sua criação; Orquestras são constituídas de músicos, os mais variados, de acordo com a sua função dentro da mesma: maestro, flautista etc. Cada músico é catalogado contendo: nome do músico, identidade, nacionalidade e data de nascimento. Um músico só pode pertencer a uma orquestra; Músicos tocam sinfonias, porém em alguns casos, alguns músicos podem mudar de função segundo a sinfonia (por exemplo, um violinista pode virar maestro). Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Situação-problema: A data em que um músico apresenta uma determinada sinfonia também é importante no contexto. Cada músico pode ser apto a tocar vários instrumentos, mas em cada sinfonia toca apenas um instrumento, pois depende de sua função na sinfonia. Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Metodologia: O aluno deverá desenvolver um modelo conceitual de dados, através de ferramenta CASE, a partir da notação de Peter Chen (BrModelo). Após a criação do modelo conceitual de dados, também utilizando o BrModelo, desenvolva o modelo lógico relacional correspondente, com os ajustes necessários, se for o caso. Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Modelo Conceitual (Peter Chen): Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Modelo Lógico(Relacional): Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Mapeamento do Modelo Relacional Na conversão do modelo conceitual para o modelo lógico, temos: Implementação de entidades: - Cada entidade é traduzida para uma tabela. - Cada atributo define uma coluna da tabela. - Atributos identificadores correspondem a chave primária da tabela ou relação. Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Mapeamento do Modelo Relacional Então: Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Implementação de relacionamentos: Alternativas básicas: Tabela própria Adição de colunas a uma das tabelas Fusão de tabelas A escolha de uma dessas alternativas depende da cardinalidade (min/max) do relacionamento. Cada relacionamento temos a alternativa preferida e em alguns casos outra alternativa que pode ser usada, mas não é a melhor. Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Segue a tabela com todas as conversões: Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Segue a tabela com todas Conversão de relacionamento n:n: SÓ PODE FAZER TABELA PRÓPRIA - Chave primária composta das chaves das tabelas participantes; - Chave estrangeira para cada tabela participante; Conversão de relacionamento 1:n: SEMPRE PODE FAZER ADIÇÃO DE COLUNA - Chave estrangeira vai do lado 1 para o lado n. Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Vamos para um exemplo de cada uma para fixar: Primeiro n:n Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Na conversão de relacionamentos n:n temos sempre uma tabela própria com a chave primária composta pelas chaves primárias das duas tabelas. Então, vamos a conversão dos modelos: Modelo Conceitual Modelo Lógico Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Modelo Lógico Atenção: A tabela Lotação apresenta uma Chave Primária Composta pelas Chaves Primárias das duas Tabelas (Departamento e Empregado). Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Agora vamos para um Relacionamento do tipo 1:n. Sempre a melhor alternativa será fazer a adição de coluna, ou seja, criar uma chave estrangeira do lado 1 para o lado n. Modelo Conceitual Modelo Lógico Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Modelo Lógico Atenção: A Chave Estrangeira vai do lado 1 para o lado n. Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Conversão de relacionamento 1:n a segunda alternativa preferida. Se o lado 1 for opcional: PODE FAZER TABELA PRÓPRIA Tabela própria com a chave primária só do lado n. Se o lado 1 for obrigatório: NÃO PODE FAZER TABELA PRÓPRIA Só pode fazer adição de coluna do lado 1 para o lado n. Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Vamos para um exemplo de Tabela Própria: Primeiro 1:n Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Modelo Conceitual Modelo Lógico Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Conversão de 1:1 dois lados obrigatórios Só pode fazer FUSÃO DE TABELAS Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Modelo Conceitual Modelo Lógico Sempre tem que escolher a Chave Primária Neste caso CódigoDep foi a escolhida. Assim, CodEmp fica sendo a chave candidata. Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Conversão de relacionamento 1:1 com um lado opcional Neste caso a melhor alternativa é fazer FUSÃO DE TABELAS Na fusão de tabelas, juntamos as duas tabelas em uma só e a chave primária é o atributo identificador da entidade do lado obrigatório. Veja: Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Modelo Conceitual Modelo Lógico Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional No entanto, também podemos fazer a adição de colunas, embora não seja a alternativa preferida. Nesse caso temos que adicionar a chave estrangeira do lado opcional. Além disso, nesse caso a chave estrangeira é obrigatória e única, ou seja, não se repete. Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional No entanto, também podemos fazer a adição de colunas, embora não seja a alternativa preferida. Nesse caso temos que adicionar a chave estrangeira do lado opcional. Além disso, nesse caso a chave estrangeira é obrigatória e única, ou seja, não se repete. Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Modelo Conceitual Modelo Lógico Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Conversão de relacionamento 1:1 com AMBOS os lados opcionais Melhor opção seria a adição de colunas, e podemos adicionar de qualquer lado para qualquer lado. Fica a cargo do projetista. Modelo de Banco de Dados Modelo Relacional Modelo de Dados Relacional Ou poderia ser feito na própria tabela. Modelo Conceitual Modelo Lógico Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Situação-Problema: Um cliente pode realizar a compra de um ou vários produtos de certa loja de conveniência. Precisa-se ter registrado a data em que a compra foi realizada. Produtos podem ser comprados por um ou vários clientes, que precisam ser identificados pelo cpf, nome, email e telefones. Todo o produto que é cadastrado apresenta a seguinte estrutura: cod, nome, quant e preço. Modelo de Banco de Dados Modelo Relacional ATIVIDADE EXTRA CLASSE ATIVIDADE EXTRA CLASSE Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Metodologia: A partir do modelo conceitual (Peter-Chen), o aluno deverá criar o modelo lógico Relacional correspondente, utilizando o BrModelo, realizando todos os ajustes necessários, quando for o caso. Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Situação-Problema: Um professor leciona uma ou várias disciplinas em certa escola. Uma disciplina só pode ser ministrada por um e apenas um professor que esteja devidamente habilitado. O professor é registrado através dos seguintes campos: matr, cpf, nome, formação e habilitação. Já a disciplina deve ser registrada pelo seu codigo, nome e ementa. Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Metodologia: A partir do modelo conceitual (Crow-Foot), o aluno deverá criar o modelo lógico Relacional correspondente, utilizando o BrModelo, realizando todos os ajustes necessários, quando for o caso. Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Situação-Problema: Um funcionário (matr, nome, setor, função e telefones) pode estar alocado em um e apenas um projeto (cod, nome, descrição, dt_inicial, dt_final, custo). Um projeto sempre tem um ou vários funcionários alocados à ele. De certo, um projeto sempre terá, obrigatoriamente, uma data de início e término. Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Metodologia: A partir do modelo conceitual (Crow-Foot), o aluno deverá criar o modelo lógico Relacional correspondente, utilizando o BrModelo, realizando todos os ajustes necessários, quando for o caso. Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Situação-Problema: Num restaurante um clientepode fazer o pedido de um ou vários pratos. Cada prato é composto por um ou vários itens de pedido, que são identificados pelo id_item, descrição e quant. Cada cliente é cadastrado pelo cpf, nome, endereço (rua e número), email e telefones. Um prato pode ser pedido por um ou vários clientes. Um prato é identificado pelo id_prato, id_item, quant e preço. Sabe-se que todo o pedido vem acompanhado da data em que foi feito. Modelo de Banco de Dados Modelo Relacional Aprendizagem Baseada em Problemas Metodologia: A partir do modelo conceitual (Peter-Chen), o aluno deverá criar o modelo lógico Relacional correspondente, utilizando o BrModelo, realizando todos os ajustes necessários, quando for o caso. Modelo de Banco de Dados Modelo Relacional ATIVIDADE EXTRA CLASSE ATIVIDADE EXTRA CLASSE Modelo de Banco de Dados Modelo Relacional Exercícios: 1) O professor da disciplina atribui exercícios de modelagem e implementação de banco de dados aos alunos 2) O professor da disciplina atribui exercícios de modelagem e implementação de banco de dados aos alunos 3) O professor da disciplina atribui exercícios de modelagem e implementação de banco de dados aos alunos 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 Slide 21 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 Slide 54 Slide 55 Slide 56 Slide 57 Slide 58 Slide 59 Slide 60 Slide 61 Slide 62 Slide 63