Roteiro 1- Conceitos de bancos de dados

Propaganda
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:
Download