Neste artigo iremos aprender a criar um banco de dados Firebird 2.1 e criar geradores de ID utilizando a ferramenta IBEXPERT 2008.
Todo projeto deve ser iniciado por um planejamento. Ter uma idéia e não jogá-la no papel pode ser uma grande “furada”, pois na hora em que os erros aparecerem, a detecção se torna lenta e complicada. Por isso, antes de sair programando ou criando o banco de dados, faça uma modelagem de dados:
Figura 1 - Modelagem de Dados de Controle de Acesso usando Case Studio.
Com a modelagem nas mãos, vamos então à criação do banco de dados.
Como vamos fazer uma conexão simples com um banco de dados local, vamos por efeito de organização criar no diretório C:\ do Windows uma pasta denominada BD:
Figura 2 – Pasta Destino do Banco de dados.
Vamos então abrir o IBEXPERT 2008, ir até o Menu Database e selecionar “Create Database...”:Figura 3 – Selecionando Menu de criação de Banco de Dados.
Preencha os campos conforme orientação dada abaixo:
· Server: Local
· Database: C:\BD\BDACESSO.fdb
· Client Library File: C:\Windows\System32\FBCLIENT.DLL
· Username: SYSDBA
· Password: masterkey
· Page Size: 16384
· Charset: WIN1252
SQL Dialect: Dialect 3Figura 4 – Criando Banco de Dados de Acesso.
Obs. Conforme figura 4, deixe marcada a opção de registrar banco de dados após a criação (Register Database After Creating).
Clique em OK.
Agora, estaremos na tela de registro:
Figura 5 – Registrando o banco de dados BDACESSO.
É importante ter atenção com três (3) informações:
· Database Alias: BDACESSO (Apelido do seu banco de dados)
· Server Version: Firebird 2.1 (Versão do banco de dados que está sendo utilizada)
· Font Characters Set: ANSI_CHARSET (O IBEXPERT tem versões onde o russo é padrão)
Ainda nesta tela, clique em “Test Connect” para ver se a conexão está correta. A seguinte tela irá aparecer:
Figura 6 – Tela de teste de conexão.
Observando a tela acima, observamos a palavra “Passed!”, que significa que o teste de conexão está correto.
Clique em Cancel.
Clique em Register. Pronto! Seu banco de dados está criado!
Ao visualizar o Database Explorer do IBEXPERT você verá que o BDACESSO foi criado. Dê um duplo clique sobre ele e você verá toda a estrutura do banco de dados:
Figura 7 – Estrutura do banco de dados BDACESSO.
Vamos agora para a criação da tabela USUARIO, conforme modelagem de dados da Figura 1. Ainda na Database Explorer, clique com o botão direito sobre “Tables” e selecione “New Table...”.
Coloque o nome da tabela e adicione o IDUSUARIO, marque as opções:
· PK – chave primária;
· Not Null – nunca poderá ser nulo;
· Auto Inc – Auto incremento.
Ao selecionar Auto Inc, aparecerá a tela de criação do Generator_ID, que é um procedimento que fará a incrementação de IDUSUARIO:
Figura 8 – Criando gerador de ID para IDUSUARIO.
Clique na aba “Trigger” e marque a opção “Create a Trigger”:
Figura 9 – Criação de Trigger de auto-incremento.
Clique na aba “Procedure” e marque a opção “Create a Procedure”:
Figura 10 – Criação de procedure de auto-incremento.
Nota: para cada tabela que for criada no banco de dados, esse passo a passo de criação do ID deverá ser repetido, mudando somente as denominações.
Dê OK.
Clique na seta pra baixo e vá adicionando os demais campos da tabela até que ela fique com a seguinte configuração:
Figura 11 – Criando Fields da Tabela USUARIO.
Repita os mesmos passos para a tabela MENU e USUARIO_MENU:
Figura 13 – Criando Fields da Tabela USUARIO_MENU.
A tabela USUARIO_MENU foi criada com o objetivo de se poder adicionar vários Menus pra cada usuário e por isso ela é composta de duas chaves estrangeiras:
1) IDUSUARIO;
2) IDMENU;
Então, precisamos fazer o banco de dados entender esses relacionamentos. Ainda na tabela USUARIO_MENU selecione a aba “Constraints” e em seguida a sub-aba “Foreign Keys”:
Figura 14 – Acessando chaves estrangeiras.
Clique com o botão direito na parte branca e selecione a opção “New Foreign Key”:
Figura 15 – adicionando uma nova chave estrangeira.
Aplique as seguintes ações:
· OnField: IDUSUARIO;
· FK Table: USUARIO;
· FK Field: IDUSUARIO;
· Update Rule: CASCADE; (ao atualizar a tabela Usuario, atualiza a tabela USUARIO_MENU)
· Delete Rule: CASCADE; (ao deletar da tabela Usuario, deleta-se da tabela USUARIO_MENU)
Adicione uma nova chave estrangeira e aplique as seguintes ações:
· OnField: IDMENU;
· FK Table: MENU;
· FK Field: IDMENU;
· Update Rule: CASCADE; (ao atualizar a tabela MENU, atualiza a tabela USUARIO_MENU)
· Delete Rule: CASCADE; (ao deletar da tabela MENU, deleta-se da tabela USUARIO_MENU)
Sua tela deverá ficar assim:
Figura 16 – Chaves estrangeiras.
Clique na figura do raio para compilar as chaves estrangeiras. Aparecerá uma nova tela. Basta clicar em close. Volta na estrutura da sua tabela (Clique na aba Fields) e verá os relacionamentos criados:
Figura 17 – Fields da tabela USUARIO_MENU.
Ø PK (Primary Key) = Chave Primária;
Ø FK (Foreign Key) = Chave Estrangeira.
Conforme modelagem de dados solicitada, o banco de dados de controle de acesso está criado e configurado.
Use os conceitos para os bancos de dados de suas aplicações. Estude e fique Expert em IBExpert!
Até o próximo artigo!
Rafael Marins Ribeiro
Engenheiro de Softwares
Rafael.marins.ribeiro@gmail.com