Professional Documents
Culture Documents
3 4
1
Domínio
• Um domínio é um conjunto de valores
atômicos que têm uma interpretação
semântica única.
Estruturas de Dados Exemplo:
Cidade = {Belém, São Luis, Santa Catarina, Porto
Alegre, São Paulo}
• Os elementos de um domínio
compartilham a mesma semântica e
sintaxe.
5 6
Avião = {<10,B747,360>,
<12,AIRB320,280>, ...} Os elementos de uma relação são
chamados Tuplas.
7 8
2
Atributo Importância da noção de Domínio
• Um Domínio pode ser usado mais de uma vez em uma
relação. Por exemplo, os domínios Cidade e Horário na • As duas noções de domínio e atributo
relação Vôo:
são importantes pois dão ao modelo
Vôo VôoNum x Cidade x Cidade x Horário x Horário
• A noção de atributo é introduzida para levar toda relacional uma dimensão semântica
confusão dentro de uma relação: muito interessante.
Vôo VôoNum x Cidade-Embarque x Cidade-Destino x
Horário-Embarque x Horário-Destino
• Atributo complementa a noção de Domínio;
• Um atributo define o papel que um domínio tem dentro
de uma relação.
9 10
11 12
3
Domínio Primário Chave Estrangeira (ou Externa)
13 14
15 16
4
Relação Dinâmica Esquema relacional
• É uma relação R ligada semanticamente Um Esquema Relacional é um conjunto de
relações semanticamente ligadas. O conceito de
a uma outra relação R’ que tem como
relação permite a representação das entidades
chave estrangeira a chave primária de R. do mundo real. Por exemplo: Mercadoria,
• Exemplo: a relação Vôo é ligada às Fornecedor, Cliente, Piloto, Avião, etc.
O mesmo conceito (a relação) permite também a
relações Avião e Piloto.
representação das ligações semânticas inter-
Vôo VolNum x AvNum x PlNum x Cidade- entidades. Por exemplo, uma Encomenda
Embarque x Cidade-Chegada x Horário-Embarque x (estabelece uma ligação entre Cliente,
Fornecedor, e Mercadoria). Um vôo (estabelece
Horário-Chegada.
uma ligação entre Piloto e Avião), etc.
17 18
Exemplo
19 20
5
Estrutural Vs. Semântica Regras de Integridade
Integridade
• As regras de Integridade devem
assegurar a coerência do Banco de
Semântica Estrutural
Dados.
• Elas são de dois tipos:
– Semântica; e Domínio Entidade
– Estrutural. Referência
Inserção em Superação em
uma Chave uma Chave
Estrangeira Primária
21 22
23 24
6
Integridade de Domínio e de
Integridade de Referência
Entidade:
• A Integridade de Domínio é o controle • A Integridade Referencial indica o fato de que dentro da
base “em nenhum momento um valor de um atributo
semântico e sintático sobre os valores do chave estrangeira deve referenciar um valor não
domínio. existente (na chave primária da outra relação)”.
25 26
Integridade de Referência
Avião Av# TIPO CAP LOC
2 B747 280 Slz
5 A300 220 Sp Não pode deletar o
avião 6 (integ. de sup.
6 F100 110 Blm em uma CPrim)
Álgebra Relacional
? Voo Voo# Pl# Av# CE CC HE HC
VG288 10 2 Blm Slz 1540 1640
TB102 15 6 Bzl Blm 1100 1300
Não pode inserir o vôo NE441 13 2 Ftz Slz 0900 1000
TM204 (integ. de ins.
em uma CEst TM204 14 8 SP Bzl 0600 1030
27 28
7
Álgebra Relacional Álgebra Relacional
• A grande maioria das aplicações que • Linguagens de consulta formal são linguagens em
desenvolvemos utilizam um banco de dados que o usuário solicita informações à base de dados.
relacional, o que implica na utilização de Geralmente formam uma linguagem de mais alto
nível que as linguagens de programação.
consultas para obtenção de resultados.
• A Álgebra Relacional é uma linguagem de consulta
• Para isso, usamos a linguagem SQL que é a formal, porém procedimental, ou seja, o usuário dá
linguagem de pesquisa declarativa padrão as instruções ao sistema para que o mesmo realize
para banco de dados relacional. uma sequência de operações na base de dados para
calcular o resultado desejado.
29 30
31 32
8
Seleção (σ) Seleção (σ)
• Seleciona tuplas que satisfazem um certo • A seleção pode ser entendida como uma
predicado ou condição. operação que filtra as tuplas de uma relação
• Representação: σ (letra grega sigma) • É uma operação unária, pois opera sobre um
único conjunto de dados.
• É uma operação que produz um
• Notação: σ predicado (relação)
subconjunto estruturalmente idêntico,
• Exemplo: Selecionar tuplas de Alunos cujo
mas apenas com os elementos do nome = Macoratti id nome sexo
conjunto original que atendem a uma – Relação Alunos 123 Macoratti M
determinada condição (chamada de 234 Miriam F
456 Jefferson M
predicado). 33 567 Janice F 34
35 36
9
Projeção (π) Projeção (π)
• Gera novas relações excluindo alguns • Pode ser entendida como uma operação que
atributos filtra as colunas de uma relação.
• Representação: π (letra grega pi) • Por operar sobre apenas um conjunto de
• Produz um conjunto onde há um elemento entrada e, por isso, é classificada como uma
para cada elemento do conjunto de entrada, operação unária.
sendo que a estrutura dos membros do • Notação: π lista_nome_atributos (relação)
conjunto resultante é definida nos • Exemplo: π nome (Alunos) nome
argumentos da operação. – Resultado Macoratti
Miriam
Jefferson
37 Janice 38
10
Produto Cartesiano (X) Produto Cartesiano (X)
• Retorna todas as combinações de tuplas de • Essa relação resultante possuirá um número
duas relações de colunas que é igual à soma das
• O resultado do produto cartesiano de duas quantidades de colunas das duas relações
relações é uma terceira relação contendo iniciais
todas as combinações possíveis entre os • O número de linhas igual ao produto do
elementos das relações originais. número das linhas das duas relações.
• Imagine o produto cartesiano de R1 que
possui 5 colunas e 10 linhas com R2 onde
existem 3 colunas e 8 linhas
41 42
11
Produto Cartesiano (X) Produto Cartesiano (X)
• R π Alunos.nome, sexo, Cursos.nome (σ • Primeiro foi feito o produto cartesiano (Alunos
Alunos.curso = Cursos.id (Alunos x Cursos) ) x Cursos) que resulta em uma relação com 6
• Resultado colunas e 16 linhas:
id nome sexo curso id nome
nome sexo nome 123 Macoratti M 100 100 Quimica
123 Macoratti M 100 110 Inglês
Macoratti M Quimica
123 Macoratti M 100 120 Matematica
Miriam F Inglês 123 Macoratti M 100 130 Fisica
Jefferson M Matemática 234 Miriam F 110 100 Quimica
234 Miriam F 110 110 Inglês
Janice F Quimica
234 Miriam F 110 120 Matematica
234 Miriam F 1100 130 Fisica
... ... ... ... ... ...
45 46
12
União(U) União(U)
• A Relação resultante possui a mesma • Alunos Professores Funcionários
id nome idade curso id nome idade setor id nome setor idade
quantidade de colunas que as relações 10 Macoratti 45 Quimica 100 Pedro 50 Quimica 10 Margarida Quimica 46
originais 20
30
Miriam 43
Bianca 21
Artes
Fisica
200
300
Maria 45
Bianca 21
Fisica
Artes
20 Jamil Fisica 32
13
Diferença (–) Diferença (–)
• Alunos Professores • Exemplo: Apresente uma relação de
id nome idade curso id nome idade setor
10 Macoratti 45 Quimica 100 Pedro 50 Quimica todos os alunos que não são professores
20 Miriam 43 Artes 200 Maria 45 Fisica
30 Bianca 21 Fisica 300 Bianca 21 Artes – Resultado : R Aluno – Professor
• Domínio: id nome idade curso
– id = inteiro 10 Macoratti 45 Quimica
20 Miriam 43 Artes
– nome = alfanumérico(30)
– idade = inteiro • Note que a DIFERENÇA não comutativa
– curso = alfanumérico(30) – Resultado : R Professor - Aluno
– setor = alfanumérico(30)
id nome idade setor
100 Pedro 50 Quimica
200 Maria 45 Artes
53 54
Intersecção(∩) Intersecção(∩)
• Retorna as tuplas comuns a R1 e R2 • Alunos Professores
id nome idade curso id nome idade setor
• Esta é uma operação adicional que produz 10 Macoratti 45 Quimica 100 Pedro 50 Quimica
20 Miriam 43 Artes 200 Maria 45 Fisica
como resultado uma relação que contém, sem 30 Bianca 21 Fisica 300 Bianca 21 Artes
repetições, todos os elementos que são • Domínio:
comuns às duas relações fornecidas como – id = inteiro
– nome = alfanumérico(30)
operandos.
– idade = inteiro
• As relações devem ser união-compatíveis. – curso = alfanumérico(30)
• Notação : relação1 ∩ relação2 (R1 ∩ R2) – setor = alfanumérico(30)
55 56
14
Intersecção(∩) Junção Natural (|x|)
• Exemplo: Apresente uma relação de • Retorna a combinação de tuplas de duas
todos os alunos que são professores relações R1 e R2 que satisfazem um
– Resultado : R Aluno ∩ Professor predicado;
id nome idade curso • O resultado da operação junção natural é uma
30 Bianca 21 Fisica
relação com todas as combinações das tuplas
• Existem operadores de álgebra que são
na relação1 (R1) e relação2 (R2) nas quais os
deriváveis de outros.
seus atributos em comum são iguais.
• A operação de intersecção é derivável de
união e diferença: A ∩ B = A – (A - B)
• A operação de intersecção é comutativa
– R1 ∩ R2 = R2 ∩ R1 57 58
15
Junção Natural (|x|) Renomeação (ρ)
• A junção natural pode ser vista como uma • Altera o nome de uma relação e/ou dos seus
combinação de uma operação de seleção atributos
aplicada sobre uma operação de produto • Esta operação unária primitiva que redefine o
cartesiano: nome de uma relação em um contexto.
• σ <critério> (<relação1> X <relação2) • É útil para auto-relacionamentos, onde
precisamos fazer a junção de uma relação com
ela mesma.
• Cada versão da relação precisa receber um
nome diferente da outra.
61 62
16
Divisão (÷) Álgebra Relacional
• Exemplo: Descobrir quais funcionários
trabalham em todos os projetos
– Projetos Equipes Funcionários
ID_EMP COD_PROJ
COD_PROJ DESCRICAO ID_EMP NOME CARGO
17206-2 001
001 Sistema IRPF 17206-2 Jorge Analista
12584-7 002
002 Sistema RH 12584-7 Paula Programadora
16764-6 001
003 Sistema Banco 16764-6 Frederico DBA
17206-2 002
15698-3 Heloisa Web Master
15698-3 003
17206-2 003
– R (π COD_PROJ (PROJETOS)) ÷ (π ID_EMP,
COD_PROJ (EQUIPE))
ID_EMP
– Resultado 17206-2 65 66
Conclusão
• Vantagens do Modelo Relacional:
– Visão simples dos dados sem nenhuma
referência à maneira como eles são armazenados.
– Segurança dos dados.
– Linguagem de consulta poderosa e quase natural.
– Simplicidade de concepção devida à
simplicidade dos conceitos.
– Rapidez de desenvolvimento.
67
17