Sei sulla pagina 1di 7

TECNOLOGIA EM REDES DE

COMPUTADORES
Disciplina: Fundamentos de Banco de Dados
Professor: Henrique Leito
Resumo
Captulo 3 (O modelo de dados relacional e as restries em banco de dados relacionais)
Livro Sistemas de banco de dados /Ramez Elmasri e Shamkant B. Navathe 6 ed. So
Paulo : Pearson Addison Wesley, 2011.

Introduo
O modelo relacional foi introduzido por Ted Codd, da IBM Research, em 1970 e
atraiu ateno imediata por ser simples e ter base matemtica, fazendo uso de relaes
matemticas como bloco de montagem bsico e da teoria de conjuntos e lgica de predicado
como base terica.
Na dcada de 1980, surgiram as primeiras implementaes comerciais do modelo
relacional, como o SGBD da Oracle, e desde ento o modelo foi implementado em grande
quantidade de sistemas comerciais. Os SGBDs relacionais mais populares atualmente so
DB2 e Informix Dynamic Server, o Oracle e Rbd, o Sybase SGBD e o SQLServer e Access.
Existem ainda os de cdigo aberto como o MySQL e o PostgreSQL.
Os modelos que precederam o relacional so o modelo hierrquico e de rede, os quais
foram propostos na dcada de 1960 e implementados nos primeiros SGBDs. Eles ficaram
conhecidos como sistemas de banco de dados legados.
3.1 Conceitos do modelo relacional
No modelo relacional, o banco de dados representado como uma coleo de
relaes, as quais so semelhantes a tabelas de valores, ou a arquivos planos, at certo ponto,
por cada registro ter uma estrutura linear e plana.
Quando uma relao considerada uma tabela de valores, cada linha da tabela
representa uma coleo de valores de dados relacionados, as quais representam fatos
normalmente correspondentes a entidades ou relacionamentos. Os nomes da tabela e de
colunas so usados para ajudar na interpretao do significado dos valores de cada linha. Os
valores pertencentes a uma mesma coluna possuem o mesmo tipo de dados.
No modelo relacional, uma linha recebe o nome de tupla, um cabealho de coluna
chamado de atributo e a tabela denominada relao. O tipo de dados que cada coluna pode
receber representado por um domnio de valores.

3.1.1 Domnios, atributos, tuplas e relaes.


Domnio um conjunto de valores atmicos, ou seja, cada domnio indivisvel no
modelo relacional formal. Os domnios so especificados, comumente, definindo-se o tipo de
dado do qual so retirados os valores de dados que formam o domnio, sendo til definir um
nome para o domnio a fim de ajudar na interpretao dos valores. Como exemplo,
consideremos o domnio Medias_nota, o qual representa os possveis valores para calcular a
mdia das notas, cada um sendo um nmero real entre 0 e 4. Essa nomenclatura recebe o
nome de definies lgicas de domnio. Para cada domnio, um tipo de dado ou um formato
tambm deve ser especificado, assim como, quando necessrias informaes adicionais
podem ser usadas para interpretar valores.
Um esquema relacional composto por um nome de relao e uma lista de atributos.
Cada atributo o nome de um papel desempenhado por algum domnio no esquema de uma
relao. Para descrever uma relao usado um esquema de relao. O grau de uma relao
o nmero de atributos desse esquema de relao.
Uma relao de um esquema de relao o conjunto de n tuplas, sendo que cada tupla
uma lista ordenada de n valores em que cada valor um elemento do domnio ou possui o
valor NULL. Cada tupla na relao representa uma entidade em particular. As tuplas so
representadas em linhas e os atributos em forma de cabealho de colunas.
Cardinalidade o total de combinaes possveis em uma relao, ou seja, representa
o nmero total de possveis tuplas que podero existir em um estado de relao. O estado de
relao atual reflete apenas as tuplas vlidas que representam um estado em particular no
mundo real. possvel que vrios atributos tenham o mesmo domnio. Nesse caso, os nomes
de atributo indicam diferentes papis, ou interpretaes, do domnio.
3.1.2 Caractersticas das relaes
Por definio, as relaes possuem certas caractersticas que as tornam diferentes de
um arquivo ou tabela. Vejamos algumas caractersticas:
Ordenao de tuplas em uma relao
Uma relao no sensvel ordenao de suas tuplas. Ou seja, as tuplas no possuem
nenhuma ordem em particular, pois as relaes so definidas como um conjunto de tuplas e,
matematicamente, os elementos de um conjunto no possuem ordem entre eles. J nos
arquivos os registros so fisicamente armazenados no disco ou na memria, de modo que
sempre existe uma ordem entre eles, ou seja, existe sempre o primeiro, o segundo e o ltimo
registro do arquivo. A ordenao da tupla no faz parte da definio da relao, pois uma
relao tenta representar fatos em um nvel lgico ou abstrato. No existe preferncia para
ordenao de qualquer relao. Ao implementar uma relao como arquivo ou tabela, uma
ordenao em particular pode ser especificada sobre os registros do arquivo ou linhas da
tabela.
Ordem dos valores dentro de uma tupla e uma definio alternativa de relao.
De acordo com a definio, uma tupla uma lista ordenada de n valores, de modo que a
ordem dos valores em uma tupla importante. Entretanto, em nvel abstrato, a ordem dos
atributos e valores no importante, se mantivermos a relao entre o atributo e seu valor.

Uma definio alternativa de uma relao pode ser dada, tornando a ordem dos valores em
uma tupla desnecessria. Um esquema de relao um conjunto de atributos, em vez de uma
lista, e um estado de relao um conjunto finito de mapeamento onde cada tupla um
mapeamento de relao e domnio. Dessa forma, uma tupla pode ser considerada um conjunto
de pares (atributo e valor) em que cada par d o valor do mapeamento a partir do atributo para
um valor no domnio. O nome do atributo no importante, j que o nome vem acompanhado
de seu valor. Quando uma relao feita como arquivo, os atributos so fisicamente
ordenados como campos dentro de um registro.
Valores e NULLs nas tuplas
Os valores nas tuplas so atmicos, ou seja, no divisvel em seus componentes dentro
da estrutura do modelo relacional bsico. Assim, atributos compostos e multivalorados no
so permitidos. Dessa forma, atributos multivalorados tm que ser representados
separadamente e os compostos so representados por seus atributos de componentes simples
no modelo relacional bsico. Os valores NULL so utilizados para representar valores dos
atributos que podem ser desconhecidos ou que no se aplicam a uma tupla. Podem-se criar
diferentes cdigos para diversos significados de valores NULL. O significado exato de um
NULL determina como ele ser aplicado durante agregaes aritmticas ou comparaes com
outros valores, como nos casos em que a comparao de dois valores NULL gera
ambiguidade. Deve-se ento evitar o uso do NULL em um projeto ao mximo.
Interpretao de uma relao
O esquema de relao pode ser interpretado como uma declarao ou tipo de afirmao.
Cada tupla pode ser interpretada como uma instncia em particular da afirmao. Algumas
relaes representam fatos sobre entidades, outras podem representar fatos obre
relacionamentos. Logo, o modelo relacional representa fatos sobre entidades e
relacionamentos de forma uniforme como relaes, o que s vezes compromete a
compreenso, pois preciso descobrir se uma relao representa um tipo de entidade ou um
tipo de relacionamento.
3.2 Restries em modelo relacional e esquemas de bancos de dados relacionais
Existem muitas restries sobre os valores reais em um estado de banco de dados, as
quais derivam das regras que o minimundo do banco de dados representa. As restries
podem ser divididas em trs categorias: restries inerentes no modelo de dados, as quais
chamamos de restries implcitas; restries que podem ser expressas diretamente nos
esquemas do modelo de dados, em geral especificando-as na DDL, restries explcitas; e as
restries que no podem ser expressas diretamente nos esquemas do modelo de dados e
devem ser expressas e impostas pelos programas de aplicao, so as chamadas restries
semnticas ou regras de negcio.
3.2.1 Restries de Domnio
Especificam que dentro de uma tupla p valor de cada atributo deve ser um valor
indivisvel no considerado. Os tipos de dados associados aos domnios normalmente incluem
os tipos de dados numricos padro para inteiros e nmeros reais, sendo que caracteres,

booleanos, cadeias de caracteres entre outros tambm esto especificadas. Tambm pode-se
descrever outros domnios possveis por um subintervalo dos valores de um tipo de dados ou
conjunto deles enumerado, no qual todos os valores possveis so explicitamente listados.
3.2.2 Restries de chave e restries sobre valores NULL
Duas tuplas no podem ter igual combinao de valores para todos os seus atributos.
Em geral, usa-se subconjuntos de atributos de um esquema de uma relao com a propriedade
de que duas tuplas em qualquer estado de relao no devero ter a mesma combinao de
valores para esses atributos.
Uma superchave especifica uma restrio de exclusividade de que duas tuplas
diferentes em qualquer estado no podem ter o mesmo valor em um atributo. Cada relao
possui no mnimo uma superchave padro, mas uma superchave pode ter atributos
redundantes, de forma que um conceito til o de uma chave que no redundncia. Uma
chave de um esquema de relao uma superchave da relao com a propriedade adicional de
que a remoo de um atributo deixa um conjunto de atributos que no mais uma superchave.
Uma chave satisfaz duas propriedades: tuplas distintas em qualquer estado no podem ter
valores idnticos para atributos na chave (aplica-se a superchave); e uma superchave
mnima, ou seja, no podemos remover nenhum atributo e ainda mantemos uma restrio de
exclusividade na condio anterior (no exigida por uma superchave). Uma chave
determinada com base no significado dos atributos e a propriedade invarivel no tempo, ou
seja, ela permanece mesmo que se insiram novas tuplas. Um esquema de relao pode conter
vrias chaves e cada uma recebe o nome de chave candidata. Elege-se uma chave primria,
que uma candidata cujos valores so usados para identificar tuplas em uma relao.
Existem tambm restries quanto ao valor NULL, permitindo-o ou no. Como
exemplo temos os casos em que a tupla precisa ter um valor diferente de NULL para um
atributo, ento esse atributo restrito a ser NOT NULL.
3.2.3 Bancos de dados relacionais e esquemas de banco de dados relacional
Um esquema de banco de dados relacional S um conjunto de esquemas de relao
S=(R1, R2,..) e um conjunto de restries de integridade RI. Um estado de banco de dados
relacional DB de S um conjunto de estados e relao DB = (r1, r2,...), no qual cada r um
estado de R e os estados satisfazem as restries de integridade especificadas em RI.
Um estado de BD que desobedece alguma das restries de integridade chamado de
estado invlido, e um que satisfaz todas as restries no conjunto definido de restries de
integridade chamado de estado vlido. Verses antigas do modelo relacional faziam uma
suposio de que o mesmo conceito do mundo real teria nomes de atributos idnticos em
todas as relaes, quando representados em forma de atributos. O problema quando o
mesmo conceito do mundo real usado em diferentes papis na mesma relao. Todos os
SGBDs relacionais necessitam de uma linguagem de definio de dados (DDL) para
estabelecer um esquema de BD relacional. Geralmente usa-se a linguagem SQL.
As restrio de integridades so especificadas em um esquema de BD e espera-se que
sejam mantidas em cada estado de BD vlido de ume esquema.

3.2.4 Integridade, integridade referencial e chaves estrangerias.


Restrio de integridade de entidade diz que nenhum valor de chave primria pode ser
NULL, devido o valor da dessa chave ser usado para identificar tuplas nicas e uma relao e
ter valores NULL impossibilita isso. As restries de integridade referencial so especificadas
entre duas relaes e usadas para manter a consistncia entre tuplas nas duas relaes. Essa
restrio afirma que uma tupla em uma relao que faz referencia a outras relaes precisa se
referir a uma tupla existente nessa relao.
A fim de definir a intergridade referencial de maneira formal, necessrio usar o
conceito de chave estrangeira. Consideremos duas relaes (R1 e R2). O conjunto de atributos
ChE em R1 uma chave estrangeira de R1 que faz referencia relao R2 se ela satisfazer as
regras:
1. Os atributos de ChE devem ter o mesmo domnio que o atributos de chave primria de
R2;
2. Um valor de ChE em uma tupla do estado atual de R1 ocorre como um valor de ChE
para alguma tupla no estado atual de R2 ou NULL.
Aqui, R1 chamada de relao que referencia e R2 a relao referenciada. Tem-se a
restrio de integridade referencial mantida de R1 para R2 se essas condies se mantiverem.
Para identificar restries, deve-se ter conhecimento claro do significado ou papel de cada
atributo que fazem parte nos diversos esquemas de relao do BD. As restries de
integridade devero ser especificadas no esquema de BD relacional se quisermos impor essas
restries sobre os estados do Banco de Dados. Para isso a linguagem DDL inclui meios para
especificar restries para que o SGBD imponham-nas automaticamente.
3.2.5 Outros tipos de restries

Restries de integridade semntica: O nmero mximo que um funcionrio pode


trabalhar em um projeto X. Podem ser especificadas e impostas e programas de
aplicao que atualizam o BD, ou usando um linguagem de especificao de uso geral;
Restrio de dependncia funcional: estabelece relacionamento funcional entre dois
conjuntos de atributos. Especifica que o valor de um atributo determina um valor
exclusivo de outro em todos os estados de uma relao.
Restrio de transio: pode ser definido para lidar com mudanas de estado em
banco de dados. O salrio de um funcionrio s pode aumentar.. Costumam ser
impostas pelos programas de aplicao ou especificadas usando regras gerais.

3.3 Operaes de atualizao, transaes e tratamento de violao de restrio


As operaes no modelo relacional podem ser recuperaes e atualizaes. Uma
expresso da lgebra relacional forma uma nova relao aps a aplicao de uma srie de
operandos algbricos a um conjunto existente de relaes, com o intuito principal de consultar
o BD e recuperar informaes. O usurio formula uma consulta e especifica os dados de
interesse, e uma nova relao formada aplicando operandos relacionais para recuperar
resultados. A relao resultado a resposta para a consulta.

Existem 3 operaes bsicas que podem ser feitas em um BD: inserir, excluir e alterar.
Ao aplicar essas operaes as restries de integridade no devem ser violadas.
3.3.1 A operao Inserir
Oferece uma lista de valores de atributo para que uma nova tupla possa ser inserida em
uma relao. Pode violar qualquer um dos 4 tipos de restries. As de domnio so violadas se
for dado um valor de atributo que no aparece no domnio correspondente ou no do tipo de
dado apropriado. Viola as restries de chave se um valor de chave na nova tupla j existir em
outra na relao. A integridade de entidade pode ser violada se qualquer parte da chave
primaria da nova tupla for NULL. A integridade referencial pode ser violada se o valor de
qualquer chave estrangeira na tupla se referir a uma tupla que no existe na tabela
referenciada. Caso uma insero viole alguma restrio, rejeita-se a insero ou tenta-se
corrigir o motivo da rejeio.
3.3.2 Operao Excluir
Pode violar apenas a integridade referencial, caso uma tupla que esta sendo excluda
seja referenciada por chaves estrangeiras de outras tuplas no BD. A fim de especificar a
excluso uma condio sobre os atributos da relao seleciona a tupla a ser excluda.
Se uma excluso causar violao, existem opes para resolver. A primeira a
chamada restrict, que recusa a excluso. A segunda a cascade que tenta propagar a exluso,
excluindo tuplas que referenciam aquela que est sendo excluda. E a terceira set null ou set
default, que modifica os valores de atributo que referenciam a causa da violao, cada valor
desse tipo definido como NULL ou alterado para referenciar outra tupla de valor vlido.
Vale lembrar que combinaes dessas trs operaes possvel. Quando uma restrio de
integridade especificada na DDL, o SGBD permite que o projetista especifique qual dessas
operaes usar.
3.3.3 A operao Alterar
Usada para alterar os valores de um ou mais atributos em uma tupla de alguma
relao. Faz-se necessrio especificar uma condio sobre os atributos da relao para que
seja selecionada a tupla que se deseja modificar. Alterar atributo que no pertence chave
primria e nem estrangeira no causa problemas, basta verificar se o novo valor pertence ao
domnio. J modificar atributos que pertenam a chave primaria ou estrangeira equivalente a
excluir uma tupla e inserir uma nova no lugar. Caso atributo da chave estrangeira seja
modificado, o SGBD deve garantir eu o novo valor referencia a uma tupla existente na relao
referenciada. Em caso de violao de integridade, o SGBD permitir a usurio escolher
opes separadas para lidar com a violao.

3.3.4 O conceito de Transao


Transao um programa em execuo que inclui algumas operaes em um BD,
como inserir modificar e ler dados. Ao final de uma transao, ela tem que deixar o BD em
um estado vlido ou coerente, que satisfaa todas as restries especificadas no esquema do
BD. Uma transao pode englobar qualquer nmero de recuperaes, as quais formam uma
unidade atmica de trabalho. Um grane nmero de aplicaes comerciais, que executam com
BD relacionais em sistemas de processamento de transaes on-line, executa transaes que
atingem taxas de centenas por segundo.