UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Roteiro 1- Conceitos de bancos de dados Objetivos: • • Detalhar conceitos gerais sobre bancos de dados, bancos de dados relacionais e orientados a objetos; Explorar diferentes tipos de bancos de dados existentes na atualidade; Ferramentas necessárias Navegador, Bibliografias de livros da faculdade. Introdução As interações citadas podem ser chamadas de aplicações de bancos de dados tradicionais, em que a maior parte da informação armazenada e acessada é textual ou numérica. Com o avanço da tecnologia alguns novos tipos de informações foram também necessitando de aramazenamento como por exemplo Bancos de dados Multimídia, Sistemas de Informações Geográficas (GIS), Sistemas de Data Warehousing, etc. Além disso, técnicas de pesquisa de banco de dados estão sendo aplicadas à World Wide Web para melhorar a busca por informações necessárias feita pelos usuários que utilizam a internet. A definição de banco conhecida é que um Banco de dados é uma coleção de dados relacionados. Dados são fatos conhecidos que podem ser registrados e possuem significado explícito. Dados podem ser números de telefone, endereços, cidades, enfim, dados que possuem algum significado implícito. Um banco de dados pode ter qualquer tamanho e complexidade, visto que existem informações diferentes para situações diferentes como, por exemplo, um banco de dados para uma lista de nomes e endereços, uma biblioteca com meio milhão de entradas organizadas por categorias até o banco de registro de contribuintes da Receita Federal para monitorar formulários de imposto de renda preenchidos pelos contribuintes, com aproximadamente 100 milhões de contribuintes. Toda esta informação precisa ser organizada e gerenciada de modo que os usuários possam consultar, recuperar e atualizar os dados, quando necessário. Um Sistema Gerenciador de Banco de dados (SGBD – Database Management System) é uma coleção de programas que permite aos usuários criar e manter um banco de dados. Dois tipos importantes de bancos de dados que podem ser destacados são os bancos de dados Relacionais e os Orientados a objeto. Banco de dados Relacional: representa o banco de dados como uma coleção de relações, onde cada relação pode ser comparada a uma tabela de valores. Cada linha da tabela representa uma coleção de valores de dados relacionados. Os nomes da tabela e da coluna são usados para utilizados para ajudar a interpretar o significado dos valores em cada linha. Normalmente, cada linha também recebe o nome de tupla, o cabeçalho de uma coluna é chamado de atributo e a tabela é chamada de relação. Banco de dados Orientado a Objeto: Conhecidos como BDO (Banco de dados de Objeto), foram propostos para atender a necessidades de aplicações mais complexas, contendo transações de maior duração, definição de operações fora do padrão e também para atender algumas necessidades dessas aplicações. Este tipo de banco de dados tem uma vantagem aos bancos relacionais pelo fato de ser totalmente compatível com as definições de dados em linguagens orientadas a objetos como C++ ou Java. P á g | 10 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Desde a antiguidade, o homem tem procurado transmitir e documentar seu conhecimento, objetos e fatos da vida real. Nas cavernas pré-históricas, foram encontrados desenhos de animais, caçadas e cenas do cotidiano. Por meio de símbolos que representavam objetos e animais, os habitantes daquelas cavernas eternizavam a sua realidade. O homem evoluiu e sua técnica de representar a realidade por intermédio de modelos também mudou. Bancos de dados e sistemas de banco de dados são um componente essencial da vida na sociedade moderna, sendo facilmente encontrados atividades no cotidiano humano que envolvem alguma iteração com um banco de dados, como ir a um banco para depositar ou retirar fundos, realizar reservas em hotéis, acessar o catálogo de uma biblioteca virtual, e demais atividades. UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Tarefas de atividade 1: 1) Complete a seguir a tabela contendo os seguintes conceitos: Conceito Descrição Dados Banco de dados SGBD Sistema de banco de dados Catálogo de banco de dados Independência entre dados e programas Visão do usuário DBA Usuário final Sistema de banco de dados dedutivo Objeto persistente Metadados Aplicação para processamento de transação 2) Quais são as responsabilidades do DBA e dos projetistas de banco de dados? 3) Explique os diferentes tipos de usuários finais de bancos de dados. Detalhe 2 atividades de cada um. 4) Explique as diferenças entre sistemas de banco de dados e sistemas de recuperação de informações. 5) Pesquise 3 bancos de dados através da internet e classifique-os como banco de dados relacional ou orientado a objeto, detalhando o URL da página principal de cada banco de dados, e para quais tipos de aplicações o mesmo pode ser utilizado. Referências • • • • • • • • • Elmasri, Navathe – Sistemas de banco de dados 6ª Edição; Apostila - Projeto de Banco de Dados, Campinas - http://187.7.106.14/andre/ads/proj_bd/materiais/USP-BD.pdf Mongo DB - http://www.mongodb.org/ Mysql - http://www.mysql.com/ PostgreSQL - http://www.postgresql.org.br/ Oracle - http://www.oracle.com/br/ Apache Cassandra - http://cassandra.apache.org/ Artigo – “10 coisas que precisamos saber sobre bancos de dados NOSQL” http://www.techrepublic.com/blog/10things/10-things-you-should-know-about-nosql-databases/1772 Bancos de dados NOSQL - http://www.nosqldatabases.com/ - P á g | 11 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Transação programada UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Roteiro 2 – Conceitos Gerais Objetivos: • • Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e interfaces do banco de dados; o Modelagem de bancos de dados – projetos: conceitual, lógico e físico; o Classificação dos sistemas gerenciadores de bancos de dados; Utilizar o workbench para realizar a modelagem de bancos de dados. Ferramentas necessárias Navegador, Bibliografias de livros da faculdade. Introdução Este roteiro explora conceitos sobre SGBDs necessários para o entendimento, uso e projeto de Bancos de dados. Também explora a instalação de algumas ferramentas que serão utilizadas pela unidade curricular ao longo do semestre. Arquitetura de Bancos de dados O módulo cliente: que normalmente é projetado para executar em uma estação de trabalho ou computador pessoal oferecendo interação ao usuário através de interfaces amigáveis baseadas em menus e indicações visuais. O módulo servidor: responsável pelo armazenamento dos dados, acesso, pesquisa e outras funções. Modelos de dados, esquemas e instâncias Em bancos de dados é comum o uso da abordagem oferecendo algum nível de abstração de dados. Isto significa que estamos suprimindo detalhes da organização e armazenamento dos dados, destacando recursos essenciais para um melhor conhecimento desses dados. Um modelo de dados significa uma coleção de conceitos que podem ser utilizados para descrever a estrutura de um banco de dados e oferece meios para alcançar a abstração desejada. Existem os modelos de dados de alto nível ou conceitual e modelos de dados de baixo nível ou físicos. Modelos de dados de alto nível ou conceitual: oferecem conceitos que são próximos ao modelo como mitos usuários percebem os dados. Geralmente estes modelos utilizam conceitos como entidades, atributos e relacionamentos. Destes conceitos básicos podemos destacar: • Entidade: representa um objeto ou conceito do mundo real, como um funcionário ou um projeto do minimundo (situação ampla para um projeto de banco de dados) que é descrito no banco de dados. Em modelagens simples, pode-se comparar a nomenclatura entidade à tabela. • Atributo: representa alguma propriedade, como o nome ou salário do funcionário. • Relacionamento: representa uma associação entre uma ou entidades, por exemplo, um relacionamento trabalha-em entre um funcionário e um projeto. Modelos de dados de baixo nível ou físicos: oferecem conceitos que descrevem os detalhes de como os dados são armazenados no computador, costumam ser voltados para especialistas de computadores. Descrevem o armazenamento dos dados como arquivos no computador, com informações no formato de registro, ordenações de registro e caminhos de acesso. P á g | 14 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. A arquitetura dos SGBDs tem evoluído desde os primeiros sistemas monolíticos, nos quais todo o software GBD era um sistema altamente integrado, até os mais modernos, que têm um projeto modular, com arquitetura cliente/servidor. Geralmente em arquiteturas básicas Cliente/Servidor a funcionalidade do sistema é distribuída entre dois tipos de módulos: UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Esquemas Em bancos de dados é importante distinguir entre a descrição do banco de dados e o próprio banco de dados. A descrição é o chamado esquema de banco de dados (squema database), que é especificado durante o projeto de banco de dados e não se espera que mude com frequência. Em alguns softwares utilizados na modelagem de bancos de dados costuma utilizar a nomenclatura squema para definir a descrição de todos os elementos que compõem o banco de dados. Os dados em um banco de dados armazenados em um determinado momento no tempo são chamados de estado ou instante do banco de dados ou ainda são chamados de conjunto atual de instâncias ou ocorrências no banco de dados. O estado do banco de dados é alterado pelo simples fato de alteração das informações constantes, como a inserção de um novo registro ou alteração de uma informação de um registro. O SGBD é parcialmente responsável para garantir o estado de um banco de dados como válido, ou seja, que satisfaça as descrições e restrições especificadas no esquema, também chamados de Metadados. O esquema de um banco de dados às vezes é chamado de intenção e o estado de extensão do esquema. Linguagens e interfaces do banco de dados Em SGBDs que mantêm a separação entre o nível conceitual e interno, a DDL é utilizada apenas para especificar o esquema conceitual, neste caso, o esquema interno do SGBD é definido com uso da Linguagem de Definição de Armazenamento (Storage Definition Language – SDL). Na maioria dos bancos de dados relacionais não existe linguagem que utilize SDL. Na realidade os SGBDs relacionais acabam utilizando totalmente a DDL para definir quaisquer tipos de esquemas, e fazem uso da linguagem SQL para a realização destas tarefas. Após a definição de bancos de dados é necessária a utilização de algo para poder manipular os seus dados, neste caso entra em ação a Linguagem de Manipulação de dados (Data Manipulation Language – DML) para estas finalidades, a manipulação inclui tarefas de recuperação, inserção, exclusão e modificação dos dados. O maior exemplo de linguagem de banco de dados é a linguagem de banco de dados SQL, que representa uma combinação de DDL, DML e VDL, bem como as instruções para especificação de restrições e demais funcionalidades inerentes de bancos de dados. O ambiente do sistema de banco de dados Um SGBD consiste em um software complexo, e para poder explorar seus componentes é necessário representa-lo em um diagrama estendido capaz de separar as suas funcionalidades e detalhes de sua implementação. P á g | 15 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Um SGBD necessita oferecer linguagens e interfaces apropriadas para cada categoria de usuário. Quando um projeto de banco de dados é finalizado e um SGBD é escolhido para implementá-lo, o primeiro passo é especificar esquemas conceituais e internos para o banco de dados e quaisquer mapeamentos entre os dois. Em muitos casos não há uma separação estrita entre de níveis, então é utilizada uma linguagem chamada de Linguagem de Definição de Dados (Data Definition Language – DDL), e é utilizada pelo DBA e projetistas de banco de dados para definir os dois esquemas. UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes O banco de dados e o catálogo do SGBD geralmente são armazenados em disco. O seu acesso é controlado pelo sistema operacional (SO) que escalona a leitura/escrita em disco. Um gerenciador de dados armazenados controla o acesso às informações do SGBD, tanto para o catálogo quanto para o banco de dados. O compilador DDL processa as definições de esquema especificadas e armazena as descrições dos esquemas no catálogo do SGBD. Uma interface de consulta interativa é utilizada por usuários casuais do banco de dados, esta interação é realizada através de consultas analisadas e validadas por um compilador de consulta, e um otimizador de consulta é responsável, como o próprio nome diz, por otimizar a consulta realizada através de procedimentos internos e direcionados ao processador de dados em tempo de execução, não visíveis ao usuário do banco de dados. O pré-compilador é responsável por extrair comandos DML de um programa de aplicação escrito em linguagem de programação hospedeira (java, C++, PHP), estes comandos são enviados ao compilador DML para serem compilados em código objeto para o acesso ao banco de dados. P á g | 16 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. 4º sem– Análise e Desenvolvimento de Sistemas UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas O restante do programa é enviado ao compilador da linguagem hospedeira, os códigos objeto para comandos DML são ligados formando uma transação programada. Cada execução no banco é considerada uma transação programada. Na parte inferior é encontrado o processador de banco de dados em tempo de execução, responsável por executar comandos privilegiados, planos de consultas executáveis e transações programadas com parâmetros em tempo e execução, trabalhando em conjunto com o catálogo do sistema. Ferramentas, ambientes de aplicação e facilidades de comunicações Normalmente, para um projeto de banco de dados é necessário o uso de ferramentas que facilitem o seu planejamento, manutenção e implementação posterior. São utilizadas normalmente diversas ferramentas CASE (utilizadas na engenharia de software) na fase de projeto dos sistemas de bancos de dados. O SGBD também precisa realizar a interface com o software de comunicações, cuja função é permitir que os usuários em locais remotos do sistema de banco de dados acessem o banco de dados por meio de terminais de computador, estações de trabalho ou computadores pessoais. Alguns SGBD’s fornecem ferramentas nativas para realizar o seu controle e/ou manutenção de configurações e informações de seus bancos de dados, mas existem também algumas ferramentas que podem auxiliar no projeto e manutenção de modelos de bancos de dados como por exemplo a ferramenta Workbench (http://www.mysql.com/products/workbench). Classificação de Sistemas gerenciadores de bancos de dados Os SBDs relacionais estão evoluindo continuamente e incorporando muitos dos conceitos que foram desenvolvidos nos bancos de dados de objeto, criando uma nova classe chamada de SGBDs objeto-relacional. Desta forma, o primeiro critério é de classificar bancos de dados pelo seu modelo de dados: relacionais, objeto, objeto-relacional, entre outros. O segundo critério utilizado é o número de usuários do banco: monousuário e multiusuário. O terceiro critério é o número de locais sobre os quais o banco de dados está distribuído: • Centralizado: se os dados estiverem armazenados em um único computador; • Distribuído: onde pode ter o banco de dados real e o software de SGBD distribuídos por vários locais, conectados por uma rede de computadores. Ainda assim, divididos em: o Homogêneos: utilizando o mesmo software SGBD em todos os locais; o Heterogêneos: utilizado um software SGBD diferente em cada local. O quarto critério é o custo: visto que existem SGBDs de código aberto e proprietários, porém sempre que se desejar funções avançadas para administração ou manutenção de grandes quantidade de dados, processamento paralelo, replicação, distribuição, capacidade móvel, etc, são parâmetros que sempre levam em consideração a adoção de bancos de dados profissionais à um custo pelas funcionalidades. P á g | 17 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Vários critérios são normalmente utilizados para classificar os SGBDs; O primeiro é o modelo de dados no qual o SGBD é baseado. O principal modelo de dados utilizado comercialmente é o modelo de dados relacional. O modelo de dados de objeto foi implementado em alguns sistemas comerciais, mas não tem seu uso generalizado. UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Tarefas: Execute as tarefas teóricas a seguir: 1) Definir os seguintes termos: Conceito Descrição Modelo de dados Esquema de banco de dados Esquema conceitual DDL DML Linguagem Hospedeira Estado de banco de dados 2) Quais são os critérios utilizados para a classificação de um banco de dados? Na sua opinião, qual pode ser considerado um critério principal, tente explicar. 3) Pesquise 3 ferramentas CASE que podem ser utilizadas para o desenvolvimento de projetos de banco de dados ou também para outras tarefas de manutenção/projeto/administração. Adicione os seus endereços de web e duas funcionalidades que cada uma permite realizar em um banco de dados. Execute as tarefas teóricas a seguir: 4) Abra o software Dia e realize a modelagem conceitual de um banco de dados para controlar veículos que alugam espaço por tempo determinado em um estacionamento. O banco de dados deve armazenar os dados dos veículos que podem ser motos, carros, caminhões e bicicletas, e também os dados dos clientes que fizeram a locação do espaço. Nomeie o arquivo da modelagem como roteiro2-modelagem-estacionamento. Referências • Capítulo 2: Elmasri, Navathe – Sistemas de banco de dados 6ª Edição; • “Mysql Workbench”, disponível em http://www.mysql.com/products/workbench/ • Material disponibilizado em aula; P á g | 18 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Classificação de SGBD’s UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Roteiro 3 – Modelagem relacional Objetivos: • Explorar conceitos sobre: o Modelagem de bancos de dados – projetos: conceitual, lógico e físico; o Conceitos sobre o modelo relacional: tuplas, atributo, entidades, relacionamentos; Ferramentas necessárias Navegador, Dia, Bibliografias de livros da faculdade. Introdução Este roteiro tem como objetivo explorar as propriedades da elaboração de modelagens para bancos de dados baseados no esquema relacional. Serão exploradas as propriedades de relacionamentos voltados para as situação 1:1, 1:N e N:N, com maior foco nestes dois últimos. Quando é realizada uma atividade de levantamento de dados, estamos efetivamente identificando entidades ou classes de dados. Em um contexto não conhecido de negócio é comum o analista ter dificuldade em determinar quais são as entidades componentes do sistema proposto. É comum então, ao tentar efetivar uma modelagem de um sistema, o projetista do banco tentar encontrar qual será a principal entidade de um sistema, logo é necessário utilizarmos alguns recursos: • Em uma modelagem de um banco de dados para uma clínica médica, a entidade médico é na realidade uma generalização para diversas classes de médicos como pediatras, cardiologistas, neurologista, etc. Desta forma, se fosse analisado superficialmente, seria possível definir entidades para cada uma destas classes de dados. Figura 1 - Generalização da Classe Médico Como regra geral, quando forem encontradas entidades que possuem o mesmo conjunto de atributos para descrevê-las, podemos generalizá-las em uma única entidade, mantendo sua identidade de subconjunto através da inserção de um atributo qualificador para as ocorrências de cada uma. Especialização: Quando visualizarmos a qualificação por atributos que permitirá identificar um grupo, uma classe dentro da classe genérica é denominada de Especialização. A Visão de Dados na especialização é a definição de um subconjunto pertinente a uma entidade através da representação efetiva no diagrama de entidades e relacionamentos, de forma a permitir o entendimento da formação dos dados existentes na realidade. Naturalmente os subgrupos que foram identificados gerarão sempre um atributo que qualificará a todos (Generalização), e caso fosse aplicado de forma inversa em uma locadora de filmes, teríamos a seguinte descrição: P á g | 19 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Generalização: Consiste em uma abstração de um conjunto de componentes, ou seja, utilizar uma classe genérica de dados que pode estar incorporando implicitamente diversas outras classes de dados. Ex: UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Figura 2 - Especialização Locadora de Filmes OBSERVAÇÃO: É necessário estar atento ao executar o projeto conceitual, pois existem casos em que teremos entidades diversas com nomes distintos, mas que na realidade podem ser generalizadas em uma única, já que conceitualmente refere-se a um macro objeto, que por generalização pode absorvê-las integralmente. Exemplos: Itens Generalização Sorvete de limão, maracujá, chocolate, morango, etc Pedido suspenso, pedido atendido, pedido pendente Aluno suspenso, aluno trancado, aluno concluído Sabor Pedido Situação Um relacionamento consiste em um conjunto de associações entre entidades. Um relacionamento é expresso com uso de um verbo que possa identificar a relação entre as duas entidades. Possuem a sua representação com as entidades em um losango, seus atributos com uma elipse e com arestas ligando as entidades a este losango (que é o próprio relacionamento). No interior do losango é inserido um verbo que explicite o fato (o evento) que é o relacionamento. Figura 3 - Componentes de um E-R Exemplos: • Pessoas moram em apartamentos; • Os apartamentos formam condomínios; • Os condomínios localizam-se em ruas, ou avenidas; • As avenidas e ruas estão em uma cidade; Estes relacionamentos poderiam ser expressos pelo diagrama a seguir: P á g | 20 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Relacionamentos UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Figura 4 - Relacionamentos sendo expressos Um conjunto de relacionamentos é uma coleção de ocorrências das entidades relacionadas e o verbo que é utilizado interno ao losango dá a semântica (real significado) ao relacionamento que será efetuado. Os relacionamentos possuem dois grandes grupos, divididos em: Relacionamentos Incondicionais: relacionamentos que não possuem condição caracterizam-se por serem obrigatórios, ou seja, todos os elementos de uma entidade estão obrigatoriamente relacionados com um elemento, no mínimo, da outra entidade. Vejamos alguns exemplos: Figura 5 - Representação de Relacionamentos Grau do Relacionamento (Cardinalidade) Consiste no número de ocorrências de uma entidade que está associada com ocorrências de outra entidade. Podemos ter três situações de graus de relacionamentos, descritas a seguir: Relacionamento de Um-para-Um: Neste grau de relacionamento, cada elemento de uma entidade relaciona-se com um e somente um elemento de outra entidade. O relacionamento deve ser lido nos dois sentidos em que ele se efetua. Logo teremos no caso de uma entidade apenas uma única relação nos dois sentidos. Relacionamento de Um-para-Muitos: É o mais comum no mundo real, sendo o que denominamos de relacionamento básico entre entidades, entretanto possui características específicas, quanto ao sentido de leitura dos fatos e sua interpretação. Um elemento da entidade A relaciona-se com muitos elementos da entidade B, mas cada elemento da entidade B somente pode estar relacionado a um elemento da entidade A. OBSERVAÇÃO: Este tipo de relacionamento pode causar dúvidas quanto à sua interpretação, pois quando lido nos dois sentidos resultará em um relacionamento de cardinalidade 1:1. Por isto, como regra geral deve se tomar que um P á g | 21 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Relacionamentos Condicionais: relacionamentos que possuem uma condição, uma qualificação para ocorrerem. Sejam dois elementos A e B, podemos afirmar que nem todos os elementos de uma entidade A estão ligados com elementos da entidade B. UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas relacionamento é do tipo Um-para-Muitos quando um sentido de leitura dos fatos nos apresenta este grau e o sentido oposto apresenta obrigatoriamente o grau Um-para-Um, ex: Observando o gráfico acima, lemos: Um departamento lota um ou vários funcionários. Um funcionário lota somente um departamento. Relacionamento de Muitos-para-Muitos: Este tipo de relacionamento ocorre quando uma entidade A está associada a qualquer quantidade de entidades de B e uma entidade de B está associada a qualquer quantidade de entidades de A. Ex: Seja uma Entidade estudante e uma entidade Unidade Curricular, podemos visualizar a associação com o relacionamento Cursa. Analisando este relacionamento: Um estudante cursa várias unidades, mas alguns estudantes temporariamente podem estar cursando somente uma, ou nenhuma unidade. Uma unidade é cursada por vários estudantes, mas eventualmente podemos ter uma unidade que não possua nenhum estudante cursando-a, ou somente um. Neste caso, por haver opcionalidades, caracteriza um relacionamento condicional. O tipo de relacionamento do exemplo anterior caracteriza-se com um aspecto bastante peculiar, o mesmo possui atributos. Isto quer dizer que o relacionamento possui dados que são inerentes ao fato e não às entidades. É apresentado a seguir a estrutura das entidades envolvidas, e os atributos que são inerentes ao próprio relacionamento, ou seja, identificam ou qualificam o relacionamento: ENTIDADE Estudante Unidade RELACIONAMENTO Cursa ATRIBUTOS Nome do estudante Matrícula do estudante Código da Unidade Nome da Unidade RELACIONAMENTOS Com Unidade 1:N Com Estudante 1:N ATRIBUTOS Data da Matrícula Turma P á g | 22 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Figura 6 - Diagrama E-R estudante UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Tarefas: 1. Defina os seguintes termos: Conceito Descrição Entidade Atributo Chave primária Relacionamento Generalização Especialização Execute as tarefas práticas a seguir: Crie a modelagem conceitual da seguinte situação: 1) 2) Elaborar uma modelagem de banco de dados para um supermercado que controle o estoque de produtos existentes. A modelagem deve permitir que sejam controladas as seguintes características: a. A informação sobre o tipo de produto (eletrônicos, vestuário, laticínios, carnes, pães e massas, bebidas, higiene, outros). b. A informação do fornecedor de cada produto e o preço de compra; c. A informação da nota-fiscal de compra dos produtos registrando o funcionário que recebeu a carga, data e hora de recebimento e o número da nota; Salvar o esquema de modelagem como roteiro3-modelagem-conceitual-supermercado; 3. Em seguida transforme a modelagem conceitual para a modelagem física utilizando o workbench e detalhando as informações dos campos para armazenamento com o nome roteiro3-modelagem-fisica-supermercado ; 1) Após concluir a modelagem faça a conexão ao banco de dados e aplique a forward-enginner; 2) Salve também o arquivo .SQL gerado pelo workbench; Referências • Capítulo 3: Elmasri, Navathe – Sistemas de banco de dados 6ª Edição; • Material disponibilizado em aula; P á g | 23 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. 2. UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Roteiro 4 - Modelo Relacional (parte 2) Objetivos: o o o Detalhar os conceitos sobre entidades e relacionamentos no modelo conceitual ER; Detalhar as etapas da modelagem conceitual e física; Executar o levantamento de requisitos para desenvolvimento da modelagem de bancos de dados; Ferramentas necessárias software Dia, software Workbench, Bibliografias de livros da faculdade. Introdução Este roteiro tem como objetivo explorar as propriedades da elaboração de modelagens para bancos de dados baseados no esquema relacional. Serão incluídos conceitos complementares necessários à modelagem e representação visual de elementos e um detalhamento sobre as propriedades de relacionamentos. O modelo relacional representa o banco de dados como uma coleção de relações. Cada relação é semelhante a uma tabela de valores, e cada linha representa uma coleção de valores de dados relacionados. Uma linha representa um fato que normalmente corresponde a uma entidade ou relacionamento do mundo real. Os nomes da tabela e de coluna são usados para ajudar a interpretar o significado dos valores em cada linha. De maneira formal, uma linha é chamada de tupla, um cabeçalho é chamado de atributo e a tabela é chamada de relação. O tipo de dado que descreve os tipos de valores que podem aparecer em uma coluna é representado por um domínio de valores possíveis. Domínios: consiste em um conjunto de valores atômicos (indivisíveis). Alguns exemplos de domínios são: • • Numeros_telefone_nacional: conjunto de números de telefone com dez dígitos válidos no Brasil; Cadastro_pessoa_física: conjunto de números do CPF com onze dígitos. Nos domínios um tipo de dado ou formato é especificado, no caso de números de telefone pode ser declarado como uma sequência de caracteres na forma (dd)-dddd-dddd, onde cada d é um dígito numérico (decimal) e os dois primeiros dígitos formam um código código de área de telefone válido. Pode-se concluir então que um domínio recebe um nome, tipo de dado e formato. Valores Atômicos: cada valor em uma tupla é um valor atômico (não pode ser decomposto), ele não é divisível em componentes dentro da estrutura do modelo relacional básico. Não são permitidos atributos compostos ou multivalorados. Isto leva a uma regra adotada em modelagem relacional chamada de 1ª forma normal, vista mais adiante. Valores NULLS: são utilizados para representar valores que pode ser desconhecidos ou não se aplicam a uma tupla .Em modelagens relacionais é evitado o uso de valores NULLS, devido a causarem problemas futuros em comparações com outros valores. Ex: se duas entidades de pessoa possuírem endereço NULL não significa que possuem o mesmo endereço. Para a elaboração de um projeto de banco de dados são necessárias algumas etapas: • Levantamento ou análise de requisitos: onde os projetistas entrevistam os usuários esperados para entenderem e documentarem os requisitos de dados. Nesta etapa surgem duas necessidades também conhecidas da engenharia do software: os requisitos de dados e os requisitos funcionais da aplicação. O resultado disso tudo é a criação da modelagem conceitual. • Projeto Conceitual: consiste em uma descrição dos requisitos de dados dos usuários e inclui detalhes dos tipos de entidade, relacionamentos e restrições, todos expressos utilizando conceitos da modelagem de alto nível. Como não trata de detalhes de implementação, estes conceitos são mais fáceis de entender e podem ser utilizados para a comunicação com usuários não técnicos. P á g | 24 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Uma técnica tradicional e ainda muito utilizada para realizar projetos de banco de dados é concentrar nas estruturas e restrições de banco de dados durante o seu projeto conceitual. A modelagem do modelo Entidade-Relacionamento (ER) é um modelo de dados conceitual de alto nível e os seus conceitos são amplamente utilizados atualmente. UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas • Projeto Lógico ou mapeamento do modelo de dados: consiste na real implementação do banco de dados utilizando um SGBD comercial. Este mapeamento geralmente é automatizado ou semiautomatizado em ferramentas de projeto de bancos de dados . • Projeto Físico: onde são detalhadas as estruturas de armazenamento internas, organizações de índices, caminhos de acesso e parâmetros físicos do projeto para os arquivos do banco de dados. São projetadas e implementadas operações como transações que obedecerão a especificações de transação de alto nível, ou seja, na descrição do minimundo juntamente com os requisitos funcionais. Entidades e atributos: Conceitos O modelo ER descreve os dados como entidades, relacionamentos e atributos. Relembrando estes conceitos: • Atributo compostos versus simples (atômicos): Atributos compostos são atributos que podem ser divididos em partes menores, representando atributos mais básicos, com significados independentes, Ex: logradouro: que pode ser subdividido em Cidade, Estado e Cep. Atributos simples são atributos indivisíveis (atômicos), Ex: CPF de uma pessoa. Atributos compostos podem ajudar em modelagens onde não é necessário especificar subcomponentes de atributos. • Atributos de valor único versus multivalorados: Atributos de valor único são os que possuem apenas um único valor para uma entidade em particular, Ex: idade. Atributos multivalorados podem assumir diversos valores em determinadas situações, Ex: formação_academica. • Atributos armazenados versos derivados: em alguns casos, dois(ou mais) valores de atributos estão relacionados. Como exemplo sejam os atributos idade e data_nascimento. Sabe-se que idade pode ser calculada através da data atual e do valor da data de nascimento de uma pessoa, neste caso o atributo idade é considerado um atributo derivado do atributo data_nascimento e data_nascimento é o atributo armazenado. Figura 7 - Atributo composto Entidade: consiste em algo no mundo real com uma existência independente, um objeto com uma existência física (pessoa, carro, funcionário), ou um objeto com uma existência conceitual (empresa, cargo, curso). Tipo de entidade: define uma coleção de entidades que têm os mesmos atributos. Cada tipo de entidade é descrito por seu nome e atributos. A coleção de entidades de determinado tipo é agrupada em um conjunto de entidades, que é chamado de extensão do tipo de entidade. Atributos-chave ou chave: consiste em uma restrição de exclusividade sobre os atributos. São atributos cujos valores são distintos para cada entidade individual no conjunto de entidades e são utilizados para identificar cada entidade de maneira exclusiva. Na notação de diagramas ER cada atributo-chave tem seu nome sublinhado dentro da oval que representa um atributo. Alguns tipos de entidade possuem mais de um atributo-chave, Ex: um campo registro, de um veículo. P á g | 25 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Atributos: propriedades específicas que descrevem uma entidade. Ex: a entidade funcionário é descrita com os atributos nome, idade, endereço, salário e cargo. Existem tipos de atributos envolvidos no modelo ER que ajudam a realizar a modelagem: UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Figura 8 - atributo chave representado no diagrama ER OBSERVAÇÃO: Um tipo de entidade pode não ter chave e, neste caso, é chamado de tipo de entidade fraca. Em notação de diagrama não há o conceito de chave primária, se dois atributos forem sublinhados separadamente, então cada um é uma chave por si só, observada de forma composta no diagrama. Conceitos complementares sobre relacionamentos Ex: um atributo gerente de uma entidade DEPARTAMENTO refere-se a um funcionário que gerencia o departamento; um atributo departamento_gerenciador de uma entidade PROJETO refere-se ao departamento que controla o projeto; um atributo supervisor de uma entidade FUNCIONARIO refere-se a outro funcionário (aquele que supervisiona esse funcionário); o atributo departamento de FUNCIONARIO refere-se ao departamento para o qual o funcionário trabalha, e assim por diante. No modelo ER, essas referências não devem ser representadas como atributos, mas como relacionamentos. À medida que o projeto é refinado estes atributos são convertidos em relacionamentos entre os tipos de entidades. Já foram detalhados que relacionamentos utilizam nomes de função. Cada tipo de entidade que participa de um relacionamento desempenha nele uma função em particular. O nome da função significa a função que uma entidade participante do tipo de entidade desempenha e é sempre identificado com verbos como trabalha_para, por exemplo. Restrições de relacionamentos: consistem em restrições que limitam as combinações de entidades que podem participar no conjunto de relacionamentos correspondente. As restrições são determinadas com base na situação do minimundo e são divididas em dois tipos: razão de cardinalidade e participação. • Razão de cardinalidade: especifica o número máximo de instâncias de relacionamento em que uma entidade pode participar, e as razões de cardinalidade possíveis são 1:1, 1:N, N:1 e N:N. • Participação: especifica se uma entidade depende dela estar relacionada a outra entidade por meio do tipo de relacionamento. Esta restrição especifica o número mínimo de instâncias de relacionamento em que cada entidade pode participar, e é também conhecida como Cardinalidade Mínima. Existem os tipos de restrições de participação total e parcial. Seja o exemplo com as entidades FUNCIONARIO e DEPARTAMENTO e os relacionamentos TRABALHA_PARA e GERENCIA Total: quando um atributo do relacionamento deve participar sempre do relacionamento, criando uma condição de existência. Ex: um funcionário sempre trabalha para um departamento. Parcial: quando um atributo do relacionamento nem sempre é esperado de participar em todas as instâncias do relacionamento. Uma parte do conjunto de entidades está relacionada a outra. Ex: nem sempre um funcionário deverá gerenciar um departamento. P á g | 26 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Na modelagem conceitual é natural que alguns atributos de entidades sejam, na realidade, relacionamentos implícitos. Sempre que um atributo de um tipo de entidade se refere a outro tipo de entidade, existe algum relacionamento. UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Nos diagramas ER, a participação total (ou dependência de existência) é exibida como uma linha dupla que conecta o tipo de entidade participante ao relacionamento, enquanto a participação parcial é representada por uma linha simples. Como no exemplo a seguir: Figura 9 - Relacionamento com participação total de departamento Figura 10 - Relacionamento com participação parcial Nos relacionamentos é muito comum a geração de entidades que não possuem atributos-chave próprios, recebendo o nome de tipo de entidade fraca. Entidades relacionadas a um tipo de entidade fraca são identificadas por estarem relacionadas a entidades específicas de outro tipo em combinação com um de seus valores de atributo, recebendo o nome de tipo de entidade de identificação ou proprietário (entidade pai ou dominante) e o relacionamento que relaciona um tipo de entidade fraca ao seu proprietário de relacionamento de identificação do tipo de entidade fraca. Por exemplo, considere o tipo de entidade DEPENDENTE, relacionado a EMPREGADO, que é usado para representar os dependentes de cada empregado através do relacionamento 1:N.Os atributos de DEPENDENTE são Nome (apenas o primeiro nome do dependente),DataNasc, Sexo e Relação com o empregado (esposa, marido, filho, sogra, etc.). Dois dependentes de empregados distintos podem ter os mesmos valores para os atributos, mesmo assim eles ainda serão entidades distintas. Os dependentes serão identificados como entidades distintas após a determinação da entidade empregado com a qual cada um está relacionado. OBSERVAÇÃO: um tipo de entidade fraca sempre tem uma restrição de participação total (dependência de existência) com relação ao seu relacionamento de identificação por não poder ser identificada sem uma entidade proprietária. Em diagramas ER, tanto um tipo de entidade fraca quanto seu relacionamento são identificados ao delimitar suas caixas de losangos com linhas duplas. P á g | 27 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Ex: UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Exemplo geral de modelagem ER Conceitual: Figura 11 - modelagem de companhia: exemplo Símbolo Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. A Tabela 1 apresenta asa principais figuras que representam os elementos em uma modelagem conceitual: Significado Entidade Entidade fraca Relacionamento Relacionamento de identificação Atributo Atributo-chave Atributo multivalorado Atributo composto Atributo derivado Participação total de E2 em R P á g | 28 UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Razão de cardinalidade 1: N para E1: E2 em R Tabela 1 - representação de elementos para modelagme conceitual Tarefas: 1) Defina os seguintes termos: Conceito Descrição Valor de atributo Instância de relacionamento Atributo multivalorado Atributo-chave Valores atômicos 2) O que é uma função de participação? Qual a importância do uso de nomes em relacionamentos? 3) Dê 4 exemplos de atributos multivalorados; 4) Realizar a elaboração da modelagem de um banco de dados considerando os temas sugeridos. As etapas de elaboração devem seguir os seguintes passos: a. Definir uma dupla para o desenvolvimento das tarefas. Os nomes componentes da dupla deverão ser registrados para avaliação do roteiro. b. Escolher um tema, disponível em http://192.168.200.3/andre/ads/proj_bd/2012-2/roteiros/roteiro-4-temas.txt para ser explorado em um projeto de um banco de dados. Realizar o levantamento dos requisitos para as operações realizadas para as operações efetuadas no tema escolhido. c. Obedecer as etapas de tarefas de acordo com o arquivo disponível em http://192.168.200.3/andre/ads/proj_bd/2012-2/roteiros/roteiro4-modelagem/roteiro4-etapas-de-entrega-adsproj-bd.txt. d. Desenvolver a modelagem conceitual no software dia, identificando as entidades participantes da modelagem, os atributos que farão partes delas, detalhando quais serão os atributos-chave e em seguida criar os relacionamentos entre as entidades. Nos relacionamentos detalhe os tipos de relação que irão compor a modelagem (total ou parcial). e. Criar no Microsoft word a simulação dos armazenamentos dos dados nas tabelas que foram criadas. f. Desenvolver no workbench a modelagem física e efetuar a Forward engineer para a criação das tabelas no mysql. g. No workbench acessar o painel de query database e criar o script .sql para a inserção e listagem de todos os dados em todas as tabelas do banco criado. Sugestões de temas: Controle de Fabricação de sorvetes em Sorveteria; Imobiliária: controle de aluguéis de imóveis; P á g | 29 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Atributos derivados UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Referências • Capítulo 7: Elmasri, Navathe – Sistemas de banco de dados 6ª Edição; • “Introdução a Banco de dados”, Osvaldo Kataro Tokai, disponível em http://pt.scribd.com/doc/50780287/BD; • Material disponibilizado em aula; P á g | 30 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Sistema acadêmico: gerenciamento de aulas e frequência; Hospital: controle de dados de cirurgias em Pacientes; Loja de Ferragem: controle de estoque; Acadêmico: controle de aulas ministradas por professores; Supermercado: controle de escalas de horário de funcionários; Administradora de Condomínio: controle de pagamentos de condomínio e pagamentos de funcionários do condomínio; Venda de equipamentos de informática: tipos de equipamentos, nota fiscal de venda e clientes; Fábrica de Bebidas: insumos para fabricação das bebidas, matéria-prima, equipamentos; Transportadora: controle de rotas percorridas por veículos; Controle de Projetos de empresa de desenvolvimento; Empresa de Pedágios: controle de pagamentos dos pedágios por veículos; Fábrica de Veículos: controle de fabricação dos veículos, controle de peças; Controle de Embarques de Aeroporto; Controle de vendas de entradas de um teatro; Vendas de carnes de um açougue; Controle de Cemitério: controle de jazigos, cremação, aluguéis e jazigos perpétuos. Controle Farmacêutico: Controle de venda de medicamentos, estoque de remédios, tipo de tarja de medicamentos. Controle da CEASA: recebimento de frutas, tipos de frutas, empregados, caminhões e carregamentos. Oficina Mecânica: controle de atendimentos a clientes e reparos em veículos; Salão de Beleza: controle de cortes, estoque de produtos, controle de profissionais e de atendimentos; Controle de Polícia: controle de suspeitos, crimes, investigadores e operações policiais. Clínica Médica conveniada: controle de atendimento de profissionais, lista de espera de pacientes, funcionários. Controle de eventos: tipos de eventos, controle de fotos, profissionais, locais e clientes. Controle de vendas de Pneus: controle de atendimentos, marcas e detalhes das características dos pneus, pneus para tipos de veículos diferentes; Controle de Academia: controle de mensalidades de alunos, equipamentos, aulas ministradas e controle de equipamentos; UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Roteiro 5: Mapeamento para Relacional Objetivos: • • Detalhar os passos para a realização do mapeamento do ER e EER para relacional; Realizar prática de mapeamento de campos multivalorados, relacionamentos 1xn e nxn; Ferramentas necessárias Navegador, Dia, Workbench, Bibliografias de livros da faculdade. Introdução Este roteiro tem como objetivo detalhar e executar os passos para que seja possível implementar um banco de dados modelado em formato conceitual para o formato a ser utilizado realmente em implementações físicas. Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Muitas ferramentas utilizam diagramas ER ou variações para desenvolver um esquema graficamente, e depois convertem de maneira automática em um esquema de banco de dados relacional na DDL de um SGBD relacional específico. Existem algumas etapas a serem seguidas para a realização do mapeamento do esquema conceitual para o Relacional que serão descritos utilizando o esquema relacional empresa descrito a seguir: Figura 12 - Modelagem conceitual de empresa P á g | 31 UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas ETAPA 1: mapeamento de tipos de entidade regular: para cada tipo de entidade forte (ou regular) no esquema ER, deve ser criada uma tabela que inclua todos os atributos simples. Nos caso de um atributo ser composto, devem ser incluídos apenas os atributos simples. Deve ser escolhido um dos atributos-chave como chave primária, e se a chave escolhida for composta todo o conjunto de atributos simples que a compõem formarão a chave primária da tabela gerada. o No exemplo serão criadas as tabelas FUNCIONÁRIO, DEPARTAMENTO E PROJETO. Atributos de chave estrangeira ainda não serão incluídos, pois serão acrescentados em etapas seguintes. Estes incluem os atributos Cpf_supervisor, Dnr de FUNCIONARIO, Cpf_gerentee Data_inicio_gerente de DEPARTAMENTO e Dnum de PROJETO. o Neste exemplo foram escolhidos Cpf, Dnumero e Projnumero como chaves primárias para as relações FUNCIONARIO, DEPARTAMENTO e PROJETO, respectivamente. O resultado da aplicação desta etapa é demonstrado nas tabelas a seguir: FUNCIONÁRIO Pnome Minicial Unome Cpf Datanasc Endereco Sexo Salario DEPARTAMENTO Dnome Dnumero Projnome Projnumero Projlocal Figura 13 - Mapeamento das tabelas funcionario, departamento e projeto ETAPA 2: Mapeamento dos tipos de entidade fraca: semelhante ao mapeamento de entidades fortes, para cada tipo de entidade fraca no esquema ER é criada uma tabela e são incluídos todos os atributos simples (ou componentes simples dos atributos compostos). Além disso, devem ser incluídos como atributos de chave estrangeira os atributos de chave primária das relações que correspondem aos tipos de entidade proprietária. Isto consegue mapear o tipo de relacionamento de identificação representado na modelagem. o A chave primária da tabela é a combinação das chaves primárias dos proprietários e a chave parcial do tipo de entidade fraca, se houver. Neste exemplo foi criada a tabela DEPENDENTE, para corresponder ao tipo de entidade fraca DEPENDENTE. Foi incluída a chave primária Cpf da relação FUNCIONÁRIO – que corresponde ao tipo de entidade proprietária – como um atributo de chave estrangeira de DEPENDENTE, renomeado para Fcpf. A chave primária da relação DEPENDENTE é a combinação {Fcpf, Nome_dependente}, pois Nome_dependente é a chave parcial de DEPENDENTE. DEPENDENTE Fcpf Nome_depen dente Sexo Datansc Parentesco Figura 14 - Mapeamento de entidades fracas ETAPA 3: mapeamento dos tipos de relacionamento binários 1:1: Para cada tipo de relacionamento binário 1:1 no esquema ER, identifique as relações que correspondem aos tipos de entidade participantes. Para realizar o mapeamento existem 3 técnicas possíveis: o Técnica de chave estrangeira: onde é selecionada uma das relações e incluída como chave estrangeira em uma entidade a chave primária de outra. P á g | 32 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. PROJETO UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas É melhor escolher um tipo de entidade com participação total na relação. No exemplo foi mapeado o tipo de relacionamento 1:1 GERENCIA ao escolher o tipo de entidade de participação DEPARTAMENTO pois sua participação no tipo de relacionamento GERENCIA é total (cada departamento tem um gerente). A chave primária de FUNCIONARIO foi incluída como chave estrangeira em DEPARTAMENTO e renomeada como Cpf_gerente Foram incluídos os atributos Data_inicio do tipo de relacionamento GERENCIA na relação DEPARTAMENTO e foi renomeado como Data_inicio_gerente. o Técnica de relacionamento mesclado: Outra alternativa é mesclar os dois tipos de entidade e o relacionamento em uma única relação, e geralmente acontece quando ambas as participações são totais. o Técnica de relação de referência cruzada ou relacionamento: onde é criada uma terceira relação para a finalidade de criar uma referência cruzada das chaves primárias das duas relações representando os tipos de entidade. • ETAPA 4: mapeamento dos tipos de relacionamentos 1:N: para cada tipo de relacionamento binário 1:N deve ser identificada a relação que representa o tipo de entidade participante no lado N do tipo de relacionamento. Deve ser incluído como chave estrangeira a chave primária da relação que representa o outro tipo de entidade participante da relação. o No exemplo foram mapeados os tipos de relacionamento 1:N – TRABALHA_PARA, CONTROLA e SUPERVISAO. o TRABALHA_PARA: foi incluída a chave primária Dnumero da relação DEPARTAMENTO como chave estrangeira na relação FUNCIONARIO com o nome de Dnr. o SUPERVISAO: foi incluída a chave primária da relação FUNCIONARIO como chave estrangeira na própria relação FUNCIONARIO com o nome de Cpf_supervisor, pelo fato do relacionamento ser recursivo. o CONTROLA: é mapeado para o atributo de chave estrangeira Dnum de PROJETO, que referencia a chave primária Dnumero da relação DEPARTAMENTO. ETAPA 5: mapeamento de tipos de relacionamento binário N:N: Para cada relacionamento M:N deve ser criada uma tabela para representar a relação. Devem ser incluídos como atributos de chave estrangeira as chaves primárias das relações que representam os tipos de entidades participantes e a sua combinação formará a chave primária da tabela gerada. o No exemplo foram mapeados os tipos de relacionamentos TRABALHA_EM criando a tabela (relação) TRABALHA_EM. Foram incluídas as chaves primárias das relações PROJETO e FUNCIONARIO como chaves estrangeiras em TRABALHA_EM e foram renomeadas como Pnr e Fcpf, respectivamente. Também foi incluído um atributo Horas para representar o atributo Horas do tipo de relacionamento. A chave primária de TRABALHA_EM será a combinação dos atributos de chave estrangeira {Fcpf, Pnr}. TRABALHA_EM Fcpf Pnr Horas Figura 15 - Mapeamento da relação NxN trabalha_em • ETAPA 6: mapeamento de atributos multivalorados: Para cada atributo multivalorado A, deve ser criada uma relação R incluindo um atributo correspondente a A, mais o atributo de chave primária Ch – como uma chave estrangeira em R – da relação que representa o tipo de entidade ou tipo de relacionamento que tem A como atributo multivalorado. A chave primária de R é a combinação de A e Ch. Se o atributo multivalorado for composto, serão incluídos os seus atributos simples. o Para o exemplo foi criada uma relação LOCALIZACAO_DEP. O atributo Dlocalizacao representa o atributo multivalorado LOCALIZACOES de DEPARTAMENTO, enquanto Dnumero – como chave estrangeira – representa a chave primária da relação DEPARTAMENTO. A chave primária de LOCALICACAO_DEP é a combinação de {Dnumero,Dlocalizacao} P á g | 33 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. • A desvantagem deste modo é que sempre existirá uma relação extra e exigir uma operação de junção extra ao combinar tuplas relacionadas das tabelas. UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas LOCALIZACAP_DEP Dnumero Dlocal Tarefas Prática de Mapeamento de modelagem Conceitual para Relacional A Figura 16 ilustra um diagrama ER para um banco de dados que pode ser usado para registrar navios de transporte e seus locais para autoridades marítimas. Mapeie esse esquema para um esquema relacional especificando as chaves primárias e estrangeiras, as tabelas que serão geradas juntamente com os seus atributos do mapeamento. Para o exercício, especifique as seguintes informações da modelagem: a. Que tabelas deverão ser geradas; b. Chaves primárias e estrangeiras; c. Quais os campos que estão contidos em quais tabelas. Nos campos, observar as seguintes situações: i. Campos multivalorados; ii. Campos derivados; iii. Relacionamento 1x1; Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. 1) iv. Relacionamentos 1xN; v. Relacionamentos NxN; P á g | 34 UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes Figura 16 - Modelagem conceitual de portos e de rotas de navios d. Gerar o modelo físico do banco no WorkBench com o nome bdNavios e executar o forward engineer . e. Gerar os insert’s para efetuar as seguintes listagens: i. Listar o histórico de portos percorrido por um navio; ii. Listar todos os navios de um tipo; iii. Listar os nomes de todos os navios, o nome do porto de origem e o pais de origem; Referências • Capítulo 7: Elmasri, Navathe – Sistemas de banco de dados 6ª Edição; • “Introdução a Banco de dados”, Osvaldo Kataro Tokai, disponível em http://pt.scribd.com/doc/50780287/BD; • Material disponibilizado em aula; P á g | 35 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. 4º sem– Análise e Desenvolvimento de Sistemas UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Roteiro 6 – Modelagem via requisitos Objetivos: • • Modelar bancos de dados a partir de um levantamento de requisitos; Implementar e testar bancos de dados modelados via levantamento de requisitos; Ferramentas necessárias Navegador, Dia, Workbench, Bibliografias de livros da faculdade. Introdução Este roteiro tem como objetivo treinar a modelagem de bancos de dados a partir do fornecimento de um levantamento de requisitos. Saber modelar bancos de dados nesta modalidade é importante para garantir que o projetista esteja familiarizado com as tarefas de analisar situações e quais tabelas devem ser geradas em diferentes situações. Serão realizadas tarefas divididas em 3 etapas, cada uma com uma modelagem diferente, que serão detalhadas nas tarefas do roteiro. Tarefas 1. Observe o levantamento de requisitos que foi feito e crie a modelagem no workbench, a simulação dos insert’s de dados e os select’s das informações necessárias. Ao final grave os arquivos do workbench e os arquivos .sql que forem gerados. (O trabalho deve ser realizado individualmente) Projetar um banco de dados para se adaptar às necessidades de um controle de cinemas e filmes em uma determinada empresa de distribuição de filmes. Para esta modelagem, serão necessárias as definições das regras de como será feita a implementação da modelagem proposta: 1. 2. 3. 4. 5. 6. 7. A empresa de distribuição possui vários cinemas em várias localidades; a. Cada cinema possui uma identificação única, um nome fantasia, um endereço completo incluindo rua, avenida, bairro, município, estado e sua capacidade de lotação; Os filmes podem ser dos mais variados tipos e gêneros; a. Cada filme é registrado com um título original, e se for filme estrangeiro, possuirá também o título em português, o gênero, sua duração, seu país de origem, informações sobre os atores que compõem seu elenco, e o seu diretor. Existe um único diretor para cada filme; Alguns cinemas apresentam mais de um filme em cartaz, sendo nesses casos sessões alternadas com um filme e outro; a. As sessões possuem horários que variam de acordo com a duração do filme, havendo sempre um intervalo de aproximadamente 15 minutos entre elas; Os atores de um filme podem, obviamente, atuar em diversos filmes, assim como o diretor de um filme pode também ser ator nesse filme, ou ator em outro filme. Um ator possui as características de identificação, nome, nacionalidade e idade; As sessões do cinema devem ter seu público registrado diariamente, para eu se permita a totalização do publico quando o filme sair de cartaz, ou a qualquer instante; Além destas regras básicas do banco de dados e sua estrutura, existirão algumas necessidades de informação: a. Apuração do público por município, por cinema e por sessão de cada cinema; b. Permitir uma forma de consulta, que dado um determinado ator, sejam localizados todos os cinemas onde estão em cartaz os filmes em que este ator atua; c. Em quais cinemas está sendo exibido um determinado gênero de filme; d. Em quais cinemas estão sendo exibidos filmes nacionais; Publique os arquivos gerados no seu diretório ROTEIRO6 do dropBox; P á g | 36 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Estudo de caso 1: Controle de cinemas UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Estudo de caso 2: Gerência Acadêmica de universidade 1. Os alunos são admitidos nos cursos por meio de um vestibular ou transferência, e um aluno só pode estar ligado a um curso, em um dado instante. Os alunos, quando ingressam na universidade, preenchem uma ficha cadastral (com número de matrícula pré-impresso) com nome e endereço. 2. De acordo com as normas da UNITESTE, para cada disciplina ser oferecida, necessita de um mínimo de dez alunos e para que o alto padrão de ensino oferecido seja mantido, cada disciplina deverá ter no máximo 50 alunos. Os cursos são compostos por disciplinas, as quais podem ser obrigatórias ou optativas, dependendo do curso a que pertencem. 3. Cada disciplina está sob a responsabilidade de um departamento da universidade, e é codificada de acordo com um padrão preestabelecido pelo conselho. 4. Segundo uma convenção adotada pela UNITESTE, os professores podem ser cadastrados na Gerência Acadêmica sem estar lecionando uma disciplina. Cada professor pode ministrar até o máximo de 3 (três) matérias. Para que um professor ministre uma disciplina, o mesmo deve estar devidamente habilitado pelo CFE (conselho Federal de Educação). Cada professor está vinculado a um departamento e possui um código específico para sua diferenciação dentre os demais professores. 5. Para o perfeito acompanhamento acadêmico do aluno durante o curso, a UNITESTE possui um histórico escolar. Esse documento é o conjunto de todas as disciplinas cursadas pelo aluno em toda a sua vida acadêmica dentro da UNITESTE. Contém o registro das disciplinas e indica a nota final e a data em que a disciplina foi cursada. 6. Os departamentos são responsáveis pelos cursos de suas áreas de atuação. As responsabilidades envolvem a definição do número de créditos exigidos para a conclusão do curso, o número total de horas exigidas para o curso e o número total de horas nas disciplinas obrigatórias. 7. A UNITESTE adota um sistema progressivo de aprendizado, no qual uma disciplina pode ter no máximo 3 (três) e no mínimo 0 (zero) pré-requisitos. Geralmente, as matérias sem nenhum pré-requisito ou estão no primeiro semestre do curso ou são disciplinas complementares (não-obrigatórias) 8. De acordo com o conselho Acadêmico, um aluno pode, em um dado semestre, não estar matriculado em nenhuma disciplina, caracterizando um trancamento de matrícula. Em um período letivo, um aluno pode se matricular, no máximo, em 7 (sete) disciplinas. O conselho também fixou que um aluno pode repetir no máximo 3 (três) vezes a mesma disciplina. 9. No total, a UNITESTE pode comportar 5000 (cinco mil) alunos matriculados em seus diversos cursos. A cada ano, são admitidos 800 novos alunos via vestibular e as transferências externas podem ser no máximo 60. Formam-se em torno de 300 alunos por semestre. Também são oferecidos um total de 10 cursos e 280 disciplinas, possuindo cerca de 120 professores. 10. Necessidades de informação: a. b. c. d. e. Listar todos os nomes dos alunos e o nome das disciplinas que cursam ou cursaram; Listar os nomes dos professores e as disciplinas para os quais estão habilitados; Listar os pré-requisitos para todas as disciplinas; Listar os nomes dos cursos e os nomes das disciplinas que pertencem a estes cursos; Listar o nome dos professores que ministraram uma disciplina, o nome dos alunos, o nome do curso e o nome do departamento da disciplina ministrada; 11. Publique os arquivos gerados no seu diretório ROTEIRO6 do dropBox; P á g | 37 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Decidiu-se automatizar alguns procedimentos da Gerência Acadêmica da Universidade UNITESTE. Com a finalidade de auxiliar esta tarefa, foi solicitado o desenvolvimento de um banco de dados. A gerência acadêmica mantém um controle centralizado de alunos, cursos, disciplinas, turmas de matérias, professores e histórico escolar de alunos. UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Estudo de caso 3: Grupo de pesquisa sobre vírus Um grupo de pesquisa médica de um grande hospital deseja construir e manter um banco de dados sobre todas as publicações relativas a certos tipos de vírus. 1. A informação registrada sobre cada vírus inclui o nome científico e um texto livre para sua descrição científica. Cada publicação é impressa em uma edição particular do jornal científico do hospital, identificado pelo nome do jornal, o número do volume e o número da edição. 2. Uma publicação pode ter um ou mais autores e ser referente a um ou mais tipos de virose. 3. O resumo (abstract) da publicação também é armazenado no banco de dados, junto com o nome do autor (autores) e o nome da instituição (instituto) à qual a pesquisa está associada, caso esta seja de fora do grupo de pesquisas. 4. Cada publicação contém uma lista de referências a outras publicações e essa informação é registrada na base de dados. As publicações editadas pelo grupo de pesquisa, além das informações normais armazenadas para cada publicação possuem informações a respeito do contrato de pesquisa (número do contrato, valor de início e término). 1. Entrar uma nova publicação com todas as informações; 2. Listar os detalhes de todas as publicações relativas a um vírus específico; 3. Listar publicações de um específico autor; 4. Listar as publicações associadas a um específico contrato de pesquisa; 5. Observando as informações descritas, é necessário determinar quais serão as principais entidades, seus atributos e seus relacionamentos. 6. Publique os arquivos gerados no seu diretório ROTEIRO6 do dropBox; Referências • • “Introdução a Banco de dados”, Osvaldo Kataro Tokai, disponível em http://pt.scribd.com/doc/50780287/BD; Material disponibilizado em aula; P á g | 38 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. A seguir, são apresentadas algumas das necessidades de informação por parte dos usuários: