Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Tipos de Dados e Transações no InterBase, Notas de estudo de Informática

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

2013

Compartilhado em 27/08/2013

Garoto
Garoto 🇪🇸

4.6

(121)

1 / 15

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
)
O Tipo TimeStamp, no Dialect 1, não existia.
DECIMAL
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)
)
NUMERIC
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)
)
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.
Ex :
CREATE TABLE FUNCIOARIOS (
ID INTEGER NOT NULL PRIMARY KEY,
DESCRICAO VARCHAR(50) NOT NULL,
...,
ALTURA SMALLINT
)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Pré-visualização parcial do texto

Baixe Tipos de Dados e Transações no InterBase e outras Notas de estudo em PDF para Informática, somente na Docsity!

O Tipo TimeStamp, no Dialect 1, não existia.

DECIMAL

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) )

NUMERIC

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) )

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.

Ex :

CREATE TABLE FUNCIOARIOS ( ID INTEGER NOT NULL PRIMARY KEY, DESCRICAO VARCHAR(50) NOT NULL, ..., ALTURA SMALLINT )

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 até 2.147.483.

Ex :

CREATE TABLE FUNCIOARIOS ( ID INTEGER NOT NULL PRIMARY KEY, DESCRICAO VARCHAR(50) NOT NULL, ...)

FLOAT

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 ...)

DOUBLE PRECISION

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ção :

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 :

SNAPSHOT :

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.

SNAPSHOT TABLE STABILITY

Impedem que outras transações atualizem registros, nas tabelas envolvidas nesta transação. Mas, podem serem feitas leituras as tabelas envolvidas.

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 utilizado, pois, é usado para sistemas Multi-Usuários, Multi-Empresas e Sistemas para Internet.

Acesso nativo:

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.