quarta-feira, 24 de março de 2010

BASE DE DADOS

Os relacionamentos 1:M são os mais comuns.Este tipo de relacionamento acontece quando um registo de uma tabela1 se relaciona com muitos registos numa outra tabela2, mas cada registo da tabela2 se relaciona apenas com um registo da tabela1.No exemplo Editora, existem vários relacionamentos deste tipo.Por exemplo ,CodColecção da tabela Livros e CodColecção da tabela Colecção ->cada livro pertence a uma só colecção mas cada colecção contém vários livros.


Em praticamente todas as bases 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, intermédia, a que chamamos Tabela de ligação, transformando este relacionamento em dois relacionamentos de tipo 1:M, pois o Access apenas permite a existência de relacionamentos de tipo 1:1 e 1:M. No exemplo Editora, uma Venda pode conter vários Livros e cada Livro pode estar presente em várias Vendas.Criou-se assim a tabela de ligação Venda/Livro.


Existem alguns conceitos fundamentais, associados às Bases de Dados Relacionais, que apresentaremos de seguida.




Chave Primária




Para todas as tabelas do modelo relacional de bases de dados terão de ser identificadas as chaves primárias. Uma chave primária é composta por um ou mais atributos que identificam 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 primária da tabela,visto que, atribuindo um valor a esse atributo, obtemos um único registo (linha da tabela) ou, neste caso específico , um Autor. Existem situações em que é necessário considerar um conjunto de atributos em vez de um só atributo.Como exemplo vemos a tabela Autores/Livro, cuja chave primária é constituída pelos dois atributos CodAutor + CodLivro, dado que só conseguimos identificar univocamente uma linha da tabela atribuindo valores aos dois atributos em simultâneo.




Chave Estrangeira




Como já vimos, as tabelas do modelos relacional relacionam-se através da existência de campos comuns.Nesta situação, um campoo de uma tabela,que se relaciona com um campo que é Chave Primária 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 atributo 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 salário de um funcionário não pode ser inferior ao salário mínimo nacional" ou " a idade de um cliente tem de ser um número positivo"),existem regras de integridade inerentes ao próprio modelo relacional.Existem duas regras de integridade inerentes ao modelo relacional 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 primária pode ser nulo, isto é, terá de lhe ser atribuído 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 primária ou o(s) campo(s) que constitui(em) é(são) nulo(s).


A linguagem SQL


A maioria dos SGBD´s comerciais fornece uma linguagem declarativa de alto nível. A mais conhecida é a SQL,do inglês Structured Query Language. Esta linguagem permite fazer a definição de dados, a inserção e actualização de dados e também a definição de consultas. O Acess permite realizar estas operações através de formas mais amigáveis, que irão sendo explicadas ao longo dos capítulos seguintes.
Quando se inicia a utilização de bases de dados, existe tendência para considerar apenas uma tabela. No nosso exemplo poderíamos considerar apenas uma tabela com todas as vendas dos vários livros, incluindo toda a informação restante. Na verdade, isso obriga à repetição de informação (redundância): a informação sobre um livro que apresenta várias repete-se em cada venda. É importante criar tabelas que mantenham o mínimo de informação, ao mesmo tempo que mantemos uma base de dados fácil de usar e flexível. Para conseguir, é necessário utilizar várias tabelas, o que torna a base de dados mais eficiente.
Para obtenção das várias 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ção, Revendedores, Autores e Nacionalidades. seguidamente, identificamos as várias características de cada uma das entidades: Nome, Telefone, Data, Edição, etc. (consulte a imagem seguinte). Em alternativa, pode-se partir de uma tabela inicial, dividindo-a em várias tabelas através 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 Bases de Dados com Ms Access XP (Centro Atlântico), nos capítulos 4 e 5 da parte I.
Não é suficiente termos identificadas as tabelas necessária. As tabelas do modelo relacional relaciona-se através da existência de todos os relacionamentos existentes. Na imagem acima (e no Access), estes relacionamentos indicam-se através das linhas que ligam os campos das tabelas que se relacionam. Por exemplo, CodRevendedor tabela Vendas relaciona-se com CodRevendedor da tabela Revendedores.
Existem três tipos de relacionamentos, considerando o número de registos de uma tabela que se relacionam com registos de outras tabelas:
  • 1 para 1 (designam-se por 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 relacionamentos acontece quando cada registo de uma tabela está relacionado com um registo da outra tabela e vice-versa.

quarta-feira, 10 de março de 2010

Base de dados

O que é base de dados

De uma forma genética, podemos dizer que uma Base de Dados é um conjunto de dados relacionados, acessíveis a uma comunidade de utilizadores. Desde tempos imemoriais o homem guardou em armários, gavetas (...) os dados importantes relativos às suas diversas actividades - as primeiras Bases de Dados.
A partir de meados do século XX, verificou-se um grande crescimento das organizações o que provocou um grande aumento no volume dos dados nelas utilizados. Ao mesmo tempo verificou-se um grande desenvolvimento dos computadores, que se tornaram mais acessíveis. Surge assim, de forma natural, a introdução dos computadores nas organizações com o objectivo 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 Base de Dados. Com ambos se pretende obter acesso rápido aos dados gerando a informação necessária às diversas actividades. Os dados são guardados em ficheiros e a partir deles são gerados relatórios com a informação pretendida. Actualmente, quando nos referimos a Base de Dados, queremos referir-nos às Bases de Dados em suporte informático.

O que é uma Base de Dados Relacional

No modelo relacional, os dados são representados como um conjunto de tabelas, com linhas e colunas. Para simplificar, a cada coluna chamamos Campo e a cada linha Registo. Uma Base de Dados Relacional consiste num conjunto de tabelas apropriadamente estruturadas, ou seja, um conjunto de tabelas normalizadas. Na imagem abaixo pode ver uma tabela do modelo relacional.
Cada tabela pode representar-se indicando o seu nome e o conjunto de características sobre as quais se pretende guardar informação - os campos. Na imagem seguinte mostra-se um conjunto de tabelas do modelo relacional. Este conjunto de tabelas, constitui a base de dados Editora, que irá servir de base a todos os exemplos apresentados.