Вы находитесь на странице: 1из 43

Captulo 1

Server Manager
Interbase Server Manager um aplicativo para administrar os Bancos de Dados locais ou remotos. Este software executado em uma estao cliente, mas pode administrar bancos de dados no cliente ou em qualquer servidor na rede. Utilizado para administrar segurana de banco de dados, autorizar usurios novos, senhas de usurio, remover autorizaes de usurio, habilitar e desabilitar o banco de dados, executar manuteno de banco de dados, manter a integridade de um banco de dados, consertar um banco de dados corrompido, recuperar transaes, fechar e reiniciar um banco de dados.

Ao longo das prximas pginas, teremos uma definio de como operar e o que significa cada opo deste gerenciador, objetivando dar-lhe uma viso ampla deste recursos e a sua aplicabilidade.

Pg.: 1

File | Server Login


Antes de executar alguma tarefa de banco de dados local ou remoto, voc deve se registrar em um servidor . Se j tiver conectado a mais de um banco de dados, voc pode trocar a qualquer momento entre eles. Para tanto, escolha um nome de banco de dados diferente na rvore de servidor ou use o combo. Para problemas de login, veja Troubleshooting.

Caixa de dialogo Login Para conectar a um servidor local ou remoto, voc tem que usar a caixa de dialogo Login. 1. Escolha o tipo de servidor - local ou remoto - clicando em um dos botes de rdio.

2. Escolhendo um servidor remoto, voc tem que entrar com o nome do servidor remoto (a mquina que contem o servidor ) no campo Servidor. Desejando conectar a um servidor distante que tenha sido utilizado anteriormente, simplesmente escolha na lista dropdown. Voc tambm tem que escolher um protocolo (mtodo de conexo) para o servidor selecionado na lista de Protocolos de rede. Se seu servidor local, o Servidor e Protocolo de rede no so requeridos. 3. Adicione o Nome de Usurio e a Senha, clicando em OK para encerrar o dilogo e conectar ao servidor selecionado. Aps os procedimentos anteriores, um artigo novo aparece na rvore do servidor (painel da esquerda), e o servidor exibe a verso do na rea de informao sumria (painel certo). Nota: Inicialmente, o nico usurio autorizado de um servidor SYSDBA, com "masterkey" sendo a senha. Todos os outros usurios devem ser adicionados pelo SYSDBA em Tasks | User Security Communications troubleshooting Pg.: 2

Troubleshooting Conexes de Servidor Locais Se voc encontra problemas de conexo para um Servidor Local, primeiro consulte o arquivo READIB.TXT para ver se h qualquer restrio geral que afete sua configurao. Certifique-se que a aplicao est achando as DLLs do . Use Arquivo | Procurar... no Windows para localizar GDS.DLL e assegurar-se que elas sejam da verso do seu Servidor . Aplicaes clientes procuraro diretrios para DLLs na seguinte ordem: 1. 2. 3. 4. O diretrio atual. Diretrio WINDOWS. Diretrio SYSTEM do WINDOWS. O diretrio que contm o executvel para a tarefa que requer a DLL.

Troubleshooting Conexes de Servidor Remoto Certifique-se que a aplicao cliente est usando as DLLs corretas. Certifique-se de que nenhuma DLL permanea carregada em memria. E tambm, se a aplicao est encontrando as DLLs corretas. Use Arquivo | Procura... no Windows Gerenciador de Arquivo para localizar REMOTE.DLL e GDS.DLL, a fim de assegurar-se que elas so da verso de seu Servidor . Aplicaes clientes procuraro diretrios para DLLs na seguinte ordem: 1. 2. 3. 4. O diretrio atual. Diretrio WINDOWS Diretrio SYSTEM do WINDOWS. O diretrio que contm o executvel para a tarefa que requer a DLL.

Nota O inclui uma ferramenta diagnstico para ajudar a encontrar a fonte de qualquer problema, estabelecendo conexes de cliente-servidor. Esta ferramenta chama-se WSDiag. COMDIAG Alternativamente, voc pode clicar duas vezes em COMDIAG.EXE em .../INTERBAS\BIN. Para mais informao sobre ComDiag e mais detalhes sobre troubleshooting para cada protocolo, veja a ajuda de online de ComDiag:

Pg.: 3

File | Server Logout


Utilize esta opo para desligar/desativar o Servidor. A caixa de dialogo exibida abaixo, apresentada, permitindo a confirmao ou no da operao.

File | Database Connect


Exibe a caixa de dialogo abaixo, permitindo conectar um banco de dados baseado na escolha feita na opo Database.

File | Database Disconnect


Desconecta o banco de dados.

File | Exit
Encerra o gerenciador desconectando automaticamente qualquer banco de dados para o qual esteja conectado.

Pg.: 4

Tasks | User Security


Escolha Tasks | User Security para abrir a caixa dilogo de segurana do Interbase e executar as seguintes operaes: 1 Adicionar um usurio. 2 Modificar a senha de usurio e informao opcional. Voc no pode modificar o nome de um usurio, mas se necessitar faz-lo voc tem que excluir o nome do usurio e ento readicion-lo novamente selecionando o usurio cuja configurao voc quer modificar e ento escolher a opo Modifique o Usurio.... 3 Para excluir um usurio, selecione o nome do usurio que voc quer remover e escolher a opo Apague.... Uma caixa de dilogo lhe pedir que confirme a ao. Nota: S o usurio SYSDBA autorizado para as tarefas citadas.

Caixa de dialogo Security Segurana do banco de dados controlada pelo Security que contm informaes sobre todos os usurios autorizados para o servidor atual. Esta caixa de dilogo permite ver estes usurios e operar as tarefas citadas no tpico anterior. Quando um usurio tenta conectar a um banco de dados no servidor, so verificados o nome e a senha no banco de dados de segurana. Se um registro idntico achado, a conexo tem sucesso. O usurio de SYSDBA Todo servidor tem um usurio de SYSDBA, sendo a senha masterkey. Inicialmente, SYSDBA o nico usurio autorizado em um servidor; o SYSDBA tem que autorizar todos os outros usurios no servidor. SYSDBA um usurio especial que se sobrepe segurana do Servidor, e executa tarefas especiais como paralisao do banco de dados. S o usurio de SYSDBA pode atualizar o banco de dados de segurana para adicionar usurios novos, apagar os usurios, ou modificar configuraes de usurio. Pg.: 5

O SYSDBA pode autorizar um novo usurio nomeando um usurio e uma senha no banco de dados de segurana. Importante: recomendado mudar a senha o mais rpido possvel para SYSDBA. Caso contrrio, a conta SYSDBA no ser segura j que de domnio pblico.

Caixa de Dialogo User Configuration Esta caixa de dilogo permite ao SYSDBA adicionar um usurio novo para o Interbase, modificar as senhas de usurios existentes, e informao opcional. Nota: Nomes de usurio podem ter at 31 caracteres, no sendo case-sensitive. Senhas so case-sensitive. S os primeiros oito caracteres da senha so considerados.

Pg.: 6

Tasks | Backup
Auxilia o processo de cpia de um banco de dados para um arquivo em um disco rgido ou outra mdia de armazenamento. Para proteger um banco de dados, caso haja falha em disco ou outra perda de dados potencial, deve-se copiar o banco de dados regularmente. Para segurana adicional, recomendado armazenar a cpia em uma localizao fsica diferente do servidor de banco de dados de origem.

Caixa de dialogo Database Backup Esta caixa de dilogo consiste em trs reas: Fonte (Backup Source), Destino (Backup Destination), e Opes (Options). O nome de servidor atual exibido na rea superior da caixa de dialogo. Backup Source Digite o nome e o caminho do diretrio do banco de dados que voc quer copiar. Sendo um banco de dados servidor fora da mquina local, clique no boto Remote. Backup Destination Identifique nome e endereo para o arquivo backup. Nota: Arquivos de banco de dados e arquivos backup podem ter qualquer nome com qualquer extenso legal em seu sistema operacional. As extenses .gdb e .gbk so convenes do Interbase. Backup options Transportable Format Ao copiar um banco de dados para outra mquina que no esteja na rede, inspecione a opo de Formato Transportvel. Esta opo escreve dados em um formato genrico e o permite restabelecer a cpia em qualquer mquina que contenha o Interbase. Back Up Metadata Only Copia um banco de dados vazio, ou seja, s seu metadata. Voc tambm pode extrair o metadata de um banco de dados utilizando o Windows, o que vai produzir um arquivo de script (arquivo texto). Pg.: 7

Disable Garbage Collection A cpia procedida sem que os dados excludos e ainda presentes fisicamente, sejam tambm copiados para o destino. Ignore Transactions in Limbo Esta opo gera o backup desconsiderando as transaes ativas e no encerradas. Antes de copiar um banco de dados que contm transaes pendentes, execute o recuperador de transao. Ignore Checksums Um checksum uma anlise pgina-por-pgina de dados para verificar sua integridade. Erros de Checksum indicam corrupo de dados, e o Interbase lhe impede de copiar um banco de dados se so descobertos checksums ruins. Examine os dados restabelecendo o banco de dados para posteriormente copi-lo. Verbose Output Habilita uma tela para exibio de texto standard para as mensagens de erro. A janela de exibio de texto standard permite procurar texto especfico, copi-lo para um arquivo, e imprimir o texto. Backing up a database from a remote server Permite copiar um banco de dados para um servidor diferente do servidor atual. - Coloque o banco de dados na mquina onde freqentemente usado. - Feche o servidor original para manuteno enquanto o banco de dados estiver em funcionamento. Caixa de dialogo Remote Backup Source

Entre com nome do servidor remoto. Selecione o protocolo de rede desejado. Entre com seu nome de usurio e a senha no servidor remoto, e clique em OK. Pg.: 8

Nota: O protocolo de rede para um cpia remota deve ser utilizvel pela fonte e servidores de objetivo. S use NetBEUI se a fonte e servidores de objetivo seja o Windows NT. Use TCP/IP para copiar entre servidores heterogneos quando ambos tenham software TCP/IP Backup options Idem neste captulo.

Tasks | Restore
Opo para restabelecer/restaurar uma cpia de banco de dados.

Caixa de dialogo Database Restore Permite restabelecer um banco de dados de um arquivo previamente criado. Esta caixa de dilogo consiste em trs reas: Restore Source, Restore Destination, e Restore Options. O nome de servidor atual exibido na esquerda superior da rea Restore Source. O arquivo posterior do qual o banco de dados est sendo restabelecido chamado FONTE. O banco de dados que restabelecido chamado de DESTINO ou OBJETIVO. Para Restabelecer um banco de dados: - Digite o nome do arquivo de fonte ou dispositivo no servidor atual (inclusive caminho do diretrio) em Restore Source. - Quando Restabelecer um banco de dados para mltiplos arquivos clique no boto Multi-file.... - Restabelea um banco de dados para um servidor remoto (um servidor diferente do servidor atual), clique no boto Remote.... - Entre com tamanho de pgina de banco de dados, em bytes (1024 atravs default). Outros valores legais para bancos de dados so: 2048, 4096, e 8192. Na rea Restore Options, estabelea as opes para iniciar o Restore. Nota: Restaurao de Multi-volume no aceito. Quando o banco de dados reside em mais de uma fita, execute gbak no console do servidor para executar a restaurao.

Pg.: 9

Restore options Replace Existing Database No ser escrito um arquivo de banco de dados existente e sim haver substituio de um banco de dados existente. Se voc tentar restaurar um banco de dados existente, e esta opo no estiver selecionada, o processo restore falhar. Commit After Each Table Normalmente, o Gerenciador do Servidor restaura todo o metadata antes de restaurar qualquer dado. Selecionando Commit After Each Table, o Gerenciador restabelece o metadata e os dados junto a cada tabela, e procede o comit em uma tabela de cada vez. Esta opo til quando voc est com dificuldade em restaurar um arquivo posterior; como por exemplo, se o dados esto corrompidos ou invlidos, de acordo com restries de integridade. Restore Without Shadow Restabelece um banco de dados sem restaurar sua sombra (Shadow), se: Est restabelecendo um servidor que suporta Shadow para um tipo de servidor que no suporta Shadow. O banco de dados que voc est restabelecendo uma cpia de um banco de dados existente que tem uma Shadow. Voc est migrando de um banco de dados Interbase para uma verso de servidor que no suporta Shadow. A Shadow terminaria em uma mquina que indisponvel ao banco de dados (devido a uma falha na rede, por exemplo). Deactivate Indexes Normalmente, reconstri ndices quando um banco de dados restabelecido. Se o banco de dados conter valores duplicados em um ndice sem igual quando foi copiado, a restaurao falhar. Podem ser introduzidos valores duplicados em um banco de dados, se foram feitos ndices temporariamente inativo (por exemplo, permitir insero de muitos registros ou para restabelecer um ndice). Um ndice nico deve ser excludo e ento deve ser criado novamente. Para mais informao sobre ativar ndices, veja Referncia de SQL online. Nota: Desativar a opo de ndices tambm til para tornar as operaes online de banco de dados mais rpidas. O acesso de dados estar mais lento at que os ndices sejam reconstrudos, mas pelo menos o banco de dados estar disponvel. Depois que o banco de dados for restabelecido, os usurios podem ter acesso ao banco de dados enquanto voc reativa os ndices.

Pg.: 10

Do Not Restore Validity Conditions Habilitando esta opo, caso j exista dados consolidados, estes dados no estaro sujeitos as restries do conjunto de restries que esto sendo restaurados. Mantendo esta opo desabilitada, tentando restabelecer o banco de dados, uma mensagem de erro ocorrer quando um certo dado no cumprir uma certa restrio.. Precauo: Sempre faa uma cpia de metadata antes.

Restabelecer um banco de dados que contm dados nulos, Do Not Restore Validity Conditions. Esta opo apaga a constraint de validao do metadata. Depois que o banco de dados seja restabelecido, mude os dados para tornar isto vlido de acordo com as constraints de integridade. Ento adicione as constraints que foram excludas antes. Verbose Output Ativa o editor que servir para acompanhar as mensagens de retorno das operaes que acusarem erro. Changing the Database Page Size Servidor de Workgroup copia pgina de banco de dados com tamanhos de 1024, 2048, 4096, e 8192 bytes. O default 1024 bytes. Mudar o tamanho da pgina pode melhorar desempenho porque: Armazenar e acessar dados Blob muito eficiente quando o Blob inteiro resida em uma nica pgina de banco de dados. Se uma aplicao armazena muitos Blobs que excedem 1K e usar um tamanho de pgina maior, reduz o tempo para ter acesso aos dados Blob. O tem melhor performance ao acessar strings quando acomodadas em uma nica pgina. Considere aumentar o tamanho de pgina, quando usar campos Blob que armazenam grande massa de texto. Se um banco de dados tem um ndice grande e aumenta o tamanho de pgina de banco de dados reduz o nmero de nveis na hierarquia de ndice. ndices trabalham mais rapidamente se a profundidade deles/delas mantida a um mnimo. Escolha estatsticas de Banco de dados para exibir estatsticas de ndice, e considere aumentar o tamanho de pgina se profundidade de ndice maior que dois em qualquer ndice freqentemente usado. Se a maioria das transaes envolvem s algumas linhas de dados, um tamanho de pgina menor pode ser apropriado, desde que menos necessidades de dados sejam passadas de um lado para outro e menos memria usada pelo esconderijo de disco. Restoring a database to multiple files Voc poderia querer restabelecer um banco de dados para mltiplos arquivos distribudos entre discos diferentes que provem mais flexibilidade alocando recursos de sistemas. Restabelecer um banco de dados para banco de dados de arquivo mltiplo clique no boto multiple files. Especifique nomes de arquivos para restabelecer, digitando o nome de cada arquivo para restore, digite tambm o nmero de pginas para estes arquivos campo de texto abaixo. O nmero mnimo de pginas em um arquivo 200. Escolha salvar, e o nome de arquivo aparecer direita na Lista de Arquivo do lado da caixa de dilogo.

Pg.: 11

Tasks | Database Statistics


Para obter estatsticas de banco de dados, selecione o banco de dados desejado na rvore de server/database e ento escolha Tasks | Database no menu. Isto abre a janela de Estatsticas de Banco de dados. Database Statistics window A janela de Estatsticas de Banco de dados automaticamente exibe vrias estatsticas para o banco de dados atualmente selecionado. Voc pode localizar informao especfica entre as estatsticas, copiar e imprimir.

Database Statistics menus File Menu Save As Print To Print Setup Close Edit Menu Copy Search Menu Find Next Window Menu Main Window Procurar um texto especfico. Procurar a prxima ocorrncia do ltimo texto pesquisado. Altera entre esta janela e a do servidor. Pg.: 12 Copia o texto na janela para um arquivo. Imprimir o texto da janela. Configurar sua impressora. Fechar a janela. Copiar o texto atualmente selecionado para o clipboard.

View Menu Exibe estatsticas do header de banco de dados, a mais velha transao e nmero de pginas alocadas. Tambm podem ser analisadas pginas de banco de dados para determinar o nmero de pginas e a distribuio de abastecimento de pginas dentro de cada tabela. Opes de viso so: Database Summary Database Analysis WAL Statistic(Somente Servidores NetWare) View | Database Summary Exibir estatsticas sumrias sobre o banco de dados atual. A informao seguinte exibida: Database name information As primeiras exibies de linha no nome e localizao do arquivo de banco de dados primrio. Database header page information Checksum: O header chamam checksum. Este um valor nico computado de todos os dados na pgina de header. Quando a pgina de header armazenada a disco e depois recobrada, o checksum da pgina recobrada recomputado e comparado ao valor armazenado para assegurar que a informao est correta. Generation: Page size: ODS version: Contador incrementou cada pgina de header de tempo escrita. O tamanho de pgina de banco de dados atual em bytes. .A verso da estrutura do banco de dados.

Oldest transaction: A transao ID numeram da mais velha transao no marcada cometido (ativo, em limbo, ou retrocedida). Oldest active: A transao que ID numeram da mais velha transao ativa.

Next transaction: A transao nmero de ID que ser nomeado prxima transao. A diferena entre a mais velha transao e a prxima transao determina quando banco de dados varrendo acontecero. Por exemplo, se a diferena maior que 20.000, ento atravs de falta o banco de dados ser varrido. Sequence number: O nmero de sucesso da pgina de header (zero usado para a primeira pgina, um para segunda pgina, e assim por diante). Next attachment ID: Shadow count: Numero do prximo anexo de banco de dados. O nmero de arquivos de sombra definido para o banco de dados.

Number of cache buffers: O nmero de pra-choques de pgina no esconderijo de banco de dados. Next header: Creation date: O ID da prxima pgina de header. A data quando o banco de dados foi criado. Pg.: 13

Variable header data Shared Cache file: No usado. Sweep Interval: Nmero de transaes entre varreduras de banco de dados. Database file sequence Esta seo lista todos os arquivos associados com o banco de dados e inclui qualquer arquivo secundrio. Database log page information Esta seo contm informao sobre a pgina de tronco de banco de dados. Isto s aplica a bancos de dados com o escrever frente que o tronco habilitou (s em servidores NetWare). Next log page: Prxima pgina de tronco: Para uso futuro.

Para cada ponto de controle (posto de fiscalizao), a informao seguinte listada: Controle ponto 1 o posto de fiscalizao encontrado. Controle ponto 2 o posto de fiscalizao antes do ltimo. Arquivo atual o arquivo para o qual WAL est escrevendo atualmente. Partition offset: Seqno: Offset:: Reservado para uso futuro. Nmero de sucesso do arquivo de tronco atual na sucesso WAL. O byte compensou no arquivo de tronco atual.

View | Database Analysis Escolha Viso | Anlise de Banco de dados na janela de Estatsticas de Banco de dados para exibir uma anlise cheia do banco de dados atual na rea de exibio de texto. Primeiro, o header de banco de dados chamam informao exibida. Esta a mesma informao gerada por Viso | Resumo de Banco de dados. Ento informao sobre todas as mesas e ndices no banco de dados exibida. Table and index information Ento informao sobre cada mesa e indexa no banco de dados exibido. Primary pointer page A pgina que a primeira pgina de ponteiro para a mesa. Index root page O nmero de pgina que a primeira pgina de ponteiro para ndices. Data pages O nmero total de pginas de dados. Average fill: A porcentagem comum para a qual as pginas de dados esto cheias. Fill distribution Um histograma que mostra o nmero de pginas de dados que so enchidas s porcentagens. Pg.: 14

Para cada ndice no banco de dados: Index O nome do ndice. Depth O nmero de nveis na rvore de pgina de ndice. Leaf buckets O nmero de folha (nvel de fundo) pginas na rvore de pgina de ndice. Nodos O nmero total de pginas de ndice na rvore Average data length A durao comum de cada chave em bytes. Total dup O nmero total de filas que tm ndices duplicados. Max dup O nmero de duplicatas no ndice com as demais duplicatas. Fill distribution Um histograma que mostra o nmero de pginas de ndice encheu s porcentagens especificadas. Se a profundidade da rvore de pgina de ndice maior que trs, ordenar ento podem no ser to eficientes. Reduza a profundidade da rvore na pgina de ndice, aumente o tamanho da pgina. Se aumentando o tamanho de pgina no reduz a profundidade, ento devolva ao seu tamanho prvio. View | WAL Statistics WAL s apoiado em servidores de NetWare distantes. Para servidores de NetWare, escolha Viso | Estatsticas de WAL. Para exibir estatsticas, estatsticas de WAL consistem em vrias sees separadas por linhas horizontais: a primeira seo lista o WAL segmentam bandeiras. Estas podem ser teis a apoio tcnico diagnosticando problemas. Logo o tamanho de pgina de banco de dados atual, em bytes, e o dono e grupo IDs. As listas de linhas finais: nmero de conexes e desconexes do banco de dados. A diferena entre as conexes e desconexes menos dois o nmero de usurios conectados ao banco de dados, desde que l seja uma conexo para a linha de esconderijo e para a linha de WAL. A prxima seo lista o tamanho configurado (em bytes) e nmero de pra-choques de WAL. Em lanamentos futuros em plataformas que apoiam arquivos, os "pra-choques totais" podem aumentar automaticamente se necessrio. A informao restante conta o que o sistema est fazendo com os pra-choques, e pode ser til ao apoio tcnico diagnosticando problemas. A prxima seo d o nome do arquivo de tronco atual, no arquivo ao que os registros de tronco esto sendo escritos, e o tamanho do arquivo (rollover).

Pg.: 15

A prxima seo lista o intervalo de posto de fiscalizao mximo em bytes, o intervalo de posto de fiscalizao atual em bytes. Para cada arquivo de tronco: nmero de sucesso de posto de fiscalizao atual, nome do arquivo de tronco, que partio de tronco compensou, e posto de fiscalizao que compensou. As prximas duas sees listam o WAL escritor processo ID, o processo ID do ltimo processo em adquirindo o protocolo de WAL, o nmero total de WAL I/Os, o tamanho comum de cada I/O (em bytes), e o prximo nmero de sucesso de bloco. A prxima seo lista grupo de informao. Use o grupo comum de tamanho para determinar o grupo efetivo de valor por seu banco de dados. Se o valor listasse depois de "grpc espera micro-segundos" zero, ento nenhum grupo est acontecendo. O final duas sees provem informao que pode ser til a Borland diagnosticando problemas. apoio tcnico

Pg.: 16

Tasks | Interative SQL


Permite estabelecer comunicao e interao com o banco de dados. utilizado para executar script de um modo geral. Uma alternativa, utilizar o SQL Explore que acompanha o Delphi.

Maintenance | Database Conection


Exibe todos os bancos de dados ativos.

Pg.: 17

Maintenance | Database Sweep


Exibe a caixa de dialogo abaixo.

Maintenance | Transaction Recovery


Retrocede transao pendentes.

Maintenance | Database Shutdown


Providencia condies para baixar o banco de dados.

Time-out period in minutes. O servidor tentar fechar o banco de dados durante este perodo. Os parmetros abaixo, definem de que forma ocorrer.

Pg.: 18

Deny new connections while waiting Conexes de banco de dados existentes podem completar as operaes. O banco de dados est disponvel para novas conexes. Ao trmino do perodo de Time-out, se ainda houver conexes ativas, ento o banco de dados no ser fechado. Deny new transactions while waiting Permite que transaes existentes sejam concludas normalmente. Uma vez processadas as transaes, o banco de dados ser fechado. Impedir transaes novas e tambm conexes novas, desde que uma conexo de banco de dados venha requerer uma transao. Ao trmino do perodo de Time-out, se ainda h transaes ativas, ento o banco de dados no ser fechado. Force shutdown after the time-out period Durante o perodo de Time-out, no h nenhuma restrio em transaes ou conexes. Ao trmino do perodo de Time-out, ou assim que no haja nenhuma transao ativa, o banco de dados ser baixado, qualquer transao de uncommitted retrocedida (Rollback), e os usurios sero desconectados. Precauo: Forar paralisao de um banco de dados interferir em operaes de banco de dados normais, e s deveria ser usado depois que todos os usurios forem notificados.

Maintenance | Database Restart


Providencia reativao do banco de dados selecionado na estrutura de rvore.

Maintenance | Database Validation


Gerencia validao verificando a integridade da estruturas de dados. Especificamente:

Validate record fragments Por default, o banco de dados s valida estruturas de pgina. Quando assinalado o checkbox Validate record fragments, a validao tambm ocorre para as estruturas de registros. Read -only validation Por default, a execuo de validao de um banco de dados afetar os dados em curso por outros usurios. Para prevenir estas validaes, assinale o checkbox Read-only validation. Pg.: 19

Ignore Checksum erros Um checksum uma anlise pgina-por-pgina de dados para verificar sua integridade. Um modo possvel de ocorrncia por exemplo, seria uma quebra do sistema. Erros de Checksum indicam corrupo de dados. Para consertar um banco de dados que apresente erros de checksum, selecione o checkbox Ignore checksum erros. Nota Quando for validar um banco de dados, por questes de segurana, promova antes uma cpia do mesmo utilizando o sistema operacional e no o Interbase.

Maintenance | Database Properties


Esta caixa de dilogo contm uma rea de Informao sumria que no permite modificao de parmetros e uma rea de configurao que permite modificao.

Varrer (sweep) um banco de dados um modo sistemtico de remover registros antigos (excludos e alterados) do mesmo. Este processo peridico impede que um banco de dados venha crescer desnecessariamente. Porm, este recurso tambm pode reduzir o desempenho do sistema no momento da execuo desta tarefa. O Interbase usa uma arquitetura mult-generational. Isto significa que so armazenadas verses de mltiplos registros de dados diretamente nas pginas de dados. Quando um registro atualizado ou apagado, mantm uma cpia do estado antigo do registro e cria uma verso nova. Isto pode aumentar o tamanho de um banco de dados. O Interbase varre um banco de dados automaticamente a um intervalo fixo: por default, a cada 20.000 transaes. Em plataformas multi-camadas, a varredura ocorre em um processo parte, de forma que isto no ir bloquear outros processos. Aplicar Sweep no o nico modo de se promover uma limpeza e reorganizao dos dados. Copiar um banco de dados alcana o mesmo resultado, forando-o extrair somente os registros vlidos. Assim sendo, estabelecer backup e restore periodicamente reduz a necessidade de se aplicar sweep. Pg.: 20

Captulo 2
Interactive SQL
Interface para manipulao da estrutura de um banco de dados. Em suas opes de menu, encontraremos utilidades s encontrada nesta interface. Porm muitas tarefas, principalmente as que dizem respeito a criao dos objetos de um banco de dados, excluindo-se o prprio Interbase, aconselhvel o uso de outras ferramentas, que apresentem melhor interao visual com as partes (coleo de objetos) do banco de dados. A melhor alternativa para os que usam Delphi, seria a adoo do SQL Explorer.

(Interface do Interactive SQL)

(SQL Explore)

Pg.: 21

File | Database Connect


Este dilogo permite conectar um servidor de banco de dados local ou remoto. No campo de texto Banco de dados, entre com o nome do banco de dados para o qual queira conectar-se (incluindo caminho completo), ou escolha na lista e selecione um banco de dados previamente acessado. So requeridas um nome de usurio e senha. Esta dilogo informa, extraindo do arquivo INTERBAS os 10 ltimos arquivo de bancos de dados para os quais houve conexo, como tambm o nome do usurio e protocolo de rede utilizado para cada servidor.

File | Create Database


Esta caixa de dilogo permite criar um banco de dados novo em um servidor de banco de dados local ou distante. So exigidos um nome de usurio e senha para criar um banco de dados. Naturalmente, este usurio tem que ter permisso para tanto. No campo de Banco de dados, entre com o nome do banco de dados a ser criado, inclusive o nome de arquivo, com patch , incluindo tambm uma extenso (opcional).

Pg.: 22

File | Drop Database


Exibe a caixa de dialogo abaixo, onde o usurio poder confirmar ou no a excluso de um banco de dados.

File | Disconnect Database


Exibe a caixa de dialogo abaixo, possibilitando desconectar um banco previamente conectado.

Pg.: 23

File | Run an Script


Exibe a caixa de dialogo do Windows "Open File", para escolha de um arquivo padro texto, contendo qualquer cdigo SQL ou para execuo.

File | Save Result to a File


Abre a caixa de dialogo do Windows "Save to File", possibilitando salvar todos os comandos (script) contido na rea de trabalho do Interative SQL.

File | Save Session to a File


Abre a caixa de dialogo do Windows "Save to File", possibilitando salvar todos os comandos (script) aplicados na sesso.

File | Commit Work


Finaliza todas as operaes j realizadas com sucesso, mas pendentes na memria.

File | Rollback Work


Cancela todas as operaes j realizadas com sucesso, mas pendentes na memria.

Edit | Undo - Copy - Past - Select All - Clear Output


Operaes bsicas a serem utilizadas entre o clipboard e a rea de texto do Interactive SQL.

Session | Basic Settings


Esta caixa de dilogo o permite a modificar todas as configuraes bsicas do Windows . Display Query Plan: Se assinalado, exibe o plano de execuo escolhido pelo optimizer. Para modificar o optimizer use a opo de PLANO do SQL declarao SELETA. Auto Commit DDL: Seu default True, promovendo execuo de commit automaticamente sobre a rea do W. Pg.: 24

Display Statistics: As estatsticas de desempenho aparecem depois do resultado de cada execuo: Display in List Format: Exibe os dados em formato de coluna vertical, uma linha de cada vez, com ttulos a esquerda e coluna a direita, quando habilitado. Se desabilitado, W exibe dados em formato tabular, que permite apresentar linhas mais longas.

Session | Advanced Settings


Esta caixa de dilogo permite modificar as configuraes avanadas do W que tenham parmetros. BLOB display Determina o modo de exibio de um subtipo BLOB. SELECT sempre exibe um ID BLOB (um identificador para o campo Blob). O default de um SELECT exibir dados BLOB em baixo da linha associada. Disable BLOB Display: No exibe contedos de colunas BLOB. Display ALL BLOBs: Exiba dados BLOB de todos os subtipos. Restrict BLOB Display: S exibe contedos de colunas BLOB para o subtipo especificado. Use 0 para subtipo desconhecido; 1 para subtipo texto Character set Determina o tipo de caracter ativo fixado para o Interbase, afetando as conexes que ocorram a partir de sua manipulao.

Pg.: 25

Session | Display Settings


Exibe como resultado as configuraes atuais, como exemplo: SET Print statistics: List format: Row Count: Autocommit DDL: Access Plan: Display BLOB type: Terminator: Time: OFF OFF OFF ON OFF 1 ; OFF

Session | Conect Version


Exibe como resultado dados sobre verso do servidor, como exemplo: SHOW VERSION Version: WI-V5.1.1.680 /x86/Windows NT (access method), version "WI-V5.1.1.680" on disk structure version 9.0

Query | Execute - Previous - Next


Opes que se referem a execuo do cdigo (instruo SQL /) contido na rea de texto do Interactive SQL, possibilitando retroceder a instrues anteriores e avanar a prxima.

Metadata | Show
Permite visualizar informaes de Metadata exibindo nome, informaes sobre todos os objetos do banco de dados, como tabelas, domain, constraints, tabelas de sistema, triggers, e stored procedures

Pg.: 26

Metadata | Extract Database


Permite conforme caixa de dialogo abaixo, salvar em arquivo script do banco de dados. Excelente para recriar todo um banco de dados, como tambm documentar sua estrutura.

Metadata | Extract Table


O mesmo que o anterior, mas somente a tabela escolhida.

Metadata | Extract View


Idem, mas somente a view escolhida.

Pg.: 27

Captulo 3
Linguagem Procedural
Tipos de Dados Nome BLOB Size Varivel Faixa Descrio Redimensionvel dinamicamente, aplicado em armazenamento de tipos texto longo, imagens e arquivos de som. Tipo caracter de tamanho fixo

CHAR(n)

n Caract.

1 a 32.767 bytes, ou 32 K 01/01/1000 at 11/01/5941 preciso de1 a 15 Scale de 1 a 15 1.7 X 10 308 at 1.7 X 10 308

DATE

64 bits

Inclui tambm a hora.

DECIMAL

Varivel

Nmero de ponto flutuante, exemplo: Decima(8,2) - Resultado PPPP.SSS Somente para plataformas de 64 bit Tipo cientfico de 15 dgitos de preciso

DOUBLE 64 bits PRECISION

Funes Especiais Funco AVG() CAST() COUNT() GEN_ID() MAX() MIN() SUM() UPPER() Tipo Agregao Converso Agregao Numrica Agregao Agregao Agregao Converso Descrio Calcula a mdia dos valores de uma coluna Converte uma coluna de um tipo para um outro tipo Retorna o nmero de linhas resultante de uma Query Retorna um nmero extrado do Interbase Retorna o maior valor de uma coluna Retorna o menor valor de uma coluna Totaliza os valores de uma coluna numrica Converte uma string para maisculo

Criando o Banco de Dados


1) CREATE DATABASE "C:\CursoDelphiGold\Banco\BANCO" PAGE_SIZE 1024;

Pg.: 28

Construo de Tabelas
Construir tabelas no InterBase significa mais do que criar estruturas que acomodaro dados na forma bsica de intercesso de linhas por colunas. O InterBase antes de tudo, um Sistema Gerenciador de Banco de Dados Relacional, que conjuga as tarefas de armazenamento de forma a possibilitar o relacionamento dos dados destas estruturas tabular. Desta forma, alm dos aspectos bsicos como definir quais colunas sero definidas para quais tipos, deve-se observar a anlise necessria para modelar o relacionamento entre as tabelas existente. J na etapa de definio da estrutura, possvel agregar restries que garantam a total integridade dos dados, definir valores padro e status que obrigam ao preenchimento de certas colunas. 2) CREATE TABLE CLIENTES (ID_CLIENTE INTEGER NOT NULL, NOME VARCHAR(50) NOT NULL, CREDITO NUMERIC(15, 2) NOT NULL, STATUS SMALLINT NOT NULL, TIPO VARCHAR(1) NOT NULL, SNPJ VARCHAR(14) NOT NULL, HISTORICO BLOB SUB_TYPE TEXT SEGMENT SIZE 80, FOTO BLOB SUB_TYPE 0 SEGMENT SIZE 80, DATA DATE NOT NULL, CONSTRAINT PK_CLIENTES PRIMARY KEY (ID_CLIENTE), CONSTRAINT UK_SNPJ UNIQUE (SNPJ)); 3) CREATE TABLE ITENS (ID_PEDIDO INTEGER NOT NULL, ID_PRODUTO INTEGER NOT NULL, QUANTIDADE INTEGER NOT NULL, PRECO NUMERIC(15, 2) NOT NULL, CONSTRAINT PK_ITENS PRIMARY KEY (ID_PEDIDO, ID_PRODUTO)); 4) CREATE TABLE PEDIDOS (ID_PEDIDO INTEGER NOT NULL, DATA DATE NOT NULL, ID_CLIENTE INTEGER NOT NULL, CONSTRAINT PK_PEDIDOS PRIMARY KEY (ID_PEDIDO)); 5) CREATE TABLE PRODUTOS (ID_PRODUTO INTEGER NOT NULL, DESCRICAO VARCHAR(25) NOT NULL, PRECO NUMERIC(15, 2) NOT NULL, SALDO INTEGER NOT NULL, CONSTRAINT PK_PRODUTOS PRIMARY KEY (ID_PRODUTO));

Pg.: 29

ndices
ndice no InterBase corresponde a um mecanismo de simples definio, porm, de extrema eficincia no tocante performance no acesso a dados. Numa anlise preliminar, podemos estabelecer que baseado nas possibilidades variadas pelo qual uma aplicao pode solicitar informaes contidas em uma tabela, conjunto de tabelas e mesmo pela combinao de vrias tabelas, a implementao de estruturas de ndices determinara o diferencial destas operaes no tocante ao tempo de retorno. Os ndices ficam armazenados em estruturas particulares a do bloco de dados, sendo composto por seu prprio bloco. A rapidez no acesso a dados baseado em critrio imposto pelas restries na clusula Where ou combinao de colunas na mesma clusula, bem como, pela referncia explicita na clusula Order By alcanada em funo do mapeamento pela leitura no bloco de dados referente a estrutura de ndice, pela imediata localizao na pgina de dados. O mecanismo InterBase para recuperao de dados ordenado ou por critrios, no obriga a existncia de ndices para as colunas envolvidas. Porm sua performance e at mesmo a possibilidade do InterBase atingir o objetivo, estar intimamente ligado aos recursos disponveis para o Servidor InterBase ativo. Vale ressaltar, que a demanda de dados no servidor InterBase pode atingir a magnitude dos terabytes, inviabilizando algumas operaes em detrimento da capacidade ou no do mecanismo ter ou no esta caracterstica. Alguns exemplos ainda neste captulo, exemplificam, com base no script apresentado, como criar tais estruturas de dados. Um ndice pode ser criado para atender a demanda de dados com base na identificao do seu contedo da coluna para qual foi definido, ou pela combinao de colunas. Nisto, caracteriza-se pela conseqncia do aspecto performance. Mas um ndice tambm pode ser criado com o objetivo de definir uma condio (Constraint) de unicidade (Unique) para uma coluna ou combinao de colunas, sem deixar agregar os conceitos associados a performance. H alguns critrios que devem ser observados, quando da criao de um ndice. Algumas colunas so boas candidatas a comporem ndices, ficando a definio para os aspectos relacionados a seguir: - Colunas utilizadas com freqncia em clusulas Where e Order By. - Colunas utilizadas na operaes que envolvam Group By - Colunas referenciadas nas funes de agregao Min e Max - Colunas definidas com Chave Estrangeira e Chave Primria Alguns critrios determinam o sentido contrrio, ou seja, as colunas no candidatas a ndice: - Colunas em que a ocorrncia de valores nulos constante - Colunas de tipos Booleano, Blob - Colunas com muita ocorrncia de linhas idnticas - Colunas de tabelas com poucos registros De forma conclusiva, ressalta-se o fato de no nos perdermos em adoo de um nmero excepcionalmente exagerado na criao de ndices, j que isto acarretaria uma sobre carga no processo de manuteno (Update, Insert e Delete), devido ao fato das diversas estruturas de ndices terem que ser atualizadas. Na estrutura de dados InterBase, no h a indexao lgica dos dados, assim sendo, para visualizar os dados numa certa ordem, necessrio fazer uso da clusula Order By em um comando Select. Pg.: 30

Sintaxe: 6) CREATE DESCENDING INDEX IDX_CREDITOCLIENTES ON CLIENTES(CREDITO); 7) CREATE INDEX IDX_NOMECLIENTES ON CLIENTES(NOME); 8) CREATE INDEX IDX_NOME ON TESTE(NOME); 9) ALTER TABLE ITENS ADD CONSTRAINT FK_ID_PEDIDO FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS(ID_PEDIDO); 10) ALTER TABLE ITENS ADD CONSTRAINT FK_ID_PRODUTO FOREIGN KEY (ID_PRODUTO) REFERENCES PRODUTOS(ID_PRODUTO); 11) ALTER TABLE CLIENTES ADD CONSTRAINT CC_STATUS CHECK (STATUS IN (0, 1)); 12) ALTER TABLE CLIENTES ADD CONSTRAINT CC_TIPO CHECK ((Tipo = 'J' ) or (Tipo = 'F')); 13) ALTER TABLE PRODUTOS ADD CONSTRAINT CC_SALDO CHECK (Saldo >= 0);

Pg.: 31

Generator
Objeto que funciona como um contador, fornecendo um nmero seqencial. amplamente utilizado em triggers, que visam atribuir um valor para campos chave. 14) CREATE GENERATOR GEN_CLIENTES; 15) CREATE GENERATOR GEN_PEDIDOS; 16) CREATE GENERATOR GEN_PRODUTOS;

Exception
A linguagem procedural ISQL, contm um mecanismo prprio para lidar com as ocorrncias de erros (Exceptions). Um erro caracterizado como sendo a ocorrncia de uma exception, que dentro do contexto da ISQL pode ser identificado e tratada. Quando ocorre um erro, o InterBase levanta uma exceo, que informa a conexo responsvel em trs parmetros: SQLCODE <0 0 +1 at 99 +100 Mensagem. SQLERROR SUCCESS SQLWARNING NOT FOUND Descrio Ocorreu erro, no sendo executado a instruo ISQL. Sucesso na execuo dos comandos ISQL. System warning or informational message Registros no encontrados, ou atingido o ltimo registro.

Nota: Consultar referncias para ver tabela de erros possveis. Baseado nestes parmetros pode-se agregar a lgica de um bloco ISQL, procedimentos especficos para detectar a ocorrncia da exception, bem como, um tratamento especfico, inclusive com tomada da deciso. O conceito de exception no InterBase, no significa necessariamente que um erro tenha realmente ocorrido. Uma simples declarao do comando Exception indicando uma exceo previamente criada, levanta uma exceo que caracteriza de forma forosa uma situao de erro. Criando Exceptions: 20) CREATE EXCEPTION EXC_REGEXISTENTE "INI Este registro j existe. FIM"; 21) CREATE EXCEPTION EXC_USUARIOSEMPERMISS "INI Esta conta de usurio no tem permisso para esta operao. FIM"; 22) CREATE EXCEPTION EXC_SALDO "No h saldo para este produto"; Utilizando Exceptions: IF (SaldoProduto < New.Quantidade) THEN EXCEPTION EXC_SALDO; Pg.: 32

O Comando Select
O comando Select, como sugere o nome, aplicado nas operaes que objetivam acessar dados nas estruturas de esquema, para interao e visualizao. Agregado s clusulas From (de uso obrigatrio), Where, Order By, Group By e Having (uso opcional), compe um mecanismo eficiente e flexvel para conjugar uma necessidade de viso de dados. Comparado com qualquer dialeto das diversas ferramentas existentes, apresenta uma facilidade com reduo substancial da escrita do cdigo. Na seqncia, de forma gradativa, apresentaremos o comando Select com seus agregados, direcionados para as tabelas de exemplo do tpico Tables. Comando Select SELECT INTO FROM WHERE GROUP BY Lista de colunas requeridas Lista de variveis que recebero os valores (colunas) retornadas de SELECT Lista de tabelas dos campos referidos em SELECT e considerados em WHERE Especifica as restries que afetam as linhas a serem selecionadas, bem como, define a condio de juno entre as tabelas envolvidas. Define as colunas que fazem parte da condio de agrupamento. Todas as colunas requeridas em SELECT, exceto as que representam funes, devem ser indicadas. Restringe linhas alcanadas pela condio de agrupamento. Combina o resultado de dois ou mais SELECT produzindo uma nica tabela. Define quais colunas faro parte da condio de ordenao. A nomenclatura ASC (default) define ordenao ascendente ou DESC para descendente. Specifiesthequery planthatshould beusedbythe query optimizer instead of one it would normally choose Specifies columns listed after the SELECT clause of a DECLARE CURSOR statement that can be updated using a WHERE CURRENT OF clause

HAVING UNION ORDER BY PLAN FOR UPDATE

Select simples Select * From Produtos

Pg.: 33

Retorna: ID_PRODUTO 1 2 3 4 5 5 rows selected. Onde: Select From Clientes Comando * Indica todas as colunas Clusula que define quais as tabelas envolvidas Nome da Tabela DESCRICAO Teclado Drive 1.44 Mouse Monitor Gabinete SALDO 1000 1000 1000 1000 1000 PRECO 12 25 5 280 40

Select Clientes.Nome, Clientes.CNPJ From Clientes Retorna: NOME Lydia Guero Rodrigues Etienne Malman Cristine M L Branco G. Rodrigues Evelyn Branco Malman Raphael Malman Costa Laercio Guero Rodrigues Horacio Rodrigues Dinorah Lima Branco Renata Rozendo Rodrigues Pedro Henrique Rozendo Rodrigues 11 rows selected. Neste exemplo, de forma explcita, feito referncia s colunas que se deseja como retorno. Este critrio resulta numa carga menor no tocante ao processamento e trfego de dados, devido a diminuio horizontal da estrutura. Select Clientes.Nome, Clientes.CNPJ From Clientes Where Clientes.Datacad >= 01/OCT/99 A clusula Where acrescentada ao procedimento determina uma diminuio no sentido vertical, pela restrio aplicada s linhas (registros) que no atendam ao critrio. Select Clientes.Nome, Clientes.CNPJ From Clientes Where Clientes.Datacad >= 01/01/1999 Order By Clientes.Nome Pg.: 34 CNPJ 4235445324534534 5353325364569000 3543545544554888 5242455254545480 5454544545457877 3543535534535454 7557765765776766 6677777777675678 5675675666565656 5454673214324233

Retorna: NOME Cristine M L Branco G. Rodrigues Dinorah Lima Branco Pedro Henrique Rozendo Rodrigues Raphael Malman Costa Victoria Emanuelle Alves DATACAD 09-DEC-99 08-DEC-99 08-DEC-99 08-DEC-99 08-DEC-99

Com este ltimo adendo (Order By), vemos o retorno de dados apresentado em uma ordem que no a natural. Vale ressaltar, que no necessrio a existncia de ndices para que haja sucesso nesta operao. Porm, conforme j abordado no tpico ndice, todo o benefcio inerente a existncia de tais ndices, se aplica aqui.

Select com Join Select Clientes.Nome, Pedidos.DataPed, Pedidos.ID_Cliente From Clientes, Pedidos Where Clientes.ID_Cliente = Pedidos.ID_Cliente Order By Pedidos.DataPed Aqui apresentado uma instruo que promove um Join (Juno) entre duas tabelas. Na clausula Select pode ser observado a referncia a campos de duas tabelas, que obriga referencia-las na clausula From. Na prtica, o que temos aqui, uma representao de uma teoria de conjuntos no tocante a comparao das ocorrncias pela igualdade. Isto fica explcito pela seqncia da clausula Where (Clientes =Pedidos.ID_Cliente), onde haver a seleo de dados baseado nas mltiplas ocorrncias em Pedido.ID_Cliente para cada ocorrncia Clientes.ID_Cliente. Normalmente estas referncias s colunas de mltiplas tabelas (o Intercepta at 255 para comprar um Join) se do entre as chaves primrias e chaves secundarias, sem que isto seja uma regra. Usasndo Group By e Having Select Clientes.Nmoe,Sun(Itens.Quantidade*Itens.PrecoVenda).o total From Clientes, Pedidos, Itens Where Clientes.ID_Cliente= Pedidos.ID_Cliente AND Pedidos.ID_Pedido =Iten.ID_Pedido Grop By Clientes.Nome Having Sum(Itens Quantidade*Itens.Precovenda) >=1 000,00 Order By Clientes.Nome DESC A clausula Gruop By promove a agregao dos elementos baseado na lista de colunas Indicada. Todas as colunas relacionadas na clausula Select devem ser referenciados em Select, as colunas retornadas pelas funes SUM, MIN, MAX e AU5. Na prtica, a execuo de uma instruo que contenha em Group By necessita de pelo menos uma funo na clausula Select. A clausula Having, que opcional, funciona como restrio para o resultado alcanado pelo agrupamento de Group By.

Pg.: 35

Select Into Select Into uma variao do comando Select dentro do PL/SQL, que objetiva a atribuio de valores retornados pela instruo para as variveis rejeitadas na clusula Select. importante ressaltar, que o uso exclusivo de bloco PL/SQL. Declare Variable Var_Navre Char(50); Declare Variable Var_Data Date; Begin Select Clienetes.Nome, Clientes.Data Into Var_Nome, Var_Data Where Clientes.ID_Clientes = 10 End

Pg.: 36

View
O objeto View criado com o objetivo de se dimensionar o acesso a uma tabela ou combinao de tabelas, de forma a definir a estrutura no sentido horizontal (pela referncia criteriosa na clusula Select de algumas colunas) e no sentido vertical (pela aplicao de restries na clusula Where) Uma View um objeto composto por uma instruo Select, podendo ser aplicado todo o seu composto (conforme abordado no tpico referente ao comando Select), ou seja Select, From, Where, Group By, Having e Order By. Sua aplicao prtica, se estende desde aspectos administrativos, como por exemplo, o fornecer acesso limitado a uma tabela para usurios, como tambm, elaborar instrues que combinem tabelas (Join), para atender demanda de solicitao de dados numa dimenso no encontrada pelas estruturas lgicas definidas. Como exemplo para esta segunda hiptese, citamos a necessidade de um acesso a dados que tivesse como retorno, uma lista de clientes com compras num certo perodo e que apresentasse a descrio dos produtos envolvidos. Todas estas possibilidades se aplicam a criao de View que faam referncia a outras View combinadas com Tabelas. 17) CREATE VIEW VIEW_CLIENTES (ID_CLIENTE, NOME, CREDITO, STATUS) AS SELECT CLIENTES.ID_CLIENTE, CLIENTES.NOME, CLIENTES.CREDITO, CLIENTES.STATUS FROM CLIENTES; 18) CREATE VIEW VIEW_FULLSELECT (DESCRICAO, TOTAL) AS SELECT PRODUTOS.DESCRICAO, SUM(ITENS.QUANTIDADE * ITENS.PRECO) AS TOTAL FROM PRODUTOS, ITENS, PEDIDOS WHERE ITENS.ID_PRODUTO = PRODUTOS.ID_PRODUTO AND ITENS.ID_PEDIDO = PEDIDOS.ID_PEDIDO GROUP BY PRODUTOS.DESCRICAO HAVING SUM(ITENS.QUANTIDADE * ITENS.PRECO) > 1000; 19) CREATE VIEW VIEW_PRODITENSPEDCLI (DESCRICAO, QUANTIDADE, PRECO, DATA, NOME) AS SELECT PRODUTOS.DESCRICAO, ITENS.QUANTIDADE, ITENS.PRECO, PEDIDOS.DATA, CLIENTES.NOME FROM PRODUTOS, ITENS, PEDIDOS, CLIENTES WHERE PRODUTOS.ID_PRODUTO = ITENS.ID_PRODUTO AND PEDIDOS.ID_PEDIDO = ITENS.ID_PEDIDO AND CLIENTES.ID_CLIENTE = PEDIDOS.ID_CLIENTE;

Pg.: 37

Procedures
Stored Procedures um objeto de banco de dados que contm comandos que se resumem em linhas de comando que processam tarefas, ou fazem chamadas a outras procedures. Uma Stored Procedure (procedimento armazenado), alm de executar instrues, possibilita a interao e aplicao que a invoca e o seu corpo de cdigo por intermdio dos parmetros definidos no seu cabealho. A execuo de uma Stored Procedure sempre ocorre de forma explcita, ou de forma interativa, como por exemplo pela utilizao do SQL* Plus ou sendo referenciada no corpo do cdigo de uma aplicao Cliente. Neste ltimo exemplo um procedimento armazenado, se revela um excelente ncleo para manter cdigo que processa tarefa envolvendo a estrutura de dados. Manter o cdigo de processamento armazenado no banco de dados, traz de imediato a facilidade na manuteno em um nico local, refletindo na aplicao que faz referncia a esta procedure. Se elevarmos a anlise para um ambiente de desenvolvimento corporativo onde se caracteriza a heterogeneidade pela adoo de linguagens de programao mltiplas, o uso de Stored Procedure alcana importncia sem igual, j que seu uso conforme abordado no pargrafo anterior, ir atingir uma maior magnitude. Diferente de uma Trigger, que tem o seu processamento disparado pela ocorrncia de comandos para a tabela associada, uma Stored Procedure ocorre quando explicitamente solicitada. Na sequncia, teremos alguns exemplos prticos do cotidiano, que visam explorar a plenitude do uso de procedures no contexto do desenvolvimento de sistemas comerciais. 23) CREATE PROCEDURE PROC_GENCLIENTES RETURNS (NUMERO INTEGER) AS begin NUMERO = GEN_ID(Gen_clientes, 1); Suspend; end 24) CREATE PROCEDURE PROC_GENPRODUTOS RETURNS (NUMERO INTEGER) AS begin NUMERO = GEN_ID(Gen_Produtos, 1); Suspend; end 25) CREATE PROCEDURE PROC_GENPEDIDOS RETURNS (NUMERO INTEGER) AS begin NUMERO = GEN_ID(Gen_pedidos, 1); Suspend; end 29) CREATE PROCEDURE PROC_SELECT RETURNS (VARNOME CHAR(60)) AS BEGIN FOR SELECT NOME FROM CLIENTES INTO :VARNOME DO SUSPEND; END Pg.: 38

26) CREATE PROCEDURE PROC_INCPRODUTOS (PARDESCRICAO VARCHAR(25), PARPRECO NUMERIC(15, 2), PARSALDO INTEGER) AS DECLARE VARIABLE VarReg INTEGER; begin BEGIN VarReg = GEN_ID(Gen_Produtos, 1); Insert Into Produtos Values( :VarReg, :ParDESCRICAO, :ParPRECO, :ParSaldo); WHEN SQLCODE -530 DO EXCEPTION EXC_REGEXISTENTE; END SUSPEND; END 27) CREATE PROCEDURE PROC_ALTPRODUTOS (PARID_PRODUTO INTEGER, PARDESCRICAO VARCHAR(25), PARPRECO NUMERIC(15, 2), PARSALDO INTEGER) AS begin Update Produtos Set DESCRICAO = :PARDESCRICAO, PRECO = :PARPRECO, Saldo = :PARSALDO Where ID_Produto = :PARID_PRODUTO; END 28) CREATE PROCEDURE PROC_EXCPRODUTOS (PARID_PRODUTO INTEGER) AS begin Delete From Produtos Where ID_Produto = :PARID_PRODUTO; END 29) CREATE PROCEDURE PROC_SELECT RETURNS (VARNOME CHAR(60)) AS BEGIN FOR SELECT NOME FROM CLIENTES INTO :VARNOME DO SUSPEND; END

Pg.: 39

30) CREATE PROCEDURE PROC_ESTATVENDA (PARID_CLIENTE INTEGER, PARDATAINI DATE, PARDATAFIM DATE) RETURNS ( TOT_VENDA NUMERIC(15, 2), AVG_VENDA NUMERIC(15, 2), MIN_VENDA NUMERIC(15, 2), MAX_VENDA NUMERIC(15, 2)) AS BEGIN SELECT SUM(ITENS.QUANTIDADE * ITENS.PRECO), AVG(ITENS.QUANTIDADE * ITENS.PRECO), MIN(ITENS.QUANTIDADE * ITENS.PRECO), MAX(ITENS.QUANTIDADE * ITENS.PRECO) FROM CLIENTES, PEDIDOS, ITENS WHERE CLIENTES.ID_CLIENTE = PEDIDOS.ID_CLIENTE AND PEDIDOS.ID_PEDIDO = ITENS.ID_PEDIDO AND CLIENTES.ID_CLIENTE = :PARID_CLIENTE AND PEDIDOS.DATA BETWEEN :PARDATAINI AND :PARDATAFIM INTO :TOT_VENDA, :AVG_VENDA, :MIN_VENDA, :MAX_VENDA; SUSPEND; END

Pg.: 40

Triggers
Triggers so blocos ISQL que contm cdigos que implementam instrues que podem afetar dados contidos em tabelas, validos dados baseadas em certas condies, acionar procedimentos armazenados entre outros objetos. Uma Trigger, que significa gatilho, definida (criada) e associada a um evento (ocorrncia) conseqente aos comandos Insert, Delete ou Update. Ao contrrio de uma Store Procedure (Procedimento Armazenad), uma Trigger no invocada nem referenciada em cdigo Cliente nem no servidor InterBase . Conforme sugere seu nome, uma Trigger disparada ( executada )pela manipulao da tabela na qual foi criada. Conforme conceitualmente j abordado no tpico integridade, uma Trigger um excelente mecanismo para se controlar as restries, tendo em vista a possibilidade de interferir nos valores que esto sendo manipulados, pode-se ainda estabelecer uma comunicao clara com a aplicao Front-End. Como exemplos de situaes em que a adoo de Triggers se aplica, relacionamos o seguinte: - Fazer manuteno (atualizao) em outras tabelas quando ocorrerem operaes de incluso, alterao ou excluso na tabela corrente. - Estabelecer validao para colunas. - Alimentar tabelas de controle de Log. - Sinalizar aplicao Front-End de alguma ocorrncia especfica. 30) CREATE TRIGGER TRIG_TESTACREDITO_INC FOR CLIENTES ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.CREDITO > 20000) THEN BEGIN NEW.CREDITO = 20000; END END 31) CREATE TRIGGER TRIG_TESTACREDITO_ALT FOR CLIENTES ACTIVE BEFORE UPDATE POSITION 0 AS BEGIN IF (NEW.CREDITO > 20000) THEN BEGIN NEW.CREDITO = 20000; END END 32) CREATE TRIGGER TRIG_ID_CLIENTE FOR CLIENTES ACTIVE BEFORE INSERT POSITION 0 AS BEGIN NEW.ID_Cliente = GEN_ID(Gen_clientes, 1); END

Pg.: 41

33) CREATE TRIGGER TRIG_ATUALIZASALDOPRODUTO_ALT FOR ITENS ACTIVE BEFORE UPDATE POSITION 0 AS DECLARE VARIABLE VARSALDO INTEGER; BEGIN UPDATE PRODUTOS SET PRODUTOS. SALDO = PRODUTOS.SALDO + OLD.QUANTIDADE WHERE PRODUTOS.ID_PRODUTO = OLD.ID_PRODUTO; SELECT PRODUTOS.SALDO FROM PRODUTOS WHERE PRODUTOS.ID_PRODUTO = NEW.ID_PRODUTO INTO :VARSALDO; IF (:VARSALDO >= NEW.QUANTIDADE) THEN BEGIN UPDATE PRODUTOS SET PRODUTOS.SALDO = PRODUTOS.SALDO - NEW.QUANTIDADE WHERE PRODUTOS.ID_PRODUTO = NEW.ID_PRODUTO; END ELSE BEGIN EXCEPTION EXC_SALDO; END END 34) CREATE TRIGGER TRIG_ATUALIZASALDOPRODUTO_EXC FOR ITENS ACTIVE BEFORE DELETE POSITION 0 AS BEGIN UPDATE PRODUTOS SET PRODUTOS.SALDO = PRODUTOS.SALDO + OLD.QUANTIDADE WHERE PRODUTOS.ID_PRODUTO = OLD.ID_PRODUTO; END 35) CREATE TRIGGER TRIG_ATUALIZASALDOPRODUTO_INC FOR ITENS ACTIVE BEFORE INSERT POSITION 0 AS DECLARE VARIABLE VARSALDO INTEGER; BEGIN SELECT PRODUTOS.SALDO FROM PRODUTOS WHERE PRODUTOS.ID_PRODUTO = NEW.ID_PRODUTO INTO :VARSALDO; IF (:VARSALDO >= NEW.QUANTIDADE) THEN BEGIN UPDATE PRODUTOS SET PRODUTOS.SALDO = PRODUTOS.SALDO - NEW.QUANTIDADE WHERE PRODUTOS.ID_PRODUTO = NEW.ID_PRODUTO; END ELSE BEGIN EXCEPTION EXC_SALDO; END END Pg.: 42

Outros Objetos Role


Sintxe: CREATE ROLE Nome_da_Role; Exemplo: Create Role Administrador;

Grant
Sintxe: GRANT UPDATE ON Clientes TO Administrador; GRANT Administrador TO user1, user2, user3; GRANT SELECT, DELETE ON Clientes TO Administrador WITH GRANT OPTION;

Revoke
Sintxe: REVOKE SELECT ON Clientes FROM Administrador;

Pg.: 43

Вам также может понравиться