Escolar Documentos
Profissional Documentos
Cultura Documentos
UNIFAI
São Paulo
2003
JAQUELINE LACERDA DOS SANTOS
São Paulo
2003
AGRADECIMENTOS
Primeiramente a Deus por estar sempre presente na minha vida, por me dar saúde, inteligência,
força e coragem para enfrentar todos os obstáculos.
Aos meus pais pela educação e apoio designado a mim por todos os anos de estudo.
Ao Profº. Ms. André Luiz Garcia Pereira pela atenção e colaboração no decorrer desta pesquisa,
sempre apresentado e observando os pontos de maior importância.
RESUMO
Este trabalho tem como objetivo analisar as mudanças ocorridas nos últimos anos em
relação à tecnologia de Banco de Dados. A qual sofreu várias mudanças, saindo de meras
relações hierárquicas até chegar ao conceito de objetos. Atualmente as aplicações requerem
objetos compostos com uma complexa estrutura interna, tendo um gerenciamento de
comportamentos que engloba métodos associados a objetos e suas operações, amplas regras de
negócios e longas transações.
Estas necessidades, juntamente como conhecimento adquirido ao longo da utilização da
tecnologia de armazenamento em computadores, leva-se a banco de dados sofisticados, até
mesmo orientado a objetos, que ao contrário dos primeiros bancos de dados, que caracterizam–se
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 métodos,
hierarquia de classes, múltipla herança, identidade de objetos, etc.
Com as imposições de mercado juntamente com as evoluções dos conceitos associados à
tecnologia, tem-se a garantia de que serão seguidas as regras de negócio, trazendo para os tempos
atuais, uma maior facilidade em um único objetivo: a integridade e a velocidade da informação.
SUMÁRIO
1 INTRODUÇÃO.................................................................................................... 12
2 CONCEITOS E DEFINIÇÕES DE BANCO DE DADOS.................................. 13
2.1 EXEMPLOS......................................................................................................... 15
2.2 HISTÓRICO......................................................................................................... 17
3 MODELOS DE BANCOS DE DADOS.............................................................. 19
3.1 MODELO HIERÁRQUICO................................................................................. 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
4 CHAVES............................................................................................................... 27
4.1 CHAVES PRIMÁRIA.......................................................................................... 28
4.2 CHAVE ESTRANGEIRA.................................................................................... 29
4.3 CHAVE ALTERNATIVA.................................................................................... 30
5 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
6 ESTRUTURA DOS BANCOS DE DADOS RELACIONAIS............................ 36
6.1 ESTRUTURA BÁSICA....................................................................................... 37
7 O QUE É SGBD ? ................................................................................................ 38
7.1 AS VANTAGENS E DESVANTAGENS DO USO DE UM SGBD.................. 40
7.2 QUANDO NÃO UTILIZAR UM SGBD............................................................. 41
8 PARA QUE GUARDAR DADOS ( NECESSIDADES DE
ARMAZENAMENTO ) ? .................................................................................... 42
8.1 PRINCIPAIS OPERAÇÕES PARA ATUALIZAÇÃO DOS DADOS............... 43
9 NECESSIDADE DE UMA FERRAMENTA PARA ISSO SQL UMA
LINGUAGEM DE CONSULTA.......................................................................... 44
10 SQL....................................................................................................................... 45
10.1 HISTÓRICO......................................................................................................... 46
10.2 ESTRUTURA....................................................................................................... 54
10.3 UMA APLICAÇÃO DO SQL.............................................................................. 59
11 ESTUDO DE CASOS........................................................................................... 66
12 CONCLUSÃO...................................................................................................... 86
REFERÊNCIA.................................................................................... 87
LISTA DE ILUSTRAÇÕES
Informações para
o usuário
Banco de Dados
(Arquivos Físico)
Fig.2.: Na figura abaixo é possível entender melhor o Banco de Dados com a Representação
Física.
2.1) Exemplos
Integrado, significa que o Banco de Dados pode ser a união de diversos arquivos que, de
outra forma seriam distintos, eliminando parcial ou totalmente qualquer redundância entre os
arquivos;
Compartilhado, significa que partes individuais de dados podem ser compartilhados entre
diversos usuários diferentes, significando que cada um daqueles usuários pode ter acesso à
mesma parte do dado (e pode usá-la para finalidades diferentes).
2.2) Histórico
__________________________________________________________________________________________
¹ Empresa América de Administração
² Marca que identifica toda a linha de microcomputadores pessoais fabricados pela IBM.
³ Inicio da Terceira Geração de Computadores em termos de Hardware, e de Software Básico.
4
Linguagem de Programação iniciada nos anos 60 e 70, principalmente para processamento de informações
comerciais.
5
Linguagem de Programação 1 de alto nível que acompanhou o IBM / 360.
6
Edgar Frank Codd, Cientista Inglês criador da tecnologia de Banco de Dados Relaciona (SQL) na década 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 usuário. O modelo mais utilizado atualmente é o
relacional, pois através dele os dados podem ser percebidos pelo usuário como tabelas e os
operadores à disposição do usuário podem gerar novas tabelas a partir das tabelas antigas.
Os sistemas que antecedem o modelo relacional são chamados de pré-relacionais, são
eles: hierárquicos e de rede. São modelos considerados hábito e possuem uma característica
comum, todos eles expõem ponteiros para o usuário; 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 referência para organizar dados, todo SGBD
deve suportar um modelo que permita uma representação dos dados de uma realidade.
O esquema conceitual de uma aplicação é o resultado da adequação dos requisitos de
dados desta aplicação ao modelo de dados do SGBD. Todo modelo de dados deve suportar, no
mínimo, a especificação de entidades e relacionamentos.
Historicamente, os primeiros modelos de Banco de Dados surgiram na década de 60,
desde então, a pesquisa científica na área procura evoluir no sentido de definir e encontrar
modelos que representem da melhor maneira possível os dados de uma realidade, ou seja, que
organizem os dados de uma forma mais próxima à maneira como estes são vistos e manipulados
pelas pessoas no mundo real. [MOREIRA, 2002]
Além disso, na implementação de um modelo, busca-se também organizações de dados e
estratégias de processamento que otimizem a performance de acesso e métodos de acesso que
sejam independentes da aplicação. Um exemplo, disso é a linguagens de consulta, retirando da
mesma a tarefa de programar procedimentos para realizar operações sobre dados.
3.1) Modelo Hierárquico
Fornecedor
Endereço
[SILBERSCHATZ, 1999]
3.2) 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 década de 70, é
considerado até hoje uma das maiores inovações técnicas do século XX.
É o modelo de dados dominante no mercado atualmente, organiza dados em um conjunto
de relações (tabelas), alem disso é o mais fácil de ser descrito e entendido.
O Modelo Relacional consagrou – se como o primeiro modelo de dados para aplicações
comerciais. Os primeiros sistemas de Banco de Dados tiveram por base, o modelo de rede e
modelo hierárquico, esses dois modelos antigos estão mais próximos da implementação no nível
físico que no modelo relacional.
No mercado existem outros tipos de sistemas, porém há um pré - domínio dos SGBDs
relacionais, principalmente fora das plataformas de grande porte, nestes ambientes estão
gradativamente substituindo o SGBD de outras abordagens (Hierárquica, Rede, por exemplo).
Banco de Dados Relacional é um grupo de dados percebido pelos usuários como um conjunto de
tabelas. [DATE, 2000]
A terminologia “relação” foi utilizada na estrutura original devido ao fato de que os
sistemas relacionais baseiam – se num conjunto fundamental de idéias teóricas conhecidas como
modelo relacional. Essa terminologia é a mais comum na área acadêmica.
A terminologia “ tabela” é mais comum na prática e nos produtos comerciais.
Uma “relação” é vista como uma “tabela”, onde as colunas indicam os campos e as
linhas as ocorrências (valores). Relacionamentos entre relações são 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
3.4.2) Tabelas
Uma tabela é uma área de disco ou memória que armazena uma coleção de dados sobre
um tópico especifico, a mesma organiza os dados em colunas e linhas.
No Banco de Dados Relacional as tabelas apresentam relações lógicas entre elas.
Nome do Campo
(Nome do Atributo)
Linha
(Tupla)
3.4.4) Linhas
Cada linha é composta por uma série de campos, na terminologia acadêmica, as linhas são
chamadas de “Tuplas”.
3.4.5) Colunas
O conjunto de campos homônimos 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 noção de “caso de registro horizontal” ,
como o termo “relação” corresponde a noção de “tabela” . [UNIMAR, 2003]
4) Chaves
A chave é o conceito básico para identificar linhas e estabelecer relações 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 Primária, Candidata ou Super Chave, é uma propriedade do conjunto de
entidades e não de uma entidade individualmente. Quaisquer duas entidades individuais em um
conjunto não podem ter ao mesmo tempo, os mesmos valores em seus atributos – chave.
[INÁCIO, 2002]
Chave Primária
Chave Estrangeira
Chave Alternativa
4.1) Chave Primária
Cod_Depto Nom_Depto
1 Vendas TB_Departamento
2 Produção
3 Financeiro
A Chave Alternativa em algumas ocasiões mais de uma coluna podem servir para
distinguir uma linha das demais, uma das colunas é escolhida como chave primária e as demais
colunas são chamadas de “Chave Alternativa”.
No Banco de Dados da tabela Cad_Funcionário, 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 primária a coluna “Cod_Empresa”, então diz – se
que a coluna “RG” é uma chave alternativa.
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 mudança, que se referem a
tentativa de representar o significado dos dados. [SILBERSCHATZ, 1999]
Conjunto de entidades
Conjunto de relacionamento
Diagrama Entidade – Relacionamento
Uma entidade é um “objeto” no Mundo Real que pode ser identificada de forma única em
relação a todos outros objetos, sendo representada por um conjunto de atributos.
Atributos são 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 não são necessariamente separados. Um exemplo, é possível
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 também a ambos ou a nenhum.
A denominação de um atributo para um conjunto de entidades manifesta que o Banco de
Dados matem informações similares de cada uma das entidades do conjunto de entidades;
entretanto cada entidade pode ter seu próprio valor em cada atributo.
Os atributos possíveis ao conjunto de entidades clientes são:
nome_cliente
seguro_social
rua_cliente
cidade_cliente
número_empréstimo
conta
Um relacionamento é uma associação entre várias entidades e também pode ter atributos
descritivos.
Em um relacionamento, podemos também definir alguns conceitos, tais como:
Nome_Cliente Cidade_Cliente
Fig.11.: DER
[SILBERSCHATZ, 1999]
Os atributos de um conjunto de entidades que são membros de uma chave primária devem
ser sublinhados.
Uma linha direcionada do conjunto de relacionamentos devedor para o conjunto de
entidades empréstimo especifica que devedor é um conjunto de relacionamentos muitos para
muitos ou um para muitos, de cliente para empréstimo.
Entidades Fracas
Entidades Fortes
5.3.1) Entidades Fracas e Fortes
Entidades Fracas são conjuntos de entidades que não têm atributos suficientes para
formar uma Chave Primária, enquanto as Entidades Fortes possuem esses atributos.
Um membro de um conjunto de entidades fortes é definido como uma entidade
dominante, ao contrário um membro de um conjunto de entidades fracas é uma entidade
subordinada.
Embora as entidades fracas não tenham uma chave primária, elas possuem uma Chave
Parcial que permite a distinção entre cada entidade fraca integrante do conjunto.
A chave primária de um conjunto de entidades fracas é formada pela chave primária do
conjunto de entidades fortes, mais a chave parcial do conjunto de entidades fracas.
O conjunto de entidades dominantes de identificação é dito Proprietário do conjunto de
entidades fracas por ele identificada. O relacionamento que associa o conjunto de entidades
fracas a seu proprietário é o relacionamento identificador.
Um conjunto de entidades fracas é identificado no diagrama E-R pela linha dupla usada
no retângulo e no losangos do relacionamento correspondente.
DT_Pagamento
Número_Empréstimo Total
Número_Pagamentos Total_Pagamento
Um Banco de Dados Relacional resume - se em uma coleção 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 coleção de relacionamento entre o conceito de “tabela” e o
conceito de “relação” a partir das quais se origina o nome desse modelo de dados.
Programa
Acesso
Lógico
Sistema
operacional
Acesso
físico
Arquivo
Programa
Chamada
externa
SGBD
Acesso
lógico
Sistema
operacional
Acesso
físico
Método
de acesso Banco de
Dados
Toda vez que for necessário atualizar um arquivo de um grupo, então todos os
grupos devem ser atualizados para manter a integridade dos dados no ambiente
como um todo;
Um SGBD multi – usuário deve permitir que múltiplos usuários acessem o banco de
dados ao mesmo tempo, este fator é essencial para que múltiplas aplicações integradas possam
acessar o banco.
O SGBD multi – usuário deve manter o controle de concorrência para assegurar que o
resultado de atualizações sejam corretos e deve fornecer recursos para a construção de múltiplas
visões.
Um SGBD deve fornecer um subsistema de autorização e segurança, o qual é utilizado
pelo DBA para criar “contas” e especificar as restrições destas contas; o controle de restrições 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 estão relacionados de
várias formas, deve fornecer recursos para se representar uma grande variedade de
relacionamentos entre os dados como: recuperar e atualizar os dados de maneira prática e
eficiente.
Um SGBD deve fornecer recursos para recuperação de falhas tanto de software quanto de
hardware.
7.2) Quando não utilizar um SGBD
Em alguns situações, o uso de um SGBD pode representar uma carga desnecessária aos
custos quando comparado à abordagem tradicional de arquivos como por exemplo:
Um Banco de Dados representará sempre aspectos do Mundo Real. Sendo assim uma
Base de Dado é uma fonte de onde poderemos extrair muitas informações derivadas, que possui
um nível de interação com eventos como o Mundo Real.
A forma mais comum entre o usuário e o Banco de Dados, será através de sistemas
específicos que por sua vez acessam o volume de informações geralmente através da linguagem
SQL.
Os Analistas e Programadores de Desenvolvimento, criam sistemas que acessam os dados
da forma necessária ao usuário 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 faça, sem se preocupar de que forma o trabalho será realizado,
o que importa é o resultado.
10) SQL
Apesar de todo trabalho com pesquisa iniciado e desenvolvido pela IBM, o primeiro
sistema de gerenciador de banco de dados relacional ( SGBDR ) disponível no mercado foi o “
Oracle “, lançado em 1979 por uma empresa chamada “ Relational Software “ ( hoje, Oracle
Corporation - Corporação de oráculo ). A entrada da IBM neste mercado só aconteceu em 1981,
com o lançamento do SQL / DS, e sua consolidação veio apenas em 1983, com o DB2.
No inicio da década de 80 várias implementações de SGBDRs utilizavam SQL, cada
fornecedor passou a incluir extensões à linguagem conforme seu interesse, então logo se
percebeu que era importante a padronização para permitir a portabilidade entre os diversos
produtos disponíveis, 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 Padrão
Nacional ) publicou o primeiro padrão em 1986 e denominou o nome de SQL 86, mas no ano
seguinte, o padrão foi publicado como uma norma internacional pela ISO ( Internacional
Organization for Standardization - Organização Internacional de Normalização ).
Em 1989 uma nova padronização 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 versão do padrão que ficou conhecida como SQL
92 ou SQL 2, contendo 589 páginas ( quase cinco vezes maior do que o SQL 89 que tinha 120
páginas ).
Padrão Número de Páginas
SQL 86 105
SQL 89 120
SQL 92 575
SQL 99 1500 +
Atualmente 3000 +
Várias novidades foram agregadas nesta versão, como novos tipos de dados ( DATE e
TIME ), tabelas temporárias, catálogos, domínios, SQL Dinâmico, tabelas derivadas na cláusula
FROM, múltiplos operadores de JOIN, entre outras.
O curioso é que muitos desses recursos não foram implementados até hoje pelos
fornecedores, na SQL 92, foram definidos 3 níveis de conformidade:
No inicio da década de 90, era grande o marketing das empresas que tentavam alcançar 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 Administração de Objetos e Dados ), vinculada à OMG ( Object
Managment Group – Grupo de Administração de Objetos ), para padronizar a OQL.
Em uma reunião o comitê de padronização da SQL trabalhava para implementar
características de orientação a objeto ao modelo relacional, gerando em 1999 o padrão mais
recente, que ficou conhecido como SQL 3 ( ISSO / IEC 9075 ), sendo está versão maior que a
anterior.
Árvore Genealógica do SQL
SEQUEL ( 1974 )
(Pela IBM )
SQL 92 ( 1992 )
Com o suporte a objetos complexos definidos pela SQL 3 como vídeo, imagem e textos os
fornecedores classificaram os seus produtos como “ Sistemas Gerenciadores de Dados Universais
”, as extensões para esses objetos passaram a ser comercializadas como um produto à parte.
[BEZERRA, 2003]
Foram incluídos novos tipos de dados básicos:
Fig.19.: No exemplo abaixo, possui um campo do tipo ARRAY, esse campo pode
armazenar até 20 cadeias de caracteres, cada uma com 30 posições.
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 pressupõe tabelas normalizadas ). O tipo ROW é semelhante aos tipos
Struct e Record das linguagens C e Pascal. Para armazenar informações sobre
empregados, onde cada empregado possui um nome e um endereço. Essa última
informação é modelada como um tipo ROW: um endereço é 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 não
nomeado ( ao contrário do campo CEP, TipoEndereço é um ROW nomeado).
Podemos também modificar os nomes das colunas de uma tabela para efeito de exibição
através da cláusula AS:
Temos também o operador LIKE, usado na cláusula Where, é útil quando desejamos
encontrar coincidências de pares, ou seja, quando procuramos por valores de atributos que sejam
semelhantes a um determinado valor fornecido.
Identificamos esses valores através do uso de dois caracteres especiais:
Para podermos entender melhor o que foi explicado anteriormente vamos utilizar uma “
Consulta de um Sistema Médico”, observando o DER que é necessário para montar o sistema
por inteiro, localizamos tudo o que necessário para fazermos o sistema, não só a consulta.
Fig.23.: DER
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.
-----------
' COD_CONVENIO NOM_CONVENIO
- ------------ -----------------------
NOM_RESPONSAVEL
-----------------------------------
DSC_TB_DOCUMENTO
--------------------------------------
0 975 SÉRGIO JAMNIK
SÉRGIO JAMNIK
REGULARIZAÇÃO DO TERMO DE ADESÃO
Para que possamos assimilar melhor tudo o que foi explicado nos capítulos anteriores
alguns exemplos de utilização de Gerenciamento de Usuários e seus Privilégios, serão explicados
abaixo.
Ex.1: Conectando no Sql/Plus com o usuário aula1 senha aula1 no banco de dados FAI.
Ex.2: Criando um usuário chamado userxxxx (onde xxxx é um número da sua matricula ),
com a senha senha_1234, utilizando a tablespace temp como tablespace default e a tablespace
temp como tablespace temporária e estabelecendo uma quota de 2 m na tablespace temp e 1 m
na tablespace temp.
Usuário criado.
Ex.3: Alterando a senha do usuário que foi criado no item 2, escolhendo uma nova senha.
SQL> alter user user7264
2 identified by tha_fla;
Usuário alterado.
Ex.4: Tentando se conectar com o novo usuário que acabou de ser criado. O comando
para conexão é : connect userxxxx/senha@fai.
Conn user7264/tha_fla@fai
Mas não se consegue conectar, pois falta o privilegio Session
Cpu_per_session 3000
Connect_time 50
Sessions_per_user unlimited
Número de logons errado, para bloqueio de senha 3
Validade da senha 30 dias
Tempo de Bloqueio de usuário após senha incorreta 5 dias
Ex.9: Alterando o usuário que foi criado no exercício 2 (userxxxx), designando a ele o
profile criado no exercício 7 (profilexxxx).
Ex.10: Tentando conectar – se digitando a senha errada mais de 3 vezes para validando se
o profile está OK.
Ex.13: Verificando quais tabelas foram criadas neste usuário. Utilizando a view do
dicionário 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 privilégios para o usuário userxxxx para selecionar dados da tabela banco.
SQL> select *
2 from aluno23a.banco;
Ex.16: Conectado com o usuário userxxxx, tentando inserir os seguintes dados na tabela
banco do usuário 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;
Validação completa.
Consege se conectar, pois o usuário user7264 tem o privilegio das Roles
exp_full_database, imp_full_database.
Ex.17: Conectado com o usuário alunoxx, criar uma role chamada role_xxxx (onde xxxx
é um número da sua matricula).
Ex.18: Dando privilégios para a role_xxxx para selecionar, inserir, atualizar e excluir
dados das tabelas banco, cliente, conta_corrente, empréstimo.
SQL> commit;
Validação completa.
Ex.22: Criando uma constraint do tipo foreign key na tabela agencia_banco referenciando
a coluna cod_banco , da tabela banco do usuário alunoxx.
Não consegue se conectar, pois esta faltando o Grant de references na tabela banco.
Ex.23: Conectando o usuário alunoxx e dando o grant na tabela banco para que possa ser
criado a constraint mencionada acima.
Ex.25: Consultando as view´s do dicionário de dados para verificar os grant´s dados para
o usuário 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;
11 linhas selecionadas.
SQL> select *
2 from user_role_privs;
SQL> select *
2 from user_tab_privs
3 /
Ex.29: Este usuário terá direito de repassar para outros usuários todos os privilégios que
forem concedidos a ele. Dando os privilégios para executar as seguintes tarefas:
Conectar-se ao Banco;
Criar tabelas, view´s e procedures em qualquer usuário;
Criar e alterar novos usuários;
Criar SnapShot;
Criar Tablespaces;
Criar database link´s (privados e públicos);
Executar procedures do dicionário de dados.
SQL> grant create public database link to dba23 with admin option;
Operação de Grant bem-sucedida.
Ex.31: Conectando com o usuário aula1 e retirando o privilégio de criar tablespace e criar
snapshot do usuário dbaxx.
SQL> select *
2* from user_sys_privs;
13 linhas selecionadas.
Ex.33: Conectado com o usuário aula1 dando privilégios para o usuário dbaxx
selecionar, inserir e atualizar dados nas tabelas matriculas e alunos. Dando direito para que o
usuário dbaxx possa repassar estes privilégios.
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 usuário dbaxx dê privilégios para o userxxxx selecionar, inserir
e atualizar dados nas tabelas matriculas e alunos do usuário aula1.
SQL> select *
2 from aula1.matriculas;
SQL> select *
2 from aula1.alunos;
SQL> select *
2 from aula1.matriculas;
Ex.38: Conectado com o usuário userxxxx, verificando quais privilégios que este usuário
tem nas tabelas matriculas e alunos.
SQL> select *
2 from user_sys_privs
3 /
13 linhas selecionadas.
Livros:
Revista:
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