• Nenhum resultado encontrado

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

N/A
N/A
Protected

Academic year: 2021

Share "BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011"

Copied!
61
0
0

Texto

(1)

BASES DE DADOS I

LTSI/2

Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

(2)

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.

(3)

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

(4)

Sistema Gestor de Bases de Dados

 

Requisitos Fundamentais de um SGBD:

 

Controlo da Concorrência

 

Já 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

(5)

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

(6)

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,

(7)

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

(8)

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

(9)

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.

(10)

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.

(11)

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

(12)

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

faz-se 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

(13)

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

(14)

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.

  Define o tipo de dados a armazenar, e os relacionamentos existentes.

  Uma colecção de operadores.

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

(15)

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,...)

(16)

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.

O acesso aos dados não é directo, tendo que ser efectuada a

travessia da estrutura (árvore) até encontrar o registo pretendido.

Cliente 1 Cliente 2

Encomenda 1 Encomenda 2 Encomenda 3 Encomenda 4 Encomenda 5 BD

(17)

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)

(18)

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.

Cliente 1 Cliente 2 Encomenda 1 Encomenda 2 Encomenda 3 Produto 1 Produto 2 Produto 3 Produto 4 BD

(19)

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)   ...

(20)

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:

(21)

Modelo Entidade/Relacionamento

Exemplo:

Notações:

Entidades escritas no singular

Letra inicial das entidades maiúscula.

Verbo das relações ilustrativo.

Aluno Nota Disciplina Obtém Refere 1 n n 1

(22)

Modelo Relacional

 

A estrutura fundamental do modelo relacional é a

“relação”.

 

Dada uma colecção de conjuntos D

1

, D

2

, ..., D

n

, R é uma

relação naqueles conjuntos se for constituída por um

conjunto de n-uplos

ordenados <d

1

, d

2

, ..., d

n

> tais

que d

1

Є D

1

, d

2

Є D

2

, ..., d

n

Є D

n.

 

D

1

, D

2

, ..., D

n

constituem o domínio da relação.

 

O número de tuplos <d

1

, d

2

, ..., d

n

> existente define a

cardinalidade da relação.

 

O número de elementos de cada tuplo determina o

(23)

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

(24)

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

A B C a b c d e f Relacionamento Horizontal

(25)

Modelo Relacional

 

Tendo uma relação R com atributos:

 

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.

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

(26)

Modelo Relacional

Codigo

Nome

Idade

1 Vitor Almeida 34 2 Rita Duarte 23 3 Catarina Pais 41 4 Nuno Santos 25 Atributos (Grau=3) Cardinalidade = 4 Tuplo

(27)

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.

(28)

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.

  Exemplos: {BI}, {Contribuinte}, {Nº Eleitor, Freguesia}

Nome B.I. Contribuinte Nº Eleitor Freguesia

José 1234567 45662536 1234 Covilhã Rita 6272632 72761376 6666 Fundão Joana 6182930 12765676 1234 Fundão

(29)

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.

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.

Nome B.I. Contribuinte Nº Eleitor Freguesia

José 1234567 45662536 1234 Covilhã Rita 6272632 72761376 6666 Fundão Joana 6182930 12765676 1234 Fundão

(30)

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.

Exemplos: {Nº Eleitor, Freguesia}

Nome B.I. Contribuinte Nº Eleitor Freguesia

José 1234567 45662536 1234 Covilhã Rita 6272632 72761376 6666 Fundão Joana 6182930 12765676 1234 Fundão

(31)

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

Exemplo: {CodPostal} da relação “Pessoa” é uma chave externa, uma vez que na relação “CodigoPostal” o mesmo atributo é uma chave primária.

Nome B.I. CodPostal

José 1234567 6200 Rita 6272632 6300 Joana 6182930 6200 CodPostal Cidade 6200 Covilhã 6300 Fundão 7000 Leiria

(32)

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

(33)

Álgebra Relacional

Pode suceder que:

Mesmo nestas situações, o operador transformou o conjunto

inicial num outro conjunto com zero instâncias e zero atributos

(conjunto vazio)

(34)

Álgebra Relacional

Exemplo:

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.

Operação:

Seleccionar instâncias com atributo “A”

igual a “j”

A B C

a b c

d e f

(35)

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

(36)

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.

(37)

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.

(38)

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

(39)

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

(40)

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:

(41)

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:

(42)

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:

(43)

Teoria de Conjuntos

 

Operações Fundamentais

 

Produto Cartesiano de Conjuntos

 

Sejam “R” e “S” conjuntos, “t” um tuplo de um conjunto e

A

i

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

(44)

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:

(45)

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 }

(46)

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:

(47)

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:

(48)

Á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

(49)

Á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

Morada Codigo CodFuncao

Rua da ... 11 12 Avenida... 717 18 Praça... 888 1218

(50)

Álgebra Relacional

Compatibilidade de Esquemas

Nome B.I. CodPostal

José 1234567 6200 Rita 6272632 6300 Joana 6182930 6200

Morada CodFuncao Codigo

Rua da ... 12 11 Avenida... 18 717 Praça... 1218 888

OK

Morada Codigo CodFuncao

Rua da ... 11 12 Avenida... 717 18 Praça... 888 1218 Nome B.I. José 1234567 Rita 6272632 Joana 6182930

X

(51)

Á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

(52)

Á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

(53)

Á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

(54)

Álgebra Relacional

 

Produto Cartesiano:

R = A x B

  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

(55)

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

=

A B C a1 b1 c1 a2 b2 c2 a3 b3 C3 a2 b4 c4 R

σ

<A=a2>

(R)

A B C a2 b2 c2 a2 b4 c4

(56)

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

=

A B C a1 b1 c1 a2 b2 c2 a3 b3 C3 a2 b4 c4 R

Π

<A,B>

(R)

A B a1 b1 a2 b2 a3 b3 a2 b4

(57)

Á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 c1 d1 c3 d3 A B C D a1 b1 c1 d1 a3 b3 c3 d3

(58)

Á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 a1 b1 a4 b4

÷

cC 1 dD 1 c4 d4

=

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

(59)

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

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

A B C

a1 b1 c1 a2 b2 c2 a3 b3 C3 a2 b4 c4

(60)

Álgebra Relacional

 

Π

<A,B>

<C=c1>

( ))

Poder-se-ia aplicar comutatividade ?

σ

<C=c1>

<A,B>

(R))

A B C a1 b1 c1 a2 b2 c2 a3 b3 c3 a2 b4 c4 A B C a1 b1 c1 A B a1 b1 Selecção Projecção

(61)

Álgebra Relacional

 

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 B C a1 b1 c1 a2 b2 c2 a3 b3 c3 a2 b4 c4 A a1 a2 A B C a1 b1 c1 a2 b2 c2 C c1 ? ? ?

Referências

Documentos relacionados

2016: SEMINÁRIO EM ANTA GORDA: INÍCIO DO PLEITO PARA CÂMARA SETORIAL E PROGRAMA Seminário e reuniões na SEAPI para construção.. do

◦ Os filtros FIR implementados através de estruturas não recursivas têm menor propagação de erros. ◦ Ruído de quantificação inerente a

Os candidatos reclassificados deverão cumprir os mesmos procedimentos estabelecidos nos subitens 5.1.1, 5.1.1.1, e 5.1.2 deste Edital, no período de 15 e 16 de junho de 2021,

potencialmente porque não são entendidos como tal pela maioria da população e porque não estão classificados — e, em parte, a uma lacuna consistente relativa à formação de

Com efeito, à semelhança da estratégia adoptada na investigação e publicação sistemática do espólio exumado no povoado pré ‑histórico de Leceia pelo escultor Álvaro de

BARHAM, 1982 (2), define as diferenças conceituais e campos de ação, tanto para en­ sino como investigação, entre Biomecânica e Cinesiologia Mecânica. Não trataremos

A meta prevista para este indicador era garantir a realização de exames complementares em dia a 100% de hipertensos e diabéticos do programa, por tanto não foi atingida,

Feitiço do Segredo: deposita um segredo numa pessoa de confiança, essa pessoa fica deposita um segredo numa pessoa de confiança, essa pessoa fica sendo o &#34;Fiel do sendo o