quarta-feira, 12 de maio de 2010

Base de Dados do Access


Como sabemos, as base de dados são colecções de imformações devidamente estruturadas e organizadas. No access, todas as Bases de dados são armazenadas num único ficheros que contém os seus respeitivos objetivos. Os objetivos da Base de dados de são os seus principais componentes, pois asseguram os diversos procedimentos associados á sua utilixação e manipulação.
Os seguintes objetivos estão disponiveis no Painel de navegação e são apresentados numa orientação vertical:


TABELAS

Objeto que apresenta todas as tabelas de base de dados. As tabelas são colecção de dados sobre um determinado tema, que serão armazenados sobre forma de registos e campos.

CONSULTAS

Objecto que apresenta todas as consultas de base de dados. As consultas são utilizadas para celecionar um conjunto de imformação, normalmente segundo condições pre-estabelecidas. tanbem podem ser utilizadas como origem de registos para formularios, relatorios e paginas de acesso a dados.

FORMULARIO

Objecto que apresenta todos formularios da base de dados. tanbem designados por ecrãn de apresentação são utilizadas para introduzir ou apresentar dodas numa basa de dados. Um formulario pode representar um painel de navegação que abre outros formularios e relatorios na base de dados ou uma caixa de dialogo personalizadas que aceita as entradas de utilizadores e executa acções com base nessas entradas.

RELATORIOS

Apresenta todos os relatorios de base de dados.
Os relatorios são uma forma eficaz de apresentar os dados num formulario impresso, e podem assumir diversas formas, desde uma simples tabela a listagem com agrupamento de dados e calculos numericos.

MACROS

Apresenta todas as macros de base de dados. As macros são constituidas por um conjunto de comandos que tem por objectivo automatizar tarefas comuns na base de dados. Ao utulizar grupos de macros, pode-se desempenhar varias tarefas em simultanio.

MÒDULOS

Os modulos ão conjuntos de declaração, instruções e procedimentos executados na linguagem de pogramação do access (visual basic), executando acções deficeis de conseguer em modo de utilização.


CONTRUÇÂO DE TABELAS EFICIENTE

Uma base de dados é constituida por grupos de campos organizados em tabelas. Por sua vez uma tabela estruturada de dados que tem o proposito de armazenar um grupo especifico de imformação organizado em registos e campos. cada grupo de imformação sera armazenado na sua tabela especifica, sendo possivel estabelecer entre as mesma relacionamentos que facilitam a compreenção e utilização dos seus respeitivos dados.

Opções para a criação de uma tabela

O access 2007 disponibiliza um conjunto de opções para a criação de uma tabela. Antes de cumeçarmos a este procedimento temos de considerar os deferentes modos de criação, bem como as particularidades associadas a cada um.
Para criar uma tabela access devemus partir do separador Criar do friso. Depois de activido o separador, surge uma área com quatro botões que possibilitam as sguintes opções de criação de tabelas:
.Tabela - a criação da tabela é feita a partir da inscrição de um conjunto de dados sendo estes configurados automaticamente.

.MOdelos de Tabelas - a criação da tabela é feita com base em modelos predifinidos.

.Lista do SharePoint - cria lista para o site do SharePoint.

.Estrutura da Tabela - a criação da tabela é feita totalmente pelo utilizador, indicado os campos e as suas Propiedades.


Relacionamentos entre Tabelas

Para uma base de dados funcionar de forma eficiente as suas tabelas devem estar devidamente relacionadas, caso contrario não havera um fluxo de dados coerente e lógico, provocando normalmente problemas de redundancias e de inconsistencia de dados. Adicionalmente, este processo fornece uma plataforma de navegação muito prática que facilita o acesso a informações relacionadas de várias tabelas.

Além de prevenir o aparecimento dos problemas referidos






.1 - Clicamos sobre uma das tabelas que vai entra nesse relacionamento (normalmente devera ser uma chave estrangeira).

.2 - Mantendo o botão pressionado, arrastamos o rato até ao campo correspondente na outra tabela.


Este procedimento da origem ao aparecimento da janela de relacionamento qe apresenta os nomes das tabelas, os campos que estabelecem o relacionamento bem como o tipo de associação em causa.

INTEGRIDADE REFERENCIAL

Em alguns relacionamentos o access pode reforçar a integridade referencial, quando podem inserir ou apagar registos em tabelas relacionadas. A integridade referencial ajuda a garantir que os relacionados. O access pode reforçar a integridade referencial quando as condições são conhecidas:

. O campo relacionado pela primeira tabela é chave primeira ou tem uma única indexão.
.Os campos relacionados têm o mesmo tipo 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 relacionamento podemus assinalar as opções relacionadas com a intigridade referencial. No entanto, só assinalados 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 registonum campo que é chave estrangeira, se esse valor não não existir num registo da tabela onde aquele campo é a chave primaria.

#Propagar atualização dos campos relacionados

Não pode ser alterado o valor de um registo num campo que é chave primaria numa tabela, se numa outra tabela relacionada com a primeira existem registo que apresentam esse mesmo valor no campo correspondente (chave estrangeira).

#Propagar Eliminação dos campos relacionados

não pode ser eliminado um registo numa tabela, se, numa outra tabela relacionada com a primeira, existem registos que apresentam, no campo chave estrangeira, valores que correspondem ao registo se pretende eliminar.


TIPOS DE RELACIONAMENTOS

Para relacionamentos em intigridade referencial é reforçada, existe a possibilidade de estabelecer um de dois tipos de relacionamentos: "UM-PARA-MUITOS" e "UM-PARA-UM".
No caso do tipo de relacionamento ser de "UMA-PARA-MUITOS", cada registo na primeira tabela pode ser associado com muitos registos na tabela relacionada, ou seja, cada valor do campo chave primaria aparece muitas veses na tabela relacionada.
No relacionamento de "UM-PARA-UM", cada registo da primeira tabela pode se assiciado apenas com um registo da tabela relacionada. Na maioria dos casos, ambas as tabelas estão ligadas pelo campo de chave primaria.
Este tipo de relacionamento não é muito usual, utilizando-se normalmente para dividir tabelas com muitos campos em tabelas mais peqenas.

"Muitos-para-muitos em campos de múltiplos valores"

Comforme ja referimus no capitulo 2, esta é uma nova funcianalidade do access 2007. Como o propio nome sugere, este é campo que pode guardar varios valores de uma só vez. Para comfigurar uma campo com estas caracteristicas, teremus que recorrer ás suas propiedades, mais concretamente a lista de pesquisa. Nesta secção, selecionamus a tabela que contém os valores a serem inseridos neste campo e accionamos a propiedade Primir varios valores (alterar o não para sim)


Alteração da estrutura de relacionamento



Caso seja necessario, podemos efectuar alterações numa estrutura de relacionamentos ja criada e guardada. Para tal, devemos começar por aceder á janela de relacionamento , 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 selecionar o relacionamento respeitivo e posteriormente selecionar 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 seleção) e em seguida clicar em Eliminar.

Para visualizar os relacionamnetos da nossa base de dados devemos escolher opção "todas as tabelas" no separador Ferramentas da base de Dados Para visualizar um relacionamento em particular, devemos escolher a opção "relações diretas", no mesmo separador.




Navegação nos relacionamentos




tal como ja referido a utilidade da imposição do relacionamentos entre tabelas não se resume à prevenção de erros na gestão da base de dados. Os relacionamentos são uteis tanbem para podermos navegar entre dados relacionados.

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