SlideShare uma empresa Scribd logo
1 de 29
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
Diagrama E-R:
Associação dos Amigos dos Animais de Estimação (AAAE)
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.
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
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
Relações Pessoa e Animal
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
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.
• A primeira tupla estabelece que
Roberto da Silva é o proprietário de Pintado
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.
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
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”]
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]
• 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
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
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”
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]
Á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
Á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)
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
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
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”
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)
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
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
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

Mais conteúdo relacionado

Destaque

Matemática Discreta - Parte V relações
Matemática Discreta - Parte V relaçõesMatemática Discreta - Parte V relações
Matemática Discreta - Parte V relaçõesUlrich Schiel
 
Matemática Discreta - Parte VI funções
Matemática Discreta - Parte VI funçõesMatemática Discreta - Parte VI funções
Matemática Discreta - Parte VI funçõesUlrich Schiel
 
Matemática Discreta - Parte VII estruturas algébricas
Matemática Discreta - Parte VII estruturas algébricasMatemática Discreta - Parte VII estruturas algébricas
Matemática Discreta - Parte VII estruturas algébricasUlrich Schiel
 
Matemática Discreta - Parte III definicoes indutivas
Matemática Discreta - Parte III definicoes indutivasMatemática Discreta - Parte III definicoes indutivas
Matemática Discreta - Parte III definicoes indutivasUlrich Schiel
 
Etapas de desenvolvimento_de_um_artigo
Etapas de desenvolvimento_de_um_artigoEtapas de desenvolvimento_de_um_artigo
Etapas de desenvolvimento_de_um_artigoMile Araújo
 
MODELOS DE DADOS - Parte 2 Sistemas de Informação
MODELOS DE DADOS - Parte 2 Sistemas de InformaçãoMODELOS DE DADOS - Parte 2 Sistemas de Informação
MODELOS DE DADOS - Parte 2 Sistemas de InformaçãoUlrich Schiel
 
57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidosHAROLDO MIRANDA DA COSTA JR
 
Matemática Discreta - Parte IV teoria dos-conjuntos
Matemática Discreta - Parte IV teoria dos-conjuntosMatemática Discreta - Parte IV teoria dos-conjuntos
Matemática Discreta - Parte IV teoria dos-conjuntosUlrich Schiel
 
Tipos de revisão bibliográfica
Tipos de revisão bibliográficaTipos de revisão bibliográfica
Tipos de revisão bibliográficaRicardo Alexandre
 
TCC: Introdução, Revisão da Literatura e Objetivos - Profa. Rilva Muñoz - UFPB
TCC: Introdução, Revisão da Literatura e Objetivos - Profa. Rilva Muñoz - UFPBTCC: Introdução, Revisão da Literatura e Objetivos - Profa. Rilva Muñoz - UFPB
TCC: Introdução, Revisão da Literatura e Objetivos - Profa. Rilva Muñoz - UFPBRilva Lopes de Sousa Muñoz
 

Destaque (11)

Matemática Discreta - Parte V relações
Matemática Discreta - Parte V relaçõesMatemática Discreta - Parte V relações
Matemática Discreta - Parte V relações
 
Matemática Discreta - Parte VI funções
Matemática Discreta - Parte VI funçõesMatemática Discreta - Parte VI funções
Matemática Discreta - Parte VI funções
 
Matemática Discreta - Parte VII estruturas algébricas
Matemática Discreta - Parte VII estruturas algébricasMatemática Discreta - Parte VII estruturas algébricas
Matemática Discreta - Parte VII estruturas algébricas
 
Matemática Discreta - Parte III definicoes indutivas
Matemática Discreta - Parte III definicoes indutivasMatemática Discreta - Parte III definicoes indutivas
Matemática Discreta - Parte III definicoes indutivas
 
Etapas de desenvolvimento_de_um_artigo
Etapas de desenvolvimento_de_um_artigoEtapas de desenvolvimento_de_um_artigo
Etapas de desenvolvimento_de_um_artigo
 
MODELOS DE DADOS - Parte 2 Sistemas de Informação
MODELOS DE DADOS - Parte 2 Sistemas de InformaçãoMODELOS DE DADOS - Parte 2 Sistemas de Informação
MODELOS DE DADOS - Parte 2 Sistemas de Informação
 
57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos
 
Revisão bibliográfica
Revisão bibliográficaRevisão bibliográfica
Revisão bibliográfica
 
Matemática Discreta - Parte IV teoria dos-conjuntos
Matemática Discreta - Parte IV teoria dos-conjuntosMatemática Discreta - Parte IV teoria dos-conjuntos
Matemática Discreta - Parte IV teoria dos-conjuntos
 
Tipos de revisão bibliográfica
Tipos de revisão bibliográficaTipos de revisão bibliográfica
Tipos de revisão bibliográfica
 
TCC: Introdução, Revisão da Literatura e Objetivos - Profa. Rilva Muñoz - UFPB
TCC: Introdução, Revisão da Literatura e Objetivos - Profa. Rilva Muñoz - UFPBTCC: Introdução, Revisão da Literatura e Objetivos - Profa. Rilva Muñoz - UFPB
TCC: Introdução, Revisão da Literatura e Objetivos - Profa. Rilva Muñoz - UFPB
 

Semelhante a Md7 banco dados

BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. RefBD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. RefRodrigo Kiyoshi Saito
 
Basesdedados aula copiada da internet
Basesdedados  aula copiada da internetBasesdedados  aula copiada da internet
Basesdedados aula copiada da internetVedi Pinto
 
Aulas de banco de dados
Aulas de banco de dadosAulas de banco de dados
Aulas de banco de dadosOseas_Lima
 
Álgebra Linear e SQL Banco de Dados.pdf
Álgebra Linear e  SQL Banco de Dados.pdfÁlgebra Linear e  SQL Banco de Dados.pdf
Álgebra Linear e SQL Banco de Dados.pdfgabriel-colman
 
Apostila bancodedados (2)
Apostila bancodedados (2)Apostila bancodedados (2)
Apostila bancodedados (2)Reuel Lopes
 
bd_aula02-IPMY.pdf
bd_aula02-IPMY.pdfbd_aula02-IPMY.pdf
bd_aula02-IPMY.pdfssuser69006f
 
FICHA4_Esquema Relacional _BD_Novo-1.pdf
FICHA4_Esquema Relacional _BD_Novo-1.pdfFICHA4_Esquema Relacional _BD_Novo-1.pdf
FICHA4_Esquema Relacional _BD_Novo-1.pdfhelton56
 
Introducao Base Dados Ii
Introducao Base Dados IiIntroducao Base Dados Ii
Introducao Base Dados Iiguest3118b2
 
Introducao Base Dados Ii
Introducao Base Dados IiIntroducao Base Dados Ii
Introducao Base Dados Iiguest3118b2
 
Curso de Delphi - Banco de Dados
Curso de Delphi - Banco de DadosCurso de Delphi - Banco de Dados
Curso de Delphi - Banco de DadosJosé Araújo
 
Base de dados tic 10º ano
Base de dados   tic 10º anoBase de dados   tic 10º ano
Base de dados tic 10º anoEste FC Juniores
 
Conceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosConceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosPatrícia Morais
 
Introdução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoIntrodução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoDaniel Brandão
 

Semelhante a Md7 banco dados (20)

BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. RefBD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
 
Basesdedados aula copiada da internet
Basesdedados  aula copiada da internetBasesdedados  aula copiada da internet
Basesdedados aula copiada da internet
 
Aulas de banco de dados
Aulas de banco de dadosAulas de banco de dados
Aulas de banco de dados
 
Modelo E-R
Modelo E-RModelo E-R
Modelo E-R
 
Álgebra Linear e SQL Banco de Dados.pdf
Álgebra Linear e  SQL Banco de Dados.pdfÁlgebra Linear e  SQL Banco de Dados.pdf
Álgebra Linear e SQL Banco de Dados.pdf
 
Cap3 (1).ppt
Cap3 (1).pptCap3 (1).ppt
Cap3 (1).ppt
 
Apostila bancodedados (2)
Apostila bancodedados (2)Apostila bancodedados (2)
Apostila bancodedados (2)
 
Bd aula2
Bd aula2Bd aula2
Bd aula2
 
Modelagem de dados
Modelagem de dados Modelagem de dados
Modelagem de dados
 
bd_aula02-IPMY.pdf
bd_aula02-IPMY.pdfbd_aula02-IPMY.pdf
bd_aula02-IPMY.pdf
 
Aula 01 Revisão
Aula 01   RevisãoAula 01   Revisão
Aula 01 Revisão
 
Slide da aula 04
Slide da aula 04Slide da aula 04
Slide da aula 04
 
FICHA4_Esquema Relacional _BD_Novo-1.pdf
FICHA4_Esquema Relacional _BD_Novo-1.pdfFICHA4_Esquema Relacional _BD_Novo-1.pdf
FICHA4_Esquema Relacional _BD_Novo-1.pdf
 
Introducao Base Dados Ii
Introducao Base Dados IiIntroducao Base Dados Ii
Introducao Base Dados Ii
 
Introducao Base Dados Ii
Introducao Base Dados IiIntroducao Base Dados Ii
Introducao Base Dados Ii
 
Curso de Delphi - Banco de Dados
Curso de Delphi - Banco de DadosCurso de Delphi - Banco de Dados
Curso de Delphi - Banco de Dados
 
Base de dados tic 10º ano
Base de dados   tic 10º anoBase de dados   tic 10º ano
Base de dados tic 10º ano
 
Bases De Dados
Bases De DadosBases De Dados
Bases De Dados
 
Conceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosConceitos essenciais de bases de dados
Conceitos essenciais de bases de dados
 
Introdução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoIntrodução ao Banco de dados - Prof. Daniel Brandã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
  • 2. Diagrama E-R: Associação dos Amigos dos Animais de Estimação (AAAE)
  • 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