Beruflich Dokumente
Kultur Dokumente
UNIFAI
So Paulo
2003
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
2.1
EXEMPLOS......................................................................................................... 15
2.2
HISTRICO......................................................................................................... 17
3.1
MODELO HIERRQUICO................................................................................. 20
3.2
MODELO DE REDES......................................................................................... 21
3.3
MODELO RELACIONAL................................................................................... 22
3.4
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
5.1
CONJUNTO DE ENTIDADES............................................................................ 31
5.2
CONJUNTO DE RELACIONAMENTO............................................................. 32
5.3
5.3.1
6.1
ESTRUTURA BSICA....................................................................................... 37
7.1
7.2
PARA
QUE
GUARDAR
DADOS
NECESSIDADES
DE
ARMAZENAMENTO ) ? .................................................................................... 42
8.1
10
SQL....................................................................................................................... 45
10.1
HISTRICO......................................................................................................... 46
10.2
ESTRUTURA....................................................................................................... 54
10.3
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 7
- Tabela Cad_Curso....................................................................................... 25
Figura 8
- Tabela Cad_Curso....................................................................................... 28
Figura 9
- Tabela Cad_Dependentes............................................................................ 28
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.
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
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.
Qualquer empresa tem necessariamente que manter uma quantidade de dados sobre suas
operaes; estes so os dados operacionais.
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).
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
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
__________________________________________________________________________________________
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
70.
Fornecedor
Endereo
Municpio
Rua
Bairro
CEP
[SILBERSCHATZ, 1999]
[SILBERSCHATZ, 1999]
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]
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)
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]
Chave Primria
Chave Estrangeira
Chave Alternativa
Nom_Aluno
Mat_Aluno
Cur_Aluno
Paulo
7150
Economia
Paula
7152
Administrao
Daniel
7154
Cincias Contbeis
Daniela
7156
Cincias Contbeis
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
Nom_Depto
Vendas
Produo
Financeiro
TB_Departamento
Carlos
71
Paula
72
Pedro
73
Eduarda
TB_Empresa
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
Conjunto de entidades
Conjunto de relacionamento
Diagrama Entidade Relacionamento
no so
Seguro_Social
Rua_Cliente
Nome_Cliente
Nmero_Emprstimo
Saldo
Cidade_Cliente
Devedor
Cliente
Emprstimo
Fig.11.: DER
[SILBERSCHATZ, 1999]
Entidades Fracas
Entidades Fortes
DT_Pagamento
Nmero_Emprstimo
Total
Nmero_Pagamentos
Emprstimo
Pagamentos_
Emprstimo
Total_Pagamento
Pagamentos
[SILBERSCHATZ, 1999]
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.
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
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.
Programa
Acesso
Lgico
Sistema
operacional
Acesso
fsico
Arquivo
Banco de
Dados
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;
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.
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
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]
(e
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 +
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.
SEQUEL ( 1974 )
(Pela IBM )
SQL 92 ( 1992 )
OQL v1 (1993 )
Parte do padro ODMG 93
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:
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]
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 ..
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.
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
-----------------------------------------------------------------------
NUMBER(10),
COD_BANCO
NUMBER(10),
COD_AGENCIA
NUMBER(7),
SALDO
NUMBER,
TIPO
VARCHAR2(1),
CPF_CGC
NUMBER(12))
TABLESPACE TS_DADOS01
-----------------------------------------------------------------------
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
-----------------------------------------------------------------------
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
TABLE
EMPRESTIMO
ADD
PRIMARY
KEY(NUM_EMPRESTIMO)
USING INDEX TABLESPACE TS_INDEX01
-----------------------------------------------------------------------
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)
-------------------------------------------------------------------------
Podemos tambm modificar os nomes das colunas de uma tabela para efeito de exibio
atravs da clusula AS:
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:
Seleciona da tabela ALUNOS todos os alunos com NA= 107007, 117007, 127007,
ETC...
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:
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.
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
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
Type
-------------NUMBER(3)
NUMBER(6)
Null?
-------NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
Type
------------NUMBER(3)
VARCHAR2(45)
DATE
VARCHAR2(8)
NUMBER(1)
Ex.1: Conectando no Sql/Plus com o usurio aula1 senha aula1 no banco de dados FAI.
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.
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
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.
Ex.9: Alterando o usurio que foi criado no exerccio 2 (userxxxx), designando a ele o
profile criado no exerccio 7 (profilexxxx).
Ex.10: Tentando conectar se digitando a senha errada mais de 3 vezes para validando se
o profile est OK.
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.
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> 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.
Ex.17: Conectado com o usurio alunoxx, criar uma role chamada role_xxxx (onde xxxx
um nmero da sua matricula).
Ex.18: Dando privilgios para a role_xxxx para selecionar, inserir, atualizar e excluir
dados das tabelas banco, cliente, conta_corrente, emprstimo.
SQL> commit;
Validao completa.
NUMBER(10),
COD_AGENCIA
NUMBER(7),
NOME_AGENCIA
VARCHAR2(30),
ENDERECO
VARCHAR2(40));
agencia_banco (
cod_banco
number(10),
cod_agencia
number(7),
nome_agencia varchar2(30),
endereco
varchar2(40) );
Tabela criada.
Ex.22: Criando uma constraint do tipo foreign key na tabela agencia_banco referenciando
a coluna cod_banco , da tabela banco do usurio alunoxx.
Ex.23: Conectando o usurio alunoxx e dando o grant na tabela banco para que possa ser
criado a constraint mencionada acima.
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
NO
USER7264
CREATE PROCEDURE
NO
USER7264
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
GRANTED_ROLE
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.27: Conectando no Sql/Plus com o usurio aula1 senha aula1 no banco de dados FAI.
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 any table, create any view, create procedure 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.
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.
Ex.31: Conectando com o usurio aula1 e retirando o privilgio de criar tablespace e criar
snapshot do usurio dbaxx.
SQL> select *
2* from user_sys_privs;
USERNAME
PRIVILEGE
ADM
ALTER PROFILE
NO
USER7264
NO
USER7264
CREATE PROCEDURE
NO
USER7264
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.
selecionar, inserir e atualizar dados nas tabelas matriculas e alunos. Dando direito para que o
usurio dbaxx possa repassar estes privilgios.
Conectado.
SQL> grant select, insert, update on matriculas to dba23 with grant option;
SQL> grant select, insert, update on alunos to dba23 with grant option;
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.
Ex.35: Conectando com o usurio userxxxx e selecionando todos os dados das tabelas
matriculas e alunos do usurio aula1.
SQL> select *
2 from aula1.matriculas;
MATRICULA
ANO
DISCIPLINA
1246
1247
1248
1249
SQL> select *
2 from aula1.alunos;
MATRICULA
NOME
ENDERECO
FONE
LUIZ
RUA A, 201
5111-0987
1246
FATIMA
RUA B, 201
5222-0987
1247
5333-0987
1248
KATIA
RUA D, 239
5444-0987
1249
DENISE
RUA B, 109
5555-0987
SQL> select *
2 from aula1.matriculas;
MATRICULA
ANO
DISCIPLINA
1246
1247
1248
1249
SQL> select *
2 from aula1.alunos;
MATRICULA
NOME
ENDERECO
FONE
LUIZ
RUA A, 201
5111-0987
1246
FATIMA
RUA B, 201
5222-0987
1247
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> select *
2 from user_sys_privs
3 /
USERNAME
PRIVILEGE
ADM
ALTER PROFILE
NO
USER7264
NO
USER7264
CREATE PROCEDURE
NO
USER7264
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.
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:
Apostilas:
Revista:
Estudo de Casos:
Sites:
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