Buscar

Slides do Modelo Relacional

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
Modelo Relacional
Álgebra Relacional
Danielle Filgueiras
*
*
*
*
Modelo Relacional
*
*
*
*
Modelo Relacional
Baseia-se na teoria dos conjuntos
Os elos são implícitos
O usuário vê o banco de dados como um conjunto de tabelas
Mat
Nome
Dep
100 Ana Ven
200 Edu Pro
300 Ari Adm
400 Eva |Mar
Funcionários
Nome da tabela
Atributos
Tuplas
Valor de atributo
Domínios
*
*
*
*
Modelo Relacional (cont.)
Esquema da relação (tabela): funcionários (mat, nom, dep)
Relação - subconjunto do produto cartesiano dos domínios R  D1 x D2 x ... X Dn
100
200
300
400
Ana
Edu
Eva
Ari
Adm
Mar
Pro
Ven
Nomes
Matrículas
Departamentos
*
*
*
*
Modelo Relacional (cont.)
Uma relação pode ser representada sob forma de tabela, onde
cada coluna representa um atributo
cada linha representa uma ocorrência de:
uma entidade
um relacionamento
Linha (tupla) é um conjunto de atributos
*
*
*
*
Modelo Relacional (cont.)
Um relação pode ser representada sob forma de tabela onde: ...
Domínio - conjunto de valores do atributo
Cardinalidade de uma relação - número de atributos da tupla da relação
Chave primária - um ou mais atributos que identificam uma única linha
Ex: aluna (mat, nom, dt_nasc, sexo)
*
*
*
Álgebra Relacional
*
*
*
Álgebra Relacional (cont.)
Linguagem procedimental
Pequeno conjunto de operadores que nos permitem manipular relações de forma limitada, porém útil e fácil de implementar
*
*
*
Álgebra Relacional (cont.)
Operadores clássicos de conjuntos (união, interseção e diferença)
Para que o resultado do uso destes operadores com relações seja também uma relação, deve haver a restrição de que todos os operandos envolvidos numa expressão seja definidos sobre o mesmo conjunto de atributos (ou seja, tenham o mesmo esquema)
*
*
*
Álgebra Relacional (cont.)
Operadores específicos da Álgebra Relacional
Seleção: pega certas tuplas de uma relação
Projeção: pega certas colunas
Produto Cartesiano e Junções: compor relações de maneira proveitosa
Renomear relações e seus atributos
*
*
*
Operadores Clássicos (cont.)
R  S é a relação formada com as tuplas que estão em R ou S ou ambas.
R  S é a relação formada com as tuplas que estão em ambas.
R - S é a relação formada com as tuplas que estão em R e não estão em S.
*
*
*
Seleção - Exemplo
*
*
*
Seleção
R1 = c(R2), onde C é uma condição envolvendo os atributos da relação R2
Bar Cerveja Preço
Marius Bud 2,50
MenuMarius = Bar = `Marius`(Venda)
Marius Miller 2,75
*
*
*
Projeção - Exemplo
Vendedor Código Quantidade
João 21 80
Venda
Silva 54 50
Robinson 54 50
Silva 21 100
 código, quantidade (Venda)
Código Quantidade
21 80
21 100
54 50
 54 50
*
*
*
Projeção
R1 = L(R2), onde L é uma lista de atributos do esquema de R2
Cerveja Preço
Bud 2,50
 cerveja,preço(Venda)
Miller 2,75
*
*
*
Junção Natural
Sejam
as relações r1(Y) e r2(Z), tais que Y  Z = X
A junção natural de r1 com r2, R1 R2 é uma relação sobre Y X Z consistindo de todas as tuplas (em Y X Z) resultantes da concatenação de tuplas em r1 com tuplas em r2 que tiverem o mesmo valor para os atributos X
R1 R2 = {t sobre Y X Z existe t1 r1, t2  r2 tais que t[XY] = t1[XY] e t2[XZ]}
Composição vertical
*
*
*
Junção Natural
As tuplas das relações r1 e r2
Quando participam da junção
T1[X] = T2[X]
Quando não participam da junção
Tuplas perdidas
Junção completa: não existem tuplas perdidas
Se X for o conjunto vazio (r1 e r2 não têm atributos em comum)
R1 R2 forma o produto cartesiano, R1 x R2
Todas t1  r1, t2  r2 irão participar da junção
R1 x R2 contém uma tupla para cada par de tuplas t1 e t2
*
*
*
Junção 
Sejam
As relações r1(X) e r2(Y)
A junção  de r1 com r2, r1 c r2, é uma relação sobre XY consistindo de todas as combinações de tuplas t1 de r1 e t2 de r2 para as quais a condição C é verificada
R1 c R2 = c (R1 x R2)
Se a condição da junção  for, colunas iguais com elementos iguais, ela ficará igual à junção natural.
*
*
*
Produto
R = R1 x R2
Une cada tupla t1 de R1 com cada tupla t2 de R2 e põe a tupla t1t2 em R
R = R1 c R2
É equivalente a R = c (R1 x R2)
Junção 
*
*
*
Exemplo
*
*
*
Junção Natural
R = R1 c R2
É a junção de R1 e R2 com a condição de que todos os atributos com o mesmo nome tenham valores iguais. Então, uma coluna é suprimida para cada par de atributos iguais
Exemplo: Suponha que o atributos Nome da relação bares foi mudado para Bar, para casar com o nome do bar na relação venda (basta tirar a coluna nome)
INFOBAR = VENDA BAR
*
*
*
Renomeação
Operador unário que muda o nome dos atributos da relação, sem modificar seu conteúdo
Sejam
Relação r definida nos atributos X
Função f definida em X (atribuindo um novo nome para cada atributo)
*
*
*
Renomeação
Resolve a rigidez dos operadores que se baseiam fortemente nos nomes de atributos
Após uma renomeação adequada
União, interseção e diferença podem ser aplicadas a qualquer par de relações do mesmo grau
Junções naturais podem ser feitas baseadas em qualquer subconjuntos de atributos de duas relações
União interseção e diferença devem ter o mesmo esquema, mas não tendo o mesmo número de atributos, basta renomear os atributos diferentes
*
*
*
Renomeação
S = A1,A2,...An (R)
Produz uma relação idêntica a R porém com nomes S e com os atributos respectivos renomeados para A1, A2, ...,An
Bares
R = Bar,Endereço (Bares)
*
*
*
Exemplo
Esquema de Banco de Dados representando uma dinastia de realeza
Reinados (Soberano, De, Até)
Pessoas (Nome, Sexo, Nascimento, Morte)
Paternidade (Pai, Filho)
Maternidade (Mãe, Filho)
*
*
*
Junção Natural: Exemplo
Vendedor	Código		Qtd
Venda
Código	Autor	Título		Preço	Vendedor	Qtd
21	tolstoy	guerra e paz	27	joão		50
54	greene	o 3º homem	15	silva		50
54	greene	o 3º homem	15	robinson	50
21	tolstoy	guerra e paz	27	silva		100
Livro Venda
*
*
*
Nome	Sexo Nascimento Morte
James I	 M	1566	1625
Elizabeth F	1509	1662
Charles I M	1600	1649
CharlesII M	1630	1685
Mary	F	1631	1659
James II	M	1633	1701
Henry	M	1640	1670
Mary II	F	1662	1694
Anne	F	1665	1714
James FEM	1686	1766
Pessoas
Reinados
Soberano	De	Até
James I		1603	1625
Charles I	1625	1648
Charles II	1660	1685
James II		1685	1688
Mary II		1688	1694
Anne		1702	1714
Mãe		Filho
Mary Stuart	 James I
Anne of Denmark Elizabeth
Anne of Denmark Charles I
Henry Marie	 Charles II
Henry Marie	 Mary
Henry Marie 	 James II
Henry Marie	 Henry
Anne Hyde	 Mary II
Anne Hyde	 Anne
Mary of Modena	James FE
Maternidade
Paternidade
Pai		Fiho
Lord Darnley	James I
James I		Elizabeth
James I		Charles I
Charles I	Charles II
Charles I	Mary
Charles I	James II
Charles I	Henry
James II		Mary II
James II		Anne
James II		James FE
Banco de Dados da 
Dinastia Stuart
*
*
*
Exemplos
União das relações paternidade e maternidade
 pais,filhos (Paternidade)   pais,filhos (Maternidade) 
Quais são os pais de cada soberano ?
Reinados  pais,soberano (Paternidade)  mãe,soberano (Maternidade) 
Quais os membros da família que estavam vivos quando um soberano assumiu o trono ?
Reinados (Nascimento<De)  (Morte >De) Pessoas
*
*
*
Exemplo
Quais os filhos dos soberanos da família ?
 soberano,filho(Reinados
( soberano,filho(Paternidade)  soberano,filho(Maternidade)) )
Quais as informações sobre os soberanos que foram destronados ou abdicaram ?
 nome,até,morte(morte>ate(nome,de,ate(Reinados) (Pessoas) ))
*
*
*
Combinando Operadores
Álgebra são 
Argumentos básicos
Maneiras de construir expressões
Para a Álgebra Relacional
Argumentos = variáveis cujos valores são relações + expressões construídas aplicando-se os operadores + parênteses
Consulta(query) = expressão da álgebra relacional
*
*
*
Precedência de operadores
A maneira normal para agrupar operadores é:
Operadores unários(,,) têm a maior precedência
Depois vêm os operadores multiplicativos ( , c, x)
Por último vêm os operadores aditivos (,,-)
Como não existe consenso, sempre colocamos parênteses envolvendo o argumento do operador unário, e é recomendável agrupar os operadores binários com parênteses envolvendo os seus argumentos.
Exemplo:
R   S T é interpretado como R  ( (S) T)
*
*
*
Exemplo: Árvore de Expressão
Ache os bares que vendem Bud por menos de $3 na Av. Dom Luis
Venda(Bar,Cerveja,Preço)
Bares(Nome, Endereço)
Bares				Venda
 Endereço = ‘Av. Dom Luis’	  Preço<$3 ^ Cerveja = ‘Bud’
Nome				 Bar
Nome

*
*
*
Exemplo: Árvore de Expressão
Ache os bares que vendem cervejas diferentes pelo mesmo preço
Venda(Bar,Cerveja,Preço)
Venda				Venda
 Bar,cerveja,preço	
cerveja  cerveja
Bar
*
*
*
Notação Linear para expressões
Invente novos nomes para as relações intermediárias. Atribua a elas valores resultados de expressões algébricas
A renomeação dos atributos fica implícita no esquema da nova relação
Exemplo:
Ache os bares que vendem Bud por menos de $3 na Av. Dom Luis
Venda(Bar,Cerveja,Preço)
Bares(Nome, Endereço)
*
*
*
Resultado
R1(Bar) := Nome(Endereço = ‘Av. Dom Luis’(Bares))
R2(Bar) := Bar(cerveja = ‘Bud’ ^ preço < 3(Venda))
R3(Bar) := R1  R2
*
*
*
Exemplo
Ache os bares que vendem cervejas diferentes pelo mesmo preço
Venda (Bar,Cerveja,Preço)
S1 := (Bar,Cerveja1,Preço) Venda
S2 := S1 Bares
S3(Bar) := Bar(cerveja  cerveja(S2))
*
*
*
*
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando