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

Md7 banco dados

Embed Size (px)

Citation preview

Page 1: Md7 banco dados

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

Page 2: Md7 banco dados

Diagrama E-R:

Associação dos Amigos dos Animais de Estimação (AAAE)

Page 3: Md7 banco dados

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.

Page 4: Md7 banco dados

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

Page 5: Md7 banco dados

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

Page 6: Md7 banco dados

Relações Pessoa e Animal

Page 7: Md7 banco dados

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

Page 8: Md7 banco dados

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.

Page 9: Md7 banco dados

• A primeira tupla estabelece que

Roberto da Silva é o proprietário de Pintado

Page 10: Md7 banco dados

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.

Page 11: Md7 banco dados
Page 12: Md7 banco dados

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

Page 13: Md7 banco dados

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”]

Page 14: Md7 banco dados

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]

Page 15: Md7 banco dados

• Exemplo:Junção de Pessoa e Animal_Proprietário baseada em Nomefornecendo Listagem

• Notação: Pessoa.P [P.Nome=A.Nome] Animal_Proprietário.A

Page 16: Md7 banco dados

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.CAAE2fornecendo 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

Page 17: Md7 banco dados

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”

Page 18: Md7 banco dados
Page 19: Md7 banco dados
Page 20: Md7 banco dados

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]

Page 21: Md7 banco dados

Á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

Page 22: Md7 banco dados

Á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)

Page 23: Md7 banco dados

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

Page 24: Md7 banco dados

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

Page 25: Md7 banco dados

Manipulação do BD

• Exemplos de operações que modificam o BD (SQL)

INSERT INTO Animal_ProprietárioVALUE (“Souza, Katia “, “Lex”, “Cachorro”, “Pastor”)

UPDATE Animal_Proprietário SET Nome = “Silva, Maria da” WHERE Nome-do-animal = Pintado

DELETE Animal_Proprietário PessoaWHERE Nome = “Lad”

Page 26: Md7 banco dados

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)

Page 27: Md7 banco dados

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

Page 28: Md7 banco dados

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

Page 29: Md7 banco dados

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