Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Conteúdo: Modelagem de Informação Professores: Geraldo Xexéo Geraldo Zimbrão Aula 001 2 Modelagem da Informação O que é? Quem faz? Quando é feita? Como é feita? Por que é feita? 3 O que é um Modelo? Uma representação abstrata e simplificada um sistema observado Permite explicar, testar, analisar, resolver problemas no sistema real Nós veremos como o uso de abstrações nos permite construir um modelo adequado 4 Sistemas Usamos a palavra sistema de muitas formas Sistemas no mundo real Sistemas de informática Composições de objetos, ações, pessoas, etc... Sistemas de computador Programas de computador Sistemas de informação 5 Exemplo de Modelos F = m × a É um modelo matemático para relacionar grandezas físicas Composições de objetos, ações, pessoas, etc... É um modelo de uma célula 6 O que é um Modelo de Informação? É uma representação abstrata da informação em um sistema Mas sistemas de computação também são bastante abstratos 7 Exemplo de Modelo de Informação 8 Exemplo de Modelo de Informação 9 Exemplo de Modelo de Informação (1,1) Diretor Capítulo Ator Pode ser Atua Compõe Dirige Novela HorasTrabalhaAtor horista (0,1) (1,1) (0,1) (0,1) (1,1) (0,n) (1,1) (1,n) (1,n) 10 Quem faz um modelo de informação? Analista de Sistemas Analista de Informações Desenvolvedor 11 Modelagem de Informação: Por que é feita? Facilita a comunicação Desenvolve a compreensão Descreve diferentes perspectivas Define, especificando e limitando, a informação a ser tratada pelo sistema Permite a verificação e validação 12 Verificar x Validar Verificar: Validar Confirmar a correção de um modelo em relação a outro modelo ou a si mesmo Confirmar a correção de um modelo em relação ao mundo real 13 Modelagem de Informação: Quando é feita? A partir do início da análise Progressivamente mais detalhada até a programação Alterada quando necessário 14 Modelagem de Informação: Como é feita? Existem vários métodos Orientado a Objeto - UML Entidades e Relacionamentos Relacional 15 Técnica Geral Entendimento dos conceitos Identificar Conceituar Entender Assimilar Observação dos objetos Representação dos objetos Verificação da fidelidade e coerência Validação do Modelo 16 Níveis de Abstração Lógico Físico Conceitual 17 Modelo Conceitual Independente da tecnologia Não está sujeito às suas limitações Modelo ER Modelo OO Representa o ambiente observado Ideal para entendimento e conversação Estável a longo prazo Tipicamente: 18 Modelo Lógico Modelo Relacional Modelo OO Adota uma tecnologia Não adota um produto, dispositivo específico ou meio de armazenamento Tipicamente: 19 Modelo Físico Tecnologia Produtos Exige o conhecimento físico das estruturas de dados Representa os dados na aplicação Totalmente dependente da solução adotada Modelo Relacional de um SGDB Modelo OO + Relacional Tipicamente: 20 O que veremos no curso? Métodos diferentes de descrever o modelo de informação Algumas formas de usar esses métodos 1 Conteúdo: Abstração O que é uma abstração Formas principais de abstrações Formas adicionais de abstração Aula 002 Professores: Geraldo Xexéo Geraldo Zimbrão 2 Sumário O que é uma abstração Formas principais de abstrações Classificação Composição Formas adicionais de abstração Generalização Identificação Escolha do Caso Normal 3 O que é uma abstração Parte I 4 Abstração Abstração é o processo mental de separar um ou mais elementos de uma totalidade complexa de forma a facilitar a sua compreensão Menos Detalhes Seleção de Detalhes Específicos Algo pode ser considerado abstrato se não existe em nenhum lugar particular no tempo e espaço O que existe são suas instâncias (membros da abstração) 5 Abstração: Mulher Nada abstrato 6 Abstração: Mulher Pouco abstrato 7 Abstração: Mulher Bastante abstrato 8 Abstração: Mulher Muito abstrato 9 Abstração: Mulher Super abstrato 10 Abstração: Célula 11 Abstração: Célula 12 Abstração: explicando (I) Uma abstração é: Uma idéia Um conceito Uma abstração não existe no mundo real Mas pode ser representada de alguma forma 13 Estratégia Simplificação de Detalhe Os detalhes são deixados Vagos Indefinidos Ambíguos 14 Abstração: diferentes formas O mesmo objeto pode ser abstraído de formas diferentes As abstrações formam modelos Mais tarde estudaremos detalhadamente um modelo 15 Diferentes Abstrações 16 Diferentes Abstrações (1) 17 Diferentes Abstrações (2) 18 Diferentes Abstrações (3) 19 Diferentes Abstrações (4) 20 Resumo: Abstração Abstração: Eliminar detalhes que aumentam a complexidade inutilmente Utilizar detalhes que facilitam a compreensão Escolher a forma mais interessante 21 Tipos Básicos de Abstração Parte II 22 Tipos Básicos de Abstração Classificação Agregação 23 Classificação É membro de... É do tipo ... Parte da individualidade do objeto ou sistema analisado é eliminada Consideramos o objeto como um exemplar de uma "classe padrão" Aceitamos que esse objeto, agora uma instância da classe, divide com todas as outras instâncias da classe um conjunto de características. 24 Classificação: Explicação Na classificação o que estamos fazendo é imaginar uma idéia única que descreve, de forma abstrata, todos os objetos de uma classe. Ao eliminar a necessidade de tratar cada objeto de forma única, simplificamos o problema em questão. 25 Classificação: Exemplo Times de Futebol Países Fluminense, Vasco, Botafogo, América, São Paulo, Internacional Brasil, Argentina, França, Estados Unidos 26 Classificação: Exemplo Cachorro Raça Cor Pedigree 27 Classificação: Instanciação Processo reverso da Classificação Escolhe um elemento da classe Individualização Também poderia ser chamada de: 28 Instanciação: Exemplo Classe Estudante de graduação Instância José Maria Classificação Instanciação 29 Agregação ou Composição É feito de É composto de É como vemos uma bicicleta ou um carro. Ao eliminar a necessidade de descrever as partes, simplificamos a compreensão do objeto analisado. Na composição entendemos um objeto complexo formado de um conjunto de outros objetos como um só objeto. 30 Composição: Exemplo (I) Carro Pneu Motor Assentos 31 Composição: Decomposição 32 Mais Abstrações Generalização Identificação Escolha do Caso Normal 33 Generalização (é um, é como) Com a generalização nós somos capazes de entender como uma classe pode ser descrita por outra classe, mais geral. O processo reverso da generalização é a especialização. 34 Generalização: Exemplos Pessoa Funcionário, Aluno,Professor Meio de Transporte Automóvel, Avião, Navio Aparelhos Eletrônicos Computador, Rádio, Televisão 35 Exemplo Longo Meios de Transporte Meios de Transporte Terrestres Meios de Transporte Terrestres Públicos Trem, Metrô, Bonde Meios de Transporte Terrestres Públicos em Vias Férreas 36 Generalização x Classificação Classificação: Classes são outras classes mais bem detalhadas (especificadas) Generalização Objetos formam classes 37 Generalização: Efeito nos Objetos Com a generalização podemos compreender uma relação muito comum entre classes, que é a que permite que qualquer objeto de uma classe possa ser visto, de uma forma mais geral, como um objeto de outra classe. Utilizando judiciosamente a generalização podemos simplificar a forma de tratar objetos de classes similares. 38 Identificação Com a identificação nós somos capazes de entender como caracterizar unicamente um objeto. Ao identificar unicamente um objeto podemos separá-lo de outro objeto semelhante e atribuir a entidades específicas atributos e características que só pertencem a ela, e não pertencem a outros elementos daquela classe. Um nome identifica uma pessoa 39 Instância x Identidade Há uma diferença entre instanciar e identificar. A identificaçãopermite a que duas instâncias sejam reconhecidas como distintas ou como representações de um mesmo objeto (normalmente devendo ser reunidas em uma). Uma instância deve possuir uma identificação e uma identificação se aplica a uma instância. 40 Escolha do Caso Normal O mundo é muito complicado Começamos sempre pelo modo mais fácil Muitas coisas são feitas normalmente, ou idealmente, de um modo fácil, porém permitem muitas exceções e tratamentos especiais "Cenário Feliz" 41 Escolha do Caso Normal Exemplo Normalmente, precisamos apenas do nome da pessoa para identificá-la Porém... Existem pessoas com nome igual, logo vamos usar o CPF Porém.... Existem pessoas sem CPF, então vamos usar o nome próprio, o nome do pai, o nome da mãe e mais um CPF identificador, dela ou dos pais. Porém, assim já fica complicado demais... É melhor gerar um número de matrícula... 42 Conclusão Abstrações permitem que os problemas e soluções sejam tratados de maneira adequada Abstrações eliminam detalhes indesejados Abstrações reforçam detalhes importantes 43 Conclusão Abstrações Básicas Abstrações Mais Avançadas Classificação / Instanciação Composição / Decomposição Generalização / Especialização Identificação Escolha do Caso Normal 1 Conteúdo: 5W2H Professores: Geraldo Xexéo Geraldo Zimbrão Aula 003 3 O que é? 5W2H é o acrônimo em inglês para as palavras What When Who Where Why How How Much "Os Sete Bons Amigos" 4 Traduzindo What? Who? When? Where? Why? How? How Much? O quê? Quem? Quando? Onde? Por que? Como? Quanto Custa? 5 A Técnica 5W2H Ao tentar resolver uma situação, responda a todas essas questões Cada resposta deve ser clara ou Não ser necessária, por não fazer sentido no contexto Precisa ser melhor esclarecida 6 Exemplo de Uso: Em uma reunião de projeto, cada item deverá ser resolvido definindo Quem é responsável Quando deve ser feito/entregue? Onde deve ser feito/entregue? Por que deve ser feito? Como vai ser feito? Por quanto será feito? O que deve ser feito 7 Em um Modelo Qualquer O que é essa parte? Como explicá-la Quem apresentou, solicitou ou necessita dessa parte? Por que essa parte está presente? O que ela significa? Onde essa parte vai ser usada? Como essa parte vai ser usada? Quanto custará usar essa parte? Quando essa parte vai ser usada? 8 Ao definir uma entidade Perguntas 5W2H Que outras perguntas você pode imaginar? O que ela é? Quando deve ser utilizada? Quem é o responsável por ela? Em que parte do sistema será utilizada? Por que ela é necessária? Como ela é? (como será implementada, quais seus atributos?) Quanto espaço ela ocupará (fator de custo)? Quem pediu, quem indicou, quem usa? 9 Por que isso é útil? Essas perguntas são abertas, não exigem apenas uma resposta sim ou não, mas sim que pensemos sobre elas Vamos usá-las para verificar nossos modelos Elas cobrem grande parte das preocupações que temos ao desenvolver um modelo 1 Conteúdo: Modelo de Entidades e Relacionamentos Professores: Geraldo Xexéo Geraldo Zimbrão Aula 004 2 Modelo de Entidades e Relacionamentos Um modelo gráfico que descreve o mundo como "...cheio de coisas que possuem características próprias e que se relacionam entre si" Diagrama de Entidades e Relacionamentos 3 Conhecendo o Modelo (1) (1,1) Diretor Capítulo Ator Pode ser Atua Compõe Dirige Novela HorasTrabalhaAtor horista (0,1) (1,1) (0,1) (0,1) (1,1) (0,n) (1,1) (1,n) (1,n) 4 Conhecendo o Modelo (2) 5 Muitos Diagramas? Vários autores e empresas lançaram formas diferentes de descrever o modelo de entidades e relacionamentos Alguns se consideram modelos diferentes, mas todos seguem os mesmos princípios 6 Modelo de Chen (o original) Entidades: retângulo Relacionamentos: losangos Atributos: Círculos 7 Modelos Engenharia da Informação (Erwin) Entidades: Retângulos Atributos: Listados no retângulo Relacionamentos: Apenas as linhas, com símbolos que lembram pés de galinha 8 Modelo IDEF1X (Erwin) Entidades: Retângulos Atributos: Listados no retângulo Relacionamentos: Apenas as linhas, com bolas nas pontas 9 Esses Modelos Não São Totalmente Iguais Na prática, cada modelo apresenta algumas sutis diferenças, que podem ajudar ou atrapalhar em alguns momentos Os modelos mais modernos são mais apropriados ao desenho em ferramentas CASE 10 Qual notação adotaremos Nós adotaremos a notação da Engenharia da Informação Nós veremos alguns casos específicos em outras notações Os pés de galinha Para ampliar nossos horizontes 11 Voltemos ao Início Um modelo que descreve o mundo como "...cheio de coisas que possuem características próprias e que se relacionam entre si" Coisas = Entidades 12 O que são as coisas? Conceitos Pessoas Objetos Eventos Coisas Abstratas Etc... O que precisarmos para modelar a informação em um sistema 13 Exigência Cada "coisa" modelada deve poder ser identificada unicamente Ou seja, devemos ser capazes de identificar as instâncias 14 Entidades Uma entidade é uma pessoa, objeto, local, animal, acontecimento, organização ou outra idéia abstrata sobre a qual o sistema deve se lembrar alguma coisa. Uma entidade é uma classe de objetos Abstração de Classificação Uma entidade é um conjunto não vazio de objetos A entidade deve ser de interesse para o sistema sendo modelado 15 Entidades Cada instância de uma determinada entidade tem características similares (mas não iguais), o mesmo comportamento e uma identidade própria. Entidades não possuem valor Entidades possuem características, e estas possuem valores Se você pode dar um valor a uma entidade, algo está errado em seu modelo 16 Exemplo de Entidades Locadora de Vídeo Filme Na Escola Primária A locadora pode ter várias fitas de um mesmo filme Fita Cliente Empréstimo Aluno Turma Professor 17 Diagramando as Entidades Normalmente as entidades são modeladas como retângulos Nome da entidade 18 Diagrama Inicial para a Escola 19 Características das Entidades Um modelo que descreve o mundo como "...cheio de coisas que possuem características próprias e que se relacionam entre si" "...Entidades que possuem características próprias e que se relacionam entre si" Características = Atributos 20 Atributos Características que toda instância possui, mas que variam de valor entre uma instância e outra Algumas características podem ser opcionais Algumas podem variar mais do que outras Atributos possuem valor 21 Exemplo de Atributos Pessoa Nome Filme CPF Data de Nascimento Nome Diretor Data de Lançamento Estúdio Ator Principal Atriz Principal 22 Que atributos escolher para uma Entidade? Aqueles que são necessários e suficientes Lembrar das principais características das nossas abstrações Eliminar detalhes que não são importantes Reforçar os detalhes importantes 23 Exemplo de Atributos Filme (atributos possíveis) Nome Filme (atributos escolhidos) Diretor Data de Lançamento Ator Principal Atriz Principal Diretor de Som Cameraman Empresa de divulgação Cozinheiro ... Estúdio Nome Diretor Estúdio Ator Principal Atriz Principal Data de Lançamento 24 Domínio Um atributo deve possuir um valor O valor deve ser de um domínio O domínio é o conjunto de valores possíveis para os atributos Conhecido também como Tipo 25 Domínios Gerais Números Strings Data/Hora Lógicos (Sim ou Não, Verdadeiro ou Falso) Reais Inteiros Moeda (reais, dólares) 26 Domínios Específicos Listas de Valores Valores com Regras Cores Salas de um prédio CPF CNPJ 27 Notação para Atributos Nossos atributos serão listados em nossas entidades Precisamos modificar um pouco nosso desenho original 28 Notação para Atributos Nome da Entidade Atributo Identificador Veremos isso logo Atributos "Comuns" 29 Notação para Atributos Nome da Entidade Atributo Identificador Veremos isso logo Atributos "Comuns" 30 Notação paraAtributos Nome da Entidade Atributo Identificador Veremos isso logo Atributos "Comuns" 31 Notação para Atributos Podemos também listar os domínios de cada atributo 32 Notação Chen Para Atributos 33 As Entidades se Relacionam... Um modelo que descreve o mundo como "...cheio de coisas que possuem características próprias e que se relacionam entre si" "...Entidades que possuem atributos e que se relacionam entre si" se relacionam entre si = relacionamentos 34 Relacionamentos No mundo real, as entidades "se relacionam" com outras entidades Na Escola Na Locadora Professores dão aula para uma turma Aluno freqüentam uma turma Clientes alugam fitas 35 Representação dos Relacionamentos Relacionamentos são representados por linhas As linhas possuem símbolos que vamos explicar 36 O que é um relacionamento Uma entidade representa um conjunto de elementos de uma mesma classe Quando duas entidades se relacionam, podemos definir uma relação, no sentido matemático do termo, entre os dois conjuntos 37 Exemplo de Relacionamento Esse conjunto representa a entidade Turma Estamos aplicando os conceitos mais básicos de matemática: conjunto e elemento Matemática Português Ciências Também poderíamos usar uma notação mais "matemática" Turma = { Matemática, Português, Ciências} 38 Exemplo de Relacionamento Esse conjunto representa a entidade Aluno Também podemos descrever da mesma forma Aluno = { Alice, Bruno, Carlos, Daniela } Alice Bruno Carlos Daniela 39 Exemplo de Relacionamento Que alunos freqüentam que turmas? As possibilidades são muitas Cada aluno pode freqüentar quantas turmas? Quantas alunos podem freqüentar uma turma? 40 Exemplo de Relacionamento Por exemplo Matemática: Alice, Bruno e Carlos Português: Alice, Carlos e Daniela Ciência: ninguém Matemática Português Ciências Alice Bruno Carlos Daniela 41 O que é um Relacionamento Um relacionamento entre duas Entidades indica que as instâncias de uma Entidade podem se relacionar, uma certa quantidade de vezes, com instâncias da outra entidade Matemática Português Ciências Alice Bruno Carlos Daniela 42 Quantas Vezes? A pergunta sobre "quantas vezes as instâncias podem se relacionar" é muito importante e deve ser modelada A resposta é modelada na Cardinalidade do relacionamento 43 Cardinalidades Simples A cardinalidade pode ser vista de uma maneira simples, indicando-se quantas vezes, no máximo, uma instância pode se relacionar com uma instância da outra entidade 1 x 1 1 x N N x M 44 Cardinalidade 1x1 Cada instância de uma entidade só pode se relacionar com uma instância de outra entidade Como um "casamento" 45 1x1: Exemplo No modelo de uma Igreja No modelo de uma empresa de caminhões Entidades: Homem, Mulher Relacionamento: Casamento Entidades: Caminhão, Reboque Relacionamento: Usando 46 Cardinalidade 1xN Cada instância de uma das entidades pode ser relacionar com várias instâncias da outra entidade, mas essas só podem se relacionar com uma da primeira 47 1xN: Exemplo Em uma maternidade Em uma escola primária Entidade: Mãe, Filho/a Relacionamento: "deu a luz" Entidades: Turma, Aluno Relacionamento: estuda Em uma universidade esse relacionamento não é mais 1xN 48 Cardinalidade NxM Quando são possíveis quantos relacionamentos quantos quisermos nos dois lados Relacionamento bastante comum 49 NxM: Exemplo Falando sobre Filmes Entidades: Ator, Filme Relacionamento: Atua 50 Detalhando os Relacionamentos Para melhor detalhar os relacionamentos, normalmente falamos não só da Cardinalidade Máxima, mas também da Cardinalidade Mínima A cardinalidade mínima é sempre 0 ou 1 A cardinalidade máxima é sempre 1 ou N 51 Cardinalidade Mínima = Obrigatoriedade Assim ficamos sabemos, basicamente, se o relacionamento é obrigatório ou opcional Isso é, se cada instância da entidade deve ter, ou não, um relacionamento com instâncias da outra entidade 52 Desenhando Relacionamentos 53 Desenhando Relacionamentos 54 Lendo Relacionamentos 55 Conclusão "...cheio de coisas que possuem características próprias e que se relacionam entre si" "...Entidades que possuem atributos e relacionamentos 56 Conclusão Entidades são classes de objetos Entidades possuem características, descritas por Atributos Atributos possuem valores de um Domínio Entidades se relacionam Devem ser definidos um número mínimo e máximo de relacionamentos entre as instâncias das Entidades 1 Professores: Geraldo Xexéo Geraldo Zimbrão Conteúdo: Ferramentas CASE para Modelo de Entidades e Relacionamento Aula 005 2 Ferramentas Erwin DBdesigner DIA Visio Ferramentas ligadas a SGDBs Outras 3 Erwin Líder de mercado Exclusivo Windows Notações Integrado com vários SGDB IDEF1X IE 4 5 DBDesigner Gratuita Windows/Linux Notações Integração forte com MySQL Própria Própria com cardinalidade IE (Crow’s foot) IDEF1X (tradicional) 6 7 DIA Ferramenta de desenho ER Tradicional Linhas a vontade Não é um CASE Faz o que quiser, mas erra como quiser também 8 9 Visio Ferramenta de desenho CASE limitado Comunica com algumas bases Tabelas e não entidades Notação própria, ligada diretamente ao modelo relacional 10 11 Ferramentas Ligadas a SGDBs Oracle IBM Microsoft SQL ... Todos esses produtos/vendedores possuem algum nível de CASE, desde visualização simples até modelagem completa 12 Outros... Vários vendedores independentes fornecem ferramentas CASE para ER System Architect 1 Professores: Geraldo Xexéo Geraldo Zimbrão Conteúdo: Modelo de Entidades e Relacionamentos Exercício 1 Aula 006 2 Administradora de Imóveis Construa um diagrama ER (apenas entidades e relacionamentos com cardinalidades máximas) para a administradora de imóveis descrita abaixo. A administradora trabalha administrando aluguéis em condomínios inteiros. 3 Administradora de Imóveis As seguintes informaões foram obtidas da Administradora A administradora administra condomínios formados por unidades condominiais. As unidades pertencem a uma pessoa, ou mais. Uma pessoa pode possuir diversas unidades. Apenas uma pessoa pode alugar uma unidade. Uma pessoa pode alugar diversas unidades. 4 Quem pode ser Entidade As seguintes informações foram obtidas da Administradora A administradora administra condomínios formados por unidades condominiais. As unidades pertencem a uma pessoa, ou mais. Uma pessoa pode possuir diversas unidades. Apenas uma pessoa pode alugar uma unidade. 5 Que Coisas? Candidatas a Entidade Administradora Condomínio Unidade Pessoa 6 Entidade Condomínio? Existem vários condomínios A administradora trabalha com eles Eles possuem unidades Boa Entidade 7 Unidade Existem muitas unidades Elas são possuídas e alugadas Boa Entidade 8 Pessoa Existem várias pessoas Elas possuem e alugam Boa Entidade 9 Entidade Administradora? Quantas instâncias de administradoras existem no mundo, para esse modelo? Não é necessário criar uma entidade Como o sistema é para uma administradora única, só uma instância Regra: Entidades que só possuem uma instância não são boas entidades 10 E o diagrama? (Erwin) 11 Entendendo o Diagrama Os condomínios são formados por unidades residenciais Pelo menos uma unidade no condomínio 12 Entendendo o Diagrama Uma unidade está só em um condomínio, e está em algum condomínio obrigatoriamente Traço simples Linha contínua: o condomínio faz parte da identificação da unidade 13 Entendendo o Diagrama Entre Unidade e Pessoa existem 2 relacionamentos Um indica a posse de um apartamento Outro indica o aluguel 14 Entendendo o Diagrama Uma unidade deve ser de alguém O relacionamento de posse é obrigatório 15 Entendendo o Diagrama Uma unidade deve ser de alguém O relacionamento de posse é obrigatório Uma unidade pode ser alugada por alguém O relacionamento aluga não é obrigatório16 Entendendo o Diagrama As linhas tracejadas indicam que a unidade não é identificada por seu proprietário ou seu inquilino 17 Resultado Final Agora você já pode ler esse diagrama! 1 Professores: Geraldo Xexéo Geraldo Zimbrão Conteúdo: Modelo de Entidades e Relacionamentos Exercício 2 Aula 007 2 Locadora de Vídeo Uma pequena locadora de vídeos Modelo de Dados de um sistema para controlar empréstimo. 3 As Fitas Cada fita recebe um identificador próprio, Para cada fita é controlado que filme ela contém. Cada fita contém somente um filme. no formato apropriado para código de barras. Fita Filme 4 Os Filmes Para cada filme, é necessário saber seu título e sua categoria (comédia, drama, aventura, ...). Para cada filme há pelo menos uma fita Não existem cópias de filmes Filmes longos, não duas cópias 5 Os Atores Os clientes podem desejar encontrar os filmes estrelados pelo seu ator/atriz predileto. Para cada ator os clientes às vezes desejam saber o nome real, bem como a data de nascimento. Por isso, é necessário manter a informação dos atores que estrelam em cada filme. Nem todo filme possui estrelas. Cliente Ator 6 Os Clientes A locadora possui muitos clientes cadastrados. Somente clientes cadastrados podem alugar fitas. Para cada cliente é necessário saber seu nome e sobrenome, seu telefone e seu endereço. Além disso, cada cliente recebe um número de associado. 7 Os Empréstimos Finalmente, desejamos saber que fitas cada cliente tem emprestadas. Um cliente pode ter várias fitas em um instante no tempo. Não são mantidos registros históricos de aluguéis. 8 Lista de Entidades Filme Fita Ator Cliente Empréstimo? Filme Fita Ator Cliente 9 Empréstimo O Empréstimo é um relacionamento entre duas entidades Precisamos guardar algum dado sobre o empréstimo Fica como relacionamento No caso, não foi pedido 10 Diagrama E-R Simples 11 Explicando ER Simples Cada Fita contém um filme 12 Explicando ER Simples Cada Fita contém um filme Cada Filme está em pelo menos 1 fita, possivelmente em mais de uma fita 13 Explicando ER Simples Por que um retângulo é de bordas retas e o outro de bordas arredondadas? Mais tarde veremos a questão da "dependência" Sem referenciar um filme Indica que a fita não existe sem o filme 14 Explicando ER Simples Filmes e Atores... Um filme tem muitos atores Um ator pode atuar em muitos filmes No ERWin, não é possível indicar a cardinalidade mínima em relacionamentos NxM Suposta zero 15 Explicando ER Simples No ERWIN, o relacionamento 1:N só representa a cardinalidade mínima se for zero Nulls allowed 16 Explicando ER Simples A linha pontilhada indica que o relacionamento não é identificador Não há dependência Veremos isso mais tarde 17 Explicando ER Simples Uma fita pode estar com apenas um cliente Uma fita pode não estar com nenhum cliente Um cliente pode estar com nenhuma ou várias fitas 18 O Mesmo Modelo em IDEF1X 19 O Mesmo Modelo no DIA 20 O Mesmo Modelo no DBDesigner (1) 21 O que essa tabela faz aí? O DBDesigner é uma adaptação direta do modelo relacional Não são permitidos relacionamentos NxM Deve ser criado uma entidade para representar isso 22 O Mesmo Modelo no DB Designer (2) 23 O Mesmo Modelo no DB Designer (3) 24 O Mesmo Modelo no DB Designer (4) 25 Colocando os Atributos 26 Dando Tipos aos Atributos 27 Algumas Melhorias Números que não sofrem operações não são verdadeiramente números, mas sim Strings 28 Uma Grande Mudança 29 Uma Grande Mudança 30 Uma Grande Mudança Se quisermos controlar bem as categorias possíveis Se quisermos registrar que os filmes só podem ser de algumas categorias Usamos uma entidade para definir uma especificação Descrito mais a frente no curso 1 Conteúdo: O Relacionamento de Herança Professores: Geraldo Xexéo Geraldo Zimbrão Aula 008 2 Lembrando "...cheio de coisas que possuem características próprias e que se relacionam entre si" "...Entidades que possuem atributos e relacionamentos" 3 Lembrando Entidades são classes de objetos Entidades possuem características, descritas por Atributos Atributos possuem valores de um Domínio Entidades se relacionam Devem ser definidos um número mínimo e máximo de relacionamentos entre as instâncias das Entidades 4 Lembrando Generalização Com a generalização nós somos capazes de entender como uma classe pode ser descrita por outra classe, mais geral. O processo reverso da generalização é a especialização. 5 O Relacionamento de Herança Nos modelos modernos de Entidades e Relacionamentos aparece a possibilidade de definir relacionamentos especiais de generalização/especialização Normalmente esses relacionamentos são conhecidos como herança Termos vindo da orientação a objetos 6 Exemplos Aluno: Aluno de Graduação, Aluno de Pós-Graduação, Aluno de Extensão Animal: Carnívoro, Herbívoro, Onívoro Automóveis: de Passeio, Utilitários Funcionário: RJU, CLT, terceirizado Professor: Substituto, Auxiliar, Adjunto, Titular 7 Qual a dificuldade? Na prática, nenhuma dificuldade no modelo conceitual Na implementação futura, dificuldades de encaixá-lo nos SGDB disponíveis 8 Tipos de Herança Quanto a totalidade da cobertura Total Parcial Quanto a exclusividade da cobertura Exclusiva Sobreposta 9 Herança Total As instâncias que pertencem a entidade mais geral pertencem a pelo menos uma das entidade mais específicas Exemplo Aluno de Universidade (classe mais geral) Aluno de Graduação, Aluno de Pós Graduação, Aluno de Extensão (classes mais específicas) 10 Herança Parcial Algumas instâncias pertencem a entidade mais geral e não pertencem a nenhuma entidade mais específica Exemplo Cliente (classe mais geral) Cliente VIP (classe mais específica) 11 Herança Exclusiva Se uma instâncias pertence a uma entidade mais específica, não pertence a outra Exemplo Automóvel (classe mais geral) Carro de Passeio (classe mais específica) Utilitário (classe mais específica) 12 Herança Sobreposta Uma instância pode pertencer a várias entidades específicas sob uma entidade mais geral Exemplo Aluno de Universidade (classe mais geral) Aluno de Graduação, Aluno de Pós Graduação, Aluno de Extensão (classes mais específicas) 13 Aviso A Herança sobreposta deve ser evitada Deve ser substituída por entidades que representem os papéis associados Devemos privilegiar as heranças totais e exclusivas 14 Desenhando Herança - IE 15 Desenhando Herança - IDEF1X 1 Conteúdo: Desenvolvendo o Modelo ER Professores: Geraldo Xexéo Geraldo Zimbrão Aula 009 2 Lembrando "...cheio de coisas que possuem características próprias e que se relacionam entre si" "...Entidades que possuem atributos e relacionamentos" 3 Lembrando Entidades Uma entidade é uma pessoa, objeto, local, animal, acontecimento, organização ou outra idéia abstrata sobre a qual o sistema deve se lembrar alguma coisa 4 Um Modelo Muito Simples O sistema trata das escolas da cidade e seus alunos. Cada aluno está registrado em no máximo uma escola, ou não estar registrado em nenhuma. Uma escola pode ter zero, um ou mais alunos. O aluno é identificado por seu CPF. A escola é identificada por seu nome. Da escola, só precisamos saber o endereço. Do aluno, precisamos saber seu nome, seu endereço, o nome do seu pai e o nome da sua mãe 5 Escola e seus Alunos 6 A Busca Por Entidades Lembrando da Técnica Geral com Modelos Observação dos objetos Entendimento dos conceitos Identificar Conceituar Entender Assimilar Representação dos objetos Verificação da fidelidade e coerência Validação do Modelo 7 Entidades no Discurso No discurso fluente durante uma entrevista, entidades são geralmente substantivos ocupando o papel de sujeito ou objeto Os funcionários recebem salário Os caminhões transportam cargas 8 Entidades são Completas Outro sinal importante da necessidade de uma entidadeé o fato de algo que precisa ser lembrado representar um conceito ou idéia completa. Funcionário Caminhão Salário? Carga? 9 Tipos Básicos de Entidade Objetos tangíveis Papéis exercidos Eventos Interações Especificações 10 Objetos tangíveis Tangível: o que podemos tocar Representam um objeto que existe claramente no mundo real Pessoas, Móveis, Veículos, Prédios, Documentos, etc... Produtos, equipamentos 11 A Escola é um objeto tangível 12 Papéis exercidos Objetos podem assumir funções diferentes Principalmente Papéis assumidos por pessoas Papéis diferentes Funcionário, Professor, Aluno Como no teatro 13 Aluno é um Papel (de uma pessoa) 14 Interações Marcam a interação entre dois ou mais objetos Também implicam em observar o tempo Venda: Comprador, Vendendor, Objeto da Venda Casamento: Marido, Mulher, Celebrante, Testemunhas 15 Estendendo nossa Escola Um aluno faz uma Matrícula em uma certa data em uma escola Essa matrícula é identificada pela escola, pelo aluno e pela data 16 Exemplo de Interação Interação A linha contínua indica relacionamento identificador 17 Exemplo de Interação Acontece em um período de tempo Exigem guardar data, hora, duração Reunião, Aula 18 Estendendo ainda mais Cada escola marca datas de reuniões de pais e filhos Cada reunião é identificada pela data e pela escola Cada reunião deve informar o motivo 19 Exemplo de Evento Evento 20 Observação Interação e eventos são semelhantes, pois nelas o tempo é importante. Não há necessidade de se preocupar em classificar os objetos, basta encontrá-los Outros autores unificam os dois 21 Especificações Uma entidade que serve para classificar outra entidade Serve para substituir um atribute que rotula a classe, controlando os possíveis valores Exemplo: Em um sistema de carros usados, a entidade Automóvel pode ter um atributo fábrica ou o modelo ER pode ter uma entidade Fábrica relacionada com ele 22 Estendendo ainda mais... Cada aluno pertencerá a um tipo Cada tipo de aluno é identificado por um nome Cada tipo de aluno dá direito a um desconto, que é explicado em um motivo 23 Exemplo de especificação Especificação 24 Atenção para as Mudanças Aluno passou a ser identificado por duas "coisas" Um relacionamento Um atributo 25 Dicas Sobre Entidades Toda entidade deve ter um papel único e definido no negócio, se você não pode explicá-la, provavelmente não precisa se lembrar dela. Entidades devem ter ao menos um atributo que as descrevam é preferível que tenham vários. Entidades devem ter mais de uma instância. Entidades não possuem valores, apenas atributos possuem valores. Entidades devem possuir instâncias unicamente identificáveis. 26 Dicas Sobre Entidades Pessoas e organizações que interagem com o sistema são candidatos a entidade quando: Para gerar relatórios ou processar dados entrados Precisamos nos lembrar alguma coisa específica sobre elas Devemos aplicar essa regra em relação à necessidade de identificação e endereçamento, por exemplo. Isso não se aplica a "logons" ou "passwords" utilizados para a segurança do sistema, pois segurança é um problema tratado no projeto físico. 27 Dicas Sobre Entidades Relatórios raramente são entidades. Normalmente eles são apenas os resultados de um processo que acessa várias entidades. Nomes de colunas indicam entidades ou seus atributos. Porém, nenhum valor calculado ou derivado é atributo ou entidade no modelo conceitual. Linhas de relatório geralmente são entidades. Substantivos em regras de negócio são normalmente entidades 28 Dicas Sobre Entidades Produtos, quando não são únicos, são normalmente entidades. Papéis, como funcionário, atendente, apostador, etc., são bons candidatos para entidades. Um grupo de dados que se repete em uma entrada ou saída de dados é normalmente uma entidade (ou mais). 29 Onde Encontrar Entidades? Relatórios Formulários de entrada de dados Arquivos, tanto de papel quanto no computador. Fichas, como fichas de cadastro, de empréstimo, etc. Pedidos, requisições e documentos do gênero. Documentos contábeis e fiscais, como nota fiscal. 30 Onde Encontrar Entidades? Planilhas de dados, em papel ou eletrônicas. Listagens, registros, agendas, protocolos e outros documentos de trabalho. Sistemas já existentes Bancos de dados já existentes Outra forma de encontrar entidades é buscar sistemas semelhantes já resolvidos e padrões de análise ou padrões internacionais ou nacionais sobre o assunto sendo tratado. 31 Descrevendo as Entidades Nome Definição Exemplos Atributos Relacionamentos Correlação, descrevendo outras partes da análise que se referem a ela Sinônimos Homônimos Regras e exceções relacionadas a essa entidade, incluindo regras de negócio. Outros comentários e observações Uma idéia da quantidade esperada de instâncias no sistema 32 Sinônimo e Homônimo Sinônimo = palavras diferentes, conceito igual Homônimo = palavras iguais, conceito diferente Belo, bonito Manga De camisa, a fruta, do verbo mangar, 33 Ao definir uma entidade Perguntas 5W2H Que outras perguntas você pode imaginar? O que ela é? Quando deve ser utilizada? Quem é o responsável por ela? Em que parte do sistema será utilizada? Por que ela é necessária? Como ela é? (como será implementada, quais seus atributos?) Quanto espaço ela ocupará (fator de custo)? Quem pediu, quem indicou, quem usa? 34 Por que isso é útil? Essas perguntas são abertas, não exigem apenas uma resposta sim ou não, mas sim que pensemos sobre elas Elas cobrem grande parte das preocupações que temos ao desenvolver um modelo 35 Atributos Todo atributo descreve de alguma forma a instância da entidade. Atributos podem ser Nominativos Referenciais 36 Atributos Nominativos Alguns atributos são especiais e definem a entidade Mesmo que não de forma única Nome Endereço 37 Atributo Referencial Permitem definir outro objeto que não é o sendo tratado É uma opção do analista criar entidades que permitem a substituição de um atributo referencial por um relacionamento Um exemplo de atributo referencial é "fábrica" para "automóvel", referenciando a fábrica onde foi construído. Especificações 38 Como Descrever um Atributo? Descrição Tipos de nulos aceitos Domínio (valores válidos, como inteiro, real, string ou uma lista de valores, ou ainda tipos criados pelo projetista) Exemplos 39 Em uma conversação Atributos possuem valor Definem qualidades, características, propriedades São substantivos São conceitos incompletos, que não existem por si 40 Onde encontrá-los? Colunas e Campos de relatórios, formulários e planilhas Quando seu nome referencia o valor de algo para uma entidade O nome do aluno 41 Onde Encontrar Relacionamentos? A principal característica das entidades de um sistema é formar uma rede de relacionamentos Aparecem quando uma entidade se refere a outra Funcionário do departamento Contrato do veículo 42 Relacionamentos e Verbos Os relacionamentos aparecem nos verbos Máquina fabrica produto Empresa contrata empresa Aluno assiste aula 43 Relacionamentos comuns Compõe É um (herança) Faz Gera Atende Usa Possui 44 Relacionamentos Identificam Os relacionamentos também servem para identificar entidades Além dos atributos e até mesmo sem exigir nenhum atributo 45 Descrevendo Relacionamentos O nome escolhido para o relacionamento pode estar na voz ativa (mãe gera filho) ou na voz passiva (filho é gerado por mãe). Algumas notações permitem que se usem os dois nomes (um por cima e um por baixo da linha de relacionamento). Geralmente se usa o nome que permite a leitura do relacionamento da esquerda para a direta na parte de cima da linha (ou se dá preferência a esse nome quando apenas um pode ser utilizado). 46 Como descrevê-los? Nome Função no sistema Como? Quando? Por que? Por quem? Valores normais (quantidades normais) Comentários São estabelecidos São destruídos47 Identificando Entidades Atributos e Relacionamentos permitem criar uma identididade única para as entidades No mínimo, o somatório de todos os atributos e relacionamentos será essa identificação Se todos os valores de atributos e relacionamentos forem iguais, as entidades são a mesma entidade 48 Identificador Conjunto de atributos e relacionamentos que identifica unicamente a entidade Existem vários possíveis Chaves candidatas (na nomenclatura relacional) Um deve ser escolhido Chave primária (na nomenclatura relacional) 49 Como escolher? Escolha o mais significativo no caso do modelo conceitual Com a evolução da análise, muitas vezes acontece de trocarmos essa escolha por um mais fácil de usar 50 Exemplo 51 Manipulando o Modelo Operações Top-Down Operações Bottom-Up 52 Top-Down Dividir Entidade em Entidade e Relacionamento Transformar Atributo em Entidade Criar Sub-entidades Dividir Entididade Dividir Relacionamento Criar Entidade em Relacionamento Criar Atributo 53 Dividir Entidade em 2 Entidades e Relacionamento Uma entidade pode estar escondendo duas entidades que se relacionam Escola Escola e Turma 54 Transformar Atributo em Entidade Uma atributo pode ser um conceito complexo que precisa ser descrito como uma entidade Nome do Pai, Nome da Mãe podem ser transformados em uma entidade chamada Responsável Legal 55 Criar Sub-entidades Uma entidade pode ser dividida em vários tipos Escola pode ser dividida em escola de ensino básico e escola de ensino médio 56 Dividir Entidade Uma entidade pode ser dividida em entidades que não se relacionam diretamente Reunião pode ser dividida em reunião de pais e professores e reuniões internas 57 Dividir Relacionamento Um relacionamento pode ser dividido em vários Aluno pode se matricular em uma escola Aluno pode ser formado por uma escola 58 Criar Entidade em Relacionamento Um relacionamento pode ser tão complexo que merece ser descrito como entidade Matrícula era um relacionamento, mas como precisa guardar alguma informação (a data), virou entidade Tendência dos métodos atuais, influência do modelo relacional 59 Criar Atributo Relacionamentos e Entidades podem necessitar de novos atributos Aluno pode precisar de uma atributo Telefone 60 Operações Bottom-Up Criar Entidade Unir Atributos em Entidades Hierarquizar entidades Criar Relacionamentos entre Entidades 61 Criar Entidade Ação mais normal no nosso caso Sempre buscaremos criar as principais entidades desde o início 63 Hierarquizar entidades Algumas vezes criamos as entidades "soltas" e depois percebemos que há uma hierarquia Equivale a criar um relacionamento ou uma herança 64 Criar Relacionamentos entre Entidades Ação normal no nosso caso Esperamos que a maioria dos nossos relacionamentos seja criada assim 65 Conclusão Possuímos agora bastante ferramentas de trabalho com o diagrama de Entidades e Relacionamentos Podemos nos exercitar mais e desenvolver modelos mais complexos Conteúdo: Modelo de Entidades e Relacionamentos Exercício 3 - Universidade do povo 1 Professores: Geraldo Xexéo Geraldo Zimbrão Aula 010 2 Leitura Por favor leiam o exercício chamado Sistema Acadêmico da Universidade do Povo Primeiro leiam o exercício todo Depois, vamos resolver o exercício por partes No final, juntaremos as partes 3 Relembrando "...cheio de coisas que possuem características próprias e que se relacionam entre si" "...Entidades que possuem atributos e relacionamentos" 4 Relembrando Uma entidade é uma pessoa, objeto, local, animal, acontecimento, organização ou outra idéia abstrata sobre a qual o sistema deve se lembrar alguma coisa 5 Relembrando Entidades Objetos tangíveis Papéis exercidos Eventos Interações Especificações 6 Relembrando Entidades não possuem valores Entidades são conceitos completos Atributos não são conceitos completos Atributos possuem valor 7 Estrutura da Universidade A UniPovo é dividida em centros universitários No sistema acadêmico só precisam ser conhecidos o identificador do centro (CCH, CCE, etc.) e seu nome Cada centro universitário é composto de várias unidades. Exemplos de centros são: O Centro de Ciências Exatas (CCE), o Centro de Ciências da Saúde (CCS) e o Centro de Ciências Humanas (CCH) Uma unidade pode ser um instituto, um hospital, uma escola, e várias outras denominações que são agregadas ao nome Por exemplo, a Escola Politécnica (EsPol) é uma unidade, como são também o Hospital Universitário (HU) e o Museu da Ciência (MC) 8 Estrutura da Universidade Todo centro possui pelo menos uma unidade, e todas as unidades pertencem a algum centro As unidades, como os centros, também só precisam ser identificadas pelo seu código (EsPol, HU, etc.) e seu nome Por sua vez, as unidades são também obrigatoriamente divididas em departamentos, que só podem existir dentro das Unidades Na verdade, o centro a que pertence faz parte da identificação da Unidade Os departamentos também possuem um nome e um código (como Departamento de Ciência da Computação - DCC), e algumas vezes nem se chamam departamento (como Programa de Engenharia Oceânica - PEO) 9 Entidades? São pessoas, objetos, locais, animais, acontecimentos, organizações ou outra idéia abstrata Candidatos Buscamos Substantivos Comuns Objetos tangíveis Papéis exercidos Eventos Interações Especificações Encontramos Centro Nome do Centro Código do Centro Unidade Nome da Unidade Código da Unidade Departamento Nome do Departamento Código do Departamento 10 Análise Descrevem um conceito como um todo, não possuem um valor Descrevem um atributo valorado Unidade Nome do Centro Código do Centro Nome da Unidade Código da Unidade Nome do Departamento Centro Departamento Código do Departamento 11 Tipos de Entidade Centro Unidade Departamento São organizações cumprindo um PAPEL dentro de uma organização maior 12 Estrutura: Diagrama ER (Erwin-IE) Primeiro, só as entidades e relacionamentos Escolhemos relacionamentos identificadores Setas contínuas Fazem a entidade ficar com cantos arredondados 13 Estrutura: Diagrama ER (Erwin-IE) Escolhemos nomes diferentes para os relacionamentos Exigimos que Centros e Unidades tenham pelo menos uma divisão Evitando nomes iguais no modelo 14 Estrutura: Diagrama ER (Erwin-IE) Agora os atributos Todos possuem nomes diferentes Escolhemos uma notação mais moderna, que usa os nomes iniciando em minúsculas e usando maiúsculas para representar palavras compostas 15 Estrutura: Diagrama ER (Erwin-IE) Os atributos que fazem parte das chaves estão definidas sobre a linha que divide a entidade em duas partes Não esqueça que as chaves incluem os relacionamentos 16 UniPovo? Por que a UniPovo não é uma entidade? Por que Universidade não é uma entidade? Porque é um substantivo próprio, logo no máximo seria um exemplo de uma entidade Porque é um objeto único Porque o sistema fala sobre a UniPovo, descrevendo seu "interior" Porque só teríamos, por definição, uma instância, ou seja, é um objeto único 17 Uma Opção de Modelagem Na UniPovo, nos garantiram que só existiam centros, unidades e departamentos Uma opcão é criar uma estrutura recursiva Porém, em outras universidades (e talvez no futuro da UniPovo), a estrutura organizacional tem muitas camadas e variadas 18 Opção Recursiva 19 Interpretação da Recursividade 20 Professores Os professores estão alocados nos departamentos, porém podem mudar de departamento Não podem ser de nenhum departamento É possível (mas não provável) que um departamento não tenha professores 21 Entendendo Uma pessoa é uma coisa tangível O professor é um papel (função) que a pessoa toma dentro do departamento 22 Departamento/Professor 23 Dados Professor Sobre o professor, queremos saber: Endereço, na forma rua ou avenida, complemento, cep, bairro, cidade, estado CPF (que o identificará) Nome, nome do pai, nome damãe 2 números de telefone 24 O Que Temos Até Agora? 25 Cursos e Currículos Cada departamento pode ser responsável por um ou mais cursos Manter cursos e formar pessoas nesses cursos é a função mais importante da Universidade O Departamento de Ciência da Computação, por exemplo, é responsável pelos cursos de Bacharelado em Ciência da Computação e Tecnólogo em Redes de Computadores Um curso é equivalente a atribuição de um diploma (que leva o nome do curso) 26 Analisando Um curso é um conceito completo Um curso existe O curso possui atributos que podem ser valorados Tipo? Interpretação "entendida" de uma "coisa tangível" Um curso existe durante um prazo Interpretação "entendida" para um evento 27 Departamento/Curso 28 Cursos e Currículos Os cursos possuem um código e um nome e um grau. A UniPovo fornece vários graus de diploma, como graduação, pós-graduação, extensão, etc... 29 Cursos e Currículos Para cada curso é importante conhecer: a data do primeiro diploma e a licença do MEC, a data de abertura, avaliação corrente do MEC. Possivelmente um curso também tem uma data de encerramento, o que é raro na graduação mas bastante comum na extensão. 30 Curso 31 Cursos e Currículos Um detalhe importante é que durante sua existência um curso pode ter vários currículos Esses currículos, inclusive, podem estar valendo simultaneamente Quando um currículo começa, os alunos já inscritos no curso ainda ficam no currículo anterior É possível criar uma nova inscrição do aluno no currículo novo, mas isso não é obrigatório 32 Curso/Currículo 33 Cursos e Currículos Assim, cada currículo deve ter anotado quantos créditos são precisos em cadeiras optativas (no mínimo) Sobre um currículo queremos saber: data de início, que o identifica junto com o curso, data de extinção texto do currículo 34 Cursos e Currículos Um currículo é formado de cadeiras As cadeiras não são propriedades dos currículos Por exemplo, Cálculo I é parte de quase todos os currículos de cursos de Ciências Exatas Vamos discutir elas mais a frente no texto As cadeiras podem estar associadas a vários currículos de cursos diferentes 35 Cursos e Currículos As cadeiras de um currículo são divididas em obrigatórias e optativas As cadeiras optativas são muitas Por exemplo, no currículo atual de Tecnólogo em Redes de Computadores existem 20 cadeiras optativas, cada uma valendo 4 créditos, porém só são precisos 12 créditos Porém há um apenas requisito mínimo que precisa ser cumprido 36 Currículos/Cadeiras 37 Cursos, Currículos e Cadeiras Cuidado, algumas informações desse desenho só aparecerão mais tarde Relacionamentos: pré-requisito fornece 38 Cursos, Currículos e Cadeiras (com atributos) Mudamos um pouco o formato para aproveitar a tela Mas o significado é o mesmo 39 Observação Sempre que encontrarmos sentenças como: "Um curso possui vários currículos", devemos preferir modelar como duas entidades Veremos mais tarde que isso nos ajudará a criar Modelos de Entidades e Relacionamentos já compatíveis com a Primeira Forma Normal do Modelo Relacional 40 Onde Estamos? 41 Cadeira As cadeiras são fornecidas por um departamento, sendo mantidas por eles Cada cadeira possui um código, um nome, uma data de criação, uma data de extinção e várias ementas 42 Pré-Requisitos Cada cadeira possui, possivelmente, um conjunto de cadeiras que são seus pré-requisitos. Uma cadeira pode ser pré-requisito de muitas cadeiras 43 Departamento/Cadeiras/Ementas 44 Cadeira 45 Ementa A ementa, porém, vai variando com o tempo, e é importante guardar todas as ementas Assim, cada cadeira possui, na verdade, um histórico de ementas Cada ementa possui uma data de início de validade, uma data de final de validade, um objetivo, um texto de ementa e um conjunto de livros de referência A ementa também possui um número de horas e uma quantidade de créditos 46 Cadeira/Ementa 47 Cadeira/Ementa A cadeira é um conceito abstrato, que define muito pouco. A definição mais detalhada é dada pela ementa Mas a ementa também é um conceito abstrato. A cadeira/ementa só existe realmente quando é criada uma turma que a implementa 48 Turma A turma tem um código e uma lotação permida É ministrada por um ou mais professores Permite que os alunos se matriculem nela (mais tarde trataremos de matrículas) 49 Turma/Horário Cada turma possui vários horários, sendo que cada horário tem uma sala, uma hora de início, um dia da semana e uma duração em minutos 50 Turma A turma, então, implementa uma ementa válida de uma cadeira. Os horários indicam como a turma ocorre. Os professores são responsáveis pela turma e os alunos se matriculam nela (e não nos horários, nas ementas ou nas cadeiras) 51 Turma 52 Turma 53 Livros (e ISBN) Para indicar os livros de uma ementa, devem ser informados: o título, o autor, a edição, o ano de edição e a editora. Cada livro é identificado por seu ISBN. Veja no glossário informações mais detalhadas sobre o ISBN Nesse trabalho, decidimos mostrar como algumas coisas podem se complicar no mundo real. O ISBN é uma dessas coisas que parecem bastante simples, mas na verdade acabam exigindo bastante conhecimento. E todo esse conhecimento para implantar apenas um atributo do modelo 54 Livros e Ementas Cada ementa pode usar vários livros e um livro pode ser usado em várias ementas Uma ementa pode não ter livro nenhum opcionalmente, porém um livro deve aparecer em alguma ementa para estar presente no sistema 55 Livros e Ementas 56 Os Autores Se são vários autores, não deveríamos criar uma entidade autor? Nesse caso não parece importante para o sistema ficar controlando os autores do livro, assim, desprezamos o fato que podemos diferenciar os autores e tratamos o dados "autores" como uma string simples 57 O Que Temos Até Agora? 58 Aluno O aluno possui: um nome um DRE, que o identifica, nome do pai, nome da mãe, CPF (opcional, no caso de alunos), endereço completo (rua, complemento, CEP, bairro, cidade, estado), telefone e telefone alternativo. 59 Inscrições Um aluno faz inscrições em cursos um número, uma data de inscrição, uma data de conclusão (opcional), uma data de cancelamento (opcional), um meio de inscrição (vestibular, transferência, etc.), e Cada Inscrição tem: uma nota de vestibular (opcional). 60 Aluno/Inscrição/Currículo/Curso 61 Aluno/Inscrição 62 Matrícula Em cada inscrição o aluno pode fazer matrículas em turmas por exemplo, por ter a matrícula cancelada em algum momento Um aluno pode cursar cursos diferentes, com inscrições diferentes e continua sendo o mesmo aluno Ele pode se inscrever várias vezes no mesmo curso por exemplo, por ser reprovado ou trancar a cadeira Em cada inscrição, se matricular muitas vezes em cada cadeira 63 Matrícula Cada matrícula possui: uma data de aprovação, uma data de trancamento, uma identificação, uma data de pedido, um aproveitamento (a nota), uma presença, um status (aceito, trancado, aprovado, reprovado por média, reprovado por falta, etc.) e observações 64 Inscrição/Matrícula 65 Não é fácil Veja outra complicação: no boletim de um aluno aparecem as notas das matrículas da inscrição do aluno no curso, porém as notas não são identificadas pela matrícula, mas sim pela cadeira da ementa da turma da qual a matrícula pertence O mundo real não é fácil para quem faz sistemas de informação 66 Qual a nota do João em Cálculo I? 67 Aproveitamento Finalmente, um aluno pode, em uma inscrição, aproveitar notas de outra inscrição, isto é, aproveitar matrículas onde foi aprovado em outra inscrição. Assim, uma aluno de Computação que foi transferido da Engenharia pode aproveitar a nota de Cálculo I, por exemplo Um aproveitamento exige um identificador, uma data de pedido, uma data de aprovação e um número de processo. 68 Aproveitamento 69 Esse pedaço do Modelo 70 O Modelo Completo 71 OModelo Completo 72 O Modelo Completo 1 Professores: Geraldo Xexéo Geraldo Zimbrão Conteúdo: Introdução ao Modelo Relacional Aula 011 2 Sumário Introdução Prática Formalização 3 Sumário Introdução Prática Formalização 4 Composição de um BD Relacional Um banco de dados relacional é composto de tabelas Tabela é o nome usado na prática Vem da noção de relação entre conjuntos Academicamente, é usado o nome relação 5 Uma Tabela Filme 6 Tabela Uma tabela é um conjunto não-ordenado de linhas As linhas são também chamadas de tuplas (terminologia acadêmica) Cada linha é composta por uma série de campos Valor de atributo (acadêmico) 7 Campos Cada campo é identificado por um nome de campo Nome de atributo O conjunto de campos homônimos forma uma coluna Atributo 8 Tabelas: Terminologia Prática Filme Coluna Linha Nome do campo Valor do campo 9 Tabelas: Terminologia Acadêmica Filme Atributo Tupla Nome do atributo Valor do atributo 10 Linhas não ordenadas! As linhas não estão ordenadas A ordem de recuperação é arbitrária Porém A ordenação é conseqüência da necessidade de listar Não sabemos qual a n-ésima linha Em alguns SGDB a implementação ordena as linhas e dão um número para elas... 11 Valores dos Campos Atômicos Não podem ser divididos Por exemplo, endereço Monovalorados Só possuem um valor Por exemplo, matriz 12 Consulta Existem linguagens de consulta SELECT * FROM FILME Essas linguagens permitem acessar os dados do banco a partir de critérios envolvendo campos de uma ou mais linhas SELECT * FROM FILME WHERE ANO=2003 13 Exemplos de Tabela Resultados do ENEM em 2005 Coluna Notas dos alunos 14 Exemplos de Tabela 15 Sumário Introdução Prática Formalização 16 Formalizando Domínios Esquemas de Relação Tuplas Atributos Relações 17 Domínio Um domínio D é um conjunto de valores atômicos Domínios são normalmente especificados definindo o Tipo de Dados que define os possíveis Valores dos Dados Atômico significa indivisível 18 Exemplos de Domínio Nomes De Pessoa: conjunto de todos os nomes de pessoas possíveis Datas : conjunto de todas as datas possíveis Números de Telefone Mundiais: conjunto de todas as combinações possíveis de 12 dígitos Números de Telefone Locais: conjunto de todas as combinações possíveis de 8 dígitos 19 Formato Normalmente especificamos um formato para o Domínio Exemplo: Telefones Globais +99 99 9999-9999 Significa a letra mais, seguida de dois números, seguida de um espaço, seguida de dois números, seguida de um espaço, seguida de quatro números, seguida de um traço, seguida de quatro números 20 Definindo um Domínio Um nome Um tipo de dados Um formato Outras informações adicionais que auxiliam a interpretação 21 Exemplo de Domínio Nome: Sexo Tipo de Dados: { 0 , 1 , 2 , 9 } Formato: o próprio número Significado: 0 significa não informado 1 significa masculino 2 significa feminino 9 significa sem sentido 22 Exemplo de Domínio Nome: Sexo Tipo de Dados: { "F", "M" } Formato: a letra isolada Significado: M significa masculino F significa feminino 23 Exemplo de Domínio Nome: Peso Tipo de Dados: Números Reais entre 0 e 200 Formato: 999.99 (sempre com duas casas decimais) Significado: peso de uma pessoa em quilogramas 24 Esquema de Relação 25 Esquema de Relação O grau da relação é o número de atributos (n) O esquema de relação descreve uma relação, chamada R 26 Exemplos de Esquema de Relação Filme (CódigoFilme, NomeOriginal, Ano, Tipo) Cliente (Nome, CPF, Telefone, Endereço, Sexo) dom(Nome) = Nomes de Pessoas dom(Telefone) = Números de Telefone Locais dom(Sexo) = Sexo dom(CPF) = ? Esse fica para vocês pensarem 27 Relação 28 O Valor Nulo Valores nulos indicam que, para aquela tupla, o atributo: Não se aplica Não é conhecido Não existe 29 Mais Simplesmente Uma Relação R é um sub-conjunto do produto cartesiano dos domínios que definem R O produto cartesiano define todas as possíveis combinações de valores dos domínios Onde foram parar os nulos? Você pode construir uma definição melhor? Esse fica para vocês pensarem 30 O Estado Corrente Estamos falando de bancos de dados Por representarem algo no mundo real Lista de Alunos O esquema da relação define os valores possíveis para os atributos das tuplas Lista de Filmes A relação é o conjunto de tuplas válido em algum momento 31 Exemplo: Os Domínios 1/1/1900 2/1/1900 ... 2/7/1966 ... 15/3/1980 ... 31/12/2100 Datas Aarão Abel ... Júlia Júlio ... Zéfiro Nomes Feminino Masculino Sexos 32 Exemplo: O Esquema PESSOA = (NomePessoa, DataNascimentoPessoa, SexoPessoa) dom(NomePesoa) = Nomes dom(DataNascimentoPessoa) = Datas dom(SexoPessoa) = Sexos 33 O Estado da Relação r (PESSOA) = { < Abel, 2/7/1966, Masculino > , < Júlia, 15/3/1980, Feminino > } 34 Exemplo: Os Domínios 1/1/1900 2/1/1900 ... 2/7/1966 ... 15/3/1980 ... 31/12/2100 Datas Aarão Abel ... Júlia Júlio ... Zéfiro Nomes Feminino Masculino Sexos 35 Interpretando um Relação Normalmente, cada linha de uma relação é interpretada como um afirmação Um retrato da realidade 36 Outros Termos Acadêmicos Intenção do esquema R Extensão da Relação ou Estado da Relação É o esquema da relação É o conjunto de tuplas que segue aquele estado 37 Ordem das Tuplas Como a Relação não é ordenada na Teoria de Conjunto, então tuplas de uma relação não são ordenadas Como a lista de valores da tupla é ordenada, nossas os atributos são ordenados dentro da tupla Linhas de Tabelas É possível definir um modelo relacional onde isso não é necessário 38 Valores Atômicos Exigimos que os valores dos atributos sejam atômicos A teoria relacional chama isso de Primeira Forma Normal 39 Conclusão Conhecemos os componentes básicos do Modelo Relacional Conhecemos a forma prática de trabalhar com eles Tabelas, colunas e linhas Conhecemos a forma matemática de trabalhar com eles Esquemas, Relações, Atributos e Tuplas 1 Professores: Geraldo Xexéo Geraldo Zimbrão Conteúdo: Modelo Relacional: Chaves e Restrições Aula 012 2 Sumário Abordagem Prática Abordagem Acadêmica 3 Identificação de Linhas A identidade de cada linha de uma tabela é definida pelos valores dos campos Não existem, no modelo relacional, duas linhas onde todos os campos tenham o mesmo valor (campo a campo) Pois essas linhas teriam a mesma identidade, isso é, seriam a mesma linha É possível quebrar essa regra em implementações específicas de SGBD 4 Chave Uma Chave é um conjunto de campos cujos valores identificam unicamente uma linha em uma tabela 5 Tipos de Chave Chave Candidata Chave Primária Chava Alternativa Chave Estrangeira 6 Chave Candidata Uma Chave Candidata é uma coluna ou conjunto de colunas que pode ser usado para diferenciar uma linha de todas as outras em uma tabela Identificar as linhas Pelo menos uma Chave Candidata existe sempre Todos os campos da tabela 7 Chave Primária A Chave Primária é a coluna ou combinação de colunas escolhido como referência em uma tabela para diferenciar uma linha das demais A Chave Primária é escolhida entre as Chaves Candidatas pelo Projetista do Banco da Dados A escolha é obrigatória 8 Chave Alternativa Uma Chave Alternativa é uma Chave Candidata que não foi escolhida para ser Chave Primária As Chaves Alternativas podem ser indicadas ou não, mas recomenda-se que sejam indicadas Porém, em muitos BDs isso só pode ser feito definindo-se um índice, o que afeta o desempenho 9 Como Escolher? A escolha da Chave Primária é uma escolha obrigatória e também essencial Veremos que as Chaves Primárias são usadas como Chave Estrangeira, e isso é um fator importante na escolha Então, melhor esperarmos um pouco... 10 Exemplo Chaves Candidatas: Nome, CPF, Endereço Nome não é uma boa chave primária Endereço? E se dois funcionários morarem juntos? Chave Primária:CPF 11 Chave Estrangeira Uma Chave Estrangeira é uma coluna ou conjunto de colunas de uma tabela que são Chave Primária em alguma tabela "Alguma" pode ser a mesma tabela As Chaves Estrangeiras permitem a implementação de relacionamentos em um BD relacional Chaves Estrangeiras implicam em Restrições 12 Chave Estrangeira: Exemplo 13 Não Confunda Relação : tabela Relacionamento : conceito do modelo ER 14 Restrições Restrições de Integridade Restrições de Chave Estrangeira 15 Restrição de Integridade Chaves definem restrições de integridade No caso da Chave Primária, a integridade é a unicidade A princípio, um BD relacional não tem como saber nada em relação a unicidade dos valores A definição da Chave Primária define a restrição de integridade 16 Tipos de Restrições de Integridade Integridade de Domínio Integridade de Vazio Integridade de Chave Integridade Referencial 17 Integridade de Domínio O valor de um campo deve pertencer ao domínio 18 Integridade de Vazio Para cada campo, deve ser definido se ele pode assumir o valor nulo Implica em a coluna ser obrigatória (sem nulos) ou opcional (admitindo nulos) 19 Integridade de Chave Trata-se da definição das chaves primárias e alternativas Indicam colunas e conjuntos de colunas que devem ter valores únicos 20 Integridade Referencial Indicam que os valores dos campos em uma Chave Estrangeira devem aparecer na Chave Primária de uma tabela referenciada 21 Restrições impostas pela Chave Estrangeira Na inclusão e alteração de uma linha na tabela que contém a Chave Estrangeira Deve ser garantido que o valor da Chave Estrangeira seja uma Chave Primária na tabela referenciada Na alteração e exclusão de uma linha na tabela referenciada Deve ser garantido que o valor da Chave Primária nessa linha não apareça como Chave Estrangeira 22 Formalizando Restrições do Modelo Relacional Restrições de Domínio Restrições de Integridade do Esquema Relacional Restrições de Chave 23 Notação 24 Notação 25 Notação Q, R, S serão nomes de relações q, r, s serão nomes de estados de relações t, u, v serão nomes de tuplas 26 Notação Um nome (como ALUNO) indicará o conjunto atual de tuplas em uma relação (a instância ou estado atual) Uma descrição como ALUNO(Nome,Nota) indicará um esquema de relação 27 Restrições de Domínio A mais simples Cada valor de um atributo A precisa ser um valor atômico daquele atributo Já visto anteriormente Ou nulo 28 Restrições de Chave Uma relação é um conjunto de tuplas Tuplas são diferentes Em um conjunto, todos os elementos são diferentes (definição de conjunto) Nenhum par de tuplas pode ter a mesma comibão de valores para todos os seus atributos Normalmente existem outros sub-conjuntos de atributos em um esquema de relação R com a propriedade que nenhuma instância r de R possui a mesma combinação de valores para esses atributos Pode ser apenas um atributo 29 Restrições de Chave 30 Super Chave Uma super chave de R é um conjunto de atributos para o qual não é possível encontrar duas tuplas com os mesmos valores para todos os atributos Toda relação tem pelo menos uma super-chave O conjunto de todos os atributos 31 Chave Uma Chave C de uma Relação R é uma Super Chave de R com a seguinte propriedade adicional Removendo qualquer atributo A do conjunto de atributos que define C, o conjunto resultante não é uma Super-Chave de R Uma Chave é uma Super-Chave mínima, sem redundância 32 Chave Candidata - Chave Primária Todas as Chaves são consideradas Chaves Candidatas Uma Chave Candidata é designada como Chave Primária da Relação (PK, de Primary Key) A escolha é arbitrária, porém favorecemos as menores Chaves A Chave Primária é usada como identificador da relação 33 Esquema de BD Relacional 34 Um Exemplo: Esquema de BD Relacional 35 Instância de um BD Relacional 36 Empregado 37 Departamento Local de Departamento 38 Projeto 39 Horas Trabalhadas 40 Dependentes 41 Restrições de Integridade do Esquema Relacional Integridade de Entidade Integridade Referencial Chaves Externas 42 Integridade de Entidade A restrição de integridade de entidade diz que nenhum valor de chave primária pode ser nulo Para ser possível identificar a entidade 43 Restrição de Integridade Referencial A restrição de integridade referencial é especificada entre duas relações Mantém a consistência Ela diz que uma tupla de uma relação que possui uma chave estrangeira que referencia outra relação deve referenciar uma tupla existente Precisamos definir formalmente Chaves Estrangeiras 44 Chaves Estrangeiras 45 FK: Regra 1 46 FK: Regra 2 47 Lembrem 48 Restrições de Integridade Referencial As relações de integridade vêm da existência de relacionamentos entre as entidades representadas pelos esquemas de relações Lembrem do modelo de Entidades e Relacionamentos As restrições de integridade referencial podem ser indicadas como setas 49 Um Exemplo: Esquema BDR 50 Conclusão Chaves são identificadores Relacionamentos são mostrados como Chaves Estrangeiras Ainda existem outras restrições, conhecidas como restrições semânticas, e que serão tratadas bem mais tarde no curso 1 Professores: Geraldo Xexéo Geraldo Zimbrão Conteúdo: Modelo Relacional: Álgebra Relacional Aula 013 2 Relembrando Relação : tabela Domínio conjunto de valores possíveis Tupla : linha número de tuplas: cardinalidade Atributo : coluna número de atributos: grau Chave: atributos que identificam a linha 3 Para que servem bancos de dados? Um banco de dados tem como objetivo guardar dados para que sejam posteriormente consultados Existem várias linguagens de consulta A álgebra relacional é uma linguagem de consulta formal (teórica) 4 Álgebra Relacional Fornece um conjunto de operadores que permitam, a partir de tabelas, obter uma tabela com os dados desejados pelo usuário Operações da Teoria dos Conjuntos União, Interseção, Diferença, Produto Operações Relacionais Seleção, Projeção, Divisão, Junção Programação Atribuição ou Renomear 5 Álgebra Relacional Restrição ou Seleção Projeção Divisão a x a y a z b x c y x z a Junção (Natural) a1 b1 a2 b2 a3 b3 b1 c1 b2 c2 b3 c3 a1 b1 c1 a2 b2 c2 a3 b3 c3 Produto a b c x y a x a y b x b y c x c y União Interseção Diferença 6 Chaves Primárias: NUMF NUMP NUMPR Partes-Fornecedores FORNECEDORES NUMF NOMEF STATUS CIDADE 1 2 3 4 5 Selma João Branco Carlos Aline 20 10 30 20 30 São Paulo Rio de Janeiro Rio de Janeiro São Paulo Belo Horizonte PROJETOS NUMPR NOMEJR CIDADE 1 2 3 4 5 Ordenador Vídeo Teclado Console Disco Rio de Janeiro Porto Alegre Belo Horizonte Belo Horizonte São Paulo 6 Telefone Niterói 7 Fita São Paulo PEDIDOS NUMPRNUMF QUANTIDADE 1 1 2 2 2 200 300 400 500 600 2 100 2 600 NUMP 1 1 3 3 3 3 3 1 4 1 2 3 4 5 2 5003 6 2 3003 7 2 4005 2 3 5003 1 3 4004 2 4 6006 3 4 3006 7 5 1002 2 5 7005 7 5 5006 2 5 2001 7 5 3003 2 5 4004 4 5 1005 4 5 5006 4 PARTES NUMP NOMEP COR CIDADE 1 2 3 4 5 Caixa Parafuso Parafuso Parafuso Arruela Vermelha Verde Azul Vermelha Azul São Paulo Rio de Janeiro Porto Alegre São Paulo Rio de Janeiro 6 Alavanca Vermelha São Paulo PESO 12 17 17 14 12 19 7 União Retorna uma relação consistindo das tuplas aparecendo em quaisquer das relações especificadas 8 União: Notação Notação: A UNION B Notação: A B 9 União: Exemplo FORNECEDORESA UNION FORNECEDORESB FORNECEDORESA NUMF NOMEF STATUS CIDADE 1 2 5 Selma João Aline 20 10 30 São Paulo Rio de Janeiro Belo Horizonte FORNECEDORESB NUMF NOMEF STATUS CIDADE 3 4 5 Branco Carlos Aline 30 20 30 Rio de Janeiro São Paulo Belo Horizonte FORNECEDORES NUMF NOMEF STATUS CIDADE 1 2 3 4 5 Selma João Branco Carlos Aline 20 10 30 20 30 São Paulo Rio de Janeiro Rio de Janeiro São Paulo Belo Horizonte 10 Interseção Retorna uma relação consistindo de todas as tuplas que aparecemem duas relações especificadas 11 Interseção : Notação Notação: A INTERSECTION B Notação: A B 12 Interseção: Exemplo FORNECEDORESA INTERSECT FORNECEDORESB FORNECEDORESA NUMF NOMEF STATUS CIDADE 1 2 5 Selma João Aline 20 10 30 São Paulo Rio de Janeiro Belo Horizonte FORNECEDORESB NUMF NOMEF STATUS CIDADE 3 4 5 Branco Carlos Aline 30 20 30 Rio de Janeiro São Paulo Belo Horizonte FORNECEDORES NUMF NOMEF STATUS CIDADE 5 Aline 30 Belo Horizonte 13 Diferença Retorna uma relação consistindo das tuplas que aparecem na primeira relação especificada e não aparecem na segunda relação 14 Diferença : Notação Notação: A MINUS B Notação: A - B 15 Diferença : Exemplo FORNECEDORESA MINUS FORNECEDORESB FORNECEDORESA NUMF NOMEF STATUS CIDADE 1 2 5 Selma João Aline 20 10 30 São Paulo Rio de Janeiro Belo Horizonte FORNECEDORESB NUMF NOMEF STATUS CIDADE 3 4 5 Branco Carlos Aline 30 20 30 Rio de Janeiro São Paulo Belo Horizonte FORNECEDORES NUMF NOMEF STATUS CIDADE 1 2 Selma João 20 10 São Paulo Rio de Janeiro 16 Produto Retorna uma relação consistindo em todas as possíveis tuplas que podem ser formadas combinando duas tuplas, uma de cada uma das relações especificadas a b c x y a x a y b x b y c x c y 17 Produto : Notação Notação: A TIMES B Notação: A X B 18 Produto : Exemplo PESSOAS TIMES CIDADES PESSOAS NOMEP Selma João Branco Carlos Aline CIDADE NOMEC Rio de Janeiro Porto Alegre Niterói São Paulo PESSOAS X CIDADES NOMEP Aline Aline Aline Aline Branco Branco Branco NOMEC Branco Carlos Carlos Carlos Carlos João João João João Selma Selma Selma Selma Rio de Janeiro Porto Alegre Niterói São Paulo Rio de Janeiro Porto Alegre Niterói São Paulo Rio de Janeiro Porto Alegre Niterói São Paulo Rio de Janeiro Porto Alegre Niterói São Paulo Rio de Janeiro Porto Alegre Niterói São Paulo 19 Seleção (ou Restrição) Retorna uma relação consistindo de um conjunto de tuplas de uma relação que satisfaz uma condição 20 Seleção : Notação Notação: A WHERE X op Y x e y são atributos do mesmo domínio (ou valores) é um operador Notação: 21 Seleção : Exemplo 1 FORNECEDORES WHERE CIDADE="Rio de Janeiro" FORNECEDORES NUMF NOMEF STATUS CIDADE 2 3 João Branco 10 30 Rio de Janeiro Rio de Janeiro FORNECEDORES NUMF NOMEF STATUS CIDADE 1 2 3 4 5 Selma João Branco Carlos Aline 20 10 30 20 30 São Paulo Rio de Janeiro Rio de Janeiro São Paulo Belo Horizonte 22 Seleção : Exemplo 2 PEDIDOS WHERE NUMF=NUMP PEDIDOS NUMPRNUMF QUANTIDADE 1 1 2 2 2 200 300 400 500 600 2 100 2 600 NUMP 1 1 3 3 3 3 3 1 4 1 2 3 4 5 2 5003 6 2 3003 7 2 4005 2 3 5003 1 3 4004 2 4 6006 3 4 3006 7 5 1002 2 5 7005 7 5 5006 2 5 2001 7 5 3003 2 5 4004 4 5 1005 4 5 5006 4 PEDIDOS NUMPRNUMF QUANTIDADE 1 1 200 300 NUMP 1 1 1 4 3 5003 1 5 7005 7 5 1005 4 23 Seleção : Exemplo 3 PEDIDOS WHERE QUANTIDADE>500 PEDIDOS NUMPRNUMF QUANTIDADE 1 1 2 2 2 200 300 400 500 600 2 100 2 600 NUMP 1 1 3 3 3 3 3 1 4 1 2 3 4 5 2 5003 6 2 3003 7 2 4005 2 3 5003 1 3 4004 2 4 6006 3 4 3006 7 5 1002 2 5 7005 7 5 5006 2 5 2001 7 5 3003 2 5 4004 4 5 1005 4 5 5006 4 PEDIDOS NUMPRNUMF QUANTIDADE 2 600 2 600 NUMP 3 3 3 5 4 6006 3 5 7005 7 24 Projeção Retorna uma relação consistindo de um conjunto de tuplas que remanescem em uma relação depois que alguns atributos são eliminados 25 Projeção : Notação Notação: A [X,Y,...,Z] x,y,...,z são atributos da relação Notação: 26 Projeção : Exemplo FORNECEDORES [NOMEF,CIDADE] FORNECEDORES NOMEF CIDADE Selma João Branco Carlos Aline São Paulo Rio de Janeiro Rio de Janeiro São Paulo Belo Horizonte FORNECEDORES NUMF NOMEF STATUS CIDADE 1 2 3 4 5 Selma João Branco Carlos Aline 20 10 30 20 30 São Paulo Rio de Janeiro Rio de Janeiro São Paulo Belo Horizonte 27 Junção (Natural) Retorna uma relação consistindo de todas as possíveis tuplas que são uma combinação de duas duplas, tal que as duas duplas que contribuem para a combinação possuem um valor comum nos atributos comum das duas relações a1 b1 a2 b2 a3 b3 b1 c1 b2 c2 b3 c3 a1 b1 c1 a2 b2 c2 a3 b3 c3 28 Junção (Natural) : Notação A JOIN B 29 Junção (Natural) : Exemplo 1 FORNECEDORES JOIN PEDIDOS FORNECEDORES JOIN PEDIDOS NUMF NUMPR QUANTIDADE 1 1 2 2 2 200 300 400 500 600 2 100 2 600 NUMP 1 1 3 3 3 3 3 1 4 1 2 3 4 5 2 5003 6 2 3003 7 2 4005 2 3 5003 1 3 4004 2 4 6006 3 4 3006 7 5 1002 2 5 7005 7 5 5006 2 5 2001 7 5 3003 2 5 4004 4 5 1005 4 5 5006 4 NOMEF STATUS CIDADE Selma 20 São Paulo João 10 Rio de Janeiro João 10 Rio de Janeiro João 10 Rio de Janeiro João 10 Rio de Janeiro João 10 Rio de Janeiro João 10 Rio de Janeiro João 10 Rio de Janeiro João 10 Rio de Janeiro João 10 Rio de Janeiro Branco 30 Rio de Janeiro Branco 30 Rio de Janeiro Carlos 20 São Paulo Carlos 20 São Paulo Aline 30 Belo Horizonte Aline 30 Belo Horizonte Aline 30 Belo Horizonte Aline 30 Belo Horizonte Aline 30 Belo Horizonte Aline 30 Belo Horizonte Aline 30 Belo Horizonte Aline 30 Belo Horizonte FORNECEDORES NUMF NOMEF STATUS CIDADE 1 2 3 4 5 Selma João Branco Carlos Aline 20 10 30 20 30 São Paulo Rio de Janeiro Rio de Janeiro São Paulo Belo Horizonte NUMF PEDIDOS NUMPR QUANTIDADE 1 1 2 2 2 200 300 400 500 600 2 100 2 600 NUMP 1 1 3 3 3 3 3 1 4 1 2 3 4 5 2 5003 6 2 3003 7 2 4005 2 3 5003 1 3 4004 2 4 6006 3 4 3006 7 5 1002 2 5 7005 7 5 5006 2 5 2001 7 5 3003 2 5 4004 4 5 1005 4 5 5006 4 30 Junção (Natural) : Exemplo 2 FORNECEDORES JOIN PARTES FORNECEDORES NUMF NOMEF STATUS CIDADE 1 2 3 4 5 Selma João Branco Carlos Aline 20 10 30 20 30 São Paulo Rio de Janeiro Rio de Janeiro São Paulo Belo Horizonte PARTES NUMP NOMEP COR CIDADE 1 2 3 4 5 Caixa Parafuso Parafuso Parafuso Arruela Vermelha Verde Azul Vermelha Azul São Paulo Rio de Janeiro Porto Alegre São Paulo Rio de Janeiro 6 Alavanca Vermelha São Paulo PESO 12 17 17 14 12 19 FORNECEDORES JOIN PARTES NUMF NOMEF STATUS CIDADE 1 2 3 4 Selma João Branco Carlos 20 10 30 20 São Paulo Rio de Janeiro Rio de Janeiro São Paulo NUMP NOMEP COR PESO 1 Selma 20 São Paulo 1 Selma 20 São Paulo 2 João 10 Rio de Janeiro 3 Branco 30 Rio de Janeiro 4 Carlos 20 São Paulo 4 Carlos 20 São Paulo 1 Caixa Vermelha 12 4 Parafuso Vermelha 14 6 Alavanca Vermelha 19 2 Parafuso Verde 17 2 Parafuso Verde 17 5 Arruela Azul 12 5 Arruela Azul 12 1 Caixa Vermelha 12 4 Parafuso Vermelha 14 6 Alavanca Vermelha 19 31 Divisão 32 Divisão b e c não possuem todos os valores da segunda relação z não faz diferença em a a x x a y z a z b x c y x z a 33 Divisão : Notação A DIVIDEDBY B A B 34 Divisão : Exemplo PARTES2 NUMP NOMEP COR CIDADE 1 2 3 4 Caixa Parafuso Parafuso Parafuso Vermelha Azul Vermelha Vermelha São Paulo Porto Alegre São Paulo Rio de Janeiro 6 Alavanca Vermelha São Paulo PESO 12 17 14 14 19 1 Caixa Vermelha Rio de Janeiro12 CIDADE NOMEC Rio de Janeiro São Paulo NUMP PARTES2 NOMEP COR 1 4 Caixa Parafuso Vermelha Vermelha PESO 12 14 35 Renomear Troca o nome de atributos Simplifica a notação 36 Renomear: Notação R RENAME A AS ALFA, B AS BETA 37 Renomear: Exemplo PROJETOS RENAME NUMPR AS NUM, NOMEJR AS NOME PROJETOS NUMPR NOMEJR CIDADE 1 2 3 4 5 Ordenador Vídeo Teclado Console Disco Rio de Janeiro Porto Alegre Belo Horizonte Belo Horizonte São Paulo 6 Telefone Niterói 7 Fita São Paulo PROJETOS NUM NOME CIDADE 1 2 3 4 5 Ordenador Vídeo Teclado Console Disco Rio de Janeiro Porto Alegre Belo Horizonte Belo Horizonte São Paulo 6 Telefone Niterói 7 Fita São Paulo 1 Professores: Geraldo Xexéo Geraldo Zimbrão Conteúdo: Exercícios de Álgebra Relacional Aula 014 2 Exercícios Nomes de fornecedores da parte P21) Nomes de fornecedores que fornecem ao menos uma parte vermelha 2) Nomes de fornecedores que fornecem todas as partes3) Números dos fornecedores que fornecem todas as partes fornecidas pelo fornedor
Compartilhar