Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
MÓDULO 2
GESTÃO DE BASE DE
DADOS
ÍNDICE
ASPECTOS GENÉRICOS SOBRE BASE DE DADOS ....................................................... 3
Dos ficheiros de dados aos Sistemas de Gestão de Base de Dados - (SGBD) ................... 3
Ficheiros de Dados, Registos e Campos ......................................................................... 3
Sistema de Gestão de Base de Dados ................................................................................. 5
Funções de um S.G.B.D. ................................................................................................. 5
As tabelas como elementos fundamentais do modelo relacional ........................................ 6
Propriedades das tabelas e regras da sua constituição .................................................... 6
Exemplos de violações das regras do modelo relacional: ............................................... 7
Chaves de uma tabela.......................................................................................................... 8
Relacionamentos e chaves externas .............................................................................. 10
Preservação da integridade da informação ................................................................... 11
Base de Dados
Fx. de Dados
Registos
Programas de
aplicação que
Campos manipulam a base de SGDD
dados
Caracteres
Bytes
Bits
FUNÇÕES DE UM S.G.B.D.
O trabalho com Bases de Dados implica diversos tipos de operações sobre os ficheiros
e os dados que eles contêm, nomeadamente:
eliminar registos
eliminar ficheiros
etc.
Cada tabela é designada por um nome único dentro da Base de Dados e corresponde
a uma entidade ou a um relacionamento entre entidades.
As várias linhas podem conter dados repetidos em alguns campos, mas, considerando
o conjunto de todos os campos, não podem existir linhas iguais - cada linha representa
uma entidade única ou relacionamento único entre entidades.
Para que uma tabela seja corretamente constituída deve respeitar as seguintes regras:
não pode haver duas colunas (campos ou atributos ) com o mesmo nome; cada
coluna é identificada de modo único;
não deve haver campos vazios: caso o valor de um campo seja desconhecido
ou não aplicável, então deve ser preenchido com um valor nulo especial; os
S.G.B.D. podem admitir campos vazios, mas em relação aos campos - chave
isso não é permitido.
o domínio de cada atributo deve ser constituído por valores simples (que não
possam ser subdivididos em partes elementares); não é permitido incluir mais
do que um valor em cada campo por registo.
cada linha da tabela representa uma entidade ou ocorrência única, não podendo
por isso haver registos duplicados.
Fornecedor
não nula - nenhum dos atributos que formam uma chave primária poderá conter
não redundante - no caso de uma chave primária ser composta, não deve ser
incluído mais atributos do que os mínimos necessários para identificar os
registos de forma única; um atributo de uma chave composta não poderá ser
retirado dessa chave, pois se o for, o atributo ou os atributos deixam de ser
unívocos.
Pretendemos que a Base de Dados nos seja capaz de dar respostas a perguntas como:
Para tal, teremos de estabelecer um relacionamento entre duas entidades. Neste caso,
temos um relacionamento do tipo vários-para-vários (ou N para N), visto que:
Para traduzir este relacionamento em tabelas, necessitamos de três tabelas: para além
das duas tabelas correspondentes às duas entidades em causa (Fornecedor e Produto),
necessitamos de uma terceira tabela, onde iremos registar as relações entre as duas
Quando a chave de uma tabela é incluída como campo numa outra tabela, então do
ponto de vista desta última tabela, diz-se que se trata de uma chave externa.
Portanto, uma chave externa é um atributo que é chave primária de uma tabela e que
vai aparecer como atributo de uma outra tabela.
integridade de entidade;
integridade referencial.
Sempre que é introduzido um valor num campo que é chave externa de uma tabela, o
sistema tem de certificar-se que esse valor existe na chave primária da tabela
referenciada por aquela chave externa. Caso contrário, a Base de Dados passaria a ter
uma inconsistência ou uma falha de integridade referencial.
Por outro lado, sempre que se quiser alterar ou apagar um registo numa tabela e
acontecer que esse registo esteja relacionado com registos de outra tabela (através de
um mesmo valor na chave primária da primeira tabela e na chave externa da segunda),
então estamos perante uma outra possibilidade de violação da integridade referencial
- ficarmos com registos que referenciam um registo que deixou de existir.
Fornecedor
ForneceProduto
Produto
T1 Torneira TX
T2 Torneira TW
C1 Cano CK
C2 Cano CJ
Figura 1
Com base nas tabelas apresentadas na figura 7, vejamos alguns exemplos concretos,
os casos mais comuns de violação da integridade referencial:
O SGBD ou a aplicação que estiver a gerir a Base de Dados deve estar preparado para
evitar estas situações em que a informação perde consistência ou integridade
referencial, enviando mensagens ao utilizador que lhe permitam retificar a operação.
o etc.
NOTA DE ENCOMENDA
Produto
Código Nome Preço Quantidade
Total
ou
Encomenda
Nr_nota enc
Data_enc
Cod_cliente
Nome_cliente
Morada_cliente
Produto *
Cod_prod
Preco_prod
Nome_prod
Quant_enc
Total_enc
Quando uma entidade não está na 1FN diz-se que está na Forma Não Normalizada.
Encomenda Encomenda_produto
Nr nota enc Nr nota enc
Data_enc Cod_prod
Cod_cliente Preco_prod
Nome_cliente Nome_prod
Morada_cliente Quant_enc
Total_enc
Após a decomposição é conveniente analisar cada uma das entidades obtidas, pois
pode ocorrer que alguma delas ainda não se encontre na 1FN; o que não é o caso do
exemplo apresentado.
está na 1FN;
está na 2FN;
e todos os atributos não chave não dependerem de outros atributos não
chave.
No exemplo anterior, tanto a entidade Enomenda_produto como a Produto estão na
3FN. Este facto explica-se deste modo:
Conclui-se deste modo que a entidade Encomenda não se encontra na 3FN, pois os
seus atributos Nome_cliente e Morada_cliente não dependem da chave
(Nr_nota_enc), mas sim de um outro atributo também não chave (Cod_cliente).