Baixe o app para aproveitar ainda mais
Prévia do material em texto
Bases de Dados – Aula 0 Célio Santana Celio.santana@gmail.com Sumário o Apresentação do Professor; o Apresentação do Aluno; o Do que a disciplina se trata; o Site da Disciplina; o Funcionamento da Disciplina; o Avaliação; o Projetos; Apresentação do Professor Expectativas da Turma Do que se trata a Disciplina? Como será o andamento da disciplina (Cronograma) Site da Disciplina https://sites.google.com/site/basedadosbibliotecomia/ E a disciplina… • Disciplina de 60 Horas; • Segundas das 14:00 – 18:00 • 15 Faltas são permitidas; • Projeto previsto para Novembro Algumas Regras :D • Sim, eu faço chamada; • Sim, eu respondo email; • Não, não atendo telefone (caso consigam); • Sim, eu reviso projeto (fora do horário de aula); • Sim, eu tiros dúvidas em qualquer lugar que você me encontrar pessoalmente; • Não, NINGUÉM gosta de entra e sai em sala de aula. Projetos… O Que acontecerá nas aulas… • Sim, o material é expositivo (powerpoint, não tem prezi (ainda)); • O Projeto está diluido ao longo da disciplina. O que eu vou encontrar no site... • Na aba aulas vocês encontrarão links para uma pasta no dropbox onde elas contem: • Os slides da aula • Outros Materiais Relevantes; O que eu vou encontrar no site... • Informações da Disciplina (Página inicial); • Calendário; • Plano de Ensino (Documentos); • Planilha de Frequencia e Notas; • Equipes de projeto Duvidas? DCI – Curso Biblioteconomia Base de Dados (Aula 1) Célio Santana Celio.santana@gmail.com Introdução Para você, hoje… O que é uma base de dados? Base de Dados São um conjunto de dados organizados, relacionados entre si (inter-relacionados) de acordo com um determinado contexto, de forma a apoiar todo o ciclo de vida da informação. Conjunto de dados inter-relacionados, oriundos de fontes variadas, armazenados de forma lógica, com propósito específico, permitindo recuperação da informação armazenada, atendendo um determinado grupo de usuários. Base de Dados Repositório de informação, relacionada a um determinado assunto ou finalidade, armazenada em computador em forma de arquivos. Exemplos: Lista telefônica; Dados sobre as atividades de uma organização; Livros de um acervo; Dados sobre artigos publicados em periódicos; Clientes de uma empresa; Produtos de uma empresa, etc. Bases de Dados Definições Formais Conjunto de arquivos e programas de computador coordenados e estruturados que constituem um depósito de informações que podem ser acessados por diversos utilizadores. A base de dados contém: a) os arquivos ou depósitos de informação; b) os programas de tratamento que são colocados à disposição do usuário com o intuito de lhe assegurar serviços básicos de acesso, interrogação, apresentação dos resultados e, em alguns casos, tratamento da informação contida na base de dados. (CUNHA; CAVALCANTI, 2008, p. 43) É uma coleção geral e integrada de dados junto com a descrição deles, gerenciada de forma a atender a diferentes necessidades de seus usuários (ROWLEY, 2002) Bases de Dados Objetivo Fornecer informação: atualizada (recursos estruturais); precisa e completa (não dar a informação pela metade); confiável; e de acordo com a demanda (oferecer o que o usuário necessita); Serve para gerir vastos conjuntos de informação de modo a facilitar a organização, manutenção e pesquisa de dados. Base de Dados De uma forma genérica, qualquer conjunto de dados é uma Base de Dados (BD): uma agenda com as moradas de pessoas conhecidas; uma lista de CDs/DVDs; um livro; apontamentos tirados nas aulas; os dados guardados nos computadores das Finanças sobre os contribuintes… Muitas bases de dados começam como uma lista em um programa de processamento de texto ou folha de cálculo. Até mesmo em papel! 8 Base Dados Conjunto de dados e suas descrições; Organizados de forma lógica; Inter-relacionados; Dependem do contexto; Apoia ciclos de vida da informação; Oriundos de diversas fontes; Possui propósitos específicos; Atende a necessidade dos usuários; Gerenciada; Se a gente considerar tudo isso... Essas coisas são bases de dados? Lista telefônica; Dados sobre as atividades de uma organização; Livros de um acervo; Dados sobre artigos publicados em periódicos; Clientes de uma empresa; Produtos de uma empresa, etc. Problemas em Bases não estruturadas À medida que a lista vai crescendo, as redundâncias e inconsistências começam a aparecer nos dados. Os dados tornam-se difíceis de compreender na forma de lista e os meios para procurar ou retirar subconjuntos de dados para revisão são limitados. Assim que estes problemas começam a surgir, convém transferir os dados para uma base de dados estruturada. E a famosa relação E essa relação considerando Conjunto de dados e suas descrições; Organizados de forma lógica; Inter-relacionados; Dependem do contexto; Apoia ciclos de vida da informação; Oriundos de diversas fontes; Possui propósitos específicos; Atende a necessidade dos usuários; Gerenciada; Motivação Aumento do volume de informação. Maiores dificuldades de gestão. Aparecimento das Bases de Dados E quando temos isso? Bases de Dados Importância Proporciona um rápido acesso à informação, com atualidade, confiabilidade, permitindo um gerenciamento das informações. O que se pode recuperar depende do que existe na base de dados e da forma como as informações tiverem sido estruturadas. Armazenam as informações de acordo com a função ou a utilidade para usuários ou grupo de usuários, bem como dados que também, em qualquer momento, quando manipulados, se tornam úteis para cada usuário dessas bases, podendo se transformar em informações. Bases de Dados Vantagens Diminuir o espaço ocupado pela informação; Facilitar o acesso e a atualização da informação; Aumentar a velocidade da pesquisa; Evitar a redundância da informação. Evolução das Bases de Dados Década de 70: as primeiras bases de dados foram comercializadas em terminais ou impressas; Década de 80: as bases eram disponibilizadas em CD-ROM para ser usadas em microcomputadores; Década de 90: as bases de dados tornam-se online; E Banco de Dados, o que é? Banco de dados é um conjunto de bases de dados, podendo ser construído com tecnologia específica permitindo a estruturação, armazenamento e recuperação dos dados no computador; Exemplos: Banco de dados de uma empresa pode ser formado por uma base de dados de funcionários, outra de clientes e outra de pagamentos; Banco de dados de uma biblioteca pode ser formado por uma base de dados do acervo, uma de usuários e outra de empréstimos. E Banco de Dados, o que é? Outros autores dizem que a diferença entre banco de dados e base de dados é que o primeiro se refere aos programas e o segundo aos dados a serem utilizados. Apesar de não ser essa a definição faz sentido... Mas o que as pessoas chamam de Banco de Dados, vocês irão conhecer como Sistemas Gerenciadores de Banco de Dados (SGBD). Mas isso é assunto de outras aulas. Visão Geral de um Banco de Dados Registro 2 Camp o 1 Camp o 3 Camp o 2 Registro 1 Camp o 1 Camp o 3 Camp o 2 Arquivo 1 Base deDados 1 Registro 2 Campo 1 Campo 3 Campo 2 Registro 1 Campo 1 Campo 3 Campo 2 Arquivo 2 Registro 2 Camp o 1 Camp o 3 Camp o 2 Registro 1 Camp o 1 Camp o 3 Camp o 2 Arquivo 1 Base de Dados 2 Registro 2 Campo 1 Campo 3 Campo 2 Registro 1 Campo 1 Campo 3 Campo 2 Arquivo 2 Bases de Dados Elementos Dependem dos tipos de bases de dados pesquisados, podem variar os termos que designam os elementos Dado: informação, representativa para quem insere, valor físico; Informação: valor representativo do campo, dado processado. Arquivos Arquivo é uma coleção de registros similares, com relações definidas entre si. A base de dados pode ter vários arquivos. Arquivos... Normalmente se referem a disposição física dos dados. Mas e a disposição lógica? Tabelas Tabela é uma estrutura de armazenamento da informação, formada por um conjunto de registros; As tabelas agrupam informações da mesma relação (entidade); A base de dados pode ter várias tabelas. Relação??? Vamos relembrar a Teoria dos Conjuntos Registros/Tuplas Registro/Tupla é a informação contida na base de dados que diz respeito a um documento ou item: Em uma base de dados catalográficos, um registro conteria dados de um livro; Cada cliente de uma base de clientes de uma organização é um registro. Um registro é a composição de uma série de campos que podem ter tipos e tamanhos variados. Cada linha de um arquivo ou tabela. Também chamado de termo. Campos Campo é uma unidade lógica de informação que forma um registro: Os campos de um registro de livro seria o título, o ano de publicação e a editora, por exemplo; A escolha dos campos depende da base de dados que se quer desenvolver. Ex: cabelo. É a menor unidade de informação de uma base de dados (Indivisível). Um campo contém, normalmente, um tipo e um tamanho definido. Os tipos de campos utilizados, sua extensão e a quantidade de campos são escolhidos de acordo com a aplicação; Podem ter um tamanho fixo ou variável de número de caracteres. Campos É a menor unidade de informação de uma base de dados (Indivisível). Quem diz isso. Exemplo – Endereço (Cep, rua, bairro). Exemplo de Campos de um Registro de um Inventário Nome do campo Tipo do dado Tamanho do campo Número do item Número 4 bytes Descrição do item Texto 128 caracteres Localização Texto 16 caracteres Quantidade Número 4 bytes Imagine O atendente chama pela Sra. Maria Provavelmente acontecerá isso Como distinguir elementos? Chaves de Busca - identificadores Chaves de busca são campos utilizados como dados para localizar registros e, assim, recuperar informações. É ideal que uma chave de busca possa identificar unicamente um registro na tabela ou arquivo. Que chave de busca é usada para nos identificar perante os órgãos públicos governamentais? Qual sua chave de busca como aluno aqui da UFPE? A escolha das chaves de busca também depende da base de dados que se quer desenvolver. Imagine o conjunto dos alimentos Tipos de dados Texto Número Data/hora Moeda Auto numeração Sim/Não ou verdadeiro/falso (binário) Hyperlink Objeto OLE (Object Linking and Embedding) – permite disponibilizar um objeto de outro editor. Ex: um mapa, uma imagem, um vídeo. documentos incorporados mantêm todas as suas propriedades originais. Suportes e Acessos das Bases de Dados As bases de dados podem usar os seguintes suportes: Impresso: sub-produtos das bases de dados: Ex: Index Medicus; Meios magnéticos, como CD-ROM ou HD (disco rígido); Ex: MEDLINE/CD-ROM; Online por uma rede de telecomunicação: Ex: http://www.usp.br/sibi/ O acesso pode ser público ou privado e remoto ou local. Considerações Finais Em virtude das bases de dados serem essenciais para facilitar o acesso à informação, é importante conhecer: Os tipos e estruturas de bases de dados; Os formatos-padrão de registros; Como modelar e compreender a modelagem de base de dados; Os tipos diversificados de bases de dados. As ferramentas de consultas a base de dados. Atividade 1 – para a próxima aula No seu caderno ou em uma folha de papel, esquematize (como achar melhor) como você criaria uma lista de livros da sua biblioteca pessoal (pelo menos uns 10): Que dados fariam parte dessa base, ou seja, que informações seriam armazenadas sobre o que é importante para identificar um livro; Depois imagine uma outra lista de empréstimos de seus livros. Simule ao menos 5 empréstimos, entre eles, devem ser feito empréstimo do mesmo livro para pessoas diferentes e do mesmo livro para a mesma pessoa. Como você organizaria isso? Referências ROWLEY, J. A Biblioteca Eletrônica. Briquet de Lemos / Livros, 2002: Capítulo 5; Material de aula da Professora Sandra Siebra (DCI/UFPE). Alguma dúvida? Base de Dados Especializadas Célio Santana Sumário o Conceitos Básicos de SGBD; o Arquitetura de SGBD; o Modelagem de Dados; o Aplicações; o Aspectos Operacionais do SGBD; o Projeto de Banco de Dados; o Requisitos de Dados; Sistemas de Arquivos Sistemas de Gerenciamento de Banco de Dados Banco de Dados Banco de Dados SGBD SGBD SGBD SGBD SGBD SGBD SGBD SGBD SGBD SGBD SGBD SGBD Projeto de BD Requisitos de Dados (Mini Mundos) o Banco de Dados de uma companhia – Organizada em departamentos que têm um nome e um número únicos e um empregado que gerencia o departamento. A data de quando o empregado começou a gerenciar o departamento deve ser registrada. Um departamento pode ter varias localizações – Um departamento controla um número de projetos, cada qual com um nome e número únicos e uma única localização Requisitos de Dados (Mini Mundos) o Banco de Dados de uma companhia – Nós armazenamos para cada empregado seu nome, identidade, endereço, salário, sexo, e data de nascimento. Um empregado é assinalado a um departamento mas pode trabalhar em diversos projetos, os quais não são necessariamente controlados pelo mesmo departamento. Nos registramos o número de horas por semana que o empregado trabalha em cada projeto e o supervisor direto de cada empregado – Nós mantemos registro para cada empregado, do numero de dependentes (para seguro) e para cada dependente o primeiro nome, sexo, data de nascimento e relacionamento com o empregado. Base de Dados Célio Santana Fundamentos de Banco de Dados Célio Santana Sumário o Motivação; o Contextualização; o Conceitos; Motivação Motiavação o Muitos erros são realizados durante a elicitação e definição dos requisitos de dados; o Grande parte dos erros nos requisitos podem ser detectados cedo no ciclo de desenvolvimento de um produto; o Quanto mais tarde um erro é detectado, maior o custo de corrigí-lo; o Estudos mostram que o custo de um problema é 200 vezes maior se reparado após a implantação. Motivação Motivação • Problemas nos Requisitos; – Não refletem a real necessidade dos clientes – Inconsistentes ou incompletos – Custo alto de mudanças após a implementação – Mal entendidos entreclientes e equipe de desenvolvimento • Erros nos requisitos constituem uma das maiores preocupações da indústria de software; o Pesquisas empíricas revelam que o processo de engenharia de requisitos é deficiente em 75% de empresas de tecnologia. Ciclo de Vida dos Projetos de BD Conceitos Básicos o Requisito – Uma facilidade no nível de usuário; por exemplo, um corretor de gramática e ortografia – Uma propriedade muito geral do sistema; por exemplo, o sigilo de informações sem a devida autorização – Uma restrição específica no sistema; por exemplo, o tempo de varredura de um sensor – Uma restrição no desenvolvimento do sistema; por exemplo a linguagem que deverá ser utilizada para o desenvolvimento do sistema. Abordagem Prática de BD • Descrição do Minimundo – Sistema Universitário Requisitos : • O sistema deve cadastrar alunos com os seguintes dados : nome, cpf, sexo, data de nascimento, departamento de habilitação. • O sistema deve possibilitar a matrícula do aluno nas disciplinas oferecidas no período letivo. • O sistema deve permitir a consulta do histórico escolar do aluno, visualizando as disciplinas cursadas e suas respectivas notas • O tempo de resposta de uma consulta de histórico não pode exceder 5 segundos. • O sistema deve utilizar o Oracle como SGBD. • Visualização na Ferramenta Exercício o Crie um mini-mundo que represente a sua biblioteca e o sistema de empréstimos bolado por você na aula 1. Fundamento de Banco de Dados Célio Santana DCI – Curso de Biblioteconomia Base de Dados Célio Santana Celio.santana@gmail.com Agenda Modelo de Dados Modelagem Modelagem Conceitual Modelo Entidade-Relacionamento Modelo de Dados Visão Geral Aplicação Usuário SGBD Bases de dados Modelo de Dados Um modelo de dados especifica as regras segundo as quais os dados são estruturados. É uma técnica para a descrição formal dos dados, relações entre os dados e limitações de uso. Modelo de Dados Representa conceitualmente a estrutura do BD Os modelos de dados descrevem: Os relacionamentos entre os dados, A semântica dos dados e As regras de consistência Existem os seguintes modelos de dados: Modelos com base em objetos Também Conhecido como apenas Modelo Conceitual Modelos com base em registros Também Conhecido como apenas Modelo Lógico Modelos físicos 5 Modelo de Dados A modelagem de dados é uma das etapas do ciclo de Desenvolvimento de Sistemas de Banco de Dados Investigar quais dados deverão fazer parte do banco de dados, a fim de representar bem o problema a ser resolvido e poder atender as necessidades de armazenamento (persistência) dos dados da aplicação Analisar como esses dados podem ser representados e relacionados (olhando para o mundo real) através de um modelo de dados Transformar o modelo de dados criado em estruturas de mais baixo nível que possam realmente ser criadas dentro do SGBD Implementar o BD usando algum dos SGBDs disponíveis no mercado mantido e monitorado pelo administrardor de banco de dados Ferramenta: BR-Modelo É uma ferramenta freeware voltada para ensino de modelagem em banco de dados relacional, com base na notação de Peter Chen e no livro de autoria do Professor Carlos A. Heuser chamado “Projeto de Bando de Dados” Esta ferramenta foi desenvolvida por Carlos Henrique Cândido sob a orientação do Prof. Dr. Ronaldo dos Santos Mello (UFSC), como trabalho de conclusão do curso de pósgraduação em banco de dados (UNVAG - MT e UFSC). Atualmente, está na versão 3.0 e possui o seu código-fonte disponibilizado para quem desejar modificar a ferramenta A ferramenta é simples de usar e possui uma interface amigável e toda a notação usada é a notação do livro de Heuser. O link para baixar encontra-se no site da disciplina. Modelagem de Dados Modelagem de Dados Ciclo de Desenvolvimento de Sistemas de BD 9 Monitoramento e Manutenção do BD Investigação dos Dados Modelagem dos Dados Projeto do Banco de Dados Implementação do Banco de Dados Modelagem dos Dados É o processo de transformar aspectos do mundo real (fatos) em um modelo formal igualmente representativo. Deve mostrar, de forma abstrata, como os fatos estão relacionados 10 Modelo Entidade-Relacionamento (ER) – modelagem conceitual A visão de uma dada realidade baseia-se no relacionamento entre entidades. Representa o significado dos dados como: Entidades, Relacionamentos e Atributos 11 Entidades Objeto básico do MER. É um conjunto de objetos concretos (cliente,livro,...) ou abstratos (conta, empréstimo,...) que são de um mesmo tipo e que compartilham as mesmas propriedades. Conjunto de objetos da realidade modelada sobre os quais deseja-se armazenar informações no BD. Representadas por um retângulo. O nome da entidade deve vir no singular e deve ser representativo. Ex: não pode ser COISA. 12 O Que pode ser entidade? Coisas tangíveis Animal, equipamento, produto, meio de transporte Funções assumidas Cliente, médico, professor, aluno Locais Banco, livraria, biblioteca, departamento, empresa Documentos Histórico escolar, boletim de ocorrência, pedido de compra Eventos Festa, jogo, campeonato Entidades • Entidade Concreta: Pode ser um objeto com uma existência física ou um local. • Ex: uma pessoa, um DVD, um carro, um livro, um banco, um supermercado, uma biblioteca. • Entidade Abstrata: Pode ser um objeto com existência conceitual • Ex: uma locação, um curso, um empréstimo, um boletim de ocorrência, um pedido de compra, um histórico escolar ou um projeto. Entidades Entidades fortes ou dominantes – são aquelas que existem independente de outras. Ex: Aluno, Professor, Funcionário, Livro. Entidade fraca ou subordinadas - são aquelas de dependem de outras para existir. Ex: Dependente, cartão crédito adicional Aluno Professor Dependente Instância de Entidades Cada entidade tem um conjunto de propriedades (atributos) que assumem valores e, em alguns casos, assumem valores que devem ser únicos. Por exemplo, uma entidade EMPREGADO pode ser descrita pelas propriedades nome, cargo que ocupa, idade e estado civil. Essas propriedades seriam os atributos da entidade EMPREGADO. Para referir a um ocorrência em particular de uma entidade fala-se em instância ou ocorrência de entidade Ex: (João da Silva, analista, 35 anos, casado) seria um exemplo de instância da entidade EMPREGADO 16 Dicionário de Dados Toda entidade deve ser descrita em um dicionário de dados É preciso dizer o que cada entidade significa no contexto do que você está modelando. Dicionário de dados é um documento com a explicação de todos os objetos criados no banco de dados (entidades, atributos e relacionamentos); Permite que se obtenham informações sobre todos os objetos do modelo de forma textual, contendo explicações por vezes difíceis de incluir no diagrama; A maioria dos SGBDs atuais já fornece ferramentas para facilitar a inclusão de informações. 17 Atributos São propriedades descritivas de uma entidade ou relacionamento. Uma entidade sempre é representado por um conjunto de atributos Atributos de uma entidade CLIENTE nome, RG, rua, cidade, telefone... Atributos de uma entidade CONTA numero, data_abertura, saldo... O conjunto de valores permitidos para cada atributo é chamado de domínio do atributo (definição do tipo do atributo). Por exemplo: nome = texto ou alfanumérico com 60 posições conta = numérico sem casa decimal saldo= numérico com casa decimal 18 Atributos Em algumas situações relacionamentos também podem ter atributos Ex: Atributos do relacionamento entre EMPREGADO e o PROJETO onde ele está alocado. Colocar um atributo no relacionamento, significa que ele só será preenchido quando o relacionamento for instanciado. 19 A função do empregado só será definida, quando ele for designado a um projeto – ou seja, quando o relacionamento ocorrer. Atributos Cada instância de uma entidade ou relacionamento tem seu próprio valor para cada atributo. Esse valor tem de estar dentro do domínio definido para o atributo. Ex: nome Rita, Ana, João, José, ... conta 123, 321, 456, 654, ... consulta C1, C2,C3, C4, ... Os atributos podem ser: Simples ou Compostos; Monovalorados ou Multivalorados; Nulos e Derivados. 20 Atributos simples ou composto Atributo simples: não pode ser dividido em partes. Ex: idade, CPF, número da conta, etc Atributo composto: pode ser dividido em atributos mais simples ou elementares. Tudo vai depender do contexto sendo modelado. Ex: nome do cliente pode ser estruturado em prenome, nome-intermediário e sobrenome. Data pode ser dividida em dia, mês e ano. Endereço pode ser dividido em tipo logradouro, logradouro, número, complemento, bairro, cidade, estado e cep. 21 Idade Endereço Rua Cidade Estado Atributos simples ou composto Atributos compostos são usados quando o usuário desejar se referir ao atributo como um todo em certas ocasiões e somente a parte dele em outras. Às vezes são usados para facilitar as consultas. Ex: CPF e nome no exemplo abaixo são atributos simples e endereço é atributo composto. CPF Nome Endereço Rua Bairro Num Compl CEP 1234 R. 21 abr San Martin 34 51089- 345 Atributos mono ou multivalorados Atributo Monovalorado – possuem apenas um valor por instância da entidade. Ex: o atributo CPF de uma entidade Cliente refere-se apenas a um nº de CPF é, então, mono-valorado. Atributo Multivalorado – podem possuir um conjunto de valores para um única instância de entidade. Ex: o atributo telefone – um CLIENTE pode ter um, nenhum ou vários telefones Autor de um livro – um livro pode ter um ou mais autores. Foi possível colocar mais de um valor em um mesmo atributo, ele é multivalorado. 23 Telefones Atributos - exemplo Código, Título, Editora e Ano são atributos monovalorados. Autor é um atributo multivalorado. Codigo Título Autor Editora Ano 1 Objetos Digitais FULANO, T. Briquet de Lemos 2012 2 Biblioteca Eletrônica ROWLEY, J. Briquet de Lemos 1998. Atributos opcionais ou nulos Usado quando um atributo de uma entidade puder não ser preenchido. Ou seja, quando ele puder receber valor nulo (ficar vazio). Nulo significa que o valor do atributo é vazio ou ainda não foi informado (desconhecido). Ex: Telefone deve ser um atributo opcional, assim como o complemento do endereço. Ou seja, podemos deixar eles sem preencher, pois alguém pode não ter telefone ou morar em casa – logo não tem complemento a informar. OBS: Um atributo não opcional é um atributo de preenchimento obrigatório. OBS: Nulo Zero ! 25 Atenção Atributos Derivados O valor deste tipo de atributo pode ser derivado de outros atributos ou entidades a ele relacionados. Ex: o atributo idade da entidade CLIENTE seria um atributo derivado da data de nascimento. Ou seja, poderia ser calculado a partir dela. Ex: CLIENTE poderia ter o atributo QTD_Conta que ele possui, porém, pode-se derivar o valor deste atributo contando o número das entidades Contas associadas ao cliente em questão. O uso de atributos derivados é uma decisão de projeto e requer bom senso. Espaço X Integridade X Desempenho 26 Tempo_de_casa Identificador da entidade (chave) Refere-se a um (simples) ou mais (composto) atributos cujos valores identificam unicamente uma entidade. O identificador deve possuir um valor único para cada entidade, não admitindo valores repetidos do atributo (ou dos atributos) que o compõem. Por convenção, o atributo identificador é representado sempre de forma diferenciada dos outros atributos. Existem várias notações para representar um Atributo Identificador: Sublinhado Círculo preto (Peter Chen) – a notação que vamos adotar Sublinhado duplo Identificador Simples de Entidade Apenas um dos atributos já serve para recuperar uma única ocorrência de entidade. Ex: CPF do CLIENTE ou código do ALUNO. Identificador Composto de entidade Apenas um dos atributos não serve para recuperar uma única ocorrência de entidade. Assim, é preciso que mais de um atributo faça parte do identificador. Ex: Um Prateleira pode ser localizada pelo número do corredor associado ao número do armário e ao número da prateleira. Apenas com um ou outro, não se localiza a prateleira Relacionamentos São funções que mapeiam um conjunto de instâncias de uma entidade em um outro conjunto de instâncias de outra entidade (ou da mesma entidade: “auto relacionamento”). São associações entre diversas entidades. Exemplos: “Um empregado trabalha em um projeto” “Um cliente possui conta bancária” “Um filme possui vários atores” Formalmente o relacionamento é uma relação matemática com n >= 2 (n = número de conjuntos entidades). 30 Relacionamentos 31 CLIENTES CLIENTES CLIENTES CLIENTES CONTAS CONTAS CONTAS CONTAS POSSUEM Notação do relacionamento Relacionamentos são representados por um losango interligando uma ou mais entidades com um verbo significativo. Relacionamento tem cardinalidade e um grau. Relacionamentos podem ter papéis. Restrição de participação (total ou parcial) Trabalha Funcionario Departamento emprega Relacionamento Relacionamento X Instância de Relacionamento Para referir um relacionamento particular fala-se em instância ou ocorrência de relacionamento Tem autores que consideram uma associação específica como um relacionamento e o conjunto de associações como conjunto de relacionamentos Exemplo Nos relacionamentos CLIENTE – CONTA, um relacionamento que associa o cliente Luiz com a conta 1234, especificando que o cliente Luiz é o cliente proprietário da conta, seria um exemplo de instância de relacionamento. 33 Exemplo CPF Grau do Relacionamento É o número de entidades que participam do relacionamento. O relacionamento abaixo é Grau 2. Funcionario Departamento emprega Grau do Relacionamento Grau 2 - Binário: O relacionamento está ligando duas entidades. Grau 3 - Ternário: O relacionamento entre três entidades é dito de grau três. Por Exemplo: O relacionamento TRABALHA pode ser Binário ou Ternário. Cardinalidade do Relacionamento A cardinalidade expressa o número de entidades as quais outra entidade pode estar associada em um relacionamento. Podem ser: Um para um (1 para 1) Um para muitos (1 para N) Muitos para um (N para 1) Muitos para muitos (N para N) - pode ser substituido por qualquer outra letra, como M, P, Q) Cardinalidade do Relacionamento Caracterizam o número mínimo e máximo de instâncias de cada entidade que podem estar associadas através do relacionamento Exemplo: 1. Com quantos elementos de B se relaciona cada um dos elementos de A? 2. Com quantos elementos de A se relaciona cada um dos elementos de B? 38 A B R Relacionamento Um-para-Um (1:1) Uma entidade de A está associada, no máximo, a uma entidade de B, e uma entidade de B está associada a, no máximo, uma entidade de A. É como se cada instância da entidade A só encontrasse uma instância correspondente na entidade B. Por exemplo, “Pessoa recebe Certidão de Óbito”. Cada pessoa só pode receber uma única certidão de óbito E uma certidão de óbito só deve pertencer a uma única pessoa Logo, esse relacionamento é dito um para um. 39 PESSOA CERTIDÃO DE ÓBITO recebe (1,1) (1,1) Tipos de Mapeamento – 1:1 Um-para-um: Uma entidade A está associada no máximo a uma entidade B e B está associada no máximo a uma entidade A (pelo menos, de cada vez) 40 CLIENTE CLIENTE CÔNJUGE Tipos de Mapeamento – 1:1 Um-para-um: 41 Cônjuge Cliente possui Quando não colocamos nada, significa 1. Pode-se usar a notação (1,1), que quer dizer, no mínimo 1 e no máximo 1. Lê-se, um somente um. Relacionamento Um-para- Muitos (1:N) Relacionamento Um-para-Muitos (1:N) • Uma entidade em A está associada a várias entidades em B, e uma entidade em B, entretanto, deve estar associada a, no máximo, uma entidade em A • É como se cada instância da entidade A encontrasse zero ou mais instâncias correspondentes na entidade B, porém, cada instância da entidade B só encontrasse uma única instância correspondente em A • Por exemplo, “Empresa possui Filial” Cada empresa pode possuir zero ou mais filiais (ou seja, N filiais, porque o N significa 0, 1, 2 ou mais). Mas uma filial só pertence a uma única empresa 43 EMPRESA FILIAL possui (1,1) (0,N) onde N = 0, 1 ou mais Relacionamento Muitos-para- Muitos (M:N) ou (N:N) • Uma entidade em A está associada a qualquer número de entidades em B e uma entidade em B está associada a um número qualquer de entidades em A. • É como se cada instância da entidade A encontrasse zero, um ou mais instâncias correspondentes na entidade B. E cada instância da entidade B encontrasse zero, uma ou mais instâncias correspondentes na entidade A • Por exemplo, “Atleta pratica esporte” Um atleta pratica um ou mais esportes. Um esporte é praticado por zero ou mais atletas (porque pode ser que tenha um esporte que ninguém ainda pratique). 44 ATLETA ESPORTE pratica (0,N) (1,N) Relacionamento Muitos-para- Muitos (M:N) ou (N:N) “Aluno cursa Disciplina” Um aluno cursa zero ou mais disciplinas e uma disciplina é cursada por zero ou mais alunos 45 ALUNO DISCIPLINA CURSA (0,N) (0,N) Relacionamento Muitos-para- Muitos (M:N) ou (N:N) Muitos-para-muitos: Uma entidade A está associada a qualquer número de entidades B e uma entidade B está associada a qualquer número de entidades A. 46 CLIENTE VENDEDOR Relacionamento Muitos-para- Muitos (M:N) ou (N:N) Muitos-para-muitos: 47 Vendedor Cliente atende (0,N) (0,N) Tipos de Mapeamento Notas Importantes O mapeamento apropriado da cardinalidade ou multiplicidade de um relacionamento é, obviamente, dependente da realidade a ser modelada. Por Exemplo: A relacionamento “Empregado trabalha em Projeto” pode ter a cardinalidade N:1 ou M:N, depende da realizada a ser modelada Não existe uma “receita de bolo”! 48 Exercícios Represente através da notação E-R os seguintes relacionamentos, incluindo a cardinalidade: a) Médico atende paciente b)Estado é governado por Governador c) Autor escreve livro e) Empregado possui dependente f) Curso possui várias disciplinas que são ministradas por professores. Cada professor pode ministrar mais de uma disciplina. 49 Exercício 1 - Descrição Um Sistema Único de Saúde Ideal seria: Hospitais são formados por um ou mais ambulatórios e cada um destes está em um único hospital Médicos clinicam em um único hospital, cada um deles agregando vários médicos Hospitais solicitam exames clínicos em vários laboratórios, cada um destes pode ter solicitações de vários hospitais Pacientes consultam vários médicos e estes são consultados por vários pacientes Ambulatórios atendem vários pacientes, enquanto estes só podem ser atendidos em um único ambulatório Pessoal de apoio está alocado em um ambulatório, e cada ambulatório tem vários integrantes do pessoal de apoio. Pacientes realizam vários testes e cada teste é realizado por um paciente Laboratórios fazem vários testes e cada um dos testes é feito em um único laboratório Cada paciente pode receber vários diagnósticos e cada diagnóstico é de um único paciente. 50 Atributos em relacionamentos 51 CLIENTE CÔNJUGE Cidade Nome R.G. Endereço Data Nome CPF CASA-SE Data Assim como Entidades, Relacionamentos também podem possuir atributos (ex: data casamento) Relacionamento Existem relacionamentos entre entidades distintas 52 Empregado Projeto trabalha (1, N) (1,N) Relacionamento As vezes, pode existir mais de um relacionamento entre as mesmas entidades 53 Professor Curso Atua Coordena (1, N) (1, N) (1, 1) (1, 1) Auto-Relacionamento Existem relacionamentos entre uma entidade e ela mesma (auto-relacionamento). 54 Empregado supervisiona 1..N 0..1 Auto-relacionamento Um relacionamento não associa apenas entidades diferentes As vezes é necessário relacionar instâncias de uma mesma entidade, ou seja, fazer um auto- relacionamento Nestes casos é necessário o conceito de Papel Papel = Função que uma instância de uma entidade cumpre em uma instância de um relacionamento Relacionamento entre entidades diferentes não requer papéis 55 Diagramas E-R: Autorelacionamento 56 CLIENTE CASADO Marido Esposa Papeis Auto-Relacionamentos •São relacionamento que associam uma mesma entidade, ou seja, relacionar a entidade com ela mesma •É chamado auto-relacionamento ou relacionamento recursivo. • Por Exemplo: O relacionamento “Empregado supervisiona Empregado”, significando que um supervisor também é um empregado e ele supervisiona outros empregados. Nesse caso, não seria correto usar duas entidades Empregado diferentes, porque estamos falando da mesma entidade. Dessa forma, o relacionamento seria entre a entidade Empregado e ela mesma, através do relacionamento supervisiona. Conseqüentemente, a entidade EMPREGADO participa duas vezes do relacionamento: uma vez no papel de supervisor e outra no papel de supervisionado. papéis Relacionamento Um relacionamento pode ser N-ário (relacionar várias entidades) 58 Cliente Conta Agência CCA Cardinalidade em Relacionamentos Ternários •Para determinar a cardinalidade em relacionamentos ternários é necessário unir duas entidades e verificar a cardinalidade das duas em relação à terceira • Por Exemplo: • Um Empregado em Um Projeto pode trabalhas para quantos Clientes? • Um Empregado para Um Cliente pode trabalhar em quantos Projetos? • Um Projeto de um Cliente pode possuir quantos Funcionários? Relacionamentos com Atributos •Assim como entidades possuem atributos, relacionamentos também podem possuir atributos • Por Exemplo: O relacionamentoATUA possui um atributo chamado função. Esse atributo função vai representar a função/papel que um empregado exerce dentro de um projeto. Essa função só é atribuída, quando o empregado é alocado em um projeto. Relacionamento com atributos 61 ENGENHEIRO PROJETO Código Nome Código Título ATUA Função O mesmo Engenheiro pode desempenhar funções diferentes em projetos diferentes Relacionamento com atributos 62 FINANCEIRA VENDA FINANCIA Qtd_Parcelas Por que não em vendas?, porque nem todas as vendas são feitas a prazo ! (ficariam muito atributos nulos em vendas) Tx_Juros Relacionamento Identificador Há casos em que o identificador de uma entidade é composto não somente por atributos da própria entidade, mas, também, por relacionamentos dos quais a entidade participa (relacionamento identificador) O relacionamento usado como identificador é indicado por uma linha mais densa o ligando às entidades ou por um losango ou a entidade fraca com linhas duplas. Por exemplo: Um Cliente possui vários Dependentes. Cada dependente está relacionado a exatamente um cliente. Um dependente é identificado pelo CPF do cliente ao qual ele está relacionado e por um número sequencial que o distingue dos diferentes dependentes que um mesmo cliente possa ter. Relacionamento Identificador Metáfora No mundo real normalmente pode-se correlacionar: Entidades = Substantivos Empregado, Nota Fiscal, Livro, Consulta Atributos = características das entidades. Nome, Número, Valor, Cor Relacionamentos = Verbos Tem, Emprega, Prescreve, Gerencia, possui, compra 65 Metáfora 66 Isto não é regra, pois existem relacionamentos que não são bem expressos por verbos. Quando isto ocorrer, pode-se unir os nomes das entidades para dar nome ao relacionamento Exemplo: cliente_conta Notação E-R Básica Um diagrama E-R basicamente consiste dos seguintes componentes gráficos: 67 RETÂNGULOS: conjunto-entidade ELIPSES: atributos LOSANGOS: conjunto- relacionamento LINHAS: ligam atributos a conjunto-entidade e conjunto- entidade a conjunto- relacionamento Exercício 2 - Descrição Um Sistema para controle acadêmico fictício seria: Cada disciplina possui exatamente um e somente um departamento responsável, o qual pode ser responsável por muitas disciplinas, inclusive nenhuma Uma disciplina pode possuir diversas disciplinas como pé- requisitos, inclusive nenhuma. Uma disciplina pode ser pré-requisito de muitas disciplinas, inclusive nenhuma. Uma disciplina pode aparecer no currículo de muitos cursos (inclusive nenhum) e um curso pode possuir muitas disciplinas em seu currículo (inclusive nenhuma) 68 Exercício 3 - Descrição Um Sistema para controle de vendas fictícias seria: Em cada venda são vendidos vários produtos e um determinado produto pode aparecer em diferentes vendas. Cada venda é efetuada por um vendedor para um determinado cliente. Um produto está armazenado um uma prateleira. Para cada cliente é necessário conhecer seu código, seu nome, seu endereço (rua, no., complemento, CEP, cidade, estado) e seu telefone. Para cada vendedor, é necessário conhecer seu código, seu nome, seu telefone e sua senha no sistema de vendas. Para cada venda é necessário conhecer a data e o no da nota fiscal. Para cada produto, é necessário conhecer o seu no, seu código de barras e sua descrição. Cada prateleira tem um número e uma localização. 69 Exercício 4 - Descrição Altere o modelo ER do sistema de vendas para incorporar as seguintes informações: Tanto clientes, quanto vendedores podem ter vários telefones. Um produto pode ter vários preços, cada um com uma data de início e de fim de validade. Para cada produto vendido em uma venda, é necessário conhecer o número de unidades vendidas e o preço de venda. Atenção: Não deve existir atributos opcionais ou multivalorados Atributos julgados essenciais podem ser acrescentados Deve-se identificar as entidade e relacionamentos quando necessário 70 Referência SIEBRA, S. A. Banco de Dados. Coordenação Geral de Educação à Distância (EAD/UFRPE), v. 2, Recife: UFRPE, 2010. SILBERSCHATZ, Abraham; KORTH, Henry F;SUDARSHAN, S. Sistema de banco de dados. 6a ed. Traduzido por Daniel Vieira. Rio de Janeiro: Campus, 2012. 904p. Aula da Profª. Sandra Siebra Alguma dúvida? DCI – Curso Biblioteconomia Base de Dados Sandra de Albuquerque Siebra profa.ssiebra@gmail.com Agenda Modelo de Dados Modelagem Modelagem Conceitual Modelo Entidade-Relacionamento Que conceitos vimos na aula passada? Entidades Classificação 1 Concreta Abstrata Classificação 2 Forte Fraca Entidades Concreta Abstrata Forte Fraca Aluno Emprestimo Aluno Dependente Que conceitos vimos na aula passada? Atributos Simples Composto Monovalorado Multivalorado Opcional ou Nulo Derivado Atributos Simples Composto Monovalorado Multivalorado Opcional ou Nulo Derivado Identificador ou Chave Vamos praticar, como criar esse diagrama na ferramenta? Que conceitos vimos na aula passada? Relacionamentos Binário Ternário Autorelacionamento Relacionamento com Atributo Relacionamentos Binário Ternário Autorelacionamento (1,N) (1,1) Vamos praticar, como criar esse diagrama na ferramenta? Cardinalidade em Relacionamentos Ternários •São pouco usados e não recomendados – sempre há uma solução alternativa a eles. • É mais difícil determinar a cardinalidade deles. Para determinar a cardinalidade em relacionamentos ternários é necessário unir duas entidades e verificar a cardinalidade das duas em relação à terceira • Um Empregado em Um Projeto pode trabalhas para quantos Clientes? • Um Empregado para Um Cliente pode trabalhar em quantos Projetos? • Um Projeto de um Cliente pode possuir quantos Funcionários? Relacionamento Existem relacionamentos entre entidades distintas 10 Empregado Projeto trabalha (1, N) (1,N) Relacionamento As vezes, pode existir mais de um relacionamento entre as mesmas entidades 11 Professor Curso Atua Coordena (1, N) (1, N) (1, 1) (1, 1) Vamos praticar, como criar esse diagrama na ferramenta? Relacionamentos Relacionamento com Atributo Vamos praticar, como criar esse diagrama na ferramenta? Esse atributo função vai representar a função/papel que um empregado exerce dentro de um projeto. Essa função só é atribuída, quando o empregado é alocado em um projeto. Relacionamentos Relacionamento com Atributo CLIENTE CÔNJUGE Cidade Nome CPF Endereço Nome CPF CASA-SE Data_casamento Vamos praticar, como criar esse diagrama na ferramenta? Relacionamento com atributos 14 FINANCEIRA VENDA FINANCIA Qtd_Parcelas Apenas quando uma venda é relacionada a uma FINANCEIRA é que a quantidade de parcelas é especificada, assim como a taxa de juros. Tx_Juros Metáfora No mundo real normalmente pode-se correlacionar: Entidades = Substantivos Empregado, Nota Fiscal, Livro, Consulta Atributos = características das entidades. Nome, Número, Valor, Cor Relacionamentos = Verbos na 3ª pessoa Tem, Emprega, Prescreve, Gerencia, possui, compra15 Exercícios de Modelagem Lembrando do exercício das listas que fizemos no início da disciplina… Como você transformaria a sua lista de livros em uma entidade LIVRO? Como você transformaria a pessoa a quem você emprestou o livro em uma entidade USUÁRIO? Como sua lista de empréstimo daria origem ao relacionamento EMPRÉSTIMO? Como representar na ferramenta? Entidade USUÁRIO Atributos CPF (atributo identificador) Nome (atributo simples) Telefone (atributo multivalorado e opcional) Endereço (atributo composto com Rua, No, complemento e bairro) Email (atributo opcional) Entidade Livro Atributos: CDD, titulo, autor, editora, ano. Relacionamento Emprestimo – o que teria dentro dele? Exercício 1 - Descrição Um Sistema Único de Saúde Ideal seria: Hospitais são formados por um ou mais ambulatórios e cada um destes está em um único hospital Médicos clinicam em um único hospital, cada um deles agregando vários médicos Hospitais solicitam exames clínicos em vários laboratórios, cada um destes pode ter solicitações de vários hospitais Pacientes consultam vários médicos e estes são consultados por vários pacientes Ambulatórios atendem vários pacientes, enquanto estes só podem ser atendidos em um único ambulatório Pessoal de apoio está alocado em um ambulatório, e cada um destes conta com vários integrantes do pessoal de apoio. Pacientes realizam vários testes e cada teste é realizado por um paciente Laboratórios fazem vários testes e cada um dos testes é feito em um único laboratório Cada paciente pode receber vários diagnósticos e cada diagnóstico é de um único paciente. 19 Exercício 2 - Descrição Um Sistema para controle acadêmico fictício seria: Cada disciplina possui exatamente um e somente um departamento responsável, o qual pode ser responsável por muitas disciplinas, inclusive nenhuma Uma disciplina pode possuir diversas disciplinas como pé- requisitos, inclusive nenhuma. Uma disciplina pode ser pré- requisito de muitas disciplinas, inclusive nenhuma. Uma disciplina pode aparecer no currículo de muitos cursos (inclusive nenhum) e um curso pode possuir muitas disciplinas em seu currículo (inclusive nenhuma) Um aluno esta escrito em exatamente um e somente um curso e um curso pode ter muitos alunos inscritos, inclusive nenhum 20 Exercício 3 - Descrição Um Sistema para controle de vendas fictícias seria: Em cada venda são vendidos vários produtos e um determinado produto pode aparecer em diferentes vendas. Cada venda é efetuada por um vendedor para um determinado cliente. Um produto está armazenado um uma prateleira. Para cada cliente é necessário conhecer seu código, seu nome, seu endereço (rua, no., complemento, CEP, cidade, estado) e seu telefone. Para cada vendedor, é necessário conhecer seu código, seu nome, seu telefone e sua senha no sistema de vendas. Para cada venda é necessário conhecer a data e o no da nota fiscal. Para cada produto, é necessário conhecer o seu no, seu código de barras e sua descrição. Cada prateleira tem um número e uma localização. 21 Exercício 4 - Descrição Altere o modelo ER do sistema de vendas para incorporar as seguintes informações: Tanto clientes, quanto vendedores podem ter vários telefones. Um produto pode ter vários preços, cada um com uma data de início e de fim de validade. Para cada produto vendido em uma venda, é necessário conhecer o número de unidades vendidas e o preço de venda. Atenção: Não deve existir atributos opcionais ou multivalorados Atributos julgados essenciais podem ser acrescentados Deve-se identificar as entidade e relacionamentos quando necessário 22 Extensões do Modelo E-R Especialização/Generalização Um conjunto de entidades pode conter subgrupos de entidades que são diferentes de outras entidades do conjunto. Esta diferença pode estar caracterizada por um subgrupo possuir atributos que não são compartilhados pelas demais entidades do conjunto. A especialização permite atribuir propriedades particulares a um subconjunto de entidades especializadas através da herança de propriedades (atributos) de uma entidade mais genérica. A especialização no diagrama é representada pelo triângulo. Alguns autores utilizam um triângulo rotulado de ISA (de “is a” em inglês, ou seja, “ é um(a)”) Especialização/Generalização Por exemplo, uma entidade genérica CLIENTE e duas entidades especializadas que derivam dela: P. FÍSICA e P. JURÍDICA. Qual a vantagem disso? P. FÍSICA e P. JURÍDICA irão ter todos os atributos da entidade CLIENTE possuir. Mas podem ter atributos adicionais, diferentes entre elas. Especialização/Generalização Generalização/Especialização - é um(a) Permite atribuir propriedades particulares a um subconjunto de entidades especializadas Permite a herança de propriedades (atributos) Agrega ao seu conjunto de propriedades as propriedades da entidade genérica Tipos de Generalização/Especialização: Total: Pelo menos uma entidade especializada tem que estar relacionada a entidade genérica Parcial: Pelo menos uma entidade especializada não está relacionada a entidade genérica Exclusiva: A entidade genérica está associada a uma única entidade especializada Não exclusiva: A entidade genérica está associada a duas ou mais entidades especializadas 26 Generalização/Especialização Total •Especialização Total: Para cada ocorrência da entidade genérica EXISTE SEMPRE uma ocorrência em uma das entidades especializadas. •Esse tipo de generalização/especialização é simbolizado por um “t”, ao lado do triângulo ou por não colocar nada. • Por exemplo: Toda ocorrência da entidade CLIENTE corresponde a uma ocorrência de uma das duas especializações (P.FISICA ou P.JURÍDICA). Generalização/Especialização Parcial •Generalização/especialização parcial: Nem toda ocorrência da entidade genérica possui uma ocorrência correspondente em uma entidade especializada. •Esse tipo de generalização/especialização é simbolizado por um “p” ao lado do triângulo. • Por exemplo: Nem toda entidade FUNCIONÁRIO possui uma entidade correspondente em uma das duas especializações (ou seja, nem todo funcionário é CHEFE ou DIRETOR). Tp_Func Funcionário Chefe Diretor p Haverá casos de preenchimento só da entidade genérica. Ou seja, a pessoa é APENAS FUNCIONÁRIO. Generalização/Especialização - Exemplos 29 Tp_Func Cliente P.Física P.Jurídica t Funcionário Chefe Diretor p Pessoa Aluno Funcionário ñ Professor Veículo Terrestre Aquático e Todo cliente ou é Pessoa Física ou é Pessoa Jurídica Nem todo funcionário é Chefe ou Diretor Uma Pessoa pode ser Aluno em um curso e Professor em outro Um Veículo ou é Terrestre ou é Aquático Entidade Associativa ou agregação Uma limitação do modelo E-R é que não é possível expressar relacionamento entre relacionamentos. Logo, a entidade associativa ou agregação é usada para substituir a associação entre relacionamentos (ou seja, ela ajuda a representar um relacionamento entre relacionamentos) Isto faz o relacionamento passar a ser tratado como uma entidade. Notações para entidade associativa Exemplo de Entidade Associativa Apenas quando ocorre o relacionamento entre o MÉDICO e o PACIENTE, criando uma CONSULTA, é que poderá ser prescrito um MEDICAMENTO. Médico PacienteConsulta Medicamento Prescrição n nn nMédico PacienteConsultaConsulta Medicamento PrescriçãoPrescrição n n n n(1,N) (1,N) (1,N) (1,N) Alternativa à entidade associativa Criar uma Entidade ao invés de uma Associação. Mais usado. Caso não se deseje usar o conceito de entidade associativa, deve-se transformar o relacionamento em entidade, a qual deve ser relacionada com as outras entidades existentes. Exercício 5- Descrição Um Sistema para uma vídeo locadora fictícia seria: Uma pequena locadora de vídeos possui ao redor de 2.000 DVDs, cujo empréstimo deve ser controlado. Cada cópia de DVD possui um número e o filme que ele contém. Cada DVD contém somente um filme ou parte dele (ex: parte I, parte II). Para cada filme, é necessário saber seu título, seu ano de lançamento e sua categoria (comédia, drama, aventura, …). Cada filme recebe um identificador próprio. Para cada filme há pelo menos um DVD. Há filmes que estão gravados em mais de um DVD. Os clientes podem desejar encontrar os filmes estrelados pelo seu ator predileto. Por isso, é necessário manter a informação dos atores que estrelam cada filme. Todo filme possui um ou mais atores. Deve-se guardar o nome do ator e o seu papel no filme. 34 Exercício 5- Descrição A locadora possui muitos clientes cadastrados. Somente clientes cadastrados podem alugar DVDs. Para cada cliente é necessário saber seu nome, seu telefone e seu endereço. Além disso, cada cliente recebe um número de associado. Finalmente, é preciso guardar informações sobre o empréstimo dos DVDs. Cada cliente pode pegar um ou mais DVDs emprestados. O empréstimo se refere a um DVD específico (pois podem existir várias cópias de DVD de um mesmo filme). É preciso saber a data do empréstimo. Devem ser mantidos registros históricos de aluguéis dos DVDs por cada cliente. 35 Restrição Existencial Dependência de Existência Se a existência de uma entidade X depende da existência de uma entidade Y, então X é dito ser dependente da existência de Y. Operacionalmente, se Y for excluído, o mesmo deve acontecer com X. A entidade Y é chamada Forte (dominante) e a X fraca (subordinada) 36 Restrição Existencial Entidade Fraca Não possui atributos suficientes para formar seu identificador. Só existe quando relacionada a outra entidade Usa o identificador da entidade Forte para formar o seu Relacionamento Identificador Relacionamento Identificador Há casos em que o identificador de uma entidade é composto não somente por atributos da própria entidade, mas, também, por relacionamentos dos quais a entidade participa (relacionamento identificador) O relacionamento usado como identificador é indicado por uma linha mais densa o ligando às entidades ou por um losango ou a entidade fraca com linhas duplas. Por exemplo: Um Cliente possui vários Dependentes. Cada dependente está relacionado a exatamente um cliente. Um dependente é identificado pelo CPF do cliente ao qual ele está relacionado e por um número sequencial que o distingue dos diferentes dependentes que um mesmo cliente possa ter. Exercício 6 - Descrição Dado o relacionamento EMPREGADO- DEPENDENTE abaixo. Considere que um dependente de um empregado possa ser também empregado. Como o modelo deveria ser modificado para evitar o armazenamento redundante das informações das pessoas que são tanto dependentes quanto empregados? 40 Referência SILBERSCHATZ, Abraham; KORTH, Henry F;SUDARSHAN, S. Sistema de banco de dados. 6a ed. Traduzido por Daniel Vieira. Rio de Janeiro: Campus, 2012. 904p. SIEBRA, S. A. Banco de Dados. Coordenação Geral de Educação à Distância (EAD/UFRPE). V. 2, Recife: UFRPE, 2010. Alguma dúvida? DCI – Curso Biblioteconomia Base de Dados Sandra de Albuquerque Siebra profa.ssiebra@gmail.com Dúvidas que foram trazidas Dúvidas Quando usar relacionamentos (1,1)? O que significa usar esse tipo de relacionamento? Vamos pelos exemplos, o que significa cada uma das ligações? Caso 1 Nesse caso, cada livro (um único livro) só pode ser publicado por uma única editora. Que é o mais comum no caso de editora. Se no lugar de editora fosse autor, nem sempre poderia ser (1,1) no lugar da editora. Pois nem sempre o livro tem apenas um único autor. Caso 2 Nesse caso, um mesmo livro (um livro só) pode ter um ou mais editoras publicando ele ao mesmo tempo. Se no lugar de editora, fosse autor, ficaria bom esse relacionamento, pois um mesmo livro pode ter um ou mais autores. Caso 3 Um mesmo livro pode ser publicado por uma única editora por vez, mas em períodos diferentes. A data no relacionamento é que vai deixar claro isso, vai permitir que isso aconteça. Esse caso não poderia ser utilizado com autores. Senão seria plágio Dois autores publicarem o mesmo livro em épocas diferentes. Dúvida Quando colocar atributos no relacionamento? Quando você tiver algum atributo que só deve ser preenchido quando você for preencher o relacionamento. O empregado – os dados dele podem ser preenchidos sem você saber em qual projeto ele vai trabalhar. O projeto – você pode cadastrar o projeto sem saber ainda quem vai trabalhar nele. Mas a função do empregado no projeto só pode ser definida quando você diz em qual projeto o empregado vai trabalhar. Exercícios de Modelagem Exercício 2 - Descrição Um Sistema Único de Saúde Ideal seria: Hospitais são formados por um ou mais ambulatórios e cada um destes está em um único hospital Médicos clinicam em um único hospital, cada um deles agregando vários médicos Exames clínicos são realizados em vários laboratórios, cada laboratório pode ter solicitações de vários exames clínicos. Esses exames são solicitados por vários hospitais e os hospitais podem solicitar vários exames. Pacientes podem ser consultados vários médicos e estes consultam vários pacientes Ambulatórios atendem vários pacientes, enquanto estes só podem ser atendidos em um único ambulatório. Pessoal de apoio está alocado em um ambulatório, e cada um destes conta com vários integrantes do pessoal de apoio. Pacientes realizam vários testes e cada teste é realizado por um paciente Laboratórios fazem vários testes e cada um dos testes é feito em um único laboratório Cada paciente pode receber vários diagnósticos e cada diagnóstico é de um único paciente. 9 Exercício 3 - Descrição Um Sistema para controle de vendas fictícias seria: Em cada venda são vendidos vários produtos e um determinado produto pode aparecer em diferentes vendas. Cada venda é efetuada por um vendedor e este pode efetuar várias vendas. Uma venda é feita para um determinado cliente. E um cliente pode fazer várias vendas. Um produto está armazenado em uma prateleira e uma prateleira tem vários produtos. Para cada cliente é necessário conhecer seu código, seu nome, seu endereço (rua, no., complemento, CEP, cidade, estado) e seu telefone. Para cada vendedor, é necessário conhecer seu código, seu nome, seu telefone e sua senha no sistema de vendas. Para cada venda é necessário conhecer a data e o no da nota fiscal. Para cada produto, é necessário conhecer o seu no, seu código de barras e sua descrição. Cada prateleira tem um número e uma localização. 10 Exercício 4 - Descrição Altere o modelo ER do sistema de vendas para incorporar as seguintes informações: Tanto clientes, quanto vendedores podem ter vários telefones. Um produto pode ter vários preços, cada preço tem uma data de início e de fim de validade. Como você atenderia esse requisito? Para cada produto vendido em uma venda, é necessário conhecer a quantidade de produtos vendidas e o preço de venda daquele produto. Atenção: Atributos julgados essenciais podem ser acrescentados Deve-se identificar as entidade e relacionamentos quando necessário 11 Exercício 5- Descrição Um Sistema para uma vídeo locadora fictícia seria: Uma pequena locadora de vídeos possui ao redor de 2.000 DVDs, cujo empréstimo deve ser controlado. Cada cópia de DVD possui um número e o filme que ele contém. Cada DVD contém somente um filme ou parte dele (ex: parte I, parte II). Para cada filme, é necessário saber seu título, seu ano de lançamento e sua categoria (comédia, drama, aventura, …). Cada filme recebe um identificador próprio. Para cada filme há pelo menos um DVD. Há filmes que estão gravados em mais de um DVD. Os clientes podem desejar encontrar os filmes estrelados pelo seu ator predileto. Por isso, é necessário manter a informação dos atores que estrelam cada filme. Todo filme possui um ou mais atores. Um ator pode estrelar em vários filmes. Deve-se guardar o nome do ator e o seu papel no filme. 12 Exercício 5- Descrição A locadora possui muitos clientes cadastrados. Somente clientes cadastrados podem alugar DVDs. Para cada cliente é necessário saber seu nome, seu telefone e seu endereço. Além disso, cada cliente recebe um número de associado. Finalmente, é preciso guardar informações sobre o empréstimo dos DVDs. Cada cliente pode pegar um ou mais DVDs emprestados. O empréstimo se refere a um DVD específico (pois podem existir várias cópias de DVD de um mesmo filme). É preciso saber a data do empréstimo. Devem ser mantidos registros históricos de aluguéis dos DVDs por cada cliente. 13 Restrição Existencial Dependência de Existência Se a existência de uma entidade X depende da existência de uma entidade Y, então X é dito ser dependente da existência de Y. Operacionalmente, se Y for excluído, o mesmo deve acontecer com X. A entidade Y é chamada Forte (dominante) e a X fraca (subordinada) 14 Restrição Existencial Entidade Fraca Só existe quando relacionada a outra entidade Usa o identificador da entidade Forte para formar o seu próprio identificador. Tem uma dependência existencial de uma entidade forte, por isso usa algo chamado RELACIONAMENTO IDENTIFICADOR. No BRModelo Entidade fraca e relacionamento identificador – apenas a linha do relacionamento fica mais grossa. Relacionamento Identificador Há casos em que o identificador de uma entidade é composto não somente por atributos da própria entidade, mas, também, por relacionamentos dos quais a entidade participa (relacionamento identificador) O relacionamento usado como identificador é indicado por uma linha mais densa o ligando às entidades ou por um losango ou a entidade fraca com linhas duplas. Por exemplo: Um Cliente possui vários Dependentes. Cada dependente está relacionado a exatamente um cliente. Um dependente é identificado pelo CPF do cliente ao qual ele está relacionado e por um número sequencial que o distingue dos diferentes dependentes que um mesmo cliente possa ter. Alguma dúvida? DCI – Curso Biblioteconomia Base de Dados Célio Santana Celio.santana@gmail.com Agenda Modelo Relacional Elementos do modelo relacional O Modelo Relacional Resultado da modelagem lógica do Banco de Dados e é a etapa seguinte a modelagem conceitual O Modelo Relacional (MR) Modelo Relacional Introdução Abordagem de modelagem de dados usada nos SGBD do tipo relacional Foi definido em 1970 por E.F. Codd Principais razões para sua grande aceitação: Simplicidade: Fundamentado na teoria dos conjuntos Expressividade/formalismo: Operadores baseados na álgebra relacional 5 Modelo Relacional Introdução O modelo relacional é um modelo lógico (dependente de tecnologia), onde os dados são representados por relações ou tabelas. Neste modelo, um banco de dados é visto como um conjunto de relações. Os dados em uma relação representam fatos reais a respeito de uma entidade ou de um relacionamento do mundo real. 6 Modelo Lógico Relacional Definição Clássica: “São conjuntos de dados vistos segundo um conjunto de TABELAS e as operações sobre elas (tabelas) são feitas por linguagens que manipulam a álgebra relacional, manipulando conjuntos de uma só vez” 7 Modelo Relacional Estrutura Básica Tabelas (ou Relações) Compostas de Linhas (ou tuplas) Colunas (ou atributos) Chaves primárias Relacionadas através de Chaves estrangeiras 8 O Modelo Relacional (MR) Uma tabela é uma representação bi-dimensional de dados composta de linhas e colunas. Linha Coluna Coluna Coluna Coluna Coluna Linha Linha Linha Linha Modelo Relacional Estrutura Básica Um banco de dados relacional consiste de uma coleção de tabelas de nomes únicos. Uma tabela é formada por: um conjunto de colunas denominadas de atributos Para cada atributo existe um conjunto de valores permitidos, chamado de domínio um conjunto de linhas denominadas de tuplas (que são valores assumidos pelas colunas). 10 Modelo Relacional Estrutura Básica 11 É a estrutura que armazena os dados referentes a as ocorrências de uma entidade ou relacionamento (MER) Modelo Relacional Domínio Conjunto de valores permitidos para um dado Exemplos inteiro, string (domínios básicos) data, hora (domínios compostos) [0, 120], (‘M’, ‘F’) (domínios definidos) É uma coleção de valores admissíveis para cada atributo. Para cada domínio existem operações válidas: inteiro (é possível somar, dividir, comparar, i1 maior que i2, ...) data (extrair dia, extrair mês, d1 anterior a d2, ...) String (concatenar, comparar, …) 12 Modelo Relacional Domínio É possível que vários atributos de uma relação possuam o mesmo domínio. Os domínios, em geral, são designados como tipo de dados, que especificam a formação dos valores Ex: Nomes dos clientes [caracter tamanho 50] Números das contas [inteiro – números sem parte decimal] Valores dos saldos das contas [real com formato 6(2) – números considerando a parte decimal] ◦ A parte decimal pode ser configurada. Ex: 6(2), quer dizer que o número vai ser representado com seis digitos, sendo 2 deles na parte decimal. Apenas valores que pertençam ao mesmo domínio podem ser comparados. Ex: não é possível comparar um inteiro (ex: idade) com um caracter (ex: nome). 13 Modelo Relacional Domínio O domínio a ser especificado para cada atributo variará de nome dependendo do banco de dados a ser utilizado. Em geral: Nomes, considerando letras maiúsculas e minúsculas, símbolos e números (com os quais não se pode realizar operaçõs matemáticas) são ALFANUMÉRICO, CARACTER, CHAR, VARSHAR ou STRING. Números sem parte decimal e com os quais se deseje realizar operações matemáticas são INTEIROS, INT ou NUMBER. Números com parte decimal e com os quais se deseje realizar operações matemáticas são REAL ou DOUBLE. Datas são DATA ou DATE, Horas são TIME ou TIMESTAMP. Modelo Relacional Atributo ou Coluna Uma coluna da tabela Representa os atributos do modelo conceitual. É definido, no mínimo, por um nome e um domínioe, às vezes, um tamanho. Exemplos: Funcionario nome: caracter (50) idade: inteiro Data_admissao: data Salario: real 15 Modelo Relacional Linha ou Tupla Um conjunto de pares (atributo, valor) define uma ocorrência de um fato do mundo real ou de um relacionamento entre fatos No momento da criação de uma tupla, valores são definidos para cada atributo da tabela. Os valores definidos devem: Ser compatíveis com o domínio de cada atributo ou ser NULL (valor inexistente ou indeterminado) Ser Atômicos (indivisíveis: não-estruturados e monovalorado) Exemplos Aluno: {(nome, ‘João’), (idade, 34), (matrícula, 03167034)} Funcionario: {(nome, ‘Ana’), (idade, 25), (data_admissao, ‘10/03/1991’), (salario, 2500.25)} 16 Modelo Relacional Linha ou Tupla Um valor da tupla pode ser “desconhecido” ou “indefinido”, sendo assim chamado de “null” ou valor nulo (cod_artista, nome_artista, data_nasc,cidade, país) (1, ’Julia Roberts’,’23/09/66’, ’Boston’, ’USA’) (2, ‘Glória Pires’, NULL, NULL, ‘Brasil’) A característica do nulo poderá ser interrogada em consultas ou atualizada com valores válidos, mudando, assim, o status do campo Ou seja, NULL é um valor que pode ser acessado no BD. 17 O Modelo Relacional (MR) tupla atributo atributo atributo atributo atributo tupla tupla tupla tupla RELAÇÃO (entidade ou relacionamento ) Atributo -1 Atributo -2 Atributo -3 Atributo -4 Atributo -5 RELAÇÃO ALUNO O Modelo Relacional (MR) O grau de uma relação é o número de atributos que a compõe. EX: O grau da relação ALUNO[Nome, CPF, Telefone, Endereço, Idade] é cinco, porque essa relação possui 5 atributos. Modelo Relacional Propriedades de uma Relação Os atributos em uma tupla não são ordenados, ou seja, não importa a ordem que as colunas aparecem. 20 Do ponto de vista conceitual não há diferença entre essas duas relações Modelo Relacional Propriedades de uma Relação As tuplas de uma relação não são ordenadas A ordem de recuperação pelo SGBD é arbitrária A não ser que a instrução de consulta tenha especificado explicitamente uma ordenação = 21 nome_agência número_conta saldo Downtown A-101 500 Mianus A-215 700 Perryridge A-102 400 Round Hill A-305 350 Brighton A-201 900 Redwood A-222 700 Brighton A-217 750 nome_agência número_conta saldo Mianus A-215 700 Perryridge A-102 400 Downtown A-101 500 Round Hill A-305 350 Redwood A-222 700 Brighton A-201 900 Brighton A-217 750 Relação Conta Relação Conta Modelo Relacional Propriedades de uma Relação A ordem dos atributos é importante, se for necessária a correspondência entre os mesmos e seus respectivos valores (cod_artista, nome_artista, data_nasc,cidade, país) (1,’Julia Roberts’,’23/09/66’,’Boston’,’USA’) Quando você for fazer inserções na base de dados, vai precisar disso! A mudança da ordem dos valores poderá causar inconsistência no banco de dados. 22 Modelo Relacional Propriedades de uma Relação Não há tuplas duplicadas em uma mesma relação Não deve haver duas linhas na tabela com exatamente os mesmos valores Senão isso seria redundância! Cada relação possui um número fixo de atributos, todos com nomes distintos. Não podem existir duas colunas com mesmo nome em uma única tabela. 23 Modelo Relacional Nomeclaturas Terminologias Utilizadas (são sinônimos) 24 Modelo Relacional Esquema O esquema de uma relação/tabela é a definição de seu nome e da sua estrutura (atributos com seus domínios) Formato do esquema de relação: R[A1 D1,...,An Dn] onde R é o nome do esquema A1,...,An é a lista de atributos de R Di é o domínio de Ai Notação simplificada: Freqüentemente omite-se a definição do domínio, adotando-se a notação simplificada R[A1,...,An] 25 Modelo Relacional Esquema Nome Pode ser Nulo? Tipo -------------------- -------------- ---------------------------- COD_ARTISTA NOT NULL INT NOME_ARTISTA VARCHAR(50) CIDADE VARCHAR(30) DATA_NASC DATE 26 Exemplos Professor[Matricula char(6) NOT NULL, Nome char(20)] Artista[Cod_Artista int NOT NULL, Nome_artista varchar(50), cidade varchar(30), data_nasc date] ARTISTA Modelo Relacional Esquema Relacional Esquema Relacional: é a lista de esquemas de relação que compõe o seu banco de dados. Exemplo: Professor[Matr varchar(6) NOT NULL, Nome varchar(20)] Disciplina[Cod varchar(5) NOT NULL, Nome varchar(10)] Coordena[Matr varchar(6) NOT NULL, Cod varchar(5) NOT NULL] 27 Modelo Relacional Esquema Relacional Um esquema costuma ser pouco atualizado (porque ele é a estrutura do BD) Já que ele é a definição de cada relação Uma instância, por sua vez, pode ser constantemente atualizada, uma vez que ela corresponde aos valores que preenchem o BD. Lembrem-se que a forma de definir o “esquema” varia de um SGBD para outro. 28 Modelo Relacional Chaves Conceito usado para especificar restrições de integridade básicas de um SGBD relacional Três tipos chave primária chave estrangeira chave alternativa (ou candidata) 29 Modelo Relacional Chave Primária É uma coluna ou uma combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela. A chave primária deve ser mínima Todas as suas colunas são efetivamente necessárias para garantir o requisito de unicidade de valores Também chamada de PK (Primary Key) Atenção: A chave primária não pode ter valor nulo (ou desconhecido) 30 Chave Primária x Índices Convenciona-se sublinhar os atributos que compõem a chave primária. Ex.:Empregado (Matrícula, Nome, Endereço, Função,Salário) Índice é um recurso físico visando otimizar a recuperação de uma informação, via um método de acesso. Seu objetivo principal está relacionado com a performance de um sistema. Uma chave pode ser utilizada como índice, mas um índice não é necessariamente uma chave A forma de criação do índice depende do banco de dados Modelo Relacional Índices Índice = “Chave secundária” = “Chave de Procura” Serve para definir um segundo campo ordenado de acesso (otimização das consultas). Qualquer campo pode ter um índice. Só defina índices quando realmente necessário. Cada índice definido representa uma tabela a mais para o SGBD gerenciar. Aumento da base de dados Inserção/Remoção exigem muito para ordenação dos dados 32 Modelo Relacional Chave Primária Exemplo: 33 Modelo Relacional Chave Estrangeira Uma coluna ou uma combinação de colunas, cujos valores aparecem necessariamente na chave primária de uma outra tabela Mecanismo que permite a implementação de relacionamentos em um banco de dados relacional Estrangeira porquê? É uma chave pertencente a uma tabela; Mas ela não está no seu local de origem, mas sim no local para onde foi migrada (estrangeiro) Também chamada de FK (Foreign Key) 34 Modelo Relacional Chave Estrangeira Exemplo 35 Modelo Relacional Chave Estrangeira 36 Tabela: FUNCIONÁRIO Tabela: CARGO Matrícula (PK) Nome Data de Admissão CodCargo (FK) 3478 José
Compartilhar