Escolar Documentos
Profissional Documentos
Cultura Documentos
Bsicos de
Banco de
Dados
Prof. Rogrio Gonalves Bittencourt, M.Sc.
Contedo
INTRODUO
Banco de Dados
Modelos de Dados
Arquitetura de um SGBD
Nvel Externo
10
Nvel Conceitual
12
Nvel Interno
13
Mapeamentos
14
Linguagens de SGBDs
14
Independncia de Dados
16
16
Exerccios
19
21
21
21
ii
21
25
Classificao de SGBDs
25
Exerccios
25
MODELO RELACIONAL
27
Dicionrio de Dados
30
31
32
33
33
As 12 Regras de Codd
34
INTEGRIDADE
43
43
45
47
49
50
50
VISES
53
Vantagens
55
55
TRIGGERS
56
iii
Vantagens
57
Utilizao de Triggers
57
Introduo
Neste captulo apresentaremos alguns termos (terminologia) e
conceitos de grande importncia.
Banco de Dados
Um banco de dados um conjunto de arquivos
relacionados entre si (Chu, 1983)
Um banco de dados uma coleo de dados
operacionais armazenados, sendo usados pelos sistemas de
aplicao de uma determinada organizao (C. J. Date,
1985)
Um banco de dados uma coleo de dados
relacionais (Elmasri & Navathe, 1989)
Um banco de dados um conjunto de dados
armazenados, cujo contedo informativo representa, a cada
instante, o estado atual de uma determinada aplicao
(Laender, 1990)
Resumindo:
SBD = BD + SGBD + PA
De acordo com (DATE,1985), um SBD dividido em mdulos que
tratam de partes, em separado, cada uma das responsabilidades do sistema
geral. Estes componentes fundamentais so:
Usurios
Ingnuos
Interfaces do
aplicativo
Programadores
de aplicativos
Usurios
sofisticados
Programas
aplicativos
Consulta
Esquema de
bancos de
Pr-compilador
da linguagem
de manipulao
de dados
Processador
de consultas
Compilador de
linguagem de
definio de
Cdigo objeto
de programas
aplicativos
Administrador de
banco de dados
Gerenciador
de banco
de dados
SGDB
Gerenciador
de arquivos
DISCO
Arquivos
de dados
Dicionrios
de dados
Manter a Integridade
O problema da integridade assegurar que os dados do banco de dados
sejam corretos (ntegros), ou seja, as informaes que compe o BD tm que
expressar exatamente o que foi informado, o BD no pode permitir que as
informaes se modifiquem incorretamente.
Modelos de Dados
Conjunto de conceitos que podem ser usados para descrever o BD.
Divide-se em Modelos Conceituais, Modelos de Implementao e Modelos
Fsicos.
Modelos Conceituais: Provem conceitos prximos aos percebidos por
muitos usurios. Usam conceitos como entidades, atributos e
relacionamentos.
EX: Modelo ER, Modelo OO
Modelos de Implementao: Tem conceitos que podem ser
entendidos pelos usurios e no esto muito distantes da maneira como os
dados so organizados fisicamente. So usados freqentemente em SGBDs
comerciais. Representam os dados usando estruturas de registro.
EX: Modelo Relacional, Modelo Rede, Modelo Hierrquico.
Modelos Fsicos: Descrevem como os dados so armazenados
representando informao como formato de registros, ordenao de
registros, mtodos de acesso.
Arquitetura de um SGBD
A arquitetura divide-se em trs nveis gerais:
Nvel Interno Mais prximo do armazenamento fsico, isto ,
relaciona-se com a forma como os dados so armazenados. Emprega-se o
Modelo de Dados Fsico para descrever detalhes de armazenamento.
Nvel Conceitual Descreve a estrutura completa de um BD para
uma comunidade de usurios. uma descrio global do BD, que esconde
detalhes da estrutura fsica de armazenamento. Pode-se empregar um
modelo de alto nvel (modelo conceitual) ou de implementao.
Nvel Externo Mais prximo dos usurios. formado por um conjunto
de vises de usurios ou esquemas externos. Cada viso descreve a parte
do BD que um grupo de usurios est interessado. Pode ser empregado um
modelo de alto nvel (modelo conceitual) ou de implementao
A maioria dos SGBDs no separa os 3 nveis completamente. Alguns
incluem detalhes de nvel fsico no nvel conceitual.
Nvel externo
(vises do usurio
individual)
viso 1
...
viso 2
viso n
Nvel conceitual
(viso do conjunto
de usurios)
Nvel
Conceitual
Nvel interno
(viso do
armazenamento)
Nvel Fsico
Externo (PL/1)
DCL
1 EMPP,
2 EMP # CHAR (6),
2 SAL FIXED BIN (31)
Conceitual
EMPLOYEE
EMPLOYEE_NUMBER
DEPARTAMENT_NUMBER
SALARY
Externo (COBOL)
01 EMPC.
02 EMPNO PIC X (6)
02 DEPTNO PIC X (4).
CHARACTER (6)
CHARACTER (4)
NUMERIC
(5)
Interno
STORED_EMP LENGTH = 118
PREFIX TYPE = BITE(6), OFFSET = O
EMP# TYPE = BYTE(6), OFFSET = 6, INDEX = EMPX
DEPT# TYPE = BYTE(4), OFFSET = 12
PAY
TYPE = FULLWORD, OFFSET = 16
Exemplos dos trs nveis.
10
relacional como tal no tem nada a dizer sobre o nvel interno (repetimos,
sobre como o banco de dados aparece para o usurio).
Examinaremos agora mais detalhadamente os trs nveis da
arquitetura, iniciando com o nvel externo. A figura abaixo, qual estaremos
nos referindo neste captulo, mostra os principais componentes da
arquitetura e seus inter-relacionamentos.
Nvel Externo
O nvel externo o nvel do usurio individual. Um determinado
usurio, como explicado no Captulo I, tanto pode ser um programador de
aplicaes como um usurio de terminal on-line - i.e., um usurio final - de
qualquer grau de sofisticao. O DBA um caso especial importante. (Ao
contrrio dos usurios comuns, o DBA ter de se interessar pelos nveis
conceitual e interno tambm. Vide as prximas duas sees.) Cada usurio
tem uma linguagem sua disposio:
11
12
usando-se a parte DDL da sublinguagem de dados do usurio. (Denominase, assim, a DDL, s vezes, de DDL externa.) O tipo de registro externo
funcionrio, por exemplo, pode ser definido como um campo de seis
caracteres, nmero do funcionrio, mais um campo de cinco dgitos
decimais, 'salrio', e assim por diante. Alm disso, deve haver uma definio
do mapeamento entre o esquema externo e o esquema conceitual
fundamental (descrito na prxima seo).
Voltamo-nos agora para o nvel conceitual.
Nvel Conceitual
A viso conceitual a representao de todo o contedo de
informaes do banco de dados, tambm (como a viso externa) um tanto
abstrato quando comparada forma como os dados so fisicamente
armazenados, que tambm pode ser bem diferente da maneira como os
dados so vistos por qualquer usurio em particular. A grosso modo,
podemos dizer que a viso conceitual a viso dos dados "como realmente
so", e no como os usurios so forados a v-los devido s restries (por
exemplo) da linguagem ou do hardware utilizados pelos mesmos.
A viso conceitual consiste em ocorrncias mltiplas de tipos mltiplos
de registros conceituais. A mesma pode consistir, por exemplo, em uma srie
de ocorrncias de registros de departamentos, mais um conjunto de
ocorrncias de registros de funcionrios, ou de fornecedores de peas ... De
um lado, um registro conceitual no necessariamente o mesmo do que um
registro externo e, de outro, nem o mesmo que um registro armazenado.
A viso conceitual definida pelo esquema conceitual que inclui
definies de todos os diversos tipos de registros conceituais. O esquema
conceitual escrito atravs de outra linguagem de definio de dados, a
DDL conceitual. Para que se possa alcanar a independncia de dados,
essas definies da DDL conceitual no podem conter quaisquer
consideraes sobre a estrutura de armazenamento ou a estratgia de
acesso - devem ser apenas definies das informaes. Assim, no pode
haver referncia ao esquema conceitual para as representaes do campo
armazenado, seqncia de registro armazenado, indexao, acesso hash,
ponteiros ou quaisquer outros detalhes de armazenamento/acesso. Se o
esquema conceitual for realmente independente de dados, ento os
esquemas externos, que so definidos em termos do esquema conceitual,
tambm sero necessariamente independentes de dados.
A viso conceitual, ento, a viso do contedo total do banco de
dados, e o esquema conceitual uma definio desta viso. Seria errado,
porm, dizer-se que o esquema conceitual no nada mais do que um
conjunto de definies parecidas com simples definies de registros como
encontrados, por exemplo, num programa COBOL.
As definies no
esquema conceitual devem incluir uma grande quantidade de aspectos,
como controles de segurana e de integridade. Algumas autoridades na
13
Nvel Interno
O terceiro nvel da arquitetura o nvel interno. A viso interna uma
pequena representao de todo o banco de dados; consiste em
ocorrncias mltiplas de tipos mltiplos de registros internos. O "registro
interno" termo ANSI/SPARC para a estrutura que temos denominado de
registro armazenado (termo que continuaremos a empregar). A viso
interna um tanto distante do nvel fsico, uma vez que no trabalha em
termos de registros fsicos (tambm chamados pginas ou blocos), nem de
consideraes de dispositivos especficos tais como cilindro ou comprimento
de trilha. (A viso interna assume basicamente um espao de
endereamento linear e infinito. Os detalhes de como este espao de
endereamento mapeado at o armazenamento fsico so altamente
especficos a cada sistema, e deliberadamente omitidos de arquitetura).
A viso interna descrita por meio do esquema interno, que no s
define os vrios tipos de registros armazenados como tambm especifica os
ndices que existem, como os campos armazenados so representados, a
seqncia fsica dos registros armazenados, e assim por diante. O esquema
interno preparado atravs de uma outra linguagem de definio de dados
- a DDL interna.
Observao: Nesse livro, usaremos normalmente o termo "banco de dados
armazenado" em vez de viso interna, e o termo definio
de estrutura de armazenamento em vez de esquema
interno.
Observamos, parte, que, em certas situaes excepcionais, os
programas de aplicao - em particular, as aplicaes de natureza
"utilitria" - podem operar diretamente no nvel interno, ao invs do nvel
externo. No necessrio dizer que esta prtica no recomendvel;
representa um risco de segurana (posto que o controle de segurana no
observado) e um risco de integridade (uma vez que os controles de
integridade tambm no so observados), e o programa, alm disso, tornase dependente de dados, em algumas ocasies, porm esta poder ser a
nica forma de se obter a funo ou a performance necessria - assim
14
Mapeamentos
O leitor poder observar dois nveis de mapeamento na arquitetura,
um entre os nveis externo e conceitual do sistema e um entre os nveis
conceitual e interno.
O mapeamento conceitual interno define a
correspondncia entre a viso conceitual e o banco de dados armazenado;
especifica como os registros e campos conceituais so representados no
nvel interno. Se a estrutura do banco de dados armazenado for modificada
- i.e., se for executada uma mudana na definio da estrutura armazenada
-, o mapeamento conceitual/interno tambm dever ser modificado de
acordo, de forma que o esquema conceitual permanea invarivel. (O
controle destas mudanas da responsabilidade do DBA.) Em outras
palavras, os efeitos dessas modificaes devem ser isolados abaixo do nvel
conceitual, de maneira a preservar a independncia de dados.
Um mapeamento externo conceitual define a correspondncia entre
uma determinada viso externa e a viso conceitual. As diferenas que
podem existir entre estes dois nveis so similares quelas que podem existir
entre a viso conceitual e o banco de dados armazenado. Como exemplo,
os campos podem ter tipos de dados diferentes, as denominaes de
campo e registro podem ser modificadas, campos conceituais mltiplos
podem ser combinados num nico campo externo (virtual) etc. Pode haver
qualquer nmero de vises externas ao mesmo tempo; qualquer quantidade
de usurios pode compartilhar de uma determinada viso externa;
diferentes vises externas podem sobrepor-se. Alguns sistemas possibilitam
que a definio de uma viso externa seja expressa em termos de outra (de
fato, via mapeamento externo/externo), ao invs de exigirem sempre uma
definio explcita do mapeamento a nvel conceitual - um aspecto muito
til, quando diversas vises externas se relacionam entre si.
Linguagens de SGBDs
A linguagem de SGBD's essencialmente SQL, que por sua vez
subdividido em grupos de comandos, de acordo com a funo de cada
comando. Infelizmente, estas subdivises no so utilizadas por todas as
implementaes de SGBD's. Elas so enfatizadas pela ANSI (American
National Standards Institute), mas muitos produtos SQL no as tratam
separadamente na prtica.
A Linguagem de Definio de Dados (ou DDL - Data Definition
Language, ou tambm chamado pela ANSI como Linguagem de Definio
de Esquema) consiste nos comandos que criam os objetos (tabelas, ndices,
15
16
Independncia de Dados
O Banco de Dados pode ser visto sob trs nveis de abstrao:
17
18
19
Exerccios
1) Quais so os principais componentes dos sistemas de BD?
Explique sucintamente a funcionalidade de cada uma.
2) Defina os termos:
3) Banco de Dados
4) Sistemas de Gerncia de Bancos de Dados
5) Sistemas de Banco de Dados
6) Cite e explique algumas vantagens do uso de BD.
7) O que Integridade Referencial e Transacional?
8) O que Independncia de Dados?
9) Descreva a arquitetura de SBD de 3 nveis.
10) Quais so os tipos de linguagens de SGBD? Para que serve
cada uma?
11) Qual a diferena entre Independncia Fsica e Lgica?
12) Cite e explique algumas responsabilidades do DBA.
21
22
Modelo Relacional;
Modelo Rede;
Modelo Hierrquico.
Modelo Relacional
O Modelo Relacional representa dados e relacionamentos entre
dados por um conjunto de tabelas, cada uma tendo um nmero de colunas
com nomes nicos. Veremos o Modelo Relacional com mais detalhes mais
adiante.
nome
Ana
Joo
Joo
Carlos
Carlos
rua
Arvoredo
Norte
Norte
Alameda
Alameda
cidade
Porto Alegre
So Paulo
So Paulo
Florianpolis
Florianpolis
nmero
900
556
647
801
saldo
55
100.000
105.366
10533
nmero
900
556
647
801
647
Modelo Rede
Os dados no Modelo Rede, tambm conhecido como Modelo
CODASYL ou DBTG, so representados por colees de registros (como no
Pascal ou PL/I), e os relacionamentos entre os dados so representados por
elos, que podem ser vistos como ponteiros. Os registros no BD so
organizados como colees de grficos arbitrrios.
Um banco de dados rede consiste em uma coleo de registros que
so conectados uns aos outros por meio de ligaes. Um registro em
muitos aspectos similar a uma entidade no modelo ER. Cada registro uma
coleo de campos (atributos), cada um dos quais contendo apenas um
23
Joo
Carlos
Arvoredo
Norte
Alameda
Porto Alegre
900
55
556
100.000
647
105.366
801
10.533
So Paulo
Florianpolis
24
Modelo Hierrquico
O primeiro SGBD comercialmente disponvel e que se tornou popular
era hierrquico, o BD da IBM, conhecido como IMS (Information
Management System), que esteve no seu auge na dcada de 70. Como
resultado, hoje existe uma grande base de dados que ainda utilizam a
abordagem hierrquica.
O modelo hierrquico possui dois conceitos bsicos de estruturas:
Ana
Arvoredo
Porto Alegre
Joo
556
900
55
Carlos
Norte
100.000
Alameda
Florianpolis
So Paulo
647
105.366
647
105.366
801
10.533
25
Modelo Unificador;
Estrutura de Memria.
Classificao de SGBDs
Quanto ao modelo de dados (principal critrio):
mono-usurio;
multi-usurio.
centralizado;
distribudo.
Exerccios
1) Defina Modelo de Dados.
2) Como so classificados os Modelos de Dados?
Modelo Relacional
Durante o perodo problemtico dos modelos hierrquico e rede,
Edward F. Codd (1970) props o MODELO RELACIONAL. A partir da, diversas
implementaes de Bancos de Dados Relacionais (RDBS - SGBDR)
comearam a aparecer.
Os Bancos de Dados Relacionais possuem diversas caractersticas
importantes que resolvem muitos dos problemas dos outros modelos
(hierrquico e rede). Ao contrrio de seus antecessores, o Modelo Relacional
no se baseia num paradigma de estruturao de dados particular, e sim
em um fundamento matemtico especfico.
A viso de Banco de Dados mudou para um nvel mais alto,
concentrando seus princpios no modelo de negcios e no na
implementao de estruturas complexas.
O Modelo Relacional representa o BD como uma coleo de
relaes. Informalmente, uma relao uma tabela ou arquivo simples.
..............
.........................
.........
..............
.........................
.........
London
Domniosos
Paris
Relao
Tupla
COD
001
002
003
NOME
Smith
Jones
Adams
CIDADE
London
Paris
Paris
Atributos
Chave
Primria
Domnio
A noo de domnio de um item de dado assemelha-se noo de
domnio de um conjunto na matemtica. Um Domnio D um conjunto de
valores atmicos (indivisveis). o universo de valores permitido para um
dado conjunto. Para tanto, necessrio o uso da DDL e da DCL do SGBD.
Ainda, a definio de um domnio acarreta em certas operaes e
comparaes de valor vlidas para um item de dado.
Domnios podem ser simples, ou seja, possuem um nico valor, como
um inteiro, ou compostos, quando possuem vrios valores, como uma data,
que apresenta dia, ms e ano. Os valores dos itens de dados que
28
inteiros
reais
conjunto de cidades
etc.
Atributo
Um Atributo representa o uso de um Domnio dentro de uma Relao.
Vrios Atributos podem pertencer a um mesmo Domnio.
Matematicamente, um atributo o nome de um conjunto. Em uma
tabela, representa uma coluna. Um atributo pode apresentar um valor
condizente com o domnio associado a ele ou null. Null indica ausncia de
valor ou valor desconhecido.
Relao
Uma Relao dos Domnios D1, D2, ..., Dn compe-se de:
29
Ex.: ESTUDANTE
Matrcula
01
-----...
------
Nome
N1
-----...
------
Endereo
E1
Null
...
------
t1
t2
...
tn
Chaves
O conceito de chaves fundamental, pois permitem a identificao
de tuplas em uma tabela, e permitem o estabelecimento de
relacionamentos entre tabelas.
Tipos de Chaves:
Ex.:
30
ndices
Permitem a otimizao da recuperao de tuplas em uma tabela, via
um mtodo de acesso. um recurso fsico, cujo principal objetivo est
relacionado com a performance do sistema. Cada estrutura de ndice est
associada a uma chave de pesquisa particular.
Uma chave pode ser utilizada como ndice, porm um ndice no
necessariamente uma chave. Existem vrios tipos de ndice (que dependem
do ambiente relacional que estamos trabalhando):
Dicionrio de Dados
A estrutura de um banco de dados relacional armazenada em um
dicionrio de dados ou catlogo do sistema. O dicionrio de dados
composto de um conjunto de relaes, idnticas em propriedades s
relaes utilizadas para armazenar dados. Elas podem ser consultadas com
as mesmas ferramentas utilizadas para consultar relaes de tratamento de
dados. Nenhum usurio pode modificar as tabelas de dicionrio de dados
diretamente. Entretanto, os comandos da linguagem de manipulao de
dados que criam e destroem os elementos estruturais do banco de dados
trabalham para modificar as linhas em tabelas de dicionrios de dados.
Em geral, voc encontrar os seguintes tipos de informaes em um
dicionrio de dados:
31
tname
dbspace
tabletype
ncols
Primary key
SYS
SYSTABLE
SYSTEM
TABLE
12
SYS
SYSCOLUMN
SYSTEM
TABLE
14
SYS
SYSINDEX
SYSTEM
TABLE
SYS
SYSIXCOL
SYSTEM
TABLE
SYS
SYSFOREIGNKEY
SYSTEM
TABLE
SYS
SYSFKCOL
SYSTEM
TABLE
SYS
SYSFILE
SYSTEM
TABLE
SYS
SYSDOMAIN
SYSTEM
TABLE
SYS
SYSUSERPERM
SYSTEM
TABLE
10
SYS
SYSTABLEPERM
SYSTEM
TABLE
11
SYS
SYSCOLPERM
SYSTEM
TABLE
32
cname
tname
coltype
nulls
lenth
InPrymaryKey
colno
DBA
item_numb
itens
integer
DBA
title
itens
varchar
60
DBA
distributor-numb
itens
integer
DBA
release_date
itens
date
DBA
retail_price
itens
numeric
Integridade da Entidade
Integridade Referencial
CLIENTE
(1,n)
DEPSITO
(1,n)
AGNCIA
ATIVOS
CIDADECLI
RUA
CONTANUM
SALDO
NOMECLI
CIDADEAG
NOMEAG
NOMECLI
JOO
CARLOS
SILVA
RUA
XYZ
XXX
XXX
CIDADECLI
WWWWW
WWWWW
WWWWW
33
NOMEAG
DOWN
MIANUS
MIANUS
CLIENTE
NOMEAG
DOWN
REDWOOD
MIANUS
CIDADEAG
YYYYYY
ZZZZZZZZ
WWWWW
ATIVOS
1000000
5000000
8000000
AGNCIA
NOMECLI
JOAO
JOAO
CARLOS
SILVA
NOMEAG
DOWN
REDWOOD
MIANUS
MIANUS
CONTANUM
155123
134556
111111
548123
SALDO
2000120,00
255613,00
125842,00
456982,00
DEPSITO
CODEMP
......
......
NOME
......
......
CODDEP
......
......
34
CATEGFUNC
......
......
CODDEP
......
......
NOME
......
......
As 12 Regras de Codd
Em outubro de 1985, E. F. Codd publicou uma srie de dois artigos no
semanrio da indstria de computao chamado COMPUTER WORLD. O
primeiro artigo delimitava 12 critrios a que um banco de dados relacional
deve obedecer integralmente. O segundo artigo comparava os atuais
produtos para mainframes com esses 12 critrios, produzindo uma srie de
controvrsias sobre se os SGBD's devem ser teoricamente rigorosos ou se eles
simplesmente devem trabalhar eficientemente.
Raros so os Bancos de Dados que se enquadrem em mais do que 10
destas regras.
As regras de Codd so:
Regra 1: as regras para informaes
35
36
37
partes das linhas. O que deve acontecer se algum consultar a tabela para
todas as pessoas que ganham mais de US$ 60.000? As linhas com nulos
devem ser recuperadas ou permanecer fora?
Quando SGBD avaliam nulo em relao ao critrio lgico de valor de
um salrio maior que US$ 60.000, ele no pode afirmar se a linha contendo
nulo cumprir com os critrios. Talvez compra; talvez no. Por essa razo,
dizemos que bancos de dados relacionais utilizam lgica trivalorada. O
resultado da avaliao de uma expresso lgica verdadeiro, falso ou
talvez.
Primeiro, com SGBD relacional deve armazenaram o mesmo valor de
nulo em todas as colunas e linhas onde o usurio no insere explicitamente
os valores de dados. O valor utilizado para o nulo deve ser o mesmo,
independentemente do tipo de dados da coluna. Observa que o nulo no
o mesmo que um caractere de espao em branco; ele tem seu prprio valor
ASCII ou UNICODE distinto. Entretanto, na maioria das vezes quando voc v
na tela uma tabela de resultados de uma consulta, nulos no aparecem
como valores em branco.
Segundo, o SGBD deve ter alguma maneira conhecida e coerente de
tratar desses nulos ao realizar consultas. Em geral, voc descobrir que linhas
com nulos no so recuperadas por uma consulta como a do exemplo de
salrio maior que US$ 60.000, a menos que o usurio solicite explicitamente
linhas com um valor de nulo. Atualmente, a maioria dos SGBD's relacionais
obedece ao na tabela de verdade lgica trivalorada para determinar o
comportamento de recuperao quando eles encontram nulos.
A incluso de nulos em uma relao pode ser extremamente
importante. Eles oferecem uma maneira consistente de extinguir entre dados
vlidos, como um 0, e dados ausentes. Por exemplo, faz muita diferena
saber que o soldo de uma conta a pagar 0 em vez de desconhecido. A
conta com comearam nmero zero cancelar algo que gostamos de ver;
a conta com saldo desconhecido poder ser um grande problema.
38
tambm simplifica o prprio SGBD, uma vez que ele pode utilizar o mesmo
mecanismo para tratar dados sobre o banco de dados (metadados) que ele
utiliza para dados sobre a organizao.
39
40
41
42
Integridade
Controle de Integridade Semntica do Banco de
Dados
O termo integridade utilizado em banco de dados com o seguinte
significado: preciso, correo, validade. O grande problema da
integridade o de assegurar que os dados no banco de dados se
mantenham precisos, corretos, validos. Ou seja, o de preservar o banco de
dados contra atualizaes/inseres no vlidas (controle de acesso).
Se o objetivo do controle de acesso ao BD o de evitar que pessoas
e/ou programas no autorizados leiam e/ou atualizem a base de dados,
ento objetivo dos mecanismos que zelam pela integridade semntica do
BD garantir que somente atualizaes permitidas sejam executadas na base
de dados.
Por permitidas, entenda-se as modificaes que mantenham a
relao entre o mini-mundo (do usurio/da aplicao) e a representao
deste no BD.
Requisitos (restries) de Consistncia (Consistency Constraints) dizem
respeito consistncia dos dados em sua representao nos nveis mais
baixos da arquitetura do SGBD.
Exemplo: no endereo de disco (cilindro, trilha, bloco fsico) deve estar
armazenado o bloco de dados lgico (pgina) correto (correspondente).
Em nveis mais altos da arquitetura do SGBD, o nmero de requisitos de
consistncia a serem preservados de multiplica.
Exemplo: os endereos de registros apontados por um arquivo de
ndice devem sempre refletir o estado atual do arquivo
indexado.
Requisitos de Consistncia dos nveis mais baixos da arquitetura do
SGBD podem ser derivados durante seu projeto e no dependem de uma
aplicao particular (so vlidos para qualquer aplicao).
No nvel mais alto da arquitetura (nvel das estruturas de dados lgicas
- modelo externo, dicionrio de dados) devem ser levados em conta e
assegurados os relacionamentos entre o mini-mundo no qual o usurio
baseia seu trabalho e o mapeamento deste mini-mundo no BD. Este
mapeamento especfico e dependente de cada aplicao.
44
45
e-sec (i) =
46
VIVO
SOLTEIRO
CASADO
SEPARADO
DIVORCIADO
47
Em SGBDs Relacionais
48
49
50
1. A identificao das RIs que devem ser garantidas para cada operao
a ser executada pelo programa feita uma s vez.
Compare com o esquema interpretativo no seguinte caso:
WHILE Recebe_Tupla_Do_Usurio /* via arquivo */
DO Insere_Tupla_Em_Relao_EMP
2. O pr-processador pode varrer todo o programa de aplicao,
identificando grupos de comandos associados s mesmas RIs.
Sendo assim os respectivos testes podem ser inseridos aps todos os
comandos do grupo correspondente. Por exemplo:
Atualiza_Salrio_Emp (e-no = E-1)
Remove_Tupla_Emp (e-no = E-2)
Atualiza_Tupla_Seo (s-totsal)
Testa_Ris:
51
Vises
Relaes, no modelo relacional, so as tabelas fsicas no banco de
dados. As vises so relaes virtuais derivadas das relaes do banco de
dados, ou seja, tabelas virtuais derivadas das tabelas fsicas do banco de
dados.
Uma viso criada com o intuito de melhorar a segurana de acesso
ao banco de dados, e gerar relaes que melhor se adequam s
necessidades de uma aplicao, para um determinado usurio (ou grupo
de usurios).
Uma viso pode ser encarada como uma janela para um conjunto de
dados mantidos em um BD. Considerando um BD relacional, por exemplo,
uma viso seria uma relao virtual derivada a partir de dados de uma ou
mais relaes do esquema. Esta derivao transparente para a aplicao
que a manipula, ou seja, para a aplicao como se os dados da viso
fossem tabelas mantidas fisicamente no BD.
Vises so dinmicas por definio, ou seja, sempre refletem o estado
atual dos dados das relaes das quais derivam. Caso novos dados sejam
inseridos, ou alguns deles modificados diretamente nas tabelas, os mesmos
sero naturalmente vistos por futuras consultas solicitadas s vises que
tm acesso a estes dados.
Por exemplo:
a) Um funcionrio do hospital no deve ter acesso a
todos os dados pessoais de um paciente, somente ao seu
cdigo e nome;
b) Pode ser interessante vincular os dados de um
mdico aos dados de suas consultas
O principal cuidado quando se define uma viso consider-la
passvel de atualizao ou no. Por default, toda viso passvel de
consulta. Por outro lado, nem toda viso atualizvel. Se nenhum tipo de
controle for feito explicitamente pelo projetista do BD ou implicitamente pelo
SGBD, dados inconsistentes podem surgir no BD, em decorrncia de uma
atualizao proveniente de uma viso. necessrio que toda viso
atualizvel atenda as seguintes premissas (supondo um BD relacional):
1) Toda viso atualizvel deve preservar a chave primria (CP) da
relao da qual deriva.
54
55
Vantagens
Elas fazem com que o mesmo dado seja visto por diferentes
usurios de diferentes formas (ao mesmo tempo);
A percepo do usurio simplificada;
bvio que o mecanismo da viso possibilita aos usurios
centrarem-se unicamente nos dados que lhes so importantes e
ignorarem o resto. O que talvez no seja to bvio que, pelo
menos na recuperao (consulta), tal mecanismo tambm possa
simplificar consideravelmente as operaes de manipulao de
dados feitas pelo usurio;
Segurana automtica para os dados ocultos Dados ocultos
so aqueles no visveis atravs de determinada viso. Ficam
claramente protegidos por meio desta viso especfica. Assim,
obrigar os usurios a acessar o banco de dados atravs de vises
um mecanismo simples, porm eficaz de controle de
autorizao.
Triggers
Um trigger foi definido inicialmente como um procedimento prdefinido de um banco de dados, condicional ou incondicionalmente
sucedido ou precedido de outras operaes do banco de dados
automaticamente (K.P Eswaran, "Specifications, Implementations and
Interactions of a Trigger Subsystem in an Integrated Database System," IBM
Research Report, RJ1820, 1976). Isto significa, cdigos procedurais ou uma
seqncia de operaes codificadas em uma mistura de SQL e comandos
de programao. Um trigger , ento, uma lgica de processamento
procedural, armazenada nos SGBD's e executada automaticamente pelos
servidores de SGBD sob condies especficas. A palavra automtica
muito importante - aplicaes ou usurios no disparam triggers, eles so
executados automaticamente quando as aplicaes ou usurios realizam
operaes especficas sobre a base de dados. Um trigger tem os seguintes
componentes:
Coao (situao): a situao de integridade ou regra de negcio
forada pelo trigger, em outras palavras, a proposta desta ferramenta.
Na prtica, aparece no cabealho do trigger e deve refletir-se no seu
nome. Por exemplo, Abertura de Balano Positivo requer que todas
novas contas devem ter saldos positivos.
Evento: uma situao especfica ocorrendo na base de dados, que
indica quando a situao deve ser forado. O evento dito para ser
realizado quando a situao ocorre. O evento especificado de duas
maneiras:
Estado de alterao da base de dados e
Condio de atributo opcional usado para extrair algumas das
situaes alteradas.
Exemplo: somente inclui-se registro na tabela PLANO com valores positivos no
atributo saldo.
Ao: uma procedure ou seqncia de operaes procedurais que
implementam uma lgica de processamento requerida obrigadas pela
situao. Por exemplo, a ao deve forar a regra de negcio que
contas contbeis no podem ter saldo negativo na abertura de balano.
Isto pode ser feito pela rejeio da operao de insero se o balano
de abertura negativo, ou pela substituio do valor negativo por zero e
sua insero numa tabela de acontecimentos. A condio if implicada
reala um outro ponto : operaes de manipulao convencional em
SGBD tambm so limitadas para implementar as aes requeridas. Eles
devem ser estendidos com construes procedurais como repeties
57
Vantagens
A principal caractersticas que eles so armazenados e executados
no banco de dados. Segue algumas outras vantagens :
O trigger sempre disparado quando o evento associado ocorre
Desenvolvedores de aplicativos no tem a lembrana para incluir a
funcionalidade em todas a aplicaes e os usurios no podem desviar dos
triggers atravs de ferramentas interativas. A maioria dos SGBDs tem alguns
mecanismos para desviar dos triggers, ou por desativao temporria ou
usando um trace point. Este artifcio somente pode ser usado por pessoas
altamente responsveis pelos seus atos.
Triggers so administrados cetralizadamente
Eles so codificados, testados e, ento, forados para todas
aplicaes de acesso ao Banco de Dados. Os triggers so usualmente
controlados e at controlados, por um DBA experiente. O resultado que os
triggers so implementados eficientemente.
A ativao central e o processamento de triggers adapta perfeitamente
a arquitetura cliente-servidor
Uma simples requisio de um cliente pode resultar em uma
seqncia completa de verificaes, e a execuo de operaes
subsequentes sobre o banco de dados. Os dados e as operaes no so
trafegadas pela rede entre cliente e servidor.
Pelo motivo de que os triggers so to poderosos, eles devem ser
gerenciados muito bem e usados corretamente. Triggers ineficientes podem
corromper a integridade dos dados.
Utilizao de Triggers
Triggers so extremamente poderosos e podem ser usados para vrios
propsitos:
58
59
60