Buscar

016_SimpleAdmin

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 59 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 59 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 59 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Centro Universitário do Sul de Minas – UNIS MG 
 
Unidade de Gestão da Educação Presencial – GEDUP 
 
Bacharelado em Ciência da Computação 
 
 
 
 
 
SimpleAdmin – Interface Gráfica para administração em bancos de dados 
Firebird 
 
 
 
 
Professor Paulo Roberto Rodrigues de Souza 
 
 
 
 
Joselara dos Santos Verginio 
Rodrigo Souza Rios 
Sebastião Tadeu de Rezende Silva 
 
 
 
 
Varginha, 2006 
 
 
 
 
2 
Centro Universitário do Sul de Minas – UNIS MG 
 
Unidade de Gestão da Educação Presencial – GEDUP 
 
 Bacharelado em Ciência da Computação 
 
 
 
SimpleAdmin – Interface Gráfica para administração em bancos de dados 
Firebird 
 
Professor Paulo Roberto Rodrigues de Souza 
 
Joselara dos Santos Verginio 
Rodrigo Souza Rios 
Sebastião Tadeu de Rezende Silva 
 
 
Projeto de Conclusão de Curso 
apresentado ao programa do curso de 
Bacharelado em Ciência da 
Computação do Centro Universitário 
do Sul de Minas, como requisito 
parcial para a obtenção do título de 
Bacharel em Ciência da Computação. 
 
 
 
 
 
Varginha, 2006 
 
 
 
 
3 
Folha de Aprovação 
 
 
Joselara dos Santos Verginio 
Rodrigo Souza Rios 
Sebastião Tadeu de Rezende Silva 
 
 
SimpleAdmin – Interface Gráfica para administração em bancos de dados 
Firebird 
 
Monografia apresentada ao curso de Ciência da Computação do Centro 
Universitário do Sul de Minas – UNIS/MG, como pré-requisito para obtenção do grau de 
bacharel pela Banca Examinadora composta pelos membros: Juliano Coelho Miranda, Lázaro 
Eduardo, Paulo Roberto Rodrigues de Souza. 
 
( ) Aprovado 
( ) Reprovado 
 
Data / / 
 
 
____________________________________________________ 
Profº. Ms. Paulo Roberto Rodrigues de Souza. 
 
____________________________________________________ 
Profº. Esp. Juliano Coelho Miranda. 
 
____________________________________________________ 
Profº. Esp. Lázaro Eduardo. 
 
 
 
 
 
4 
 
 
 
 
 
 
 
 
 
 
Dedicamos este trabalho 
primeiramente a Deus, nossos 
familiares, amigos e a comunidade 
docente do Unis – MG, na qual nos 
provém conhecimentos e fundamentos 
necessários em nosso dia a dia. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5 
Agradecimentos 
 
 
Agradecemos a Deus por nos privilegiar quanto ao dom do aprendizado, e 
oportunidade de estar cursando uma Faculdade. Também elevamos nossa estima em relação 
aos funcionários do Unis em geral, especialmente ao professor Paulo Roberto Rodrigues de 
Souza, na qual ministra a matéria fundamental para o desenvolvimento do projeto. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6 
Sumário 
AGRADECIMENTOS ..........................................................................................5 
SUMÁRIO..............................................................................................................6 
LISTA DE FIGURAS............................................................................................8 
RESUMO................................................................................................................9 
ABSTRACT .........................................................................................................10 
1. INTRODUÇÃO ..........................................................................................11 
1.1. OBJETIVOS ................................................................................................11 
1.2. PROBLEMATIZAÇÃO..................................................................................12 
1.3. JUSTIFICATIVA ..........................................................................................12 
1.4. ESTRUTURA DO TRABALHO ......................................................................12 
2. REFERENCIAL TEÓRICO .....................................................................13 
2.1. A LINGUAGEM DE PROGRAMAÇÃO DELPHI ...............................................13 
2.1.1. Considerações Iniciais......................................................................13 
2.1.2. Histórico do Delphi ..........................................................................13 
2.1.3. A linguagem de Programação Delphi ..............................................13 
2.1.4. O Delphi e seu IDE...........................................................................14 
2.1.5. Modelo Lógico Relacional................................................................15 
2.1.6. Sistema Gerenciador de Bancos de Dados Relacional (SGDBR)....15 
2.1.7. A Linguagem de Programação SQL.................................................19 
2.1.8. Firebird.............................................................................................22 
2.1.9. Acesso Nativo....................................................................................29 
2.1.10. Componentes de Acesso IBX ..........................................................29 
2.1.5.1 Componente IBDatabase ................................................................30 
2.1.5.2 Componente IBTransaction ............................................................31 
2.1.5.3 Componente IBQuery .....................................................................32 
2.1.5.4 Componente IBUpdateSQL ............................................................33 
2.1.11. Componentes de acesso e manipulação Data Access.....................35 
2.1.12. Interface Homem Máquina e Ergonomia Computacional..............38 
 
 
 
7 
2.1.13. Critérios Ergonômicos ...................................................................38 
2.1.14. Considerações Finais .....................................................................40 
3. DESENVOLVIMENTO.............................................................................41 
3.1. IMPLEMENTAÇÃO DO FORMULÁRIO PRINCIPAL ........................................41 
3.2. IMPLEMENTAÇÃO DO FORMULÁRIO REGISTRAR BANCOS .........................42 
3.3. VISUALIZAÇÃO DOS DETALHES DO BANCO ...............................................43 
3.3.1. Visualização dos Stored Procedures ................................................46 
3.3.2. Visualização dos Geradores (Generator).........................................47 
3.3.3. Visualização dos Domínios (Domains) ............................................48 
3.3.4. Visualização das Tabelas .................................................................48 
3.3.5. Visualização SQL .............................................................................49 
3.3.6. Execução Backup / Restauração ......................................................50 
3.3.7. Alteração de Valores dos Geradores................................................51 
3.3.8. Visualização e Execução de 3 Consultas SQL simultaneamente .....52 
4. CONCLUSÃO.............................................................................................54 
4.1. DIFICULDADES ENCONTRADAS.................................................................54 
4.2. TRABALHOS FUTUROS ..............................................................................54 
4.3. CONSIDERAÇÕES PESSOAIS.......................................................................54 
5. REFERÊNCIA BIBLIOGRÁFICA..........................................................55 
6. ANEXOS .....................................................................................................57 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8 
Lista de Figuras 
 
 
FIGURA 2.1 – INTERFACE DE DESENVOLVIMENTO DO DELPHI 7 (IDE) ......................................14 
FIGURA 2.2 – PALHETA DE COMPONENTES IBX (INTERBASE) ...................................................30 
FIGURA 2.3 – PALHETA DE COMPONENTES IBX – COMPONENTE IBDATABASE ........................31 
FIGURA 2.4 – PALHETA DE COMPONENTES IBX – COMPONENTE IBTRANSACTION ...................32 
FIGURA 2.5 – PALHETA DE COMPONENTES IBX – COMPONENTE IBQUERY .............................33FIGURA 2.6 – PALHETA DE COMPONENTES IBX – COMPONENTE IBUPDATESQL ....................34 
FIGURA 2.6 – PALHETA DE COMPONENTES IBX – IBRESTORESERVICE E IBBACKUPSERVICE .34 
FIGURA 2.6 – PALHETA DE COMPONENTES DATA ACCESS ........................................................35 
FIGURA 2.6 – PALHETA DE COMPONENTES DATA ACCESS COMPONENTE DATAACCES............36 
FIGURA 2.6 – PALHETA DE COMPONENTES DATA ACCESS COMPONENTE CLIENTDATASET ....37 
FIGURA 2.6 – PALHETA DE COMPONENTES DATA ACCESS COMPONENTE DATASETPROVIDER 38 
FIGURA 3.1 – INTERFACE DO FORMULÁRIO PRINCIPAL..............................................................41 
FIGURA 3.2 – INTERFACE DO FORMULÁRIO PARA REGISTRAR OS BANCOS.................................42 
FIGURA 3.3 – INTERFACE DE VISUALIZAÇÃO DOS DETALHES DO BANCO. ...................................44 
FIGURA 3.4 – VISUALIZAÇÃO DOS STOREDPROCEDURES...........................................................46 
FIGURA 3.5 – VISUALIZAÇÃO DOS GERADORES (GENERATOR)..................................................47 
FIGURA 3.6 – VISUALIZAÇÃO DOS DOMÍNIOS (DOMAINS) .........................................................48 
FIGURA 3.7 – VISUALIZAÇÃO DAS TABELAS..............................................................................49 
FIGURA 3.8 – VISUALIZAÇÃO SQL............................................................................................50 
FIGURA 3.9 – VISUALIZAÇÃO SEGURANÇA BACKUP/RESTORE ..................................................50 
FIGURA 3.10 – VISUALIZAÇÃO MANUTENÇÃO INDICES GERADORES.........................................53 
FIGURA 3.11 – VISUALIZAÇÃO DOS RESULTADOS DAS CONSULTAS SQL..................................52 
 
 
 
 
 
 
 
 
9 
Resumo 
 
 
Esta monografia descreve o desenvolvimento de uma ferramenta capaz de 
fornecer recursos para administração e manutenção em bancos de dados Firebird, pois existe 
a necessidade de uma ferramenta interativa e descomplicada, livre de qualquer licença para 
usuários inexperientes e futuros Dba´s (Database Administrator). A ferramenta possui 
recursos didáticos que auxiliam no aprendizado da linguagem de Programação para banco de 
dados SQL. Esse projeto tem como funções principais a criação de uma interface gráfica para 
o banco Firebird. Dentre os recursos disponíveis podemos destacar: 
a) Acesso fácil aos bancos cadastrados. 
b) Listagem das Tabelas do banco de dados com opção de filtrar as tabelas da 
lista. 
c) Exibição detalhada da tabela selecionada como campos, índices e 
metadados. 
d) Exibição de outras particularidades do banco como Generators, Domais e 
Stored Procedures. 
e) Executa até três selects e vários comandos (update/delete) ao mesmo 
tempo. 
f) Permite efetuar o backup do banco e restaurar o mesmo. 
 Com uma gama bastante interessante de recursos, tal aplicação possibilitará 
interação total ao banco de dados através de uma interface gráfica. 
 
Palavras-chave: 
Banco de dados, interface, programação, Firebird, SQL. 
 
 
 
 
 
 
 
 
 
 
 
10 
Abstract 
 
 
This monograph describes the development of a tool capable to supply to 
resources administration and maintenance in data bases Firebird, therefore the necessity of an 
interactive tool exists and easy free of any license for inexperienced and future users Dba´s 
(Database Administrator). The tool possesss didactic resources that assist in the learning of 
the programming language for data base SQL. This project has as main functions the creation 
of a graphical interface for the Firebird bank. Amongst the available resources we can detach: 
a) Easy access to the registered in cadastre banks. 
b) Listing of Tables of the data base with option to filter tables of the list. 
c) Detailed exhibition of the selected table as fields, indices and metadata. 
d) Exhibition of other particularitities of the bank as Generators, Domais and Stored 
Procedures. 
e) It executes up to three selects and some commands (update/delete) at the same time. 
f) It allows to effect backup of the bank and to restore the same. 
With a sufficiently interesting gamma of resources, such application will make 
possible total interaction to the data base through a graphical interface. 
 
Keywords: 
Database Bank, interface, programming, Firebird, SQL. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11 
1. Introdução 
 
Em meados de 1985, um grupo de engenheiros da DEC (Digital Equipament 
Corporation) deu inicio ao projeto chamado Groton, um banco de dados relacional, pois nessa 
época a idéia era construir um SGDBR (Sistema Gerenciador de Banco de Dados Relacional), 
contudo esse projeto ao longo dos anos veio sofrendo profundas alterações até finalmente em 
1986, receber o nome de Interbase®, iniciando na versão 2.0, e em julho de 2000 recebeu o 
nome de Firebird; uma versão OpenSource do Interbase® 6.0 quando a sua criadora Borland 
disponibilizou os fontes do projeto. 
O impulso inicial para a história do software livre foi dado em 1969, quando Ken 
Thompson, criou um sistema operacional multi-tarefa totalmente isento de custos. A sigla 
OSS (Open Source Software) é a que designa esse tipo de software, cuja estrutura do software 
pode ser modificada por qualquer usuário com conhecimentos tangíveis em informática. 
O uso de uma ferramenta livre para administração em bancos de dados Firebird, 
contribui maciçamente com o crescimento da legião de usuários que procuram alternativas 
viáveis, tanto para o uso próprio quanto comercial, visto que cada vez mais o Firebird vem 
conquistando mercados antes explorados somente pelos “gigantes” comerciais. 
 
 
1.1. Objetivos 
 
• Geral 
− Projetar e desenvolver uma ferramenta capaz de administrar bancos de 
dados Firebird, provendo de uma maneira clara e intuitiva a administração e o 
controle do banco, facilitando o uso tanto para fins didáticos como para aplicações 
profissionais, sem restrições de uso. 
 
• Específicos 
− Fazer um estudo detalhado dos recursos necessários como: IHM 
(Interface Homem Máquina) e ergonomia computacional, linguagem de 
programação, estrutura de manipulação e acesso à Banco de Dados, linguagem de 
pesquisa declarativa para banco de dados relacional (SQL) e Firebird. 
− Implementar os recursos básicos para a administração do banco. 
 
 
 
12 
− Implementar rotinas e métodos de segurança do banco utilizando 
componentes de manipulação de dados em memória. 
− Gerenciamento de backup e restauração do banco. 
 
1.2. Problematização 
 
Existe alguma ferramenta livre de licenças para essa finalidade, em proporções 
regionais? O usuário conseguirá obter retorno positivo através da utilização do software? 
 
• Hipóteses 
Com o desenvolvimento do SimpleAdmin, o software poderá se tornar uma 
vitrine para atrair investimentos de empresas ligadas ao setor de Desenvolvimento 
Computacional, gerando renda, empregabilidade e contribuindo com o crescimento local 
aquecendo o mercado interno de software. 
 
Delimitação do Problema 
O desenvolvimento do projeto se limitará basicamente nos controles 
administrativos do banco de dados. 
 
1.3. Justificativa 
 
Utilizando o SimpleAdmin, o usuário poderá estar ampliando seus conhecimentos 
sobre os assuntos na qual ele abrange, sendo Banco de Dados, Linguagem SQL e 
particularidades do Firebird. Portanto sendo uma ferramenta tanto didática quanto 
profissional. 
 
1.4. Estrutura do Trabalho 
 
O respectivo trabalho está dividido em 4 capítulos, sendo estes: 
− Capítulo 1: introdução e definição do escopo do projeto; 
− Capítulo 2: referencial teórico; 
− Capítulo 3: desenvolvimento; 
− Capítulo 4: conclusão. 
 
 
 
13 
2. Referencial Teórico 
 
 
2.1. A linguagem de Programação Delphi 
 
2.1.1. Considerações Iniciais 
 
Este estudo visa apresentar informações úteis quanto ao desenvolvimento 
utilizando a linguagem de programação Delphi. 
 
2.1.2. Histórico do Delphi 
 
Segundo o WIKIPÉDIA, quando lançado em 1995 para a plataforma Windows 16 
bits, Delphi foio primeiro a ser descrito como ambiente Rapid Application Development 
(RAD - em português, Desenvolvimento Rápido de Aplicações). A sua segunda versão, 
lançada um ano depois com o Delphi 2 já produzia aplicativos para a plataforma Windows 32 
bits, sendo que uma versão em C++, o C++ Builder surgiu alguns anos depois. Em 2001 uma 
versão para plataforma Linux, conhecida como Kylix foi disponibilizada. 
As principais diferenças entre o Delphi/Kylix e outras ferramentas de 
desenvolvimento são: a Linguagem Delphi, as paletas VCL e CLX, forte ênfase na 
conectividade com diversos bancos de dados e um grande número de componentes 
produzidos por terceiros, muitos deles disponíveis na internet e grande parte deles com o 
código fonte disponível. 
 
2.1.3. A linguagem de Programação Delphi 
 
O Ambiente de desenvolvimento Delphi, baseia-se em uma extensão orientada à 
objetos da linguagem de programação Pascal, conhecida como Object Pascal. Recentemente a 
Borland declarou sua intenção de referir à linguagem como “a linguagem Delphi”. As 
linguagens de programação mais modernas fornecem suporte para programação orientada à 
objetos (POO). As linguagens POO baseiam-se em três conceitos fundamentais: o 
encapsulamento (em geral implementado com as classes), a herança e o polimorfismo ou 
ligação tardia (late binding). 
 
 
 
14 
“A Sintaxe da linguagem Pascal é bastante prolixa e mais legível do que, por 
exemplo, a linguagem C ”.(CANTÚ, 2003). Sua extensão orientada à objetos segue a mesma 
estratégia, apresentando o mesmo poder da geração mais recente de linguagens POO. 
 
2.1.4. O Delphi e seu IDE 
 
De acordo com as definições de Cantú em seu livro “Dominando o Delphi 7: a 
bíblia”, em uma ferramenta de programação como o Delphi, o papel do IDE (ambiente 
integrado de desenvolvimento), é muitas vezes, ainda mais importante do que a linguagem de 
programação. O Delphi fornece recursos visuais e não visuais através de sua IDE, ao 
trabalhar com desenvolvimento visual, o tempo gasto é dividido em duas partes diferentes do 
aplicativo: nos Projetistas e no Editor de Códigos. 
Os projetistas permitem que você trabalhe com componentes à nível visual 
(quando incluímos um botão em um formulário), e nível não visual (quando criamos uma 
estrutura de acesso à bancos de dados através de dataset´s e data modules). 
O editor de códigos é o local onde escrevemos o código. O modo mais óbvio de 
escrever códigos em um ambiente visual, é responder aos eventos, iniciando com aqueles 
ligados à operações executadas pelos usuários do programa. 
Cantu, salienta que à medida que os programadores conhecem melhor o Dephi, 
eles passam a escrever principalmente códigos de manipulação de eventos e, em seguida 
passam a escrever suas próprias classes e componentes. 
“Object Inspector”
Propriedades dos Componentes
Editor de Código
Formulário Padrão
Componentes
“Object TreeView”
Organiza os componentes utilizados
no projeto em árvore.
 
FIGURA 2.1 – INTERFACE DE DESENVOLVIMENTO DO DELPHI 7 (IDE) 
 
 
 
15 
2.1.5. Modelo Lógico Relacional 
 
De acordo com Codd (Codd, 1985) criador da abordagem relacional, usamos o 
modelo lógico de dados relacional para realizarmos o projeto lógico do BD, considerando que 
as informações contidas em uma base de dados, podem ser consideradas como relações 
matemáticas e que estão representadas de maneira uniforme através do uso de tabelas 
bidimensionais. Este princípio coloca os dados dirigidos para estruturas mais simples de 
armazenamento, que são as tabelas. 
O modelo relacional apresenta conceitos para representação dos dados do BD e 
apresenta conceitos de operações que podem ser realizadas sobre os dados. Esses conceitos 
são baseados em um formalismo matemático (álgebra relacional). 
No modelo relacional os dados do BD são representados como relações (tabelas). 
Cada relação possui um nome e um esquema, que é um conjunto de atributos usados para 
descrever a relação. Cada atributo possui um nome. Uma tupla (linha da tabela) é um 
conjunto de valores relacionados, um valor para cada atributo (coluna da tabela) do esquema 
da relação. Uma tupla é uma instância da relação. Cada atributo possui um domínio, que é o 
conjunto de valores válidos para aquele atributo. 
 
2.1.6. Sistema Gerenciador de Bancos de Dados Relacional (SGDBR) 
 
Segundo definição de Codd, criador do modelo Lógico Relacional, um banco de 
dados relacional é um conceito abstrato que define maneiras de armazenar, manipular e 
recuperar dados estruturados unicamente em formas de tabelas, constituindo assim um Banco 
de Dados. 
O termo também é aplicado aos próprios dados, quando organizados dessa forma 
ou um programa de computador que implementa abstração. Codd publicou em 1985 um artigo 
que define as 12 regras para que um Sistema Gerenciador de Banco de Dados fosse 
considerado relacional. 
A arquitetura de um banco de dados relacional pode ser descrita de maneira 
informal ou formal. Na descrição informal estamos preocupados com aspectos práticos da 
utilização e usamos os termos tabela, linha e coluna. Na descrição formal estamos 
preocupados com a semântica formal do modelo e usamos termos como relação(tabela), 
tupla(linha) e atributo(coluna). 
 
 
 
16 
2.1.6.1. Regras de Definição de um SGDBR 
 
Segue abaixo as 12 regras definidas por Codd, para que um SGDB fosse 
considerado relacional. 
 
• 1ª Regra – Regra Fundamental: Um SGDB relacional deve gerenciar seus 
dados usando apenas suas capacidades relacionais. 
 
• 2ª Regra – Regra da Informação: Toda informação deve ser representada 
de uma única forma, como os dados em uma tabela. 
 
• 3ª Regra – Regra da Garantia de acesso: Todo dado pode ser acessado 
logicamente usando o nome da tabela, o valor da chave primária da linha e 
o nome da coluna. 
 
• 4ª Regra – Tratamento Sistemático de Valores Nulos: Os valores nulos 
existem, de forma a representar dados não existentes de forma sistemática 
e independente do tipo de dados. 
 
• 5ª Regra – Catálogo Dinâmico on-line baseado no modelo relacional: A 
descrição do banco de dados é representada no nível lógico como dados 
ordinários(isso é, em tabelas), permitindo que usuários autorizados 
apliquem as mesmas forma de manipular dados aplicada aos dados 
comuns ao consultá-las. 
 
• 6ª Regra – Da sub-linguagem compreensiva: Um sistema relacional pode 
suportar várias linguagens e formas de uso, porém deve possuir ao menos 
uma linguagem com sintaxe bem definida e expressa por cadeia de 
caracteres e com habilidade de apoiar a definição de dados, a definição de 
visões, a manipulação de dados, as restrições de integração, a autorização 
e a fronteira de transações. 
 
 
 
 
 
17 
• 7ª Regra – Da atualização de visões: Toda visão que for teoricamente 
atualizável será também atualizável pelo sistema. 
 
• 8ª Regra – Inserção, atualização e eliminação de alto nível: A capacidade 
de manipular a relação base ou relações derivadas como um operador 
único não se aplica apenas a recuperação de dados, mas também a 
inserção, alteração e eliminação de dados. 
 
• 9ª Regra – Independência dos dados físicos: Programas de aplicação ou 
atividades de terminal permanecem logicamente inalteradas quaisquer que 
sejam as modificações na representação de armazenagem ou métodos de 
acesso internos. Independência lógica de dados :Programas de aplicação 
ou atividades de terminal permanecem logicamente inalteradas quaisquer 
que sejam as mudanças de informação que permitam teoricamente a não 
alteração das tabelas base. 
 
• 10ª Regra – Independência de integridade: As relações de integridade 
específicas de um banco de dados relacional específica devem ser 
definidas em uma sub-linguagem de dados e armazenadas no catálogo (e 
não em programas). 
 
• 11ª Regra – Independência de distribuição: A linguagem de manipulação 
de dados deve possibilitar que as aplicações permaneçam inalteradas 
estejam os dados centralizados ou distribuídos fisicamente. 
 
• 12ªRegra – Da não-subversão: Se o sistema relacional possui uma 
linguagem de baixo nível (um registro por vez), não deve ser possível 
subverter ou ignorar as regras de integridade e restrições definidas no alto 
nível (muitos registros por vez). 
 
 
 
 
 
 
 
18 
2.1.6.2. Registros ou Tuplas 
 
De acordo com Codd, cada linha formada por uma lista ordenada de colunas 
representa um registro, ou tupla. Os registros não precisam conter informações em todas as 
colunas, podendo assumir valores nulos quando assim se fizer necessário. Resumidamente, 
um registro é uma instância de uma tabela, ou entidade. 
 
2.1.6.3. Chaves 
 
As tabelas relacionam-se umas as outras através de chaves. Uma chave é um 
conjunto de um ou mais atributos que determinam a unicidade de cada registro. 
Por exemplo, se um banco de dados tem como chaves Código do Produto e ID 
Sistema, sempre que acontecer uma inserção de dados, o sistema de gerenciamento de banco 
de dados irá fazer uma consulta para identificar se o registro já não se encontraria gravado na 
tabela. Neste caso, um novo registro não será criado, resultando esta operação apenas da 
alteração do registro existente. A unicidade dos registros, determinada por sua chave, também 
é fundamental para a criação dos índices. 
Temos dois tipos de chaves: 
 
• Chave primária: (PK - Primary Key) é a chave que identifica cada 
registro dando-lhe unicidade. A chave primária nunca se repetirá. 
 
• Chave Estrangeira: (FK - Foreign Key) é a chave formada através de um 
relacionamento com a chave primária de outra tabela. Define um 
relacionamento entre as tabelas e podem ocorrer repetidas vezes. Caso a 
chave primária seja composta na origem, a chave estrangeira também o 
será. 
 
2.1.6.4. Stored Procedure 
 
Segundo o Wikikpédia, um procedimento armazenado ou Stored Procedure é uma 
coleção de comandos em SQL para gerenciamento de Banco de dados. Encapsula tarefas 
repetitivas, aceita parâmetros de entrada e retorna um valor de status (para indicar aceitação 
 
 
 
19 
ou falha na execução). O procedimento armazenado pode reduzir o tráfego na rede, melhorar 
a performance, criar mecanismos de segurança, etc. 
 
2.1.6.5. Domains 
 
Utilizamos domais ou domínios para definirmos parâmetros de restrições à um 
dado atributo de uma tabela, validação de informação, etc. É definida pelo usuário, e 
consideramos um domínio como sendo um tipo de dado inexistente no banco de dados. 
 
2.1.6.6. Generator 
 
É usado para simular o campo auto-incremento dos campos numéricos das tabelas 
evitando chaves duplicadas. Seu valor inicial é 0 (zero), mas é atualizado toda vez em que 
ocorre uma chamada da função para incrementar ou decrementar. 
 
2.1.6.7. MetaDados ou Meta Informação 
 
Segundo o MTD-BR (Padrão Brasileiro de Metadados para Teses e Dissertações), 
Metadados são dados capazes de descrever outros dados, ou seja, dizer do que se tratam, dar 
um significado real e plausível a um arquivo de dados, são a representação de um objeto 
digital. Basicamente, poderíamos caracterizar metadados como a estrutura do banco de dados. 
 
2.1.7. A Linguagem de Programação SQL 
 
SQL é uma linguagem padronizada para a definição e manipulação de bancos de 
dados relacionais. Tipicamente, um SGBD oferece um interpretador SQL que permite isolar a 
aplicação dos detalhes de armazenamento dos dados. Se o projetista da aplicação tiver o 
cuidado de usar apenas as construções padronizadas de SQL, ele poderá desenvolver a 
aplicação sem se preocupar com o produto SGBD que estará sendo utilizado depois. 
(RICARTE, 2002). 
SQL pode ser utilizado diretamente pelo usuário, quando o SGBD oferece um 
interpretador SQL interativo, ou através de comandos embutidos em uma aplicação 
desenvolvida em uma linguagem de programação. No caso do SimpleAdmin foi utilizado a 
linguagem de programação Delphi, e a interação da aplicação Delphi com o banco se dará por 
 
 
 
20 
meio dos componentes de acesso nativos da palheta IBX. SQL pode ser utilizado diretamente 
pelo usuário, quando o SGBD oferece um interpretador SQL interativo, ou através de 
comandos embutidos em uma aplicação desenvolvida em uma linguagem de programação. 
No desenvolvimento do SimpleAdmin a interação com o banco de dados é feita 
utilizando componentes nativos da linguagem Delphi. A SQL pode ser definida em 3 
componentes integrantes da linguagem que são: 
• Uma linguagem de definição dos dados (DDL), usados para definir e 
revisar a estrutura de um determinado banco relacional; 
• Uma linguagem de controle de dados (DCL), para especificar mecanismos 
de segurança e integridade referencial dos dados; 
• Uma linguagem de manipulação dos dados (DML), usados para ler e 
escrever dados. 
 
2.1.7.1. Comandos para definição de Relações (DDL) 
 
Uma das necessidades de uma aplicação que irá armazenar seus dados em um 
sistema de banco de dados relacional é criar uma identidade para o conjunto de tabelas de sua 
aplicação.(Ricarte, 2002). Esse mecanismo não é padronizado em SQL, podendo variar de 
fornecedor a fornecedor de banco de dados. 
 
• Comando CREATE TABLE: Cria uma nova tabela com seus campos e 
define as restrições de campo. Ex.: “CREATE TABLE 
ABREFECHACAIXA( CODIGO INTEGER NOT NULL, 
DATAABERTURA DATE, DATAFECHA DATE, CONSTRAINT 
PRIMARY KEY (CODIGO))”. Com a execução desse comando será criada 
uma tabela com o nome de ABREFECHACAIXA e com seus respectivos 
campos. 
 
• Comando ALTER TABLE: Altera as definições de campos e restrições. 
Ex.: “ALTER TABLE ABREFECHACAIXA (ADD SITUACAO 
VARCHAR(30))”. Com essa instrução será inserido mais um campo na 
tabela, denominado situação do tipo varchar com limite de 30 caracteres. 
 
 
 
 
21 
• Comando CREATE INDEX: Cria um novo índice em uma tabela já 
existente. Ex.: “CREATE DESC INDEX CODIGO ON 
DATAABERTURA(ABREFECHACAIXA)”, especificamos através desse 
código que o campo DATAABERTURA pertencente a tabela 
ABREFECHACAIXA, será um índice identificador. 
 
• Comando DROP: Exclui uma tabela existente de um banco de dados ou 
um índice existente de uma tabela, e podemos excluir quais forem as 
funções existentes no banco, tais como, StoredProcedures, Triggers, 
Domains, Databases, etc. Ex.: “DROP TABLE ABREFECHACAIXA” , 
com esse comando excluímos a tabela ABREFECHACAIXA do banco. 
 
2.1.7.2. Comandos para controle de dados e mecanismos de segurança (DCL) 
 
• Comando GRANT: É o comando responsável por determinar quais 
usuários ou grupo de usuários podem ou não fazer nas tabelas do banco, de 
acordo com o tipo de permissão dada aos usuários. Ex.: “GRANT ALL ON 
TAB_FORNECEDORES TO RODRIGO”, definimos o nível de acesso ao usuário 
Rodrigo, na qual terá acesso completo na tabela fornecedores. 
 
• Comando REVOKE: É responsável pelo processo inverso ao GRANT, 
isto é, revogar os direitos dos usuários. Ex.: “REVOKE 
SELECT,INSERT,UPDATE,DELETE ON TAB_FORNECEDORES TO 
PUBLIC”, portanto houve uma redefinição em relação à quais usuários 
poderão acessar a tabela fornecedores. 
 
2.1.7.3. Comandos para manipulação dos Dados (DML) 
 
De acordo com definições de Roberto em sua apostila “Banco de Dados II – 
2006”, a operação select é utilizada para selecionar um subconjunto de tuplas de uma relação, 
sendo que estas tuplas devem satisfazer uma condição de seleção. A forma geral de uma 
operação select é: 
σ <condição de seleção> ( <nome da relação> ). 
 
 
 
22 
• Comando SELECT: permite a seleção de registros e atributos em uma ou 
mais tabelas. A forma básica para o uso do comando select é: 
SELECT <lista de atributos> FROM <lista de tabelas> WHERE 
<condições>; 
• Comando INSERT: permite inserir registros em um banco de dados, 
enviando a requisição ao SGDBR. A forma básica para o uso do comando 
insert é: 
INSERT INTO <tabela> [<campos>] [VALUES <valores>] 
 
• Comando UPDATE: permite atualizar alterações ocorridas nos dados 
existentes nas tabelas do banco. A forma básica para a utilização do 
comando update é: 
UPDATE<tabela> SET <campo> = <expressão> [WHERE 
<condição>]; 
 
• Comando DELETE: permite a exclusão de informações contidas nas 
tabelas do banco. A forma básica de utilização do comando delete é: 
DELETE FROM <tabela> [WHERE <condição>]; 
 
Devemos notar que a linguagem SQL consegue implementar estas soluções, 
somente pelo fato de estar baseada em Banco de Dados, que garantem por si mesmo a 
integridade das relações existentes entre as tabelas e seus índices. 
 
2.1.8. Firebird 
 
O Firebird é um poderoso banco de dados relacional que é compatível com SQL-
ANSI-92, e foi desenvolvido para ser um banco de dados independente de plataformas e de 
sistemas operacionais. 
 Este banco de dados, dispensa maiores estruturas dentro da empresa, ( DBA / 
Preparação ), onde basta instalar o software e usá-lo, sem a interferência freqüente de 
profissionais, especializados na manutenção do banco de dados de produção. 
 Acompanhando, isso tudo ele ainda dispensa o uso de super-servidores, usando 
pouco espaço em disco para sua instalação e utilizando pouca memória em situações normais 
de uso. Por isso a plataforma necessária para a sua instalação e utilização pode ser reduzida 
 
 
 
23 
diminuindo consideravelmente os custos do projeto. Outra grande vantagem do Firebird é que 
ele é múlti-plataforma, ou seja funciona em vários Sistemas Operacionais, 
 Os comandos da série DML (Data Manipulation Language – Manipulação de 
Dados Declarados), destinados a consultas, inserções, exclusões e alterações em um ou mais 
registros de uma ou mais tabelas podem ser feitas de maneira simultânea. Como exemplo de 
comandos da classe DML temos os comandos Select, Insert, UpDate, Delete, Commit e 
Rollback. 
 
2.1.8.1. Transações no Firebird 
 
Transações são isolamentos no Banco de Dados, desta forma, ”protegemos” os 
dados envolvidos na transação de algum erro ocorrido no processamento dessa transação. Isto 
é, sempre que iniciou uma transação, é garantido que os dados envolvidos na mesma, serão, 
ou gravados e ou cancelados, isto serve para todos os dados envolvidos na transação. 
Todas as funções do firebird como consultas, inserções, alterações, exclusões, 
enfim, qualquer acesso ao banco de dados, o firebird inicia uma nova transação para cada uma 
delas, garantindo assim a concorrência dos dados e a consistência da base de dados. 
Sob a abordagem de Cantu, o controle de transação do Firebird, consiste em 
identificar e discernir cada conexão ativa, que faz requisições ao banco, tornando-o um banco 
de dados bastante atrativo e robusto. 
 
2.1.8.2. Snapshot 
 
Fornece a visão atual dos dados do Banco de Dados. Este é o isolamento padrão 
do Firebird. Isto é, outras transações, incluem, alteram, excluem dados, mas, esta transação, 
não os enxergará, até que seja iniciada outra transação, e aí teremos acesso a o que realmente 
existe no Banco de Dados. Este isolamento, é mais usado para geração de Relatórios e 
Processamentos. 
 
2.1.8.3. Read Commited 
 
Permite que a transação enxergue todos os dados que foram “commitados” por 
outras transações. Isto é, outras transações estão incluindo dados, e a transação que estiver 
com está configuração, terá acesso a todos os dados atualizados. É o nível de transação mais 
 
 
 
24 
utilizado, pois, é usado para sistemas Multi-Usuários, Multi-Empresas e Sistemas para 
Internet. 
 
2.1.8.4. Comandos e Funções utilizados no Firebird 
 
A seguir serão listados os principais comandos e funções SQL do Firebird, essas 
podendo ser introduzidas no SimpleAdmin dependendo da situação do banco cadastrado e 
com o nível de privilégios definidos no banco. 
 
• ALTER DATABASE: Adiciona arquivos secundários ao Banco de 
Dados. Isso significa que poderemos ter um banco de Dados com vários 
arquivos dentro do mesmo GDB. Para a alteração da Base de Dados, o 
usuário SYSDBA, precisa ter acesso exclusivo ao Banco de Dados 
Firebird. Este comando, auxilia na repartição do Banco, deixando em 
algumas vezes o acesso aos Dados mais rápido. 
 
• ALTER DOMAIN : Altera a definição de um domínio que já tenha sido 
criado. Pode-se alterar qualquer elemento de domínio, exceto os domínios 
de NOT NULL e a troca do tipo de Dado. Para redefinir o tipo de domínio 
e ou alterar o NOT NULL, deve apagar o domínio e criá-lo novamente. 
 
• ALTER EXCEPTION: Altera a mensagem associada a uma exceção; caso 
ocorra alguma. 
 
• ALTER INDEX: Torna um índice ativo e ou inativo. Este comando está 
relacionado diretamente na performance do índice no Banco de Dados. Em 
certos momentos, o índice no Firebird pode ficar desbalanceado, desta 
forma, este comando recria o índice do Firebird. 
 
• ALTER TABLE: Altera a estrutura de uma tabela e ou a integridade da 
mesma. 
 
 
 
 
25 
• ALTER TRIGGER: Altera a definição de uma Trigger. Caso algum 
argumento for omitido, é assumido o valor definido no CREATE 
TRIGGER, ou no ALTER TRIGGER. 
 
• AVG: Retorna a média de valores de uma coluna da tabela. 
 
• CAST (): Usado em colunas, onde há a necessidade de utilizar a 
conversão de tipo de dados para outros formatos. 
 
• COMMIT: Efetiva as alterações e transações permanentemente no banco 
de dados. 
 
• COUNT: Retorna a quantidade de registros para uma condição em um 
select. 
 
• CREATE DATABASE: Cria um novo banco de dados “.GDB”. 
 
• CREATE DOMAIN: Cria uma definição de um “novo tipo de dado”. 
Onde pode ser feito também, checagem de valor, isto é, regras para o dado 
ser gravado nesse “novo tipo de dado”. 
 
• CREATE EXCEPTION: Cria uma mensagem de erro, armazenado no 
servidor, e só pode ser usado em StoredProcedures e ou Triggers. 
 
• CREATE GENERATOR: Cria um Generator de números inteiros e 
seqüenciais. Um Generator em conjunto com um Triggere ou 
StoredProcedures é usado para simular o campo auto-incremento, servindo 
para evitar chaves duplicadas em campos numéricos. 
 
• CREATE INDEX: Cria um índice para uma ou mais colunas especificas 
da tabela. O índice está ligado diretamente a performance do banco de 
dados. 
 
 
 
 
26 
• CREATE PROCEDURE: Cria uma Stored Procedure “SP”, e, define 
seus parâmetros de entrada/saída e o corpo da procedure. Uma “SP” é 
escrita em linguagem Firebird, e armazenada no próprio banco de dados 
para posteriores chamadas da aplicação. 
 
• CREATE TABLE: Cria uma nova tabela no banco de dados Firebird. 
 
• CREATE TRIGGER: Cria um Trigger (Gatilho) para a tabela 
espeificada. Relembrando que trigger é um gatilho disparado após alguma 
alteração ocorrida na tabela, isto é, podendo existir trigger de insert, delete, 
update e delete. 
 
• DROP DATABASE: Exclui o banco de dados “.GDB” Firebird, onde o 
mesmo só podendo ser excluído pelo seu criador ou pelo usuário 
SYSDBA do banco de dados. 
 
• DROP DOMAIN: Exclui um domínio previamente criado no banco de 
dados Firebird. Se o domínio estiver em uso, será necessário excluir o 
campo da tabela e posteriormente excluir o domínio. 
 
• DROP EXCEPTION: Exclui uma exceção previamente criada no banco 
de dados. Se a exceção estiver sendo utilizada por alguma Stored 
Procedure e/ou Trigger a exclusão falhará. Desta forma precisamos retirar 
a Exception da Stored Procedure e/ou Trigger, e executar novamente o 
DROP EXCEPTION. 
 
• DROP INDEX: Exclui o índice definido pelo usuário do banco de dados 
Firebird. 
 
• DROP PROCEDURE: Exclui uma Stored Procedure criado pelo usuário 
do banco de dados. As Stored Procedures referenciadas por Triggers não 
podem ser excluídas. 
 
 
 
 
27 
• DROP TABLE: Apaga uma tabela do banco de dados, índices e trigger´s 
referenciados pela tabela. 
 
• DROP TRIGGER: Exclui uma Trigger do banco de dados. 
 
• EXECUTE PROCEDURE: Executa uma Stored Procedure não seletável, 
ou seja não compatível com a instrução DML Select. 
 
• INSERT: Comando responsável para adicionar um ou mais registros na 
tabela de Banco de Dados Firebird. Os campos que forem omitidos 
recebem valores NULOS “NULL”. 
 
• ROLLBACK: Desfaz as mudançasocorridas até o exato momento no 
Banco de Dados Firebird, sem que o comando COMMIT tenha sido 
executado. Este comando e o Commit fecham a transação aberta pela 
aplicação e ou ferramenta de gerenciamento as tabelas. 
 
 
• UPDATE: Comando responsável pela atualização da tabela no Banco de 
Dados Firebird. Update trabalha de forma semelhante ao DELETE, é 
claro, com sua enorme diferença, se não passarmos a cláusula WHERE, 
toda a coluna da tabela será atualizada. 
 
2.1.8.5. Tipos de dados do Firebird 
 
O Firebird, suporta a maioria dos tipos de Dados do SQL, apenas não tem como 
tipo de dado, o tipo Boolean. Mas, isto não é uma falha do Firebird, outro SGDB´s também 
não tem este tipo de dado. Apesar de não ter este tipo de dado, podemos criar o nosso “tipo 
boolean” através de DOMAINS. 
 
• BLOB: O tipo de dado BLOB, tem o tamanho variável, isto é, não 
sabemos na hora da criação do campo BLOB qual será o seu tamanho 
realmente, mas, o limite do campo Blob que está na documentação do 
Firebird, é de 64k por segmento. 
 
 
 
28 
 
• CHAR(N): O tipo de dado CHAR, tem o seu tamanho definido na hora da 
criação da tabela. Seu tamanho máximo é de 32767, 32k. Este tipo tem o 
seu tamanho fixo. 
 
• VARCHAR(N): O tipo de dado VARCHAR, tem o seu tamanho definido 
na hora da criação da tabela. Seu tamanho máximo é de 32767, 32k. Este 
tipo tem o seu tamanho variado na tabela. Isto é, se você criar uma coluna 
de 45 caracteres, mas, a coluna tenha apenas 20 caracteres gravados, o 
restante, os 25 caracteres são descartados. 
 
• DATE: O tipo de Dado DATE, no DIALECT 3, armazena a Data, e seu 
tamanho é de 32 bits inteiros longos. 
 
• TIME: O tipo de dado TIME, armazena a hora, e seu tamanho é de 32 
bits inteiros longos. 
 
• TIMESTAMP: O tipo de dado TIMESTAMP, armazena a Data e a hora 
ao mesmo tempo, e seu tamanho é de 32 bits inteiros longos. 
 
• DECIMAL: O tipo de dado DECIMAL, armazena dígitos a serem 
gravados na precisão especificada na criação da tabela. 
 
• NUMERIC: O tipo de dado NUMERIC, armazena dígitos a serem 
gravados com precisão especificada na criação da tabela. 
 
• SMALLINT: O tipo de dado SMALLINT, armazena dígitos a serem 
gravados, mas, com o limite de : -32768 a 32767. Serve para armazenar 
dados numéricos pequenos. 
 
• INTEGER: O tipo de dado INTEGER, armazena dígitos a serem 
gravados, mas, diferente do SMALLINT, não existe um limite 
aparentemente, este tipo é de 32 bits, tem a escala de valores em : 
2.147.483.648 (negativo) à 2.147.483.648 (positivo). 
 
 
 
29 
• FLOAT: O tipo de Dado FLOAT, armazena dígitos a serem gravados, 
mas, com precisão simples de 7 dígitos. 
 
• DOUBLE PRECISION: Este é o tipo de campo no qual é recomendado 
para uso monetário/valores no Firebird. Sua precisão é de 64 bits. 
 
2.1.9. Acesso Nativo 
 
Acesso nativo significa que não há componentes de acesso que acessam a base de 
dados diretamente, sem que haja necessidade de uso de conexões acessórias. Neste meio, não 
existe nada “BDE/ODBC/OLE DB” e ou outro driver. Isto é, e a aplicação e a base de dados, 
nada mais envolve na conversação dos dados. E isto é feito através de Funções da API do 
Firebird.. 
 
2.1.10. Componentes de Acesso IBX 
 
Está é a palheta responsável pela comunicação de dados entre o aplicativo e o 
Banco de Dados Firebird. Nela existem 12 componentes, mas não houve a necessidade de se 
implementar o software utilizando todos os componentes, portanto apresentaremos apenas os 
componentes utilizados. 
 
 
 
30 
 
FIGURA 2.2 – PALHETA DE COMPONENTES IBX (INTERBASE) 
 
2.1.5.1 Componente IBDatabase 
 
 É o componente responsável pela conexão do Sistema ao Banco de dados 
Firebird. 
 
Propriedades: 
Connected : Ativa ou desativa a conexão com a base de Dados. 
DataBaseName : Nome do arquivo de Base de Dados do Firebird ".GDB". 
DefaultTransaction : Especifica qual Transação “IBTransaction”, é ligado automaticamente 
ao IBDataBase. Serve para aplicações onde existe apenas uma transação envolvida em todo o 
sistema. Isto é, para sistemas pequenos, onde o controle de transação não é tão importante 
para o bom funcionamento da aplicação. 
IdleTimer : Especifica quanto tempo o Cliente irá esperar por uma resposta do servidor. Caso 
o tempo tenha se excedido, a conexão será desfeita. 
Palheta de Componentes IBX (Interbase) 
 
 
 
31 
LoginPrompt : Se ativa ou não o pedido de senha quando houver a conexão com o Banco de 
Dados Firebird. 
SQLDialect : Indica qual o Dialeto que será utilizado pela conexão. 
TraceFlags : Indica quais serão as ações monitoradas pelo TIBSQLMonitor. 
 
 
FIGURA 2.3 – PALHETA DE COMPONENTES IBX (INTERBASE) – COMPONENTE IBDATABASE 
 
2.1.5.2 Componente IBTransaction 
 
É o componente responsável pelo controle de transações do sistema. 
 
Propriedades: 
 
Active : Inicia a transação, tem o mesmo efeito do método StartTransaction. 
DefaultAction : Indica a sua transação qual será o método executado quando o parâmetro 
IdleTimer exceder. 
Componente IBDataBase 
 
 
 
32 
DefaultDataBase : Indica a qual conexão a transação pertence. 
Params : Propriedade onde você especifica o tipo de transação, isto é, como a sua transação 
se portará na sua aplicação. 
IdleTimer : Especifica quanto tempo a transação ira esperar para executar a propriedade 
DefaultAction. 
 
 
FIGURA 2.4 – PALHETA DE COMPONENTES IBX (INTERBASE) – COMPONENTE IBTRANSACTION 
 
2.1.5.3 Componente IBQuery 
 
Faz a conexão SQL com a Base de Dados Firebird e repassa ao Firebird a 
instrução na qual será executada. 
 
Propriedades: 
BufferChunks : Número de Registros no Buffer. 
DataBase : Onde você especifica a qual Data Base “IBDataBase” a Query está ligada. 
Componente IbTransaction 
 
 
 
33 
Transaction : Onde você especifica qual a Transação “IBTransaction” a Query está ligada. 
Unidirectional* : Especifica se a navegação será Unidirecional, isto é, em um sentido apenas. 
E este sentido é somente para navegação para os próximos registros, como next (próximo) e 
prior (anterior). 
 
 
FIGURA 2.5 – PALHETA DE COMPONENTES IBX (INTERBASE) – COMPONENTE IBQUERY 
 
2.1.5.4 Componente IBUpdateSQL 
 
Permite definir instruções DML para cada método Insert, Edit e Delete. 
IBUpdateSQL + IBQuery representa toda a funcionalidade SQL de manipulação de Dados. 
 
Propriedades: 
InsertSQL - Instrução SQL de Inserção de Dados. É executado quando for chamado o 
método Append/Insert. 
Componente IBQuery 
 
 
 
34 
ModifySQL - Instrução SQL de alteração de Dados. É executada quando a tabela for 
colocada em modo de Edição 
DeleteSQL - Instrução SQL para deletar Dados. É executada quando o método Delete for 
chamado. 
RefreshSQL - Instrução SQL para executar o Refresh. É executada quando for chamado o 
método Refresh. 
 
 
FIGURA 2.6 – PALHETA DE COMPONENTES IBX (INTERBASE) – COMPONENTE IBUPDATESQL 
 
2.1.10.1. Componente IBBackupService e IBRestoreService 
 
Componentes responsáveis por efetuar o backup e a restauração do banco de 
dados firebird, através de parâmetros definidos pelo usuário. 
 
FIGURA 2.6 – PALHETA DE COMPONENTES IBX – IBRESTORESERVICE E IBBACKUPSERVICE 
Componente IBUpdateSQL 
 
 
 
35 
2.1.11. Componentes de acesso e manipulação Data Access 
 
É a palheta do Delphi que provê recursos para a manipulação dos dados em 
memória, antes que ocorra alterações diretas no banco. 
 
 
FIGURA 2.6 – PALHETA DE COMPONENTES DATA ACCESS 
 
2.1.11.1. Componente ClientDataAcces 
 
É o componente responsável por prover acesso à informações contidas no banco 
de dados. Através desse componente é possível realizar a conexão entre os vários 
componentes de acesso ao banco. 
Palheta de Componentes Data Access 
 
 
 
36 
 
FIGURA 2.6 – PALHETA DE COMPONENTES DATA ACCESS – COMPONENTE DATAACCESS 
 
2.1.11.2. Componente ClientDataSet 
 
É o componente responsável por montar a estrutura existente no banco Firebird, 
em uma estrutura em memória, onde a manipulação de inserção,alteração, exclusão não são 
feitas diretamente no banco de dados Firebird. Garantindo assim uma arquitetura mais 
confiável e com um maior controle de redundância. 
Utilizando esse componente, as requisições ao banco de dados são menore e as 
transações ficam “abertas” por menos tempo, impedindo que outros usuários tenham acesso À 
dados obsoletos. 
Componente DataAccess 
 
 
 
37 
 
FIGURA 2.6 – PALHETA DE COMPONENTES DATA ACCESS – COMPONENTE CLIENTDATASET 
 
2.1.11.3. Componente DataSetProvider 
 
Utilizamos o componente DataSetProvider para gerar as instruções SQL, para 
aplicar cada modificação no banco de dados firebird, ou seja, é responsável por estar enviando 
ao banco as alterações ocorridas nos dados contidos em memória através de um clientdataset. 
Componente ClientDataSet 
 
 
 
38 
 
FIGURA 2.6 – PALHETA DE COMPONENTES DATA ACCESS – COMPONENTE DATASETPROVIDER 
 
2.1.12. Interface Homem Máquina e Ergonomia Computacional 
 
De acordo com o LABIUTIL (Laboratório de Usabilidade da Informática da 
Universidade Federal de Santa Catarina), onde ressalta a importância da ergonomia 
computacional e usabilidade através de métodos e aplicações pré definidos, entre eles 
Presteza, Legibilidade, Concisão, Ações Mínimas, Flexibilidade, Experiência dos Usuários, 
etc. Com base nesses aspectos, foi desenvolvida uma padronização dos aspectos ergonômicos 
e usuais do projeto. 
 
2.1.13. Critérios Ergonômicos 
 
Com base nas definições do estudo realizado por Scapin, visando a organização 
dos conhecimentos sobre ergonomia de interfaces homem-computador, de modo a torná-los 
facilmente disponíveis, tanto para especialistas como para não especialistas nessa disciplina. 
Componente DataSetProvider 
 
 
 
39 
O sistema de critérios definido por Scapin resulta desse esforço e visa facilitar a recuperação 
de conhecimento ergonômico. 
Através de experimentos variados, esse conjunto de critérios está sendo 
continuadamente validado e apurado em suas definições. A lista atual de critérios foi definida 
em 1993 por Dominique Scapin e Christian Bastien. 
Os critérios principais são os seguintes: Condução, Carga de Trabalho, Controle 
Explícito, Adaptabilidade, Gestão de Erros, Consistência, Significado dos Códigos e 
Compatibilidade. 
 
• Condução: A condução refere-se aos meios disponíveis para aconselhar, 
orientar, informar e conduzir o usuário na interação com o computador 
(mensagens, alarmes, rótulos, etc.). 
 
• Carga de Trabalho: O critério Carga de Trabalho diz respeito a todos os 
elementos da interface que têm um papel importante na redução da carga 
cognitiva e perceptiva do usuário e no aumento da eficiência do diálogo. 
 
• Controle Explicito: O critério Controle Explícito diz respeito tanto ao 
processamento explícito pelo sistema das ações do usuário, quanto ao controle 
que os usuários têm sobre o processamento de suas ações pelo sistema. 
 
• Adaptabilidade: A adaptabilidade de um sistema diz respeito a sua capacidade 
de reagir conforme o contexto e conforme as necessidades e preferências do 
usuário. 
 
• Gestão de Erros: A gestão de erros diz respeito a todos os mecanismos que 
permitem evitar ou reduzir a ocorrência de erros e, quando eles ocorrem, que 
favoreçam sua correção. Os erros são aqui considerados como entrada de dados 
incorretos, entradas com formatos inadequados, entradas de comandos com 
sintaxes incorretas, etc. 
 
• Consistência: O critério homogeneidade/coerência/consistência refere-se à 
forma na qual as escolhas na concepção da interface (códigos, denominações, 
 
 
 
40 
formatos, procedimentos, etc.) são conservadas idênticas, em contextos 
idênticos, e diferentes, em contextos diferentes. 
 
• Significado dos Códigos: O critério significado dos códigos e denominações 
diz respeito à adequação entre o objeto ou a informação apresentada ou pedida e 
sua referência. Códigos e denominações significativas possuem uma forte 
relação semântica com seu referente. Termos pouco expressivos para o usuário 
podem ocasionar problemas de condução, podendo levá-lo a selecionar uma 
opção errada. 
 
• Compatibilidade: O critério compatibilidade refere-se ao acordo que possa 
existir entre as características do usuário (memória, percepção, hábitos, 
competências, idade, expectativas, etc.) e as tarefas, de uma parte, e a 
organização das saídas, das entradas e do diálogo de uma dada aplicação, de 
outra. Ela diz respeito também ao grau de similaridade entre diferentes 
ambientes e aplicações. 
 
2.1.14. Considerações Finais 
 
O desenvolvimento de ferramentas para essa finalidade, não é bastante difundida 
entre a comunidade de desenvolvedores, onde existe uma certa dificuldade em obter materiais 
didáticos que suprem essa necessidade. Porém a indústria de desenvolvimento de softwares no 
Brasil está em um estágio bastante promissor, e não somente o desenvolvimento dessas 
ferramentas, mas de inúmeras outras com finalidades distintas. Portanto, a qualquer 
desenvolvedor que deseje ingressar nesse ramo de atividade, passará por períodos difíceis, 
principalmente na obtenção de materiais didáticos. Com o passar dos tempos, esse cenário 
tende a melhorar juntamente com o avanço tecnológico do país. 
 
 
 
 
 
 
 
 
 
41 
3. Desenvolvimento 
 
O SimpleAdmin foi desenvolvido sob a perspectiva de uma interface bastante 
fácil de se trabalhar, onde não exista a necessidade de abrir vários formulários para a correta 
utilização, na qual o usuário terá total visão do software. 
 
3.1. Implementação do Formulário Principal 
 
Após um estudo elaborado em se tratando de Interfaces, usabilidade e ergonomia 
computacional, o formulário principal do projeto é bastante subjetivo no que tange sua 
utilização por menos experiente que seja o usuário. 
 
 
FIGURA 3.1 – INTERFACE DO FORMULÁRIO PRINCIPAL 
 
Após a confecção do formulário principal, deu-se inicio ao processo de 
desenvolvimento de suas funcionalidades. 
 
 
 
 
42 
3.2. Implementação do formulário Registrar Bancos 
 
Para melhor trabalharmos com os banco de dados, criamos uma interface na qual 
“registramos” os atributos necessários para a conexão com a base de dados. Esses valores 
salvos, correspondem ao path (caminho) em que o banco se encontra no disco rígido ou até 
mesmo remotamente, para isso atribuímos o valor do atributo host, e conseqüentemente o 
nome do banco de dados registrado, será o host (caso seja remoto) concatenado ao path do 
banco. Precisamos definir questões de caracteres especiais, em que o banco trabalhe sem erros 
e com o máximo de performance, através da escolha do “Character Set”, e por fim os 
atributos como Usuário e Senha. 
 
FIGURA 3.2 – INTERFACE DO FORMULÁRIO PARA REGISTRAR OS BANCOS. 
 
 
 
 
 
 
 
 
 
43 
• Código Fonte da Implementação Registrar Bancos 
 
begin 
 frmRegistrarBD := TfrmRegistrarBD.Create(self); 
 try 
 if FrmRegistrarBD.ShowModal = mrOk then 
 begin 
 id := mdBancos.RecordCount + 1; 
 mdBancos.Append; 
 mdBancosid.Value := id; 
 mdBancosnome.Value := FrmRegistrarBD.EditNome.Text; 
 mdBancoshost.Val := FrmRegistrarBD.EditHost.Text; 
 mdBancoscaminho.Value := FrmRegistrarBD.EditFilename.text; 
 mdBancosusuario.Value := FrmRegistrarBD.EditUsuario.Text; 
 mdBancossenha.Value := FrmRegistrarBD.EditSenha.Text; 
 mdBancosset.Value := FrmRegistrarBD.cbCharSet.Text; 
 mdBancos.Post; 
 end; 
 finally 
 FrmRegistrarBD.Free; 
end; 
 
 
3.3. Visualização dos Detalhes do banco 
 
Após o registro do banco de dados, é necessário abri-lo para a visualização de 
todos o tipo de informação na qual o SimpleAdmin se propõe a fazer. Após a definição e 
registro do álias (máscara) é possível visualizar os detalhes pertencentes ao banco registrado, 
onde toda a estrutura do banco será armazenada em uma tabela temporária, onde quaisquer 
alterações serão salvas em memória, para posteriormenteser efetivada a transação no banco 
de dados, efetuando um Commit. 
 
 
 
44 
 
FIGURA 3.3 – INTERFACE DE VISUALIZAÇÃO DOS DETALHES DO BANCO. 
 
• Código Fonte da implementação de visualização dos dados do banco cadastrado 
 
Para as tabelas do banco: 
begin 
 if not IBDatabase.Connected then exit; 
 mdEstrutura.EmptyTable; 
 mdGenerator.EmptyTable; 
 mdIndices.EmptyTable; 
 QueryAux.Close; 
 QueryAux.sql.Text := ''; 
 if cbTabelasInternas.Checked then 
 QueryAux.sql.Text := 'SELECT RDB$RELATION_NAME TABELA FROM 
RDB$RELATIONS ORDER BY 1' else 
 QueryAux.sql.Text := 'SELECT RDB$RELATION_NAME TABELA FROM 
RDB$RELATIONS WHERE RDB$RELATION_ID > 127 ORDER BY 1'; 
 
 
 
45 
 QueryAux.Open; 
 LabelTabelas.Tag := 0; 
 ListTabelas.Items.Clear; 
 while not QueryAux.Eof do 
 begin 
 if (EditFiltro.text = '') or 
(Pos(UpperCase(EditFiltro.text),UpperCase(QueryAux.FieldByName('TABELA').AsStrin
g)) > 0) then 
 begin 
 nometabela := Trim(QueryAux.FieldByName('TABELA').AsString); 
 FItensIdentificador.Add(LowerCase(nometabela) + '==' + LowerCase(nometabela)); 
 ListTabelas.Items.Add( nometabela ); 
 LabelTabelas.Tag := LabelTabelas.Tag + 1; 
 end; 
 QueryAux.Next; 
 end; 
 LabelTabelas.Caption := ' Foram listadas ' + FormatFloat(',0',LabelTabelas.Tag) + ' 
tabelas.'; 
 
 if LabelTabelas.Tag > 0 then 
 begin 
 ListTabelas.ItemIndex := 0; 
 ListTabelasClick(nil); 
 if LabelTabelas.Tag = 1 then 
 AbrirTabelaSelecionada; 
 end; 
end; 
 
 
 
 
 
 
 
 
 
46 
3.3.1. Visualização dos Stored Procedures 
 
Visualização dos procedimentos armazenados existentes no banco de dados, 
sendo possível analisar seu respectivo código metadata. 
 
FIGURA 3.4 – VISUALIZAÇÃO DOS STOREDPROCEDURES 
 
• Código Fonte da implementação de visualização dos Stored Procedures 
 
IBExtract.ExtractObject(eoProcedure,ListStoredProcedures.Items.Strings[ListStoredProce
dures.ItemIndex]); 
CodigoStoredProcedures.Lines.Text := IBExtract.Items.text; 
MemoMetadataGeral.Lines.Text := codigoStoredProcedures.Lines.Text; 
 
 
 
 
 
 
 
 
 
47 
3.3.2. Visualização dos Geradores (Generator) 
 
Interface que provê acesso à todos os geradores existentes no banco de dados 
firebird, no caso, o banco registrado pelo usuário. 
Para edita-lo basta apenas clicar 2x sobre o gerador e alterar o seu respectivo 
valor. 
 
FIGURA 3.5 – VISUALIZAÇÃO DOS GERADORES (GENERATOR) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48 
3.3.3. Visualização dos Domínios (Domains) 
 
Interface que provê acesso à todos os domínios existentes no banco de dados 
firebird, no caso, o banco registrado pelo usuário. 
 
 
 
FIGURA 3.6 – VISUALIZAÇÃO DOS DOMÍNIOS (DOMAINS) 
 
3.3.4. Visualização das Tabelas 
 
Fácil visualização das tabelas existentes no banco de dados firebird, onde o 
usuário poderá acessar a estrutura, índices e metadados da tabela na qual foi selecionada. 
 
 
 
49 
 
FIGURA 3.7 – VISUALIZAÇÃO DAS TABELAS 
 
3.3.5. Visualização SQL 
 
Interface na qual provê ao usuário acesso direto as instruções SQL a serem 
executadas no banco de dados firebird, informando também o retorno (os dados), a instrução 
SQL executada, o plan (plano de otimização interna de consultas do firebird) e os erros, caso 
tenha algum. 
 
 
 
50 
 
FIGURA 3.8 – VISUALIZAÇÃO SQL 
 
3.3.6. Execução Backup / Restauração 
 
De maneira rápida e fácil, em alguns segundos é possível efetuar o Backup e 
Restauração. 
 
 
 
51 
 
FIGURA 3.9 – VISUALIZAÇÃO DO BACKUP / RESTAURAÇÃO 
 
 
3.3.7. Alteração de Valores dos Geradores 
 
Para podermos alterar os valores dos campos dos geradores existentes no banco de 
dados, basta-nos clicar 2 x sobre o gerador correspondente e um novo formulário irá abrir, 
com as opções de mudança e efetivação da alteração. 
 
 
 
 
52 
 
FIGURA 3.10 – VISUALIZAÇÃO MANUTENÇÃO INDICES GERADORES 
 
3.3.8. Visualização e Execução de 3 Consultas SQL simultaneamente 
 
Visualização do resultado obtido através das 3 consultas SQL, inseridas no 
SimpleAdmin, retornando os valores correspondentes. 
 
 
 
53 
 
FIGURA 3.11 – VISUALIZAÇÃO DOS RESULTADOS DAS CONSULTAS SQL 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54 
4. Conclusão 
 
 
Através da realização deste trabalho foi possível concluir a importância dos 
bancos de dados para as aplicações computacionais e a diversidade de recursos existentes em 
um Sistema Gerenciador de Banco de Dados. Sob o ponto de vista de mercado de trabalho, 
percebemos a necessidade de ferramentas e aplicativos desta natureza, tornando-se uma área 
de atuação do Cientista da Computação. Além disso, com as dificuldades encontradas e os 
desafios que foram superados, foi possível perceber o quão é importante o trabalho de 
conclusão de curso para nós, acadêmicos, com relação ao aprendizado e experiências 
adquiridas. 
 
4.1. Dificuldades Encontradas 
 
Dentre as dificuldades encontradas, talvez a mais difícil tenha sido conciliar 
nossas atividades acadêmicas de final de curso com a pesquisa e o desenvolvimento do 
projeto. Além disso, percebemos também, a escassez de material bibliográfico sobre este 
assunto. 
 
4.2. Trabalhos Futuros 
 
Para trabalhos futuros, sugerimos o aperfeiçoamento da ferramenta, assim como, o 
desenvolvimento dos recursos avançados, como por exemplo Triggers, Views, Tabelas (novos 
recursos). 
 
4.3. Considerações Pessoais 
 
Todo o aprendizado ocorrido durante a vida acadêmica, foi de extrema 
importância para o aprimoramento intelectual, social e pessoal. Portanto uma série de fatores 
contribuíram para o desenvolvimento do projeto. 
 
 
 
 
 
 
55 
5. Referência Bibliográfica 
 
 
CANTÚ, MARCO. Dominando o Delphi 7: a bíblia. Tradução de Kátia 
Aparecida Roque. Revisão técnica de Álvaro Rodrigues Antunes. São Paulo, SP: Pearson 
Education do Brasil, 2003. 
 
CANTU, CARLOS HENRIQUE. Firebird Essencial. São Paulo, SP: Ciência 
Moderna. 2005. 
 
WIKIPÉDIA. Delphi. Disponível em: <http://pt.wikipedia.org> Acessado em 09 
de Novembro de 2006. 
 
WIKIPÉDIA. Stored Procedure. Disponível em: 
<http://pt.wikipedia.org/wiki/Stored_procedure> Acessado em 15 de Novembro de 2006 
 
 MTD-BR. Metadados ou MetaInformação. Disponível 
em:<http://bdtd2.ibict.br/index.php?option=com_content&task=view&id=82&Itemid=135> 
Acessado em 12 de Novembro de 2006. 
 
ROBERTO, PAULO ROBERTO R.S. Apostila Banco de Dados II – 2006. 
Disponível em: http://www.paulo.varginha.br/bd2006_2.zip> Acessado em 21 de Novembro 
de 2006. 
 
 WIKIPÉDIA. Sistema Gerenciador de Bancos de Dados Relacionais. 
Disponível em: 
<http://pt.wikipedia.org/wiki/Banco_de_dados_relacional#Porque_usar_um_Banco_de_Dado
s_Relacional.3F> Acessado em 09 de Novembro de 2006. 
 
TODD, Bill. . ClientDataset . Disponível em: 
<http://www.activedelphi.com.br/apostilas/cds.pdf > Acessado em 12 de Novembro de 2006. 
 
 
 
 
56 
RODRIGUES, Anderson Haertel. . Apostila Interbase Express IBX . 
Disponível em: <http://www.firebase.com.br/articles/clientdatasetibx.pdf > Acessado em 12 
de Novembro de 2006. 
 
LABIUTIL. Laboratório de Usabilidade da Informática da Universidade Federal 
de Santa Catarina. Usabilidade e Ergonomia Computacional. Disponível em: < 
www.labiutil.inf.ufsc.br/ >; Acessado em 19 de Novembro de 2006. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57 
6. Anexos 
 
Agradeço primeiramente à Deus, 
por ter me dado condições físicas e psíquicas 
para realizar essa jornada, à minha namorada 
Cristiane na qual fui ausente em vários 
momentos de nossas vidas devido à atividade 
acadêmica, dispersando em mim sua 
tolerância, consentimento, paciência e por 
acreditar nas minhas capacidades. 
Quero agradecer também aos meus 
pais pelo apoio irrestrito que tive durante todo 
o períododo curso, à minha tia Maria Ângela 
P.S.Miyake e o sr. Khimity Miyake por ter me 
dado condições de ingressar e concluir com 
sucesso um curso superior. A minha sogra 
Rosilene e sogro Sebastião (Tião Cruzeiro). 
por ter proporcionado uma base complementar 
e por ter acreditado em meus propósitos. 
Agradeço a todos os funcionários 
do Unis MG, à todo corpo docente, 
principalmente o professor Paulo Roberto 
Rodrigues, que nos propiciou a base para 
desenvolvermos o projeto. 
Por fim agradeço à todos os meus 
amigos que estiveram presentes durante essa 
longa jornada acadêmica. 
 
 Rodrigo S. Rios 
 
 
 
 
 
 
58 
Agradeço primeiramente a DEUS 
por ter me dado condições fisicas e mentais 
para realizar esta tarefa e meu namorado 
Alexandre também pela dedicação, paciência e 
até mesmo tolerância neste período o qual não 
pude participar tanto de suas vidas o quanto 
mereciam. 
Agradeço também a professor 
Paulo Roberto, pela orientação neste trabalho e 
também pelo enriquecimento de informações 
sempre presentes em suas aulas. 
 Agradeço a equipe do Unis-MG : 
Professores,funcionários ,secretarias,etc .Sem 
os quais simplesmente não seria possível a 
conclusão deste trabalho. 
Por fim agradeço também aos meus 
colegas que me ajudaram muito e em especial 
Rodrigo e Tadeu, que contribuíram para a 
realização desse trabalho. 
 
 Joselara S. Verginio 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59 
Agradeço a Deus pela 
oportunidade de mais esta valiosa 
conquista, com certeza de que foi 
alcançada por ser necessária para 
continuidade de minha caminhada, pois 
sei que Ele não nos dá o que desejamos, 
mas o que necessitamos. À toda equipe 
UNIS MG, professores, diretores e 
funcionários especialmente ao Jean 
Roger, meus sinceros agradecimentos, e 
desculpem-me aqueles os quais não tive 
a oportunidade de conhecê-los 
pessoalmente, mas sei que também 
trabalharam por mim. Aos meus colegas 
que por tantas vezes me auxiliaram, 
nunca os esquecerei. À minha família, e 
em especial ao meu irmão Vicente que 
sempre tem as palavras certas quando 
penso errado. Aos primos Marçal 
Batista, Marcelo Tavares e o sobrinho 
Flávio Baroncelli que são engenheiros 
mecânicos e engenheiros de 
prestatividade, os quais estão sempre 
prontos a ajudarem. Sou grato à minha 
ex-esposa Andréia, por suas lições de 
vida e perseverança, ensinando-me que 
por menor que seja a chance, poderá ser 
o início de um grande projeto. E que as 
pessoas citadas, representem toda a 
humanidade, pois somos parte do 
sistema e as partes só acontecem quando 
sincronizadas. 
Tadeu.

Continue navegando