









Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Este documento explica os diferentes tipos de dados utilizados no interbase, como integer, smallint, float, numeric e double, além de expor o funcionamento da junção e dos tipos de outer join (left, right e full). Adicionalmente, o texto aborda as transações e seus isolamentos (snapshot e transaction table stability), oferecendo informações sobre como proteger os dados do banco de dados durante o processamento.
Tipologia: Notas de estudo
1 / 15
Esta página não é visível na pré-visualização
Não perca as partes importantes!










O Tipo TimeStamp, no Dialect 1, não existia.
O tipo de Dado DECIMAL, armazena dígitos a serem gravados na precisão especificada na criação da tabela.
Ex :
CREATE TABLE FUNCIOARIOS ( ID INTEGER NOT NULL PRIMARY KEY, DESCRICAO VARCHAR(50) NOT NULL, ..., SALARIO DECIMAL(15,02) )
O tipo de Dado NUMERIC, armazenas dígitos a serem gravados na precisão especificada na criação da tabela.
Ex :
CREATE TABLE FUNCIOARIOS ( ID INTEGER NOT NULL PRIMARY KEY, DESCRICAO VARCHAR(50) NOT NULL, ..., SALARIO NUMERIC(15,02) )
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.
Ex :
CREATE TABLE FUNCIOARIOS ( ID INTEGER NOT NULL PRIMARY KEY, DESCRICAO VARCHAR(50) NOT NULL, ..., ALTURA SMALLINT )
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 até 2.147.483.
Ex :
CREATE TABLE FUNCIOARIOS ( ID INTEGER NOT NULL PRIMARY KEY, DESCRICAO VARCHAR(50) NOT NULL, ...)
O tipo de Dado FLOAT, armazena dígitos a serem gravados, mas, com precisão simples de 7 dígitos.
Ex :
CREATE TABLE PRODUTOS ( ID INTEGER NOT NULL PRIMARY KEY, DESCRICAO VARCHAR(50) NOT NULL, VLR_ULT_CMP_ITEM FLOAT ...)
Este é o tipo de campo no qual eu recomenda para uso monetário/valores no InterBase, Dialect 3. Sua precisão é de 64 bits, na documentação fala em usar apenas para valores científicos, mas, eu o uso em todos os sistemas, e obtenho sempre o arredondamento e precisão desejada.
Ex :
CREATE TABLE MOV_FINANCEIRA ( IDCODMOEDA CHAR(03) NOT NULL PRIMARY KEY, DATA_MOVIMENTACAO DATE NOT NULL PRIMARY KEY, VALOR_TOTAL_MOVIMENTACAO_DIA DOUBLE PRECISION );
Transações são isolamentos no Banco de Dados, desta forma, você “protege” os dados envolvidos na transação de algum erro ocorrido no processamento dessa transação. Isto é, sempre que você iniciar 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. Um exemplo típico é Notas Fiscais :
Você inicia uma transação no Cabeçalho das notas, envolve os itens, a baixa de estoque, movimentação financeira, parte fiscal, históricos, e, se por algum caso ocorrer um erro, digamos em “movimentação financeira”, todo o processamento até o presente momento, não será efetivado. Desta forma, podemos dizer que : Ou Grava/Confirma tudo, ou Cancela/Não confirma nada.
Veremos os tipos de Transação/Isolamentos que o InterBase suporta :
Fornece a visão atual dos dados do Banco de Dados. Este é o isolamento padrão do InterBase. Isto é, outras transações, incluem, alteram, excluem dados, mas, está 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.
Impedem que outras transações atualizem registros, nas tabelas envolvidas nesta transação. Mas, podem serem feitas leituras as tabelas envolvidas.
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 utilizado, pois, é usado para sistemas Multi-Usuários, Multi-Empresas e Sistemas para Internet.
Acesso nativo ao InterBase, através dos componentes InterBase Express “IBX”.
Acesso nativo significa que existem a sua aplicação e os componentes de Acesso Nativo para acessar a base de dados. Neste meio, não existe nada “BDE/ODBC/OLE DB” e ou outro driver. Isto é, e a sua 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 SGDB InterBase.
O que é InterBase Express “IBX”?
Está é a palheta responsável pela comunicação de dados entre seu aplicativo e o Banco de Dados InterBase. Nela existem 12 componentes “até a versão 4.4 do IBX”.
Vamos agora, analisar cada componente, sua Função, suas Propriedades, Métodos e Eventos que cada componente possuí.
Acesso nativo/direto ao InterBase.
TIBDataBase
É o responsável pela conexão entre a sua aplicação e o Banco de Dados InterBase.
Propriedades :
Connected : Ativa ou desativa a conexão com a base de Dados.
DataBaseName : Nome do arquivo de Base de Dados do Interbase® ".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. Se a sua aplicação necessita de um controle de várias transações ao mesmo tempo, deixe está propriedade em branco.
IdleTimer : Especifica quanto tempo o Cliente irá esperar por uma resposta do servidor. Caso o tempo tenha se excedido, a conexão será desfeita.
LoginPrompt : Se ativa ou não o pedido de senha quando houver a conexão com o Banco de Dados InterBase.
SQLDialect : Indica qual o Dialeto que será utilizado pela conexão. Caso necessita saber mais sobre Dialect, dê uma olhada no capitulo de InterBase.
TraceFlags : Indica quais serão as ações monitoradas pelo TIBSQLMonitor.
TIBTransaction
É o responsável pelo controle de transações da sua aplicação. Você pode controlar transações concorrentes, ou em threads independentes. Para tratarmos de transações, precisaríamos de um artigo a parte.
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.
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. Em versões atualizadas do IBX, você clica duas vezes no componente para abrir as opções de transações. Estas opções estão explicadas no capitulo de transações.
IdleTimer : Especifica quanto tempo a transação ira esperar para executar a propriedade DefaultAction
Eventos :
OnIdleTimer : Ocorre quando o tempo excedido por IdleTimer.
Principais Métodos :
Commit : Método responsável pela confirmação e gravação de toda a transação. Quando se inicia uma transação, você precisa fechá-la e confirmar ou não os dados envolvidos na transação. Para confirmar os dados e fechar a transação, você chama o método Commit.
CommitRetaining : Método semelhante ao Commit, mas, diferente do Commit, não fecha a transação, isto é, a transação ainda fica ativa, mas, foi confirmado a gravação dos Dados envolvidos na transação.
RollBack : Método responsável pelo cancelamento e a não gravação de toda a transação. Quando se inicia uma transação, você precisa fechá-la e confirmar ou não os dados envolvidos na transação. Para cancelar a transação e os dados envolvidos nela, você executa o RollBack.
RollBackRetaining : Método semelhante ao RollBack, mas, diferente do RollBack, não fecha a transação, isto é, a transação ainda fica ativa, mas, foi o cancelado os Dados envolvidos na transação.
StartTransaction : Inicia uma transação, no qual ainda tenha sido iniciada.
InTransaction : Verifica se a transação está ativa “Iniciada” ou não. TIBTable
Faz a conexão com a sua Base de Dados no mesmo modelo de TTable do Data Access do Delphi. O uso de TIBTable em modelo Client-Server não é
recomendado, por causa do número de instruções muito grande enviadas ao servidor. Por causa disto, é recomendável o uso de TIBQuery e ou TIBDataSet.
Diante deste contexto, não entraremos em maiores detalhes sobre o uso do TIBTable.
TIBQuery
Faz a conexão SQL com a sua Base de Dados InterBase. Este componente aceita quase todas as instruções DDL, DML e DQL. Para utilizar o TIBQuery como um componente de edição, é necessário o uso do TIBUpdateSQL. As propriedades e eventos, são praticamente as mesmas do componente TQuery de Data Access do Delphi. Explicarei algumas que estão diretamente ligada ao InterBase.
Propriedades :
BufferChunks : Número de Registros no Buffer.
DataBase : Onde você especifica a qual Data Base “IBDataBase” a Query está ligada.
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.
*Este método não está ligado diretamente ao InterBase, mas, achei interessante explicar, pois o mesmo não está muito explicado em livros e na Internet, e está propriedade está ligada diretamente a performance do Banco de Dados.
UpdateObject : Propriedade ligada ao TIBUpdateSQL, onde indica que a sua Query é Editável, isto é, podem ser feitas Inclusões, Alterações e Exclusões.
Eventos :
AfterDatabaseDisconnect : Ocorre após a desconexão do IBDataBase.
AfterTransactionEnd : Ocorre após a transação for encerrada. Isto é, após um Commit e ou RollBack.
BeforeDatabaseDisconnect : Ocorre antes da desconexão do IBDataBase.
BeforeTransactionEnd : Ocorre antes do encerramento da transação.
DatabaseFree : Ocorre depois que o IBDataBase seja eliminado da memória.
TransactionFree : Ocorre depois que o IBTransaction seja eliminado da memória.
TIBUpdateSQL
Propriedades :
Permite definir instruções DML para cada método Insert, Edit e Delete. TIBUpdateSQL+TIBQuery representa toda a funcionalidade SQL de manipulação de Dados e Live Result Set. A seguir, mostraremos as principais propriedades.
InsertSQL - Instrução SQL de Inserção de Dados. É executado quando for chamado o método Append/Insert.
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.
Eventos :
Não existem eventos associados a este componente.
Principais Métodos :
Não existem métodos relacionados diretamente ao InterBase.
TIBDataSet
Engloba toda a funcionalidade de TIBQuery+TIBUpdateSQL, e ainda é mais rápido. É o recomendado pelo Autor e pelos criadores dos componentes Interbase® Express "IBX".
Propriedades :
Active : Indica que a Tabela está aberta.
BufferChuncks : Número de Registros no Buffer.
DataBase : Indica o TIBDataBase da tabela.
DeleteSQL, InsertSQL, ModifySQL, RefreshSQL : São os mesmos explicados no componente TIBUpdateSQL.
SelectSQL : Instrução SQL de Result Live executada quando a tabela for aberta.
Transaction : Indica a qual transação “IBTransaction” pertence o IBDataSet.
Eventos :
OnAfterDataBaseDisconnect : Ocorre após o término da conexão com o Banco de Dados.
OnAfterTransaction : Ocorre após o término de transação. Este evento captura apenas o término de transação conhecida como "Hard". Isto é, não é chamado após o CommitRetaining e RollBackRetaining
BeforeDataBaseDisconnect : Ocorre antes do término da conexão com o Banco de Dados.
OnBeforeTransactionEnd : Ocorre antes do término "Hard" da transação.
DataBaseFree : Ocorre após a liberação dos Handle´s aloucados pelo TIBDataBase.
TransactionFree : Ocorre após a liberação dos Handle´s aloucados pelo TIBTransaction.
TIBSQL
Executa instruções SQL. Recomendável para o uso de instruções DML. Este componente não oferece condições de controles de Data Control, desta forma, um SELECT não poderá ser recuperado. A seguir as principais propriedades, eventos e métodos.
Propriedades :
GotoFirstRecordOnExecute : Se True vai para o primeiro registro após a execução de Instrução DQL.
ParamCheck : True indica que a instrução TIBSQL pode e irá receber parâmetros.
SQL : Instrução que será executada.
Transaction : Indica a qual transação “IBTransaction” pertence o IBSQL.
Eventos :
OnSQLChanging : Ocorre quando a instrução SQL é modificada.
Principais Métodos :
ExecQuery : Executa a Query SQL.
TIBExtract.
Componente responsável por extrair informações das Tabelas de Sistemas no InterBase. Tem o mesmo papel do Extract MetaData do IBConsole. Existem dois tipos relacionados ao IBExtract responsáveis pela Extração das informações do Banco de Dados :
TExtractObjectTypes = (eoDatabase, eoDomain, eoTable, eoView, eoProcedure, eoFunction, eoGenerator, eoException, eoBLOBFilter, eoRole, eoTrigger, eoForeign, eoIndexes, eoChecks, eoData);
TExtractType = (etDomain, etTable, etRole, etTrigger, etForeign, etIndex, etData, etGrant, etCheck);
Propriedades :
DataBase : Nome do IBDataBase no qual você liga ao IBExtract.
ShowSystem : Se retorna as informações das Tabelas de Sistemas.
Eventos :
Não existem eventos associados a este componente.
Principais Métodos :
IBExtract1.ExtractObject : Método responsável pela extração das informações das tabelas do Banco de Dados.
Exemplo :
IBExtract1.ExtractObject(eoDatabase); // Extrair todas informações do Banco InterBase
IBExtract1.ExtractObject(eoTable, 'EMPLOYEE'); // Extrai informações referente a apenas a tabela EMPLOYEE
IBExtract1.ExtractObject(eoTable, 'EMPLOYEE', [etDomain, etForeign, etIndex, etGrant]); // Extrai informações referente a apenas a tabela EMPLOYEE, mas, trará apenas informações referentes a domínio, Foreign Key, Índices, e Direitos.
Foi citado mais acima, a recomendação do uso do IBDataSet para manutenção dos Dados. Mas, não posso deixar de citar a dobradinha “IBQuery+IBSQL”, pois, estes dois componentes tem uma melhor performance sobre os demais componentes. Vale ressaltar também, que se for apenas fazer pesquisa e mostrar num GRID “por exemplo” os dados, use sempre o IBQuery !.
Palheta Interbase® Admin.
Interbase® Admin é o conjunto de componentes para a Administração de seu Banco de Dados InterBase. Neste capitulo, mostraremos apenas a funcionalidade de cada componente.
IBConfigService
Este componente tem função de enviar e mudar os parâmetros do Banco de Dados InterBase, entre eles, o Intervalo de Sweap, Page Control´s e outros.
IBBackupService
Este componente tem a função de realizar o Backup de sua base de dados. Você tem pode especificar os parâmetros do Backup.
IBRestoreService
Este componente tem a função de restaurar o Backup feito pelo IBConsole e ou pelo componente de Backup.
IBValidationService
Este componente tem a função de validar a sua base de dados. Sendo assim, você poderá validar as transações em Limbo, as transações Default e outras validações.
IBStaticalService
Este componente tem a função de mostrar as estatísticas do Banco de Dados, entre eles : Log, Header Pages, Índices e outros.
IBLogService
Este componente tem a função de lhe ajudar a criar seu próprio LOG do Banco de Dados InterBase.
IBSecurityService
Este componente tem a função de gerênciar o acesso a usuários ao seu Banco de Dados Interbase® e também a manutenção dos mesmos.
IBLicensingService
Este componente tem a função de dar a manutenção nos certificados do Software InterBase.