Bases de Dados - Dei-Isep

Propaganda
Nuno Melo e Castro
!" #
Modelos de dados
1ª geração
Modelo Hierárquico
Modelo Rede
2ª geração
Modelo Relacional
3ª geração
Extensões ao modelo relacional
Modelo lógico-dedutivo
Modelo orientado a objectos
$ %&
Primeiro modelo de bases de dados
Dados estruturados em hierarquias ou árvores, de tal forma que
cada registo tem apenas um possuidor
Cada registo é o equivalente a uma entidade do modelo
entidade-relacionamento
Na estrutura da árvore, os registos estão ligados entre si através
de ligações que podem ser vistas como formas restritas de
relacionamentos do modelo entidade-relacionamento
Cada registo é uma colecção de campos (atributos) cada um dos
quais contendo apenas um valor
O acesso aos dados faz-se percorrendo as hierarquias, desde a
raiz da árvore até encontrar o registo (nó) pretendido, numa
sequência “cima-baixo-esquerda-direita”
As BD hierárquicas têm bom desempenho no acesso
sequencial, mas fraco desempenho no acesso aleatório
$ %&
Base de dados hierárquica
Hierarquia (Árvore)
Segmentos (Nós)
Cada árvore tem uma raiz, que é um pseudo-nó
A raiz tem apenas a função de ser uma origem comum, não
contém informação
Cada nó é um registo, e não podem existir ciclos entre os nós
As ligações formadas na árvore devem ser tais que somente
retratem relações 1:1 ou 1:M entre um nós pai e filhos
Como consequência, o conteúdo de um registo pode ter de
ser replicado em vários locais diferentes, o que significa
redundância e possível inconsistência
'
$ %&
Regras de Integridade
Um registo filho tem de ter um registo pai
Um registo filho pode ser removido
independentemente do seu registo pai
A remoção de um registo implica a remoção de
todos registos descendentes
Não pode haver mais do que um registo pai para
um registo filho (se houver implica a duplicação
do registo filho)
Um registo pai pode ter filhos de tipos diferentes
A hierarquia pode estender-se por diversos níveis
(
$ %&
Esquema hierárquico
Uma instância…
&' (
"
#$%
!
)#
!
!
$ %&
Problemas
Redundância
Possibilidade de inconsistência
Fácil obter informação sobre os clientes, mas, se quiser saber o
preço a que foi facturado um determinado produto numa
determinada factura de um determinado cliente…
É necessário obter o nó raiz da árvore…
Percorrer sequencialmente o segmento dos clientes até encontrar o
cliente pretendido…
Para esse cliente, procurar o segmento das facturas até encontrar a
factura pretendida…
Para essa factura, procurar o segmento dos produtos até encontrar o
produto pretendido
Não é possível criar produtos sem criar facturas
A alteração do nome do produto tem de ser feita em todos os nós
da árvore
…
É uma extensão ao modelo hierárquico
Os registos estão organizados em grafos
Desaparece o conceito de hierarquia, o mesmo
registo pode ter diversas associações
Só existe um tipo de associação (Set) que define
um relacionamento entre dois tipos de registo
Set
Registo pai
Registo filho
= Owner
= Member
Uma BD em rede é um grafo
nós
arcos
= registos
= ligações entre registos
)
Regras de Integridade
Um Set tem de conter um Owner e zero ou mais
Member
No mesmo tipo de Set, um registo não pode
aparecer mais de uma vez como Owner ou como
Member
Um registo pode ser Owner ou Member de um ou
mais Sets, desde que estes sejam de tipos
diferentes
Nenhum registo pode ser simultaneamente
Owner e Member do mesmo tipo de Set
*
Esquema em rede
Uma instância…
Características
Surgiu em 1970, por E. F. Codd, tendo por base a teoria dos conjuntos
Contribuiu decisivamente para a massificação da utilização da tecnologia de bases de
dados
A estrutura fundamental é a Relação / Tabela
O esquema conceptual é constituído basicamente por um conjunto de relações ou
tabelas
Os relacionamentos entre tabelas definem-se através de atributos comuns
(designadas por chaves)
Manipulação dos dados do tipo set-oriented
É mais fácil de controlar
É mais flexível
É mais intuitivo em função da organização dos dados em tabelas que são muito
utilizadas
A capacidade de ligar tabelas permite o relacionamento dos dados de novas formas,
sem se ter que redefinir relações complexas
Em virtude das suas vantagens, as organizações utilizam-no para as suas grandes
bases de dados (marketing, contabilidade, ...)
Número_Aluno
Nome_Aluno
Morada
Curso
20060001
António Silva
Maia
Engª Informática
20060002
Júlio Pinto
Matosinhos
Engª Química
20060003
Vanda Coelho
Porto
Engª Mecânica
20060004
Zacarias Trindade
Vila do Conde
Engª Informática
20060005
Eva Stuart
Porto
Engª Civil
+
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Numa base de dados relacional, todos os dados, incluindo o próprio dicionário de dados, são representados de uma
só forma, em tabelas bidimensionais.
Cada elemento de dados fica bem determinado pela combinação do nome da tabela onde está armazenado, do valor
da chave primária e respectiva coluna (atributo).
Valores nulos (nulls) são suportados para representar informação não disponível ou não aplicável,
independentemente do domínio dos respectivos atributos.
Os metadados são representados e acedidos da mesma forma que os próprios dados.
Apesar de um sistema relacional poder suportar várias linguagens, deverá existir pelo menos uma linguagem com as
seguintes características:
– Manipulação de dados, interactiva ou em programas;
– Definição de dados;
– Definição de views;
– Definição de restrições de integridade;
– Definição de acessos (autorizações);
– Manipulação de transacções (commit, rollback, …)
Numa view, todos os dados actualizáveis que forem modificados, devem ver essas modificações traduzidas nas
tabelas da base.
Capacidade de tratar uma tabela (base ou virtual) como se fosse um simples operando (ou seja, utilização de uma
linguagem set-oriented ), tanto em operações de consulta como de actualização.
Alterações na organização física dos ficheiros da base de dados ou nos métodos de acesso a esses ficheiros (nível
interno) não devem afectar o nível conceptual - independência física.
Alterações no esquema da base de dados (nível conceptual), que não envolvam remoção de elementos, não devem
afectar o nível externo – independência lógica.
As restrições de integridade devem poder ser especificadas numa linguagem relacional, independentemente dos
programas de aplicação, e armazenadas no dicionário de dados.
O facto de uma base de dados estar centralizada numa máquina, ou distribuída por várias máquinas, não deve
repercutir-se ao nível da manipulação dos dados.
Se existir no sistema uma linguagem de mais baixo nível (tipo record-oriented ), ela não deverá permitir ultrapassar
as restrições de integridade e segurança.
%
Linguagens de manipulação de dados (DML)
Comandos para consulta de informação
Comandos para manipulação de informação
São “set-oriented”, ou seja actuam sobre conjuntos e devolvem
como resultado conjuntos
Álgebra relacional
Linguagem procedimental
Tem o mesmo poder de expressão que o Cálculo relacional
Variantes da Álgebra relacional são usadas internamente pelos
SGBDs relacionais durante a optimização de consultas
SQL
Originária do cálculo relacional
Interface padrão dos SGBDs relacionais
'
Álgebra relacional
Operações mapeiam uma ou mais relações em uma nova
relação
Algumas operações impõem restrições nas relações de
entrada
Operações
Básicas
Teoria dos conjuntos: Produto cartesiano, União e Diferença
Específicas relações: Selecção, Projecção e Renomeação
Adicionais
Teoria dos conjuntos: Intersecção
Específicas relações: Divisão e Junção
(
+%
Cálculo Relacional
Cálculo relacional de tuplos
Cálculo relacional de domínios
Linguagem declarativa, com que se define o que se
pretende obter e não como se pode obter, set-oriented
Além dos operadores lógicos e dos operadores
condicionais, tem os operadores:
Quantificador existencial
Quantificador universal
%
A Álgebra relacional e o Cálculo relacional não se
utilizam na manipulação efectiva dos dados em
sistemas relacionais;
O seu interesse advém do facto de terem servido
como base para o desenvolvimento das diferentes
linguagens hoje utilizadas na manipulação dos
dados em sistemas relacionais;
São abstracções de interfaces ideais próximas das
especificações do modelo relacional teórico.
Download