DADOS I
TLBD I - Tecnologias e Linguagens para Banco de Dados I 2
SUMÁRIO
INTRODUÇÃO ....................................................................................................................................... 4
3 DEFINIÇÕES ....................................................................................................................................... 6
4 O MODELO ENTIDADE-RELACIONAMENTO............................................................................ 7
4.2 ATRIBUTOS................................................................................................................................................... 7
5 RELACIONAMENTOS....................................................................................................................... 11
EXERCÍCIOS ........................................................................................................................................... 12
Relacionamentos Ternários................................................................................................................................ 14
EXERCÍCIOS ........................................................................................................................................... 15
EXERCÍCIOS ........................................................................................................................................... 19
AGREGAÇÃO .......................................................................................................................................... 25
EXERCÍCIOS ........................................................................................................................................... 28
MAPEAMENTO................................................................................................................................................... 28
INTRODUÇÃO
Com o surgimento de aplicações computacionais sentiu-se a necessidade de armazenar
informações de maneira que elas pudessem ser usadas posteriormente, para essas informações dá-se o
nome de Dados. Pode-se entender por Banco de Dados qualquer sistema que reúna e mantenha
organizada uma série (conjunto) de informações relacionadas a um determinado assunto em uma
determinada ordem.
A lista telefônica é um exemplo, nela percebemos que todos os dados (informações) referentes a
uma pessoa estão na mesma linha.
Resumindo:
Banco/Base de Dados: Coleção, conjunto de dados relacionados;
Dados: Valor de um campo armazenado, matéria-prima para obtenção de
informação;
Informação: Dados compilados e processados de acordo com solicitação de
consultas e análises.
Com isso surgiu o conceito de Sistema Gerenciador de Banco de Dados (SGBD). Um Sistema
Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um
conjunto de programas para acesso a esses dados. Esse conjunto de dados é comumente chamado de
Banco de Dados. O principal objetivo de um SGBD é proporcionar um ambiente tanto conveniente
quanto eficiente para a recuperação e armazenamento das informações do banco de dados.
SGBDs são projetados para gerir grandes volumes de informações. Devem possuir mecanismos
para definição e manipulação de dados, além de prover compartilhamento e segurança dos mesmos.
1 INDEPENDÊNCIA DE DADOS
O desenho a seguir representa um sistema de processamento de arquivo típico:
Arquivo
Cliente
Figura 1 - Sistema de Processamento de Arquivo
De acordo com a figura 1, nota-se que os programas gravam seus dados em disco, seguindo
estruturas próprias.
Se vários programas compartilham seus dados, todos devem conhecer e manipular as mesmas
estruturas.
Se algum programa precisar de alguma mudança de dados, todos os programas terão que ser
alterados, mesmo que a alteração ocorra em dados que ele não utiliza.
É feita uma conversão específica dos dados gravados para a forma usada em cada programa. Alterar
os dados obriga a alterar a forma de conversão para cada programa, mas não cada programa em si. As
alterações ficam concentradas nesse sistema intermediário.
Esse sistema intermediário é chamado de Sistema Gerenciador de Banco de Dados (Figura 2).
SGBD
BD
CONTROLE DE ACESSO: Verificação automática do tipo de acesso pedido por cada usuário.
Os níveis de segurança são estabelecidos para cada usuário independentemente, de acordo com
INDEXAÇÃO AUTOMÁTICA: Com a indicação explícita dos atributos que serão mais utilizados
em consultas, o SGBD cria os arquivos de indexação que tornarão mais rápidas as pesquisas. A
estrutura de indexação e de organização dos arquivos de dados é própria de cada SGBD e
normalmente não é de domínio dos usuários comuns.
3 DEFINIÇÕES
• Um Banco de Dados é uma coleção de dados logicamente relacionados, com algum significado.
Associações aleatórias de dados não podem ser chamadas de base de dados;
• Um Banco de Dados representa algum aspecto do mundo real, também chamado de base de
dados, tendo alguma fonte de dados, algum grau de interação com eventos do mundo real e uma
audiência que está ativamente interessada no seu conteúdo.
Construir uma base de dados é o processo de armazenar os dados em algum meio que seja
controlado pelo SGBD. Manipular uma base de dados indica a utilização de funções como a de consulta,
para recuperar dados específicos, modificação da base de dados para refletir mudanças no “mini -
mundo” (inserções, atualizações e remoções), e geração de relatórios.
4 O MODELO ENTIDADE-RELACIONAMENTO
O uso do Modelo Entidade-Relacionamento (MER) foi apresentado por Peter Cher em 1976.
Atualmente não existe um padrão único de modelo E-R(Entidade - Relacionamento) aceito
universalmente; em vez disto, há um conjunto de conceitos dos quais se origina a maioria das variantes
do E-R.
No MER, os elementos que o compõe são representados graficamente através da ferramenta
denominada Diagrama Entidade - Relacionamento (DER). A seguir são descritos os principais
elementos que compõe o MER.
4.1 ENTIDADES
Define-se entidade como aquele objeto que existe no mundo real com uma identificação distinta e
com um significado próprio. São as “coisas” que existem no negócio (objeto de análise), ou ainda,
descrevem o negócio. Se alguma “coisa”, existente no negócio gera interesse de se manter os dados,
isto a caracteriza como uma Entidade do Negócio.
Entidades de um mesmo tipo são agrupadas em Classes de Entidade. Assim, a classe de
entidades FUNCIONARIOS é o conjunto de todas as instâncias de funcionários. Neste texto, classes de
entidades estão impressas em letra maiúscula.
Cada ocorrência de um funcionário dentro da classe FUNCIONARIO é denominada de Instância de
Entidade.
Alguns exemplos de instancias de entidades:
O FUNCIONARIO João;
O VEICULO Corsa;
A ALUNA Maria;
O CLIENTE Pedro;
O PRODUTO A323....
A representação gráfica de uma entidade no MER se realiza através de um retângulo, com o nome
desta entidade em seu interior (sem utilizar acentuação), como mostra a figura 4.
ORDEM DE
NOTA FISCAL
PRODUCAO
Figura 4 – Exemplos de Entidade
4.2 ATRIBUTOS
Toda entidade possui propriedades (características) que são denominadas Atributos. No MER
supõe-se que todas as instâncias de uma dada classe de entidade possuem os mesmos atributos.
Considere a entidade FUNCIONARIO em uma empresa. O que descreve esse funcionário, quais
são as características que ele possui que são do interesse da empresa?
Funcionário é descrito por:
número de matrícula
nome
data da admissão
No DER os atributos PODEM ser representados por uma elipse em torno de seu nome, como
mostra a figura 5.
Atributos
Exemplo:
FUNCIONARIO
Matricula Data_Admissao
Nome
Este atributo tem a função de atuar como identificador único das instâncias da entidade, e é
denominado de Chave Primária. No exemplo a seguir, a chave primária é o atributo MATRICULA.
Então, como a chave primária identifica uma instância da entidade, ela tem duas restrições
importantes:
Não se repete;
Não contém valor NULO.
Um VALOR NULO é um valor que não tem significado algum para o mundo real, somente para
o conceitual.
No DER, um atributo chave primária é representa por um traço abaixo de seu nome, como mostra a
figura 6.
FUNCIONARIO
CLIENTE
Atributo
RG Telefone
Multivalorado
No me
Figura 7 – Atributo Multivalorado
RG Telefone
RG Nome 1116 3382-0000
1116 João 1116 9711-1111
1220 Pedro 1220 9700-0000
Sala
Numero
Dimensao
Altura
Comprimento
Largura
1º Módulo de Informática Etec de Ibitinga
TLBD I - Tecnologias e Linguagens para Banco de Dados I 10
Código
FUNCIONARIO
Atributo Derivado
Data_Nasc
Qtde_de_func
idade
Figura 9 – Atributo Derivado
EXERCÍCIOS
Para os exercícios abaixo crie o DE-R e identifique a chave primária para cada entidade.
2. Uma locadora possui muitos clientes. Deseja-se saber do cliente seu código, nome, endereço,
bairro, cidade, CEP, telefones, data de nascimento e idade.
3. Um hotel possui muitos quartos. Deseja-se armazenar dos quartos seu numero, tipo e andar.
Dependente
5 RELACIONAMENTOS
O relacionamento existe quando um ou mais dados de uma tabela estão relacionados de alguma
forma com um ou mais dados de outra tabela.
Agora que já temos as definições de Entidades e de Relacionamento, vamos aprender como
encontrá-los em um problema:
Relacionamento
ãp
1 1
Ementa Disciplina
possui
1 N
Departamento possui Funcionario
N M
Aluno Disciplina
cursa
EXERCÍCIOS
1. Dentre os atributos num-matrícula, nome, endereço, CPF e data-nasc, relativos à entidade
EMPREGADO, escolha aquele(s) que poderia(m) ser usado(s) para atributo chave primária da
entidade. Representar o DER da entidade EMPREGADO.
3. Uma Empresa possui funcionários. Do funcionário deseja-se guardar o número, nome e cargo.
Um funcionário trabalha em uma Empresa. Deseja-se guardar da Empresa o CNPJ, nome,
cidade, endereço.
5. Um soldado, que possui as características nome, registro militar (RM), data de nascimento, possui
armas. Uma arma, que possui as características como número de série, registro e calibre, é de
um soldado. Uma arma é limpa por vários soldados. Um soldado limpa várias armas
Atributos de Relacionamentos são igualmente representados como elipses, ligadas aos conjuntos
de Relacionamento.
N M
Aluno cursa Disciplina
ãp
Exemplo 1
O tipo de relacionamento Gerencia associa um funcionário com seu gerente, no qual ambas as
entidades são membros do mesmo tipo de entidade Funcionário.
Dessa forma o tipo entidade Funcionário participa duas vezes: uma vez no papel de gerente e
outra no papel de funcionário.
N
Gerencia
1º Módulo de Funcionario
Informática Etec de Ibitinga
1
TLBD I - Tecnologias e Linguagens para Banco de Dados I 14
Exemplo 2
Disciplina Pré-requisito
Relacionamentos Binários
Relacionamento que envolve duas Entidades.
N M
Aluno cursa Disciplina
Relacionamentos Ternários
Os conjuntos de relacionamento podem envolver mais de dois conjuntos de entidades.
Professor Aluno
PAD
Disciplina
1. Escolha uma Entidade, por exemplo, ALUNO, e pergunte: Para cada Aluno, quantos pares
Professor-Disciplina eu tenho.
2. Coloque a resposta na Entidade ALUNO. Neste caso N. Isto é, um Professor lecionando uma
Disciplina pode ter vários Alunos.
3. Escolhendo a Entidade PROFESSOR. Pergunta-se: Para cada Professor, quantos pares Aluno-
Disciplina eu tenho.
4. Coloque a resposta na Entidade PROFESSOR. Neste caso 1. Isto é, um Aluno não pode ter em
determinada certa Disciplina mais do que um Professor (no caso deste exemplo).
5. Escolhendo a Entidade DISCIPLINA. Pergunta-se: Para cada Disciplina, quantos pares Aluno-
Professor eu tenho.
EXERCÍCIOS
Verificar na situação abaixo quais são as entidades, os atributos (Chave primária, compostos,
multivalorados e derivados) e seus relacionamentos fazer a representação gráfica por meio do
DER.
2. Um médico trata de pacientes. Do médico deseja-se saber CRM, nome e suas especializações. O
médico pede exames para vários pacientes. Um paciente, no qual há necessidade de sabermos seu
número, nome, endereço e idade, é tratado por vários médicos. Um paciente realiza vários tipos de
exames. Um tipo de exame, destes há necessidade de guardar seu número, data e descrição, é feito por
vários pacientes a pedido do médico.
3. Uma Transportadora quer automatizar seu controle de transporte. Ela deseja ter as seguintes
informações de seus caminhões: marca, modelo, ano, capacidade de transporte e a data em que um
motorista viajou com o caminhão (mais de um motorista pode dirigir um caminhão). Do motorista deseja-
se saber nome, RG, idade, endereço e o caminhão com o qual já viajou. Um caminhão pode transportar
diversos produtos, destes produtos deseja-se saber nome, marca, fabricante e data de transporte( um
tipo de produto pode viajar em mais de um caminhão).
5. Um médico (número, nome, especialidade) passa diversas receitas e cada receita é passada por apenas
um médico. Uma receita (código da receita, data) pode ter vários medicamentos descriminados (Código,
nome do medicamento, recomendação de uso), mas cada receita pertence a apenas um paciente (cpf,
nome, idade, enfermidade), sendo que um paciente pode ter várias receitas.
6. Os clientes (sobre os quais deseja-se armazenar Número, Nome e Endereço) compram apólices de
seguro (no mínimo uma para se tornar cliente). Sobre as apólices de seguro é importante armazenar
Número e Valor. Cada apólice de seguro dá cobertura a apenas um veículo (Placa, modelo, marca, ano,
valor). Caso o carro se envolva em acidentes e acione o seguro, é importante armazenar a Data, hora e
o Local do acidente.
MAPEANDO ENTIDADES
Cada Conjunto de Entidades é mapeada como uma relação que envolve todos os atributos do
conjunto de entidades.
Os atributos CHAVES comporão a chave da relação.
RA
Aluno
Nome
ENTIDADES FRACAS
Conjunto de Entidades Fracas(CEF) são mapeadas numa relação formada por todos os
atributos do CEF mais os atributos que são chave das relação ao qual o CEF depende.
CodigoF
N 1
Dependente possui Funcionario
Nome
NomeDep Fone
Idade
Funcionario {CodigoF, NomeFunc, Fone}
Dependente {CodigoF, NomeDep, Idade}
1 N Sigla
CodigoP Professor possui Disciplina
Nome
Nome Horario Num_Creditos
Professor={CodigoP, Nome}
Disciplina={Sigla, Nome, Num_Creditos, CodigoP, Horario}
M N Sigla
RA Aluno Matriculado Disciplina
Nome
Nome
Nota Num_creditos
RELACIONAMENTOS TERNÁRIOS
Conjuntos de Relacionamentos de ordem maior do que dois com cardinalidade diferente de M:N:P
têm um mapeamento complexo. Assim, usualmente se mapeiam os conjuntos de relação ternários,
quaternários, etc. como se todos fossem de cardinalidade vários para vários para vários... etc.
Nome
M N
Aluno monitora Disciplina
RA Sigla
Nome
P Num_creditos
Nome
TLBD I - Tecnologias e Linguagens para Banco de Dados I 18
telefone endereco
rua
bairro
1
Nome_Pessoa
Funcionario supervisiona
1
Nome_Func
Cod_Disc
N
Disciplina Pré-requisitos
M
Nome_Disc
EXERCÍCIOS
Faça o mapeamento dos relacionamentos abaixo:
Data_instalacao codCom
codConf 1 1
Conferencia organiza Comissao
Nome
Nro_membro
nomeP horario
sigla
codP
1 N
Professor ministra Disciplina
nomeD
N M
Aluno matricula Disciplina
nomeD
codFunc
N
Funcionario Supervisiona
1º Módulo de Informática Etec de Ibitinga
nome
TLBD I - Tecnologias e Linguagens para Banco de Dados I 20
numero N
Pecas Componentes
descricao M
horario sigla
Nro_Alu
N 1
Aluno Disciplina
monitora
nomeA M nome
D
Professor Cod_P
rof
Nome
P
7. Relacionamento Ternário – Cardinalidade M:N:P
qtde codF
CodProj
P
N nomeF
Projeto fornece Fornecedor
Inicio M
codPeca
Peca
nomePe
ncopia
1º Módulo
isbn de Informática Etec de Ibitinga
1 N
Livro Copia
possui
TLBD I - Tecnologias e Linguagens para Banco de Dados I 21
9. Multivalorados
Telefone
s
Nro_Aluno
Aluno
NomeA
Graduacao
Horario
1
nome
D
tem
CodigoA
Aula_pratica
Horario
Laboratorio
GENERALIZAÇÃO E ESPECIALIZAÇÃO
Algumas entidades contêm conjunto de atributos específicos. Quando ocorre a situação de uma
entidade possuir atributos que não fazem parte de todas as instâncias da entidade ou quando estas
instâncias se relacionarem de maneira diferente com outras entidades, temos ai o conceito de
GENERALIZAÇÃO/ ESPECIALIZAÇÃO.
Suponha que um CLIENTE pode ser uma única pessoa individual, uma associação ou uma
corporação e que serão armazenados dados adicionais dependendo do tipo.
Suponha ainda que estes dados adicionais são:
1. Alocar todos estes atributos na entidade CLIENTE. Neste caso, alguns dos atributos não são
aplicáveis a todas as entidades.
2. Definir 3 entidades para cada um dos tipos. As quais seriam: CLIENTE-INDIVIDUAL,
CLIENTEASSOCIACAO e CLIENTE-CORPORACAO.
A figura abaixo demonstra esta situação do cliente. Uma vez que a entidade CLIENTE é uma
entidade genérica, ela é denominada de GENERALIZAÇÃO (ou entidade de nível superior) e as
entidades INDIVIDUAL, ASSOCIADO
e CORPORAÇÃO são denominadas ESPECIALIZAÇÃO (ou entidade de nível inferior).
NumeroCliente
Cliente
NomeCliente
QuantiaDevida
Pessoa CPF
Idade
AGREGAÇÃO
Uma limitação do modelo E-R é que não é possível expressar relacionamentos entre
relacionamentos.
Para ilustrar esta necessidade, considere um banco de dados descrevendo informações sobre
Funcionários que trabalham em um determinado Projeto e utilizam uma série de diferentes Máquinas em
seus trabalhos.
Usando o modelo básico de construção E-R, obtemos o diagrama E-R da figura abaixo.
Horas
M N
1º Módulo de Informática
Projeto Funcionário Etec de Ibitinga
trabalho
M
N
Id Numero
TLBD I - Tecnologias e Linguagens para Banco de Dados I 26
Horas
M N
Projeto Funcionário
trabalho
Id Numero
Nome Descricao
M
Descricao
usa
N Id
Máquina
Agora com agregação, significa dizer que o conjunto Funcionário-Projeto nem sempre utilizam
máquinas.
Outros exemplos: Assassino-Vitima-Arma, Cliente-Conta-CartãoCrédito, Rua-Bairro-Linha.
Agora que já temos a noção do uso da Agregação vamos analisar os casos em que se deve usá-la:
Quando é necessário identificar cada relacionamento.
Quando é necessário mais de um relacionamento envolvendo as mesmas entidades.
MAPEANDO AGREGAÇÃO
_ Dados vistos em um nível mais baixo
– Atributos dos tipos-relacionamentos
– Chaves primárias dos tipos-entidades
Horas
M N
Projeto Funcionário
trabalha
Id Numero
Nome Descricao
M
Descricao
usa
N Id
Máquina
As entidades dentro da agregação podem ser relacionar, normalmente, com outras entidades,
para isso, a linha do relacionamento deve ultrapassar os limites da agregação.
Nada impede de se fazer uma agregação envolvendo mais de dois conjuntos de entidades
relacionados por um relacionamento, mas só pode haver um relacionamento em uma agregação.
Por fim, vamos aprender como se "lê" uma agregação tomando como exemplo a figura acima: a
leitura é feita de "dentro pra fora", ou seja, lê-se primeiro o relacionamento dentro da agregação para em
seguida ler o que está fora da mesma. Sendo assim, no exemplo a leitura é feita da seguinte forma: um
médico consulta um paciente e, a partir dessa consulta, pode ou não solicitar um exame.
EXERCÍCIOS
MAPEAMENTO
Exercício 1 -
Exercício 2 -
Exercício 3 -
Exercício 4 -
Exercício 5 -
6. Mapeie o
esquema
entidade
relacionam
MODELAGEM CONCEITUAL
Construa o DER e depois faça o mapeamento
7. Construa um diagrama E-R (incluindo as cardinalidades) para controle do prontuário de pacientes
de um hospital. O hospital possui um conjunto de pacientes e um conjunto de médicos. No registro
dos pacientes, temos o nome, RG, CPF, endereço e telefone. No registro dos médicos temos o
nome, especialidade, RG, CPF, CRM, endereço e telefone. Cada paciente tem associado a si um
prontuário (sua ficha), onde são registradas basicamente todas as ocorrências, exames, consultas,
medicamentos ministrados associados a ele. Cada registro no seu prontuário, além de ter a data
tem que estar relacionado a um médico, que é o responsável pela informação do registro
cadastrado no sistema.
d) Queremos ter o controle dos dependentes de cada empregado para fins de seguro.
Guardamos o primeiro nome, sexo, data de nascimento de cada dependente, e o parentesco
dele com o empregado.
10. Um berçário deseja informatizar suas operações. Quando um bebê nasce, algumas informações
são armazenadas sobre ele, tais como: nome, data do nascimento, peso do nascimento, altura, a
mãe deste bebê e o médico que fez seu parto. Para as mães, o berçário também deseja manter um
controle, guardando informações como: cpf, nome, endereço, telefone. Para os médicos, é
importante saber: CRM, nome, telefone celular e especialidade.
11. Uma floricultura deseja informatizar suas operações. Inicialmente, deseja-se manter um cadastro de
todos os seus clientes, mantendo informações como: CPF, nome, telefone e endereço (Rua,
número, bairro, cidade). Deseja também manter um cadastro contendo informações sobre os
produtos que vende, tais como: nome do produto, tipo, preço e quantidade em estoque. Quando um
cliente faz uma compra, a mesma é armazenada, mantendo informação sobre o cliente que fez a
compra, a data da compra, o valor total e os produtos comprados.
12. Uma biblioteca deseja manter informações sobre seus livros. Inicialmente, quer armazenar para os
livros as seguintes características: ISBN, título, ano, editora e autores deste livro. Para os autores,
deseja manter: nome e nacionalidade. Cabe salientar que um autor pode ter vários livros, assim
como um livro pode ser escrito por vários autores. Cada livro da biblioteca pertence a uma
categoria. A biblioteca deseja manter um cadastro de todas as categorias existentes, com
informações como: código da categoria e descrição. Uma categoria pode ter vários livros
associados a ela.