Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila BD Relacional
Apostila BD Relacional
INFORMÁTICA
MODALIDADE SEMIPRESENCIAL
Apostila de Banco de
Dados Relacional
Informática
Agendas 3 e 4
Módulo 2
Informática
Banco de Dados Relacional
Eliana Cristina Nogueira Barion
Lilian Aparecida Bertini
Nádia Cristina de Azevedo Melli
2016
Sumário
CAPÍTULO I ......................................................................................................................................... 7
INTRODUÇÃO A BANCO DE DADOS ..................................................................................................... 7
1.1 CONCEITOS DE BANCO DE DADOS ............................................................................................... 8
1.2 SISTEMA GERENCIADOR DE BANCO DE DADOS – SGBD............................................................. 9
1.3 ABSTRAÇÃO DE DADOS ............................................................................................................. 10
1.4 LINGUAGENS DOS SGBDS......................................................................................................... 11
1.3.1 Linguagens de Definição de Dados (DDL) ................................................................. 12
1.3.2 Linguagem de Manipulação de Dados (DML) ............................................................ 12
1.4 ABORDAGEM BD VERSUS PROCESSAMENTO T RADICIONAL DE ARQUIVOS .............................. 13
1.4.1 Natureza de armazenamento de um Sistema de Banco de Dados ........................ 13
1.5 USUÁRIOS DE BANCO DE DADOS ............................................................................................... 14
1.5.1 Administrador de Banco de Dados (DBA) ................................................................. 14
1.5.2 PROJETISTA DE BANCO DE DADOS (DBD) ............................................................................. 14
1.5.3 USUÁRIOS FINAIS.................................................................................................................... 15
1.6 VANTAGENS DA ABORDAGEM DE BANCO DE DADOS .................................................................. 15
EXERCÍCIOS ................................................................................................................................. 17
CAPÍTULO 2 ...................................................................................................................................... 22
MODELAGEM DE DADOS................................................................................................................... 22
2.1 MODELO ENTIDADE RELACIONAMENTO (MER).......................................................................... 22
2.1.1 Tipos de Entidades......................................................................................................... 22
2.1.2 Atributos: ......................................................................................................................... 24
2.1.3 Relacionamentos ............................................................................................................ 26
Relacionamento 1:1 ................................................................................................................. 29
Relacionamento N:M ............................................................................................................... 29
EXERCÍCIOS ..................................................................................................................................... 30
CAPÍTULO 3 ...................................................................................................................................... 32
3.1 MAPEAMENTO DO MER PARA O MODELO DE DADOS RELACIONAL ........................................... 32
3.1.1 Primeiro Passo ................................................................................................................ 33
OBSERVAÇÕES: ...................................................................................................................... 33
3.1.2 Segundo Passo: .............................................................................................................. 34
3.1.3 Terceiro Passo ................................................................................................................ 35
DataIni foi adicionada porque é um atributo do relacionamento gerenciar ! ................ 36
3.1.4 Quarto Passo ................................................................................................................... 36
3.1.5 Quinto Passo ................................................................................................................... 38
3.1.6 Sexto Passo ..................................................................................................................... 39
3.2 EXEMPLO DE MAPEAMENTO ....................................................................................................... 40
3.2 EXPLICAÇÃO PASSO A PASSO SOBRE MAPEAMENTO: ................................................................ 42
3.2.1 Como mapear relacionamentos do tipo 1:1?............................................................. 42
3.2.2 Como mapear relacionamentos do tipo 1:N? ............................................................ 42
3.2.3 Como mapear relacionamentos do tipo N:M? ........................................................... 43
EXERCÍCIOS ................................................................................................................................. 45
CAPÍTULO 4 ...................................................................................................................................... 48
CAPÍTULO I
A ideia de banco de dados Relacionais foi apresentada em 1970, por Coad Yourdon, o
qual partiu de uma visão intuitiva onde era possível associar um conjunto de atributos
de uma entidade do mundo real, como sendo uma relação. Além disso, Coad, propôs
a álgebra relacional, que seria um conjunto de operações que iriam atuar sobre estas
relações, cujo resultado seria sempre outra relação.
O modelo relacional mostrou-se muito útil para lidar com aplicações comerciais,
tornando-se a tecnologia mais difundida na área, nas décadas de 80 e 90.
Dados são fatos que podem ser registrados e que têm um significado.
Definição de um B.D
É a especificação dos tipos de dados que serão armazenadas no B.D com uma
descrição detalhada de cada tipo de dado.
Construção de um B.D
É o processo de armazenagem dos dados em algum meio de armazenamento.
Manipulação de um B.D
Aplicação de algumas funções como a consulta para a recuperação de alguns
dados específicos, atualização para refletir mudanças no mini-mundo e a
geração de documentos.
Quando um usuário utiliza um Banco de Dados, ele não faz idéia da quantidade de
informações que ele está manipulando. Isto porque, o SGBD oculta certos detalhes de
como os dados são armazenados ou mantidos, proporcionando ao usuário uma visão
abstrata dos dados. Os Bancos de Dados são freqüentemente utilizados por pessoas
sem conhecimentos na área de Banco de Dados. É missão do SGBD manipular a
grande quantidade de dados complexos, sem que o usuário precise se preocupar.
Para isto, temos três níveis de abstração.
Nível Físico – Nível mais baixo de abstração. Descreve como os dados são
armazenados. Descreve com detalhes as estruturas complexas de baixo nível.
Nível Visão – Nível mais alto da abstração no qual se expõem apenas parte do BD.
Podem existir diferentes visões para um mesmo banco de dados.
2 - Níveis de Abstração
Exemplo:
Aluno alfanumérico 50
A definição do tipo de dados, tamanho e
RG numérico 10 formatos de cada campo, consiste na
Mensalidade moeda - Linguagem de Definição de Dados !
- Consultas;
- Atualizações Inserção de informações
Remoção de informações
3 - Instância
Um Banco de Dados contém não apenas os dados, mas também a descrição completa
do banco de dados. Esta definição contém informações como a estrutura de cada
arquivo. A estrutura e o formato de cada item de dado e várias restrições de acesso.
Estas informações são chamadas de “Meta de Dados” e são armazenados com um
arquivo chamado catálogo ou “meta de banco de dados”. No processamento
tradicional, a definição dos dados é inerente ao programa. Deste modo, o programa se
restringe a manipular somente dados definidos no próprio programa.
Um grande BD precisa de uma grande equipe trabalhando para que ele se mantenha
íntegro e coeso. Para isto, há a necessidade de uma pessoa para manter o controle
central dos dados e dos programas que acessam os dados. Esta pessoa é o
Administrados de BD. O DBA é responsável pela concessão de autorização para
acesso aos dados.
O DBD tem como função principal identificar os dados a serem armazenados e definir
a estrutura apropriada para representar e armazenar estes dados para a obtenção
destes dados, o DBD deve interagir com os usuários para descobrir suas
necessidades e encontrar a solução ideal para as mesmas.
O projeto final do BD deve ser capaz de atender as necessidades de todos os
grupos de usuários do mesmo.
Controle de Redundância
Compartilhamento de Dados
Um SGBD multiusuário deve permitir que vários usuários possam acessar os dados ao
mesmo tempo.
O SGBD deve incluir um software de controle de concorrência para evitar o acesso
desordenado ao BD, fazendo com que os resultados das atualizações sejam sempre
corretos. Um SGBD multiusuário facilita o controle de visões, pois as mesmas podem
ser especificadas para grupos de usuários.
Restrições de Integridade
Padronização
Flexibilidade
Alguns SGBDs permitem que as estruturas sejam alteradas sem que haja grandes
alterações nos programas de aplicações.
- Baseada em Menus
- Gráfica
- Baseada em Formulários
- Linguagem Natural
- Interfaces para o DBA
EXERCÍCIOS
a) Redundância de dados
b) Inconsistência de Dados
c) Definição de Banco de dados
d) Meta de dados
e) Nenhuma das alternativas
Neste caso, o que poderia ser feito para resolver este problema?
3) Em um canhoto de talão de cheques, são anotados para todo cheque emitido, data
de emissão, valor e destino do cheque. Cada um desses itens constitui:
a) Dado
b) Meta de dados
c) Banco de dados
d) Sistema Gerenciador de Banco de Dados
e) DBA
a) Uma tupla
b) O SGBD
c) DML
d) A abstração
e) A linguagem
a) Tem um significado
b) Só faz parte de uma grandes organizações
c) Pode ser registrado
d) Vem sempre acompanhado de um SGBD
e) Só é encontrado em meios eletrônicos
a) Um banco de dados
b) Processamento tradicional de arquivos
c) Abstração de dados
d) Administrador de banco de dados
e) Compartilhamento de dados
a) Um SGBD
b) Um DBA
c) Um DBD
d) Um mini-mundo
e) Um registro
10) Denise trabalha em uma grande empresa de implementos agrícolas. Ela controla
os navios que vão para o exterior, bem como os estoques da filiais fora do Brasil.
Os dados envolvidos nestas operações são muitos e bastante complexos. Como
Denise não entende muito de informática, toda modificação de estrutura ,
permissão de acesso e problemas eventuais do seu banco de dados são
resolvidos pelos DBA e DBD da empresa. O fato de Denise não enxergar o Banco
em profundidade pode ser chamado de:
12) Sérgio comanda uma grande equipe em uma grande organização. É ele quem
controla o acesso dos funcionários aos dados da empresa. Ele também mantém o
controle central e responde por todo problema que possa haver com o banco de
dados. Marcelo, por sua vez, subordinado a Sérgio, define quais dados devem
constar no banco e suas estruturas, também define como estes dados serão
armazenados. Marcelo e Sérgio são respectivamente:
a) DBA e DBD
b) DBD e DBA
c) Usuário Final e DBD
d) Usuário Final e DBA
e) Nenhuma das alternativas
CAPÍTULO 2
Modelagem de Dados
Conceitos
A Reserva do Avião
Entidade Fraca
Alguns tipos de entidade podem não ter algum atributo chave por si só. Isto implica
que não poderemos distinguir certas entidades, porque a combinação dos valores de
seus atributos pode ser idêntica. Estes são os tipos de Entidade Fraca.
A participação total não implica que a entidade seja fraca; pois pode não ser possível
identificar uma entidade fraca sem sua entidade proprietária.
Um tipo entidade fraca tem uma chave parcial, a qual é um conjunto de atributos que
identificam unicamente entidades fracas relacionadas à mesma entidade proprietária.
Um tipo entidade fraca pode ser substituído por atributos compostos multivalorados.
Empregado Dependente
CódigoDoDependente
CódigoDoEmpregado
Possui CódigoDoEmpregado
NomeDoEmpregado
NomeDoDependente
FunçãoDoEmpregado
ParentescoDoDependente
SalárioDoEmpregado
2.1.2 Atributos:
Atributo Composto: É um atributo formado por vários atributos que não pode ser
dividido, é chamado de atômico ou simples.
Atributo Multi-Valorado: É um atributo que pode assumir diversos valores para uma
determinada entidade.
Atributo Derivado: um atributo pode ser chamado de derivado quando seu valor é
determinado a partir de um ou mais atributos. Estes atributos mantêm uma “relação”.
Chave Primária
Uma chave primária é um atributo que possui um valor único para cada entidade
individual. Esta é uma restrição que proíbe que duas entidades possuam o mesmo
valor para um determinado atributo ao mesmo tempo. Alguns tipos de entidades
podem Ter mais que um atributo formando uma chave ou mais que um atributo chave.
Chave Candidata
Uma tabela pode possuir alternativas de identificador único, ou seja, várias colunas ou
concatenações diferentes de colunas podem ter esta propriedade. Estes
identificadores
são candidatos à chave primária, como um e somente um será escolhido como chave
primária, o restante passa a ser considerado como chave alternativa, por isso
candidata.
Chave Concatenada
Se diz que uma chave é concatenada (ou composta) quando apresentar vários
atributos individuais agrupados na formação da chave primária. Por exemplo: A chave
primária da entidade [Dependente] é composta pelos atributos [Código do Empregado]
e [Código do Dependente], sendo, portanto, uma chave concatenada.
Chave Estrangeira
Departamento Funcionário
Chave Estrangeira
Representações Gráficas
Tipo Tipo
Entidade Entidade
Fraca
Tipo Tipo
Relacionamento
Relaciona Identificador
mento
Atributo Atributo
simplesmente Atributo
Chave Derivado
valorado
Atributo Multi-
Valorado Atributo
Composto
2.1.3 Relacionamentos
Cardinalidade
Relacionamento 1:N
O primeiro deles é o relacionamento 1:1 (“um para um”). Um exemplo seria aquele que
existe entre Gerente e Departamento, onde um gerente pode responder por apenas
um departamento e um departamento só pode ser gerenciado por um único gerente.
7 - Relacionamento 1:1
Apesar de existirem no mundo rela situações que surgem cardinalidades 1:1, devemos
sempre desconfiar de tais relacionamentos questionando-nos se na realidade as duas
entidades envolvidas não são uma só. Uma forma de analisar essa possibilidade
consiste em verificar se o principal identificador da primeira entidade é diferente do
principal identificador da Segunda entidade. Caso não o sejam, muito provavelmente
estamos interpretando dois aspectos de uma mesma entidade como sendo entidades
distintas.
Relacionamento 1:1
Existem também os relacionamentos N:M ou N:N (“muitos para muitos”). São aqueles
em que uma ocorrência da entidade “A” pode ter ligação com mais de uma ocorrência
da entidade “B” e vice versa.
Relacionamento N:M
8 - Relacionamento N:M
Exercícios
1) Uma biblioteca deseja informatizar os Cadastros de seus livros. Para isso nos
passou as seguintes informações:
Os livros são definidos pelo número do ISBN, Título, Número de Páginas e Preço. Um
livro pode ser escrito por vários autores, sendo os autores definidos pelo Número do
autor, Nome e Sobrenome. As Editoras são definidas pelo Código da editora, Nome,
Endereço, telefone e E-Mail. Um livro pode conter vários assuntos, sendo que vários
livros podem falar sobre o mesmo assunto. Os dados que devemos registrar para o
assunto são: Código do assunto e a descrição. Alguns livros podem Ter várias Cópias
cadastradas na biblioteca, sendo estas cópias definidas pelo número da Cópia e Data
de Aquisição desta cópia. É claro, que só podemos Ter a cópia de algum livro na
biblioteca se existir o livro , caso contrário, não é permitido.
2) Uma empresa deseja manter controle dos projetos desenvolvidos por seus
departamentos. Temos as seguintes informações:
4) Uma imobiliária deseja manter controle condomínios pelo quais são responsáveis.
Temos as seguintes informações:
CAPÍTULO 3
Para garantir uma representação fiel das informações no Modelo Relacional é preciso
seguir algumas diretrizes, com objetivo de restringir as opções dos desenvolvedores
em um conjunto efetivo de regras.
Este documento propõe a modelagem de uma Empresa, e descreve os passos
propostos por [Elmasri & Navathe 1994] para o mapeamento do esquema Entidade
Relacionamento para o Modelo Relacional.
9 - Mapeamento 1º passo
Primeiro Passo:
OBSERVAÇÕES:
É importante notar que um conjunto de entidade fraca só pode ser mapeado quando
os demais conjuntos de entidades envolvidos no conjunto de relacionamento total, que
torna esse conjunto de entidade fraca, já estiverem mapeados.
10 - Mapeamento - 2º Passo
Primeiro Passo:
Segundo Passo:
Dependente = {DependNome, FNúmero, DataNiver, Parentesco}
No 3º passo, escolha uma entidade para receber o atributo chave da outra entidade
relacionada.
Note que o atributo chave de uma entidade vai para a outra como um atributo simples!
11 - Mapeamento - 3º Passo
Primeiro Passo:
Segundo Passo:
Dependente = {DependNome, FNúmero, DataNiver, Parentesco}
Terceiro Passo:
Os atributos FNúmero e DataIni são adicionados à relação "Departamento",
definida no primeiro passo. Note que o atributo Fnúmero é adicionado como um
atributo não chave na relação "Departamento".
Note que o atributo chave do lado 1vai para a entidade de lado N, como um atributo
simples. Veja no exemplo.
12 - Mapeamento - 4º Passo
Primeiro Passo:
Segundo Passo:
Dependente = {DependNome, FNúmero, DataNiver, Parentesco}
Quarto Passo:
Para cada relacionamento binário M:N cria-se uma nova relação. Os atributos da
relação são os atributos do conjunto de relacionamento juntamente com os atributos
chave das relações que mapeiam os conjuntos de entidades envolvidos. A chave da
relação é a concatenação dos atributos chave das relações que mapeiam os conjuntos
de entidades envolvidos.
13 - Mapeamento - 5º Passo
Primeiro Passo:
Funcionário = {FNúmero, FNome, Endereço, Salário, SuperNúmero, DNum}
Departamento = {DNúmero, Dnome, FNúmero, DataIni}
Projeto = {PNúmero, Pnome, DNro}
Segundo Passo:
Dependente = {DependNome, FNúmero, DataNiver, Parentesco}
Quinto Passo:
14 - Mapeamento - 6º Passo
Primeiro Passo:
Segundo Passo:
Dependente = {DependNome, FNúmero, DataNiver, Parentesco}
Quinto Passo:
Participar = {FNum, PNum, horas}
Sexto Passo:
LocalDep = {DNúmero, Localização}
Resolução:
Sendo assim, cartão de ponto receberá a chave primária de empregado. Neste caso, o
mapeamento do relacionamento entre essas duas entidades ficará assim:
Dizemos que o atributo recebido pela outra entidade é chamado de chave estrangeira.
Portanto, matrícula do empregado é a chave estrangeira de cartão de pontos.
Matrícula
Num relacionamento 1:N, o lado N sempre recebe a chave primária do lado 1 (Para
não esquecer, pense sempre nisso: muitos (N) são mais fortes do que 1)! É
uma brincadeirinha, apenas para não se esquecer, ok?
Dizemos que o atributo recebido pela outra entidade é chamado de chave estrangeira.
Portanto, código do departamento é a chave estrangeira de empregado.
Um aluno pode cursar mais de uma disciplina e uma disciplina pode ser cursada
por mais de um aluno, concorda?
Matrícula
Para cada relacionamento binário M:N cria-se uma nova relação. Os atributos da
relação são os atributos do conjunto de relacionamento juntamente com os atributos
chave das relações que mapeiam os conjuntos de entidades envolvidos. A chave da
relação é a concatenação dos atributos chave das relações que mapeiam os conjuntos
de entidades envolvidos.
Por que isso? Veja nesse exemplo que para você conseguir cadastrar um mesmo aluno
em várias disciplinas, deverá fazer um registro para cada uma das disciplinas que o
aluno cursa, concorda:
Exemplo:
Perceba que você poderá repetir a matrícula da Maria para vários códigos de
disciplinas diferentes e poderá repetir os códigos das disciplinas para vários alunos
diferentes. A única coisa que você não poderá fazer é cadastrar duas vezes o mesmo
aluno para a mesma disciplina, não é?
Ora, e como você poderá fazer para que isso não aconteça? A única forma é colocar os
dois atributos como chave primária (matrícula do aluno e código da disciplina).
Concorda? Então, a terceira entidade criada pelo relacionamento N:M, terá como
chave primária tanto a chave de Aluno quanto a chave de disciplina. Veja como ficará o
mapeamento:
Dizemos que os atributos da classe criada pelo relacionamento Aluno cursa Disciplina é
uma concatenação (junção) das chaves primárias de Aluno e Disciplina.
Agora mãos à obra! Você já consegue fazer sua lista de exercício. Vamos lá?
EXERCÍCIOS
1)
Código
1 N
Departamento possui Orientador
Nome
1
Nr. Nome
é
orientado
Notas
N
N cursa M
Disciplina Aluno
Média
Código Nome Nr. Nome
2)
Nº Bairro
Rua
Cidad
Nr. Nome Endereç e
pass Nome o Funções
ag M
Endereço EMPREGADO
PASSAGEIRO
Número-
fone 1 emp.
N Escalado
para
Registra possui
do em
Horá
M
1 rio_e
data ntrad
SAÍDA N a
CARTÃO DE
Horá
PONTO rio_s
N aída
Total
Número_ de
Cartão Horas
Instância
de
Modelo
origem 1 Hora-
saída
VÔO Hora- AERONAVE Numero
chegada Serial
destino Número
N 1
designa
3)
1 N
Efetua
Usuário Empréstimo
Data
Devolução N
Matrícula Nome
Contém
M
1 N
Sessão Pertence
Livro
Localização Autor
CAPÍTULO 4
4.1 Normalização
A teoria de Normalização está montada em torno deste conceito de formas normais. Uma
tabela (entidade) está numa forma normal se ela atender a um conjunto específico de
restrições.
1ª Forma Normal
2ª Forma Normal
3ª Forma Normal
Exemplo:
A relação está na 2FN se está na 1FN e se não existir atributo não chave que é
dependente de só uma parte de qualquer chave candidata.
Exemplo:
Pedido
1- Atualização
Mudar descrição de BT04 implica em várias mudanças (tempo!)
2- Dados Inconsistentes
A Peça BT04 pode Ter descrições diferentes
3- Adições
Adicionar nova peça e descrição sem pedido para ela. Qual é o valor de Nr_Ped ?
(Faz parte da Chave Primária !)
4- Eliminações
Eliminar o Pedido 1000 = perde-se a informação de que a peça AX12 é Bicicleta
Uma relação está na 3FN se e somente se estiver na 2FN e todo atributo não chave não é
transitivamente dependente de qualquer outro não chave.
Nome do Vendedor é transitivamente dependente de Nr_Vendedor que por sua vez não é
chave.
Exercícios
______________________
Exercícios de Normalização adaptado de
https://docente.ifrn.edu.br/nickersonferreira/disciplinas/programacao-com-acesso-a-banco-de-
dados-3o-ano/lista-de-exercicios-01-normalizacao
BIBLIOGRAFIA
MACHADO, F.N.R e Abreu, M. Projeto de Banco de Dados: Uma Visão Prática, Editora
Érica, 1996