bases de dados i

Propaganda
BASES DE DADOS I
LTSI/2
Universidade da Beira Interior, Departamento de Informática
Hugo Pedro Proença, 2010/2011
Sistema Gestor de Bases de Dados
 
Requisitos Fundamentais de um SGBD:
  Segurança.
  É
um dos requisitos básicos exigidos a um SGBD. Consiste
basicamente em proteger os dados armazenados dos
acessos não autorizados e garantir que todas as
operações executadas sobre a base de dados o são por
utilizadores (aplicações) devidamente credenciados.
Sistema Gestor de Bases de Dados
 
Requisitos Fundamentais de um SGBD:
 
Integridade.
  Por
definição, uma base de dados está num estado de
integridade se todos os dados que contém são válidos, isto é,
não contradizem a realidade que estão a representar nem se
contradizem entre si.
  Todas as operações que envolvam alteração da informação
contida numa base de dados implicam evoluções no seu estado
de integridade. O SGBD possui regras que garantem a
integridade após cada processo de alteração de informação
(restrições de integridade).
Sistema Gestor de Bases de Dados
 
Requisitos Fundamentais de um SGBD:
  Controlo
  Já
da Concorrência
atrás foi referido que uma das vantagens importantes
de um modelo de base de dados é a possibilidade de
execução paralela. Cabe ao SGBD a definição de
políticas de escalonamento por forma a garantir que
cada utilizador (aplicação-cliente) interage com a base
de dados como se fosse o único. O mecanismo de
transacção é a unidade base que garante a concorrência.
Sistema Gestor de Bases de Dados
 
Requisitos Fundamentais de um SGBD:
 
Tolerância a Falhas
  Devido à potencial importância dos dados armazenados numa base de
dados, é essencial a implementação de mecanismos de tolerância a
falhas (hardware / software), que garantam a reposição da informação
para um estado anterior válido. Para tal são utilizados basicamente dois
mecanismos:
  Backups: Implementação de cópias de segurança com estados
válidos da base de dados
  Registos de actividade (Logging). Registo de todas as operações
efectuadas sobre a base de dados. Pode facilitar a identificação
de origens de problemas e evitar que se voltem a repetir
Transacções
 
O exemplo típico ilustrativo da necessidade de implementar
transacções é o da transferência de dinheiro entre duas entidades
“A” e “B”.
  Imagine-se que o cliente “A” efectuou uma compra de 1000
euros à empresa “B”, sendo necessário respectivamente debitar e
creditar este valor nas correspondentes contas.
 
 
 
Em primeiro lugar, é debitado o valor na conta de “A”, passando este a
apresentar saldo (X-1000).
Imagine-se agora a ocorrência de uma qualquer situação excepcional
que interrompe a aplicação que está a manipular a informação, e a
quantia não é creditada na conta de “B”.
Nesta situação, a informação da base de dados fica corrompida,
sem que haja uma forma imediata de percepção da falha.
Transacções
 
 
Este exemplo demonstra que existem situações em que é
necessário garantir que, de entre um conjunto de operações,
ou são executadas todas ou nenhuma delas o será,
permanecendo em qualquer dos casos a base de dados num
estado consistente.
Uma Transacção é, então, um conjunto de operações
efectuadas sobre a base de dados, perfeitamente delimitado
em que garantidamente são executadas todas as instruções
ou então nenhuma o será.
Begin Transaction
Operação 1
Operação 2
...
Operação n
End Transaction
Transacções
 
 
Por definição, uma transacção deve exibir algumas características
fundamentais (Propriedades ACID):
Atomicidade (Atomicity)
 
O conjunto de instruções que compõem a transacção é indivisível, no
sentido em que todas elas são executadas, ou então nenhuma o será.
Sempre que todas sejam executadas sem nenhuma situação excepcional
diz-se que foi executado o COMMIT da transacção.
 
Na ocorrência de alguma situação excepcional que impossibilite a sua
completa execução, deve ser anulado o efeito de todas as instruções
que compõem a transacção e que ainda foram executadas (ROLLBACK).
Transacções
 
Integridade (Consistency)
  Uma
transacção deve, após a sua completa execução,
deixar a base de dados num estado consistente.
  Pode
acontecer que, entre a execução de alguma das
operações que a compõem, a consistência não se verifique,
no entanto após a execução de todas as operações, ela tem
que ser verificada.
Transacções
 
Isolamento (Isolation)
  Apesar
de ser possível a execução paralela e simultânea
de diferentes transacções, o sistema deve dar a ilusão de
que cada uma delas é a única a executar, estando por isso
aparentemente isolada.
  Sempre
que existam várias transacções a aceder aos
mesmos dados, o sistema deve evitar que existam
interferências mútuas, e que o estado final da base de
dados seria o mesmo após a eventual execução em série.
Transacções
 
 
 
 
Persistência (Durability)
Deve ser assegurado que após a execução bem sucedida
de uma transacção (COMMIT), os efeitos dela resultantes se
tornam persistentes (não voláteis) na base de dados.
Qualquer transacção futura deve operar sobre o novo
conjunto de dados, bem como qualquer eventual falha não
deve anular as alterações entretanto produzidas.
Desta forma os efeitos de cada transacção podem apenas
ser desfeitos ou alterados por outras transacções.
Linguagens da Bases de Dados
 
 
Nas linguagens de programação mais comuns, as instruções de declaração
e execução fazem parte de um só conjunto, isto é, estão englobadas pela
mesma linguagem.
Em modelos de bases de dados a interacção com o nível aplicacional fazse através de linguagens específicas:
 
Data Definition Language
  Utilizada para definir a estrutura da base de dados e da
informação que deve armazenar. Uma vez que não possui instruções
de execução (não pode ser utilizada para obter ou alterar os dados
em si), pode ser entendida como uma notação utilizada para
descrever a estrutura da informação.
Linguagens da Bases de Dados
 
Data Manipulation Language (DML)
 
É a linguagem disponibilizada ao nível aplicacional para obter,
armazenar, alterar ou eliminar informação da base de dados. As
instruções pertencentes a esta linguagem podem ser executadas
interactivamente por um utilizador a partir do terminal, ou estar
embebidas em linguagens hospedeiras (C, Pascal, Visual Basic,
Fortran, ...).
 
Como se verá à frente, a linguagem focada neste curso (Structured
Query Language - SQL) possui sub-conjuntos de instruções de definição
(SQL-DDL) e de manipulação (SQL-DML) de informação.
Modelos de Dados
 
 
Pode-se definir um Modelo de Dados como sendo um conjunto de
instrumentos conceptuais para descrever os dados, as suas relações,
semântica e restrições.
Um modelo de dados é, pelo menos, a colecção de 3 componentes:
 
Um conjunto de tipos de estruturas de dados.
 
 
Uma colecção de operadores.
 
 
Define o tipo de dados a armazenar, e os relacionamentos existentes.
Operam (manipulam) as estruturas de dados atrás mencionadas.
Um conjunto de regras de integridade.
 
Definem um conjunto de regras sobre a forma como os operadores devem
manipular as estruturas de dados, servindo como garantia da consistência da
base de dados.
Modelos de Dados
 
Os modelos focados neste curso (Modelos baseados em
registos), podem-se dividir em:
 
 
 
 
 
Modelos Hierárquicos
Modelos em Rede
Modelos Relacionais
Devido à relevância do modelo relacional (2ª geração), pode-se também
classificar os modelos “Hierárquico” e de “Rede” como modelos PréRelacionais, ou modelos de 1ª geração)
Existem actualmente em desenvolvimento paralelo diferentes modelos (de
3ª geração) com o objectivo de aumentar o nível de abstracção da
informação e permitir aos novos paradigmas da programação (objectos,
agentes,...)
Modelo Hierárquico
Tal como o próprio nome indica, os dados estão organizados
hierarquicamente, numa estrutura de árvore. Os dados são
representados por registos e as relações entre eles por ligações
(links) entre registos.
BD
Cliente 1
Encomenda 1
Encomenda 2
Cliente 2
Encomenda 3
Encomenda 4
Encomenda 5
O acesso aos dados não é directo, tendo que ser efectuada a
travessia da estrutura (árvore) até encontrar o registo pretendido.
Modelo Hierárquico
 
Não é possível registar informação acerca de elementos de níveis inferiores
enquanto não estiverem criados os respectivos níveis superiores.
 
 
 
No exemplo anterior, não se poderia registar informação acerca de uma encomenda, enquanto
não estivesse criado o registo correspondente ao cliente que a efectuou.
Sempre que um item se relacionar com múltiplos registos-pai, é necessário
duplicar a informação sobre ele, originando redundância de informação na
base de dados.
A manipulação da informação neste modelo é efectuada através das
operações:
 
 
 
 
Get First (Permite aceder ao primeiro registo de um dado segmento – conjunto de registos de
um determinado nível e com o mesmo registo-pai)
Get Next (permite aceder ao elemento seguinte de um determinado segmento)
Get Next Within ... (Permite aceder ao próximo segmento que verifica uma determinada
condição)
Get Parent (Permite obter o registo-pai de um determinado registo)
Modelo de Rede
O modelo de rede pode ser entendido como uma extensão ao modelo
hierárquico. Ao eliminar o conceito de hierarquia, permite-se que um registo
esteja relacionado com vários outros e evita-se a duplicação da informação. A
base de dados passa a ser entendida como um grafo.
Encomenda 1
Produto 1
Encomenda 2
Produto 2
Cliente 2
BD
Cliente 1
Produto 3
Encomenda 3
Produto 4
Modelo Relacional
 
 
Contrariamente aos modelos hierárquicos e de rede, o modelo relacional
não evoluiu a partir de técnicas de processamento de ficheiros. Foi
desenvolvido a partir de estudos teóricos, tendo por base a teoria dos
conjuntos.
Existem actualmente múltiplos fornecedores de SGBD´s relacionais, entre os
quais:
 
IBM Corporation (DB/2)
Microsoft (SQL Server, Access)
Informix (Informix Dynamic Server)
Oracle (Oracle Server)
Sybase (Sybase SQL Server)
 
...
 
 
 
 
Modelo Conceptual
 
 
 
Existe uma classe de modelos utilizados ao nível conceptual, para modelar
os itens presentes numa base de dados e a forma como o seu
relacionamento se vai efectuar, sendo o mais representativo o modelo
Entidade / Relacionamento.
Baseia-se na percepção de que o mundo real se pode classificar com base
em:
  Entidades: Objectos com características particulares diferentes de
quaisquer outros.
  Relações: Relacionamento entre diferentes tipos de objectos.
Notação:
Entidades
Relações
Modelo Entidade/Relacionamento
Exemplo:
n
Obtém
Nota
n
1
Aluno
Notações:
Entidades escritas no singular
Letra inicial das entidades maiúscula.
Verbo das relações ilustrativo.
Refere
1
Disciplina
Modelo Relacional
 
 
 
 
 
A estrutura fundamental do modelo relacional é a
“relação”.
Dada uma colecção de conjuntos D1, D2, ..., Dn, R é uma
relação naqueles conjuntos se for constituída por um
conjunto de n-uplos
ordenados <d1, d2, ..., dn> tais
que d1 Є D1, d2 Є D2, ..., dn Є Dn.
D1, D2, ..., Dn constituem o domínio da relação.
O número de tuplos <d1, d2, ..., dn> existente define a
cardinalidade da relação.
O número de elementos de cada tuplo determina o
grau da relação.
Modelo Relacional
 
 
 
 
Na prática uma relação é uma estrutura de dados
bidimensional (tabela), constituída por um conjunto de
instâncias (linhas, zero ou mais) e um conjunto de atributos
(colunas, um ou mais).
Cada instância (linha) de uma relação designa-se por tuplo.
O domínio da relação traduz-se pelo conjunto de valores
que cada um dos seus atributos pode tomar.
O número de tuplos (linhas) determina a sua cardinalidade
e o número de atributos (colunas) define o grau da relação.
Modelo Relacional
 
 
 
O termo “Relação” deriva do relacionamento existente entre linhas
e colunas, significando que diferentes propriedades da mesma
entidade são registadas na mesma linha.
A
B
C
a
b
c
d
e
f
Relacionamento
Horizontal
A relação acima ilustrada indica que existe alguma entidade que
tem para a propriedade “A” o valor “a”, para a propriedade “B” o
valor “b” e para a propriedade “C” o valor “c”.
Outra entidade similar irá possuir valores “e”, “f” e “g” para as
mesmas propriedades.
Modelo Relacional
 
Tendo uma relação R com atributos:
Codigo
 
Nome
Data_nascimento
1
Vitor Almeida
1-10-1956
2
Rita Duarte
2-11-1926
3
Catarina Pais
19-7-1927
4
Nuno Santos
11-11-1977
Podemos supor que (Inteiros (N), Cadeias de Caracteres,
Datas) constituem o domínio da relação “R”, por constituírem
respectivamente o domínio de cada um dos seus atributos.
Modelo Relacional
Atributos (Grau=3)
Codigo
Tuplo
Nome
Idade
1
Vitor Almeida
34
2
Rita Duarte
23
3
Catarina Pais
41
4
Nuno Santos
25
Cardinalidade = 4
Modelo Relacional
 
 
 
 
 
O valor de cada atributo num tuplo é obrigatoriamente atómico. Isto
significa que em cada par (linha, coluna) só pode existir um único
valor.
Os atributos de uma relação devem ter identificadores distintos. Na
prática significa que não podem existir duas colunas com nomes
identificadores iguais.
Os tuplos de uma relação devem ser distintos. Numa relação não
podem existir dois tuplos cujos respectivos atributos sejam
completamente iguais.
A ordem dos tuplos numa relação, bem como a ordem dos atributos
num tuplo não tem qualquer significado.
Todos os valores passíveis de preencher um atributo de um dado
tuplo têm obrigatoriamente que provir de um domínio. Nos casos em
que o valor não é conhecido pode exclusivamente ser atribuído o
valor null.
Modelo Relacional - Chaves
 
Um conceito fundamental no contexto do modelo relacional é o de “chave”.
Existem diferentes tipos de chaves:
 
 
Chave Candidata: Subconjunto dos atributos de uma relação que
podem ser utilizados como identificadores de uma instância. O
subconjunto não pode ser reduzido sem perder esta qualidade.
Nome
B.I.
Contribuinte
Nº Eleitor
Freguesia
José
1234567
45662536
1234
Covilhã
Rita
6272632
72761376
6666
Fundão
Joana
6182930
12765676
1234
Fundão
Exemplos: {BI}, {Contribuinte}, {Nº Eleitor, Freguesia}
Modelo Relacional - Chaves
Super-Chave: O conceito de super-chave é mais abrangente que o de “chave
candidata” definido anteriormente. Qualquer subconjunto de atributos de uma
relação que possa identificar univocamente qualquer instância da relação é
considerado uma super-chave.
Nome
B.I.
Contribuinte
Nº Eleitor
Freguesia
José
1234567
45662536
1234
Covilhã
Rita
6272632
72761376
6666
Fundão
Joana
6182930
12765676
1234
Fundão
Exemplos: {BI}, {BI, nome}, {Nº Eleitor, Freguesia}, {NºEleitor, BI}, {Nº Eleitor,
BI, Nome}, {Nome, BI, Nº Contribuinte, Nº Eleitor, Freguesia}
No limite, o conjunto de todos os atributos de uma relação será sempre uma
super-chave.
Modelo Relacional - Chaves
Chave Primária: Escolhida entre as possíveis chaves candidatas, identifica de
forma unívoca os tuplos de uma relação. Deve respeitar as seguintes
propriedades:
Unívoca: Os atributos da chave primária têm um valor único para qualquer
tuplo de uma relação.
Não redundante: Se algum dos atributos for retirado da chave, os
restantes atributos deixam de satisfazer a propriedade anterior.
Não nula. Nenhum dos atributos que a constituem pode assumir o valor
nulo.
Nome
B.I.
Contribuinte
Nº Eleitor
Freguesia
José
1234567
45662536
1234
Covilhã
Rita
6272632
72761376
6666
Fundão
Joana
6182930
12765676
1234
Fundão
Exemplos: {Nº Eleitor, Freguesia}
Modelo Relacional - Chaves
Chave estrangeira (externa): Subconjunto dos atributos de uma relação que
constituem a chave primária de uma outra relação. A sua existência denota um
relacionamento entre relações e constitui a base do modelo relacional.
Pessoa
CodigoPostal
Nome
B.I.
CodPostal
CodPostal
Cidade
José
1234567
6200
6200
Covilhã
Rita
6272632
6300
6300
Fundão
Joana
6182930
6200
7000
Leiria
Exemplo: {CodPostal} da relação “Pessoa” é uma chave externa, uma vez
que na relação “CodigoPostal” o mesmo atributo é uma chave primária.
Álgebra Relacional
 
A Álgebra Relacional define um conjunto de operações...
  ...baseadas na teoria de conjuntos
 
 
 
(união, intercessão, diferença e produto cartesiano)
(selecção, projecção, junção e divisão)
Qualquer operador atrás enunciado actua sobre conjuntos e
devolve como resultado conjuntos de tuplos.
Operador
Álgebra Relacional
Pode suceder que:
Operador
Mesmo nestas situações, o operador transformou o conjunto
inicial num outro conjunto com zero instâncias e zero atributos
(conjunto vazio)
Álgebra Relacional
Exemplo:
A
B
C
a
b
c
d
e
f
g
h
i
Operação:
Seleccionar instâncias
com atributo “A”
igual a “j”
Neste caso, a aplicação de um operador de selecção de
instâncias (que satisfaçam uma determinada propriedade)
transformou o conjunto inicial num conjunto com zero instâncias e
zero atributos.
Teoria de Conjuntos
 
É o estudo da associação entre objectos com uma mesma
propriedade, utilizando uma notação precisa e definindo
uma série de operações e propriedades desses objectos.
 
 
Conjunto é uma colecção ou classe de objectos, também
chamados de elementos ou membros.
A notação de pertença serve para indicar que um elemento
x pertence a um conjunto A e é denotado por: x ∈A
 
No estudo da teoria das bases de dados, pode-se estabelecer uma analogia
“Relação”  “Conjunto” e “Instância””Elemento”
Teoria de Conjuntos
 
 
 
Dois conjuntos são iguais se e só se possuem
exactamente os mesmos elementos.
Conjunto vazio é o conjunto que não possui nenhum
elemento e é denotado por Ø.
Os conjuntos podem ser finitos ou infinitos.
  Um
conjunto finito pode ser definido listando todos os seus
elementos separados por vírgulas.
  Um conjunto infinito pode ser definido por uma propriedade
que deve ser satisfeita por todos os seus membros.
Teoria de Conjuntos
 
 
 
 
A cardinalidade ou ordem de um conjunto indica o
número de elementos do conjunto e é denotada por #
Um conjunto não possui ordenação, portanto, os
seguintes conjuntos são iguais: {2,5,8}, {5,2,8}, {5,2,5,8}
Um conjunto unitário possui um único elemento.
Um conjunto A é dito estar contido em B (escreve-se ⊆ )
se, e somente se, todo elemento de A é elemento de B,
desta forma, A é subconjunto de B.
Teoria de Conjuntos
 
 
Um conjunto A é igual a um conjunto B (escreve-se
A=B) se, e somente se, A ⊆ B e B ⊆ A
Um conjunto A está contido propriamente no conjunto
B (escreve-se ⊂ ) se, e somente se, A ⊆ B e A ≠ B.
  Desta
forma A é subconjunto próprio de B e, caso
contrário, é subconjunto impróprio.
Teoria de Conjuntos
Operações básicas da teoria de conjuntos:
União
Intersecção
Diferença
Produto Cartesiano
Divisão
Junção Natural
Selecção
Projecção
Operações
Binárias
Operações
Unárias
Teoria de Conjuntos
 
Operações Fundamentais
  União
de Conjuntos
  Sejam
“R” e “S” conjuntos e “t” um tuplo de um conjunto. A
união entre “R” e “S”, denota-se por R ∪ S e pode ser
expressa por:
  R
∪ S = {t | t ∈ R ∨ t ∈ S}
Teoria de Conjuntos
 
Operações Fundamentais
  Intercessão
de Conjuntos
  Sejam
“R” e “S” conjuntos e “t” um tuplo de um conjunto. A
intercessão entre “R” e “S”, denota-se por R ∩ S e pode
ser expressa por:
  R
∩ S = {t | t ∈ R ∧ t ∈ S}
Teoria de Conjuntos
 
Operações Fundamentais
 Diferença
de Conjuntos
 Sejam
“R” e “S” conjuntos e “t” um tuplo de um
conjunto. A diferença entre “R” e “S”, denota-se
por R - S e pode ser expressa por:
 R
- S = {t | t ∈ R ∧ t ∉ S}
Teoria de Conjuntos
 
Operações Fundamentais
  Produto Cartesiano de Conjuntos
  Sejam
“R” e “S” conjuntos, “t” um tuplo de um conjunto e
Ai um atributo de um conjunto. O produto cartesiano entre
“R” e “S”, denota-se por R x S e pode ser expresso por:
  R
x S = {t | t[A1, ...,An] ∈ R ∧ t [An+1, ...,An+m] ∈
S}
Teoria de Conjuntos
 
Operações Fundamentais
 Selecção
de um Conjunto
 Seja
“R” um conjunto e “t” um tuplo de um
conjunto. A selecção de tuplos de “R” pode ser
dada por:
 
σθ (R) = { t | t ∈ R ∧ θ(t) }
Teoria de Conjuntos
 
Operações Fundamentais
  Projecção
de um Conjunto
  Seja
“R” um conjunto e “t” um tuplo de um conjunto. A
projecção do conjunto “R” pode ser dada por:
 
ΠΑ1,..., Ακ (R) = { t [A1, ...., Ak] | t ∈ R }
Teoria de Conjuntos
 
Operações Fundamentais
  Junção
de Conjuntos
  Sejam
“R” e “S” conjuntos e “t” um tuplo de um conjunto. A
junção de “R” e “S” pode ser dada por:
  R
θ
S = { t [R ∪ S] ∧ θ(t) } = σθ (R x S)
Teoria de Conjuntos
 
Operações Fundamentais
 Divisão
de Conjuntos
 Sejam
“R” e “S” conjuntos e “t”, “u” e “v” tuplos
de conjuntos. A divisão entre “R” e “S” pode ser
dada por:
R ÷ S = { t [R - S] | ∀ u ∈ S, ∃ v ∈ R | v[S] = u ∧ v [R - S] = t }
Álgebra Relacional
 
Esquema de uma Relação
  Dada
uma relação R, define-se o “Esquema” de R
através do número total de atributos e do domínio de
cada um em particular.
 
O esquema da relação ilustrada será:
 
3 atributos
 
Domínio do 1º Atributo Seq.ª de Caracteres
 
Domínio do 2º Atributo Inteiros
 
Domínio do 3º Atributo Inteiros
Nome
B.I.
CodPostal
José
1234567
6200
Rita
6272632
6300
Joana
6182930
6200
Álgebra Relacional
 
Compatibilidade de Esquemas
  Duas
relações “R” e “S” têm esquemas compatíveis se e
só se:
 
 
O número de atributos de “R” é igual ao número de atributos de “S”
Cada atributo de “R” tem domínio compatível com o respectivo atributo de
“S”.
Nome
B.I.
CodPostal
José
1234567
6200
Rita
6272632
6300
Joana
6182930
6200
OK
Morada
Codigo
CodFuncao
Rua da ...
11
12
Avenida...
717
18
Praça...
888
1218
Álgebra Relacional
Compatibilidade de Esquemas
Nome
B.I.
CodPostal
Nome
B.I.
José
1234567
6200
José
1234567
Rita
6272632
6300
Rita
6272632
Joana
6182930
6200
Joana
6182930
Morada
Codigo
CodFuncao
Rua da ...
11
12
Avenida...
717
18
Praça...
888
1218
X
OK
Morada
CodFuncao
Codigo
Rua da ...
12
11
Avenida...
18
717
Praça...
1218
888
Álgebra Relacional
• União:
R=A∪B
Esta operação exige que as duas relações iniciais tenham esquemas compatíveis (isto
é, além do mesmo grau, é necessário que tenham domínios compatíveis). O resultado
consiste numa relação contendo os tuplos pertencentes à primeira ou à segunda
relação ou a ambas.
A
B
C
a1
b1
c1
a2
b2
c2
a3
b3
c3
∪
A
B
C
a1
b1
c1
a4
b4
c4
=
A
B
C
a1
b1
c1
a2
b2
c2
a3
b3
C3
a4
b4
c4
Álgebra Relacional
 
Intersecção:
R=A∩B
 
Da mesma forma que a anterior, exige que as duas relações
iniciais tenham esquemas compatíveis (isto é, além do mesmo
grau, é necessário que tenham domínios compatíveis). A
relação final contém os tuplos comuns às duas relações iniciais.
A
B
C
a1
b1
c1
a2
b2
c2
a3
b3
c3
∩
A
B
C
a1
b1
c1
a4
b4
c4
=
A
B
C
a1
b1
c1
Álgebra Relacional
 
Diferença:
R=A-B
 
À semelhança das anteriores, também exige que as duas relações iniciais
tenham esquemas compatíveis (isto é, além do mesmo grau, é necessário
que tenham domínios compatíveis). A relação final contém os tuplos
pertencentes à primeira relação e não pertencentes à segunda.
A
B
C
a1
b1
c1
a2
b2
c2
a3
b3
c3
-
A
B
C
a1
b1
c1
a4
b4
c4
=
A
B
C
a3
b3
c3
a2
b2
c2
Álgebra Relacional
 
Produto Cartesiano:
R=AxB
 
Dadas quaisquer relações sem atributos comuns, o resultado do produto
cartesiano corresponde a todas as combinações possíveis dos tuplos da
primeira relação com os da segunda.
A
B
a1
b1
a2
b2
a3
b3
X
C
D
c1
d1
c4
d4
=
A
B
C
D
a1
b1
c1
d1
a2
b2
c1
d1
a3
b3
c1
d1
a1
b1
c4
d4
a2
b2
c4
d4
a3
b3
c4
d4
Álgebra Relacional
 
Selecção:
σ <condição> (Relação)
 
Operador unário, que toma uma relação inicial e origina uma
outra contendo os tuplos da relação inicial que satisfazem a
condição
descrita.
R
A
B
C
a1
b1
c1
a2
b2
c2
a3
b3
C3
a2
b4
c4
σ <A=a2> (R)
=
A
B
C
a2
b2
c2
a2
b4
c4
Álgebra Relacional
 
Projecção:
Π <lista_atributos> (Relação)
 
Tal como o anterior, é um operador unário, que toma uma relação inicial e
transforma-a em outra contendo apenas os atributos descritos em
“lista_atributos”
R
A
B
C
A
B
a1
b1
c1
a1
b1
a2
b2
c2
a2
b2
a3
b3
C3
a3
b3
a2
b4
c4
a2
b4
Π <A,B> (R)
=
Álgebra Relacional
 
Junção Natural:
R=A∞B
Esta operação combina tuplos provenientes de duas relações distintas com
base em atributos comuns. A relação final contém um tuplo por cada
combinação de tuplos das duas relações que contenham valores iguais nos
atributos comuns. É necessário existir pelo menos um atributo comum
(domínio) nas duas relações.
 
A
B
C
a1
b1
c1
a2
b2
c2
a3
b3
c3
a2
b4
c4
∞
C
D
A
B
C
D
c1
d1
a1
b1
c1
d1
c3
d3
a3
b3
c3
d3
=
Álgebra Relacional
 
Divisão:
R=A÷B
 
Dadas duas relações em que o conjunto dos atributos da relação-divisor está contido no
conjunto de atributos da relação dividendo, o resultado da divisão das relações consiste nos
atributos que não figuram na relação divisor. Os tuplos resultado serão os que na relação
“dividendo” satisfazem os valores da relação “divisor”.
A
B
C
D
a1
b1
c1
d1
a2
b2
c2
d2
a1
b1
c4
d4
a4
b4
c4
d4
a5
b5
c4
d4
a4
b4
c1
d1
÷
C
D
A
B
c1
d1
a1
b1
c4
d4
a4
b4
=
Álgebra Relacional
 
 
 
 
A partir da combinação dos operadores da álgebra relacional
descritos anteriormente pode-se formalizar toda a linguagem de
pesquisa de informação numa base de dados.
Exemplo:
A
B
C
a1
b1
c1
a2
b2
c2
a3
b3
C3
a2
b4
c4
Quais os atributos “A e B” dos tuplos da relação “R” em que o atributo
“C” é igual a “c1”?
Pode ser traduzido por:
Π<A,B>(σ<C=c1>(R))
Álgebra Relacional
 
Π<A,B>(σ<C=c1>(
Selecção
A
B
C
a1
b1
c1
A
B
C
a1
b1
c1
a2
b2
c2
a3
b3
c3
a2
b4
c4
Projecção
))
A
B
a1
b1
Poder-se-ia aplicar comutatividade ?
σ<C=c1>(Π<A,B> (R))
Álgebra Relacional
 
A
B
C
a1
b1
c1
a2
b2
c2
a3
b3
c3
a2
b4
c4
A partir de um conjunto de relações, é sempre possível a
aplicação sequencial de diferentes operadores por forma a
seleccionar a informação pretendida...
?
?
?
A
A
B
C
C
a1
a1
b1
c1
c1
a2
a2
b2
c2
Download