quarta-feira, 10 de março de 2010

Base de Dados

O que é uma base de dados

De serta forma genérica, podemus dizer que uma base de dados é um conjunto de dados relacionados, acessiveis a uma comunidade de utilizadores. desde tempos imemoraveis o homem guardou em armários, gavetas(...) os dados importantes relativos as suas actividades - as primeiras base de dados.
a partir de meados do SEC XX, verificou-se um grande aumento no volume dos dados nelas utilizados. Ao mesmo tempo verificou-se um grande desenvolvimento dos computadores, que se tornaram mais acessiveis. Surge assim, de forma natural a introdução dos computadores nas organizações com objetivos de servir de suporte ás bases de dados nelas existentes. Numa primeira fase, surgem os chamados Sistemas de Ficheiros e só posteriormente são desenvolvidos os Sistemas de Bases Dados. Com ambos se pretende obter acesso rápido aos dados gerando a informação necessarias as diversas actividades. Os dados são guardados em ficheiros e a partir deles são gerados relatorios com informação pretendida. Actualmente, quando nos refirimos a Bases de dados, queremos refirir-nos ás Bases de Dados em suporte informaticos.


O que é uma Base de Dados Racional

No modelo racional, os dados são representados como um conjunto de tabelas, com linhas e colunas. Para simplificar, a cada colunaa chamamos CAMPOS e a cada linha REGISTO. Uma Base de Dados racional consiste num conjunto de tabelas apropiadamente estruturadas, ou seja, um conjunto de tabelas normalizadas. Na imagem abaixo pode ver uma tabela do modelo racional.
Cada tabela pode representar-se indicando o seu nome e o conjunto de caracteristicas sobre as quais se pretende guardar informações - os campos. Na imagem seguinte mostra-se um conjunto de tabelas do modelos recional. Este conjunto de tabelas constitui a base de dados EDITORA, que se ira servir de base a todos os exemplos apresentados.

Quando se inicia a utilização de base de dados, existe tendencia para se considerar apenas uma tabela. No nosso exemplo poderiamos considerar apenas uma tabela com todas vendas dos vários livros, incluindo toda a informação restante. Na verdade, isso obriga á repetição desnecessária de informação (redundancia): a informação sobre um livro que apresenta varias vendas repete-se em cada venda. É importante criar tabelas mque mantenham o minimo de informação, ao mesmo tempo que mantemos uma base de dados facil de usar e flexivel. Para o conseguir, é necessario utilizar tabelas, o que torna a base de dados mais eficiente.
Para obtenção das varias tabelas do modelo relacional podemos começar por identificar tudo aquilo sobre o que queremos guardar informação na nossa base de dados - as ENTIDADES. No exemplo da editora identificamos: VENDAS, LIVROS, COLECÇÕES, AUTORES e NACIONALIDADE. Seguidamente, identificamos as várias caracteristicas de cada uma das entidades: NOME, TELEFONE, DATAEDIÇÃO, etc...(Consulte a imagem seguinte). Em alternativa, pode-se partir uma de uma tabela inicial, dividindo-a em varias tabelas atraves de um processo que se chama NORMALIZAÇÃO. Para uma informação mais pormenorizada sobre estes assuntos consulte o livro DESENHO E IMPLEMENTAÇÃO DE BASE DE DADOS com Ms Access XP (CENTRO ATLANTICO), nos capitulos 4 e 5 da parte I.


Não é suficiente termos identificadas as tabelas necessarias. As tabelas do modelos relacional relacionam-se atraves da existência de atributos comuns. É necessario a identificação de todos os relacionamentos indicão-se atraves das linhas que liguam os campos das tabelas que se relacionam. Por exemplo,CodRevendedor da tabela Vendas relaciona-se com CodRevendedor da tabela Revendedores.
Existem três tipos de relacionamento, considerado número de registo de uma tabela que se relacionam com os registo de outras tabelas:
.1 para 1(designam-se 1:1)
.1 para muitos(designam-se por 1:M ou 1:infinito)
.muitos para muitos( designam-se por N:M ou infinito:infinito)


Os relacionamentos de 1:1 são raros e não existe nenhum exemplo no nosso caso da base de dados. EDITORA. Este tipo de relacionamento acontece quando cada registo de uma tabela está relacionado com uma registo da tabela e vice-versa.

Os relacionamentos 1:M são os comuns. Este tipo de relacionamento acontece quando um registo de uma tabela1 se relaciona com muitos registos numa outra tabela tabela2, mas cada registo da tabela2 se relaciona apenas com um registo da tabela1. No exemplo EDITORA, existem varios relacionamento deste tipo. Por exemplo, CodColeção da tabela LIVROS e CodColeção da tabela Coleção -> cada livro pertence a uma só coleção mas cada colecção contem varios livros.
Em praticamente todas as base de dados existem relacionamentos de tipo N:M. Isto acontece quando um registo de uma tabela1 se relaciona com muitos registos numa outra tabela2, e cada registo da tabela2 se relaciona com muitos registos da tabela1.
Nesta situação temos de criar uma nova tabela, intermedia, a que chamamos tabela de ligação, transformando este relacionamento em dois relacionamentos de tipo 1:M, pois o Access apenas permite a existencia de relacionamentos de tipo 1:1 e 1:M. No exemplo Editora, uma venda pode conter varioa livros e cada livro pode estar presente em varias vendas. Criou-se assim a tabela ligação VENDAS\LIVROS.
Existem alguns conceitos fundamentais, associados as base de dados relacionais, que apresentamos de seguida.

CHAVE PRIMEIRA
Para todas as tabelas do modelos relacional de base de dados terão de ser identificadas as chaves primarias. Uma chave primaria é composta por um ou mais atributos que identificão de forma unívoca cada registo de uma tabela. por exemplo, na tabela Autor da base de dados Editora podemos identificar CodAutor como a chave primaria da tabela, visto que, atribuindo um unico valor esse atributo, obtemos um unico registo(linha da tabela) ou, neste caso especifico, um Autor. Existem situações em que é necessario considerar um conjunto de atributos em cada vez de um só atributo. Como exemplo vemos a tabela autores\Livros, cuja chave primaria é construida pelos dois atributos CodAutor + CodLivro, dado que só conseguimos identificar unicamente uma linha da tabela atribuindo valores aos dois atributos em simultanio.

CHAVE ESTRANJEIRA
Como já vimos, as tabelas do modelo relacional relacionam-se atraves da existencia de compos comuns. Nesta situação, um campo de uma tabela, que se relaciona com um campo de uma tabela, que se relaciona com um campo que é campo que é chave Primaria de outra tabela, diz-se uma chave estrangeira. na base de dados Editora, por exemplo, o campo CodRevendedor da tabela vendas é uma chave Estrangeira, pois relaciona-se com o atribouto CodRevendedor da tabela Revendedores.

REGRAS DE INTEGRIDADE

Em qualquer base de dados é importante definir um conjunto de regras que garantam a adequação dos dados - regras de integridade. Além das regras de integridade que podem ser definidas pelo utilizador da base de dados( como, por exemplo, "o salario de um funcionario não pode ser inferior ao salario minimo nacional" ou "a idade de um cliente tem de ser um número positivo"), existem regras de integridade inerentes ao propio modelo racional. Existem duas regras de integridade inerentes ao modelo racional que são a regra de INTEGRIDADE DE ENTIDADE e a regra de integridade referencial.

INTEGRIDADE DE ENTIDADE

esta regra diz.nos que numa tabela nenhum dos campos da chave primaria pode ser nulo, isto é, tera de lhe ser atribuido algum valor.

INTEGRIDADE REFERENCIAL

Esta regra diz.nos que, existindo uma chave estrangeira numa tabela, ou o seu valor existe num registo da tabela onde é chave primaria ou o(s) campo(s) que a constitui(em) é(são) nulo(s).


A LINGUAGEM SQL