Sei sulla pagina 1di 53

Banco de Dados para Aplicativos Desktop

2008.2 Unibratec - Ensino Superior e Tcnico em Informtica Henrique Aguiar S Vila Nova Jnior

<Verso 1.0>

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

NDICE
INTRODUO Dado x Informao......................................................................................................................................... 3 ORGANIZAES BSICAS DE ARQUIVOS Estruturas de Arquivos................................................................................................................................... 4 BANCO DE DADOS (BD) e SISTEMA DE GERNCIA DE BANCO DE DADOS (SGBD) Principais Componentes e Caractersticas de um SGBD............................................................................ 10 Abstrao de Dados (Nveis)....................................................................................................................... 11 Modelos de Bancos de Dados e suas Independncias............................................................................... 11 Funes Relacionadas ao SGBD................................................................................................................. 12 Arquiteturas para Uso do SGBD.................................................................................................................. 13 Fases do Projeto de BD............................................................................................................................... 13 MODELAGEM DE DADOS Conceitos..................................................................................................................................................... 14 Tipos de Abstrao...................................................................................................................................... 14 Requisitos para Modelagem de Dados........................................................................................................ 14 MODELO ENTIDADE-RELACIONAMENTO (M.E.R.) Entidade....................................................................................................................................................... 18 Relacionamento........................................................................................................................................... 19 Notaes Alternativas.................................................................................................................................. 24 Atributo......................................................................................................................................................... 24 Generalizao / Especializao................................................................................................................... 26 Entidade Associativa (Agregao)............................................................................................................... 28 Relacionamento Mutuamente Exclusivo...................................................................................................... 29 Esquema Textual do MER........................................................................................................................... 29 HISTRICO E VISO GERAL DA LINGUAGEM DE CONSULTA SQL Conceitos Bsicos........................................................................................................................................ 31 Acesso ao Gerenciador de Banco de Dados - Interbase............................................................................. 32 Criao do Banco de Dados........................................................................................................................ 33 Remoo do Banco de Dados..................................................................................................................... 34 A Criao de Tabelas no Interbase.............................................................................................................. 34 TIPOS DE DADOS O Tipo Numrico.......................................................................................................................................... 36 O Tipo Temporal.......................................................................................................................................... 37 O Tipo Literal................................................................................................................................................ 37 TABELA COM SQL Criar uma Tabela.......................................................................................................................................... 37 Excluir uma Tabela....................................................................................................................................... 38 Insero de Registros.................................................................................................................................. 38 Listagem de Registros.................................................................................................................................. 39 Funes Agregadas..................................................................................................................................... 40 Alterao de Registros................................................................................................................................. 41 Remoo de Registros................................................................................................................................. 42 Modificao da Estrutura de uma Tabela..................................................................................................... 42 Operadores Aritmticos................................................................................................................................ 43 Operadores Relacionais............................................................................................................................... 43 Operadores Lgicos..................................................................................................................................... 44 Operadores Auxiliares.................................................................................................................................. 45 Relacionamento entre Tabelas.................................................................................................................... 47 O BANCO DE DADOS IB EXPERT Registrando o Banco.................................................................................................................................... 49 Criando Tabelas........................................................................................................................................... 49 Criando FK em Tabelas do ib expert............................................................................................................ 51 Fechando o Banco de Dados....................................................................................................................... 53

Unibratec- Ensino Superior e Tcnico em Informtica - 2

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

INTRODUO
DADO x INFORMAO Atravs de um dado temos a representao de um evento do mundo fsico, de um fato ou de uma idia. Podendo ainda ser a representao de uma propriedade ou caracterstica de um objeto real, no tendo significado por si s. Como exemplo podemos ter a quantidade de Kwh consumidos em uma residncia. A informao a organizao e agregao dos dados, permitindo uma interpretao, ou seja, a informao a interpretao dos dados. Na mesma linha do exemplo acima podemos dizer que a informao o consumo de energia comparado com a capacidade geradora da usina. Os dados so idenficados, organizados, agrupados, armazenados e recuperados, e dessa forma geram informaes. Abaixo podemos visualizar a informao como recurso da empresa.

ORGANIZAES BSICAS DE ARQUIVOS


As Estruturas de Dados definem a forma como os dados esto organizados, como se relacionam e como sero manipulados pelos programas. Como exemplo temos: vetores e matrizes, registros, filas, pilhas, rvores, grafos, etc. Arquivo: coleo de registros lgicos, cada um deles representando um objeto ou entidade. Na prtica os arquivos geralmente esto armazenados na memria secundria (fitas e discos) e so usados para armazenar os resultados intermedirios de processamento ou armazenar os dados de forma permanente. Registro lgico (registro): seqncia de itens, cada item sendo chamado de campo ou atributo, correspondendo a uma caracterstica do objeto representado. Os registros podem ser de tamanho fixo ou de tamanho varivel. Campo: item de dados do registro, com um nome e um tipo associados. Bloco: unidade de armazenamento do arquivo em disco, tambm denominado registro fsico. Um registro fsico normalmente composto por vrios registros lgicos. Cada bloco armazena um nmero inteiro de registros. Chave: uma seqncia de um ou mais campos em um arquivo.
Unibratec- Ensino Superior e Tcnico em Informtica - 3

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Chave primria: uma chave que apresenta um valor diferente para cada registro do arquivo. usada para identificar, de forma nica, cada registro. Chave secundaria: uma chave que pode possuir o mesmo valor em registro distintos. normalmente usada para identificar um conjunto de registros. Chave de acesso: uma chave usada para identificar o(s) registro(s) desejado(s) em uma operao de acesso ao arquivo. ESTRUTURAS DE ARQUIVOS ARQUIVO SEQUENCIAL Nos arquivos sequenciais a ordem lgica e fsica dos registros armazenados a mesma. Os registros podem estar dispostos seguindo a seqncia determinada por uma chave primria (chamada chave de ordenao), ou podem estar dispostos aleatoriamente.
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Numero 1000 1050 1075 1100 1150 1180 1250 1270 1300 1325 1340 1360 1400 1450 Nome ADEMAR AFONSO CARLOS CESAR DARCI EBER ENIO FLAVIO IVAN MIGUEL MARIA RAMON SANDRA TATIANA Idade 25 27 28 30 23 22 27 28 30 34 35 32 29 30 Salario 600 700 500 1000 1500 2000 750 600 700 1000 1500 2000 700 500

A) Acessando um Registro Quando acessamos um registro podemos considerar dois tipos de acesso: seqencial ou aleatrio.O acesso seqencial consiste em acessar os registros na ordem em que esto armazenados, ou seja, o registro obtido sempre o posterior ao ltimo acessado. Como os registros so armazenados em sucesso contnua, acessar o registro n de um arquivo requer a leitura dos n-1 registros anteriores.O acesso aleatrio se caracteriza pela utilizao de um argumento de pesquisa (chave de acesso), que indica qual o registro desejado. Neste caso, a ordem em que os registros so acessados pode ser diferente da ordem em que eles esto armazenados fisicamente. Se o arquivo est ordenado e a chave de acesso coincide com a chave de ordenao, podemos utilizar a pesquisa binria. Caso contrrio, deve ser realizada uma pesquisa seqencial no arquivo. B) Inserindo um Registro Se o arquivo no est ordenado, o registro pode ser simplesmente inserido aps o ltimo registro armazenado. Se o arquivo est ordenado, normalmente adotado o seguinte procedimento: Dado um arquivo base B, construdo um arquivo de transaes T, que contem os registros a serem inseridos, ordenado pela mesma chave que o arquivo B. Os arquivos B e T so ento intercalados, gerando o arquivo A, que a verso atualizada de B.

Unibratec- Ensino Superior e Tcnico em Informtica - 4

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Arquivo B # Num 0 1000 1 1050 2 1075 3 1100 4 1150 5 1180 6 1250 7 1270 8 1300 9 1325 10 1340 11 1360 12 1400 13 1450

Nome ADEMAR AFONSO CARLOS CESAR DARCI EBER ENIO FLAVIO IVAN MIGUEL MARIA RAMON SANDRA TATIANA

Idade 25 27 28 30 23 22 27 28 30 34 35 32 29 30

Arquivo T # Num 0 1070 1 1120 2 1280 3 1310 4 1420

Nome ANGELA CLAUDIA IARA LUIS SONIA

Idade 25 27 28 30 23

Arquivo A # Num 0 1000 1 1050 2 1070 3 1075 4 1100 5 1120 6 1150 7 1180 8 1250 9 1270 10 1280 11 1300 12 1310 13 1325 14 1340 15 1360 16 1400 17 1420 18 1450

Nome ADEMAR AFONSO ANGELA CARLOS CESAR CLAUDIA DARCI EBER ENIO FLAVIO IARA IVAN LUIS MIGUEL MARIA RAMON SANDRA SONIA TATIANA

Idade 25 27 25 28 30 27 23 22 27 28 28 30 30 34 35 32 29 23 30

C) Excluindo um Registro Normalmente implementada como a insero, com a criao de um arquivo de transaes que contm os registros a serem excludos, que processado posteriormente. Pode ainda ser implementada atravs de um campo adicional no arquivo que indique o estado (status) de cada registro. Na excluso, o valor deste campo seria alterado para excludo. Posteriormente, feita a leitura seqencial de todos os registros, sendo que os registros que no estiverem marcados como excludos so copiados para um novo arquivo. Alterao de um registro Consiste na modificao do valor de um ou mais atributos de um registro. O registro deve ser localizado, lido e os campos alterados, sendo gravado novamente, na mesma posio. A alterao feita sem problemas, desde que ela no altere o tamanho do registro nem modifique o valor de um campo usado como chave de ordenao.

Unibratec- Ensino Superior e Tcnico em Informtica - 5

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

ARQUIVO SEQUENCIAL-INDEXADO Quando o volume de acessos aleatrios em um arquivo sequencial torna-se muito grande, necessrio utilizar uma estrutura de acesso que oferea maior eficincia na localizao de um registro com base em uma chave de acesso. O arquivo sequencial-indexado um arquivo sequencial acrescido de uma estrutura de acesso (ndice). Um ndice formado por uma coleo de pares, associando um valor da chave de acesso a um endereo de registro. Deve existir um ndice especfico para cada chave de acesso.
ndice Primrio # Num End. 0 1300 0 1 1605 3 2 ** 6 ** Maior valor que a chave pode assumir # 0 1 2 ndice Secundrio Num End. 1070 0 1200 3 1300 6 3 1430 9 4 1520 12 5 1605 15 6 1710 18 7 1745 21 8 ** 24 ** Maior valor que a chave pode assumir # 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Num 1000 1050 1070 1075 1100 1200 1250 1275 1300 1310 1400 1430 1470 1510 1520 1530 1590 1605 1650 1700 1710 1730 1740 1745 1800 1905 2010 Arquivo Nome ADEMAR AFONSO ANGELA CARLOS CESAR CLAUDIA CRISTIE DARCI DIOGO ELBER EDISON EDMUNDO ENIO FLAVIO GENARO GERSON HELENA IARA IVAN LUIS MARIA MIGUEL RAMON SANDRA SONIA TATIANA WILSON Idade 25 27 25 28 30 25 26 29 25 27 25 28 30 25 26 29 25 27 25 28 30 25 26 29 32 34 20

Unibratec- Ensino Superior e Tcnico em Informtica - 6

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

ARQUIVO INDEXADO O arquivo indexado aquele em que os registros so acessados atravs de um ou mais ndices, no havendo qualquer compromisso com a ordem em que os registros esto armazenados. Podem existir tantos ndices quantas forem as chaves de acesso aos registros. As entradas no ndice so ordenadas pelo valor das chaves de acesso, sendo cada uma delas constituda por um par (chave do registro, endereo do registro).

ndice Num 1000 1050 1070 1075 1100 1200 1250 1275 1300 1310 1400 1430 1470 1510 1520 1530 1590 1605 1650 1700 1710 1730 1740 1745 1800 1905 2010 End. 1 13 2 16 22 3 10 19 4 14 5 17 23 6 11 20 7 15 8 18 24 9 12 21 25 26 0

Arquivo # 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Num 2010 1000 1070 1200 1300 1400 1510 1590 1650 1730 1250 1520 1740 1050 1310 1605 1075 1430 1700 1275 1530 1745 1100 1470 1710 1800 1905 Nome WILSON ADEMAR ANGELA CLAUDIA DIOGO EDISON FLAVIO HELENA IVAN MIGUEL CRISTIE GENARO RAMON AFONSO ELBER IARA CARLOS EDMUNDO LUIS DARCI GERSON SANDRA CESAR ENIO MARIA SONIA TATIANA Idade 26 32 28 25 24 22 30 26 32 28 25 24 22 30 26 32 28 26 32 26 26 32 28 25 24 22 30 Salrio 1000 250 300 750 400 1500 250 300 750 400 1500 750 400 1500 250 300 750 400 1500 750 400 400 1500 750 400 750 400

ARQUIVO DIRETO A idia bsica de um arquivo direto o armazenamento dos registros em endereos determinados com base no valor de uma chave primria, de modo que se tenha acesso rpido aos registros especificados por argumentos de pesquisa, sem que haja necessidade de percorrer uma estrutura de ndice. Em um arquivo direto ao invs de um ndice usada uma funo que calcula um endereo de registro a partir do argumento de pesquisa.

Unibratec- Ensino Superior e Tcnico em Informtica - 7

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

C=CLAUDIA

E=F(C)

E=3

Arquivo # Num 0 2010 1 2 1070 3 1200 4 5 6 7 8 9 10 11 12 13 14 15 ... 1300

Nome WILSON ANGELA CLAUDIA DIOGO

Idade 26 28 25 24

Salrio 1000 300 750 400

1650 1730 1250 1050 1800

IVAN MIGUEL CRISTIE AFONSO SONIA

32 28 25 30 22

750 400 1500 1500 750

O principal problema associado com os arquivos diretos o da determinao de uma funo F, que transforme o valor C da chave de um registro no endereo E, que lhe corresponde no arquivo. Geralmente so usadas funes probabilsticas que geram, para cada valor da chave, um endereo to nico quanto possvel, podendo gerar, para valores distintos da chave, o mesmo endereo. Este fato denominado coliso, e devem ser estabelecidos procedimentos para trat-lo.

Unibratec- Ensino Superior e Tcnico em Informtica - 8

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

BANCO DE DADOS (BD) e SISTEMA DE GERNCIA DE BANCO DE DADOS (SGBD)


Um Banco de Dados (BD) pode ser definido como uma coleo de dados interrelacionados, armazenados de forma centralizada ou distribuda, com redundncia controlada, para servir a uma ou mais aplicaes, enquanto o Sistema de Gerncia de Banco de Dados (SGBD) o conjunto de software para gerenciar (definir, criar, modificar, usar) um BD e garantir a integridade e segurana dos dados. O SGBD a interface entre os programas de aplicao e o BD. Em ingls denominado DataBase Management System (DBMS).

Dados de diferentes aplicaes no esto integrados, pois so projetados para atender a uma aplicao especfica, ou seja, processamento de dados sem Banco de Dados.

Porm quando os dados usados por uma comunidade de usurios so integrados no Banco de Dados e cada informao armazenada uma nica vez, sendo que as eventuais redundncias so controladas pelo sistema em computador, ficando transparentes para os usurios, existe um processamento de dados com uso de SGBD.
Unibratec- Ensino Superior e Tcnico em Informtica - 9

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

PRINCIPAIS COMPONENTES E CARACTERSTICAS DE UM SGBD Dicionrio de Dados (Data Dictionary): Descreve os dados e suas relaes em forma conceitual e independente de seu envolvimento nas diversas aplicaes. Fornece referncias cruzadas entre os dados e as aplicaes. Linguagem de Definio de Dados (DDL) - Data Definition Language): Descreve os dados que esto armazenados no BD. As descries dos dados so guardadas em um meta banco de dados. Linguagem de Acesso (DML - Data Manipulation Language): Usada para escrever as instrues que trabalham sobre a base de dados, permitindo o acesso e atualizao dos dados pelos programas de aplicao. Geralmente integrada com a DDL. Linguagem de consulta (QUERY): Permite que o usurio final, com poucos conhecimentos tcnicos, possa obter de forma simples, informaes do BD. Utilitrios administrativos: Programas auxiliares para carregar, reorganizar, adicionar, modificar a descrio do BD, obter cpias de reserva e recuperar a integridade fsica em caso de acidentes. Um princpio bsico em BD determina que cada item de dado deveria ser capturado apenas uma vez e ento armazenado, de modo que possa tornar disponvel para atender a qualquer necessidade de acesso qualquer momento. Abaixo esto alguns pontos importantes: Independncia dos dados: O SGBD deve oferecer isolamento das aplicaes em relao aos dados. Esta caracterstica permite modificar o modelo de dados do BD sem necessidade de reescrever ou recompilar todos os programas que esto prontos. As definies dos dados e os relacionamentos entre os dados so separados dos cdigos os programas. Mais de 80 % do tempo dos analistas e programadores gasto na manuteno de programas. A principal causa deste elevado tempo reside na falta de independncia entre dados e programas. Facilidade uso/desempenho: Embora o SGBD trabalhe com estruturas de dados complexas, os arquivos devem ser projetados para atender a diferentes necessidades, permitindo desenvolver aplicaes melhores, mais seguras e mais rapidamente. Deve possui comandos poderosos em sua linguagem de acesso. Integridade dos dados: O SGBD deve garantir a integridade dos dados, atravs da implementao de restries adequadas. Isto significa que os dados devem ser precisos e vlidos.
Unibratec- Ensino Superior e Tcnico em Informtica - 10

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Redundncia dos dados: O SGBD deve manter a redundncia de dados sob controle, ou seja, ainda que existam diversas representaes do mesmo dado, do ponto de vista do usurio como se existisse uma nica representao. Segurana e privacidade dos dados: O SGBD deve assegurar que estes s podero ser acessados ou modificados por usurios autorizados. Rpida recuperao aps falha: Os dados so de importncia vital e no podem ser perdidos. Assim, o SGBD deve implementar sistemas de tolerncia a falhas, tais como estrutura automtica de recover e uso do conceito de transao. Uso compartilhado: O BD pode ser acessado concorrentemente por mltiplos usurios. Controle do espao de armazenamento: O SGBD deve manter controle das reas de disco ocupadas, evitando a ocorrncia de falhas por falta de espao de armazenamento. ABSTRAO DE DADOS (NVEIS) Um propsito central de um SGBD proporcionar aos usurios uma viso abstrata dos dados, isto , o sistema esconde certos detalhes de como os dados so armazenados ou mantidos. No entanto, os dados precisam ser recuperados eficientemente. A preocupao com a eficincia leva a concepo de estruturas de dados complexas para representao dos dados no BD. Porm, uma vez que SGBD so freqentemente usados por pessoas sem treinamento na rea de computao, esta complexidade precisa ser escondida dos usurios. Isto conseguido definindo-se diversos nveis de abstrao pelos quais o BD pode ser visto: Nvel Fsico: o nvel mais baixo de abstrao, no qual se descreve como os dados so armazenados. Estruturas complexas, de baixo nvel, so descritas em detalhe. Nvel Conceitual: o nvel que descreve quais os dados so realmente armazenados no BD e quais os relacionamentos existentes entre eles. Este nvel descreve o BD como um pequeno nmero de estruturas relativamente simples. Muito embora a implementao de estruturas simples no nvel conceitual possa envolver estruturas complexas no nvel fsico, o usurio do nvel conceitual no precisa saber disto. Nvel Viso: Este o nvel mais alto de abstrao, no qual se expe apenas parte do BD. Na maioria das vezes os usurios no esto preocupados com todas as informaes do BD e sim com apenas parte delas (Vises dos Usurios) MODELOS DE BANCOS DE DADOS E SUAS INDEPENDNCIAS Um modelo de Banco de Dados uma descrio dos tipos de informaes que esto armazenadas em um banco de dados, ou seja, a descrio formal da estrutura de BD. Estes modelos podem ser escritos em linguagens textuais ou linguagens grficas. Cada apresentao do modelo denominado esquema de banco de dados. Se tomarmos como exemplo uma indstria, o modelo de dados deve mostrar que so armazenadas informaes sobre produtos, tais como cdigo, descrio e preo. Porm o modelo de dados no vai informar quais produtos esto armazenados no Banco de Dados. No projeto de um banco de dados, geralmente so considerados 3 modelos: conceitual, lgico e fsico.

Unibratec- Ensino Superior e Tcnico em Informtica - 11

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Modelo Conceitual: uma descrio mais abstrata da base de dados. No contm detalhes de implementao e independente do tipo de SGBD usado. o ponto de partida para o projeto da base de dados. Modelo Lgico: a descrio da base de dados conforme vista pelos usurio do SGBD (programadores e aplicaes). dependente do tipo de SGBD escolhido, mas no contm detalhes da implementao (uma vez que o SGBD oferece abstrao e independncia de dados). Independncia: capacidade de se modificar o esquema lgico, sem a necessidade de reescrever os programas de aplicao. Modificaes no nvel lgico so necessrias sempre que a estrutura lgica do BD for alterada. Em alguns casos a recompilao pode ser requerida. Modelo Fsico (interno): Descrio de como a base de dados armazenada internamente. Geralmente s alterada para ajuste de desempenho. A tendncia dos produtos modernos ocultar cada vez mais os detalhes fsicos de implementao. Independncia: capacidade de se modificar o modelo fsico, sem precisar reescrever os programas de aplicao. FUNES RELACIONADAS AO SGBD ADMINISTRADOR DE DADOS Gerenciar o dado como um recurso da empresa. Planejar, desenvolver e divulgar as bases de dados da empresa. Permitir a descentralizao dos processos, mas manter centralizado os dados. Permitir fcil e rpido acesso as informaes a partir dos dados armazenados. O grande objetivo de administrador de dados permitir que vrios usurios compartilhem os mesmos dados. Deste modo, os dados no pertencem a nenhum sistema ou usurio de forma especfica, e sim, organizao como um todo. Assim, o administrador de dados se preocupa basicamente com a organizao dos dados e no com o seu armazenamento. ADMINISTRADOR DE BANCO DE DADOS O DBA (DataBase Administrator) pessoa ou grupo de pessoas responsvel pelo controle do SGBD. So tarefas do DBA: Responsabilidade pelos modelos lgico e fsico (definindo a estrutura de armazenamento) Coordenar o acesso ao SGBD (usurios e senhas) Definir a estratgia de backup Melhorar o desempenho do SGBD Manter o dicionrio de dados PROJETISTA DA BASE DE DADOS Constri o modelo conceitual de uma parte da base de dados, com a participao do usurio. Junto com o DBA integra as novas partes ao banco de dados global. ANALISTA DE SISTEMAS Define e projeta aplicao que iro usar a base de dados existente. Utiliza o modelo conceitual e o modelo lgico existentes, mas no define os dados da base de dados.

Unibratec- Ensino Superior e Tcnico em Informtica - 12

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

ARQUITETURAS PARA USO DO SGBD MONO-USURIO BD est no mesmo computador que as aplicaes No h mltiplos usurios Recuperao geralmente atravs de backup Tpico de computadores pessoais MULTI-USURIO COM PROCESSAMENTO CENTRAL BD est no mesmo computador que as aplicaes Mltiplos usurios acessando atravs de terminais Tpico de ambientes com mainframe ARQUITETURA EM REDE COM SERVIDOR DE ARQUIVOS Multi-usurio Servidor de arquivos contm todos os arquivos do banco de dados As estaes clientes executam as aplicaes e o software de BD Gera alto trfego na rede Tpico de redes pequenas (peer-to-peer) ARQUITETURA CLIENTE/SERVIDOR Multi-usurio Servidor dedicado ao Banco de Dados, executando o SGBD As estaes clientes executam apenas as aplicaes Trfego na rede menor Arquitetura atualmente em uso FASES DO PROJETO DE BD CONSTRUIR O MODELO CONCEITUAL Modelo de alto nvel, independente da implementao. Etapa de levantamento de dados. Uso de uma tcnica de modelagem de dados. Abstrao do ambiente de hardware/software CONSTRUIR O MODELO LGICO Modelo implementvel, dependente do tipo de SGBD a ser usado. Considera as necessidades de processamento. Considera as caractersticas e restries do SGBD. Etapa de normalizao dos dados. CONSTRUIR O MODELO FSICO Modelo implementvel, com mtodos de acesso e estrutura fsica. Considera necessidades de desempenho. Considera as caractersticas e restries do SGBD. Dependente das caractersticas de hardware/software. AVALIAR O MODELO FSICO Avaliar o desempenho das aplicaes. Avaliar os caminhos de acesso aos dados e estruturas utilizadas.
Unibratec- Ensino Superior e Tcnico em Informtica - 13

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

IMPLEMENTAR O BD Etapa de carga (load) dos dados. Gerar as interfaces com outras aplicaes.

MODELAGEM DE DADOS
CONCEITOS Abstrao: processo mental atravs do qual selecionamos determinadas propriedades ou caractersticas dos objetos e exclumos outras, consideradas menos relevantes para o problema sendo analisado. Modelo: uma abstrao, uma representao simplificada, de uma parcela do mundo real, composta por objetos reais. Modelagem: atividade atravs da qual se cria um modelo. Modelo de dados: Um modelo de dados uma descrio das informaes que devem ser armazenadas em um banco de dados, ou seja, a descrio formal da estrutura de BD (descrio dos dados, dos relacionamentos entre os dados, da semntica e das restries impostas aos dados). TIPOS DE ABSTRAO Classificao: Os objetos do mundo real so organizados segundo suas propriedades ou caractersticas comuns, formando classes de objetos. Um objeto pode pertencer simultaneamente a vrias classes. Agregao: Uma classe definida a partir de um conjunto de outras classes, que representam suas partes componentes. Generalizao: Define uma nova classe a partir de caractersticas comuns de outras classes. A classe genrica que rene as caractersticas comuns denominada superclasse e as classes que herdam estas caractersticas so denominadas subclasses. REQUISITOS PARA MODELAGEM DE DADOS Entender a realidade em questo, identificando os objetos que compe a parte da realidade que vai ser modelada, Representando formalmente a realidade analisada, construindo um modelo de dados. Estruturar o modelo obtido e adequ-lo ao SGBD a ser usado, transformando o modelo conceitual em modelo lgico. MODELOS CONCEITUAIS So usados para descrio de dados no nvel conceitual. Proporcionam grande capacidade de estruturao e permitem a especificao de restries de dados de forma explcita. Exemplos: Modelo Entidade-Relacionamento (M.E.R.) Modelo de Semntica de dados Modelo Infolgico Modelos Orientados para Objetos (OO)
Unibratec- Ensino Superior e Tcnico em Informtica - 14

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

MODELOS LGICOS So usados na descrio dos dados no nvel lgico. Em contraste com modelos conceituais, esses modelos so usados para especificar tanto a estrutura lgica global do BD como uma descrio em alto nvel da implementao. A) MODELO HIERRQUICO Um BD hierrquico uma coleo de rvores de registros. Os registros so usados para representar os dados e ponteiros so usados para representar o relacionamento entre os dados, numa ligao do tipo pai-filho. A restrio que um determinado registro somente pode possuir um registro pai.

Unibratec- Ensino Superior e Tcnico em Informtica - 15

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

B) MODELO DE REDE O BD em rede um grafo, onde os ns representam os registros e os arcos representam os relacionamentos entre os registros, atravs de ligaes pai-filho. Diferente do modelo hierrquico, um registro pode possuir diversos registros pai.

C) MODELO RELACIONAL Um BD relacional possui apenas um tipo de construo, a tabela. Uma tabela composta por linhas (tuplas) e colunas (atributos). Os relacionamentos entre os dados tambm so representados ou por tabelas, ou atravs da reproduo dos valores de atributos.

Unibratec- Ensino Superior e Tcnico em Informtica - 16

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Unibratec- Ensino Superior e Tcnico em Informtica - 17

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

MODELO DE DADOS FSICO Usados para descrever os dados em seu nvel mais baixo. Capturam os aspectos de implementao do SGBD.

MODELO ENTIDADE-RELACIONAMENTO (M.E.R.)


Apresentado por Peter Chen, em 1976 e a tcnica mais difundida para construir modelos conceituais de bases de dados, bem como o padro para modelagem conceitual, tendo sofrido diversas extenses. Est baseado na percepo de uma realidade constituda por um grupo bsico de objetos chamados ENTIDADES e por RELACIONAMENTOS entre estas entidades. Seu objetivo definir um modelo de alto nvel independente de implementao. O modelo representado graficamente por um Diagrama de Entidade-Relacionamento (DER), que simples e fcil de ser entendido por usurios no tcnicos. Conceitos centrais do MER: entidade, relacionamento, atributo, generalizao/especializao, agregao (entidade associativa). ENTIDADE Conjunto de objetos da realidade modelada sobre os quais deseja-se manter informaes no Banco de Dados. Uma entidade pode representar objetos concretos da realidade (pessoas, automveis, material, nota fiscal) quanto objetos abstratos (departamentos, disciplinas, cidades). A entidade se refere a um conjunto de objetos; para se referir a um objeto em particular usado o termo instncia (ou ocorrncia). No DER, uma entidade representada atravs de um retngulo que contm o nome da entidade. PESSOA DEPARTAMENTO
Unibratec- Ensino Superior e Tcnico em Informtica - 18

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

RELACIONAMENTO toda associao entre entidades, sobre a qual deseja-se manter informaes no Banco de Dados. Os relacionamentos representam fatos ou situaes da realidade, onde as entidades interagem de alguma forma, ou seja, um dado por si s no faz uma informao, pois no tem sentido prprio; necessrio que haja uma associao de dados para que a informao seja obtida. Exemplos: Fornecimento: entre as entidades FORNECEDOR e MATERIAL Matrcula: entre as entidades ALUNO e DISCIPLINA Financiamento: entre as entidades PROJETO e AGENTE FINANCEIRO No DER, os relacionamentos so representados por losangos, ligados s entidades que participam do relacionamento. DEPARTAMENTO LOTA O PESSOA

Diagrama de ocorrncias de relacionamentos:

A) AUTO-RELACIONAMENTO Relacionamento entre ocorrncias da mesma entidade. PESSOA marido CASAMENT O esposa

Unibratec- Ensino Superior e Tcnico em Informtica - 19

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Diagrama de ocorrncias no auto-relacionamento:

O papel da entidade no relacionamento indica a funo que uma ocorrncia de uma entidade cumpre em uma ocorrncia de um relacionamento. B) CARDINALIDADE DE RELACIONAMENTOS A cardinalidade de uma entidade em um relacionamento expressa o nmero de instncias da entidade que podem ser associadas a uma determinada instncia da entidade relacionada. Devem ser consideradas duas cardinalidades: Cardinalidade mnima de uma entidade o nmero mnimo de instncias da entidade associada que devem se relacionar com uma instncia da entidade em questo. Cardinalidade mxima de uma entidade o nmero mximo de instncias da entidade associada que devem se relacionar com uma instncia da entidade em questo. C) CARDINALIDADE MXIMA No projeto para BD relacional (como neste curso) no necessrio distinguir as cardinalidades que sejam maiores que 1. Assim, so usados apenas as cardinalidades mximas 1 e n (muitos).

Unibratec- Ensino Superior e Tcnico em Informtica - 20

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

D) CLASSIFICAO DE RELACIONAMENTOS BINRIOS A cardinalidade mxima usada para classificar os relacionamentos binrios (aqueles que envolvem duas entidades). Relacionamentos 1:1 (um-para-um)

Unibratec- Ensino Superior e Tcnico em Informtica - 21

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Relacionamentos 1:N (um-para-muitos)

Relacionamentos N:N (muitos-para-muitos)

E) RELACIONAMENTO TERNRIO o relacionamento formado pela associao de trs entidades

Unibratec- Ensino Superior e Tcnico em Informtica - 22

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Cardinalidade em relacionamentos ternrios:

F) CARDINALIDADE MNIMA A cardinalidade mnima usada para indicar o tipo de participao da entidade em um relacionamento. Esta participao pode ser: Parcial ou Opcional: quando uma ocorrncia da entidade pode ou no participar de determinado relacionamento; indicado pela cardinalidade mnima = 0 (zero). Total ou Obrigatria: quando todas as ocorrncias de uma entidade devem participar de determinado relacionamento; indicado pela cardinalidade mnima > 0 (zero). Exemplos: CLIENTE 1 REALIZA N PEDIDO

Um cliente pode fazer pedidos ou no, mas todos os pedidos devem estar associados a um cliente. DEPTO 1 ALOCA N EMPREGADO

Todos os departamentos devem possuir pelo menos um empregado alocado, e todos os empregados devem estar alocados em um departamento.

DEPTO

1 10

ALOCA

EMPREGADO

Parcialidade mnima: para um departamento ser criado, devem existem pelo menos 10 empregados alocados.
Unibratec- Ensino Superior e Tcnico em Informtica - 23

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

NOTAES ALTERNATIVAS Notao Heuser: semntica associativa (1,1 DEPTO ALOCA (0,N) EMPREGADO

Notao Santucci/MERISE: semntica participativa (0,N) (1,1)

DEPTO

ALOCA

EMPREGADO

Notao Setzer: semntica associativa 1 DEPTO ALOCA N

EMPREGADO

ATRIBUTO um dado que associado a cada ocorrncia de uma entidade ou relacionamento. Os atributos no possuem existncia prpria ou independente - esto sempre associados a uma entidade ou relacionamento. Como exemplo temos: Funcionrio: Matrcula, Nome, Endereo Material: Cdigo, Descrio Financiamento: Valor total, Meses Fornecedor: Nome, Endereo

DOMNIO o conjunto de valores vlidos que um atributo pode assumir. Ex: Estado civil: solteiro, casado, divorciado, vivo

Unibratec- Ensino Superior e Tcnico em Informtica - 24

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

TIPOS DE ATRIBUTOS Opcional/Mandatrio Opcional: o atributo pode possuir um valor nulo (vazio). Ex: nmero de telefone Mandatrio: o atributo deve possuir um valor vlido, no nulo. Ex: nome do cliente Monovalorado/Multivalorado Monovalorado: o atributo assume um nico valor dentro do domnio. Ex: data de nascimento Multivalorado: o atributo pode assumir um nmero qualquer de valores dentro do domnio. Ex: Telefone para contato Atmico/Composto Atmico: o atributo no pode ser decomposto em outros atributos. Ex: Idade Composto: o atributo composto por mais de um atributo. Ex: Endereo

ATRIBUTO DE RELACIONAMNETO Assim como as entidades, os relacionamentos tambm podem possuir atributos.

IDENTIFICADOR DE ENTIDADES Conjunto de atributos que tem a propriedade de identificar univocamente cada ocorrncia de uma entidade, e toda entidade deve possuir um identificador. O identificador deve ser mnimo, nico, monovalorado e mandatrio.

Unibratec- Ensino Superior e Tcnico em Informtica - 25

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

RELACIONAMENTO IDENTIFICADOR (ENTIDADE FRACA) Existem casos em que uma entidade no pode ser identificada apenas com seus prprios atributos, mas necessita de atributos de outras entidades com as quais se relaciona. Este relacionamento denominado Relacionamento Identificador. Alguns autores denominam uma entidade nesta situao de Entidade Fraca.

IDENTIFICADOR DE RELACIONAMENTOS Uma ocorrncia de relacionamento diferencia-se das demais pelas ocorrncias das entidades que participam do relacionamento. No exemplo

No exemplo, uma ocorrncia de ALOCAO identificada pela ocorrncia de Engenheiro e pela ocorrncia de Projeto. Ou seja, para cada par (engenheiro, projeto) h no mximo um relacionamento de alocao. Em certos casos, ser necessrio o uso de atributos identificadores de relacionamentos. Por exemplo:

Como o mesmo mdico pode consultar o mesmo paciente em diversas ocasies, necessrio o uso de um atributo que diferencie uma consulta da outra. GENERALIZAO / ESPECIALIZAO A generalizao um processo de abstrao em que vrios tipos de entidade so agrupados em uma nica entidade genrica, que mantm as propriedades comuns A especializao o processo inverso, ou seja, novas entidades especializadas so criadas, com atributos que acrescentam detalhes entidade genrica existente A entidade genrica denominada superclasse e as entidades especializadas so as subclasses. A superclasse armazena os dados gerais de uma entidade, as subclasses armazenam os dados particulares
Unibratec- Ensino Superior e Tcnico em Informtica - 26

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Este conceito est associado idia de herana de propriedades. Isto significa que as subclasses possuem, alm de seus prprios atributos, os atributos da superclasse correspondente. Usada quando necessrio caracterizar entidades com atributos prprios ou participao em relacionamentos especficos

Uma generalizao/especializao pode ser total ou parcial: total quando, para cada ocorrncia da entidade genrica, existe sempre uma ocorrncia em uma das entidades especializadas. parcial quando nem toda ocorrncia da entidade genrica possui uma ocorrncia correspondente em uma entidade especializada.

Unibratec- Ensino Superior e Tcnico em Informtica - 27

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

ENTIDADE ASSOCIATIVA (AGREGAO) O uso desta abstrao necessrio quando um relacionamento deve ser representado como uma entidade no modelo conceitual. Isto ocorre quando necessrio estabelecer um relacionamento entre uma entidade e um relacionamento. Para atender a esta situao foi criado o conceito de Entidade Associativa ou Agregao. A agregao simplesmente um relacionamento que passa a ser tratado como entidade. Considerando o exemplo

Se for necessrio adicionar a informao que, a cada consulta um ou mais medicamentos podem ser prescritos ao paciente, ser necessrio criar uma nova entidade (MEDICAMENTO). Esta entidade deve se relacionar com as consultas, mas CONSULTA um relacionamento. Deve ser criada ento uma entidade associativa.

Outra forma alternativa de se representar a entidade associativa

Unibratec- Ensino Superior e Tcnico em Informtica - 28

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

RELACIONAMENTO MUTUAMENTE EXCLUSIVO Neste tipo de relacionamento uma ocorrncia de um entidade pode estar associada com ocorrncias de outras entidades, mas no simultaneamente. TRANSPORTE

AVIO

CARGA

TRANSPORTE

PASSAGEIRO RESTRIO DE PERSISTNCIA NO RELACIONAMENTO Um relacionamento persistente quando, depois de criado, ele no puder ser removido indiretamente pela remoo de uma ocorrncia de uma das entidades associadas. 1 ALUNO N LIVRO

EMPRSTIMO

ESQUEMA TEXTUAL DO MER Um esquema ER pode ser um texto. Abaixo definida uma sintaxe para uma linguagem textual para definio de esquemas ER. Nesta sintaxe, so usadas as seguintes convenes: colchetes indicam opcionalidade, o sufixo LISTA denota uma seqncia de elementos separados por vrgulas e o sufixo NOME denota os identificadores.
ESQUEMA Esquema: ESQUEMA_NOME SEO_ENTIDADE SEO_GENERALIZAO SEO_AGREGAO SEO_RELACIONAMENTO

SEO_ENTIDADE (DECL_ENT) DECL_ENT Entidade: ENTIDADE_NOME {SEO_ATRIBUTO} {SEO_IDENTIFICADOR} SEO_ATRIBUTO Atributos: {DECL_ATRIB} DECL_ATRIB [(MIN_CARD, MAX_CARD)] ATRIBUTO_NOME [: DECL_TIPO] MIN_CARD 0 | 1 MAX_CARD 1 | N DECL_TIPO inteiro|real|boolean|texto(inteiro)|enum(LISTA_VALORES)|data
Unibratec- Ensino Superior e Tcnico em Informtica - 29

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

SEO_IDENTIFICADOR Identificadores: {DECL_IDENT} DECL_IDENT (IDENTIFICADOR) IDENTIFICADOR ATRIBUTO_NOME SEO_GENERALIZAO {DECL_HIERARQUIA_GEN} DECL_HIERARQUIA_GEN Generalizao[(CORBERTURA)]; NOME_GEN PAI: NOME_ENTIDADE FILHO: LISTA_NOME_ENTIDADE COBERTURA t | p SEO_AGREGAO {DECL_ENT_ASSOC} DECL_ENT_ASSOC EntidadeAssociativa: NOME_RELACIONAMENTO SEO_RELACIONAMENTO {DECL_RELACIONAMENTO} DECL_RELACIONAMENTO Relacionamento: NOME_RELACIONAMENTO Entidades: {DECL_ENT-RELACIONADA} [ Atributos: {DECL_ATRIB} ] [ Identificadores: {DECL_IDENT}] DECL_ENT-RELACIONADA [(MIN_CARD,MAX_CARD)] NOME_ENTIDADE

Exemplo:
Esquema: EMPRESA Entidade: DEPARTAMENTO Atributos: cdigo: inteiro; Nome: texto(20); Ativo: boolean; Identificador: cdigo EMPREGADO Atributos:

Entidade:

matrcula: inteiro; Nome: texto(50); DataNasc : data; Identificador: matrcula

Relacionamento: ALOCA Entidades: (0,N) DEPARTAMENTO (1,1) EMPREGADO

Unibratec- Ensino Superior e Tcnico em Informtica - 30

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

HISTRICO E VISO GERAL DA LINGUAGEM DE CONSULTA SQL


SQL (Strutured Query Language Linguagem Estruturada de Consulta) a formao de seu nome caracteriza sua finalidade. No uma linguagem especificamente criada para desenvolver sistemas, como so as linguagens de programao: PASCAL,C,DELPHI, entre outras. to somente uma linguagem utilizada para facilitar o acesso de informaes (por meio de consultas, atualizaes e manipulaes de dados) armazenadas em bancos de dados do tipo relacional. A linguagem de consulta estruturada SQL composta por dois grupos de instrues utilizadas no processo de administrao e controle de bancos de dados, sendo: DDL (Data Definition Language Linguagem de Definio de Dados) e DML (Data Manipulation Language Linguagem de Manipulao de Dados), descritos em seguida: As instrues do tipo DDL( Data Definition Language) permitem efetuar a criao das estruturas de tabelas, ndices e bancos de dados como um todo. Permitem tambm efetuar alteraes nas estruturas criadas, bem como remover estruturas existentes. Neste grupo esto as instrues: CREATE TABLE, DROP TABLE, ALTER TABLE, CREATE INDEX e DROP INDEX. As instrues do tipo DML( Data Manipulation Language) permitem efetuar a manipulao dos dados que estejam armazenados nas tabelas de um determinado banco de dados. Desta forma possvel cadastrar, alterar e excluir registros existentes. Neste grupo encontram-se as instrues: INSERT, SELECT, UPDATE e DELETE. De todos os comandos existentes , o comando SELECT o mais importante e utilizado, pois com ele que se obtm a extrao de listas de informao. Os comandos do tipo DML possuem uma grande variedade de aplicao. Para que isto ocorra, eles operam com um grande conjunto de clusulas (FROM, WHERE, GROUP BY, HAVING e ORDER BY) predefinidas que permitem efetuar a aplicao de condies que alteram a forma de funcionamento. SQL uma linguagem de Quarta gerao muito poderosa, porque com poucas instrues possvel fazer acessos informao de bancos de dados. Ao passo que, se esses acessos forem feitos com uma linguagem de terceira gerao, como C e PASCAL ou mesmo linguagens de macrocomandos como CLIPPER, obrigariam a escrever muitas vezes algumas pginas de programas. Devido a esta caracterstica operacional, a linguagem de consulta estruturada SQL ganhou grande espao, e utilizada atualmente como linguagem padro de acesso a bases de dados dos variados distribuidores de software para esta rea. CONCEITOS BSICOS Banco de Dados est associado ao conjunto de tabelas (ou arquivos, dependendo do banco de dados em uso) existente para a administrao de um determinado evento do mundo real . SGBD ( Sistema de Gerenciamento de Banco de Dados) est relacionado ao software (ferramenta) que possibilita a facilidade de gerenciar as funes de edio, consulta, controle e remoo de registros ou tabelas de um banco de dados
Unibratec- Ensino Superior e Tcnico em Informtica - 31

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Chave Primria Seu conceito est associado ao campo ou conjunto de campos de uma tabela que possuir um nico valor, que no ser repetido para nenhum outro registro. Como exemplo desta situao podem-se considerar os nmeros de CPF, CNPJ, RG ou qualquer cdigo de controle utilizado. Chave Estrangeira Caracteriza-se por ser uma chave de uma tabela que possui associao com a chave primria de uma outra tabela. Assim sendo, podem ocorrer trs situaes de utilizao de chave estrangeira: Relacionamento Um para Um A chave estrangeira pode ser criada em qualquer uma das tabelas; Relacionamento Um para Muitos A chave estrangeira pode ser criada apenas na tabela do lado muitos; Relacionamento Muitos para Muitos - A chave estrangeira deve ser criada numa terceira tabela que faa o relacionamento entre as outras duas tabelas. Integridade Referencial - um mecanismo utilizado que evita a quebra de ligao entre os relacionamentos estabelecidos entre tabelas. ACESSO AO GERENCIADOR DE BANCO DE DADOS INTERBASE O acesso ao Interbase ocorre com a utilizao do programa Interbase Console (Ibconsole) que uma ferramenta de interface grfica que facilita a administrao de Banco de dados neste ambiente. Com ele possvel efetuar a criao e manuteno de bancos de dados, testes de comunicao entre o cliente e o servidor e executar instrues SQL. Para iniciar a interface grfica Interbase Console, necessrio executar os comandos Iniciar/programas/Interbase/IBConsole, que ser apresentada a tela principal do programa, como mostra a figura abaixo.

Unibratec- Ensino Superior e Tcnico em Informtica - 32

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Aps o acesso tela principal necessrio ter acesso ao modo de administrao do Gerenciador de banco de dados. Isto feito com a identificao do nome e senha do usurio ativo. Para entrar, selecione no lado esquerdo da tela o cone Local Server (ou talvez esteja Remote Server) situado abaixo do cone Interbase Server com um duplo-clique. Ao ser apresentada a caixa de dilogo Server Login, informe o nome de acesso no campo User Name (SYSDBA(maisculo)) e a senha ( masterkey(minsculo) no campo Password, como mostra a figura abaixo:

Aps selecionar o boto Login da caixa de dilogo, perceba que o cone Local Server muda sua aparncia, passando a possuir um sinal de tique em tom verde, indicando assim a liberao do sistema. COMO FECHAR O AMBIENTE DE TRABALHO Para Fechar e Sair do ambiente de trabalho, o ideal primeiro fechar o servidor do banco de dados com o comando Server/ Logout, para ento executar o comando Console / Exit. CRIAO DO BANCO DE DADOS Na criao de um Banco de Dados o Interbase cria um banco de dados na forma de um nico arquivo, o qual conter todos os elementos de formao do banco de dados agregados. Para criar um banco de dados no Interbase proceda da seguinte maneira: Menu Database comando CREATE DATABASE
CREATE DATABASE Nome_Banco

Em que a indicao nome deve ser substituda pelo nome do banco de dados a ser criado. Aparecer a caixa de dilogo Create Database; Fornea para o campo alias o apelido de referncia ao arquivo de trabalho:
teste
Unibratec- Ensino Superior e Tcnico em Informtica - 33

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Para o campo filename(s) fornea o local e o nome do arquivo:


c:\meus documentos\teste

Aps preencher os dados na caixa de dilogo, clique em OK. O banco de dados teste foi criado na forma de um arquivo dentro do diretrio (pasta) meus documentos. Para trabalhar com o banco de dados, necessrio mant-lo selecionado. Algumas das propriedades para um Banco Interbase so: PAGE SIZE O valor default (padro) para essa propriedade 1024 bytes (1K), podendo ser: 2048,4096 ou 8192. Esta propriedade define o tamanho das pginas de dados(blocos) que sero utilizadas fetchs (I/O Operaes de leitura e escrita em disco). relativamente importante ajustar esta propriedade para um fator adequado banda da rede, assim como coerentemente com o tamanho de cluster do sistema de arquivos do Hard-Disk do equipamento sob o qual o arquivo residir, , pois este um dos fatores de performance para o Interbase. DEFAULT CHARACTER SET Esta propriedade, que no Interbase tem tambm alcance de tabelas e at mesmo de colunas, define qual o conjunto de caracteres (character set) suportado em dados do tipo CHAR, VARCHAR e BLOB, e tambm qual o collation order (tabela que define a ordem de classificao dos caracteres de um determinado character set). O character set default, tanto para um banco de dados, tabelas e colunas de tabelas, no Interbase NONE, o que faz com que o Interbase armazene um dado string, exatamente como voc o est entregando. SQL DIALECT O Dialeto 1 (Dialect 1) garante compatibilidade com bases de dados criadas com verses anteriores. O Dialeto 2 (Dialect 2) apenas um modo de diagnstico e provavelmente voc no precisar utiliza-lo. O Dialeto 3 (Dialect 3) permite acesso total s novas caractersticas do banco. REMOO DO BANCO DE DADOS A remoo de banco de dados em SQL faz-se normalmente com a utilizao do comando DROP DATABASE, seguido do nome do banco de dados. No caso do programa Interbase est ao conseguida com a utilizao dos comandos : Selecione o Banco de dados que ser excludo; No Menu Database/ comando Drop Database; Em seguida solicitada a confirmao da excluso com a caixa de mensagem Confirm; A partir deste momento, o banco de dados foi removido do diretrio . A CRIAO DE TABELAS NO INTERBASE As tabelas so os componentes mais importantes para a efetivao do trabalho de manuteno dos bancos de dados, pois nas tabelas so inseridos os registros. A criao de tabelas em SQL se faz com a utilizao do comando CREATE TABLE, seguido do nome da tabela, bem como de outros parmetros para a determinao de sua estrutura. A sintaxe padro pode ser:

Unibratec- Ensino Superior e Tcnico em Informtica - 34

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

CREATE TABLE Nome da-Tabela ( nome-do-campo tipo-do-campo NULL/NOT NULL, nome-do-campo tipo-do-campo, nome-do-campo tipo-do-campo, primary key (nome-do-campo que chave primria));

CRIANDO TABELA COM CHAVE ESTRANGEIRA ( FOREIGN KEY - FK)


CREATE TABLE Nome-da-tabela ( nome-do-campo tipo-do-campo NULL/NOT NULL, nome-do-campo tipo-do-campo, nome-do-campo tipo-do-campo, primary key (nome-do-campo ), nome-do-campo tipo-do-campo ,* que chave estrangeira * Foreign Key (nome-do-campo) references (nome-tabela-da-chave-estrangeira)(nome_do_campo));

CRIANDO TABELA ASSOCIATIVA


CREATE TABLE Nome_da_tabela ( Nome_do_campo tipo_do_campo NULL/NOT NULL, Nome_do_campo tipo_do_campo (FK), Nome_do_campo tipo_do_campo (FK), Primary Key (Nome_do_campo, nome_do_campo), Foreign Key (Nome_do_campo) references nome_da_tabela FK(nome_do_campo FK), Foreign Key (nome_do_campo) references nome_da_tabela FK (nome_do_campo FK));

Sendo: Nome_da_tabela a definio do nome da tabela a ser criada; Nome_do_campo o nome do campo a ser definido; Tipo_do_campo indica o tipo do campo; NULL ou NOT NULL a definio do campo em aceitar ou no valores nulos; PRIMARY KEY determina que o campo a chave primria da tabela; FOREIGN KEY determina que o campo a chave estrangeira; Nome_tabela_da_chave_estrangeira determina a tabela Foreign Key
1 N

FUNCIONARIO

DEPENDENTES

Matr_Func

Nome

Dept

Funo

Cod_Dep

Matr_Func

Nome

Salario Dt_Nasc

Sex o

CREATE TABLE CadFun ( MatrFunc INTEGER NOT NULL PRIMARY KEY, Nome CHAR(40) NOT NULL, Dept CHAR(2), Funcao CHAR(20), Salario DECIMAL(10,2));

Unibratec- Ensino Superior e Tcnico em Informtica - 35

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

COM CHAVE ESTRANGEIRA


CREATE TABLE DepFun( CodDep INTEGER NOT NULL, Nome CHAR(40), Sexo CHAR(8), DataNasc DATE, MatrFunc INTEGER NOT NULL, * Campo-chave-estrangeira* PRIMARY KEY (CodDep), FOREIGN KEY (CodFun) references CadFun(CodFun));

COM TABELA ASSOCIATIVA


CREATE TABLE Leciona( Matrprof INTEGER NOT NULL, CodTurma INTEGER NOT NULL, PRIMARY KEY (CodTurma,MatrProf), FOREIGN KEY (CodTurma) REFERENCES Turma(CodTurma), FOREIGN KEY (Matrprof) REFERENCES Professor(Matrprof));

TIPOS DE DADOS
O TIPO NUMRICO Pode ser utilizado no tratamento de valores numricos inteiros ou reais. Esto disponveis os seguintes tipos: SMALLINT [(tamanho)] Utiliza-se este tipo de dado quando houver a necessidade de fazer uso de valores inteiros curtos entre a faixa de valores de 32.768 at 32.767. O parmetro tamanho opcional e permite estabelecer o tamanho mximo do valor a ser exibido, podendo ser um valor mximo 255; INTEGER [(tamanho)] Utiliza-se este tipo de dado quando houver a necessidade de fazer uso de valores inteiros longos entre a faixa de valores de 2.147.483.648 at 2.147.483.647. O parmetro tamanho opcional e permite estabelecer o tamanho mximo do valor a ser exibido, podendo ser um valor mximo 255; FLOAT Utiliza-se este tipo de dado quando houver a necessidade de fazer uso de valores com ponto flutuante com sete dgitos de preciso decimais. Este tipo permite trabalhar com valores na faixa de 3,4 * 10-38 at 3,4 * 1038 ; DECIMAL [(tamanho[,decimal])] Utiliza-se este tipo de dado quando houver a necessidade de fazer uso de valores com ponto flutuante. O parmetro tamanho opcional e permite estabelecer o tamanho mximo do valor a ser exibido, podendo ser um valor mximo 255. Se omitido, o tamanho assumido 10. O parmetro opcional decimal permite estabelecer o tamanho mximo de casas decimais a ser exibido, podendo, ser um valor mximo de 30; NUMERIC [(tamanho[,decimal])] Utiliza-se este tipo de dado quando houver a necessidade de fazer uso de valores com ponto flutuante, sendo semelhante ao tipo DECIMAL; DOUBLE PRECISION [(tamanho.decimal)] Utiliza-se este tipo de dado quando houver a necessidade de fazer uso de valores com ponto de dupla preciso. O parmetro tamanho deve estar entre 25 e 53 para estabelecer o tamanho mximo. O parmetro opcional decima permite estabelecer o tamanho mximo de casas decimais a ser exibido, podendo ser um valor mximo de 30.
Unibratec- Ensino Superior e Tcnico em Informtica - 36

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

O TIPO TEMPORAL Pode ser utilizado no tratamento de valores relacionados a data e horrio. Esto disponveis os seguintes tipos: DATE Utiliza-se este tipo de dado quando houver a necessidade de fazer uso de uma data de calendrio no formato AAAA-MM-DD (formato ANSI). O intervalo aceito depende da ferramenta de gerenciamento de banco de dados em uso. TIME Utiliza-se este tipo de dado quando houver a necessidade de fazer uso de uma informao relacionada a um determinado horrio. O TIPO LITERAL O Tipo Literal pode ser para a recepo de valores baseados em cadeias de caracteres (strings - dados alfanumricos delimitados por aspas ou apstrofos). Esto disponveis os seguintes tipos: CHAR (tamanho) Utiliza-se este tipo de dado quando houver a necessidade de fazer uso de seqncias de caracteres de tamanho fixo que estejam limitadas at 255 caracteres de comprimento. O parmetro tamanho determina o valor mximo em caracteres que pode conter a seqncia; VARCHAR (tamanho) Utiliza-se este tipo de dado quando houver a necessidade de fazer uso de seqncias de caracteres de tamanho varivel que estejam limitadas at 255 caracteres de comprimento. A diferena entre este tipo e o CHAR que neste caso, os espaos em branco excedentes do lado direito da seqncia de caracteres no utilizados so automaticamente desprezados. O parmetro tamanho determina o valor mximo em caracteres que pode conter a seqncia .

TABELA COM SQL


CRIAR UMA TABELA Para que a tabela seja devidamente criada no seu gerenciador de banco de dados, necessrio seguir a sua forma padro de acesso: Com o Banco de dados criado e ativo, execute o Menu Tool comando Interactive SQL, que apresentar a tela de acesso execuo dos comandos SQL como mostra a figura abaixo.

Unibratec- Ensino Superior e Tcnico em Informtica - 37

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Depois da criao de tabela Execute no Menu Query o comando Execute ou na Barra de Ferramentas padro clique em Execute Query EXCLUIR UMA TABELA Uma tabela pode ser apagada utilizando o comando DROP TABLE SINTAXE:
DROP TABLE NOME DA TABELA; DROP TABLE TESTE;

INSERO DE REGISTROS A partir do momento em que uma tabela est criada, ela j pode receber a entrada de dados. Para isto usamos o seguinte comando: SINTAXE:
INSERT INTO tabela (campo,campo,....,campo) VALUES (valor,valor,....,valor); INSERT INTO cadfun (CodFun,Nome,Dept,funcao,Salario) VALUES (15, MARCOS HENRIQUE,2,GERENTE,1985,75);

O comando de insero de registros bem trabalhoso, pois s deve-se inserir um aps o outro executando o comando Execute Query; Os valores do tipo CHAR ficam definidos entre apstrofos; A entrada de dados baseada em caracteres deve ser efetuada com caracteres em maisculo e sem acentuao, pois se algum acento for utilizado, pode criar problemas no momento de uma pesquisa com uma palavra idntica que no possua acento.
Unibratec- Ensino Superior e Tcnico em Informtica - 38

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Observaes importantes: NOT NULL Os atributos que os contm, devero apresentar um valor qualquer em determinado instante. Ou seja, as colunas nunca podero estar vazias. A chave primria Sempre deve ser definida como NOT NULL, ou Interbase rejeitar a instruo com uma mensagem de erro. LISTAGEM DE REGISTROS Para extrair listagens de registros de uma tabela necessrio utilizar o comando SELECT com alguns parmetros.A sintaxe deste comando baseia-se na seguinte estrutura bsica:
SELECT TIPO CAMPOS FROM TABELA CONDIO;

Onde: TIPO - Parmetro opcional que possibilita determinar o tipo de registro a ser selecionado, que pode ser: DISTINCT Suprime as linhas duplicadas
SELECT DISTINCT SEXO FROM DEPENDENTES;

Se houver registros repetidos no sero visualizados. O comando DISTINCT suprime apenas linhas duplicadas e no valores duplicados. ALL - Todos os registros sero visualizados.
SELECT * FROM DEPENDENTES;

CAMPOS - a lista de campos a serem selecionados podendo ser utilizado o valor (asterisco) representando todos os campos da tabela.
SELECT * FROM CADFUN; SELECT ADMISSAO,SEXO FROM DEPENDENTES;

TABELA a indicao da tabela ou tabelas de onde se deseja efetuar a visualizao dos registros.
SELECT * FROM CADFUN,DEPENDENTES;

CONDIO - Caracteriza-se por ser um parmetro opcional que determina a condio de ao de pesquisa, sendo aceito os valores: WHERE - Determina o critrio de seleo dos registros nas tabelas especificadas.
SELECT NOME_FUNCIONARIO,ADMISSAO FROM FUNCIONARIO WHERE NOME_FUNCIONARIO = Vanete Dias;

GROUP BY - Determina o agrupamento de informaes para atender a consulta.


Unibratec- Ensino Superior e Tcnico em Informtica - 39

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

SELECT NOME_DEPENDENTE,CODIGO_FUNCIONARIO FROM DEPENDENTE GROUP BY NOME_DEPENDENTE,CODIGO_DEPENDENTE;

Nesta pesquisa se houver registro repetido, ou seja, igual no ser apresentado na listagem. ORDER BY - Determina a forma de ordenao dos registros podendo ser ASC ASCENDENTE e DESC DESCENDENTE.
SELECT NOME_FUNCIONARIO FROM FUNCIONARIO ORDER BY NOME_FUNCIONARIO ASC SELECT CODIGO_FUNCIONARIO, ADMISSAO FROM FUNCIONARIO ORDER BY CODIGO_FUNCIONARIO DESC; SELECT CODIGO_FUNCIONARIO,DEPT FROM FUNCIONARIO WHERE DEPT = INFO ORDER BY CODIGO_FUNCIONARIO

FUNES AGREGADAS COUNT - Retorna a quantidade de registros existentes no campo especificado. Quando a opo * (asterisco) utilizada o resultado a quantidade de registros existentes. Quando referenciado o nome de um campo retorna a quantidade de valores existentes na coluna.
SELECT COUNT (*) MATR FUNCIONARIO FROM DEPENDENTES; SELECT COUNT(MATRFUNCIONARIO), COUNT(CODDEP) FROM DEPENDENTES; SELECT COUNT(*) FROM cadfun WHERE Dept = 3; SELECT COUNT(DISTINCT Dept) FROM cadfun

SUM - Retorna a soma dos valores existentes no campo especificado. Quando a opo DISTINCT utilizada so consideradas apenas os diferentes valores existentes no campo.
SELECT SUM(MATRFUNCIONARIO) FROM DEPENDENTES; SELECT SUM(MATRFUNCIONARIO), SUM(CODDEP) FROM DEPENDENTES; SELECT SUM(salario) FROM cadfun SELECT SUM(salario) FROM cadfun WHERE Dept = 5;

AVG - Retorna a mdia dos valores existentes no campo especificado. Quando a opo DISTINCT utilizada so consideradas apenas os diferentes valores existentes no campo
SELECT AVG(CODDEP) FROM DEPENDENTES; SELECT AVG(MATRFUNCIONARIO), AVG(CODEDEP) FROM DEPENDENTES;
Unibratec- Ensino Superior e Tcnico em Informtica - 40

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

SELECT AVG(salario) FROM cadfun WHERE Dept 3;

MAX - Retorna o maior valor existente no campo especificado. MIN - Retorna o menor valor existente no campo especificado.
SELECT MIN(MATRFUNCIONARIO), MAX(MATRFUNCIONARIO) FROM DEPENDENTES; SELECT MAX(salario) FROM cadfun SELECT MIN(salario) FROM cadfun

ALTERAO DE REGISTROS No processo de manuteno de registros em bancos de dados necessrio periodicamente atualizar ou inserir dados e informaes existentes. Ento utilizaremos o comando UPDATE com a seguinte sintaxe:
UPDATE NOME-TABELA SET CAMPO = EXPRESSO CONDIO;

Onde: NOME-TABELA - registros; a indicao da tabela em que se deseja efetuar a atualizao dos

CAMPO - a indicao de um campo da tabela; EXPRESSO - a indicao do valor do campo a ser atualizado; CONDIO - Caracteriza-se por ser um parmetro opcional que determina a condio de ao da pesquisa baseada no argumento WHERE Aqui onde o Departamento INFO passar para PROTOCOL:
UPDATE FUNCIONARIO SET DEP = PROTOCOL WHERE DEP = INFO;

Aqui mudaremos o Nome funcionrio Jnior para Francisco Jnior:


UPDATE FUNCIONARIO SET NOME_FUNCIONARIO JUNIOR NOME_FUNCIONARIO = FRANCISCO JUNIOR WHERE

Aqui mudaremos a data de admisso do funcionrio 001:


UPDATE FUNCIONARIO SET ADMISSAO = 03/31/1980 WHERE CODIGO_FUNCIONARIO = 001;

Inserir a data de admisso onde o Cdigo do funcionrio = 3:


UPDATE CADFUN SET ADMISSAO = 03/12/2002 WHERE CODFUN = 3;

Unibratec- Ensino Superior e Tcnico em Informtica - 41

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

REMOO DE REGISTROS Para remoo de registros utilizamos o comando DELETE, que possui a seguinte sintaxe:
DELETE FROM NOME-DA-TABELA CONDIO;

Onde: TABELA - a indicao da tabela que se deseja efetuar a remoo de registros; CONDIO - Caracteriza-se por ser um parmetro opcional que determina a condio de ao da pesquisa baseada no argumento WHERE. De todos os comandos existentes em SQL, este o mais delicado e perigoso, pois se acionado de forma inadequada, pode ocasionar alguns bons prejuzos. Aqui ocorrer a remoo de todos os registros da tabela funcionrio:
DELETE FROM FUNCIONARIO;

Todos os funcionrios que possurem a matricula 2 sero removidos:


DELETE FROM FUNCIONARIO WHERE MATR_FUNCIONARIO = 2

MODIFICAO DA ESTRUTURA DE UMA TABELA A Estrutura de uma tabela algo que pode ser modificado com o tempo, devido a alguma necessidade especfica. Existe uma grande possibilidade de precisar incluir um determinado campo, retir-lo ou at mesmo modificar a sua estrutura. Para isto usaremos ento o seguinte comando:
ALTER TABLE <tabela> <operao>;

Em que: Tabela - a indicao da tabela em que se deseja efetuar a alterao de registros; Operao - Caracteriza-se por ser um parmetro que pode receber um dos seguintes valores: ADD <campo> <tipo> - Utiliza-se este valor quando da necessidade de insero de um novo campo em uma determinada tabela. O parmetro campo representa o nome do novo campo e tipo a sua estrutura (INTEGER, DECIMAL, CHAR, VARCHAR, etc); DROP <campo> - Utiliza-se este valor quando da necessidade de remover um campo de uma determinada tabela. O parmetro campo representa o nome do campo a ser retirado da tabela.
ALTER TABLE cadfun ADD admissao DATE;

Com este comando ser inserido o campo Admissao na tabela cadfun. O novo campo conter o valor NULL (vazio). Use o comando UPDATE para atualizar a tabela com as datas de admisso:
Unibratec- Ensino Superior e Tcnico em Informtica - 42

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

UPDATE cadfun SET admissao = ' 1999-10-21' WHERE matrfunc = 3 ALTER TABLE turma DROP horario;

Aqui ser excludo o campo horario na tabela turma OPERADORES ARITMTICOS Os operadores aritmticos so responsveis pela execuo de operaes matemticas simples, que venham a efetuar adio, subtrao, multiplicao e diviso. Operador + * / Descrio Efetua adio Efetua subtrao Efetua multiplicao Efetua diviso

Pode-se utilizar o comando SELECT para selecionar registros em que a condio est sendo fornecida com um clculo. Por exemplo, apresentar os registros dos funcionrios que ganham acima de 1.700,00 (valor do salrio) mais uma comisso de 50,00 (totalizando 1.750,00). Desta forma poderia ser executado o comando:
SELECT nome, salario FROM cadfun WHERE salario > 1700 + 50;

Os clculos podem ter sua prioridade matemtica alterada com a utilizao de parnteses. OPERADORES RELACIONAIS Os operadores relacionais so utilizados em condies em que h necessidade de efetuar comparao entre dois valores. Um operador relacional pode ser um dos seguintes tipos: Operador > < = <> >= <= Descrio Maior que Menor que Igual a Diferente de Maior ou igual a Menor ou igual a

SELECT * FROM cadfun WHERE dept = 5; SELECT * FROM cadfun WHERE funcao = vendedor; SELECT * FROM cadfun WHERE salario <= 1700;

Unibratec- Ensino Superior e Tcnico em Informtica - 43

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

OPERADORES LGICOS Existem ocasies em que necessrio trabalhar com o relacionamento de duas ou mais condies ao mesmo tempo, efetuando desta forma testes mltiplos. Para estes casos necessrio trabalhar com a utilizao dos operadores lgicos, tambm conhecidos como operadores booleanos. Um operador lgico pode ser: Operador AND OR NOT Descrio Operador de conjuno Operador de disjuno Operador de negao

O operador do tipo AND utilizado quando dois ou mais relacionamentos lgicos de uma determinada condio necessitam ser verdadeiros. Em seguida apresentada a tabelaverdade para este tipo de operador: Condio 1 Falsa Verdadeira Falsa Verdadeira Condio 2 Falso Falsa Verdadeira Verdadeira Resultado Falso Falso Falso Verdadeiro

O operador AND faz com que somente seja executada uma determinada operao se todas as condies mencionadas forem simultaneamente verdadeiras, gerando assim um resultado lgico verdadeiro.
SELECT * FROM cadfun WHERE (dept = 5) AND (funcao = vendedor);

Neste comando efetuado a apresentao dos dados de todos os funcionrios que pertenam ao departamento 5 e que sejam vendedores. O operador do tipo OR faz com que seja executada uma determinada operao se pelo menos uma das condies mencionadas gerar um resultado lgico verdadeiro.
SELECT * FROM cadfun WHERE (funcao = supervisora) OR (funcao = supervisor);

Aqui neste comando ele efetua a apresentao dos dados de todos os funcionrios que tenham a funo supervisora ou a funo de supervisor. O operador NOT utilizado quando se necessita estabelecer que uma determinada condio deve no ser verdadeira ou deve no ser falsa. O operador NOT se caracteriza por inverter o estado lgico de uma condio. Em seguida apresentada a tabela-verdade para este tipo de operador: Condio Verdadeira Falso Resultado Falso Verdadeira

O operador NOT faz com que seja executada uma determinada operao, invertendo o resultado lgico da condio.
Unibratec- Ensino Superior e Tcnico em Informtica - 44

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

SELECT * FROM cadfun WHERE NOT (funcao = vendedor);

Aqui o comando efetua a apresentao dos dados de todos os funcionrios que na sua funo no so vendedores (VENDEDOR) OPERADORES AUXILIARES DEFINIO DE INTERVALOS A definio de intervalos de valores para a clusula WHERE em uma condio pode ser obtida com BETWEEN, que possui a seguinte sintaxe:
<expresso> [NOT] BETWEEN <valor mnimo> AND <valor mximo>

Sendo: Expresso pode ser a definio de um campo, valor numrico, sequencia de caracteres, sendo que este parmetro serve para definir a efetivao da comparao; Valor mnimo a definio do menor valor da faixa de intervalo; Valor mximo a definio do maior valor da faixa de intervalo. O operador BETWEEN ... AND efetua a definio de uma condio baseada na expresso: <valor mnimo> <= <expresso> AND <expresso> <= <valor mximo>.
SELECT * FROM cadfun WHERE salario BETWEEN 1700 AND 2000

Neste exemplo efetuado a apresentao dos dados de todos os funcionrios que recebem salrios entre 1700 e 2000 VERIFICAO DE EXISTNCIA Algumas vezes no possvel definir um intervalo sequencial de valores. Nestes casos, junto clusula WHERE em uma condio, utiliza-se o operador IN que possui a seguinte sintaxe:
<expresso> [NOT] IN <valor1, valor2,valorN,....>

Em que: Expresso pode ser a definio de um campo, valor numrico, sequencia de caracteres, sendo que este parmetro serve para definir a efetivao da comparao; Valor1,valor2,valorN, so as definies do grupo de valores em que a expresso ser verificada. Caso a expresso analisada esteja dentro (IN) da sequencia de valores indicada, ser possvel executar a ao estabelecida antes da clusula WHERE.
SELECT * FROM cadfun WHERE funcao IN (VENDEDOR, VENDEDORA);
Unibratec- Ensino Superior e Tcnico em Informtica - 45

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

O exemplo acima efetua a apresentao dos dados de todos os funcionrios que ocupem a funo de vendedor ou vendedora VERIFICAO DE CARACTERES Para verificar sequencias de caracteres dentro de um determinado campo do tipo string (CHAR ou VARCHAR), pode-se utilizar junto a clusula WHERE uma condio baseada no uso do operador LIKE que possui a seguinte sintaxe:
<expresso> [NOT] LIKE <valor>

Em que: Expresso pode ser a definio de um campo, valor numrico, sequencia de caracteres, sendo que este parmetro serve para definir a efetivao da comparao; Valor a definio do que ser pesquisado; Caso a expresso analisada coincida com o valor indicado aps o operador LIKE, a ao estabelecida antes da clusula WHERE ser executada
SELECT * FROM cadfun WHERE nome LIKE A%;

O exemplo acima efetua a apresentao da listagem dos dados de todos os funcionrios cujo nome comece com a letra A. Note no exemplo o uso do caracter % (porcentagem) que representa um conjunto de caracteres que ser desconsiderado na sequencia avaliada.
SELECT * FROM cadfun WHERE nome LIKE _A%;

No exemplo acima efetuamos a apresentao da listagem dos dados de todos os funcionrios que possuam como Segunda letra de seus nomes a letra A. O caracter _ (underline) , representa um nico caracter na sequencia avaliada.
SELECT * FROM cadfun WHERE Nome LIKE %AN%;

No exemplo acima ser apresentado a listagem dos dados de todos os funcionrios que possuam a sequencia de caracteres AN em qualquer posio de seu nome; SE VAZIO Uma ocorrncia bastante til verificar a existncia de campos que possuam valores em branco ou no. Nestes casos, utiliza-se junto a clusula WHERE em uma condio o operador IS NULL que possui a seguinte sintaxe:
<expresso> IS [NOT] NULL

Unibratec- Ensino Superior e Tcnico em Informtica - 46

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Em que: Expresso pode ser a definio de um campo, valor numrico, sequencia de caracteres, sendo que este parmetro serve para definir a efetivao da comparao.
SELECT * FROM cadfun WHERE nome IS NULL;

No exemplo acima apresenta a listagem dos dados de todos os registros que tiverem o campo Nome gravado em branco, sem nenhum contedo. Caso no exista nenhum registro que atenda a este critrio, no ser apresentado nenhum registro. RELACIONAMENTO ENTRE TABELAS MLTIPLAS TABELAS Uma das grandes caractersticas de um sistema de banco de dados relacional a capacidade de interagir com mltiplas tabelas, como se elas fossem apenas uma. Para determinar o relacionamento entre tabelas, necessrio ter no mnimo duas tabelas que possuam entre si algum campo em comum. A obteno desta informao existente em tabelas relacionadas conseguida com o comando SELECT, que utiliza a seguinte sintaxe:
SELECT <tabela1.campo>, <tabela2.campo>, <...> FROM <tabela1>, <tabela2> WHERE tabela1.campo PK = tabela2.campo FK;

Onde: tabela1.campo - Ser o campo da primeira tabela a ser apresentado na extrao das informaes; tabela2.campo - Ser o campo da segunda tabela a ser apresentado na extrao das informaes; O campo da segunda tabela ser diferente do campo da primeira tabela e devem estar indicados na ordem em que se deseja v-los na extrao. tabela1 - Ser a indicao da primeira tabela a ser pesquisada; tabela2 - Ser a indicao da segunda tabela a ser pesquisada; A ordem de definio das tabelas no influencia na extrao das informaes. tabela.campo PK - Ser a tabela que contm o campo com chave primaria; tabela.campo FK - ser a tabela que contm o campo que a chave estrangeira, que chave primria na tabela1

Unibratec- Ensino Superior e Tcnico em Informtica - 47

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Exemplificando: Imagine a necessidade de obter uma listagem das duplicatas (tabela venda) existentes em cobrana e o nome (tabela cliente) dos clientes que esto com essas duplicatas:
SELECT venda.duplic, cliente.nome FROM cliente, venda WHERE cliente.codigo = venda.codigo ORDER BY cliente.nome;

Exemplos com informaes agrupadas:


SELECT cliente.nome, COUNT(*) FROM cliente, venda WHERE cliente.codigo = venda.codigo GROUP BY cliente.nome SELECT funcionario.matrfuncion, funcionario.nome, dependentes.nomedep FROM funcionario, dependentes WHERE funcionario.matr.funcion = dependentes.matr.funcion; SELECT funcionario.nomefuncion, COUNT(*) FROM funcionario , dependentes WHERE funcionario.matrfuncion = dependentes.matrfuncion GROUP BY funcionario.nomefuncion;

O BANCO DE DADOS IB EXPERT


Para que o banco seja devidamente criado no seu gerenciador de banco de dados, necessrio seguir a sua forma padro de acesso: Ative o Menu Database comando Create database , que apresentar a tela de acesso criao do banco como mostra a figura abaixo.

Onde: Database name - Escolha a pasta e o nome do banco; User name - Digite SYSDBA(maisculo);

Unibratec- Ensino Superior e Tcnico em Informtica - 48

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Password - Digite masterkey (minusculo) Database SQL Dialect Dialect 1 - Compatvel com verses antigas do Interbase Dialect 3 - Usa todos os recursos de verses Interbase Register After Creating - Ativo registra o Banco na sua criao Clicar OK para registrar o Banco. REGISTRANDO O BANCO

Database File - Clicar na pasta direita para procurar pelo banco e abri-lo; Database Alias - Dar um nome ao Banco; User Name - SYSDBA Password - masterkey Font Characters Set - Ansi_charset Always capitalize database names - Ativo todo o banco ser criado com letras Maisculas. CRIANDO TABELAS Siga o procedimento a seguir: Clique duplo no nome do Banco para ativa-lo;
Unibratec- Ensino Superior e Tcnico em Informtica - 49

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Ative o Menu Database e clique no comando New Table; aparecer a seguinte janela:

Onde: Ative a guia FIELDS New table name - Digite o nome da tabela; Observaes Importantes: O nome da tabela dever ser em letras maisculas; Nome composto no pode conter espaos. Turma Manh - errado Turma_Manh - correto Nomes de tabelas sempre no plural. ALUNOS, DEPENDENTES, FUNCIONRIOS; Nome de campos tambm no pode conter espaos. PK - Neste campo digitaremos o campo que Chave primria da tabela, ou chave concatenada . Adicione o campo chave com um clique duplo, ou a Barra de espao; Field name - Digite o nome do campo; Field Type - Selecione o tipo de campo para o campo; Domain - Fica em branco, pois, no criamos ainda o domnio; Length - Comprimento do campo, ou seja, o tamanho do campo.

Unibratec- Ensino Superior e Tcnico em Informtica - 50

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Depois do ltimo campo criado para a tabela, clique no comando compile para a compilao da tabela,

Se a tabela no contiver erros, clique no comando Commit para salva-la, se contiver erros clique Rollback para voltar tabela. CRIANDO FK EM TABELAS DO IB EXPERT Siga o procedimento abaixo: No campo PK no marcado quando se trata de Chave Estrangeira e chave secundria; Criamos o campo normalmente e ativamos a opo NOT NULL Ative a guia Constraints; Clique com o boto direito do mouse em qualquer espao vazio da janela, aparecer o menu de atalho, ento clique New Constraints;

Unibratec- Ensino Superior e Tcnico em Informtica - 51

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Ative a guia Foreign key onde teremos as seguintes opes: Foreign key Name: D um nome para a tabela que contm a chave estrangeira. FK_ALUNOS1; Fields for Foreign key - Contm todos os campos da tabela; Included Fields - Insira neste campo o primeiro campo FK; Foreign Table - Selecione a tabela que pertence o campo selecionado acima; Available Fields - Campos que pertencem a tabela Foreign key; Included Fields - Insira novamente o mesmo campo FK

Unibratec- Ensino Superior e Tcnico em Informtica - 52

Banco de Dados para Aplicativos Desktop


Ensino Superior e Tcnico em Informtica www.unibratec.com.br

Clique no comando Commit para confirmar a criao do campo FK, ou, comando Rollback, para voltar a janela; Observaes Importantes: Se a tabela contiver mais de uma FK, o processo de criao uma a uma por vez, dando nomes diferentes ao campo Foreign key name, Ex.: FK_ALUNOS2, FK_ALUNOS3, FK_ALUNOS4, sucessivamente. FECHANDO O BANCO DE DADOS Selecione o Menu Database; Clique no comando Disconnect from Database O comando Exit Fecha o IB Expert.

Unibratec- Ensino Superior e Tcnico em Informtica - 53

Potrebbero piacerti anche