Arquitecturas ede Sistemas de Bases de Dados

Propaganda
Bases de Dados II
6638: BSc in Information Systems and Technologies
Cap. 1 — Arquitectura de Sistemas de Bases de Dados
Module Introduction
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Objectivos
•
O propósito e a origem da arquitectura de base de dados a três níveis.
•
O conteúdo dos níveis externo, conceptual e interno.
•
O propósito dos mapeamentos entre níveis externo e conceptual, e entre os níveis
conceptual e interno.
•
O significado de independência lógica e independência física de dados.
•
A distinção entre uma DDL (Data Definition Language) e uma DML (Data Manipulation
Language).
•
Classificação de modelos de dados.
•
As funções/serviços típicos fornecidos por um DBMS.
•
As componentes dum DBMS.
•
O significado da arquitectura cliente-servidor e as suas vantagens num ambiente DBMS
multi-utilizador.
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Conceitos básicos
•
Bases de Dados
–
•
Colecção partilhada de dados (ficheiros) logicamente relacionados concebida de forma a satisfazer
as necessidades de informação duma organização (e.g. empresa imobiliária)
DBMS
–
Colecção de programas que permite ao utilizador definir, criar, aceder, manipular e fazer a
manutenção os dados existentes numa DB.
Entrada de
dados/Saída
de relatórios
VENDAS
Prog.s de aplicação
do Dept. Vendas
Entrada de
dados/Saída
de relatórios
Prog.s de aplicação
CONTRATOS do Dept. Contratos
DBMS
Definição de tabelas
(Propriedade, Proprietário,
Arrendatário e Contrato) +
definição de ficheiros
Base de dados
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Projecto (Desenho) de bases de dados
•
Um dos principais objectivos dum sistema de base de dados é fornecer aos utilizadores uma
perspectiva ABSTRACTA dos dados, ocultando-lhes COMO os dados são armazenados e
manipulados.
•
Isto significa que o desenho (design) duma base de dados começa por uma descrição
abstracta e, por isso, geral dos requisitos de informação duma organização:
–
Entidades
–
Atributos
–
Relações
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Arquitectura ANSI-SPARC dum DBMS (1975): motivação
•
Todos os utilizadores devem ter acesso aos mesmos dados.
•
A perspectiva do utilizador deve ser imune às alterações feitas noutras perspectivas (ou
vistas ou views).
•
Os utilizadores não precisam de saber dos detalhes de armazenamento físico da base de
dados.
•
O DBA deve ser capaz de alterar as estruturas de armazenamento da base de dados sem
afectar as vistas dos utilizadores.
•
A estrutura interna da base de dados não deve ser afectada por alterações físicas de
armazenamento.
•
O DBA deve ser capaz de alterar a estrutura conceptual da base de dados sem afectar os
utilizadores.
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Arquitectura ANSI-SPARC dum DBMS (1975): níveis de
abstracção de dados
•
•
•
Nível externo (utilizador): descrição
personalizada e parcial dos dados.
Cada perspectiva (view) externa
inclui as entidades, atributos e relações
que são relevantes para o utilizador ou
departamento em causa.
Além disso, perspectivas distintas podem
ter representações diferentes dos mesmos
dados. Por exemplo, o dado data pode ser
descrito nas seguintes formas:
–
(dia,
dia,mês,
mês,ano)
ano)
–
(ano,
ano,mês,
mês,dia)
dia)
Esquema Externo
View 1
View 2
View n
Esquema Conceptual
Esquema Interno
BD
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Arquitectura ANSI-SPARC dum DBMS (1975): níveis de
abstracção de dados (cont.1)
•
Nível conceptual (DBA): descrição
comunitária/total dos dados. Descreve QUE dados e
suas relações estão armazenados na BD.
–
–
Esquema Externo
View 1
View 2
View n
Este nível compreende:
•
Todos os dados;
•
Todos os atributos;
atributos;
•
Todas as relações;
relações;
•
As restrições sobre os dados;
•
Informação semântica dos dados;
•
Informação de integridade e segurança.
segurança.
Este nível não compreende dados dependentes do
armazenamento. Por exemplo, a descrição duma entidade
contém os tipos dos seus atributos (p.ex. integer, real,
char), mas não o número de bytes ocupados por cada um
dos atributos.
Esquema Conceptual
Esquema Interno
BD
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Arquitectura ANSI-SPARC dum DBMS (1975): níveis de
abstracção de dados (cont.2)
•
Nível interno (sistema): Representação física da BD.
Descrição de COMO os dados estão armazenados
(estruturas de dados e ficheiros usados ao mais baixonível).
–
Este nível compreende:
•
Alocação de memória para dados/índices;
•
Descrições de registos (c/ tamanhos dos dados);
•
Colocação de registos;
•
Técnicas de compressão e encriptação de dados;
•
Algoritmos de acesso ao sistema de ficheiros via sistema
operativo.
Esquema Externo
View 1
View 2
View n
Esquema Conceptual
Esquema Interno
BD
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Arquitectura ANSI-SPARC dum DBMS (1975): níveis de
abstracção de dados (cont.3)
View 1 (Dept. Contabilidade)
Func_no Nome Apelido
View 2 (Dept. Recursos Humanos)
Idade
Salário
Func_no
Apelido
Nível conceptual (DBA)
Func_no
Nome
Apelido Idade DNasc Vencimento Filial_no
Nível interno (sistema, Linguagem C)
struct STAFF{
int Staff_no;
int Branch_no;
char FName[15];
char LName[15];
struct date Date_of_Birth;
float Salary;
struct STAFF *next;
};
index Staff_no; index Branch_no;
Ano
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Esquemas e instâncias
•
Esquema da BD: descrição global da BD.
NOTA: É importante distinguir entre a descrição da DB e a própria DB.
•
Esquema externo: conjunto dos subesquemas externos que descrevem as perspectivas
dos utilizadores.
•
Esquema conceptual: descrição de todos os dados e suas interrelações, assim como das
restrições de integridade associadas. Existe só um esquema conceptual.
•
Esquema interno: contém as definições dos registos armazenados, métodos de
representação, campos dos registos, indíces e esquemas de hashing. Só existe um esquema
interno.
•
Instância: conjunto de informação existente numa base de dados num dado instante. As
bases de dados mudam ao longo do tempo, através da introdução de mais informação ou do
apagamento de informação existente na base de dados.
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Independência dos dados
•
É um dos principais objectivos da arquitectura ANSISPARC.
•
Significa que um nível de abstracção não é afectado por
alterações ocorridas em níveis inferiores.
•
Há dois tipos de independência de dados:
Esquema Externo
View 1
View 2
View n
Esquema Conceptual
– lógica
– física
Esquema Interno
BD
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Independência lógica dos dados
•
•
•
Independência lógica de dados:invariância dos
subesquemas externos a quaisquer alterações no
esquema conceptual.
Obviamente, os utilizadores não tem que ter
conhecimento destas alterações, com excepção
daqueles para os quais as alterações foram feitas.
Alterações?: adição e remoção de entidades,
atributos e relações devem ser possíveis sem afectar os
esquemas externos existentes ou reescrever programas
de aplicação.
Esquema Externo
View 1
View 2
View n
Esquema Conceptual
Esquema Interno
BD
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Independência física dos dados
•
Esquema Externo
Independência física de dados:invariância do
esquema conceptual externos a quaisquer alterações no View 1
View n
View 2
esquema interno.
•
Do ponto de vista do utilizador, a única alteração
admissível é no desempenho do DBMS.
•
Alterações?: alteração das estruturas de dados,
alteração na organização de ficheiros, alteração
utilização de dispositivos de armazenamento, alteração
dos algoritmos de indexação e hashing
Esquema Conceptual
Esquema Interno
BD
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
DDL (Data Definition Language)
•
O esquema duma base de dados é especificado através de um conjunto de definições
expressas numa linguagem especial designada por Linguagem de Definição de Dados
(DDL).
•
Em SQL (Structured Query Language), a DDL inclui basicamente quatro comandos:
comandos:
–
CREATE DATABASE, DROP DATABASE
–
CREATE TABLE, DROP TABLE, ALTER TABLE
–
CREATE VIEW, DROP VIEW
–
CREATE INDEX, DROP INDEX
Definições
em DDL
compilação
Dicionário
de Dados
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
DML (Data Manipulation Language)
•
•
Operações de manipulação de dados:
–
consulta aos dados da BD
–
inserção de novos dados na BD
–
actualização de dados na BD
–
eliminação de dados da BD
Em SQL (Structured Query Language), a DML inclui basicamente quatro comandos:
–
SELECT
–
INSERT
–
UPDATE
–
DELETE
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
SQL (Structured Query Language)
•
Unifica a DDL e a DML numa única linguagem.
•
Engloba ainda outros aspectos, como por exemplo os relacionados com a administração da
base de dados.
•
É uma linguagem não-procedimental. Funciona em modo interactivo.
•
Existem várias extensões à linguagem SQL de tal modo que os comandos SQL podem ser
embutidos em linguagens de programação tradicionais (Pascal, C, etc.).
•
É uma norma ISO e ANSI.
–
ISO (International Standards Organization)
–
ANSI (American National Standards Institute)
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
4GL (Fourth Generation Languages)
•
Algumas classes de 4GL:
–
Linguagens de inquirições. Exemplo: SQL.
–
Geradores de relatórios.
–
Geradores de formulários.
–
Geradores de gráficos.
–
Geradores de aplicações.
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Modelos de dados
•
Modelo de Dados:
–
•
Uma colecção integrada de conceitos cujo objectivo é descrever os dados, as relações entre os
dados e as restrições impostas aos dados duma organização.
Classes de Modelos de Dados:
–
–
–
baseados em objectos
•
Entidade-Relação
•
Semântico
•
Funcional
•
Orientado por objectos
baseados em registos
•
Modelo relacional de dados
•
Modelo em rede de dados
•
Modelo hierárquico de dados
físicos
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Funções/serviços de um DBMS (Codd 1982)
•
Armazenamento,
Armazenamento, devolução e actualização de dados.
dados. É a função principal de qualquer DBMS.
•
Catálogo acessível ao utilizador.
utilizador. Contém os dados referentes aos esquemas,
esquemas, utilizadores,
utilizadores,
aplicações,
aplicações, etc.
•
Suporte a transações.
transações. Um DBMS deve fornecer um mecanismo que garanta que todas actualizações
referentes a uma determinada transação são efectuadas ou nenhuma delas é efectuada.
efectuada.
•
Controlo da concorrência.
concorrência. Um DBMS deve fornecer um mecanismo que garanta que a DB seja
actualizada correctamente quando vários utilizadores estão a actualizá-la concorrentemente.
concorrentemente.
•
Recuperação a falhas.
falhas. Um DBMS deve fornecer um mecanismo de recuperação da DB em caso de
ocorrência de falha numa transação.
transação.
•
Autorização.
Autorização. Um DBMS deve fornecer um mecanismo que garanta que somente utilizadores
autorizados tenham acesso à base de dados.
•
Comunicação de dados.
dados. Um DBMS deve ser capaz de se integrar com o software de comunicação
em rede.
rede.
•
Integridade.
Integridade. Um DBMS deve fornecer um mecanismo que garanta que os dados e suas alterações
seguem determinadas regras de consistência.
consistência.
6638 Bases de Dados II
Componentes de um DBMS
Arquitectura de Sistemas de Bases de Dados
6638 Bases de Dados II
Topologias de Rede para DBMS
•
Teleprocessamento
•
Ficheiro-Servidor
•
Cliente-Servidor
•
Distribuída
Arquitectura de Sistemas de Bases de Dados
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Teleprocessamento (mainframe)
•
1 computador c/1 CPU + n terminais;
•
processamento centralizado;
•
terminais funcionalmente dependentes,
i.e. s/ capacidade de processamento;
•
Desvantagem: enorme sobrecarga do
processador, para executar todas as tarefas,
tais como aplicações (interfaces gráficas),
DBMS, edição de texto e de programas,
formatação dos dados mostrados no ecrã,
etc.
terminal 4
terminal 1
terminal 2
terminal 3
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
workstation 2
(SGBD)
Topologia ficheiro-servidor
•
1 computador servidor de ficheiros + n
workstations + LAN;
•
1 servidor de ficheiros que contêm as tabelas
da base de dados; funciona como uma drive
de disco partilhada;
•
processamento DBMS distribuído, pois cada
workstation corre uma cópia do DBMS;
•
Desvantagens:
–
enorme quantidade de tráfego na rede;
–
manutenção mais custosa: cada workstation
requer uma cópia completa do DBMS;
–
controlo da concorrência, integridade dos
dados e recuperação a falhas são mais
complexos, visto que há vários DBMS a
aceder aos mesmos ficheiros.
workstation 1
(SGBD)
workstation 3
(SGBD)
LAN
Pedidos de dados
Local Area Network
Ficheiros devolvidos
BD
Servidor de ficheiros
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
workstation 2
cliente 2
Topologia cliente-servidor
•
1 computador servidor DBMS + n workstations
+ LAN;
•
Servidor: processamento DBMS centralizado;
•
Cliente: gestão de interface com o utilizador e
da lógica da aplicação;
•
workstation 1
cliente 1
workstation 3
cliente 3
LAN
Local Area Network
Vantagens:
–
Acesso generalizado às bases de dados
existentes;
–
Melhor desempenho (workstations processam
aplicações em paralelo).
–
Custos de hardware reduzidos (só o servidor
requer elevadas capacidades de processamento e
armazenamento).
–
Menores custos de comunicações (menos
informação a circular na rede).
–
Garantia da integridade dos dados.
Pedidos de dados
Dados devolvidos
BD
Servidor DBMS
6638 Bases de Dados II
Arquitectura de Sistemas de Bases de Dados
Sumário:
•
Definição de objectivos.
•
Conceitos básicos: base de dados e DBMS. •
Data Manipulation Language (DML).
•
Desenho de bases de dados.
•
Structured Query Language (SQL).
•
Arquitectura ANSI-SPARC.
•
Linguagens 4G.
•
Esquemas e instâncias.
•
Modelos de dados.
•
Independência de dados.
•
Funções/serviços dum DBMS.
•
Componentes dum DBMS.
•
Topologias da arquitectura dum DBMS
multi-utilizador.
•
Data Definition Language (DDL).
Download