quarta-feira, 12 de maio de 2010

Compreender as Bases de Dados do Access

Como sabemos, as Bases de Dados são colecções de informações devidamente estruturadas e organizadas. No Access, todas as Bases de Dados são armazenadas num único ficheiro que contém os seus respectivos objectos. Os objectos da base de dados são os seus principais componentes, pois asseguram os diversos procedimentos associados à sua utilização e manipulação.
Os seguintes objectos estão disponíveis no Painel de Navegação e são apresentados numa orientação vertical.

TABELAS
Objecto que apresenta todas as tabelas da base de dados. As tabelas são colecções de dados sobre um determinado tema, que serão armazenados sobre a forma de registo e campos.

CONSULTAS
Objecto que apresenta todas as Consultas de base de dados. As consultas são utilizadas para seleccionar um conjunto de informações, normalmente segundo condições pré-estabelecidas. Também podem ser utilizadas como a origem de registos para formulários, relatórios e páginas de acesso a dados.

FORMULÁRIOS
Objecto que apresenta todos os formulários da base de dados. Também designados por ecrãs de apresentação, são utilizados para introduzir ou apresentar dados numa base de dados. Um formulário pode representar um painel de navegação que abre outros formulários e relatórios na base de dados ou uma caixa de diálogo personalizada que aceita as entradas do utilizador e executa acções com base nessas entradas.

RELATÓRIOS
Apresenta todos os relatórios de base de dados. Os relatórios são uma forma eficaz de apresentar
os dados num formato impresso, e podem assumir diversas formas, desde uma simples tabela a listagens com agrupamento de dados e cálculos numéricos.

MACROS
Apresenta todas as Macros da base de dados. As marcas são constituídas por um conjunto da comandos que têm por objectivo automatizar tarefas comuns de dados. Ao utilizar grupos.

MÓDULOS
Os Módulos são um conjunto de declarações, instruções e procedimentos executados na linguagem de programação do Access (VISUAL BASIC), com o objectivo de facilitar a gestão da informação, executando acções difíceis de conseguir em modo de utilização.

CONSTRUÇÃO DE TABELAS EFICIENTES
Uma base de dados é constituída por grupos de campos organizados em tabelas. Por sua vez, uma tabela é uma estrutura de dados que tem o propósito de armazenar um grupo específico de informação organizado em registos e campos. Cada grupo de informação será armazenado na sua tabela específica, sendo possível estabelecer entre as mesmas relacionamentos que facilitem a compreensão e utilização dos seus respectivos dados.
O planeamento de uma base de dados começa precisamente pela definição e estruturação de um conjunto de tabelas. Por conseguinte, este processo poderá condicionar o sucesso da aplicação, pois os restantes objectos como consultas, formulários ou relatórios assentam em tabelas pré-definidas.

OPÇÕES PARA A CRIAÇÃO DE UMA TABELA
O Access 2007 disponibiliza um conjunto de opções para a criação de uma nova tabela. Antes de começarmos este procedimento temos de considerar os diferentes modos de criação, bem como as particularidades associadas a cada um.

INTEGRIDADE REFERENCIAL
Em alguns relacionamentos o Access pode reforçar a integridade referencial, quando podemos inserir ou apagar registos em tabelas relacionadas. A integridade referencial ajuda a garantir que os relacionamentos entre os registos são válidos e que nós não apagamos acidentalmente dados relacionados. O Access pode reforçar a integridade referencial quando as condições são conhecidas:
  • O campo relacionado pela primeira tabela é chave primária ou tem uma única indexação.
  • Os campos relacionados têm o mesmo tipo de dados.
  • Ambas as tabelas pertencem à mesma base de dados do Access (se as tabelas estão ligadas, elas têm que pertencer à mesma base de dados do Access).
Na janela da imagem do ponto "Criação de Relacionamentos" podemos assinalar as opções relacionadas com a integridade referencial. No entanto, só assinalando a primeira opção, podemos assinalar as outras duas. As opções são as seguintes:
  • Impor a integridade referencial. Não é permitido introduzir um valor de um registo num campo que é chave estrangeira, se esse valor não existir num registo da tabela onde aquele campo é chave primária.
  • Propagar actualização dos campos relacionados. Não pode ser alterado o valor de um registo num campo que é chave primária numa tabela, se numa outra tabela relacionada com a primeira, existirem registos que apresentam esse mesmo valor no campo correspondente (chave estrangeira).
  • Propagar Eliminação dos campos relacionados. Não poder ser eliminado um registo numa tabela, se, numa outra tabela relacionada com a primeira, existem registos que apresentem, no campo chave estrangeira, valores que correspondem ao registo que se pretende eliminar.

TIPOS DE RELACIONAMENTOS
Para relacionamentos em que a integridade referencial é reforçada, existe a possibilidade de estabelecer um de dois tipos de relacionamento: "um-para-muitos". No caso do tipo de relacionamento ser de "um-para-muitos", cada registo na primeira tabela pode ser associado com muitos registos na tabela relacionada, ou seja, cada valor do campo chave primária aparece muitas vezes na tabela relacionada. No relacionamento de "um-para-muitos", cada registo da primeira tabela pode ser associado apenas com um registo da tabela relacionada. Na maioria dos casos, ambas as tabelas estão ligadas pelo campo chave primária. Este tipo de relacionamento não é muito usual, utilizando-se normalmente para dividir tabelas com muitos campos em tabelas mais pequenas.

Muitos-para-muitos em campos de múltiplos valores
Conforme já referimos no capítulo 2, esta é uma nova funcionalidade do Access 2007. Como o próprio nome sugere, este é um campo que pode guardar vários valores de uma só vez. Para configurar um campo com estas características, teremos de recorrer às suas propriedades, mais concretamente à Lista de pesquisa (ver 6.4). Nesta secção, seleccionamos a tabela que contém os valores a serem inseridos neste campo e accionamos a propriedade permitir vários valores (alterar o não para sim).




ALTERAÇÃO DA ESTRUTURA DA RELACIONAMENTOS
Caso seja necessário, podemos efectuar alterações numa estrutura de relacionamentos já criada e guardada. Para tal, devemos começar por aceder à janela de relacionamentos, clicando sobre o botão relações no separador ferramentas da Base de Dados do friso

Para alterar as opções de integridade referencial deveremos seleccionar o relacionamento respectivo e, posteriormente, seleccionar o botão editar relações.

Para eliminar uma linha de relacionamento entre duas tabelas, basta clicar sobre ela uma vez (o que provoca a sua relação) e, em seguida, clicar em eliminar.
Para visualizar os relacionamentos da nossa Base de Dados devemos escolher a opção (todas as relações) no separador ferramentas da Base de Dados para visualizar um relacionamento em particular, devemos escolher a opção (relação directas), no mesmo separador.


NAVEGAÇÃO NOS RELACIONAMENTOS
Tal como já foi referido, a utilidade da imposição de relacionamentos

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.

quarta-feira, 6 de janeiro de 2010

Base de Dados

Modelos de base de dados relacional



  • Nas bases de dados relacionais a estrutura fundamental é a relação ou tabela.

  • Uma relação é definida por um esquema que é composto pelo nome da relação e por um ou mais atributos.

Tabela: objectos, atributos e valores



Modelo relacional: relação (ou tabela)

Dada uma colecção de conjuntos de valores (domínuios)

D1, D2 ,..., Dn, define-se o seu produto cartesiano

D1x D2x...xDn

A cada duplo (a1, a2,..., an) deste produto cartesiano da-se o nome de instância.

R é uma relação (ou tabela) se for um subconjunto de instância.

Cada elemento da relação (ou tabela) é designado por registo da tabela.

BDs em geral: registo/campos/valores

Dados geográficos:

objectos/atributos/valores, em que os objectos ser ploígonos, linhas, pontos, ...

SEleccionar todos os objectos

Sintaxe - 1ª variante:

SELECT

FROM

Onde

*especifica e todos os campos devem ser seleccionados

Table:

especifica o nome da tabela que tem os campos e os registos seleccionados

Field: especifica os nomes dos campos que são seleccionados

A cláusula WHERE

permite especificar uma condição que os registo seleccionados verificam.

Sintaxe - 2ª variante:

SELECT fieldlist

FROM table

WHERE condition;

onde

codition é uma condiçºao que os registos seleccionados verificam;

podem ser utilizados por exemplo:

  • operadores relacionais (<, <=. >, >=, =, <>),
  • operadores lógicos ( NOT, AND, OR) e os
  • operadores IN, BETWEEN e LIKE.