0% acharam este documento útil (0 voto)
4 visualizações55 páginas

Introdução a Bases de Dados Relacionais

Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
4 visualizações55 páginas

Introdução a Bases de Dados Relacionais

Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

• Objetivos:

– Reconhecer as áreas de
intervenção de um
Sobre a administrador de base de dados.
– Definir e implementar um plano
unidade de instalação de um sistema de
bases de dados.
– Proceder à gestão e instalação
de bases de dados.
• Dados: factos conhecidos que têm
Primeiras algum significado e que podem ser
guardados.
definições
• Base de dados (BD): conjunto de
dados que se relacionam entre si.

• Universo: parte do mundo real


sobre o qual os dados guardados na
base de dados dizem respeito.
Primeiras – Empresa: empregados,
departamentos, projetos, ...
definições – Escola: alunos, professores,
cadeiras, inscrições, horários, ...
– Contactos: nomes, endereços,
telefones, ...
• Sistema de gestão de base de dados
(SGBD): pacote de software que
permite criar e manipular uma base
de dados.
– MySQL, PostGreSQL, Oracle,
Primeiras Sybase, SQL-Server, ...
definições
• Sistema de base de dados: o
sistema de gestão de base de dados
juntamente com os dados.
• Inserir dados
Manipular •

Eliminar dados
Alterar dados
uma BD? • Muito importante: consultar os
dados
Existem
diversos • Sim (por exemplo hierárquicas, em
rede, relacionais), mas só iremos
tipos de estudar as relacionais.
• O que este termo significa ficará
bases de claro daqui a pouco.

dados?
• Fase I: Requisitos e análise
– Entrevistas com os potenciais utilizadores
da BD.
E como – Compreender e documentar os seus
requisitos.

surgem • Fase II: Desenho conceptual (ou modelação)


– Definir um modelo de dados conceptual
que inclua a descrição das entidades da BD,
as Bases dos atributos das entidades, dos
relacionamentos entre entidades e das
possíveis restrições. Evitar detalhes de
de •
implementação.
Fase III: Desenho lógico (ou implementação)

Dados? – Mapear o modelo de dados conceptual no


modelo de dados representacional.
– Implementação da BD usando um SGBD.
• Fase IV: Desenho físico
Fase I: • É uma tarefa minuciosa e delicada,
pois obriga a entrevistar pessoas e
requisitos analisar com todo o cuidado tudo o
que está relacionado com o
e análise conteúdo da futura base de dados.
Fase II: • Vamos ver uma forma de fazê-la
através dos diagramas Entidade-
modelação Relação.
• Vamos ver como se passa dos
Fase III:
diagramas E-R para bases de dados
implementação relacionais.
Fonte:
Aulas do Prof. Ricardo Rocha, FCUP
[Link]

2ª PARTE
• É um modelo de dados conceptual.
O modelo • É um modelo próximo do modelo
Entidade- relacional.
Relacionamento • Descreve os dados como sendo
(E-R) entidades, atributos ou
relacionamentos.
• Entidades
– Objetos ou conceitos do mundo
real com uma existência
independente.
– Com existência física:
Entidades EMPREGADO, CARRO, ALUNO,
PRODUTO, ...
– Com existência conceptual:
EMPRESA, PROFISSÃO, CURSO, ...
• Atributos
– Propriedades que caracterizam
as entidades.
Atributos – Atributos da entidade
EMPREGADO: NumBI, Nome,
Sexo, Endereço, ...
• Relacionamentos
– Representam interações entre
duas ou mais entidades.
Relacionamentos
– Relacionamento TRABALHA: um
ou Relações
EMPREGADO TRABALHA para
uma EMPRESA
ENTIDADE
Simbologia usada
nos diagramas
E-R
Atributo

relação
• A maioria dos
relacionamentos são
Relacionamentos binários, isto é, entre
binários e duas entidades. Por
exemplo, um bancário
ternários trabalha numa filial do
banco.

Funcionário trabalha Filial


• Mas nessa filial tem
Relacionamentos um cargo (caixa,
gerente, etc). Então,
binários e
aqui, temos uma
ternários relação ternária:

Funcionário trabalha Filial

cargo
• Domínio de um atributo
– Conjunto de valores que um atributo
pode tomar.
– Uma entidade possui pelo menos um
valor para cada um dos seus atributos.
– Um EMPREGADO pode ter NumBI =
‘985634523’, Nome = ‘Rui Silva’, Sexo
= ‘M’ e
– Endereço = ‘Rua do Comércio, 9 –
Atributos •
4150 Porto’.
Tipo de atributos
– Simples ou atómico
– Composto
– Valor único
– Multi-valor
– Complexo
– Derivado
– Valor nulo
• Simples ou atómico: não é divisível.
– NumBI
– Sexo
• Composto: divisível em atributos simples com
significado independente.
– O atributo Endereço pode ser decomposto
Tipos de em (Morada, Cidade, CódigoPostal).
– A composição de atributos pode ser
hierárquica.
atributos – O atributo Morada decomposto em (Rua,
Número, Apartamento), leva a que
Endereço seja visto como ((Rua, Número,
#1/2 •
Apartamento), Cidade, CódigoPostal).
Valor único: só pode ter um único valor para
cada entidade.
• Multi-valor: pode tomar um ou mais valores
para cada entidade.
– Atributo GrauAcadémico (licenciado,
mestre, doutor, …)
• Complexo: formado por atributos
compostos e multi-valor combinados
arbitrariamente.
– O atributo GrauAcadémico pode ser
decomposto em (Instituição, Ano,
Grau, Área).
• Derivado: pode ser determinado a partir
Tipos de de outros atributos.
– O atributo Idade pode ser calculado a
atributos •
partir do atributo DataNasc.
Valor nulo (NULL): quando o atributo não

#2/2 é aplicável.
– O atributo GrauAcadémico só se aplica
a pessoas com curso superior.
– O valor NULL pode ser igualmente
utilizado noutras situações: quando o
valor do atributo não é conhecido ou
quando o valor do atributo está em
falta.
• Entidade-tipo
– Define o esquema (nome e lista
de atributos) para o conjunto de
entidades que partilham a
mesma estrutura (atributos).
Entidades- – Esquema para EMPREGADO:
EMPREGADO(NumBI, Nome,
tipo Sexo, Endereço)
• Assim, em rigor, a entidade-tipo
define o esquema das entidades e
uma entidade é uma instância da
entidade tipo (um funcionário, um
aluno, um departamento, etc).
• Conjunto mínimo de atributos que
permite identificar de forma única cada
entidade. Nunca pode estar vazio
nalguma entidade.

• O atributo NumCC da entidade-tipo


EMPREGADO é um atributo chave

Atributos porque todas as pessoas possuem um


número de cartão de cidadão único.
• Um atributo chave pode ser constituído
chave por mais do que um atributo e pode
conter atributos compostos. O atributo
composto Registro(Matrícula, País) é um
atributo chave da entidade-tipo CARRO.
• Uma entidade-tipo pode ter mais do
que uma chave tomando, nessa altura, a
designação de chave composta.
• Entidades com todas as letras em
maiúsculas
– EMPREGADO
• Atributos com a primeira letra de
cada palavra em maiúscula
– Nome
Convenções • Atributos chave sublinhados
– NumCC
de sintaxe
• Atributos compostos entre
parêntesis
– Registo(Matrícula, País)
• Atributos multi-valor entre chavetas
– {GrauAcadémico}
• Para construir um diagrama E-R,
devemos
1) Identificar as ENTIDADES-TIPO
2) Identificar os seus ATRIBUTOS
Passos a 3) Identificar/Criar ATRIBUTOS
CHAVE
seguir 4) Identificar as RELAÇÕES entre as
entidades
5) Identificar as CARDINALIDADES
das relações
Exemplo:
agenda de
contactos
atributo

Nº Nº
Nome telemóvel telemóvel
pessoal profis.

E-mail
pessoal Contacto Entidade

E-mail Data
profiss. aniversário
Exemplo:
coleção de
discos
áudio
Cod_disco Título Nome

Foto
DISCO INTÉRPRETE

Foto da Cod_intér
prete Nacionalidade
capa

Cod_faixa
Designação Número
Cod_género
_género
FAIXAS
GÉNERO Título
• 1:1 (“um para um”
Cardinalidade
• 1:N (“um para vários”)
das relações
• M:N (“vários para vários”
INTÉRPRETE
1
N

M:N
interpretam

1 N
1:N
1 N
1 N
1
têm 1
N 1

M:N têm
1 N
[Link]
1
2
Fonte:
Aulas do Prof. Eduardo Marques, FCUP
[Link]

3ª PARTE
• A uma relação podemos ter
associadas restrições de
participação.
• Por exemplo, numa escola,
temos com certeza uma relação
Restrições entre professores e disciplinas
(“PROFESSORES lecionam
de DISCIPLINAS”).
• Mas pode acontecer que haja
participação professores que estejam a
desempenhar funções
administrativas e que, por tal,
não estejam a lecionar. É uma
situação comum nos diretores
das escolas de ensino regular,
por exemplo.
• O que significa isto no contexto
dos diagramas E-R?
• Pois bem, podemos colocar esta
situação usando dois termos
diferentes, mas que têm o mesmo
significado prático:
– Participação total ou parcial: temos
Restrições participação total (na relação
PROFESSOR-DISCIPLINA) se todos os
de professores tiverem que lecionar
pelo menos uma disciplina e parcial
se nem todos os professores tiverem
participação que lecionar.
– Participação obrigatória ou não
obrigatória: temos participação
obrigatória (na relação PROFESSOR-
DISCIPLINA) se todos os professores
tiverem que lecionar pelo menos
uma disciplina e não obrigatória se
nem todos os professores tiverem
que lecionar.
• Há duas notações.
• Mais popular:

Como PROFESSOR leciona

identificar Participação total ou obrigatória

estas PROFESSOR leciona


restrições Participação parcial ou não obrigatória
nos • Menos popular:
diagramas PROFESSOR leciona

E-R? Participação total ou obrigatória

PROFESSOR leciona

Participação parcial ou não obrigatória


• Nas bases de dados relacionais,
usamos tabelas relacionadas e as
tabelas são constituídas por
campos.
Que tem
isto a ver
com as
bases de • Há, como iremos ver, um
relacionamento estreito entre
dados entidades e tabelas e entre
atributos e campos e a questão da
relacionais? participação é aqui fundamental.
Conversão
de
• O nosso objetivo é agora o de
esquemas converter esquemas E-R em
E-R em bases de dados relacionais.
• Para isso, vamos ver as regras a
bases de seguir.

dados
relacionais
• Relação 1:1 - participação
obrigatória das duas entidades

Situação #1 :
• Juntamos os atributos de ambas
 as entidades numa única tabela
em que o campo chave pode
ser o atributo chave de uma ou
de outra entidade.
• Exemplo: cada professor leciona
obrigatoriamente uma disciplina e
cada disciplina é obrigatoriamente
dada por um professor.

• PROFESSOR(CodProfessor, Nome,
Morada, Telemóvel)
Situação #1 :
• DISCIPLINA(CodDisciplina, Nome da

disciplina)

• A tabela pode ficar assim:


– PROFESSORES/DISCIPLINAS(CodProfessor,
Nome, Morada, Telemóvel, CodDisciplina,
Nome da disciplina)
– (escolhemos CodProfessor para campo
chave)
• De notar que, no nome da
tabela, usei o plural:
Nota “PROFESSORES” e
“DISCIPLINAS”.
sobre os • Isto não é uma regra, é uma
prática que não é obrigado a
nomes seguir. Significa apenas que, no
das E-R, “PROFESSOR” e
“DISCIPLINA” eram entidades-
tabelas tipo, mas agora temos a ‘tabela
que contém os dados dos
professores e das disciplinas’.
• Relação 1:1 - participação
obrigatória de apenas uma das
entidades

• São necessárias duas tabelas;


Situação #2 : – A chave primária de cada entidade
serve como chave primária na

tabela correspondente.
– A chave primária da entidade
com participação não obrigatória
tem de ser usada como campo
na tabela correspondente à
entidade cuja participação é
obrigatória.
• Exemplo: cada professor leciona
obrigatoriamente uma disciplina, mas
uma disciplina pode não ser dada por
ninguém (por exemplo, uma disciplina
opcional sem alunos inscritos).

• PROFESSOR(CodProfessor, Nome,
Situação #2 : Morada, Telemóvel)

• DISCIPLINA(CodDisciplina, Nome da
disciplina)

• As duas tabelas ficam assim:


– PROFESSORES/DISCIPLINAS(CodProfessor,
Nome, Morada, Telemóvel, CodDisciplina)
– DISCIPLINAS(CodDisciplina, Nome da
disciplina)
• Relação 1:1 – sem participação
obrigatória de nenhuma das
entidades

• São necessárias três tabelas:


– Uma correspondente a cada
entidade e uma terceira para o
Situação #3 : relacionamento, uma tabela de
 ligação.
– A chave primária de cada entidade
serve como chave primária na
tabela correspondente.
– A tabela correspondente ao
relacionamento terá entre os
seus atributos as chaves
primárias das duas (chave
composta).
• Exemplo: cada professor, se lecionar,
leciona uma disciplina, mas uma
disciplina pode não ser dada por
ninguém (por exemplo, uma disciplina
opcional sem alunos inscritos).

• PROFESSOR(CodProfessor, Nome,
Morada, Telemóvel)
• DISCIPLINA(CodDisciplina, Nome da
Situação #3 : disciplina)

• As três tabelas ficam assim:
– PROFESSORES(CodProfessor, Nome,
Morada, Telemóvel)
– DISCIPLINAS(CodDisciplina, Nome da
disciplina)
– PROFESSORES/DISCIPLINAS(CodProfessor,
CodDisciplina)
• Relação 1:N – com participação
obrigatória ‘do lado N’

• São necessárias duas tabelas;


Situação #4 : – A chave primária de cada entidade
 serve de chave primária na tabela
correspondente;
– A chave primária da entidade do
lado 1 tem de ser usada como
atributo na tabela correspondente
à entidade do lado N.
• Exemplo: cada professor pode (ou
não) lecionar várias disciplinas, mas
cada disciplina é lecionada apenas
por um professor.

• PROFESSOR(CodProfessor, Nome,
Morada, Telemóvel)
Situação #4 : • DISCIPLINA(CodDisciplina, Nome da
disciplina)

• As duas tabelas ficam assim:


– PROFESSORES(CodProfessor, Nome,
Morada, Telemóvel)
– DISCIPLINAS(CodDisciplina, Nome da
disciplina,CodProfessor)
• Relação 1:N – sem participação
obrigatória ‘do lado N’

• São necessárias três tabelas:


– Uma correspondente a cada
entidade e uma terceira para o
Situação #5 : relacionamento, uma tabela de
 ligação.
– A chave primária de cada entidade
serve como chave primária na
tabela correspondente.
– A tabela correspondente ao
relacionamento terá entre os seus
atributos as chaves primárias das
duas (chave composta).
• Exemplo: cada professor pode (ou
não) lecionar várias disciplinas, mas
cada disciplina pode (ou não) ser
lecionada apenas por um professor.

• PROFESSOR(CodProfessor, Nome,
Morada, Telemóvel)
Situação #5 : • DISCIPLINA(CodDisciplina, Nome da
disciplina)

• As três tabelas ficam assim (como na #3):


– PROFESSORES(CodProfessor, Nome,
Morada, Telemóvel)
– DISCIPLINAS(CodDisciplina, Nome da
disciplina)
– PROFESSORES/DISCIPLINAS(CodProfessor,
CodDisciplina)
• Relação M:N

• São necessárias três tabelas:


– Uma correspondente a cada
entidade e uma terceira para o
Situação #6 :
relacionamento, uma tabela de
ligação.

– A chave primária de cada entidade
serve como chave primária na
tabela correspondente.
– A tabela correspondente ao
relacionamento terá entre os seus
atributos as chaves primárias das
duas (chave composta).
• Exemplo: cada professor pode
lecionar várias disciplinas, cada
disciplina pode ser lecionada por um
ou mais professores.

• PROFESSOR(CodProfessor, Nome,
Morada, Telemóvel)
• DISCIPLINA(CodDisciplina, Nome da
Situação #6 : disciplina)

• As três tabelas ficam assim (como na #3
e na #5):
– PROFESSORES(CodProfessor, Nome,
Morada, Telemóvel)
– DISCIPLINAS(CodDisciplina, Nome da
disciplina)
– PROFESSORES/DISCIPLINAS(CodProfessor,
CodDisciplina)
• Converter os esquemas E-R dos
exemplo e exercícios vistos
Prática! antes em bases de dados
relacionais.
• Entre INTÉRPRETE e FAIXA e
entre DISCO e FAIXA temos
relações M:N.

• Entre GÉNERO e FAIXA temos


Exemplo: uma relação 1:N. Há
participação total ou obrigatória
coleção ‘do lado N’? A resposta mais
flexível é “Não”, porque
de discos podemos ter géneros musicais –
que recolhemos numa lista
como a do Discogs, por exemplo
- para os quais não tenhamos
faixas.
No MS Access

Você também pode gostar