Este documento descreve os conceitos básicos de banco de dados, incluindo o modelo entidade-relacionamento, o modelo relacional e operações relacionais como seleção, projeção e junção. Ele também discute integridade de dados e manipulação de bancos de dados usando operações como inserção, exclusão e atualização.
Introdução ao Banco de dados - Prof. Daniel Brandão
Md7 banco dados
1. Módulo 4b:
Banco de Dados
• Um Banco de Dados (BD) é um armazém de
informações sobre algum empreendimento.
•UNIVERSIDADE FEDERAL DE CAMPINA GRANDE
•CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA
•DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO
•Professor Ulrich Schiel
3. O Modelo de Entidades-Relacionamentos
• Classes de entidades são conjuntos
• O relacionamento (a relação) “é proprietário de”
entre Pessoa e Animal é uma relação binária do tipo
um-para-muitos capturada pelos pares (pessoa,
animal)
• Um fato do tipo “nenhum animal tem mais de um
dono” é uma regra do negócio e deve ser mantida
no Banco de Dados.
• Entidades e relacionamentos podem ter atributos,
que são listas de valores que caracterizam uma
entidade.
4. O Modelo Relacional
• As entidades e os relacionamentos podem ser
implementados no Modelo Relacional (MR)
• Um BD Relacional usa relações matemáticas
definidas por tabelas para modelar os objetos
(entidades) e seus relacionamentos
• Cada linha da tabela representa uma entidade
com os seus atributos
• Uma tabela é um conjunto
5. O Modelo Relacional
• As tabelas descrevem uma relação
• Formalmente uma relação em um BD é uma
relação entre domínios de valores
• D1 x D2 x D3 x ...... x Dn,
• Ou seja, temos
• R ⊆ D1 x D2 x D3 x ...... x Dn
7. O Modelo Relacional
• Chave de uma relação: subconjunto mínimo
de atributos cujos valores não se repetem
• Se uma das regras de negócio do AAAE
determina que pessoas distintas tem nomes
distintos, o atributo nome pode ser a chave
para a relação pessoa
8. O Modelo Relacional
• Uma Chave Estrangeira é um atributo de
uma relação, do mesmo domínio de um
atributo que é chave em outra relação. Esse
atributo estabelece um relacionamento entre
os objetos das duas relações
• Na relação que segue, Proprietário, relaciona
Pessoa e Animal e é composta por dois
atributos que são chaves estrangeiras.
9. • A primeira tupla estabelece que
Roberto da Silva é o proprietário de Pintado
10. O Modelo Relacional
• Relações ou Tabelas representam entidades.
• Relacionamentos também podem ficar em
relações
• Relacionamentos um-para-um ou um-para-
muitos também podem ser modelados como
atributos
• P.ex., o relacionamento é proprietário é do
tipo um-para-muitos. Então, a tabela
Proprietário pode ser eliminada e o
relacionamento ser estabelecido na tabela
Animal através de uma chave estrangeira.
11.
12. Operações Relacionais
• União, Diferença, Intersecção, etc..
• Restrição (seleção): cria um subconjunto de
uma relação (das linhas )
• Projeção: cria um subconjunto das colunas
• Junção: cria um subconjunto do produto
cartesiano de duas ou mais relações
13. Operações nas Relações - Restrição
• Exemplo:
Seleção de Animal_Proprietário
onde Tipo_de_animal = “Cachorro”
fornecendo Cachorro-Proprietário
• Notação:
Cachorro_Proprietário = Animal_Proprietário[Tipo_de_Animal=“Cachorro”]
14. Operações nas Relações - Projeção
• Exemplo:
Projeção de Animal_Proprietário
sobre (Nome, Tipo_de_animal )
fornecendo Preferência
• Notação: Preferência=Animal_Proprietário[Nome, Tipo_de_Animal]
15. • Exemplo:
Junção de Pessoa e Animal_Proprietário
baseada em Nome
fornecendo Listagem
• Notação: Pessoa.P [P.Nome=A.Nome] Animal_Proprietário.A
16. Operações nas Relações
• Como relações são conjuntos de n-tuplas as
operações binárias de União, Interseção e
Diferença também podem ser aplicadas a duas
relações que tenham a mesma estrutura
Exemplo:
União de Pessoas.CAAE1, Pessoas.CAAE2
fornecendo Pessoas_do_Clube
• A Junção, operação que junta relações que tenham
um atributo em comum, é implementada pelo
Produto Cartesiano seguida da operação de
Restrição
17. Processamento de consultas
• Todas operações podem ser combinadas para que
um usuário do BD possa fazer uma consulta mais
complexa.
Exemplo:
Considerando que as únicas relações do BD são
Pessoa e Animal-Proprietário, como fazer a seguinte
consulta?
“Forneça o nome de todos os gatos cujos donos
vivem no estado do Rio de Janeiro”
18.
19.
20. EXEMPLO
“Forneça o nome de todos os gatos cujos donos vivem
no estado do Rio de Janeiro”
• Resultado1 = Animal-Proprietario[Tipo-de-animal = “Gato”] - Seleção
• Resultado2 = Pessoa[Estado = “RJ”] - Seleção
• Resultado3 = Resultado1.R1[R1.Nome=R2.Nome]Resultado2 – Junção
• Final = Resultado3[Nome-do-animal] - Projeção
• Alternativa:
• Final = (Animal-Proprietario[Tipo-de-animal = “Gato”].R1)[R1.Nome= R2.Nome]
(Pessoa[Estado = “RJ”].R2) [Nome]
• Versão econômica:
• Resultado1 = (Animal-Proprietario[Tipo-de-animal = “Gato”]) [Nome, Nome-do-
animal]
• Resultado2 = (Pessoa[Estado = “RJ”])[Nome]
• Resultado3 = Resultado1.R1[R1.Nome=R2.Nome]Resultado2.R2
• Final = Resultado3[Nome-do-Animal]
21. Álgebra Relacional
• A Álgebra Relacional é uma linguagem abstrata para
transformação de relações
• A Álgebra Relacional permite todas as operações
citadas, inclusive o uso combinado das operações de
restrição, projeção e junção
22. Álgebra Relacional
• Na Álgebra Relacional a consulta
“Forneça o nome de todos os gatos cujos donos
vivem no estado do Rio de Janeiro” , seria:
projeção
junção
(restrição Animal-Proprietário
onde Tipo-de-animal = “Gato”) e
(restrição Pessoa onde Estado = “RJ”)
baseada Nome
sobre Nome-do-animal fornecendo ResultadoFinal)
23. SQL
• Exemplo: A mesma consulta escrita em SQL
“Forneça o nome de todos os gatos cujos donos vivem no
estado do Rio de Janeiro”
SELECT Nome-do-Animal
FROM Animal_Proprietário, Pessoa
WHERE Animal-Proprietário.Nome = Pessoa.Nome
AND Tipo-animal = “Gato”
AND Estado = “RJ”
Projeção
Restrição
Junção
24. Manipulação do BD
• O BD é dinâmico. Além das operações de consulta,
está sujeito às operações de:
– Inclusão
– Exclusão
– Atualização
• Essas operações não devem afetar a integridade
dos dados
25. Manipulação do BD
• Exemplos de operações que modificam o BD (SQL)
INSERT INTO Animal_Proprietário
VALUE (“Souza, Katia “, “Lex”, “Cachorro”, “Pastor”)
UPDATE Animal_Proprietário
SET Nome = “Silva, Maria da”
WHERE Nome-do-animal = Pintado
DELETE Animal_Proprietário Pessoa
WHERE Nome = “Lad”
26. Integridade do BD
• As operações que modificam o BD são efetuadas
obedecendo as regras de negócio e mantendo o BD
correto e consistente, isto é, sem ferir a integridade
do BD
• Integridade do BD:
• Integridade dos Dados (domínio)
• Integridade das Entidades (chave primária)
• Integridade Relacional (chave estrangeira)
27. Integridade do BD
• Os Sistemas de Gerenciamento de Banco de Dados
SGBS tais como Oracle, MySQL, Informix ..., etc,
dispõem de recursos que automaticamente
gerenciam a Integridade do BD, deixando para os
projetistas apenas os cuidados com as regras dos
negócios que são implementadas com muita
facilidade em SQL
• Detalhes sobre essas facilidades serão vistos em
Banco de Dados I e
Banco de Dados II
28. Exemplo
• Seja o banco de dados
PESSOA(Nome, Endereco, Cidade, Estado);
ANIMAL(Nome-do-animal, Tipo, Raça);
PROPRIETARIO(Nome, Nome-do-anuimal);
• Queremos determinar os proprietários que não têm gatos e cachorros
ao mesmo tempo.
1. Separar os animais em gatos e cachorros
2. Acrescentar a cada um seus proprietários
3. Determinar a lista dos proprietários de cada um
4. Determinar a lista dos proprietários que só aparecem em uma das listas
29. Exercício
• Seja o banco de dados
CURSO(Cur, Disc); EST(Matr, NomeE, CRE);
MATR(Matr, Disc, Turma, Nota); PROF(NomeP, Disc, Turma);
• Obtenha os dados:
• Os nomes dos professores do curso de ‘Ciência da Computação’
• Os nomes e notas dos estudantes reprovados em ‘Matematica Discreta’
pelo professor ‘Ulrich’
• Todas disciplinas cursadas por “Djaildo” e por “Anissa”
• OBS: lembre-se que sobre estas relações podem ser aplicadas as
operações convencionais sobre conjuntos, como união, intersecção,
diferença, assim como as operações relacionais:
• .seleção, projeção e junção