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.

quarta-feira, 7 de outubro de 2009

módulo 4 - linguagem de programação 3


















Uma linguagem de programação é um método padrozinado para expressar instruções para um computador. É um conjunto de regras sintáticas e semánticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique sobre que dados um computador actua, como estes serão armazenados ou transmitidos e que acções devem ser tomadas sob várias circunstâncias. O conjunto de palavras (tovens) compostos de acordo com essas regras, constituem o código forte de um software. Esse código forte é depois traduzido para códigode máquina, que é exercitado pelo processador. Uma das principais metas das linguagens de programação é permitir que programadores tenham uma maior produtividade, permitindo expressar as suas intenções mais facilmente do que comparado com a linguagem que um computador entende nativamente (código de máquina). Neste sentido, as limguagens de programação são concebidas para adptar uma sintaxe de nível mais alto, que pode ser mais facilmente entendida por programadores humanos. Linguagens de programação são ferramentas importantes para que programadores e engenheiros de software possam escrever com maoir organização e rapidez.











INTERPRETAÇÃO Ê COMPILAÇÃO




Uma linguagem de programação pode ser convertida, ou traduzida, em código de máquina por compilação ou interpretação, que juntos podem ser chamadas de tradução.







Se o método utilizado traduz todo o texto do programa (tambem chamado de código), para só depois executar o programa. Então diz-se que o programa foi compilado e que o mecanismo utilizado para a tradução é um compilador (que por sua vez nada é do que um programa). A versão compilada do programa é armazenada de forma que o programa pode ser executado um número indefinido de vezes sem que seja necessária nova compilação, o que compensa o tempo gasto na compilaçao. Isto acontece com linguagens como PASCAL e C.

Classificação das linguagem de programação
As linguagens de programação podem ser classifikado e sub_classificadas de varias formas:
1_tecnicas de programação lineat .em matematica, problemas de programação linear são problemas de optimização, nas quais a funçaõ principal e as restriçoes são todas linares.
2_ técnica de programação ,modular trata-se de um paradignas de programação no qual o desenvolvimento das rotnas de programação é feito atraves de modulos , que são interligados entre si atraves de um interfase comun .
3_técnicas de programação estruturada trata-se de uma forma de programação de computadores que preconiza que todos os programas possiveis podem ser reduzidos a apenas tres estrutura:sequencia, decisaõ e interocção.
4_tecnica de programação orientada a objectos. tanbem conhecida como (poo) programaçaõ orientada a objectos (oop) object-oriental programming é um paradigm de analice .projectos de perogramação de sistemas de software baseado na composição e interação entre de versas unidade de software chamdas de objectos .
(5)_"percidure" rotina de pragramação procidure , ou precidimento , é uma sob-rotina,geralmente são procidementos manuais concebidas ducomentarios de analista de cistemas programadores de outra que escreve o código -fonte de deversas software

classificação da ACM
A ACM mantém um sistemade classificação com os seguintes sub-itens:
* linguagens aplicativas, ou de aplicação
* linguagens concorrentes, distribuidas e paralelas;
* linguagens de fluxo de dados;
* linguagens de projecto;
*linguagens extensiveis ;
*linguagens de montagem e de macro;
* linguagens de micropromação;
* linguagens não deterministicas;
* linguagens orientadas a objecto
* linguagens de aplicação especializada;
*linguagens de altissimo nivel.
* linguagens não procedurais;


Quanto ao paradigma

Diferentes linguagens de programação podem ser agrupadas segundo o paradigma que seguem para abordar a sua sintaxe:

  • Linguagem funcional;
  • Linguagem natural;
  • Programação lógica;
  • Programação imperativa;
  • Programação estrutura;
  • Lingaugem orientação a objectiva;

Quanto a estrutura de tipos

  • Francamente tipada, como Smalltalk;
  • Fortemente tipada, como Java, Ruby;
  • Dinamicamente tipada, como Python, Ruby;
  • Estáticamente tipada, como Java e C,

Quanto ao grau de abstracção

  • Linguagem de programação de baixo nível, binária, composta de zeros e uns (0,1), inintrlígivel pelo ser humano e executada directamente pela máquina;
  • Linguagem de programação de médio nível, composta de símbolos muito simples, a meio caminho entre a compreensão humana e a execução directa pela máquina, como por exemplo Assembly;
  • Linguagem de programação de alto nível, composta de símbolos mais complexos, inteligível pelo ser humano e não-executada directamente pela máquina, no nível da especificação de algoritmos, como Pascal

Quanto a Geração

  • Primeira geração-linguagens de baixo nível (Assembleia)
  • Segunda geração-As primeiras linguagens (Fortan, ALGOL, etc)
  • Terceira geração-As procedurais e estruturados (Pascal, C)
  • Quarta geração-Lnguagens que geram programas em outras linguagens (Java, C++), linguagens de consultas (SQL)
  • Quinta geração
  • Linguagens lógicos (Prolog).