Introdução aos Sistemas de Gestão de Bases de Dados usando o OpenOffice Base Manual de Apoio Raquel Vaz Sónia Alves Maio/2005 Manual de Apoio 1/61 Manual de Apoio 2/61 Índice 1 INTRODUÇÃO........................................................................................................ .....................4 1.1 Base de Dados................................................................................................................ ..........4 1.2 Sistemas de Gestão de Base de Dados....................................................................... .............5 1.3 O OpenOffice Base.......................................................................................... .........................5 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES......................................................... ......7 2.1 Especificação....................................................................................................... .....................7 2.2 Realização................................................................................................................................ .7 2.2.1 Criar uma nova base de dados............................................................................................. ..7 2.2.2 Abrir uma base de dados existente................................................................ ........................9 2.2.3 Tabela.......................................................................................................... ........................11 2.2.4 Formulário........................................................................................................ ....................17 2.2.5 Relatório.................................................................................................................. .............21 3 BASES DE DADOS RELACIONAIS................................................................................ ...........25 3.1 Modelos de base de dados....................................................................... ..............................25 3.2 Estrutura de uma base de dados relacional............................................... .............................26 3.3 Tipos de atributos........................................................................................................ ............27 3.4 Tipo de relações........................................................................................................... ...........28 3.5 Entidades, relações e tabelas................................................................................................. .31 3.6 Integridade.................................................................................................... ..........................31 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL................................................... ...33 4.1 Especificação.................................................................................................... ......................33 4.2 Realização.............................................................................................................................. .33 4.2.1 Tabelas................................................................................................. ...............................34 4.2.2 Formulários............................................................................................... ...........................37 4.2.3 Consultas................................................................................................... ..........................40 4.2.4 Relatórios......................................................................................................... ....................47 5 ELEMENTOS AVANÇADOS.......................................................................................... ............50 5.1 Propriedades dos campos............................................................................................ ...........50 5.2 Subformulários.................................................................................................. ......................52 6 BIBLIOGRAFIA.............................................................................................. ............................56 7 ANEXOS............................................................................................................. .......................57 7.1 Instalação do OpenOffice Base em Ambiente Windows.................................................... ......57 Manual de Apoio 3/61 1 INTRODUÇÃO INTRODUÇÃO 1 INTRODUÇÃO Nos dias de hoje, o uso do computador é uma prática comum. A necessidade de registar os dados no computador prende-se com o grande crescimento, ao nível do volume, da informação armazenada. Em bases de dados tradicionais, de registo das obras de uma biblioteca ou de dados de clientes de uma empresa, por exemplo, o suporte utilizado (papel ou cartão) era de fácil deterioração, sendo difícil a alteração e pesquisa de informação armazenada quando o arquivo tomava grandes dimensões. Uma base de dados neste suporte traz também o inconveniente do espaço físico ocupado, havendo também forte possibilidade de duplicação da informação. A utilização de bases de dados em computador veio solucionar diversos problemas. O suporte utilizado é de menor deterioração, ocupando menor espaço físico, a manipulação de informação é facilitada, podendo ser eliminados dados redundantes. 1.1 Base de Dados Uma Base de Dados é um sistema de armazenamento de dados relacionados entre si, de uma forma permanente, num sistema informático, com redundância controlada, acessíveis a um grupo de utilizadores e estruturado sob a forma de ficheiros de dados ou tabelas. Assim, por exemplo, uma lista de endereços, um conjunto de dados sobre clientes ou ainda uma lista organizada de CD’s podem ser consideradas bases de dados. A Base de Dados (database) pode também ser designada por Banco de Dados (databank). Estes dois termos são sinónimos, embora o segundo seja mais popular no Brasil. Quando falamos de bases de dados, é importante distinguir Dados de Informação. Os Dados são os elementos isolados, significativos, rigorosos e relevantes. São os factos do mundo real. Podem ser vistos como a matéria-prima necessária para um determinado processamento. A Informação é o conjunto de dados, organizados e sujeitos a um tratamento, tornando assim possível a sua utilização num determinado contexto. Os dados não têm qualquer valor e só se transformam em informação quando relacionados, ou interpretados, de alguma forma.1 Para uma base de dados deve existir um Administrador. Este é o responsável máximo da base de dados. Cabe-lhe gerir todos os acessos e realizar a coordenação e monitorização do seu uso. Existe uma grande variedade de classificações para bases de dados, de acordo com o modelo de programação associado. Durante muito tempo, foi usual considerar três principais modelos conceptuais de bases de dados: modelo hierárquico, modelo em rede e modelo relacional. O modelo mais utilizado é o modelo relacional, que se baseia num conjunto de operações lógicas de álgebra e cálculo relacionais. Neste modelo, as bases de dados são constituídas por tabelas e relacionamentos entre elas. A correcta estruturação das tabelas e seus relacionamentos garantirá, conjuntamente com um 1 Antão, António; Fernandes, Eduardo; Couto, Hélder; Almeida, Hugo; Antão, Rui (2005), TIC10 Parte 2. Lisboa: Areal Editores Manual de Apoio 4/61 1 INTRODUÇÃO Base de Dados sistema de gestão de bases de dados relacional, um funcionamento coerente de uma base de dados, relativamente a operações típicas como consulta, actualização, adição e eliminação. Este conceito é de extrema importância e será desenvolvido adiante neste manual. 1.2 Sistemas de Gestão de Base de Dados Para gerir as bases de dados foram criadas ferramentas do tipo SGBD – Sistema de Gestão de Bases de Dados. Um sistema de gestão de bases de dados (SGBD) é um programa que disponibiliza todos os serviços básicos relacionados com as bases de dados, como operações de definição de estrutura, manipulação dos dados e controlo dos dados. Existem diversas escolhas no mercado de SGBD, podendo dividir-se em dois grandes grupos: ● Grande porte – Exemplos: ORACLE, Microsoft SQL Server, MySQL, Ingres, Informix e DB2. Uso pessoal (doméstico) e/ou de pequenas empresas – Exemplos: Dbase, FoxPro, Microsoft Access e OpenOffice Base. ● 1.3 O OpenOffice Base O sistema de gestão de bases de dados que é utilizado neste Manual é o OpenOffice Base, versão 2.0, em português do Brasil. Este produto é o mais recente programa do conjunto de programas que constituem o OpenOffice. O OpenOffice.org é baseado numa antiga versão do StarOffice, o StarOffice 5.1, adquirido pela Sun Microsystems em Agosto de 1999. O código fonte foi disponibilizado, dando início a um projecto de desenvolvimento de software de código aberto em Julho de 2000, o OpenOffice.org. O principal objectivo era fornecer uma alternativa de baixo custo, de alta qualidade e de código aberto, podendo competir com o Microsoft Office. O projecto e o software são designados habitualmente por “OpenOffice” mas, devido a uma disputa de marca registada, a Sun adoptou o nome “OpenOffice.org”. No Brasil, do qual a versão utilizada tem origem (uma vez que a versão de português de Portugal não se encontra desenvolvida) o programa tem a designação BrOffice.org.2 Neste manual será usada apenas a designação OpenOffice. A transferência do OpenOffice pode ser feita gratuitamente em http://www.openoffice.org/ ou, no caso da versão em português do Brasil, no sítio do projecto brasileiro em http://www.openoffice.org.br/. As Bases de Dados em OpenOffice necessitam de instalação do Java JRE (Java runtime environment) da Sun, que pode ser descarregado em http://www.java.com. Para o registar, vá à barra de menus, em Ferramentas > Opções > OpenOffice.org > Java. 2 Fonte: http://pt.wikipedia.org Manual de Apoio 5/61 1 INTRODUÇÃO O OpenOffice Base O OpenOffice Base cria ficheiros com a extensão .odb, que constituem as siglas de Open Document Base. O ambiente de trabalho do Base apresenta barras e caixas. A caixa “Banco de Dados” fornece um acesso rápido às Tabelas, Consultas, Formulários e Relatórios, onde se farão as operações essenciais relacionadas com a base de dados. Para cada um deles é possível observar, na caixa de Tarefas, as Tarefas possíveis de realizar, juntamente com uma breve Descrição. Estes menus, bem como os conceitos associados, serão explorados em pormenor, neste manual, à medida que forem sendo necessários. Neste manual partir-se-á de uma base de dados simples, pretendendo armazenar os dados dos utilizadores de uma biblioteca. A partir desta base de dados monotabela serão explorados os conceitos básicos relacionados com as bases de dados – tabela, formulário, relatório, chave primária, etc. Seguidamente descobriremos os inconvenientes de uma base de dados monotabela, surgindo o modelo relacional como uma solução. Com a criação de uma base de dados relacional serão introduzidos conceitos novos e poderemos aprofundar os conhecimentos adquiridos anteriormente. Exercícios de revisão: ➢ Recorrendo à sua memória pessoal relativamente ao que tem visto em filmes e referido na imprensa, mencione abaixo exemplos e contextos em que apareciam bases de dados, para que fim e como eram utilizadas, etc. ➢ Recorrendo à pesquisa na Teia Mundial e à consulta do livro, defina: Dados; Informação; Base de Dados; Base de Dados Relacional; SGBD. ➢ Qual a diferença entre uma base de dados (“database”) e um banco de dados (“databank”)? ➢ Dê exemplos de aplicações de SGBD disponíveis comercialmente. ➢ Qual a extensão de um ficheiro de base de dados do OpenOffice Base? Manual de Apoio 6/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES SIMPLES CONSTRUÇÃO DE UMA BASE DE DADOS 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES 2.1 Especificação Ao longo deste capítulo pretende-se construir uma base de dados que armazene os dados de um utilizador de uma biblioteca. Os dados a guardar sobre o utilizador são: ● Número/código de sócio da biblioteca; ● Nome; ● Morada; ● Data de Nascimento; ● Telefone; ● Foto. A tabela a criar deverá ser definida para poder guardar correctamente estes dados. Deverão ser criados meios para facilitar a introdução dos dados e deverá poder emitir relatórios com os nomes de utilizador e seu respectivo número de sócio. 2.2 Realização Para realizar uma base de dados há alguns processos que é necessário conhecer. Precisamos de saber como se cria uma base de dados e como se abre uma base de dados existente. Os dados serão armazenados em tabelas. Cada tabela é designada por um nome único dentro da base de dados e corresponde a uma classe de entidades (tabelas). A informação presente em cada entidade (tabela) é estruturada em registos (tuplos ou linhas) e campos (atributos ou colunas). É preciso saber como se cria uma tabela. A tabela vai traduzir nas suas diversas colunas (que serão os campos) a realidade representada. Cada registo dessa tabela corresponderá a um utilizador da biblioteca. Para facilitar a interacção com o utilizador da base de dados, na introdução de dados novos, são criados formulários. Para que possam ser geradas listas com todos os utilizadores e seus respectivos números de sócio serão criados relatórios. 2.2.1 Criar uma nova base de dados Para criar uma base de dados pode usar um destes processos: ● Processo 1: Clicar sobre Iniciar > Todos os Programas > BrOffice.org 2.0 > BrOffice.org Base. Manual de Apoio 7/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES ● Criar uma nova base de dados Processo 2: Tendo o OpenOffice aberto clicar em Arquivo > Novo > Banco de Dados. Em qualquer dos casos surgirá o Assistente de Bancos de Dados. Para criar uma nova Base de Dados seleccionar a opção Criar novo banco de dados. Manual de Apoio 8/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Criar uma nova base de dados Na etapa seguinte, é perguntado se deseja registar a base de dados no OpenOffice.org. Se não for registada, não será acessível a outros componentes do OpenOffice.org (ex.: Writer, Calc). Vamos seleccionar Sim, registe o banco de dados para mim. Na questão seguinte surge seleccionado Abrir o banco de dados para edição, havendo também a opção simultânea Criar tabelas usando o Assistente de Tabelas, que abre o Assistente imediatamente. Vamos manter apenas a opção previamente assinalada. Depois de fazer as escolhas, clique em Concluir. É ainda pedido para guardar o ficheiro. Escolha a localização desejada e atribua ao ficheiro um nome apropriado. Será guardado com a extensão .odb. 2.2.2 Abrir uma base de dados existente Para abrir uma base de dados existente pode usar um destes processos: ● Processo 1: Fazer duplo clique no nome do ficheiro. O ficheiro de base de dados terá este ícone: Manual de Apoio 9/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES ● Abrir uma base de dados existente Processo 2: Clicar sobre Iniciar > Todos os Programas > BrOffice.org 2.0 > BrOffice.org Base. No Assistente de Bancos de Dados seleccionar a opção Abre um arquivo de banco de dados existente, podendo estar na lista de Usado recentemente, ou ser localizado através de clique no botão Abrir…. ● Processo 3: Estando uma janela do OpenOffice aberta, clicar em Arquivo > Abrir, pesquisando de seguida a localização do ficheiro desejado. Manual de Apoio 10/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Tabela 2.2.3 Tabela Exercício: ➢ Crie uma base de dados com uma tabela para armazenar os dados de um utilizador de uma biblioteca. Depois de criar a base de dados, vamos criar a tabela, onde serão armazenados os dados dos utilizadores. A um quadro como o mostrado acima dá-se o nome de tabela. Cada linha contendo dados tem o nome de registo e a cada coluna é dado o nome de campo. Existem outros termos com o mesmo significado para tabela, registo e campos. Cada tabela é designada por um nome único dentro da base de dados e corresponde a uma classe de entidades (tabelas). A informação presente em cada entidade (tabela) é estruturada em registos (tuplos ou linhas) e campos (atributos ou colunas). Exemplo: Na fase inicial da criação da base de dados, ao serem definida(s) a(s) tabela(s), apenas os nomes dos atributos devem ser indicados, só depois, através do SGDB são preenchidos os dados. Na caixa Banco de Dados seleccionamos o botão Tabelas. Na lista de Tarefas surgem três opções. Iremos sempre usar a Vista de Estrutura: Criar tabela na exibição de design.... Manual de Apoio 11/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Tabela Aparece-nos a janela de Design de tabela, que corresponde à vista de estrutura. Nesta janela iremos definir os campos necessários para armazenar os dados. Os campos são as colunas da tabela. Nesta tabela teremos seis campos designados por: Número_Utilizador, Nome, Morada, Data_Nascimento, Telefone e Foto. Para cada um deles corresponde um Tipo de campo (Tipo de Dados) para os valores que os campos podem receber. O primeiro campo, cujo Nome do campo é Número_Utilizador, refere-se ao número de sócio do utilizador da biblioteca. O Tipo de campo será um número inteiro, incrementado de cada vez que se introduz um novo utilizador, de modo a que cada um tenha um número diferente. Para que o tipo de dados seleccionado seja um inteiro seleccionamos a opção Integer [INTEGER]. Para que este valor seja incrementado automaticamente devemos seleccionar, nas Propriedades do campo a opção 'Sim' em AutoValor. Quando se selecciona esta opção desaparece a propriedade 'Entrada obrigatória'. Esta ficará logo escolhida, dado que este campo será sempre preenchido automaticamente. As Propriedades do campo dependem do Tipo de campo escolhido e servem para definir características mais pormenorizadas relativas aos campos. No caso de um número inteiro podemos, por exemplo, definir que se incremente automaticamente (AutoValor). No caso de um campo do tipo Texto podemos escolher o número máximo de caracteres que Manual de Apoio 12/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Tabela o texto pode conter. Para todos eles podemos definir um Exemplo de Formatação. Esta máscara de introdução é bastante interessante para o caso das datas, dado que podemos escolher o formato da data (DD-MM-AA, DD-MM-AAAA, etc). Clicando no botão '...' surge-nos uma janela onde podemos definir o formato de data desejado. Em todos eles temos a opção Entrada obrigatória. No caso de se escolher 'Sim' nesta propriedade, cada registo introduzido pelo operador da base de dados terá necessariamente que digitar informação relativa a este campo. É aconselhado escolher esta opção em campos que se considerem essenciais. No entanto, o utilizador pode, por exemplo, não dispor de telefone. A escolha de certos campos com entrada obrigatória pode levantar alguns problemas ao operador da base de dados. Assim sendo, definiremos para cada campo os seguintes tipos de dados: O campo Número_Utilizador tem ainda uma particularidade muito importante para uma base de dados. O número de cada utilizador é diferente para cada utilizador. Podem existir sócios da biblioteca com o mesmo nome, mas o seu número é necessariamente diferente. O mesmo se pode dizer da Morada, Data de Nascimento e número de Telefone. Podemos identificar de forma unívoca cada registo da tabela utilizador através deste atributo. A este atributo chamamos Chave Primária. Ao criar uma tabela devemos definir sempre uma chave primária entre os atributos da entidade ou, no caso de não existir, criar um campo próprio para esse fim. Para guardarmos uma tabela clicamos no símbolo ou vamos através do menu Arquivo > Salvar. É pedido para que atribuamos o nome da tabela. Ao guardarmos a tabela, se não tivermos definido uma chave primária obtemos esta mensagem de erro: Manual de Apoio 13/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Tabela Vamos Cancelar e atribuir a nossa chave primária. Seleccionamos o campo Número_Utilizador e, clicando em cima do símbolo verde com o botão secundário, escolhemos a opção Chave primária. Seguidamente guardamos a tabela. Após a criação da tabela surge-nos um leque variado de opções. Fechamos a tabela e voltamos a ver a janela principal do programa. Na caixa Tabelas veremos a tabela criada. Um duplo clique na tabela criada fará abrir a tabela na Vista de Folha de Dados. Esta vista serve para a introdução de dados. Clicando com o botão secundário sobre a tabela podemos ver várias opções. A opção Abrir corresponde à Vista de Folha de Dados, para introdução de dados. A opção Editar corresponde à Vista de Estrutura (Design de Tabela) e permite-nos fazer modificações nos campos, tipos de campos e propriedades dos campos. Excluir apaga a tabela criada, Copiar permite a criação de uma nova tabela baseada na anterior e Renomear permite alteração do nome da tabela. As opções Assistente de Formulários... e Assistente de Relatórios... dão início à criação de formulários e relatórios serão desenvolvidas nos próximos capítulos. Manual de Apoio 14/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Tabela Vamos agora introduzir dados na tabela. Temos que passar da vista de estrutura da tabela para a vista de folha de dados. Colocando o cursor sobre cada uma das células escrevemos o texto pretendido. Não é possível preencher os campos que foram definidos como Campo Automático. Nestes casos, o sistema encarrega-se de o preencher. No caso de campos definidos com Entrada obrigatória o utilizador terá necessariamente que introduzir dados nesses campos antes de passar ao registo seguinte. A coluna Foto (do tipo Imagem) contém o atributo <OBJECT> e, actualmente, não pode ser editada na janela de edição. É possível formatar a tabela para que possa ter maior legibilidade. Colocando o cursor nas linhas que separam os campos e arrastando poderemos aumentar a largura das colunas, para que se possa ver todo o texto introduzido. Também se pode definir a largura de uma coluna clicando sobre a coluna desejada com o botão secundário e escolhendo a opção 'Largura da Coluna...', definindo de seguida o valor em centímetros para a largura da coluna. Manual de Apoio 15/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Tabela Para se ocultar uma coluna basta clicar com o botão secundário sobre a tabela que se pretende ocultar e seleccionar a opção Ocultar Colunas. Esta operação é reversível, bastando clicar novamente com o botão secundário sobre uma outra coluna e escolher 'Mostrar Colunas'. Para se definir o formato de uma coluna é necessário efectuar uma selecção da opção Formato da Coluna.... Com esta ferramenta é possível alterar o alinhamento do texto, centrando-o na coluna, por exemplo. Isto é conseguido no separador Alinhamento. No caso de campos do tipo Data pode-se alterar o formato apresentado da data. No separador Formato escolhemos o modo de apresentação desejado. Esta opção é igual à que pode ser feita durante a criação da tabela na propriedade do campo Exemplo de Formatação. Exercícios de revisão: ➢ Explique como se constrói uma tabela utilizando a Vista de Estrutura (Exibição de design). ➢ O que são Tipos de dados (campos)? ➢ Antes de gravar a tabela é necessário escolher uma chave primária. Como é que se cria esta chave? ➢ Considere a tabela de utilizadores da biblioteca, cujos campos são: Número_Utilizador, Nome, Morada, Data_Nascimento, Telefone. Qual é o campo mais adequado para funcionar como chave primária? ➢ Considere a tabela de utilizadores da biblioteca. Insira dados na tabela. Manual de Apoio 16/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Formulário 2.2.4 Formulário A terceira secção de trabalho da janela principal da base de dados chama-se Formulários. Os formulários constituem uma forma de mostrar os dados de tabelas ou consultas com uma melhor apresentação, facilitando a visualização e introdução de novos dados. Exercício: ➢ Crie um formulário com o Assistente de formulários a partir da tabela Utilizador. Resolução do Exercício: Para iniciar a criação de um formulário teremos de seleccionar, na janela principal da base de dados, a secção Formulários. Nesta secção, temos duas opções: Criar formulário na exibição de design... e Usar assistente para criar formulário.... Vamos usar o assistente. O Assistente de Formulários permite criar formulários através de rotinas internas do programa, tendo em conta diversas informações solicitadas ao utilizador. O assistente de formulários também pode ser iniciado com clique no botão do lado direito sobre a tabela, na secção de tabelas. Ao iniciar, o assistente abrirá também a aplicação OpenOffice Writer. As primeiras informações que o assistente de formulários nos pede são relativas à tabela (ou consulta, veremos o que são mais tarde) com base na qual irá ser criado o formulário, bem como os campos que pretendemos incluir no formulário. Na caixa de listagem Tabelas ou consultas escolhemos a tabela ou consulta para a qual pretendemos criar um formulário. Na caixa Campos disponíveis escolhemos os campos da tabela que surgirão no formulário. Podemos inserir campo a campo, através do botão com a forma de um sinal maior (>) ou inserir todos os campos de uma só vez, com o botão (>>). Os botões (<) e (<<) permitem retirar um campo ou todos os campos, respectivamente. Repare que não aparece o campo Foto. Manual de Apoio 17/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Formulário O passo seguinte permite a adição de um subformulário. Este é considerado um tópico avançado e será abordado no final do livro. Clicar em Avançar. No ponto que se segue o assistente permite-nos escolher a disposição dos controles do formulário. Primeiro definimos a disposição das caixas de introdução de texto, segundo um dos quatro modelos possíveis: Colunar – Etiquetas à Esquerda, Colunar – Etiquetas em Cima, Como planilha de dados e Em Blocos – Etiquetas Acima. Podemos ver no fundo o aspecto que terá, na folha do documento do Writer. Os formatos em colunas são os formatos mais típicos dos formulários, em que os registos são apresentados um de cada vez, com os campos alinhados em colunas. Clicar em Avançar. Depois temos que definir a entrada de dados. Nesta fase temos que indicar ao assistente o modo de entrada dos dados. Se se tratar de um formulário apenas para inserção de novos dados, onde não se pretenda a visualização de dados existentes marcamos a primeira opção. No caso de pretendermos visualizar os dados todos no formulário escolhemos a segunda selecção e podemos estabelecer algumas limitações, marcando os quadrados respectivos. Estas limitações podem ser: impedir modificação de dados já inseridos, impedir a eliminação de dados já inseridos, impedir a adição de novos dados (no caso de se pretender apenas visualizar os registos e não inserir novos). Escolhas feitas, clicar em Avançar. A fase seguinte é a fase de aplicar estilos. Nesta fase escolhemos o fundo e o aspecto das caixas de introdução de dados através dos estilos predefinidos no Base. Manual de Apoio 18/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Formulário Finalmente é solicitado que indique um nome para o formulário. Escolha um nome apropriado e escreva-o no espaço respectivo. O programa pergunta o que deseja fazer a seguir à construção do formulário. Se desejar trabalhar com o formulário, fazendo introdução de dados novos ou visualização dos existentes marque a primeira opção. No caso de desejar modificar o formulário, alterando o aspecto ou características do formulário seleccione a segunda opção. Neste caso, abrirá o formulário no modo de edição. Vamos escolher a opção predefinida (trabalhar com o formulário) e clicar em Concluir. Encontramos o formulário criado. O formulário apresenta botões de navegação bastante úteis: O primeiro e quarto botões permitem o deslocamento para o primeiro e último registo, respectivamente. Os botões do meio permitem que passemos ao registo anterior e ao registo seguinte. O último botão insere um novo registo, no fim da lista. Não é possível inserir dados em campos definidos como Campo Automático (já que este é preenchido de forma automática pelo programa) e é necessário preencher todos os campos que foram definidos com Entrada obrigatória. Manual de Apoio 19/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Formulário Na janela principal do programa encontramos o formulário criado. Clicando com o botão secundário em cima do nome do formulário encontramos diversas opções. A opção Abrir coloca o formulário no modo de visualização e introdução de dados. A opção Editar permite alterar o desenho do formulário, abrindo-o na Vista de Estrutura. Neste modo podemos alterar a estrutura ou a aparência do formulário, com operações como: acrescentar títulos ou texto, inserir figura, alterar a posição dos campos, etc. Para inserir imagens nas tabelas temos que Editar o formulário. Estamos a visualizar o formulário criado na Vista de Estrutura. Seleccionamos um campo qualquer do formulário principal e, com esse campo seleccionado, clicamos no botão Adicionar campo da barra de ferramentas, existente no fundo da página. Surge uma lista com os campos da tabela Utilizador. Dê um duplo clique sobre o campo Foto e observe que um novo campo com o rótulo Foto foi adicionado no formulário. Mova-o para a posição desejada e feche a janela Adicionar campo. Guarde o formulário e feche-o. Repare que agora já pode inserir fotos no formulário, fazendo um duplo clique em cima do espaço onde deve ficar a foto ou clicando com o botão secundário e seleccionando a opção Inserir figura de.... Manual de Apoio 20/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Formulário Exercícios de revisão: ➢ Qual a importância dos formulários nos sistemas de gestão de bases de dados? ➢ Explique como se constrói um formulário utilizando o Assistente de formulários. ➢ Considere o formulário criado para a tabela Utilizador. Usando o formulário criado introduza dados na tabela. ➢ Considere o formulário criado para a tabela Utilizador. Modifique o tipo de letra dos atributos 2.2.5 Relatório Um Relatório, no contexto de um SGBD, é uma forma de organizar uma determinada parte da informação contida numa base de dados, principalmente com o objectivo de poder imprimir os dados com uma boa apresentação.3 Exercício: ➢ Crie um relatório com o Assistente de relatórios a partir da tabela Utilizador. Escolha apenas os seguintes atributos: Número do utilizador e Nome. Resolução do Exercício: Para iniciar a criação de um relatório teremos de seleccionar, na janela principal da base de dados, a secção Relatórios. Nesta secção a opção Usar assistente para criar relatório.... Tal como no assistente de relatórios, é pedido para seleccionar a Tabela ou consulta, seguido dos campos que devem constar no relatório. O botão (>) selecciona um de cada vez e o botão (>>) selecciona todos os campos da tabela ou consulta. 3 Fonte: Azul, Artur Augusto; Azul, Nuno; Fonseca, Dalila; Marques, Fernando; Pacheco, Deolinda; Soares, Ricardo (2005). Tecnologias da Informação e Comunicação 10 – Unidades Essenciais: 1.ª Parte. Porto: Porto Editora. Manual de Apoio 21/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Relatório Depois temos a oportunidade de rotular os campos com nomes diferentes dos atribuídos nas tabelas da base de dados. Por exemplo, o campo com o nome Número_Utilizador pode ser exibido no relatório com o nome Número de Sócio. Depois de definir os rótulos clique em Avançar. O passo Agrupamento altera a disposição dos campos, podendo ser útil quando se realizarem relatórios com base em várias tabelas. Seguidamente, em Opções de classificação, podemos definir a ordenação dos registos no relatório. Por exemplo, se for escolhido o campo Nome, com ordenação Crescente, os registos surgirão no relatório por ordem alfabética. Manual de Apoio 22/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Relatório Nesta fase temos a oportunidade de definir a aparência do relatório. Existem diversos esboços à escolha. Podemos ver no fundo, na janela do Writer, o aspecto que terá o relatório. O texto que aparece em vez dos nossos dados serve apenas de orientação. Na janela do assistente encontramos este aviso: “O texto fictício será substituído por dados do banco de dados quando o relatório for criado”. Podemos escolher também se queremos que a folha do relatório tenha Orientação horizontal (Paisagem) ou vertical (Retrato). Finalmente é pedido para indicar o Título do relatório e o Tipo de relatório. No tipo de relatório vamos escolher Relatório dinâmico. O relatório dinâmico é actualizado de cada vez que são inseridos novos dados. A opção Relatório estático bloqueia as restantes opções. Quando é pedido para indicar como deseja proceder depois de criar o relatório temos duas hipóteses: Modificar layout de relatório e Criar relatório agora. A primeira permite editar o relatório, abrindo-o no Writer. Permite alterar a largura das colunas, tipo de letra, alinhamento do texto, inserir figura, etc. A segunda gera imediatamente o relatório, abrindo-o para exibição de seguida. Manual de Apoio 23/61 2 CONSTRUÇÃO DE UMA BASE DE DADOS SIMPLES Relatório Exercícios de revisão: ➢ Qual a importância dos Relatórios nos sistemas de gestão de bases de dados? ➢ Explique como se constrói um relatório utilizando o Assistente de relatórios. Manual de Apoio 24/61 3 BASES DE DADOS RELACIONAIS BASES DE DADOS RELACIONAIS 3 BASES DE DADOS RELACIONAIS 3.1 Modelos de base de dados A ideia de criar bases de dados, em alternativa a colocar os dados em ficheiros independentes, trouxe várias vantagens, mas também trouxe o problema de saber qual a melhor maneira de organizar e relacionar os dados para formar a base de dados. “Ao longo dos anos, vários têm sido os modelos propostos, não existindo o modelo perfeito, na medida em que todos têm vantagens e desvantagens. No entanto, existe um modelo ao qual facilmente se adapta a maioria das situações: é o modelo relacional. De notar que o modelo relacional não é exclusivo das bases de dados informáticas, antes destas existirem a organização dos ficheiros ou fichas em papel, já seguia este modelo. Tomando como exemplo o empréstimo de uma biblioteca, a ficha de empréstimo remete para uma ficha de utilizador e para a ficha de livro (exactamente a mesma estrutura que as bases de dados informáticas). O modelo (de base de dados) relacional foi desenvolvido por Edgar "Ted" Frank Codd (*) (1924–2003), matemático de Oxford (Grã-Bretanha), durante o seu desenvolvimento como investigador num laboratório de pesquisa da IBM4 em San Jose, CA (EUA). O modelo relacional tem como fundamento teórico uma teoria matemática – a álgebra relacional (uma modalidade da teoria de conjuntos). É dessa teoria que deriva o nome modelo relacional. Este será o modelo que vamos usar e como veremos é muito intuitivo, flexível e fácil de compreender e aplicar. Os elementos fundamentais de uma base de dados elaborada segundo o modelo relacional são as tabelas – em que a informação é estruturada em campos (atributos ou colunas) e registos (tuplos ou linhas). Cada tabela é designada por um nome único dentro da base de dados e corresponde a uma classe de entidades (tabelas ou relações) ou a um relacionamento (relação) entre entidades. 4 IBM – Internacional Business Machines é uma empresa americana de informática (*) Para mais informação consulte o artigo do autor em http://www.acm.org/classics/nov95 Manual de Apoio 25/61 3 BASES DE DADOS RELACIONAIS Estrutura de uma base de dados relacional 3.2 Estrutura de uma base de dados relacional Como vimos em capítulos anteriores, o modelo mais simples que uma base de dados pode ter é o que assenta numa única tabela, ao estilo das tabelas das folhas de cálculo. A esse modelo dá-se o nome de monotabela. Será que uma tabela é suficiente e eficaz? De seguida vamos ver os principais inconvenientes de construir uma base de dados monotabela. Considere a seguinte tabela e observe bem tanto a respectiva estrutura, como os dados nela presentes. Exercícios: ➢ Considere a tabela que se segue: Como sabe, uma tabela corresponde a uma entidade. Qual seria um nome com sentido para a entidade representada nesta tabela? Descubra os dados que se encontram repetidos em cada campo. Porque se encontram repetidos? Que inconvenientes, ou limitações, resultam da situação de dados repetidos? Consegue imaginar uma forma de evitar os inconvenientes identificados na questão anterior? Qual? Nome Morada Designação Data_ Empréstimo Data_ Devolução Título Autor Ricardo Magalhães Guarda Docente 28-11-05 22-12-05 Razão e Diálogo Neves Vicente Ana Melo Abrantes Aluno 13-11-05 23-12-05 Cadernos de História da Arte Ana Lídia Pinto José Sócrates Faro Funcionário 03-10-05 10-11-05 Introdução ao Direito Carlos Batalhão Diana Gentil Porto Funcionário 12-01-06 27-01-06 Razão e Diálogo Neves Vicente Ana Melo Abrantes Aluno 13-11-05 23-12-05 Introdução ao Direito Carlos Batalhão Raquel Amorim Lisboa Aluno 28-12-05 19-01-06 Tecnologias da Informação e Comunicação Artur Azul Miguel Prates Coimbra Docente 03-01-06 22-01-06 Razão e Diálogo Neves Vicente Diana Gentil Porto Funcionário 12-01-06 27-01-06 Introdução ao Direito Carlos Batalhão Raquel Amorim Lisboa Aluno 20-12-05 29-01-06 Razão e Diálogo Neves Vicente Bruna Filipe Aveiro Aluno 13-01-06 10-02-06 Cadernos de História da Arte Ana Lídia Pinto José Sócrates Faro Funcionário 16-10-05 30-11-05 Tecnologias da Informação e Comunicação Artur Azul Podemos visualizar nesta base de dados, do tipo monotabela, que existem vários problemas, tais como: 1) Repetição dos dados (ou redundância dos dados), isto é, estamos a guardar os mesmos dados em mais que um local; Manual de Apoio 26/61 3 BASES DE DADOS RELACIONAIS Estrutura de uma base de dados relacional 2) Isto provoca um desperdício de espaço no armazenamento de dados; 3) E torna mais difícil a manutenção e a actualização dos dados, o que pode levantar problemas de coerência dos dados. A solução dos problemas mencionados anteriormente é usar mais que uma tabela e estabelecer relações entre elas, ou seja, usar o modelo relacional. “ Os sistemas de bases de dados relacionais caracterizam-se por permitirem criar bases de dados com tabelas relacionadas entre si. Os relacionamentos entre tabelas baseiam-se nas chaves das tabelas. ” Atributos chave (chave candidata, chave primária e chave estrangeira) “O conceito de chave é muito importante no modelo relacional. Para cada tabela deve existir uma chave, que vai ser constituída por um conjunto de um ou mais atributos, que identifica cada registo de modo único. Não podem existir dois registos (tuplos) com os mesmos dados para o mesmo atributo ou conjunto de atributos. Quando uma chave é composta apenas por um atributo, podemos dizer que se trata de uma chave simples. Uma chave constituída por mais do que um atributo é denominada chave composta. Chaves candidatas são todos os conjuntos de um ou mais atributos possíveis para identificar cada tuplo de um modo único. No entanto, para proceder a esta selecção de chaves candidatas, é necessário conhecer bem a realidade de cada um dos atributos da relação e qual o seu domínio. De entre todas as chaves candidatas apenas uma será escolhida para identificar cada registo (tuplo) de forma única. A chave seleccionada de entre as chaves candidatas é designada chave primária da relação. Em todas as tabelas deve existir sempre uma chave primária e os atributos que a constituem não podem conter valores nulos. Uma chave estrangeira é um conjunto de um ou mais atributos que são a chave primária numa outra relação.” 3.3 Tipos de atributos Alguns atributos como, por exemplo, a idade e o número de identidade (BI) de uma pessoa podem ser considerados atributos atómicos, visto que, não se podem decompor por unidades mais elementares. Manual de Apoio 27/61 3 BASES DE DADOS RELACIONAIS Tipos de atributos Outros atributos podem ser considerados atributos compostos, ou seja, são atributos que se podem decompor em parcelas elementares. Por exemplo, o nome de uma pessoa, visto que, normalmente é possível decompor esse atributo nas parcelas elementares primeiro nome e último nome. O mesmo se passa em relação à data de nascimento (dia, mês e ano). A tabela seguinte ilustra os vários tipos de atributos: 3.4 Tipo de relações Como se relacionam as várias tabelas (entidades) entre si? Após serem bem identificadas as entidades, as relações entre elas e os seus atributos, será depois muito fácil obter as tabelas e os campos que as vão compor. Para isso terá que se saber como se concebe um diagrama E-R (Entidade-Relação), ou seja, um esquema que mostre as entidades e as relações entre elas. Para conceber um diagrama destes temos de pensar nas: – entidades que queremos; – nas relações que existem entre elas; – nos atributos de cada entidade; – e na chave de cada entidade. Nas bases de dados relacionais existem três tipos de relações entre entidades: Um para Um; (1 : 1) Um para Muitos; (1 : M ou 1 : ∞) Muitos para Muitos. (M : M ou ∞ : ∞) Relação Um para Muitos (1 : M) Nas relações do tipo “um para muitos” ou “1 para M”, um registo na tabela “do lado 1” poderá ter vários registos correspondentes na tabela “do lado M”, mas um registo da tabela “do lado M” só poderá ter um registo correspondente na tabela “do lado 1”. Manual de Apoio 28/61 3 BASES DE DADOS RELACIONAIS Tipo de relações Em matemática, na teoria de conjuntos, chama-se relação unívoca a uma relação de “1 para M”. Cada tabela é um conjunto. A função que relacione uma relação do lado “M” com um elemento do lado “1” é uma relação unívoca. A uma relação “1 para 1” chama-se uma relação biunívoca. Exemplo: Lê-se: ● Num Departamento trabalham vários empregados ● 1 Empregado trabalha num e num só Departamento Relação Um para Um (1 : 1) Neste tipo de relação, a cada registo de cada uma das tabelas corresponde um e apenas um registo na outra tabela. Exemplo: Lê-se: ● 1 Professor lecciona uma e uma só Disciplina ● 1 Disciplina é leccionada por um e um só Professor Manual de Apoio 29/61 3 BASES DE DADOS RELACIONAIS Tipo de relações Relação Muitos para Muitos (M : M) Com este tipo de relação, um registo da tabela da esquerda pode ter vários registos correspondentes na tabela da direita e um registo da tabela da direita pode ter vários registos correspondentes na tabela da esquerda. Exemplo: Lê-se: ● 1 Autor escreve vários Livros ● 1 Livro é escrito por vários Autores A título de exemplificação apresenta-se um exemplo de um diagrama E-R: A aplicação suporta o registo de diversa informação, a saber: · Categorias de software: nome da categoria; · Software disponível: nome, descrição, suporte (CD / DVD), número de disco (número presente em todos os CDs/DVDs e que identifica um CD); Manual de Apoio 30/61 3 BASES DE DADOS RELACIONAIS Tipo de relações · Exemplares: para cada CD/DVD tem de ser mantida a informação da existência de cada exemplar, uma vez que o que são emprestados são os exemplares. É importante definir a forma como cada exemplar será identificado; · Utilizadores: Nome, Laboratório (unidade a que o utilizador pertence), Tipo de Utilizador (Aluno, Bolseiro, Docente); · Custo das Multas Por Tipo de utilizador - valor da multa associada; · A aplicação deve permitir o registo das cobranças e recebimentos dos valores das multas, por utilizador; 3.5 Entidades, relações e tabelas Podemos determinar as tabelas, os campos e as relações da nossa base de dados segundo este exemplo: Notar que: Utilizador, Empréstimo e Livro são as tabelas. As chaves primárias na tabela Utilizador é o atributo cod_Utilizador, na tabela Empréstimo é o atributo cod_ Empréstimo e na tabela Livro é o atributo cod_Livro. As chaves estrangeiras só existem na tabela Empréstimo e são os atributos cod_Utilizador e cod_Livro. O tipo de relações existentes é de um para muitos. Exercício de revisão: ➢ Enumere as vantagens deste esquema em comparação com o da base de dados monotabela. 3.6 Integridade Como vimos anteriormente, é necessário que a manutenção e a actualização dos dados, seja fácil e acessível, ou seja, temos de manter a integridade da informação. Existem dois tipos de integridade: Manual de Apoio 31/61 3 BASES DE DADOS RELACIONAIS Integridade Integridade de Entidade Se o valor do atributo (ou dos atributos) que corresponde (m) à chave primária de uma entidade são todos não-nulos e distintos entre si, temos integridade de entidade. Exemplos: - O número de cada aluno numa turma. - O número de cada utilizador numa biblioteca, clube de ténis, piscina, … Integridade Referencial Uma BD relacional deve assegurar a integridade de entidade e a integridade referencial. Há integridade referencial quando todos os valores de uma chave estrangeira existem como elementos constituintes da chave primária da tabela relacionada com aquela chave estrangeira. Exemplo: - Todos os alunos têm de ter um “valor” no atributo que é chave estrangeira na tabela Aluno com correspondência na tabela Turma. Por fim, podemos de uma forma resumida dizer que, os objectivos a atingir num projecto de uma base de dados: 1) Tornar possível a inclusão de toda a informação relevante; 2) Evitar a redundância ou repetição desnecessária; 3) Procurar assegurar a consistência e integridade da informação; 4) Proporcionar interfaces fáceis de compreender e administrar; 5) Proporcionar formas de controlo do acesso à informação. Manual de Apoio 32/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL RELACIONAL CONSTRUÇÃO DE UMA BASE DE DADOS 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Ao longo deste capítulo vai ser construída uma base de dados para auxiliar a gestão de uma Biblioteca Escolar. Esta base de dados será constituída por várias tabelas. 4.1 Especificação A aplicação (base de dados) a desenvolver deve suportar o registo de diversa informação, a saber: ● Para todos os utilizadores deve guardar o número/código de utilizador, o nome, a morada e o telefone; ● A biblioteca só deve possuir livros e estes devem ser identificados pelo número/código, título e autor; ● Como a Biblioteca vai emprestar os seus livros a todos os utilizadores da escola, devem ser guardados os seguintes dados em cada empréstimo: o número de empréstimo/código de empréstimo, a data de empréstimo, a data de devolução e ainda informações relativas ao utilizador e aos livros que são requisitados. 4.2 Realização Após a análise da especificação é fácil verificar que as tabelas a realizar são: Utilizador (cod_Utilizador, Nome, Morada, Telefone); Livro (cod_Livro, Título, Autor); Empréstimo (cod_Empréstimo, Data_Empréstimo, Data_Devolução, cod_Utilizador, cod_Livro). A notação usada anteriormente é outra forma de representar as tabelas e os seus atributos, ou seja, é equivalente a ter: Manual de Apoio 33/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Tabelas 4.2.1 Tabelas Exercício: ➢ Crie uma base de dados para a Biblioteca com três tabelas, de acordo com a especificação anterior. A construção das tabelas é feita de forma idêntica à demonstrada no ponto 2 (2.2.1 Tabela) deste Manual. Coloque o Tipo de campo como os indicados nas seguintes imagens: Relações entre tabelas Antes de inserir os dados nas tabelas é necessário estabelecer relações entre elas. A vantagem de estabelecer relações tem a ver com o facto das relações poderem impor determinadas obrigações, no nosso exemplo, só podemos preencher com dados a tabela Empréstimo se as outras tabelas já tiverem os dados inseridos, evitando assim erros, ou seja, violação da integridade referencial. O relacionamento entre tabelas é uma operação muito fácil se as chaves foram criadas com cuidado, isto é, se os campos através dos quais as tabelas vão relacionar-se tiverem tipos idênticos ou no mínimo compatíveis. Para estabelecer relações entre tabelas devemos seguir os seguintes passos: Manual de Apoio 34/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Tabelas ►Ir ao menu Ferramentas seleccionar Relações e aparecerá a seguinte janela: ►Depois ir ao menu Inserir e seleccionar Adicionar tabelas ou premir o botão Aparecerá uma janela com as diferentes tabelas, devemos seleccionar as tabelas uma por uma e adicioná-las. Quando estiverem as tabelas todas adicionadas fecha-se a janela de Adicionar tabelas. Antes de estabelecer as relações deve-se organizar a disposição das tabelas, apenas para maior legibilidade. Manual de Apoio 35/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Tabelas Estamos agora preparados para estabelecer as relações entre as tabelas, para isso só devemos “clicar” sobre a chave primária de uma tabela e arrastar o cursor do rato, premindo o seu lado esquerdo, até ao campo correspondente da outra tabela. Essa operação fará surgir as relações entre as várias tabelas se as chaves foram bem definidas. No Base para visualizar a tabela de edição das relações podemos “clicar” sobre a linha das relações, com o cursor do rato premindo o seu lado direito, seguido de Editar…ou ir ao menu Inserir à Nova relação ou premir o botão Aparecerá em todos os casos a seguinte janela: Por regra, não é necessário abrir esta janela porque automaticamente são estabelecidas as relações. A título de curiosidade podemos ver como são estabelecidas as relações, por exemplo, as tabelas que estão envolvidas no processo e os campos que estabelecem as relações. Manual de Apoio 36/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Tabelas Inserção de dados nas tabelas O próximo passo será introduzir dados nas tabelas. A introdução de dados é feita do mesmo modo que no ponto 2 (2.2.3 Tabela) deste Manual. Se inserirmos os dados que constam nas tabelas abaixo: Tabela Utilizador cod_Utilizador Nome Morada Telefone 0 Sandra Sousa Braga 253786978 1 Ricardo Magalhães Guarda 454567585 2 Ana Melo Abrantes 223459735 3 José Sócrates Faro 567567567 4 Diana Gentil Porto 224534666 5 Raquel Amorim Lisboa 216865785 Tabela Livro cod_Livro Título Autor 0 Matemática A Afonso Silva 1 Tecnologias da Informação e Comunicação Artur Azul 2 Razão e Diálogo Neves Vicente 3 Introdução ao Direito Carlos Batalhão 4 Desenho e Geometria Descritiva Luís Gonçalves 5 Cadernos de História da Arte Ana Lídia Pinto 6 Introdução ao Desenvolvimento Económico e Social José Laranjo Tabela Empréstimo cod_Empréstimo Data_Empréstimo Data_Devolução cod_Utilizador cod_Livro 0 21-12-05 21-01-06 1 2 1 03-01-05 30-01-06 3 4 2 05-01-06 01-02-06 0 3 3 06-01-06 15-01-06 2 1 4 07-01-06 08-01-06 4 5 Exercícios de revisão: ➢ Defina chave estrangeira. ➢ Como se criam relações entre tabelas? 4.2.2 Formulários A construção de formulários é feita de forma idêntica à demonstrada no ponto 2 (2.2.4 Formulário) deste Manual. Manual de Apoio 37/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Formulários Para o exemplo da Biblioteca, vamos construir os três formulários para introdução de dados nas três tabelas criadas. Por razões de simplicidade, atribuimos o mesmo nome da tabela ao formulário respectivo. Vemos que, na tabela Empréstimo, os campos cod_Utilizador e cod_Livro correspondem a campos das tabelas Utilizador e Livro, respectivamente. Só interessa adicionar registos que já existam nestas duas tabelas. Uma vantagem que nos trazem as Caixas de Combinação é poder seleccionar a estas tabelas os valores que desejamos guardar na tabela Empréstimo. As caixas de combinação podem assim facilitar-nos a inserção de dados em alguns campos. As caixas de combinação criam-se já depois do formulário criado. Clicando com o botão secundário sobre o formulário Empréstimo escolhemos a opção Editar. Com a tecla CTRL premida clicamos sobre a caixa de introdução de dados do cod_Livro e apagamola. Seguidamente, na barra de ferramentas, seleccionamos o botão Combo Box desenhamos uma caixa semelhante à caixa que existia anteriormente. Depois de desenhar a caixa surge-nos esta janela: Manual de Apoio 38/61 e 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Formulários Esta janela permite-nos escolher a tabela a partir de onde queremos buscar os elementos para guardar no campo cod_Livro. Neste caso, pretendemos buscar o campo cod_Livro à tabela Livro. Seleccionamos Livro e clicamos em Próximo. De seguida seleccionamos o campo cod_Livro e clicamos em Próximo. É-nos ainda perguntado se desejamos salvar este valor num campo da base de dados ou se pretendemos apenas usar este valor para exibição. Seleccionamos a opção Sim, desejo salvá-lo no seguinte campo do banco de dados, pois pretendemos, não apenas visualizar os códigos de Livro existentes na biblioteca, mas também armazenar este código na informação de empréstimo do mesmo livro. Escolhemos da caixa de listagem a opção cod_Livro, pois pretendemos que este valor seja armazenado no campo cod_Livro. Finalmente clicamos em Concluir. Salvamos o formulário e, quando o abrimos novamente, verificamos que temos à disposição a caixa de combinação, que nos permite seleccionar o código do livro que pretendemos requisitar, em vez de termos de introduzir esse código à mão. Manual de Apoio 39/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Formulários É importante fazer o mesmo procedimento para o campo cod_Utilizador. 4.2.3 Consultas As consultas são um dos diferentes objectos que constam numa base de dados. Permitem ao utilizador analisar as várias tabelas e retirar informação das mesmas. Por exemplo, numa tabela que contenha as moradas, se pretendermos saber quem mora em Sintra, podemos fazer uma consulta e obter uma nova tabela mas só com os utilizadores que habitam em Sintra. Os principais objectivos duma consulta são: ● Mostrar apenas os registos que obedeçam a um critério definido pelo utilizador; ● Ordenar os registos por um ou mais campos; ● Mostrar os campos de tabelas relacionadas por uma ordem diferente da original; ● Efectuar operações em campos do tipo numérico (Número ou Integer, Data, …); ● Eliminar ou adicionar registos segundo um determinado critério definido pelo utilizador. Consultas simples Exercício: ➢ Para a base de dados com três tabelas da biblioteca crie as seguintes consultas simples: Todos os Livros existentes (visualize todos os atributos). Todos os Empréstimos, exibindo o nome do utilizador, o título do livro e a data de devolução. Manual de Apoio 40/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Consultas Vamos criar sempre consultas na vista de estrutura (exibição de design). No separador Consultas da nossa base de dados seleccionamos a opção Criar consulta na exibição de design.... Neste tipo de vista a parte superior da janela apresenta-nos as tabelas seleccionadas para consulta. Na parte inferior são indicados os campos que pretendemos visualizar na consulta, bem como os critérios de selecção para filtragem dos dados. Pretendendo exibir todos os registos da tabela Utilizador, na janela de Adicionar tabelas escolhemos a tabela Utilizador e clicamos em Adicionar. Para escolha dos campos a exibir na consulta temos que colocar na secção inferior os campos que queremos. Pode ser feita de duas maneiras. Uma é seleccionar o campo que queremos e arrastá-lo para a secção inferior. Outra é colocar o cursor no espaço em branco Campo e seleccionar o campo da tabela por uma selecção da lista que aparece, como se pode ver na figura seguinte. Manual de Apoio 41/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Consultas Depois de escolhidos todos os campos pretendidos para a consulta clicamos no botão Salvar. É-nos pedido para introduzir o nome da consulta. Esta consulta criada é uma consulta simples, quando se pretende apenas exibir registos de uma só tabela. É também possível criar consultas com base em mais do que uma tabela. Podemos pretender, por exemplo, criar uma listagem com os nomes dos utilizadores, títulos dos livros requisitados e data de devolução. Estes três dados encontram-se em três tabelas diferentes. Para iniciar a criação de uma consulta clicamos em Criar consulta na exibição de design... e seleccionamos cada uma das três tabelas, clicando em Adicionar. Um duplo clique no nome da tabela faz a mesma operação. Manual de Apoio 42/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Consultas Seguidamente arrastamos o campo Nome da tabela Utilizador, o campo Título da tabela Livro e o campo Data_Devolução da tabela Empréstimo. Clicamos no botão Salvar e atribuimos um nome à consulta. Um duplo clique na consulta criada permite-nos observar que apenas obtivemos os dados referentes aos campos escolhidos das três tabelas. Para além da criação de consultas simples com base em várias tabelas podemos também fazer consultas com critérios e consultas com parâmetros. Consultas com critérios Exercício: ➢ Efectue uma consulta com critérios que mostre os Utilizadores a quem foram emprestados os livros de TIC. Resolução do Exercício: Por exemplo, podemos querer saber os nomes dos utilizadores que requisitaram livros com título “TIC”. Para isso, no design de consulta, arrastamos para a parte inferior os campos Nome da tabela Utilizador e Título da tabela Livro. Na secção Critério escrevemos TIC e a consulta gerada fará uma selecção, excluindo todas as requisições que não tenham sido efectuadas sobre o livro com nome “TIC”. Manual de Apoio 43/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Consultas Como podemos ver na consulta criada, são exibidos os nomes de utilizador e títulos do livro que correspondem apenas a uma requisição de livro com nome “TIC”. Consultas com parâmetros Exercício: ➢ Efectue uma consulta com parâmetros que mostre todos os empréstimos de um utilizador a especificar. Resolução do Exercício: Numa consulta deste tipo, o valor do critério será solicitado ao comandar a execução. Criamos parâmetros colocando na secção do Critério o sinal de interrogação, ? , como no exemplo: Manual de Apoio 44/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Consultas Ao executar esta consulta o diálogo <Entrada de Parâmetro> será exibido: Analise o resultado da consulta com parâmetros. Exercício: ➢ Pretende-se consultar a lista de todos utilizadores, com número superior ou igual ao introduzido como parâmetro. Manual de Apoio 45/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Consultas Resolução do Exercício: Ao executar esta consulta o diálogo <Entrada de Parâmetro> será exibido: Resultado da consulta: Exercícios de revisão: ➢ Defina, por palavras suas, o que é uma consulta. ➢ Que nos permite fazer as consultas nos sistemas de gestão de bases de dados? Manual de Apoio 46/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Relatórios 4.2.4 Relatórios A construção de relatórios é feita de forma idêntica à demonstrada no ponto 2 (2.2.5 Relatório) deste Manual. Já aprendemos a criar consultas, agora vamos criar relatórios com base em consultas. O processo de geração de relatórios com base em consultas é semelhante ao processo de criação de relatórios com base numa tabela. No separador Relatórios, escolhemos a opção Usar assistente para criar relatório... e, em vez de seleccionarmos uma tabela, seleccionamos uma consulta. Mais uma vez, usamos os botões > e >> para escolhermos os campos da consulta que desejamos que apareçam no relatório. Na secção seguinte, podemos atribuir nomes para os rótulos dos campos, se desejarmos que não sejam os mesmos nomes dos campos. Isto pode tornar o relatório mais compreensível ao utilizador final. Definirmos, se desejarmos, opções de agrupamento e escolhemos o aspecto do relatório. Finalmente, atribuimos um nome ao relatório, definimo-lo como relatório dinâmico e seleccionamos Criar relatório agora, clicando em Concluir. O relatório desejado será imediatamente criado. Manual de Apoio 47/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Relatórios Exercícios de revisão: ➢ Um médico pediu-lhe para elaborar uma base de dados de modo a poder fazer um controlo dos seus pacientes. Para isso ele pretende ter dois tipos de elementos separados: informação dos pacientes e informação das consultas. Sobre os pacientes pretende guardar o n.º do processo, nome, data de nascimento, sexo, morada, telefone, profissão. Sobre as consultas pretende guardar o n.º da consulta, data, nome do médico, observações e medicação. Defina quais as características da cada campo e construa pelo menos duas tabelas. Uma para a Identificação e outra para a Informação das Consultas. Estabeleça as relações entre as tabelas com base no número do processo. Defina também dois formulários, um para cada tabela. Introduza uma caixa de combinação para ir buscar o número do processo à tabela de identificação para armazenar na tabela de informação das consultas. Manual de Apoio 48/61 4 CONSTRUÇÃO DE UMA BASE DE DADOS RELACIONAL Relatórios Crie uma consulta para seleccionar todos os pacientes do sexo feminino. Crie um relatório com a consulta feita na alínea anterior. ➢ Está inscrito num clube? Faça um levantamento de informação relevante para ser armazenada numa base de dados de um clube. Que dados devem ser guardados sobre os atletas? Que informações são importantes sobre as modalidades? De acordo com a sua pesquisa, crie uma base de dados. Defina duas tabelas: uma para a inscrição dos atletas no clube, outra para as modalidades com os três campos seguintes: Nome da modalidade, Valor da mensalidade e Federada. Crie as relações entre as tabelas. Crie os formulários para inserção de dados. Introduza registos nas tabelas. Crie uma consulta para seleccionar dados de todos os atletas existentes; apenas deverão aparecer como resultado da consulta os números e o nomes dos atletas. Crie uma consulta para seleccionar os dados completos de todos os atletas com o nome Francisco. Crie um relatório com a consulta feita no ponto anterior. Defina uma caixa de combinação numa tabela, num campo em que ache isso conveniente. ➢ De acordo com o que já aprendeu, crie uma base de dados para armazenamento de informação da sua colecção de cds. Esta base de dados poderá armazenar também dados de empréstimo dos seus cds a amigos, dados sobre os artistas, etc. Crie as tabelas necessárias, formulários para inserção de dados, consultas e relatórios. Manual de Apoio 49/61 5 ELEMENTOS AVANÇADOS ELEMENTOS AVANÇADOS 5 ELEMENTOS AVANÇADOS 5.1 Propriedades dos campos Além do Nome de campo e do Tipo de campo, os campos possuem também Propriedades do campo, definições de pormenor que podem ser importantes. Nem todas as propriedades podem ser usadas com todos os tipos, mas o Base encarrega-se de, para cada campo, mostrar apenas as propriedades aplicáveis. A título de exemplo, serão mostradas as imagens das Propriedades do campo que existem no Base, para os seguintes Tipos de campos: inteiro, texto e data: Manual de Apoio 50/61 5 ELEMENTOS AVANÇADOS Propriedades dos campos Observação: Em campos como o cod_Empréstimo ou cod_Livro, podemos optar pelo tipo AutoValor, uma vez que pretendemos um número diferente para cada empréstimo ou para cada Livro. Como se pode ver pelas imagens, para os diferentes Tipos de campos existem propriedades comuns e propriedades específicas que permitem o controlo da apresentação do campo e a introdução de dados por parte do utilizador. Propriedade do campo Significado AutoValor Podemos escolher entre Sim ou Não. Em caso de Sim aparece IDENTITY em Incrementar automaticamente ... (estas duas propriedades complementam-se). Incrementar automaticamente ... Tamanho Exemplo de formatação Entrada obrigatória Valor padrão Valor preenchido automaticamente. Número de caracteres que lá podem ser escritos (texto) ou número máximo de algarismos (Integer) Permite criar regras de introdução, o que facilita a introdução de dados nos campos, de modo a evitar erros de digitação por parte dos utilizadores. Para indicar se o campo é ou não de preenchimento obrigatório. Valor com que o campo é automaticamente preenchido. De seguida, vamos analisar a Propriedade do campo designada por Exemplo de formatação, para Tipos de campos: inteiro, texto e data: Manual de Apoio 51/61 5 ELEMENTOS AVANÇADOS Subformulários 5.2 Subformulários É possível incluir um formulário noutro para que o segundo fique dependente do primeiro. A forma mais fácil de o fazer é criá-lo em simultâneo através do Assistente de formulários. Vamos dar início à criação de um formulário com subformulário, tomando como exemplo, a base de dados de um Clube de Desportos Náuticos, com a seguinte estrutura: Exercício: ➢ Construa a base de dados (Clube de Desportos Náuticos) com a estrutura que é dada, ficando ao seu critério as definições dos Tipos e Propriedades dos Campos. Criação de um formulário com subformulário utilizando o assistente Pretende-se que, para todos os membros existentes no clube se possa verificar os dados referentes ás inscrições e modalidades de cada um. No formulário teremos os dados da tabela Inscrição e no subformulário os dados referentes á tabela Modalidade. Como vimos em capítulos anteriores, no Base temos que seguir um conjunto de etapas que o Assistente de Formulários nos indica: Manual de Apoio 52/61 5 ELEMENTOS AVANÇADOS Subformulários ● Primeiro temos de seleccionar a tabela e escolher os campos que pretendemos para o formulário ● O próximo passo é configurar o subformulário, ou seja, temos de seleccionar a tabela, da qual iremos escolher os campos para o subformulário ● Escolhe-se os campos que pretendemos para o subformulário Manual de Apoio 53/61 5 ELEMENTOS AVANÇADOS Subformulários ● E a disposição dos campos do formulário e do subformulário respectivamente ● As três etapas seguintes são definidas do mesmo modo e têm o mesmo significado que no ponto 2 (2.2.4 Formulário) deste Manual. Manual de Apoio 54/61 5 ELEMENTOS AVANÇADOS Subformulários Resultado final: Manual de Apoio 55/61 6 BIBLIOGRAFIA BIBLIOGRAFIA 6 BIBLIOGRAFIA (1) Antão, António; Fernandes, Eduardo; Couto, Hélder; Almeida, Hugo; Antão, Rui (2005). TIC10: Parte 2. Lisboa: Areal Editores. (2) Augusto, Artur. (2003), Aplicações Informáticas 11ºano (Curso Tecnológico de Informática). Porto: Porto Editora. (3) Azul, Artur Augusto; Azul, Nuno; Fonseca, Dalila; Marques, Fernando; Pacheco, Deolinda; Soares, Ricardo (2005). Tecnologias da Informação e Comunicação 10 – Unidades Essenciais: 1.ª Parte. Porto: Porto Editora. (4) http://pt.wikipedia.org Manual de Apoio 56/61 7 ANEXOS ANEXOS 7 ANEXOS 7.1 Instalação do OpenOffice Base em Ambiente Windows O texto que se segue pretende explicar o processo de instalação do conjunto de programas que compõem o OpenOffice, que inclui o OpenOffice Base. É conveniente instalar o pacote completo, dado que o Base utiliza outros recursos do OpenOffice (como o Writer, por exemplo, para os Formulários). Além disso, o tamanho total da instalação não é significativo. Neste manual vamos usar a versão 2.0, em português do Brasil. Após ter sido feita a transferência do ficheiro de instalação em http://www.openoffice.org.br/, um duplo clique no ficheiro fará aparecer a seguinte janela: Clicar em ‘Avançar’ para continuar. Manual de Apoio 57/61 7 ANEXOS Instalação do OpenOffice Base em Ambiente Windows O OpenOffice terá que descomprimir os ficheiros para uma pasta, antes de proceder à instalação. No fim da instalação, esta pasta poderá ser apagada. Memorizar a localização dessa pasta ou indicar uma pasta de destino facilmente localizável. Depois de escolhida a Pasta de destino, clicar em ‘Descompactar’. Aguardar que os ficheiros sejam descomprimidos. Seguidamente clicar em ‘Avançar’. Surge a janela de Contrato de Licença: É necessário escolher a opção ‘Aceito os termos do contrato de licença’. Manual de Apoio 58/61 7 ANEXOS Instalação do OpenOffice Base em Ambiente Windows Introduza o nome do Utilizador e a Organização. Esta informação aparecerá nas propriedades dos documentos criados. Como havia sido dito há pouco, é conveniente instalar o pacote completo, o que corresponde à selecção da opção ‘Concluir’. Isto corresponde à opção tipicamente designada de “recomendada”. No entanto, é possível excluir algum componente não desejado, através da opção ‘Personalizada’. Neste caso, aparecerão todos os componentes do OpenOffice: Manual de Apoio 59/61 7 ANEXOS Instalação do OpenOffice Base em Ambiente Windows No exemplo excluímos a aplicação de criação de apresentações Impress. Essa selecção faz-se com clique no botão do lado direito. No caso da instalação completa, é questionado de seguida se deseja abrir ficheiros do Office da Microsoft com as aplicações convenientes do OpenOffice: Se seleccionar estas alíneas, qualquer ficheiro deste tipo será aberto, por predefinição, com a aplicação do OpenOffice. Esta questão só se aplica ao Microsoft Word (que será aberto com o OpenOffice Write), Microsoft Excel (OpenOffice Calc) e Microsoft PowerPoint (OpenOffice Impress). Depois de feitas todas as opções, está pronto para instalar. Clicar em ‘Instalar’. Aguardar a instalação do OpenOffice. Manual de Apoio 60/61 7 ANEXOS Instalação do OpenOffice Base em Ambiente Windows No final da instalação surge a janela seguinte. Clicar em ‘Concluir’. Manual de Apoio 61/61