Sie sind auf Seite 1von 89

CENTRO UNIVERSITRIO ASSUNO

UNIFAI

JAQUELINE LACERDA DOS SANTOS

Banco de Dados Sql

So Paulo
2003

JAQUELINE LACERDA DOS SANTOS

Banco de Dados Sql

Trabalho de Concluso de Curso apresentado


ao Curso de Cincias da Computao, para
obteno parcial do grau de Bacharel* em
Cincias da Computao.

ORIENTADOR: Prof. Ms. ANDR LUIZ GARCIA PEREIRA

So Paulo

2003

AGRADECIMENTOS

Primeiramente a Deus por estar sempre presente na minha vida, por me dar sade, inteligncia,
fora e coragem para enfrentar todos os obstculos.

Aos meus pais pela educao e apoio designado a mim por todos os anos de estudo.

Ao Prof. Ms. Andr Luiz Garcia Pereira pela ateno e colaborao no decorrer desta pesquisa,
sempre apresentado e observando os pontos de maior importncia.

RESUMO

Este trabalho tem como objetivo analisar as mudanas ocorridas nos ltimos anos em
relao tecnologia de Banco de Dados. A qual sofreu vrias mudanas, saindo de meras
relaes hierrquicas at chegar ao conceito de objetos. Atualmente as aplicaes requerem
objetos compostos com uma complexa estrutura interna, tendo um gerenciamento de
comportamentos que engloba mtodos associados a objetos e suas operaes, amplas regras de
negcios e longas transaes.
Estas necessidades, juntamente como conhecimento adquirido ao longo da utilizao da
tecnologia de armazenamento em computadores, leva-se a banco de dados sofisticados, at
mesmo orientado a objetos, que ao contrrio dos primeiros bancos de dados, que caracterizamse
por ter uma uniformidade, registros pequenos, campos de registros fixos e sem estrutura, entre
outras, caracteriza-se por seus conceitos de estrutura de objetos com seus atributos e mtodos,
hierarquia de classes, mltipla herana, identidade de objetos, etc.
Com as imposies de mercado juntamente com as evolues dos conceitos associados
tecnologia, tem-se a garantia de que sero seguidas as regras de negcio, trazendo para os tempos
atuais, uma maior facilidade em um nico objetivo: a integridade e a velocidade da informao.

SUMRIO
1

INTRODUO.................................................................................................... 12

CONCEITOS E DEFINIES DE BANCO DE DADOS.................................. 13

2.1

EXEMPLOS......................................................................................................... 15

2.2

HISTRICO......................................................................................................... 17

MODELOS DE BANCOS DE DADOS.............................................................. 19

3.1

MODELO HIERRQUICO................................................................................. 20

3.2

MODELO DE REDES......................................................................................... 21

3.3

MODELO RELACIONAL................................................................................... 22

3.4

AS TERMINOLOGIAS PRESENTES NO SGBD RELACIONAL................... 24

3.4.1

ARQUIVOS.......................................................................................................... 24

3.4.2

TABELAS............................................................................................................ 25

3.4.3

CAMPOS.............................................................................................................. 26

3.4.4

LINHAS................................................................................................................ 26

3.4.5

COLUNAS........................................................................................................... 26

3.4.6

REGISTROS......................................................................................................... 26

CHAVES............................................................................................................... 27

4.1

CHAVES PRIMRIA.......................................................................................... 28

4.2

CHAVE ESTRANGEIRA.................................................................................... 29

4.3

CHAVE ALTERNATIVA.................................................................................... 30

MODELO ENTIDADE RELACIONAL........................................................... 31

5.1

CONJUNTO DE ENTIDADES............................................................................ 31

5.2

CONJUNTO DE RELACIONAMENTO............................................................. 32

5.3

DIAGRAMA ENTIDADE RELACIONAMENTO.......................................... 33

5.3.1

ENTIDADES FRACAS E FORTES.................................................................... 35

ESTRUTURA DOS BANCOS DE DADOS RELACIONAIS............................ 36

6.1

ESTRUTURA BSICA....................................................................................... 37

O QUE SGBD ? ................................................................................................ 38

7.1

AS VANTAGENS E DESVANTAGENS DO USO DE UM SGBD.................. 40

7.2

QUANDO NO UTILIZAR UM SGBD............................................................. 41

PARA

QUE

GUARDAR

DADOS

NECESSIDADES

DE

ARMAZENAMENTO ) ? .................................................................................... 42
8.1

PRINCIPAIS OPERAES PARA ATUALIZAO DOS DADOS............... 43

NECESSIDADE DE UMA FERRAMENTA PARA ISSO SQL UMA


LINGUAGEM DE CONSULTA.......................................................................... 44

10

SQL....................................................................................................................... 45

10.1

HISTRICO......................................................................................................... 46

10.2

ESTRUTURA....................................................................................................... 54

10.3

UMA APLICAO DO SQL.............................................................................. 59

11

ESTUDO DE CASOS........................................................................................... 66

12

CONCLUSO...................................................................................................... 86

REFERNCIA.................................................................................... 87

LISTA DE ILUSTRAES
Figura 1 - Tabela de Dados.......................................................................................... 13
Figura 2 - Na figura abaixo possvel entender melhor o Banco de Dados com a
Representao Fsica................................................................................... 15
Figura 3

- Modelo Hierrquico..................................................................................... 20

Figura 4 - Modelo de Redes......................................................................................... 21


Figura 5 - Modelo de Relacional.................................................................................. 23
Figura 6

- Os discos rgidos, normalmente, so sobrepostos em pilhas, com um


pequeno espaamento entre si para a passagem da cabea de leitura /
gravao. Nessa posio, so chamados de Winchester. ............................ 24

Figura 7

- Tabela Cad_Curso....................................................................................... 25

Figura 8

- Tabela Cad_Curso....................................................................................... 28

Figura 9

- Tabela Cad_Dependentes............................................................................ 28

Figura 10 - Tabela Cad_Funcionrio.............................................................................. 30


Figura 11 - DER............. ............................................................................................... 34
Figura 12 - DER com Entidades Fracas........................................................................ 35
Figura 13 - Tabela Endereo.......................................................................................... 37
Figura 14 - Processamento sem SGBD.......................................................................... 39
Figura 15 - Processamento com SGBD.................................................................. 39
Figura 16 - Nmero de Pgina de cada verso......................................................... 47
Figura 17 - Evoluo das linguagens de consulta at o surgimento do SQL em 1999.. 49
Figura 18 - No exemplo abaixo, possui um campo do tipo CLOB que pode
armazenar at 25.000 caracteres e possui tambm um campo BLOB que
pode armazenar at 5.000 bytes................................................................... 50
Figura 19 - No exemplo abaixo, possui um campo do tipo ARRAY, esse campo pode
armazenar at 20 cadeias de caracteres, cada uma com 30 posies.......... 51
Figura 20 - No exemplo abaixo mostra que o tipo ROW pode ser nomeado ou no
nomeado ( ao contrrio do campo CEP, TipoEndereo um ROW
nomeado)..................................................................................................... 52

Figura 21 - No exemplo abaixo os componentes de um campo ROW so acessados


atravs do operador .................................................................................. 52

Figura 22 - Hierarquia de tipos de dados do SQL 1999, os retngulos destacados


correspondem aos novos tipos..................................................................... 53
Figura 23 - DER............................................................................................................. 62

LISTA DE ABREVIATURAS
DBM ( Data Base Manager - Gerenciador de Banco de Dados ).
GUAM ( Generalized Updated Access Method - Mtodo de Acesso Atualizado Generalizado).
COBOL ( Commom Business Oriented Language Linguagem Orientada a Transao
Comum).
PL ( Programming Language Linguagem de Programao ).
SEQUEL ( Structured English Query Language Linguagem de Consulta Estruturada em
Ingls ).
SQL ( Structured Query Language Linguagem de Consulta Estruturada ).
A Relational Model of Data for Large Shared Data Banks - Um modelo de dados relacional
para grandes Bancos de Dados Compartilhados.
Communications of the ACM ACM Comunicaes.
Oracle Corporation - Corporao de orculo.
ISO ( Internacional Organization for Standardization - Organizao Internacional de
Normalizao ).
ANSI ( American National Standards Institute - Instituto Americano de Padro Nacional ).
OQL ( Object Query Language - Linguagem de Consulta Objeto ).
ODMG ( Object Data Management Group - Grupo de Administrao de Objetos e Dados ).
OMG ( Object Managment Group Grupo de Administrao de Objetos ).
ABNT ( Brazilian Association of Norms and Techniques - Associao Brasileira de Normas e
Tcnicas ).
CLOB ( Character Large Object Objeto de Carter Grande ).
BLOB ( Binary Large Object Objeto Binrio Grande ).

1) Introduo
Objetiva-se com esse trabalho, identificar os principais avanos da tecnologia de Banco de
Dados, suas caractersticas e sua abrangncia de usabilidade atual. O Banco de Dados uma
coleo de dados inter-relacionados, representando informaes sobre um domnio especfico.
Existem gigantescas bases de dados gerenciando nossas vidas. Um Banco de Dados contm os
dados dispostos numa ordem pr-determinada em funo de um projeto de sistema, sempre para
um propsito muito bem definido, fornecendo os conceitos bsicos dos Sistemas de Bancos de
Dados, enfatizando o projeto conceitual, modelagem de dados, tpicos de programao e
integrao com ambientes de desenvolvimento e tcnicas mais utilizadas.
Novas tecnologias na rea de Banco de Dados tm surgido. Um exemplo tem-se o Banco
de Dados Orientado a Objetos, um fator emergente, que integra Banco de Dados e a Tecnologia
de Orientao a Objetos. Os Bancos de Dados Orientados a Objetos iniciaram-se primeiramente
em projetos de pesquisa nas universidades e centros de pesquisa. Em meados dos anos 80, eles
comearam a se tornar produtos comercializados, hoje so mais de 25 produtos no mercado.
Para finalizar, ser tratada nesse trabalho tambm a utilizao da SQL (Structured Query
Language Linguagem de Consulta Estruturada). uma linguagem desenvolvida para permitir
que qualquer pessoa, mesmo no sendo um programador, realize uma consulta (pesquisa) a um
banco de dados, para isso, essa linguagem se aproxima muito da linguagem natural dos seres
humanos.

2) Conceitos e Definies Gerais de Banco de Dados


O Banco de Dados foi criado para guardar as informaes no computador e

armazena -

las em sistemas de arquivos permanentes. Pode - se definir um Banco de Dados como um arquivo
que contm dados que sero transformados em informaes, que podero ser manipuladas pelo
gerenciador de Banco de Dados.
Sendo manipulado por um conjunto de programas os quais, efetuam operaes de
manuteno no Banco de Dados, como incluses, excluses e atualizaes de dados, assim como
processos de clculo e regravaes de informaes, tambm operaes de pesquisa de
informaes mais complexas para os nveis gerenciais de controle.
No Banco de Dados existem tabelas identificadas por campos e linhas; cada linha
representa um registro do Banco. Atravs desta organizao, a busca na base de dados fica mais
fcil no importando a quantidade de linhas.
Pode - se dizer que esse conjunto de dados to bem organizado que pode ser utilizado e
acessado por aplicaes diferentes.

TB_ENDEREO

Nome da Tabela

COD_MORADOR
NOM_MORADOR
COD_RUA
NOM_RUA

Campos da
Tabela

NUM_CASA
NUM_FONE

Fig.1.: Tabela de Dados


Um Sistema de Banco de Dados no nada mais do que um sistema de manuteno de
registros por computador, ou seja, um sistema cujo objetivo global manter as informaes e
torn-las disponveis quando solicitadas. [DATE, 2000].

Banco de Dados o conjunto de dados organizados de maneira lgica, visando permitir a


otimizao dos processos referentes a seu armazenamento e recuperao.
[CORNACHIONE, 1998]
Para entender se melhor o que Banco de Dados, necessrio saber que a informao
um dado que foi processado por um determinado sistema, obtido de uma tal forma que seja
de utilidade pelo usurio receptor, seja para a execuo de tarefas como para a tomada de
decises.
importante notar que alguns autores acreditam que h diferena entre dados e
informao para outros, ambos so sinnimos. [YONG, 1983].
Arquivos so um conjunto de dados (informaes) interligados, com formato definido;
organizados por alguns critrios estabelecidos por um software DBM ( Data Base Manager
Gerenciador de Banco de Dados ) e pelos seus usurios.
Por dados, podemos entender como fatos conhecidos que podem ser armazenados e que
possuem um significado no muito claro.
O significado do termo Banco de Dados mais restrito e possui as seguintes
propriedades:

Um Banco de Dados uma coleo lgica de dados com um significado ligado a


uma disposio desordenada dos dados no pode ser referenciada como um
Banco de Dados;

Um Banco de Dados projetado, criado e armazenado com dados para um


propsito especifico, um Banco de Dados possui um conjunto pr-definido de
usurios e aplicaes;

Um Banco de Dados representa alguns aspectos do mundo real, no qual


chamando de mini mundo, qualquer alterao efetuada no
mundo automaticamente refletida no Banco de Dados.

mini

Arquivos
Lgicos

Informaes para
o usurio
Banco de Dados
(Arquivos Fsico)

Fig.2.: Na figura abaixo possvel entender melhor o Banco de Dados com a Representao
Fsica.

2.1) Exemplos
Existem inmeros exemplos de Banco de Dados. Ao se procurar um nmero na lista
telefnica, esta sendo usado um Banco de Dados, e sempre que se recebe uma pea atravs de
mala direta, esse envio s possvel porque algum usou uma lista de correspondncia, que um
Banco de Dados de nomes, usando esses exemplos, uma lista telefnica um Banco de Dados de
nomes e clientes em potencial e endereos.
Um Banco de Dados uma coleo de dados armazenados, usados pelo sistema de
aplicaes de uma empresa especifica. Est definio requer alguma explicao, Empresa
simplesmente um termo genrico conveniente para designar uma organizao comercial,
cientifica, tcnica ou de outra natureza que seja razoavelmente auto-suficiente.

Alguns exemplos so:


Companhias de manufaturas;
Bancos;
Hospitais;
Universidades;
Departamentos do governo.

Qualquer empresa tem necessariamente que manter uma quantidade de dados sobre suas
operaes; estes so os dados operacionais.

Os dados operacionais das empresas provavelmente incluiriam o seguinte dados sobre:


Produtos;
Contabilidade;
Pacientes;
Estudantes;
Planejamento.

Portanto, um Banco de Dados um deposito de dados armazenados. Geralmente ele


tanto Integrado como Compartilhado.

Integrado, significa que o Banco de Dados pode ser a unio de diversos arquivos que, de
outra forma seriam distintos, eliminando parcial ou totalmente qualquer redundncia entre os
arquivos;

Compartilhado, significa que partes individuais de dados podem ser compartilhados entre
diversos usurios diferentes, significando que cada um daqueles usurios pode ter acesso
mesma parte do dado (e pode us-la para finalidades diferentes).

Um Banco de Dados compartilha na realidade uma conseqncia do fato de ser integrado.


Em outras palavras, um determinado banco de dados ser percebido por usurio diferentes sob
uma variedade de formas diferentes.
O termo compartilhado, freqentemente expandido para cobrir no somente o
compartilhamento como foi descrito, mas tambm o compartilhamento concorrente; isto , a
capacidade de que diversos usurios diferentes, estejam tendo acesso conjunto ao banco de dados
possivelmente mesma parte do dado ao mesmo tempo.
Um sistema de banco de dados que suporte esta forma de compartilhamento algumas
vezes conhecido como um sistema de mltiplos usurios.

O Banco de Dados a memria organizada de uma empresa, a servio de seu


desenvolvimento. Um computador bem alimentado capaz de fornecer, em pouqussimo tempo
os dados necessrios para se tomar a melhor deciso.

2.2) Histrico
Com a necessidade e o compromisso especifico do governo americano, em fazer pousar
Astronautas na Lua, antes do trmino da dcada de 60, foi desenvolvido o Projeto Apollo. Um
dos maiores, mais complexos e bem sucedidos Projetos de Sistemas de Informaes
Computadorizadas, apoiados na Tecnologia de Banco de Dados j realizados pelo ser humano at
o ano 2000.
Naquela poca, a empresa americana de administrao ROCKWELL , reconhecendo
que no existiam Sistemas de Informaes disponveis no mercado para lidar com o Projeto
Apollo pelo fato das informaes que seriam armazenadas possurem tamanho e complexidade
muito grande, solicitou ento a IBM que projetasse um Sistema de Informao capaz de
atender s suas especificaes de requisitos.
Em 1964, a IBM trabalhando junto com a Rockwell, desenvolveu o GUAM

Generalized Updated Access Method - Mtodo de Acesso Atualizado Generalizado ). Neste ano a
plataforma IBM/360 foi introduzida no mercado, marcando o inicio da Terceira Gerao de
Computadores em termos de Hardware, e Software Bsico, introduzido tambm o Sistema
Operacional.
Os dados requeridos pelo Projeto Apollo representavam basicamente uma grande carta
Organizacional Hierrquica, em conseqncia disso, o primeiro modelo de Banco de Dados
surgiu, chamado de Banco de Dados Modelo Hierrquico, o primeiro e mais influente Sistema
Gerenciador de Banco de Dados (SGBD).
Em 1968, foi estabelecido um grupo de trabalho de Banco de Dados que ficou conhecido
internacionalmente como DBTG (Data Base Task Group - Grupo de Tarefa de Banco de
Dados), com a misso inicial de administrar o desenvolvimento da linguagem

COBOL

( Commom Business Oriented Language Linguagem Orientada a Transao Comum ).


O DBTG concluiu que a necessidade da poca, no era simplesmente de um software com
a capacidade de manipular listas, mas um Dispositivo Generalizado para definir Estruturas de
5

Dados Complexas, porque as experincias com a Linguagem PL/1

da IBM tinha revelado

srias limitaes com o enfoque de Banco de Dados Hierrquico, o DBTG optou ento por
incentivar as pesquisas de uma estrutura de dados que fosse mais geral e voltada para um enfoque
de Administrao de Banco de Dados, esta estrutura passou a ser chamada de Banco de Dados
Modelo Rede (Network).
No final dos anos 60, os pesquisadores comearam a descobrir que a rea de Banco de
Dados continha algumas perguntas interessantes e significativas, que necessitavam de exames
mais criteriosos e novas respostas, ento em 1970, a rea de pesquisa de Banco de Dados foi
6

marcada pela publicao de um artigo de E.F.Codd , um pesquisador da IBM; neste artigo


props um enfoque de Administrao de Banco de Dados baseado na Teoria Matemtica dos
Conjuntos e das Relaes, que passou a ser chamado de Banco de Dados Modelo Relacional .
Com elegncia, simplicidade e a fundamentao terica das idias de CODD acabou por
interessar outros grupos de pesquisadores para a rea de Banco de Dados, sendo assim, os
Sistemas Gerenciadores de Bancos de Dados (SGBDs) puderam ser construdos com menor
esforo do que antes com os Modelos Hierrquicos e Rede (Network).
Muitos Sistemas baseados no Modelo Relacional foram ento construdos durante os anos
70, mas apenas com modestos investimentos, com o passar do tempo e a evoluo das
tecnologias envolvendo computadores, surgiram Sistemas Gerenciadores de Bancos de Dados
Relacionais (SGBDR) mais eficientes, dentre eles destacam-se o Sistema R, IBM System R.
[ITA, 2003]

__________________________________________________________________________________________
Empresa Amrica de Administrao
Marca que identifica toda a linha de microcomputadores pessoais fabricados pela IBM.
Inicio da Terceira Gerao de Computadores em termos de Hardware, e de Software Bsico.
4

Linguagem de Programao iniciada nos anos 60 e 70, principalmente para processamento de informaes

comerciais.
5
6

Linguagem de Programao 1 de alto nvel que acompanhou o IBM / 360.


Edgar Frank Codd, Cientista Ingls criador da tecnologia de Banco de Dados Relaciona (SQL) na dcada de

70.

3) Modelos de Bancos de Dados


Os tipos ou modelos de banco de dados podem ser divididos de acordo com as estruturas
de dados e os operadores que apresentam ao usurio. O modelo mais utilizado atualmente o
relacional, pois atravs dele os dados podem ser percebidos pelo usurio como tabelas e os
operadores disposio do usurio podem gerar novas tabelas a partir das tabelas antigas.
Os sistemas que antecedem o modelo relacional so chamados de pr-relacionais, so
eles: hierrquicos e de rede. So modelos considerados hbito e possuem uma caracterstica
comum, todos eles expem ponteiros para o usurio; mais recentemente foi criado o modelo
orientado a objetos que um sistema em que a unidade de armazenamento o objeto.
Um modelo de dados uma estrutura de referncia para organizar dados, todo SGBD
deve suportar um modelo que permita uma representao dos dados de uma realidade.
O esquema conceitual de uma aplicao o resultado da adequao dos requisitos de
dados desta aplicao ao modelo de dados do SGBD. Todo modelo de dados deve suportar, no
mnimo, a especificao de entidades e relacionamentos.
Historicamente, os primeiros modelos de Banco de Dados surgiram na dcada de 60,
desde ento, a pesquisa cientfica na rea procura evoluir no sentido de definir e encontrar
modelos que representem da melhor maneira possvel os dados de uma realidade, ou seja, que
organizem os dados de uma forma mais prxima maneira como estes so vistos e manipulados
pelas pessoas no mundo real. [MOREIRA, 2002]
Alm disso, na implementao de um modelo, busca-se tambm organizaes de dados e
estratgias de processamento que otimizem a performance de acesso e mtodos de acesso que
sejam independentes da aplicao. Um exemplo, disso a linguagens de consulta, retirando da
mesma a tarefa de programar procedimentos para realizar operaes sobre dados.

3.1) Modelo Hierrquico


Surgiu na dcada de 60, organizava dados em uma estrutura de Bancos de Dados
Hierrquicos. So baseados em registros compostos por diversos campos e so organizados em
forma de rvore e no em formato de tabelas.
Os registros possuem sub-registros e assim sucessivamente, formando uma ramificao
semelhante a uma rvore. Dois registros so unidos por um elo, um ascendente e outro
descendente.
Um ascendente pode ter vrios descendentes mas cada descendente tem apenas um
ascendente direto. As razes so os nicos registros que no possuem PAI e nenhum nvel de
ascendente pode faltar.

Fornecedor

Endereo

Municpio

Rua

Bairro

CEP

Fig.3: Modelo Hierrquico

[SILBERSCHATZ, 1999]

3.2) Modelo de Redes


Utilizado principalmente no final da dcada de 60 e durante a dcada de 70, organizava
dados em uma estrutura formada por vrias listas, que definia uma confusa rede de ligaes
(estrutura similar a um grafo direcionado).
Este tipo de gerenciador de Banco de Dados parecido com o Modelo Hierrquico,
porm, cada registro filho pode ser ligado a mais de um registro pai, possibilitando a
formao de ligaes mais complexas, porque no h a restrio a um s tipo de relacionamento
que vigora.

Fig.4.: Modelo de Redes

[SILBERSCHATZ, 1999]

3.3) Modelo Relacional


Este modelo utilizado por quase todos os atuais fabricantes de Banco de Dados do
mundo. Criado por Edgar Frank Codd, pesquisador da IBM e definido na dcada de 70,
considerado at hoje uma das maiores inovaes tcnicas do sculo XX.
o modelo de dados dominante no mercado atualmente, organiza dados em um conjunto
de relaes (tabelas), alem disso o mais fcil de ser descrito e entendido.
O Modelo Relacional consagrou se como o primeiro modelo de dados para aplicaes
comerciais. Os primeiros sistemas de Banco de Dados tiveram por base, o modelo de rede e
modelo hierrquico, esses dois modelos antigos esto mais prximos da implementao no nvel
fsico que no modelo relacional.
No mercado existem outros tipos de sistemas, porm h um pr - domnio dos SGBDs
relacionais, principalmente fora das plataformas de grande porte, nestes ambientes esto
gradativamente substituindo o SGBD de outras abordagens (Hierrquica, Rede, por exemplo).
Banco de Dados Relacional um grupo de dados percebido pelos usurios como um conjunto de
tabelas. [DATE, 2000]
A terminologia relao foi utilizada na estrutura original devido ao fato de que os
sistemas relacionais baseiam se num conjunto fundamental de idias tericas conhecidas como
modelo relacional. Essa terminologia a mais comum na rea acadmica.
A terminologia tabela mais comum na prtica e nos produtos comerciais.
Uma relao vista como uma tabela, onde as colunas indicam os campos e as
linhas as ocorrncias (valores). Relacionamentos entre relaes so estabelecidos por igualdade
de valor de campos.

Fig.5.: Modelo de Relacional


[SILBERSCHATZ, 1999]

3.4) As Terminologias presentes no SGBD relacional:


Arquivos
Tabelas
Campos
Linhas
Colunas
Registros

3.4.1) Arquivos
Arquivos so conjunto de Dados, organizados em registros, fixos em suportes magnticos
segundo um processo eletrnico de magnetizao.
Por exemplo: o texto de uma carta, gravado num disquete; um desenho armazenado num
Winchester; um programa gravado num CD-ROM; uma lista de nomes, endereos e telefones,
gravada numa BBS; etc. [OLIVEIRA, 1999]

Fig.6.: Os discos rgidos, normalmente, so sobrepostos em pilhas, com um pequeno


espaamento entre si para a passagem da cabea de leitura / gravao. Nessa posio, so
chamados de Winchester.

Os arquivos de dados contm as informaes fornecidas pelo usurio e so classificados


em:

Arquivo Mestre: o qual contm informaes que sofrem poucas alteraes;

Arquivo de transaes ou movimento: contm informaes que sero utilizadas


para atualizar o Arquivo Mestre;

Arquivo de trabalho: contm informaes que so armazenadas temporariamente e


utilizadas por outros mdulos do sistema.

3.4.2) Tabelas
Uma tabela uma rea de disco ou memria que armazena uma coleo de dados sobre
um tpico especifico, a mesma organiza os dados em colunas e linhas.
No Banco de Dados Relacional as tabelas apresentam relaes lgicas entre elas.
Nome do Campo
(Nome do Atributo)
Coluna
(Atributo)

Nom_Aluno

Mat_Aluno

Cur_Aluno

Paulo

7150

Economia

Paula

7152

Administrao

Daniel

7154

Cincias Contbeis

Daniela

7156

Cincias Contbeis

Linha
(Tupla)

Fig.7.: Tabela Cad_Curso

Valor do
Campo
(Valor do
Atributo)

3.4.3) Campos
Campo um item relacionado ao objeto em questo. Todos os itens includos numa
mesma coluna, pertencem ao mesmo campo.
Cada campo identificado por um nome de campo (nome de atributo, na terminologia
acadmica).

3.4.4) Linhas
Cada linha composta por uma srie de campos, na terminologia acadmica, as linhas so
chamadas de Tuplas.

3.4.5) Colunas
O conjunto de campos homnimos de todas linhas de uma tabela forma uma coluna.

3.4.6) Registros
Um Registro formado por diversos campos de dados que possuem certa finalidade para
ficarem agrupados.
O Modelo Relacional formal deixou de usar o termo registro, para usar tupla
(termo exato de tupla-n).
O termo tupla corresponde aproximadamente a noo de caso de registro horizontal ,
como o termo relao corresponde a noo de tabela . [UNIMAR, 2003]

4) Chaves
A chave o conceito bsico para identificar linhas e estabelecer relaes entre linhas de
tabelas de um Banco de Dados Relacional
Existe a Super Chave que o conjunto de um ou mais atributos que tomados
coletivamente, nos permitem identificar de maneira nica uma entidade em um conjunto de
entidades e a Chave Candidata que uma Super Chave para a qual nenhum subconjunto possa
ser uma Super Chave.
Uma Chave, seja Primria, Candidata ou Super Chave, uma propriedade do conjunto de
entidades e no de uma entidade individualmente. Quaisquer duas entidades individuais em um
conjunto no podem ter ao mesmo tempo, os mesmos valores em seus atributos chave.
[INCIO, 2002]

Existem trs tipos de chaves que so as mais utilizadas:

Chave Primria
Chave Estrangeira
Chave Alternativa

4.1) Chave Primria


A Chave Primria a Chave Candidata que escolhida pelo projetista do Banco de
Dados como de significado principal para a identificao de entidade dentro de um conjunto de
entidades, tambm uma coluna cujo os valores distinguem uma linha das demais dentro de uma
tabela.
No Banco de Dados da tabela Cad_Curso a Chave Primria a coluna Mat_Aluno.

Nom_Aluno

Mat_Aluno

Cur_Aluno

Paulo

7150

Economia

Paula

7152

Administrao

Daniel

7154

Cincias Contbeis

Daniela

7156

Cincias Contbeis

Fig.8.: Tabela Cad_Curso


No Banco de Dados da tabela Cad_Dependentes possui uma Chave Primria
Composta, podendo se observar que apenas um dos valore dos campos que compem a chave,
no suficiente para distinguir uma linha das demais. Isso acontece pois tanto um cdigo de
empregado quanto um nmero de dependente podem aparecer em diferentes linhas, sendo assim,
para que seja possvel identificar uma linha na tabela, necessrio considerar ambos valores.

Nom_Depend Tpo_Depend Dat_Nascimento

Cod_Empresa

Num_Depend

70

Felipe

Filho

30/09/1994

71

Beatriz

Esposa

03/10/1958

72

Lucas

Marido

07/08/1960

73

Paula

Filha

11/09/1983

Fig.9.: Tabela Cad_Dependentes

Portanto qualquer combinao de colunas que contenha as colunas Cod_Empresa e


Num_Depend uma Chave Primria, por isso, nas definies exige-se que essa seja
mnima.
Chave Mnima quando todas suas colunas forem efetivamente necessrias para garantir
a qualidade de valores da chave. Por exemplo, poderia se incluir mais uma coluna alm das
duas j existentes, como uma chave primria, mas a incluso de uma terceira coluna no
necessria para manter a qualidade de valores, devendo - se ento obedecer o principio da chave
mnima. [INCIO, 2002]

4.2) Chave Estrangeira


A Chave Estrangeira uma coluna cujo os valores aparecem necessariamente na Chave
Primria de uma tabela, tambm o mecanismo que permite a implementao de relacionamento
em um Banco de Dados Relacional.
No Banco de Dados da tabela Empresa, a coluna Cod_Depto uma Chave
Estrangeira em relao a Chave Primria da Tabela Departamento .
A existncia de uma Chave Estrangeira impe restries que devem ser garantidas ao
executar diversas operaes de alterao de Banco de Dado; como garantir que o novo valor de
uma chave estrangeira aparecer na coluna da chave primria referenciada e que na chave
estrangeira no aparecer o antigo valor da chave primria que est sendo alterada.
Cod_Depto

Nom_Depto

Vendas

Produo

Financeiro

TB_Departamento

Cod_Empresa Nom_Func Cod_Depto


70

Carlos

71

Paula

72

Pedro

73

Eduarda

TB_Empresa

4.3) Chave Alternativa


A Chave Alternativa em algumas ocasies mais de uma coluna podem servir para
distinguir uma linha das demais, uma das colunas escolhida como chave primria e as demais
colunas so chamadas de Chave Alternativa.
No Banco de Dados da tabela Cad_Funcionrio, com dados de empregados na qual tanto
a coluna Cod_Empresa quanto na coluna RG podem ser usadas para distinguir uma linha das
demais, no exemplo foi escolhida como chave primria a coluna Cod_Empresa, ento diz se
que a coluna RG uma chave alternativa.

Cod_Empresa Nom_Func Cod_Depto

RG_Func

70

Carlos

19.527.122-0

71

Paula

22.877.697-3

72

Pedro

13.432.961-2

73

Eduarda

18.681.244-8

Fig.10.: Tabela Cad_Funcionrio

5) Modelo Entidade Relacional


O Modelo Entidade Relacional (E-R) tem por base perceber que o Mundo Real
formado por um conjunto de objetos chamados Entidades e pelo conjunto dos
Relacionamentos entre esse objetos.
O Modelo E-R um dos modelos com maior capacidade de mudana, que se referem a
tentativa de representar o significado dos dados. [SILBERSCHATZ, 1999]

Existem trs noes bsicas utilizadas pelo modelo E R:

Conjunto de entidades
Conjunto de relacionamento
Diagrama Entidade Relacionamento

5.1) Conjunto de Entidades


Uma entidade um objeto no Mundo Real que pode ser identificada de forma nica em
relao a todos outros objetos, sendo representada por um conjunto de atributos.
Atributos so propriedades descritivos de cada membro de um conjunto de entidades.
Um conjunto de entidades abrange entidades, do mesmo tipo que compartilham as
mesmas propriedades.
Os conjuntos de entidades no so necessariamente separados. Um exemplo, possvel
definir um conjunto de entidades com todos os empregados do banco (empregado) e um conjunto
de entidades com todos os clientes do banco (cliente). A entidade pessoa, pode pertencer ao
conjunto de entidades empregado, ou a de cliente, como tambm a ambos ou a nenhum.
A denominao de um atributo para um conjunto de entidades manifesta que o Banco de
Dados matem informaes similares de cada uma das entidades do conjunto de entidades;
entretanto cada entidade pode ter seu prprio valor em cada atributo.

Os atributos possveis ao conjunto de entidades clientes so:


nome_cliente
seguro_social
rua_cliente
cidade_cliente

Atributos possveis para o conjunto de entidades emprstimo so:


nmero_emprstimo
conta
Para cada atributo existe um conjunto de valores

possveis, chamado domnio, ou

conjunto de valores, daquele atributo.


Propriamente um atributo de um conjunto de entidades uma funo que relaciona o
conjunto de entidades a seu domnio, desde que possua alguns atributos, cada entidade pode ser
descrita pelo conjunto de entidades. [SILBERSCHATZ, 1999]

5.2) Conjunto de Relacionamento


Um relacionamento uma associao entre vrias entidades e tambm pode ter atributos
descritivos.
Em um relacionamento, podemos tambm definir alguns conceitos, tais como:

Participao: a associao entre os conjuntos de entidades em um conjunto de


relacionamentos;
Papel: a funo que uma entidade desempenha em um relacionamento.

A definio de papis das entidades em um relacionamento til quando o significado de


um relacionamento precisa ser esclarecido, quando uma entidade participa de uma instncia de
relacionamento de maneiras diferentes.

Exemplo, uma entidade empregado s pode participar em um relacionamento como


empregado ou gerente. Uma vez que os conjuntos de entidades participantes em um conjunto de
relacionamentos so geralmente distintos, os papis so subentendidos e no so, em geral,
especificados.
Entretanto, so teis quando o significado de um relacionamento precisa ser esclarecido,
neste caso, quando os conjuntos de entidades e os conjuntos de relacionamentos

no so

distinguveis, o mesmo conjunto de entidades participa de um conjunto de relacionamentos mais


de uma vez, em diferentes papis. [INCIO, 2002]

5.3) Diagrama Entidade Relacionamento


composto pelos seguintes componentes:

Retngulos: representam os conjuntos de entidades;


Elipses: representam os atributos;
Losangos: representam os relacionamentos entre os conjuntos de entidades;
Linhas: unem os atributos aos conjuntos de entidades e o conjunto de entidades aos
seus relacionamentos;
Elipses Duplas: representam atributos multivaloradas;
Linhas Duplas: indicam participao total de uma entidade em um conjunto de
relacionamentos.

Seguro_Social

Rua_Cliente

Nome_Cliente

Nmero_Emprstimo

Saldo

Cidade_Cliente

Devedor

Cliente

Emprstimo

Fig.11.: DER
[SILBERSCHATZ, 1999]

Os atributos de um conjunto de entidades que so membros de uma chave primria devem


ser sublinhados.
Uma linha direcionada do conjunto de relacionamentos devedor para o conjunto de
entidades emprstimo especifica que devedor um conjunto de relacionamentos muitos para
muitos ou um para muitos, de cliente para emprstimo.

Existem dois tipos de entidades:

Entidades Fracas
Entidades Fortes

5.3.1) Entidades Fracas e Fortes


Entidades Fracas so conjuntos de entidades que no tm atributos suficientes para
formar uma Chave Primria, enquanto as Entidades Fortes possuem esses atributos.
Um membro de um conjunto de entidades fortes definido como uma entidade
dominante, ao contrrio um membro de um conjunto de entidades fracas uma entidade
subordinada.
Embora as entidades fracas no tenham uma chave primria, elas possuem uma Chave
Parcial que permite a distino entre cada entidade fraca integrante do conjunto.
A chave primria de um conjunto de entidades fracas formada pela chave primria do
conjunto de entidades fortes, mais a chave parcial do conjunto de entidades fracas.
O conjunto de entidades dominantes de identificao dito Proprietrio do conjunto de
entidades fracas por ele identificada. O relacionamento que associa o conjunto de entidades
fracas a seu proprietrio o relacionamento identificador.
Um conjunto de entidades fracas identificado no diagrama E-R pela linha dupla usada
no retngulo e no losangos do relacionamento correspondente.

DT_Pagamento
Nmero_Emprstimo

Total
Nmero_Pagamentos

Emprstimo

Pagamentos_
Emprstimo

Fig.12.: DER com Entidades Fracas

Total_Pagamento

Pagamentos

[SILBERSCHATZ, 1999]

6) Estrutura dos Bancos de Dados Relacionais

Um Banco de Dados Relacional resume - se em uma coleo de tabelas, cada uma com
um nome nico. Cada tabela tem uma estrutura parecida com o Modelo de Entidade
Relacionamento.
Uma linha em uma tabela representa um Relacionamento entre um conjunto de valores.
Essa tabela por sua vez uma coleo de relacionamento entre o conceito de tabela e o
conceito de relao a partir das quais se origina o nome desse modelo de dados.

6.1) Estrutura Bsica

Nom_Morador

Nom_Rua

Num_Casa

Maria

Mario de Andrade

123

Antonio

Anita Garibaldi

456

Manuela

Paulo Coelho

789

Joo

Maria Leopoldina

987

Antonia

D.Pedro

654

Manuel

Maria Joaquina

321

Fig.13.: Tabela Endereo


Na tabela Endereo acima, possui trs colunas: Nom_Morador, Nom_Rua,
Num_Casa. Utilizando o Modelo Relacional, os nomes dessas colunas so tratados como
atributos do Modelo de Entidade Relacionamento, para cada um desses atributos h um
conjunto de valores permitidos, chamado domnio do atributo.
Cada coluna de uma tabela de um Banco de Dados Relacional um atributo, para cada
atributo h um conjunto de valores permitidos, chamado domnio do atributo.
Matematicamente, define se uma relao como um subconjunto de um produto
cartesiano de uma lista de domnios. Como essa definio corresponde quase exatamente
definio de uma tabela, podemos afirmar que as tabelas so em essncia relaes.

possvel para alguns atributos, possuir um mesmo domnio como por exemplo o
atributo nom_cliente de uma relao cliente e nom_empregado de uma relao empregado.
Um valor de domnio que pertence a qualquer domnio possvel o valor nulo, que indica
que um valor desconhecido ou no existe.

7) O que um SGBD ?
Define se SGBD (Sistema de Gerenciamento de Banco de Dados) como sendo um
Sistema com um objetivo principal em gerenciar o acesso e a correta manuteno dos dados
armazenados em um banco de dados . constitudo por um conjunto de dados associados a um
conjunto de programas para acesso a esses dados.
O software gerenciador de Banco de Dados um programa que cria, manipula, consulta e
fornece recursos para facilitar o acesso a dados armazenados em um Banco de Dados.
O desenvolvimento tecnolgico aliado evoluo dos sistemas de informaes nas
organizaes permitiu que houvesse grandes modificaes em relao programao de
aplicaes em computadores. Antes se usavam linguagens como COBOL, Basic, C e outras, os
programadores colocavam em um programa toda funcionalidade desejada. O gerenciador do
banco de Dados est entre o banco de dados fsico e o usurio do sistema, as solicitaes de
acesso que vierem a ser feitas, sero manipuladas pelo SGBD.
O SGBD faz com que os usurios tenham uma viso do banco de dados acima do nvel do
hardware, e suporta as operaes do usurio que so expressas em termos daquela viso em
nveis mais elevados, o objetivo isolar os usurios do banco de dados dos detalhes em relao
aos hardwares. [DATE, 2000]
O SGBD deve fornecer ao usurio uma Representao Conceitual dos dados, sem
fornecer muitos detalhes de como as informaes so armazenadas. Um Modelo de Dados
uma abstrao de dados que utilizada para fornecer esta representao conceitual utilizando
conceitos lgicos como objetos, suas propriedades e seus relacionamentos. A estrutura detalhada
e a organizao de cada arquivo so descritas no catlogo.

importante mencionar que os dados e o aplicativo so independentes entre si, ou seja,


podemos mudar o ltimo sem alterar o primeiro, por exemplo.

Programa
Acesso
Lgico

Sistema
operacional
Acesso
fsico
Arquivo

Fig.14.: Processamento sem SGBD


[UNIMAR, 2003]
Programa
Chamada
externa
SGBD
Acesso
lgico
Sistema
operacional
Acesso
fsico
Mtodo
de acesso

Banco de
Dados

Fig.15.: Processamento com SGBD


[UNIMAR, 2003]

7.1) As vantagens e desvantagens do uso de um SGBD


No processamento tradicional de arquivos, cada grupo de usurios deve manter seu
prprio conjunto de arquivos e dados, desta forma acaba ocorrendo excessos que prejudicam o
sistema como:

Toda vez que for necessrio atualizar um arquivo de um grupo, ento todos os
grupos devem ser atualizados para manter a integridade dos dados no ambiente
como um todo;

O excesso desnecessrio de dados levam ao armazenamento excessivo de


informaes, ocupando espao que poderia estar sendo utilizado com outras
informaes.

Um SGBD multi usurio deve permitir que mltiplos usurios acessem o banco de
dados ao mesmo tempo, este fator essencial para que mltiplas aplicaes integradas possam
acessar o banco.
O SGBD multi usurio deve manter o controle de concorrncia para assegurar que o
resultado de atualizaes sejam corretos e deve fornecer recursos para a construo de mltiplas
vises.
Um SGBD deve fornecer um subsistema de autorizao e segurana, o qual utilizado
pelo DBA para criar contas e especificar as restries destas contas; o controle de restries se
aplica tanto ao acesso aos dados quanto ao uso de softwares inerentes ao SGBD.
Um Banco de Dados pode incluir uma variedade de dados que esto relacionados de
vrias formas, deve fornecer recursos para se representar uma grande variedade de
relacionamentos entre os dados como: recuperar e atualizar os dados de maneira prtica e
eficiente.
Um SGBD deve fornecer recursos para recuperao de falhas tanto de software quanto de
hardware.

7.2) Quando no utilizar um SGBD


Em alguns situaes, o uso de um SGBD pode representar uma carga desnecessria aos
custos quando comparado abordagem tradicional de arquivos como por exemplo:

Alto investimento inicial na compra de software e hardware adicionais;

Generalidade que um SGBD fornece na definio e processamento de dados;

Sobrecarga na previso de controle de segurana, controle de concorrncia,


recuperao e integrao de funes.

Problemas adicionais podem surgir caso os projetistas de Banco de Dados ou


Administradores de Banco de Dados no elaborem os projetos corretamente ou se aplicaes no
so implementadas de forma apropriada. Se o DBA no administrar o Banco de Dados de forma
apropriada, tanto a segurana quanto a integridade dos sistemas podem ser comprometidas.
A sobrecarga causada pelo uso de um SGBD e a m administrao justificam a utilizao
da abordagem tradicional de arquivos como por exemplo:

O banco de dados e as aplicaes so simples, bem definidas e no se espera


mudanas no projeto;

A necessidade de processamento em tempo real de certas aplicaes, que so


terrivelmente prejudicadas pela sobrecarga causada pelo uso de um SGBD;

No haver mltiplo acesso ao banco de dados.

8) Para que guardar dados (Necessidade de armazenamento ) ?


Um sistema de Banco de Dados informatizado capaz de armazenar uma grande
quantidade de informaes, de forma precisa, facilitando a consulta rpida e por diversos
usurios.
Existe uma necessidade em se realizar o armazenamento de informaes que no se
encontram isoladas umas das outras, existe uma ampla escala de dados que se referem a
relacionamentos entre as informaes a serem manipuladas.
Mantendo todo este volume de dados organizados, o Banco de Dados deve permitir
atualizaes, incluses e excluses do volume de dados, sem nunca perder a consistncia, e
sabendo que na maioria das vezes os acessos sero concorrentes a vrias tabelas do Banco de
Dados, algumas vezes com mais de um acesso ao mesmo registro de uma mesma tabela.

8.1) Principais Operaes para Atualizao dos Dados


Incluso: o Sistema Operacional calcula o endereo do registro atravs do valor de
sua chave, localizando na rea de ndice o local onde ser armazenado a chave a ser
includa, reorganizando - se necessrio as demais chaves, mantendo as sempre
ordenadas, caso j exista registros neste endereo, ele far a incluso na rea de
coliso. Aps esta operao, ele procura na rea de dados, um endereo disponvel
para armazenamento do registro, inclui na posio correta, identificando o endereo
do registro que ser includo e o valor do seu endereo atualizado na rea de ndices.
[UNIMAR, 2003]

Alterao: o Sistema Operacional calcula o endereo do registro atravs do valor de


sua chave, atualizando no local especifico ou na rea de coliso, dependendo de onde
ele esteja armazenado. Aps esta operao, ele atualiza os dados do registro no
endereo correspondente. [UNIMAR, 2003]

Excluso: o Sistema Operacional calcula o endereo do registro atravs do valor de


sua chave, removendo fisicamente a chave de acesso do registro da rea de dados ou
da rea de coliso, dependendo de onde ele esteja armazenado.
[UNIMAR, 2003]

9) Necessidade de uma ferramenta para isso SQL uma linguagem de consulta.

Um Banco de Dados representar sempre aspectos do Mundo Real. Sendo assim uma
Base de Dado uma fonte de onde poderemos extrair muitas informaes derivadas, que possui
um nvel de interao com eventos como o Mundo Real.
A forma mais comum entre o usurio e o Banco de Dados, ser atravs de sistemas
especficos que por sua vez acessam o volume de informaes geralmente atravs da linguagem
SQL.
Os Analistas e Programadores de Desenvolvimento, criam sistemas que acessam os dados
da forma necessria ao usurio final, que interage diretamente com o Banco de Dados.
A SQL, por outro lado, caracterizada por ser uma linguagem declarativa, ou seja, ela diz
ao computador o que quer que ele faa, sem se preocupar de que forma o trabalho ser realizado,
o que importa o resultado.

10) SQL

A grande parte do sucesso da SQL se deve ao fato de existir um modelo matemtico


formal que serviu de base para seu desenvolvimento.
SQL (Structured Query Language Linguagem de Consulta Estruturada ) tem
representado o padro para linguagens de Banco de Dados relacionais e existem diversas verses.
uma linguagem desenvolvida para permitir que qualquer pessoa, mesmo no sendo um
programador, realize uma consulta a um Banco de Dados, uma linguagem de alto nvel para
manipulao de dados dentro do modelo relacional.
No uma linguagem procedural, e no o usurio quem define como o gerenciador de
Banco de Dados executar uma tarefa, e sim o que ele deve fazer.
Praticamente todos os produtos de Banco de Dados relacionais que esto no mercado
suportam a SQL.

10.1) Histrico
A tecnologia de Banco de Dados Relacional se baseia na teoria
de conjuntos que foi proposta por Edgar Frank Codd matemtico e
P.H.D. em Cincias da Computao que divulgou suas primeiras
idias no final da dcada de 60 e em junho de 1970 publicou o artigo
A Relational Model of Data for Large Shared Data Banks na revista
Communications of the ACM , enquanto ele trabalhava para a IBM
no Laboratrio de Pesquisa de San Jose na Califrnia (hoje o Centro
de Pesquisa Almadn).
Esse material um marco na rea de Banco de Dados e rendeu a E.F.Codd, em 1981 o
equivalente ao Prmio Nobel nesta rea, o ACM Turing Award. Em 18/04/2003, Codd veio a
falecer aos 79 anos e deixou em testamento seus conhecimentos na Teoria Relacional.
O Cientista utilizou a lgebra relacional para expressar as aes realizadas nas tabelas, operaes
como seleo, projeo e juno, foram definidas de forma procedimental utilizando se notao
matemtica.

[LIMA, 2003]

Em 1973 a IBM deu incio ao seu primeiro gerenciador de dados relacional, o System R,
que utilizava uma linguagem de consulta denominada SEQUEL que no inicio da dcada de
80, por motivos jurdicos passa a se chamar SQL , esse projeto se estendeu at 1979, provou a
viabilidade do modelo matemtico e foi o bero da SQL.
Em 1974 outros dois pesquisadores da IBM, D.D. Charmberlim e Boyce, publicaram um
artigo SEQUEL: A Stucturd English Query Language ao mesmo tempo em que apresentaram
um prottipo da IBM denominado SEQUEL XRM; nasce ento a linguagem SEQUEL.
A linguagem SQL era uma novidade para a poca, os sistemas gerenciadores de Banco de Dados
existentes utilizavam o modelo de dados hierrquico ou rede. Para as linguagens de acesso a
dados era necessrio que o programador navegasse nas estruturas de dados, para obter os de
interesse.[LIMA, 2003]

Novos fabricantes foram aparecendo, cada um foi incorporando novos recursos

(e

incompatibilidade) linguagem, isto evoluiu para uma tentativa de padronizao da linguagem,


de maneira que todos adquirissem.

Apesar de todo trabalho com pesquisa iniciado e desenvolvido pela IBM, o primeiro
sistema de gerenciador de banco de dados relacional ( SGBDR ) disponvel no mercado foi o
Oracle , lanado em 1979 por uma empresa chamada Relational Software ( hoje, Oracle
Corporation - Corporao de orculo ). A entrada da IBM neste mercado s aconteceu em 1981,
com o lanamento do SQL / DS, e sua consolidao veio apenas em 1983, com o DB2.
No inicio da dcada de 80 vrias implementaes de SGBDRs utilizavam SQL, cada
fornecedor passou a incluir extenses linguagem conforme seu interesse, ento logo se
percebeu que era importante a padronizao para permitir a portabilidade entre os diversos
produtos disponveis, fortalecendo o mercado. Em 1984, apenas 20 % dos gerenciadores de
Banco de Dados seguiam o modelo Relacional.
A ANSI (American National Standards Institute - Instituto Americano de Padro
Nacional ) publicou o primeiro padro em 1986 e denominou o nome de SQL 86, mas no ano
seguinte, o padro foi publicado como uma norma internacional pela ISO ( Internacional
Organization for Standardization - Organizao Internacional de Normalizao ).
Em 1989 uma nova padronizao foi publicada pela ISO incluindo recursos como integridade
referencial, valores NULL e DEFAULT, CHECK CONSTRAINT e outras dando origem ao
SQL 89. [LIMA, 2003]
Em 1990 os gerenciadores de Banco de Dados seguiam o modelo Relacional
contabilizavam 80 %. Em 1992 foi publicada a verso do padro que ficou conhecida como SQL
92 ou SQL 2, contendo 589 pginas ( quase cinco vezes maior do que o SQL 89 que tinha 120
pginas ).

Padro

Nmero de Pginas

SQL 86

105

SQL 89

120

SQL 92

575

SQL 99

1500 +

Atualmente

3000 +

Fig.16.: Nmero de Pgina de cada verso


Vrias novidades foram agregadas nesta verso, como novos tipos de dados ( DATE e
TIME ), tabelas temporrias, catlogos, domnios, SQL Dinmico, tabelas derivadas na clusula
FROM, mltiplos operadores de JOIN, entre outras.
O curioso que muitos desses recursos no foram implementados at hoje pelos
fornecedores, na SQL 92, foram definidos 3 nveis de conformidade:

Entry Level: Nvel Inicial, muito parecido com o SQL 89;


Intermediate Level: Nvel Intermedirio, o mais completo;
Full Level: Nvel Alto, o mais completo.

No inicio da dcada de 90, era grande o marketing das empresas que tentavam alcanar os
sistemas gerenciadores de Banco de Dados orientados a objeto, alguns at anunciavam a morte do
SQL, dizendo que seria a vez da OQL ( Object Query Language - Linguagem de Consulta
Objeto ). As empresas deste segmento se reuniram e criaram a ODMG ( Object Data
Management Group - Grupo de Administrao de Objetos e Dados ), vinculada OMG ( Object
Managment Group Grupo de Administrao de Objetos ), para padronizar a OQL.
Em uma reunio o comit de padronizao da SQL trabalhava para implementar
caractersticas de orientao a objeto ao modelo relacional, gerando em 1999 o padro mais
recente, que ficou conhecido como SQL 3 ( ISSO / IEC 9075 ), sendo est verso maior que a
anterior.

rvore Genealgica do SQL

SEQUEL ( 1974 )
(Pela IBM )

Rebatizada como SQL

ANSI SQL ( 1986)


Aceito pelo ANSI X3H2

SQL 92 ( 1992 )

SQL 1999 ( 1999)

OQL v1 (1993 )
Parte do padro ODMG 93

Fig.17.: Evoluo das linguagens de consulta at o surgimento do SQL em 1999

Com o suporte a objetos complexos definidos pela SQL 3 como vdeo, imagem e textos os
fornecedores classificaram os seus produtos como Sistemas Gerenciadores de Dados Universais
, as extenses para esses objetos passaram a ser comercializadas como um produto parte.
[BEZERRA, 2003]
Foram includos novos tipos de dados bsicos:

BOOLEAN: o tipo lgico, possui como domnio de valores o conjunto

TRUE, FALSE, UNKNOWN }, no SQL 1999, expresses que retornam valores do


tipo BOOLEAN so tratadas como predicados;

CLOB ( Character Large Object Objeto de Carter Grande) e BLOB ( Binary


Large Object Objeto Binrio Grande ): Um campo BLOB pode armazenar dados

binrios, como uma imagem. Um CLOB estruturalmente similar ao BLOB, com


diferena de armazenar caracteres, como um currculo ou uma coleo de artigos. Em
um BLOB / CLOB os operadores > e < no podem ser utilizados, operadores
de comparao para esse tipo so igualdade = e desigualdade <> . BLOBs e
CLOBs tambm no podem ser utilizados em definies de chaves primrias e
chaves estrangeiras ou em clusulas ORDER BY e GROUP BY. O SQL 1999
tambm define o conceito de demarcador ( locator), ele serve como uma referncia
para uma instncia de um BLOB / CLOB e evita que todo seu contedo seja
transferido do Banco de Dados para a Aplicao.

CREATE TABLE Empregado ( nome CHAR VARYING ( 15 ),


currculo CLOB ( 25K )
CHARACTER SET BRAZILIAN
foto BLOB ( 5K ));

Fig.18.: No exemplo abaixo, possui um campo do tipo CLOB que pode


armazenar at 25.000 caracteres e possui tambm um campo BLOB que pode
armazenar at 5.000 bytes.

ARRAY: o tipo ARRAY representa um vetor unidimensional, ou seja, uma lista


contendo uma quantidade varivel de elementos do mesmo tipo, no so permitidos
vetores multidimensionais ( vetor de vetores ), o acesso aos elementos de um vetor
feito atravs da posio ordinal de cada um. O operador UNNEST usado na
transformao de uma coluna do tipo ARRAY em uma tabela cujas linhas contm os
valores armazenados no vetor.

CREATE TABLE Cidade ( nome CHAR VARYING ( 30 ),


populao INTEGER
parques CHAR ( 30 ) ARRAY [20] );

- Utiliza o construtor de ARRAY, atravs do par de colchetes.


INSERT INTO Cidade
VALUES (Campo Belo, 30000,
ARRAY [Parque da Saudade, Parque Esmeralda] );
- Seleciona o nome da cidade e o nome do primeiro parque.
SELECT nome, parques [1] AS parque
FROM Cidade
- Seleciona o nome da cidade e o nome de cada parque.
SELECT C.nome, P.nome
FROM Cidade AS C.UNNEST (C.parques) AS P(nome)

Fig.19.: No exemplo abaixo, possui um campo do tipo ARRAY, esse campo pode
armazenar at 20 cadeias de caracteres, cada uma com 30 posies.

ROW: o tipo ROW define uma estrutura dentro de uma coluna, se trata de uma
tabela aninhada dentro de outra tabela ( um distanciamento do modelo relacional
original, que pressupe tabelas normalizadas ). O tipo ROW semelhante aos tipos
Struct e Record das linguagens C e Pascal. Para armazenar informaes sobre
empregados, onde cada empregado possui um nome e um endereo. Essa ltima
informao modelada como um tipo ROW: um endereo uma estrutura formada
pelos campos logradouro, cidade UF e CEP.
[BEZERRA, 2003]

CREATE ROW TYPE TipoEndereco ( logradouro CHAR ( 30 ),


cidade CHAR ( 20 ),
unidadeFederativa CHAR ( 2 ),
CEP ROW ( prefixo CHAR ( 5 ),
sufixo CHAR ( 3 ) );
CREATE TABLE Empregados ( nome CHAR ( 40 ),
endereo TipoEndereco);

Fig.20.: No exemplo abaixo mostra que o tipo ROW pode ser nomeado ou no
nomeado ( ao contrrio do campo CEP, TipoEndereo um ROW nomeado).
INSERT INTO Empregados
VALUES (Ana Silva, (Rua XYZ, 28, Cuiab, MT, (22733,
000)));
SELECT E.nome, E.endereo.cidade
FROM Empregados E;
Fig.21.: No exemplo abaixo os componentes de um campo ROW so acessados
atravs do operador ..

Extenses Objeto Relacional:


Hierarquia de Tabelas;
Tipos de Dados Definidos pelo usurio;
Tipos de Dados de Coleo ( Ex.: Arrays )
Suporte a Large Objects ( LOBs)

TRIGGERS: o SQL 1999 introduz o conceito de TRIGGERS, que so rotinas


atreladas a eventos de modificao ( INSERT, UPDATE ou DELETE ) de uma
tabela, essa tcnica fornece um controle maior sobre os dados, pois as regras de
negcio escritas na TRIGGER so respeitadas por todas as aplicaes que utilizam o
banco. Outra vantagem que uma eventual modificao nas regras fica disponvel
automaticamente para todas essas aplicaes.
SavePoint;
Extenses Olap ( Cube e Roll Up );
Comando Select com recursividade;
Stored Procedures;
Funes definidas pelo usurio.
[BEZERRA, 2003]

Fig.22.: Hierarquia de tipos de dados do SQL 1999, os retngulos destacados correspondem


aos novos tipos.
[BEZERRA, 2003]

A ABNT ( Brazilian Association of Norms and Techniques - Associao Brasileira de


Normas e Tcnicas ) representante do Brasil, no comit da ISO, que trabalha na padronizao
da SQL. Um Brasileiro teve importante participao na criao do SQL 3, Nelson Mattos, P.H.D.
em Cincias da Computao e representante da IBM, que participou dos comits ANSI e ISO e
teve centenas de sugestes aceitas.
A SQL hoje muito mais do que uma linguagem de consulta; possvel criar tabelas,
ndices e vises; definir regras de integridade, impor restries de segurana, implementar
resposta a eventos utilizando triggers ; procedimentos e funes, alm de muitos outros
recursos. A tendncia que continue se distanciando de seu propsito original, agregando cada
vez mais funcionalidades.
A quarta gerao da linguagem SQL dever ser publicada em 2003 e possivelmente ser
chamada de SQL 2003. [LIMA, 2003]

10.2) Estrutura
A linguagem SQL bastante ampla, suportando comandos para criao e manipulao de
Banco de Dados, de tabelas, como de recuperao de dados. Alm desses recursos, a linguagem
ainda oferece recursos de segurana, permitindo criar usurios do Banco de Dados e restringir seu
acesso a eles.

A linguagem SQL tem diversas partes:

Linguagem de definio de dados ( Data Definition Language DDL): a DDL


proporciona comandos para a definio de esquemas de relaes, excluso de
relaes, criao de ndices e modificao nos esquemas de relaes;

Linguagem interativa de manipulao de dados ( Data Manipulation Language


DML ): a DML engloba comandos para insero, exluso e modificao de tuplas no
Banco de Dados;

Incorporao DML (Embedded SQL): a forma de comandos SQL incorporados foi


projetada para aplicao em linguagens de programao de uso geral, como PL / 1,
Cobol, Pascal, Fortran e C;

Definio de vises: a DDL possui comandos para definio de vises;

Autorizao: DDL engloba comandos para especificao de direitos de acesso a


relaes e vises;

Integridade: DDL possui comandos para especificao de regras de integridade que


os dados que sero armazenados no banco de dados devem satisfazer. Atualizaes
que violarem as regras de integridade sero desprezadas;

Controle de transaes: a SQL inclui comandos para a especificao de incio e


trmino de transaes, bem como bloqueios de dados para controle da concorrncia;

Algumas Definies de Tabelas:

Criao das Tabelas na tablespace TS_DADOS01


======================================
CREATE TABLE BANCO
(COD_BANCO

NUMBER(10),

NOME_BANCO

VARCHAR2(30),

ENDERECO

VARCHAR2(50))

TABLESPACE TS_DADOS01
---------------------------------------------------------------------CREATE TABLE AGENCIA_BANCO
(COD_BANCO

NUMBER(10),

COD_AGENCIA

NUMBER(7),

NOME_AGENCIA

VARCHAR2(30),

ENDERECO

VARCHAR2(40))

TABLESPACE TS_DADOS01
-----------------------------------------------------------------------

CREATE TABLE CONTA_CORRENTE


(NUM_CONTA

NUMBER(10),

COD_BANCO

NUMBER(10),

COD_AGENCIA

NUMBER(7),

SALDO

NUMBER,

TIPO

VARCHAR2(1),

CPF_CGC

NUMBER(12))

TABLESPACE TS_DADOS01
-----------------------------------------------------------------------

CREATE TABLE CLIENTE


(CPF_CGC

NUMBER(12),

NOME

VARCHAR2(50),

ENDERECO

VARCHAR2(60),

FONE

VARCHAR2(15))

TABLESPACE TS_DADOS01
----------------------------------------------------------------------CREATE TABLE EMPRESTIMO
(NUM_EMPRESTIMO

NUMBER(5),

VALOR

NUMBER,

PRAZO

NUMBER(2),

CPF_CGC

NUMBER(12),

COD_BANCO

NUMBER(10),

COD_AGENCIA

NUMBER(7))

TABLESPACE TS_DADOS01
-----------------------------------------------------------------------

Criao das Constraints NOT NULL


============================
ALTER TABLE BANCO
MODIFY NOME_BANCO NOT NULL
-------------------------------------------------------ALTER TABLE AGENCIA_BANCO
MODIFY NOME_AGENCIA NOT NULL
---------------------------------------------------------ALTER TABLE CONTA_CORRENTE
MODIFY SALDO NOT NULL
-----------------------------------------------------------ALTER TABLE CLIENTE
MODIFY NOME NOT NULL
-----------------------------------------------------------------------

Criao das Constraints CHECK


==========================
ALTER TABLE EMPRESTIMO
ADD CONSTRAINT
CK1_VALOR
CHECK (VALOR > 5000)
----------------------------------------------------------------------ALTER TABLE EMPRESTIMO
ADD CONSTRAINT CK_PRAZO
CHECK (PRAZO IN (12,24,36))
----------------------------------------------------------------------ALTER TABLE CONTA_CORRENTE
ADD CONSTRAINT CK_TIPO_CC
CHECK (TIPO IN ('J','F'))
----------------------------------------------------------------------Criao das Constraints Primary Key criando os index na Tablespace
TS_INDEX01
==========================================================
ALTER TABLE BANCO ADD CONSTRAINT PK_BANCO
PRIMARY KEY(COD_BANCO)
USING INDEX TABLESPACE TS_INDEX01
-----------------------------------------------------------------------------ALTER

TABLE

AGENCIA_BANCO

ADD

CONSTRAINT

PK_AGENCIA_BANCO
PRIMARY KEY(COD_BANCO, COD_AGENCIA)
USING INDEX TABLESPACE TS_INDEX01
----------------------------------------------------------------------ALTER

TABLE

CONTA_CORRENTE

ADD

CONSTRAINT

PK_CONTA_CORRENTE
PRIMARY KEY(NUM_CONTA, COD_BANCO, COD_AGENCIA)
USING INDEX TABLESPACE TS_INDEX01

----------------------------------------------------------------------ALTER TABLE CLIENTE ADD CONSTRAINT PK_CLIENTE


PRIMARY KEY(CPF_CGC)
USING INDEX TABLESPACE TS_INDEX01
----------------------------------------------------------------------ALTER

TABLE

EMPRESTIMO

ADD

PRIMARY

KEY(NUM_EMPRESTIMO)
USING INDEX TABLESPACE TS_INDEX01
-----------------------------------------------------------------------

Criao das Constraints FOREIGN KEY


===============================
ALTER TABLE AGENCIA_BANCO ADD CONSTRAINTS
FK_BANCO

FOREIGN

KEY(COD_BANCO)

REFERENCES

BANCO(COD_BANCO)
----------------------------------------------------------------------ALTER

TABLE

CONTA_CORRENTE

ADD

CONSTRAINT

KEY(COD_BANCO,COD_AGENCIA)

REFERENCES

FK_AGENCIA_BANCO
FOREIGN

AGENCIA_BANCO(COD_BANCO,COD_AGENCIA)
----------------------------------------------------------------------ALTER

TABLE

EMPRESTIMO

ADD

CONSTRAINT

FK_EMPRESTIMO
FOREIGN

KEY(COD_BANCO,COD_AGENCIA)

REFERENCES

AGENCIA_BANCO(COD_BANCO,COD_AGENCIA)
----------------------------------------------------------------------ALTER

TABLE

EMPRESTIMO

ADD

CONSTRAINT

FK_EMPRESTIMO_CPF
FOREIGN KEY(CPF_CGC) REFERENCES CLIENTE(CPF_CGC)
-----------------------------------------------------------------------

ALTER

TABLE

CONTA_CORRENTE

ADD

CONSTRAINT

FK_CONTA_CORRENTE_CFP
FOREIGN KEY(CFP_CGC) REFERENCES CLIENTE(CFP_CGC)
-------------------------------------------------------------------------

[CRISTINA E RICARDO, 2002]

10.3) Uma aplicao do SQL


Antes de vermos uma aplicao em SQL, precisamos entender as principais funes de
um SELECT:

SELECT: usada para relacionar os atributos desejados no resultado de uma consulta;


FROM: associa as relaes que sero pesquisadas durante a evoluo de uma
expresso;
WHERE: consiste em um predicado envolvendo atributos da relao que aparece na
clusula from.

SELECT < colunas_da_tabela >


FROM < nome_da_tabela >
WHERE < condio_lgica >
Quando desejamos suprimir duplicidades na apresentao de resultados de uma clusula
select, utilizamos a chave DISTINCT:

SELECT DISTINCT < colunas_da_tabela >


FROM < nome_da_tabela >

A clusula select pode conter expresses aritmticas envolvendo os operadores:


( +, -, *, / ) e operandos constantes ou atributos das colunas.
Quando queremos exibir todas as colunas ( ou atributos ) da tabela ( ou relao ),
podemos usar * em invs de especificar todas as colunas da tabela.

A clusula Where tem como finalidade delimitar um conjunto de valores ou intervalo de


valores a serem recuperados por uma clusula select, utiliza operadores lgicos AND, OR e
NOT e operadores de comparao ( <, <=, >, >=, = e <> ), alm desses utilizado tambm pelo
SQL operadores BETWEEN, usado para determinar intervalos de valores para uma coluna, e IN,
para a seleo de valores pontuais de uma coluna.

SELECT * FROM < nome_da_tabela >


WHERE < nome_da_coluna > BETWEEN < valor_inicial >
AND < valor_final >
SELECT * FROM < nome_da_tabela >
WHERE < nome_da_coluna > IN ( < srie_de_valores >)

Podemos tambm modificar os nomes das colunas de uma tabela para efeito de exibio
atravs da clusula AS:

SELECT < nome_da_coluna > AS < novo_nome >


FROM < tabela >

Temos tambm o operador LIKE, usado na clusula Where, til quando desejamos
encontrar coincidncias de pares, ou seja, quando procuramos por valores de atributos que sejam
semelhantes a um determinado valor fornecido.
Identificamos esses valores atravs do uso de dois caracteres especiais:

%: usado pra comparar qualquer substring;


_: usado para comparar qualquer caracter.

Seleciona da tabela ALUNOS todos os alunos cujo nome inicia com AU

SELECT NA, NOME


FROM ALUNOS
WHERE NOME LIKE AU %

Seleciona da tabela ALUNOS todos os alunos com NA= 107007, 117007, 127007,
ETC...

SELECT NA, NOME


FROM ALUNOS
WHERE LIKE 1_7007

A clusula ORDER BY permite a classificao das colunas de uma tabela de modo


decrescente ou crescente ( padro)

SELECT < colunas >


FROM < tabela >
ORDER BY < coluna_de_classificao > ASC
ou
ORDER BY < coluna_de_classificao > DESC

Para podermos entender melhor o que foi explicado anteriormente vamos utilizar uma
Consulta de um Sistema Mdico, observando o DER que necessrio para montar o sistema
por inteiro, localizamos tudo o que necessrio para fazermos o sistema, no s a consulta.

Fig.23.: DER
O Select para visualizar as tabelas que foram utilizadas no Sistema Mdico:

SQL> select table_name from user_tables


2 /

TABLE_NAME
-----------------------------AME_CONSELHO
AME_CONTATO
AME_CONVENIO
AME_DOCUMENTO
AME_ENDERECO
AME_ESPECIALIZACAO
AME_FILIACAO
AME_HORARIO

AME_HOSPITAL
AME_TB_BENEFICIO
AME_TB_CONSELHO

TABLE_NAME
-----------------------------AME_TB_CONVENIO
AME_TB_DIA_SEMANA
AME_TB_DOCUMENTO
AME_TB_ESPECIALIZACAO
AME_TB_EXAME
AME_TELEFONE

17 rows selected.

O Select para a busca especificamente iremos utilizar a Consulta de documentos


faltantes:

SELECT

'0',

a.cod_convenio,

a.nom_convenio,

a.nom_responsavel,

c.dsc_tb_documento
FROM ame_convenio a, ame_documento b, ame_tb_documento c
WHERE a.cod_convenio = b.cod_convenio
AND b.cod_tb_documento = c.cod_tb_documento
ORDER BY a.nom_convenio ASC

O Select para visualizar as tabelas do Select acima:

SQL> desc ame_convenio


Name
----------------------------------------COD_CONVENIO
NOM_CONVENIO
NOM_RESPONSAVEL
DAT_NASCIMENTO
NUM_RG
NUM_CPF
END_SITE
COD_TB_CONVENIO
DSC_FORMACAO
DAT_INCLUSAO
NOM_INCLUSAO
DAT_ALTERACAO
NOM_ALTERACAO
OPC_DOCTO_FALTA
DAT_ENTREGA_DOCTO

Null?
-------NOT NULL
NOT NULL
NOT NULL

NOT NULL
NOT NULL
NOT NULL
NOT NULL

Type
---------------NUMBER(6)
VARCHAR2(45)
VARCHAR2(35)
DATE
VARCHAR2(15)
NUMBER(11)
VARCHAR2(45)
NUMBER(3)
VARCHAR2(45)
DATE
VARCHAR2(8)
DATE
VARCHAR2(8)
NUMBER(1)
DATE

SQL> desc ame_documento


Name
Null?
----------------------------------------- -------COD_TB_DOCUMENTO
NOT NULL
COD_CONVENIO
NOT NULL

Type
-------------NUMBER(3)
NUMBER(6)

SQL> desc ame_tb_documento


Name
----------------------------------------COD_TB_DOCUMENTO
DSC_TB_DOCUMENTO
DAT_INCL_ALT
NOM_INCL_ALT
OPC_OBRIGATORIO

Null?
-------NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL

Type
------------NUMBER(3)
VARCHAR2(45)
DATE
VARCHAR2(8)
NUMBER(1)

Resposta do Select acima:


----------' COD_CONVENIO NOM_CONVENIO
- ------------ ----------------------NOM_RESPONSAVEL
----------------------------------DSC_TB_DOCUMENTO
-------------------------------------0
975 SRGIO JAMNIK
SRGIO JAMNIK
REGULARIZAO DO TERMO DE ADESO
0
1076 SNIA C. A. S. E SANTOS
SNIA C. A. S. E SANTOS
TELEFONE

11) Estudo de Casos


Para que possamos assimilar melhor tudo o que foi explicado nos captulos anteriores
alguns exemplos de utilizao de Gerenciamento de Usurios e seus Privilgios, sero explicados
abaixo.

Ex.1: Conectando no Sql/Plus com o usurio aula1 senha aula1 no banco de dados FAI.

SQL> conn aula1/aula1@fai


Conectado.

Ex.2: Criando um usurio chamado userxxxx (onde xxxx um nmero da sua matricula ),
com a senha senha_1234, utilizando a tablespace temp como tablespace default e a tablespace
temp como tablespace temporria e estabelecendo uma quota de 2 m na tablespace temp e 1 m
na tablespace temp.

SQL> create user user7264


2 identified by senha_1234
default tablespace temp
temporary tablespace temp
4 quota 2m on tools
5 quota 1m on users
6 profile default;

Usurio criado.

Ex.3: Alterando a senha do usurio que foi criado no item 2, escolhendo uma nova senha.
SQL> alter user user7264
2 identified by tha_fla;
Usurio alterado.

Ex.4: Tentando se conectar com o novo usurio que acabou de ser criado. O comando
para conexo : connect userxxxx/senha@fai.

Conn user7264/tha_fla@fai
Mas no se consegue conectar, pois falta o privilegio Session

Ex.5: Dando os privilgios necessrios para os usurio conseguirem se conectar.


Verifando os privilgios no material "Grants de Sistemas".

SQL> grant create SESSION to user7264;


Operao de Grant bem-sucedida.

Ex.6: Dando os privilgios necessrios para os usurios executarem as seguintes tarefas:


Criar tabelas, views e procedures;
Criar e alterar novos usurios;
Criar e alterar profile;
Dropar profiles;
Criar e Dropar triggers em qualquer usurio;
Criar roles;
Criar sinnimos (privados e pblicos);
Export e Import Bancos de Dados;
Selecionar dados dicionrio de dados.

SQL> grant create table, create view, create procedure to user7264


Operao de Grant bem-sucedida.

SQL> grant create user, alter profile to user7264;


Operao de Grant bem-sucedida.

SQL> grant drop profile to user7264;


Operao de Grant bem-sucedida.

SQL> grant create any trigger to user7264;


Operao de Grant bem-sucedida.

SQL> grant create role to user7264;


Operao de Grant bem-sucedida.

SQL> grant create synonym, create public synonym to user7264;


Operao de Grant bem-sucedida.

SQL> grant exp_full_database, imp_full_database to user7264;


Operao de Grant bem-sucedida.

Ex.7: Criando um profile chamado profile_xxxx, (onde xxxx um nmero da sua


matricula) com as seguintes caractersticas :

Cpu_per_session
Connect_time
Sessions_per_user
Nmero de logons errado, para bloqueio de senha
Validade da senha
Tempo de Bloqueio de usurio aps senha incorreta
SQL> create profile profile_7264 limit
2 cpu_per_session
3 connect_time

3000
50

4 sessions_per_user unlimited
5 failed_login_attempts 3
6 password_life_time 30
7* password_lock_time
SQL> /
Perfil criado.

3000
50
unlimited
3
30 dias
5 dias

Ex.8: Alterando o profile que foi criado limitando o nmero de sesses por usurios para
10 e a validade da senha para 60 dias.

SQL> alter profile profile_7264 limit


2 sessions_per_user 10
3 password_life_time 60;
Perfil alterado.

Ex.9: Alterando o usurio que foi criado no exerccio 2 (userxxxx), designando a ele o
profile criado no exerccio 7 (profilexxxx).

SQL> alter user user7264 profile profile_7264;


Usurio alterado.

Ex.10: Tentando conectar se digitando a senha errada mais de 3 vezes para validando se
o profile est OK.

SQL> conn user7264/12356@fai


ERROR:
ORA-28000: the account is locked

Ex.11: Conectando novamente como aula1/aula1@fai


userxxxx.

SQL> conn aula1/aula1@fai


Conectado.

SQL> alter user user7264 account unlock;


Usurio alterado.

para desbloquear o usurio

Ex.12: Conectando agora com o usurio que foi utilizado no laboratrio anteriormente
(alunoxx). connect alunoxx/senha@fai.
SQL> CONN ALUNO23A/FLATHA@FAI
Conectado.

Ex.13: Verificando quais tabelas foram criadas neste usurio. Utilizando a view do
dicionrio de dados USER_TABLES.

SQL> SELECT TABLE_NAME


2 FROM USER_TABLES;

TABLE_NAME
-----------------------------AGENCIA_BANCO
BANCO
CLIENTE
CONTA_CORRENTE
EMPRESTIMO
S_CUSTOMER
S_DEPT
S_EMP
S_IMAGE
S_INVENTORY
S_ITEM
S_LONGTEXT
S_ORD
S_PRODUCT
S_REGION
S_TITLE
S_WAREHOUSE
17 linhas selecionadas.

Ex.14: Dando privilgios para o usurio userxxxx para selecionar dados da tabela banco.

SQL> grant select on banco to user7264;


Operao de Grant bem-sucedida.

Ex.15: Conectando com o usurio userxxxx e selecionando todos os dados da tabela


BANCO do usurio alunoxx. Para selecionar dados de tabelas de outros usurios, basta colocar o
nome do usurio na frente do nome da tabela.

SQL> conn user7264/tha_fla@fai


Conectado.

SQL> select *
2 from aluno23a.banco;

ENDERECO

COD_BANCO

NOME_BANCO

-----------------

------------------------

---------------------

Banco do Brasil

Rua A, 43

409

Unibanco

Rua B, 55

356

Banco Real

Rua C, 55

341

Banco Ita

Rua D, 66

Ex.16: Conectado com o usurio userxxxx, tentando inserir os seguintes dados na tabela
banco do usurio alunoxx.
insert into alunoxx.banco values (200,'Banco ABC','Rua C, 76');
SQL> insert into aluno23a.banco values ( 200, 'banco abc','rua c, 76');
1 linha criada.

SQL> commit;
Validao completa.

Consege se conectar, pois o usurio user7264 tem o privilegio das Roles


exp_full_database, imp_full_database.

Ex.17: Conectado com o usurio alunoxx, criar uma role chamada role_xxxx (onde xxxx
um nmero da sua matricula).

SQL> conn aluno23a@fai


Conectado.

SQL> create role role_7264;


Funo criada.

Ex.18: Dando privilgios para a role_xxxx para selecionar, inserir, atualizar e excluir
dados das tabelas banco, cliente, conta_corrente, emprstimo.

SQL> grant select, insert, update, delete on banco to role_7264;


Operao de Grant bem-sucedida.

SQL> grant select, insert, update, delete on cliente to role_7264;


Operao de Grant bem-sucedida.

SQL> grant select, insert, update, delete on conta_corrente to role_7264;


Operao de Grant bem-sucedida.

SQL> grant select, insert, update, delete on emprestimo to role_7264;


Operao de Grant bem-sucedida.

Ex.19: Dando grant da role_xxxx para o usurio userxxxx :

SQL> grant role_7264 to user7264;


Operao de Grant bem-sucedida.

Ex.20: Conectando com o usurio userxxxx e tentando inserir novamente os seguintes


dados na tabela banco do usurio alunoxx.

insert into alunoxx.banco values (200,'Banco ABC','Rua C, 76');


SQL> conn user7264@fai
Conectado

SQL> insert into aluno23a.banco values ( 201, 'banco abc','rua c, 76');


1 linha criada.

SQL> commit;
Validao completa.

Consegue se conectar normalmente.

Ex.21: Conectado com o usurio userxxxx , criando a tabela agencia_banco (para


verificar com qual usurio est conectado, utilizando o comando show user);

CREATE TABLE AGENCIA_BANCO


(COD_BANCO

NUMBER(10),

COD_AGENCIA

NUMBER(7),

NOME_AGENCIA

VARCHAR2(30),

ENDERECO

VARCHAR2(40));

SQL> conn user7264@fai


Conectado.

SQL> create table

agencia_banco (

cod_banco

number(10),

cod_agencia

number(7),

nome_agencia varchar2(30),

endereco

varchar2(40) );

Tabela criada.

SQL> show user


USER "USER7264"

Ex.22: Criando uma constraint do tipo foreign key na tabela agencia_banco referenciando
a coluna cod_banco , da tabela banco do usurio alunoxx.

SQL> alter table agencia_banco add constraint agencia_banco_fk foreign key (


cod_banco )
2 references aluno23a.banco( cod_banco );
references aluno23a.banco( cod_banco )
*
ERRO na linha 2:
ORA-01031: insufficient privileges

No consegue se conectar, pois esta faltando o Grant de references na tabela banco.

Ex.23: Conectando o usurio alunoxx e dando o grant na tabela banco para que possa ser
criado a constraint mencionada acima.

SQL> conn aluno23a@fai


Conectado.
SQL> grant references on banco to user7264;
Operao de Grant bem-sucedida.

Ex.24: Conectando o usurio userxxxx e criaando a constraint novamente:

SQL> conn user7264/tha_fla@fai


Conectado.

SQL> alter table agencia_banco add constraint agencia_banco_fk 2 foreign


key ( cod_banco ) references aluno23a.banco( cod_banco );
Tabela alterada.

Ex.25: Consultando as views do dicionrio de dados para verificar os grants dados para
o usurio userxxxx. As views consultadas USER_TABS_PRIVS para verificar grant de
objectos, USER_SYS_PRIVS para verificar grant de sistemas e user_role_privs para verificar as
roles

SQL> select *
2 from user_sys_privs;

USERNAME

PRIVILEGE

------------------------------ ----------------------------------------

ADM
--------

USER7264

ALTER PROFILE

NO

USER7264

CREATE ANY TRIGGER

NO

USER7264

CREATE PROCEDURE

NO

USER7264

CREATE PUBLIC SYNONYM

NO

USER7264

CREATE ROLE

NO

USER7264

CREATE SESSION

NO

USER7264

CREATE SYNONYM

NO

USER7264

CREATE TABLE

NO

USER7264

CREATE USER

NO

USER7264

CREATE VIEW

NO

USER7264

DROP PROFILE

NO

11 linhas selecionadas.

SQL> select *
2 from user_role_privs;

USERNAME

ADM DEF OS_

GRANTED_ROLE

------------------------------ ------------------------------ --- --- ------------------------USER7264

EXP_FULL_DATABASE

NO YES NO

USER7264

IMP_FULL_DATABASE

NO YES NO

USER7264

ROLE_7264

NO YES NO

SQL> select *
2 from user_tab_privs
3 /

GRANTEE

OWNER

TABLE_NAME

GRANTOR
------------------------------ ------------------------------ ------------------------------ ------USER7264

ALUNO23A

BANCO

ALUNO23A

BANCO

ALUNO23A
USER7264
ALUNO23A

Ex.26: Dropando o profile profilexxxx

SQL> conn aula1/aula1@fai


Conectado.

SQL> Drop profile profile_7264


Perfil dropado.

Ex.27: Conectando no Sql/Plus com o usurio aula1 senha aula1 no banco de dados FAI.

SQL> conn aula1/aula1@fai


Conectado.

Ex.28: Criando um usurio chamado dbaxx (onde xx um nmero sequencial), com a


senha dbaxx, utilizando a tablespace tools como tablespace default e a tablespace temp como
tablespace temporria. Estabelecendo que ele ter quota ilimitada as tablespaces tools e users .

SQL> create user dba23


2 identified by dba23
3 default tablespace tools
4 temporary tablespace temp
5 quota unlimited on tools
6 quota unlimited on users;
Usurio criado.

Ex.29: Este usurio ter direito de repassar para outros usurios todos os privilgios que
forem concedidos a ele. Dando os privilgios para executar as seguintes tarefas:

Conectar-se ao Banco;
Criar tabelas, views e procedures em qualquer usurio;
Criar e alterar novos usurios;
Criar SnapShot;
Criar Tablespaces;
Criar database links (privados e pblicos);
Executar procedures do dicionrio de dados.

SQL> grant create SESSION to dba23;


Operao de Grant bem-sucedida.

SQL> grant create any table, create any view, create procedure to dba23 with
admin option;
Operao de Grant bem-sucedida.

SQL> grant create user to dba23 with admin option;


Operao de Grant bem-sucedida.

SQL> grant create snapshot to dba23 with admin option;


Operao de Grant bem-sucedida.

SQL> grant create tablespace to dba23 with admin option;


Operao de Grant bem-sucedida.

SQL> grant create database link to dba23 with admin option;


Operao de Grant bem-sucedida.

SQL> grant create public database link to dba23 with admin option;
Operao de Grant bem-sucedida.

SQL> grant execute_catalog_role to dba23 with admin option;


Operao de Grant bem-sucedida.

Ex.30: Conectando com o usurio dbaxx e dando privilgios para o usurio userxxxx
criar tablespace e criar snapshot. Mas no d a ele o direito de repassar este privilgio.

SQL> conn dba23/dba23@fai


Conectado.

SQL> grant create tablespace to user7264;


Operao de Grant bem-sucedida.

SQL> grant create snapshot to user7264;


Operao de Grant bem-sucedida.

Ex.31: Conectando com o usurio aula1 e retirando o privilgio de criar tablespace e criar
snapshot do usurio dbaxx.

SQL> conn aula1/aula1@fai


Conectado.

SQL> revoke create tablespace from dba23;


Revogao bem-sucedida.

SQL> revoke create snapshot from dba23;


Revogao bem-sucedida.

Ex.32: Consultando a views do dicionrio de dados USER_SYS_PRIVS verificando se


os privilgios dados pelo usurio dbaxx ainda permanecem. Para realizar este select dever estar
conectado com o usurio userxxxx.

SQL> conn user7264/tha_fla@fai;


Conectado.

SQL> select *
2* from user_sys_privs;

USERNAME

PRIVILEGE

ADM

------------------------------ ---------------------------------------- --------------USER7264

ALTER PROFILE

NO

USER7264

CREATE ANY TRIGGER

NO

USER7264

CREATE PROCEDURE

NO

USER7264

CREATE PUBLIC SYNONYM

NO

USER7264

CREATE ROLE

NO

USER7264

CREATE SESSION

NO

USER7264

CREATE SNAPSHOT

NO

USER7264

CREATE SYNONYM

NO

USER7264

CREATE TABLE

NO

USER7264

CREATE TABLESPACE

NO

USER7264

CREATE USER

NO

USER7264

CREATE VIEW

NO

USER7264

DROP PROFILE

NO

13 linhas selecionadas.

Ex.33: Conectado com o usurio aula1 dando privilgios

para o usurio dbaxx

selecionar, inserir e atualizar dados nas tabelas matriculas e alunos. Dando direito para que o
usurio dbaxx possa repassar estes privilgios.

SQL> conn aula1/aula1@fai

Conectado.

SQL> grant select, insert, update on matriculas to dba23 with grant option;

Operao de Grant bem-sucedida.

SQL> grant select, insert, update on alunos to dba23 with grant option;

Operao de Grant bem-sucedida.

Ex.34: Conectado com o usurio dbaxx d privilgios para o userxxxx selecionar, inserir
e atualizar dados nas tabelas matriculas e alunos do usurio aula1.

SQL> conn dba23/dba23@fai;


Conectado.

SQL> grant select,insert,update on aula1.matriculas to user7264;


Operao de Grant bem-sucedida.

SQL> grant select,insert,update on aula1.alunos to user7264;


Operao de Grant bem-sucedida.

Ex.35: Conectando com o usurio userxxxx e selecionando todos os dados das tabelas
matriculas e alunos do usurio aula1.

SQL> conn user7264/tha_fla@fai


Conectado.

SQL> select *
2 from aula1.matriculas;

MATRICULA

ANO

DISCIPLINA

----------------------------- ---------- ---------1245

2002 BCO DADOS

1246

2002 BCO DADOS

1247

2002 BCO DADOS

1248

2002 BCO DADOS

1249

2002 BCO DADOS

SQL> select *
2 from aula1.alunos;

MATRICULA

NOME

ENDERECO

FONE

------------------------ ---------- ----------------------------------- ----------------1245

LUIZ

RUA A, 201

5111-0987

1246

FATIMA

RUA B, 201

5222-0987

1247

DOMENICA RUA C, 229

5333-0987

1248

KATIA

RUA D, 239

5444-0987

1249

DENISE

RUA B, 109

5555-0987

Ex.36: Conectado agora com o usurio aula1, retirando o privilgio de selecionar,


atualizar das tabelas matriculas e alunos do usurio dbaxx.

SQL> revoke select,insert,update on aula1.matriculas from dba23;


Revogao bem-sucedida.

SQL> revoke select,insert,update on aula1.alunos from dba23;


Revogao bem-sucedida.

Ex.37: Conectado com o usurio userxxxx, tentando selecionar novamente todos os


dados das tabelas matriculas e alunos do usurio aula1.

SQL> conn user7264/tha_fla@fai


Conectado.

SQL> select *
2 from aula1.matriculas;

MATRICULA

ANO

DISCIPLINA

-------------------------------- ---------- ---------1245

2002 BCO DADOS

1246

2002 BCO DADOS

1247

2002 BCO DADOS

1248

2002 BCO DADOS

1249

2002 BCO DADOS

SQL> select *
2 from aula1.alunos;

MATRICULA

NOME

ENDERECO

FONE

---------- ---------- ---------------------------------------- -----------------------1245

LUIZ

RUA A, 201

5111-0987

1246

FATIMA

RUA B, 201

5222-0987

1247

DOMENICA RUA C, 229

5333-0987

1248

KATIA

RUA D, 239

5444-0987

1249

DENISE

RUA B, 109

5555-0987

Ex.38: Conectado com o usurio userxxxx, verificando quais privilgios que este usurio
tem nas tabelas matriculas e alunos.

SQL> conn user7264/tha_fla@fai


Conectado.

SQL> select *
2 from user_sys_privs
3 /

USERNAME

PRIVILEGE

ADM

------------------------------------------ ---------------------------------------- --USER7264

ALTER PROFILE

NO

USER7264

CREATE ANY TRIGGER

NO

USER7264

CREATE PROCEDURE

NO

USER7264

CREATE PUBLIC SYNONYM

NO

USER7264

CREATE ROLE

NO

USER7264

CREATE SESSION

NO

USER7264

CREATE SNAPSHOT

NO

USER7264

CREATE SYNONYM

NO

USER7264

CREATE TABLE

NO

USER7264

CREATE TABLESPACE

NO

USER7264

CREATE USER

NO

USER7264

CREATE VIEW

NO

USER7264

DROP PROFILE

NO

13 linhas selecionadas.

No foram perdidos nenhum privilegio, pois o usurio user7264 tem o


privilegio das Roles de exp_full_database, imp_full_database.

[CRISTINA E RICARDO, 2002]

12) Concluso
Na elaborao deste trabalho permitiu se conhecer um pouco mais sobre Banco de
Dados, Sistemas Gerenciadores de Banco de Dados e SQL to utilizados na informtica.
Estudando Banco de Dados e aprendendo a utiliza-los algo essencial para o exercer da
informtica, pois se trata de uma cincia geradora de informaes e cada vez mais necessrio
armazena-las e ter acesso s mesmas de maneira rpida e precisa.
Foi procurado enfatizar aspectos bsicos de banco de dados, seu comportamento, sua
utilizao, os tipos de usurios, arquiteturas e modelos. O objetivo maior foi alcanado, de gerase um contedo bsico e introdutrio no que se diz respeito ao que existe de atual em Banco de
Dados.
O Banco de Dados entrou no mercado a mais de 20 anos e existem dezenas de
fornecedores com suas solues oferecendo diversos servios e arquiteturas (Os principais:
Orientados a Objetos, Relacionais e Hierrquicos). Em se tratando de bancos de dados
relacionais, os mesmos esto incorporando recursos orientados a objetos em seus produtos da
prxima gerao. Essas duas tendncias devem prosseguir. Ambas proporcionam poderosos
recursos de modelagem orientada a objeto aos desenvolvedores de aplicao.
Enfim, Banco de Dados uma tecnologia que possui um potencial enorme de crescimento
e avano e novas e inovadoras idias tm aparecido. Como sugesto de trabalhos futuros, dar
mais enfoque no estudo sobre a linguagem SQL, como melhorar a performance de consulta.
Tambm, um assunto extremamente importante e inovador, o estudo de sua variante, o OQL Object Query Language e sua nfase em Banco de Dados Orientados a Objetos.

Referncia:
Livros:

[YONG, 1983] Banco de Dados / Organizao Sistemas e Administrao


Autor: Chu, Shao Yong
Ano: 1983

[CORNACHIONE, 1998] Informtica para as reas de Contabilidade, Administrao e


Economia
Autor: Cornachione Jr
Edgard Bruno
Editora: Atlas / So Paulo
Edio: 2 / Ano: 1998

[SILBERSCHATZ, 1999] - Sistema de Banco de Dados


Autor: Abraham Silberschatz
Henry F. Korth
S. Sudarshan
Editora: Makron Books / So Paulo
Edio:3 / Ano: 1999

[OLIVEIRA, 1999] Mini dicionrio Compacto de Informtica


Autor: Renato da Silva Oliveira
Editora: Rideel / So Paulo
Edio:2 / Ano: 1999

[DATE, 2000] Introduo a Sistema de Banco de Dados


Autor: Date, C.J.
Editora: Campus / Rio de Janeiro
Ano: 1999

Apostilas:

[MOREIRA, 2002] Sistema de Banco de Dados


Universidade So Judas Tadeu
Autor: Prof Ricardo Moreira
Ano: 2002

[INCIO, 2002] Sistema de Banco de Dados


Oracle Brasil
Autor: Prof Joo Incio
Ano: 2002

Revista:

[LIMA, 2003] Revista SQL Magazine


Jornalista: Joo Alberto de O. Lima
Edio: 4
Distribuidora: Fernando Dist. S/A
Ano: 2003

[BEZERRA, 2003] Revista SQL Magazine


Jornalista: Eduardo Bezerra
Edio: 4
Distribuidora: Fernando Chinaglia Dist. S/A
Ano: 2003

Estudo de Casos:

[CRISTINA E RICARDO, 2002] Exerccios feitos em aula


Local: Unifai Ipiranga
Professores: Cristina
Ricardo
Ano: 2002

Sites:

[UNIMAR, 2003] - http:// www.unimar.edu.br

[ITA, 2003] http:// www.ita.com.br

http:// www.avec.br/download/sql.doc

http:// www.eac.fea.usp.br/eac/docentes/edgard/eac191www/arquivos%5Ceac191_grupo3.doc

http:// orbita.starmedia.com/curso_tecinf/vb60sql.doc

http:// www. macoratti.net/cursosql.htm

Das könnte Ihnen auch gefallen