Академический Документы
Профессиональный Документы
Культура Документы
UNIDADE 1 1.1
INTRODUO ............................................................................................................................................................... 3
UNIDADE 2 2.1
2.2
2.3
2.4
2.5
CRIAO DE TABELAS............................................................................................................................. 37
TUTORIAL:................................................................................................................................................................. 37
CRIANDO TABELAS ...................................................................................................................................................... 37
PARMETROS DE CAMPOS NA CRIAO DE TABELAS: ........................................................................................................ 38
VALORES NULOS ........................................................................................................................................................ 38
CHAVE PRIMRIA ....................................................................................................................................................... 38
CHAVE ESTRANGEIRA: ................................................................................................................................................. 39
INTEGRIDADE REFERENCIAL: ......................................................................................................................................... 39
ON UPDATE: ........................................................................................................................................................... 39
ON DELETE: ............................................................................................................................................................ 40
REMOVENDO TABELAS................................................................................................................................................. 41
UNIDADE 7 7.1
INTRODUO ............................................................................................................................................................. 33
DML (DATA MANIPULATION LANGUAGE): ...................................................................................................................... 33
DCL (DATA CONTROL LANGUAGE): ............................................................................................................................... 33
TIPOS DE DADOS: ....................................................................................................................................................... 34
EXPRESSES E OPERADORES: ........................................................................................................................................ 34
TIPOS DE OPERADORES ................................................................................................................................................ 35
UNIDADE 6 6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
UNIDADE 5 5.1
5.2
5.3
5.4
5.5
5.6
UNIDADE 4 4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
UNIDADE 3 3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
7.2
7.3
7.4
7.5
UNIDADE 8 8.1
8.2
8.3
8.4
UNIDADE 9 9.1
9.2
9.3
9.4
9.5
UNIDADE 14 14.1
14.2
14.3
14.4
14.5
14.6
14.7
14.8
14.9
PREDICADOS ...................................................................................................................................... 60
UNIDADE 13 13.1
13.2
13.3
13.4
13.5
UNIDADE 12 12.1
12.2
12.3
12.4
12.5
UNIDADE 11 11.1
11.2
11.3
11.4
UNIDADE 10 10.1
10.2
10.3
10.4
UNIDADE 15 15.1
15.2
UNIDADE 16 -
UNIDADE 17 -
UNIDADE 18 -
UNIDADE 19 -
19.1
19.2
19.3
19.4
19.5
19.6
19.7
19.8
19.9
INTRODUO ............................................................................................................................................................. 82
ARQUIVOS DE BANCO DE DADOS DO ACCESS ........................................................................................................ 82
INICIANDO O ACCESS ............................................................................................................................................. 86
PRIMEIROS CONTATOS .......................................................................................................................................... 86
MENUS E BARRAS DE FERRAMENTAS .................................................................................................................... 87
JANELA BANCO DE DADOS ..................................................................................................................................... 88
CRIANDO UM NOVO BANCO DE DADOS ................................................................................................................ 91
ABRINDO UM BANCO DE DADOS ........................................................................................................................... 92
FECHANDO UM BANCO DE DADOS ........................................................................................................................ 93
UNIDADE 20 20.1
20.2
20.3
20.4
20.5
20.6
20.7
20.8
UNIDADE 21 21.1
21.2
21.3
UNIDADE 24 24.1
24.2
24.3
CONSULTAS...................................................................................................................................... 114
UNIDADE 23 23.1
23.2
23.3
23.4
23.5
UNIDADE 22 22.1
22.2
22.3
22.4
TABELAS ............................................................................................................................................. 95
UNIDADE 25 25.1
25.2
UNIDADE 26 26.1
26.2
26.3
26.4
UNIDADE 39 39.1
UNIDADE 38 38.1
UNIDADE 37 37.1
37.2
UNIDADE 36 36.1
36.2
UNIDADE 35 35.1
UNIDADE 34 34.1
UNIDADE 33 33.1
UNIDADE 32 32.1
UNIDADE 31 31.1
UNIDADE 30 30.1
30.2
30.3
UNIDADE 29 29.1
29.2
UNIDADE 28 28.1
UNIDADE 27 27.1
UNIDADE 40 40.1
UNIDADE 41 41.1
UNIDADE 43 43.1
UNIDADE 42 42.1
42.2
42.3
42.4
Banco de Dados I
Banco de Dados I
Banco de Dados I
Banco de Dados I
Os meta dados so representados por tabelas, contendo linhas e colunas, onde so ligadas por
colunas. Cada tabela contm uma ou mais colunas como identificadores.
Laboratrio
Definir os seguintes termos:
Sistema de bancos de dados:
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
Banco de dados
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
Sistema de gerenciamento de banco de dados
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
Quais as vantagens e desvantagens da utilizao de um sistema de banco de dados?
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
Banco de Dados I
Banco de Dados I
FUNCIONARIO
Cada entidade possui um conjunto particular de propriedades que a descreve chamado atributos.
Atributos: So propriedades (caractersticas) que identificam as entidades. Cada entidade possui
uma coleo de elementos de dados.
A cada atributo de uma entidade associado um domnio de valores. Esses domnios podem ser
um conjunto de nmeros inteiros, nmeros reais, cadeias de caracteres ou qualquer outro tipo de
valor que o atributo pode assumir.
Os atributos so representados apenas pelo seu nome ligado entidade por uma linha reta, por
exemplo:
FUNCIONRIO
Nome
Banco de Dados I
Podemos ter vrios tipos de atributos: simples, composto, multivalorado e determinante. Vejamos
as caractersticas de cada um deles:
Simples ou atmico: no possui qualquer caracterstica especial. Por exemplo, o nome Da
empresa um atributo sem qualquer caracterstica especial.
Nome
EMPRESA
Composto: o seu contedo formado por itens menores. O contedo de um atributo composto
pode ser dividido em vrios atributos simples.
Rua
EMPRESA
Endereo
CEP
Bairro
Multivalorado: o seu contedo pode ser formado por mais de uma informao. indicado
colocando-se um asterisco procedendo ao nome do atributo, como no caso da empresa que pode
possuir mais de um telefone.
EMPRESA
* Telefone
EMPRESA
CNPJ
Banco de Dados I
Nome
Matrcula
Rua
Endereo
EMPRESA
CEP
Bairro
* Telefone
Cargo
Laboratrio
Identifique os atributos e o tipo do atributo nas seguintes entidades.
CLIENTES - FUNCIONARIOS - EMPRESA - PRODUTOS
Pertence
10
Banco de Dados I
Gerencia
Funcionrio
Departamento
e1
e2
e3
e4
e5
e6
e7
d1
d2
d3
1:1
Funcionrio
chefia
Departamento
Este um caso particular, pois outra empresa poderia ter o mesmo gerente chefiando vrios
departamentos. Vale lembrar que os modelos de dados so utilizados num determinado contexto.
Muda-se o contexto, muda-se tambm o modelo de dados.
Um-para-Vrios: quando cada entidade de (A) pode se relacionar com uma ou mais entidades
de B. Quando se quer dizer uma ou mais de uma entidade, utiliza-se a letra N.
No exemplo, uma empresa dividida em departamentos, um funcionrio s pode ser alocado em
um nico departamento, porm num departamento podem trabalhar vrios funcionrios.
Trabalha Para
Funcionrio
Departamento
e1
e2
e3
e4
e5
e6
e7
d1
d2
d3
N:1
Funcionrio
Trabalha para
Departamento
11
Banco de Dados I
Projeto
e1
e2
e3
e4
p1
p2
p3
N:M
Funcionrio
Trabalha
em
M
1
Projeto
possui
N
Funcionrio
(1:1)
12
Banco de Dados I
gerncia
N
1
Funcionrio
Departamento
1
1
locao
M
1
PFPj
Pea
Projeto
Auto relacionamento: uma entidade pode se relacionar com ela mesma. Observe o exemplo:
Numa empresa, um funcionrio pode chefiar vrios funcionrios, porm ele tambm um
funcionrio.
Chefia
Funcionrio
1
Entidade Dependente: uma entidade pode ter sua existncia vinculada existncia de outra
entidade.
13
Banco de Dados I
Uma empresa necessita armazenar os dados dos dependentes menores dos funcionrios.
A entidade Dependente s existe porque existe a entidade Funcionrio
1
Funcionrio
Possui
N
Dependente
O smbolo que representa a entidade dependente um retngulo dentro de outro retngulo, com o
nome da entidade escrito no seu interior.
Relacionamento -Um (Generalizao/Especializao): ocorre quando uma entidade com seus
atributos englobam entidades especializadas com seus atributos especficos. No esquema a
seguir, a entidade Cliente engloba seus atributos e tambm os atributos especficos da entidade
Pessoa Fsica, assim como os de Pessoa Jurdica.
Cliente
Pessoa
Fsica
Pessoa Jurdica
ATRIBUTO
ATRIBUTO CHAVE
ENTIDADE
FRACA
* ATRIBUTO MULTIVALORADO
ATRIBUTO
COMPOSTO
RELACIONAMENT
O
14
Banco de Dados I
E1
E2
Taxa de Cardinalidade
1:1 para E1:E2 em R
E1
E2
Taxa de Cardinalidade
1:N para E1:E2 em R
E1
N
1
E2
Taxa de Cardinalidade
N:M para E1:E2 em R
15
Banco de Dados I
Isto leva ao conceito de herana de atributos; ou seja, a subclasse herda todos os atributos da
superclasse. Isto porque a entidade de subclasse representa as mesmas caractersticas de uma
mesma entidade da superclasse.
Uma subclasse pode herdar atributos de superclasses diferentes.
A figura abaixo mostra a representao diagramtica do exemplo acima.
nome
dt. nasc.
no. funcional
sexo
Empregado
rg
Funo
endere
o
d
qualificao
No registro
Engenheiro
especializao
Secretria
idiomas
3.5 Especializao
Especializao o processo de definio de um conjunto de classes de um tipo entidade; este tipo
entidade chamado de superclasse da especializao. O conjunto de subclasses formado
baseado em alguma caracterstica que distingue as entidades entre si.
No exemplo da figura 12, temos uma especializao, a qual pode chamar de funo. Veja agora
no exemplo da figura 13, temos a entidade empregado e duas especializaes.
Empregado
Funo
Categoria
Salarial
d
Engenheiro
Secretria
Horista
Mensalista
16
Banco de Dados I
N
Projeto
Empregado
liderado
desenvolvid
o por
Funo
N
d
lidera
N
Engenheiro
Secretria
participa
3.6 Generalizao:
A generalizao pode ser pensada como um processo de abstrao reverso ao da especializao,
no qual so suprimidas as diferenas entre diversos tipos entidades, identificando suas
caractersticas comuns e generalizando estas entidades em uma superclasse.
no. funcional
no. funcional
qualificao
No registro
especializao
Engenheiro
nome
rg
Secretria
nome
idiomas
rg
17
Banco de Dados I
nome
no. funcional
rg
Empregado
d
qualificao
n registro
especializao
Engenheiro
Funo
Secretria
idiomas
18
Banco de Dados I
no. da pea
Descri
o
Pea
o
No. Projeto
Data
Ordem Servio
Manufaturada
Torneada
Preo
Empregado
Funo
Categoria Salarial
19
Secretaria
Engenheiro
Mensalista
Horista
Banco de Dados I
20
Banco de Dados I
21
Banco de Dados I
Coluna
Tipo
Tamanho
Faixa
RG
Numrico
10,0
0300000025999999
Nome
Caractere
30
a-z, A-Z
Salrio
Numrico
5,2
00100,0012999,99
Um esquema de relao R, denotado por R(A1, A2,..., An), onde cada atributo Ai o nome do
papel desempenhado por um domnio D no esquema relao R, onde D chamado domnio de Ai
e denotado por dom (Ai). O grau de uma relao R o nmero de atributos presentes em seu
esquema de relao.
A instncia r de um esquema relao denotado por r(R) um conjunto de n-tuplas:
r = [t1, t2, ... , tn] onde os valores de [t1, t2, ... , tn] devem estar contidos no domnio D. O valor nulo
tambm pode fazer parte do domnio de um atributo e representa um valor no conhecido para
uma determinada tupla.
22
Banco de Dados I
Tabela DEPENDENTES
RG
Responsvel
Nome
Dependente
Dt.
Nascimento
Relao
Sexo
10101010
Jorge
27/12/86
Filho
Masculin
o
10101010
Luiz
18/11/79
Filho
Masculin
o
20202020
Fernanda
14/02/69
Cnjuge
Feminin
o
20202020
ngelo
10/02/95
Filho
Masculin
o
Quando uma relao possui mais que uma chave (no confundir com chave composta) - como,
por exemplo, RG e CIC para empregados - cada uma destas chaves so chamadas de chaves
candidatas. Uma destas chaves candidatas deve ser escolhida como chave primria.
Uma chave estrangeira CE de uma tabela R1 em R2 ou vice-versa, especifica um relacionamento
entre as tabelas R1 e R2.
23
Banco de Dados I
Tabela DEPARTAMENTO
Nome
Nmer
o
RG
Gerente
Contabilidade
10101010
Engenharia
Civil
30303030
Engenharia
Mecnica
20202020
Tabela EMPREGADO
Nome
RG
CIC
Depto.
RG
Supervisor
Salrio
Joo Luiz
10101010
11111111
NULO
3.000,00
Fernando
20202020
22222222
10101010
2.500,00
Ricardo
30303030
33333333
10101010
2.300,00
Jorge
40404040
44444444
20202020
4.200,00
Renato
50505050
55555555
20202020
1.300,00
24
Banco de Dados I
Funcionrio
Cdigo (PK)
Nome
Rua
Numero
CEP
Bairro
Data_nascimento
CPF
25
Banco de Dados I
2. Para cada entidade fraca EF com entidade proprietria E no modelo ER, criada uma tabela T1
no Modelo Relacional incluindo todos os atributos simples de EF; para cada atributo composto, so
inseridos apenas os componentes simples de cada um; a chave primria desta relao T1 ser
composta pela chave parcial da entidade fraca EF mais a chave primria da entidade proprietria
E;
Funcionrio
Dependente
Codigo
CodigoFuncionario (PK)
Nome
CodigoDependente
Rua
Nome
Numero
Data_nascimento
CEP
Tipo_parentesco
Bairro
Data_nascimento
CPF
3. Para cada relacionamento regular com cardinalidade 1:1 entre entidades E1 e E2 que geraram
as tabelas T1 e T2 respectivamente, devemos escolher a chave primria de uma das relaes (T1,
T2)e inseri-la como chave estrangeira na outra relao; se um dos lados do relacionamento tiver
participao total e outro parcial, ento interessante que a chave do lado com participao
parcial seja inserida como chave estrangeira no lado que tem participao total;
Relacionamento Gerncia
Funcionario
Departamento
Codigo
Codigo
Nome
CodigoFuncionario (PK)
Rua
Nome
Numero
CEP
Bairro
26
Banco de Dados I
Relacionamento Trabalha
Funcionario
Departamento
Codigo
Codigo
CodigoDepartamento (PK)
Nome
Nome
Rua
Numero
CEP
Bairro
5. Para cada relacionamento regular com cardinalidade N: N entre entidades E1 e E2, cria-se uma
nova tabela T1, contendo todos os atributos do relacionamento mais o atributo chave de E1 e o
atributo chave de E2; a chave primria de T1 ser composta pelos atributos chave de E1 e E2;
Funcionario
FuncionarioProjeto
Projeto
Codigo
CodigoFuncionario (PK)
Codigo
Nome
CodigoProjeto (PK)
Nome
Rua
Descrio
Numero
Tempo_previsto
CEP
Bairro
6. Para cada atributo multivalorado A1, cria-se uma tabela T1, contendo o atributo multivalorado A1,
mais o atributo chave C da tabela que representa a entidade ou relacionamento que contm A1; a
chave primria de T1 ser composta por A1 mais C; se A1 for composto, ento a tabela T1 dever
conter todos os atributos de A1;
Funcionario
Telefone
Codigo
CodigoFuncionario (PK)
27
Banco de Dados I
Nome
CodigoTelefone
Rua
DDD
Numero
Numero
CEP
Tipo
Bairro
Data_nascimento
CPF
7. Para cada relacionamento n-rio, n > 2, cria-se uma tabela T1, contendo todos os atributos do
relacionamento; a chave primria de T1 ser composta pelos atributos chaves das entidades
participantes do relacionamento;
8. Converta cada especializao com m subclasses {S1, S2, ..., Sm} e superclasse SC, onde os
atributos de SC so {c, a1, a2, ..., an} onde c a chave primria de SC, em tabelas utilizando uma
das seguintes opes:
8.1. Crie uma tabela T para SC com os atributos A(T) = {c, a1, a2, ..., an} e chave C(T) = c; crie
uma tabela Ti para cada subclasse Si , 1 i m, com os atributos
A(Ti) = {c} A(Si), onde C(T) = c;
8.2. Crie uma tabela Ti para cada subclasse Si, 1 i m, com os atributos
A(Ti) = A(Si) {c, a1, a2, ..., an} e C(Ti) = c;
8.3. Crie uma tabela T com os atributos
A(T) = {c, a1, a2, ..., an} A(S1) ... A(Sm) {t} e C(T) = c, onde t um atributo tipo que indica
a subclasse qual cada tupla pertence, caso isto venha a ocorrer;
8.4. Crie uma tabela T com atributos
A(T) = {c, a1, a2, ..., an} A(S1) ... A(Sm) {t1, t2, ..., tm} e C(T) = c;
esta opo para generalizaes com overlapping, e todos os ti, 1 i m, um atributo
booleano indicando se a tupla pertence ou no subclasse Si; embora funcional esta opo
possa gerar uma quantidade muito grande de valores nulos;
Figura - Mapeamento para o Modelo Relacional
o
EF
c
o
5 Passo - Relacionamentos
N:N
N
N
E
E
28
Banco de Dados I
Soluo
Funcionario
Funcionario
Codigo
Codigo
29
Banco de Dados I
Nome
Nome
Endereco
Cidade
Rua
Numero
Complemento
Bairro
Soluo
Venda
Vendas
Mercadoria
NumeroNF
NumNF
CodigoMercadoria
CodigoMercadoria
CodigoMercadoria
DescricaoMercadoria
DescricaoMercadoria
Quantidade
PrecoVenda
QuantidadeVendida
Valor
PreoVenda
TotalVenda
Como resultado desta etapa, houve um desdobramento do arquivo de Vendas em duas estruturas,
a saber:
Primeira estrutura (Arquivo de Vendas): Contm os elementos originais, sendo excludos os dados
que so dependentes apenas do campo Cdigo da Mercadoria.
Segunda estrutura (Arquivo de Mercadorias): Contm os elementos que so identificados apenas
pelo Cdigo da Mercadoria, ou seja, independentemente da Nota Fiscal, a descrio e o preo de
venda sero constantes.
Soluo
30
Banco de Dados I
NotaFiscal
NotaFiscal
Cliente
NumeroNF
NumeroNF
Cdigo
Serie
Serie
NomeCliente
DataEmissao
DataEmissao
CGCCliente
CodigoCliente
CodigoCliente
NomeCliente
TotalGeral
CGCCliente
TotalGeral
Como resultado desta etapa, houve um desdobramento do arquivo de Notas Fiscais, por ser o
nico que possua campos que no eram dependentes da chave principal (Num. NF), uma vez que
independente da Nota Fiscal, o Nome e CGC do cliente so inalterados. Este procedimento
permite evitar inconsistncia nos dados dos arquivos e economizar espao por eliminar o
armazenamento frequente e repetidas vezes destes dados. A cada nota fiscal comprada pelo
cliente, haver o armazenamento destes dados e poder ocorrer divergncia entre eles.
Depois das alteraes:
Primeira estrutura (Arquivo de Notas Fiscais): Contm os elementos originais, sendo excludos os
dados que so dependentes apenas do campo Cdigo do Cliente (informaes referentes ao
cliente).
Segundo estrutura (Arquivo de Clientes): Contm os elementos que so identificados apenas pelo
Cdigo do Cliente, ou seja, independente da Nota Fiscal, o Nome, Endereo e CGC dos clientes
sero constantes.
Aps a normalizao, as estruturas dos dados esto projetadas para eliminar as inconsistncias e
redundncias dos dados, eliminando desta forma qualquer problema de atualizao e
operacionalizao do sistema. A verso final dos dados poder sofrer alguma alterao, para
atender as necessidades especficas do sistema, a critrio do analista de desenvolvimento durante
o projeto fsico do sistema.
Resumo da Unidade
O modelo relacional foi criado por Codd em 1970 e tem por finalidade representar os dados
como uma coleo de relaes, onde cada relao representada por uma tabela, ou falando de
uma forma mais direta, um arquivo. Porm, um arquivo mais restrito que uma tabela. Toda tabela
pode ser considerada um arquivo, porm, nem todo arquivo pode ser considerado uma tabela.
Quando uma relao pensada como uma tabela de valores, cada linha nesta tabela representa
uma coleo de dados relacionados. Estes valores podem ser interpretados como fatos
descrevendo uma instncia de uma entidade ou de um relacionamento. O nome da tabela e das
colunas desta tabela utilizado para facilitar a interpretao dos valores armazenados em cada
linha da tabela. Todos os valores em uma coluna so necessariamente do mesmo tipo.
Na terminologia do modelo relacional, cada tabela chamada de relao; uma linha de uma
tabela chamada de tupla; o nome de cada coluna chamado de atributo; o tipo de dado que
descreve cada coluna chamado de domnio.
31
Banco de Dados I
IMPORTANTE
Antes de comear o contedo sobre SQL, fazer o exerccio abaixo para servir de exemplo no
prximo assunto.
* Criar um banco de dados que represente uma empresa.
Este banco deve ser capaz de informar:
a) Dados sobre os funcionrios;
b) Quantos funcionrios trabalham em um determinado setor;
c) Qual o salrio mdio dos funcionrios.
32
Banco de Dados I
Unidade 5 -
5.1 Introduo
Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens
destinadas sua manipulao. De todas, sem dvida a que mais se popularizou foi a linguagem SQL.
A linguagem SQL permite a criao e manipulao de dados do banco de dados sem que o programador
precise se preocupar com detalhes internos do banco, como a forma como os dados so armazenados e
organizados internamente.
Foi criada para definir, modificar e consultar dados armazenados em banco de dados. Os grandes
fabricantes de banco de dados criaram extenses prprias para a linguagem. Como exemplo, temos:
Transact/SQL, Sysbase, Microsoft, PL/SQL, etc.
Para evitar problemas na manipulao do cdigo, devido quantidade plataformas, um comit foi criado
para torn-la independente. Este comit o comit da ANSI (american National Standards Institute).
A linguagem SQL no procedural, como C, Basic, COBOL, Pascal, entre outras. Nestas linguagens o
programador tem que dizer passo-a-passo o que o computador deve fazer.
O SQL uma linguagem declarativa. Nesta linguagem o programador diz ao computador o que deve ser
feito e este se encarrega de faz-lo.
A linguagem SQL pode ser Interativa ou Embutida. A forma Interativa usada diretamente para operar um
banco de dados, atravs de uma ferramenta que permite a execuo direta do cdigo SQL. A forma Embutida
introduz o cdigo SQL dentro das linhas do programa, que atravs de variveis tratado adequadamente.
A linguagem SQL subdividida em trs grupos de comando de forma parecida com a estrutura de um
banco de dados:
DDL (Data Definition Language):
Comandos responsveis pela criao de objetos. Ex.: Create Table, Create
View, Create Index.
33
Banco de Dados I
Texto
Varchar
Caracteres
varivel
de
Char
At 254 caracteres
Numrico
Dec
Numeric
Nmero
com
especificada
Int
Smallint
Float
Real
Double
preciso At 22 dgitos
Data e Hora
Date
Armazena datas
Time
Armazena horas
34
Banco de Dados I
Diviso
Subtrao
Adio
Mdulo
Aritmticos
Caracteres
Concatenao de campos
||
Comparao
Igualdade
Desigualdade
<>
Maior que
>
Menor que
<
Maior ou Igual a
>=
Menor ou Igual a
<=
No menor que
!<
No maior que
!>
No Igual a
!=
Lgicos
NOT
AND
OR
BETWEEN
LIKE
IN
SOME
35
Banco de Dados I
ANY
ALL
Bitwise
&
!
^
Unrios
+
Positivo
Bitwise NOT
Negativo
36
Banco de Dados I
37
Banco de Dados I
Nome
------
-----------
Observe que, embora a tabela esteja vazia, aparecem os nomes dos dois
campos criados, mostrando que a criao da tabela foi bem sucedida.
38
Banco de Dados I
6.8 ON UPDATE:
NO ACTION (RESTRICT) - quando o campo chave primria est para ser
atualizado a atualizao abortada caso um registro em uma tabela referenciada tenha um valor
mais antigo. Este parmetro o default quando esta clusula no recebe nenhum parmetro.
Exemplo: ERRO Ao tentar usar "UPDATE clientes SET cdigo = 5 WHERE cdigo = 2.
39
Banco de Dados I
Ele vai tentar atualizar o cdigo para 5, mas como em pedidos existem registros do cliente 2
haver o erro.
CASCADE (Em Cascata) - Quando o campo da chave primria atualizado,
registros na tabela referenciada so atualizados.
Exemplo: Funciona: Ao tentar usar "UPDATE clientes SET cdigo = 5 WHERE cdigo =2. Ele vai
tentar atualizar o cdigo para 5 e vai atualizar esta chave tambm na tabela pedidos.
SET NULL - Quando um registro na chave primria atualizado, todos os campos dos registros
referenciados a este so setados para NULL.
Exemplo: UPDATE clientes SET cdigo = 9 WHERE cdigo = 5;
Na clientes o cdigo vai para 5 e em pedidos, todos os campos cod_cliente com valor 5 sero
setados para NULL.
SET DEFAULT - Quando um registro na chave primria atualizado, todos os campos nos
registros relacionados so setados para seu valor DEFAULT.
Exemplo: se o valor default do cdigo de clientes 999, ento.
UPDATE clientes SET codigo = 10 WHERE codigo = 2. Aps esta consulta o campo cdigo com
valor 2 em clientes vai para 999 e tambm todos os campos cod_cliente em pedidos.
6.9 ON DELETE:
NO ACTION (RESTRICT) - Quando um campo de chave primria est para ser
deletado, a excluso ser abortada caso o valor de um registro na tabela referenciada seja mais
velho. Este parmetro o default quando esta clusula no recebe nenhum parmetro.
Exemplo: ERRO em DELETE FROM clientes WHERE cdigo = 2. No funcionar caso o
cod_cliente em pedidos contenha um valor mais antigo que cdigo em clientes.
CASCADE - Quando um registro com a chave primria excludo, todos os registros relacionados
com aquela chave so excludos.
SET NULL - Quando um registro com a chave primria excludos, os respectivos campos na
tabela relacionada so setados para NULL.
SET DEFAULT - Quando um registro com a chave primria excludo, os campos respectivos da
tabela relacionada so setados para seu valor DEFAULT.
40
Banco de Dados I
41
Banco de Dados I
42
Banco de Dados I
Laboratrio
Modifique as tabelas do exerccio anterior para que fiquem com o seguinte formato:
43
Banco de Dados I
Joo
44
Banco de Dados I
45
Banco de Dados I
46
Banco de Dados I
do
campo1],
[nome
do
campo2],
...
O campo nome da tabela define a tabela que estamos consultando, enquanto os campos nome do
campoN representam os parmetros, e, portanto colunas, que desejamos recuperar.
Telefone
Transportadora Fulano
(51) 2111-1666
Transportes Pedro
(51) 0000-0000
Expresso Marte
(51) 1234-5678
47
Banco de Dados I
Select Nome from transportadoras
Executando a consulta acima na tabela Transportadoras, contendo os dados mostrados, teremos o seguinte
resultado:
Nome
---------------------Transportadora Fulano
Transportes Pedro
Expresso Marte
Na mesma tabela, tambm podemos consultar mais parmetros, bastando especific-los separados por
vrgulas. Confira a consulta a seguir e o resultado correspondente:
Select Nome, Telefone from transportadoras
Resultado:
Nome
Telefone
-------------
--------------
Transportadora Fulano
(51) 3346-7300
Transportes Pedro
(51) 0000-0000
Expresso Marte
(51) 1234-5678
Comando:
select nome as transportadoras from transportadoras
Resultado:
Transportadoras
----------------------
48
Banco de Dados I
Transportadora Fulano
Transportes Pedro
Expresso Marte
Comando:
select nome, ' ocupa o cargo de', cargo from funcionarios
Resultado:
Nome
-------
--------------------
---------------------
Jos
ocupa o cargo de
Presidente
Maurcio
ocupa o cargo de
Gerente de Vendas
Lus
ocupa o cargo de
Boy
Lgia
ocupa o cargo de
Telefonista
Para demonstrarmos este recurso do SQL, utilizaremos uma nova tabela, com dados numricos. Novamente,
o instrutor poder utilizar estes mesmos dados ou criar exemplos prprios ao longo da aula:
Nome
Preo
Estoque
Leite
10
500
Carne
20
330
Po
18.6
200
Suco
20
330
Comando:
49
Banco de Dados I
select nome, preco*estoque as total from produtos
Resultado:
Nome
total
---------------------
-----------
Leite
5000
Carne
6600
Po
37200
Suco
6600
Laboratrio
Baseado nas tabelas criadas e as alteraes realizadas nas tabelas das
unidades anteriores exiba os seguintes resultados:
O fornecedor x tem a razo social y
A matria prima x tem o valor de y e a quantidade z
A matria prima x tem um valor total de quantidade * valor
A quantidade x no estoque no pode chegar a 20% da quantidade
O tipo de matria x tem o valor de y e com desconto fica em 80% do valor
A matria x descrita como y
12% do valor so considerados custo da matria prima x
Acesse o site x da empresa y
1/3 do valor * quantidade destinado ao pagamento de imposto da matria prima y
Aps um aumento de 13% no estoque, a quantidade vai de xpara y
50
Banco de Dados I
Unidade 10 -
O exemplo a seguir mostra o uso desta funo para juntar o nome e sobrenome dos funcionrios em uma
nica coluna. Observem o uso do espao para garantir que o nome e sobrenome vo ter uma separao.
Exemplo:
select concat(Nome, ' ', Sobrenome) from funcionarios
Upper
Transforma as letras em maisculas na resposta da instruo SQL. Como exemplo:
Select Upper(NomeDoContato) from clientes;
51
Banco de Dados I
Onde:
String1 a string da qual vai ser recuperado um segmento
Valor1 onde comea a ser feita a separao
Valor 2 o nmero de caracteres que sero separados.
Exemplo:
Select Substring(Nome, 1, 3) from clientes
Left
Separa uma parte da linha baseada na seguinte forma:
LEFT (String1, Valor1)
Onde,
String1 a string de origem
Valor1 o nmero de caracteres que sero separados a partir da esquerda.
Exemplo:
Select Left(Nome, 1) from clientes;
Right
Separa uma parte da linha baseada na seguinte forma:
RIGHT (String1, Valor1)
Onde,
String1 a string de origem
Valor1 o nmero de caracteres que sero separados a partir da direita.
Exemplo:
Select Right(Nome, 1) from clientes;
Length(Len)
Retorna o tamanho da string:
LENGTH (String1)
Onde,
String1 a string de origem
52
Banco de Dados I
Exemplo:
Select LENGTH(Nome) from clientes;
Locate(Charindex)
Retorna a posio do texto procurado:
LOCATE (Valor1, String1)
Onde,
Valor1 o texto procurado.
String1 a string de origem
Exemplo:
Select LOCATE(Joo, Nome) from clientes;
Laboratrio
Baseado nas tabelas criadas e as alteraes realizadas nas tabelas das
unidades anteriores exiba os seguintes resultados:
O fornecedor apenas o 1 nome do tipo final da razo social
A matria prima em maiscula tem o valor de y e a quantidade z
A matria prima iniciadas em 1 letra tem um valor total de quantidade * valor
O tipo de matria em minsculo tem o valor de y e com desconto fica em 80% do valor
A matria duas letras iniciais descrita como em maisculo
12% do valor so considerados custo da matria prima 1 letra em maisculo,.
Acesse o site retirar o WWW da empresa y
1/3 do valor * quantidade destinado ao pagamento de imposto da matria prima em
maiscula
A matria prima x formada por quantidade de letras letras
O fornecedor x tem um fax de quantidade de letras letras
53
Banco de Dados I
Unidade 11 -
54
Banco de Dados I
Observe, tambm, que possvel a utilizao de um mesmo campo, mais de uma vez
como critrio de uma consulta. Por exemplo, se desejar exibir os filmes lanados aps o ano 2000
com a exceo do ano de 2005, o comando seria desenhado da seguinte forma.
SELECT nomefilame FROM filmes WHERE ano >= 2000 AND ano <> 2005
Estes critrios podem ser utilizados em qualquer tipo de consulta (seleo, excluso ou
atualizao). Principalmente em consultas que realizam alteraes, recomenda-se atentar para o
uso quase que obrigatrio da clusula where, pois sua omisso resulta na execuo da alterao
em todo o conjunto de dados contemplados na sentena.
Vejamos a seguinte situao: para os funcionrios com mais de 1 ano de tempo de trabalho
a empresa deseja conceder um aumento de 15% em seus salrios. Se executarmos uma consulta
conforme exemplo abaixo, todos os funcionrios receberam aumento independente do seu tempo
na empresa:
UPDATE funcionarios SET salario = salario * 1.15
Para que apenas os funcionrios que possuem o critrio estabelecido pela empresa para
receber o aumento, sejam efetivamente beneficiados, necessrio incluir uma clusula. Observe a
sintaxe correta abaixo.
UPDATE funcionarios SET salario = salario * 1.15 WHERE tempo >= 1
Em consultas de deleo o cuidado deve ser ainda maior, pois uma execuo de uma
sentena sem um critrio de forma correta ou mesmo sem a existncia de um, pode acarretar na
perda significativa de dados importantes para a instituio.
Como regra geral recomenda-se iniciar a escrita de seu script SQL, para consultas de
alteraes, pelos critrios que as mesmas devem considerar, reduzindo assim, a chance de
cometer qualquer tipo de equivoco, com consequncias mais graves.
Pas
Empresa W
Brasil
Empresa A
Brasil
Empresa B
Brasil
Empresa C
Argentina
Empresa X
Brasil
Comando:
SELECT NOME FROM CLIENTES WHERE PAIS='BRASIL'
Resultado:
55
Banco de Dados I
nome
----------------
Empresa A
Empresa B
Empresa X
O sinal de igualdade (=) foi utilizado porque o usurio sabia exatamente o que estava procurando. Verifique
os operadores de comparao que esto no inicio da apostila.
Cabe tambm, ressaltar que devemos sempre atentar para o tipo de dado armazenado nos campos que sero
utilizados nos critrios de consulta. Pois esta observao nos mostra que tipos de critrios podem ser
utilizados (para datas, por exemplo) e qual a forma correta de montagem do critrio ou seleo.
No exemplo da consulta acima, podemos perceber que o critrio foi digitado entre aspas simples, pois o valor
do campo do tipo texto, a exemplo do aconteceria com um campo data (apenas devemos atentar para seu
formato).
Para campos tipados como numricos no h a necessidade, alm de no ser recomendado, do uso de aspas
simples. Entretendo, se estiver utilizando um banco de dados que voc no tenha estruturado, utilize
comandos (veremos nas prximas unidades) que exibam a estrutura da tabela, pois podemos encontrar
campos com valores numricos que tenham sido tipados como texto, o que pode atrapalhar a percepo do
resultado final.
Executando a consulta abaixo, veremos que retornar os pases em que existem clientes armazenados no
banco de dados:
select distinct pais from clientes
Resultado:
Pas
Argentina
56
Banco de Dados I
Brasil
Case o comando seja executado novamente, porm sem a clusula DISTINCT e observe a teremos a
repetio dos pases.
O comando DISTINCT realiza um agrupamento dos dados exibidos, portanto devemos sempre
estar atentos aos campos que inserimos antes da expresso FROM, pois se os mesmos forem
nicos, pode no ocorrer o agrupamento de forma correta.
No exemplo aqui citado os pases, aparecero apenas uma vez, pois somente a coluna pas foi
exibida, se fosse inserido o campo nome, por exemplo, haveria a duplicao dos mesmos.
Vejamos o caso na prtica
select distinct nome, pais from clientes
Resultado:
Nome
Pas
Brasil
Empresa A
Brasil
Empresa B
Brasil
Empresa C
Argentina
Empresa X
Brasil
57
Banco de Dados I
Laboratrio.
Para a realizao dos exerccios abaixo crie a seguinte tabela e insira os dados listados abaixo
dela. Aps execute uma consulta que exiba cada
Cod_Celula
r
Modelo
Marca
Camera
MP3
Bateria
Valor
Lancamento
Star
Sansung
Sim
Sim
3.2
600.00
2009-04-12
N97
Nokia
Sim
Sim
4.1
700.00
2010-01-20
IPhone
Apple
Sim
Sim
3.4
1.100
2007-12-30
Corby
Sansung
Sim
Sim
4.2
800.00
2008-06-25
N95
Nokia
Sim
Sim
2.7
950.00
2005-05-05
Jet
Sansung
Sim
Sim
3.3
650.00
2008-10-09
2160
Nokia
No
No
8.7
50.00
1997-03-04
58
Banco de Dados I
Liste nome de todos os celulares, junto com seus valores, para todos os celulares que foram
lanados h pelo menos de 2 anos.
Liste o modelo, marca e bateria do celular cdigo 4.
Liste os celulares lanados a mais de 10 anos.
Liste todos os celulares com bateria com mais de 4 horas e menos de 6 horas
Liste 2 celulares com cmera
Liste as marcas de celular existentes
Liste celulares da marca Nokia com bateria de mais e 3 horas e com valor inferior a R$ 700,00
Atualize em 10% o valor dos celulares da Nokia
Insira mais 4 modelos de celular
Delete 2 celulares da Sansung
Atualize a informao MP3 para NO em celulares com bateria inferior a 3 horas e valor superior
a R$ R$ 500,00
Mude o nome do celular de cdigo 7 para MP15
Atualize o valor dos celulares em 2% para celulares com cmera e valor inferior a R$ 800,00
Atualize 3 celulares para cmera NO
Mude o valor dos celulares Samsung para 80% de seu valor atual
Insira 2 celulares com nomes novos utilizando os dados de outro celular
Delete todos os celulares com valor inferior a R$ 300,00
59
Banco de Dados I
Unidade 12 -
Predicados
Para entender a vantagem de utilizar os comandos LIKE e NOT LIKE vamos primeiro executar uma consulta
com o operador de igualdade. Nesta apostila utilizaremos uma tabela bastante simples, com fins didticos,
sendo possvel que o instrutor opte por construir exemplos mais complexos junto com a turma.
Tabela clientes:
Nome
Joo da Silva Borges
Pedro lvaro
Joo Augusto
Comando:
select nome from clientes where nome = 'Joo'
Resultado:
nome
-------------
A resposta para esta instruo ser uma tabela vazia. Apesar de existir um 'Joo' na tabela, o critrio de
igualdade exige o nome completo. A consulta apenas retornaria o cliente se fosse colocado o nome completo:
Joo da Silva'
Assim, utilizar o sinal de igualdade nos retorna o resultado desejado somente se conhecermos o nome
completo da pessoa. O comparativo lgico LIKE, permite selecionar por semelhana:
Comando:
select nome from clientes where nome like 'Joo%'
60
Banco de Dados I
Resultado:
nome
---------------Joo da Silva Borges
Joo Augusto
Da mesma forma como podemos pesquisar por informaes que comecem por um determinado conjunto de
caracteres, tambm podemos definir que certas letras estejam no final ou em qualquer posio do texto, como
mostramos no exemplo a seguir, que retorna todos os contatos que tem a string 'Silva' no meio do nome.
Comando:
select nome from clientes where nome like '%silva%'
Resultado:
nome
---------------Joo da Silva Borges
Comando:
select Nome, Estoque from produtos where estoque between 500 and 1000
Resultado:
Nome
Estoque
---------------
-------------
Leite
1000
61
Banco de Dados I
Select * from [nome da tabela] WHERE [campo da tabela] {NOT} IN (valor ou
texto, valor ou texto,...)
Comando:
select Nome, Pais from clientes where pais in ('Brasil', 'Argentina')
Resultado:
Nome
Pas
-------------------
--------------Brasil
Empresa A
Brasil
Empresa B
Brasil
Empresa C
Argentina
Empresa X
Brasil
Este predicado pode ser til para determinadas situaes em que algum campo esteja null porque no foi
processado ainda, por exemplo, numa compra que no foi finalizada, ou em um pedido que no foi entregue.
Observe o exemplo abaixo, que um exemplo tpico de uma consulta utilizando este predicado para
identificar pedidos ainda no enviados.
Comando:
select * from pedidos where DataEnvio Is Null
Analogamente, para verificarmos quais entradas possuem um valor de DataEnvio, e, portanto representam
pedidos j enviados, podemos utilizar o comando abaixo:
Comando:
select * from pedidos where DataEnvio Is Not Null
62
Banco de Dados I
Como exemplo, vamos selecionar todos os produtos cujo estoque seja maior que 500 e tenham um preo
menor que 10.
Comando:
select Nome, Estoque, Preco from produtos where estoque > 500 and preco <
10
Neste exemplo, a clusula AND obrigou que ambas as condies fossem atendidas. Podemos tambm definir
que o item seja selecionado caso qualquer das condies seja atendida, como mostra o exemplo abaixo em
que selecionamos os itens que tenham. preo menor que 10 ou um estoque maior que 1000.
Comando:
select Nome, Estoque, preco from produtos where preco < 10 or estoque >
1000
Laboratrio.
Para a realizao dos exerccios abaixo utilize a tabela criada no exerccio anterior
63
Banco de Dados I
Unidade 13 -
Funes de Agrupamento e
Ordenao
As funes de agrupamento utilizadas no SQL so: COUNT( ), AVG( ), MAX( ), MIN( ) e SUM( ).
Abaixo mostramos um exemplo simples, mas bastante completo do uso de todas estas funes para processar
clculos em cima de uma tabela de produtos, e um exemplo de retorno.
Comando:
select SUM(Estoque) as 'Total no Estoque',
MAX(Preco) as 'Preo mais
caro', MIN(Preco) as 'Preo mais barato', AVG(Preco) as 'Preo mdio',
COUNT(Preco) as 'Total de Registros' from produtos
Exemplo de Resultado:
Total no Preo mais Preo
Estoque caro
barato
Total
Registros
---------
---------
----------
---------
--------------
3600
31
16.0000
de
As funes agregadas no podem ser utilizadas dentro de uma clusula WHERE, porem possvel utilizar
esta clusula para restringir o nmero de linhas que sero consideradas no clculo da resposta, como mostra o
exemplo abaixo:
Comando:
SELECT AVG(preco) from produtos where preco > 10
Nesta consulta acima o que estamos obtendo a mdia entre todos os produtos cujo preo maior que 10.
64
Banco de Dados I
Abaixo mostramos um exemplo em que agrupamos os clientes por pases para obtermos uma listagem de
todos os pases de clientes.
Comando:
select Pais from clientes group by pais
Resultado:
Pais
--------------Argentina
Brasil
O resultado acima poderia ser obtido tambm com o uso do comando DISTINCT. Na realidade, geralmente o
uso do comando GROUP BY s adequado em conjunto com funes de agrupamento, como mostramos no
exemplo a seguir:
select count(*) as 'Total', pais from clientes group by pais
Resultado:
Total
Pas
---------
---------------
Argentina
Brasil
Como agrupamos por pases, conseguimos utilizar o comando de COUNT e descobrir quantas vezes cada
um dos pases aparece.
65
Banco de Dados I
O comando abaixo mostra o uso de COUNT e WHERE para retornar o total de clientes com cargo do contato
como sendo de gerente de vendas.
select count(*),
Vendas' GROUP BY pais
pais
from
clientes
where
CargoContato
'Gerente
de
Por exemplo, se quisermos ver o total de clientes de pases cujo total for maior que 3, usaramos o comando
abaixo:
select count(*),pais from clientes group by pais having count(*) >= 3
Resultado:
Count(*)
Pas
-------
-------------
Brasil
Como s existe uma referncia a "Argentina", e portanto o total menor que 3, no aparece no resultado.
Para entender melhor a diferena entre WHERE, GROUP BY e HAVING, preciso compreender a
definio de cada uma, mostrada abaixo:
a clusula WHERE utilizada para filtrar as linhas que resultam da consulta da tabela especificada pela
clusula FROM.
A clusula GROUP BY utilizada para agrupar as linhas filtradas por WHERE.
A clusula HAVING usada para filtrar as linhas do grupo criado por GROUP BY.
66
Banco de Dados I
Se no utilizarmos a clusula ORDER BY, o resultado da instruo ser baseado no ndice da tabela
analisada. Ao utilizarmos a clusula estamos definindo a ordem, como no caso abaixo em que os produtos so
mostrados em ordem alfabtica:
Comando:
select Nome from produtos order by Nome
No necessrio utilizar o complemento ASC para as ordenaes crescentes, porm para as ordenaes
decrescentes deve-se utilizar DESC:
Laboratrio.
Para a realizao dos exerccios abaixo utilize a tabela criada no exerccio anterior
67
Banco de Dados I
Unidade 14 -
14.2 Join
Podemos definir Join como a juno de duas tabelas.
O resultado da unio de duas tabelas ser a multiplicao das linhas da primeira pela segunda tabela, ou seja,
para cada linha da primeira tabela, todas as linhas da segunda sero repetidas.
Na prtica esta situao no muito comum, mas serve como base para entendermos o funcionamento de
outros tipos de Join.
Sintaxe:
Select [nome da tabela1].[nome do campo],
campo] from [nome da tabela1], [nome da tabela2];
[nome
da
tabela2].[nome
do
Observe a operao de JOIN entre duas tabelas pedido e clientes, sem a utilizao de nenhuma restrio na
unio. Assumindo que existam 3 empresas e 3 pedidos, teremos um retorno com nova linha:
Comando:
select clientes.Nome, pedidos.Id as 'ID do pedido' from pedidos, clientes
68
Banco de Dados I
Resultado:
Nome
ID do pedido
-------
------------1
2
3
Empresa A
Empresa A
Empresa A
Empresa B
Empresa B
Empresa B
O resultado um produto cartesiano entre elas, em que o total de linhas ser igual ao total de entradas de uma
tabela multiplicado pelo total de entradas da outra.
Para obtermos um resultado que faa sentido, geralmente utilizamos a clusula WHERE.
Vamos utilizar um inner join para obter uma lista dos produtos e suas respectivas categorias. Vamos assumir
que em uma tabela produtos temos o cdigo da categoria, e esta informao - a chamada chave estrangeira nos permite descobrir dentro da tabela categoria o nome da categoria daquele produto.
Comando:
select produtos.Nome as 'Nome Produto', categorias.Nome as 'Categoria'
from produtos, categorias where produtos.CodCategoria = categorias.id
69
Banco de Dados I
Resultado:
Nome Produto
Categoria
---------------
------------------
Leite
Bebidas
Suco
Bebidas
Carne
Carnes
Po
Outros Alimentos
Pas
Brasil
Empresa A
Brasil
Empresa B
Brasil
Empresa C
Argentina
Empresa X
Brasil
Como exemplo, vamos criar uma consulta em tabelas produtos e categorias, selecionando produtos cujo
preo maior que 10 e ainda exibindo a categoria a que pertencem:
Comando:
70
Banco de Dados I
select produtos.Nome as 'Nome Produto', categorias.Nome as 'Categoria' ,
Preco from produtos, categorias where produtos.CodCategoria = categorias.id and
produtos.preco > 10
Comando:
select pedidos.id as 'Id do Pedido', produtos.nome as 'Nome do Produto',
categorias.nome as 'Categoria' from pedidos, produtos, categorias where
produtos.codcategoria = categorias.id AND pedidos.idProduto = produtos.id
Em situaes reais, muitas vezes sero criadas consultas entre diversas tabelas, geralmente com a ligao
entre cada tabela e as demais sendo feita atravs de uma igualdade que ligue a chave primria de uma tabela
com a chave estrangeira da outra.
71
Banco de Dados I
Em algumas plataformas utilizado o * (asterisco) para determinar o lado do outer join. Em outras
utilizado o (+) (sinal de adio entre parnteses). Ambos utilizados em locais diferentes. Na maioria dos
casos utilizado o comando LEFT JOIN que aceito pelo MySQL e ser utilizado nos exemplos abaixo.
Sintaxe do Left Join:
Select [nome da tabela1].[nome do campo], [nome da tabela2].[nome do
campo] from [nome da tabela1], [nome da tabela2] WHERE [nome da tabela1].[nome
do campo] * = [nome da tabela2].[nome do campo]
ou
Select [nome da tabela1].[nome do campo], [nome da tabela2].[nome do
campo] from [nome da tabela1], [nome da tabela2] WHERE [nome da tabela1].[nome
do campo](+) = [nome da tabela2].[nome do campo]
ou
Select [nome da tabela1].[nome do campo], [nome da tabela2].[nome do
campo] from [nome da tabela1]
LEFT JOIN
[nome da tabela2] ON
[nome da
tabela1].[nome do campo de relao] = [nome da tabela2].[nome do campo de
relao]
clientes.Id
Observao: o comando RIGHT JOIN no implementado em MySQL, mas invertendo-se as tabelas podese obter efeito equivalente.
Supondo uma tabela 'funcionarios' em que existe um campo que referencia a prpria tabela, o campo 'chefe',
que contm o Id do chefe de cada funcionrio. Atravs de um self join podemos listar todos os funcionrios
que possuem um chefe, indicando quem o mesmo:
select F2.Nome as 'funcionrio', ' subordinado a', F1.Nome as 'chefe'
from funcionarios as F1, funcionarios as F2 where F2.Chefe = F1.Id
72
Banco de Dados I
Laboratrio
Crie a seguinte estrutura de tabelas, para executar os exerccios
73
Banco de Dados I
74
Banco de Dados I
Unidade 15 -
MONTH
Seleciona o ms de uma data:
select DataPedido, month(DataPedido) from pedidos
YEAR
Seleciona o ano de uma data:
select DataPedido, year(DataPedido) from pedidos
75
Banco de Dados I
Unidade 16 -
Exerccios Extras
1. Uma loja de roupas deseja criar um cadastro com suas peas. Cada pea possui um
cdigo que a identifica, uma descrio, um preo-unitrio e uma quantidade em estoque.
Deseja tambm manter um cadastro de seus clientes com nome, telefone (o cliente pode ter
mais de um, ou nenhum), e as peas que ele j comprou. A data em que o cliente comprou
a pea guardada.
2. Uma empresa bancria mantm um cadastro com os dados dos seus clientes( identidade,
nome,
endereo{ rua, CEP e bairro} e telefone { o cliente pode ter mais de um}) e de suas contas
(nmero da conta e saldo). Um cliente pode ter mais de uma conta no banco e uma conta pode
ser de mais de um cliente (conta conjunta). O banco mantm tambm um cadastro com as suas
agncias (cdigo e nome), em que cada agncia pode ter mais de uma conta.
3. desenhe o Modelo E-R que descreva a situao da Empresa Acme Problemas Ltda., que
apresenta a seguinte estrutura:
a) cada empregado representado a partir das seguintes informaes bsicas: cdigo-empresa,
nome, endereo;
b) cada departamento representado por meio de: nome, cdigo departamento;
c) cada empregado chefia um ou mais departamentos;
d) cada item vendido representado pelo seu nome, preo, fornecedor, nmero do modelo (dado
pelo fornecedor) e nmero interno do item ( dado pelo responsvel pelo estoque);
e) cada fornecedor descrito pelo seu nome, endereo, itens fornecidos ao estoque e preo;
f) os clientes cadastrados tm os seguintes dados: nome, endereo e telefone;
g) os representantes da empresa junto aos clientes so empregados;
4. Um banco de dados, utilizado por uma faculdade, usa um sistema de cadastro de inscrio de
disciplinas que contm as informaes aluno e inscrio. As seguintes informaes devem estar
includas.
Aluno: cdigo de aluno, nome do aluno, ano da admisso e telefone de contato;
Inscrio: cdigo do aluno, cdigo da disciplina, nome da disciplina, cdigo do curso, nome do
curso e data da matrcula.
Projete o banco de dados para esses dados. Faa quaisquer suposies razoveis sobre as
dependncias envolvidas.
76
Banco de Dados I
77
Banco de Dados I
5.Voc acabou de fundar sua empresa de consultoria , a Beija-Flor Consultoria , e seu primeiro
trabalho e desenvolver um sistema para cadastro de clientes voc recebeu o cliente uma lista com
os dados que devero compor o sistema , com base nesta lista normalize a estrutura de dados de
acordo com as formas normais.
Lista de informaes que devero compor o sistema cadastro de clientes:
Nome
Nome do Pai
Nome da Me
Endereo
Telefone1
Telefone2
Nmero do Fax
Nmero do Celular
Telefone do trabalho
Data de Nascimento
Naturalidade
Nacionalidade
Endereo de correspondncia
Nome do filho 1
idade do filho 1
Nome do filho 2
idade do filho 2
Nome do filho 3
idade do filho 3
Nome do filho 4
idade do filho 4
Nome do Cnjuge
Nmero do CPF
Nmero da carteira de identidade
6. De acordo com as regras , normalize as estruturas abaixo.
Relao de Programadores:
Numero da Matrcula
Nome do Programador
78
Banco de Dados I
Setor
Nvel ( 1,2,3)
Descrio do Nvel ( 1 - Jnior, 2 - Pleno, 3 - Snior)
Programas
Codigo do Programa
Nome do Programa
Tempo Estimado
Nvel de Dificuldade ( 1, 2 ou 3 )
Descrio da Dificuldade ( Fcil, Mdio, Difcil)
Regras do negcio:
- Um programa pode ser feito por mais de um Programador;
- Um programador pode fazer um ou mais programas;
- O Nvel de dificuldade do programa depende do tempo estimado para a elaborao do mesmo;
79
Banco de Dados I
Unidade 17 -
1) Sistema Locadora
Uma pequena locadora de vdeos possui ao redor de 2000 fitas de vdeo, cujo emprstimo deve
ser controlado.
Cada fita possui um nmero. Para cada filme, necessrio saber seu ttulo e sua categoria
(comdia, drama, aventura,... ). Cada filme recebe um identificador prprio. Cada fita controlada
que filme ela contm. Para cada filme h pelo menos uma fita, e cada fita contm somente um
filme. Alguns poucos filmes necessitam mais de uma fita.
Os clientes podem desejar encontrar os filmes estrelados pelo seu ator predileto. Por isso,
necessrio manter a informao dos atores que estrelam em cada filme. Nem todo filme possui
estrelas.
A locadora possui muitos clientes cadastrados. Somente clientes cadastrados podem alugar fitas.
Para cada cliente necessrio saber seu prenome e seu sobrenome, seu telefone e seu endereo.
Alm disso, cada cliente recebe um nmero de associado.
Finalmente desejamos saber que fitas cada cliente tm emprestadas. Um cliente pode ter vrias
fitas em um instante do tempo. No so mantidos registros histricos de aluguis.
80
Banco de Dados I
Unidade 18 -
O dinamismo da rea de tecnologia da informao nos proporciona contatos cada vez mais frequentes com
uma infinidade de modelos de banco de dados. A cada dia vemos a notcia do lanamento de uma nova
plataforma de gerenciamento de dados.
No entanto alguns bancos de dados obtiveram maior notoriedade no mundo da informtica. Dentre estes
bancos cabe destacar o Microsoft Access, que foi um dos precursores dos SGBDs.
Sua inovao em termos de capacidade de armazenamento e dinamismo foi o principal responsvel pelo seu
enorme sucesso.
entretanto com a popularizao da Internet, e por sua vez, da distribuio das informaes em redes de
grande alcance, sua limitaes foram fincando evidentes. Abriu-se ento espao para os chamados softwares
livres.
Esta nova realidade proporcionou o aparecimento do MySQL, PostGreSQL e tantos outros. Por sua maior
capacidade de desempenho em um ambiente compartilhado, estes sistemas ganharam fora na internet, sendo
responsveis por um grande mercado de sites pessoais e de pequeno-mdias corporaes.
Quando nos referimos a grandes corporaes, que dependem criticamente do controle de seus dados, nos
deparamos com a necessidade de bancos de dados que trabalhem, com recursos mais avanados, tais como
replicao, servios de integrao, bussines inteligence, etc.
Neste contexto encontramos como grandes expoentes o SQL SERVER e o ORACLE alm de outros com
menor expresso. O SQL SERVER tem como grande diferencial ser da Microsoft o que faz com que sua
integrao com linguagens .Net ocorra de forma natural.
Nas prximas unidades de nosso material iremos trabalhar com 3 destes SGBDs. Cada um deles representado
um formato de objetivo de uso do banco de Dados.
Iniciaremos pelo precursor da popularizao do mesmo, o Microsoft Accces. Depois trataremos das
principais caractersticas e formas de manipulao do MYSQL.
Finalizando nosso trabalho falaremos do SQL SERVER e seus principais atributos.
81
Banco de Dados I
Unidade 19 -
Microsoft Access
19.1 Introduo
O Access um poderoso software de gerenciamento de banco de dados, que possibilita ao
usurio um gerenciamento preciso de dados e a possibilidade de gerao de consultas,
formulrios, relatrios, etiquetas e a criao de aplicativos personalizados, bem como a integrao
com outros aplicativos.
82
Banco de Dados I
TABELAS E RELACIONAMENTOS
Para armazenar dados, crie uma nica tabela para cada tipo de informao rastreada. Para reunir
os dados de vrias tabelas em uma consulta, formulrio, relatrio ou pgina de acesso a dados,
defina relacionamentos entre as tabelas.
83
Banco de Dados I
CONSULTAS
Para localizar e recuperar somente os dados que
atendem s condies especificadas, incluindo dados
de vrias tabelas, crie uma consulta. Uma consulta
tambm pode atualizar ou excluir diversos registros
simultaneamente, alm de efetuar clculos predefinidos
ou personalizados em seus dados.
FORMULRIOS
Para exibir, inserir e alterar dados de maneira
fcil e direta, crie um formulrio. Quando voc
abre um formulrio, o Microsoft Access recupera
os dados de uma ou mais tabelas e exibe-os na
tela com o layout escolhido no Assistente de
formulrio, ou com o layout criado por voc no
modo de design.
RELATRIOS
84
Banco de Dados I
Para
analisar
determinada
os
dados
maneira,
ou
crie
um
imprimi-los
de
relatrio.
Por
com
outros
dados
formatados
para
85
Banco de Dados I
intranet
para
relatrios
interativos,
86
Banco de Dados I
Barra de menu
Barra
ttulo
de
Lista de Objetos
Barra de Satus
87
Banco de Dados I
88
Banco de Dados I
89
Banco de Dados I
90
Banco de Dados I
na barra de ferramentas.
base
em
de
em OK.
banco
dados,
e,
em
Em verses mais atuais a exibio do assistente para a criao de um novo banco de dados,
baseia-se na possibilidade de baixar novos modelos de bancos de dados.
Segue uma imagem que retrata esta opo
91
Banco de Dados I
na barra de ferramentas.
Clique em um atalho no lado esquerdo da caixa de dilogo Abrir ou, na caixa Examinar, clique na
unidade de disco ou pasta que contm o banco de dados do Microsoft Access que voc deseja.
Na lista de pastas, clique duas vezes nas pastas at abrir aquela que contm o banco de dados.
Se voc no conseguir localizar o banco de dados que deseja abrir, clique em Ferramentas na
barra de ferramentas da caixa de dilogo Abrir e, em seguida, clique em Pesquisar
. Na caixa
92
Banco de Dados I
93
Banco de Dados I
Proceda da mesma forma utilizada para fechar os outros programas do pacote MS Office quando
sair de um arquivo de banco de dados. Ative a opo Fechar do menu Arquivo do programa.
Laboratrio
A.
O que um banco de dados?
B.
C.
D.
E.
F.
Ao copiar um arquivo de banco de dados, necessrio copiar tambm o arquivo com extenso
LDB? Justifique:
94
Banco de Dados I
Unidade 20 -
TABELAS
Uma tabela um conjunto de dados sobre um tpico especfico, como produtos ou fornecedores.
Utilizar uma tabela separada para cada tpico significa armazenar os dados somente uma vez.
Isso resulta em um banco de dados mais eficiente e em menos erros de entrada de dados.
Como os dados so organizados em tabelas
Tabelas organizam dados em colunas (chamadas campos) e linhas (chamados registros).
Por exemplo, cada campo em uma tabela Produtos contm o mesmo tipo de informao para
cada produto, como o nome do produto. Cada registro nessa tabela contm todas as informaes
sobre um produto, como o nome do produto, o nmero de identificao do fornecedor, as unidades
em estoque etc.
Modo de design da tabela
No modo de design da tabela, possvel criar uma tabela inteira desde o incio ou adicionar,
excluir ou personalizar os campos em uma tabela existente.
95
Banco de Dados I
96
Banco de Dados I
Percorrendo registros
Voc pode usar a barra de ferramentas de navegao para percorrer os registros de uma folha de
dados.
97
Banco de Dados I
Para criar uma tabela em branco (vazia) a fim de inserir seus prprios dados, voc pode:
98
Banco de Dados I
99
Banco de Dados I
Quando voc tiver adicionado dados a todas as colunas que deseja utilizar, clique em Salvar na
barra de ferramentas para salvar sua folha de dados.
O Microsoft Access pergunta se voc deseja criar uma chave primria. Se voc no inseriu dados
que possam ser utilizados para identificar cada linha de sua tabela de forma exclusiva, como
nmeros de srie ou de identificao, recomendvel que voc clique em Sim. Se voc inseriu
dados que possam identificar cada linha de forma exclusiva, clique em No e especifique o campo
que contm os dados como sua chave primria no modo de design.
na barra de ferramentas.
Para adicionar um campo ao final de uma tabela, clique na primeira linha em branco.
Clique na coluna Nome do campo e digite um nome exclusivo para o campo.
Na coluna Tipo de dados, mantenha o padro (Texto) ou clique na coluna Tipo de dados, clique
na seta e selecione o tipo de dados desejado.
100
Banco de Dados I
Na coluna Descrio, digite uma descrio das informaes que constaro nesse campo. Essa
descrio exibida na barra de status quando dados so adicionados ao campo e ela includa
na definio do objeto da tabela. A descrio opcional.
Defina um campo de chave primria antes de salvar sua tabela.
Abra uma tabela no modo de design.
Selecione o campo ou campos que voc deseja definir como chave primria.
Para selecionar um campo, clique no seletor de linha do campo desejado.
Para selecionar vrios campos, mantenha pressionada a tecla CTRL e, em seguida, clique no
seletor de linha de cada campo.
Clique em Chave primria
na barra de ferramentas.
Observao Se voc deseja que a ordem dos campos em uma chave primria de campos
mltiplos seja diferente da ordem desses campos na tabela, clique em ndices
na barra de
ferramentas para exibir a janela ndices e, em seguida, ordene novamente os nomes dos campos
para o ndice denominado Chave Primria.
Observao: Voc no precisa definir uma chave primria, mas normalmente recomendvel
faz-lo. Se voc no definir uma chave primria, o Microsoft Access perguntar se voc deseja
que ele crie uma quando for salvar a tabela.
Texto
Use para texto ou combinaes de texto e nmeros, como endereos, ou para nmeros que no
exigem clculos, como cdigos postais, nmeros de telefone ou de peas.
Armazena at 255 caracteres. A propriedade FieldSize controla o nmero mximo de caracteres
que podem ser inseridos.
Memorando
Use para texto longo e nmeros, como anotaes ou descries.
Armazena at 65.536 caracteres.
101
Banco de Dados I
Nmero
Use para dados numricos a serem includos em clculos matemticos, exceto os que envolvam
valores monetrios (use o tipo Moeda).
Armazena 1, 2, 4 ou 8 bytes; 16 bytes para cdigo de replicao (GUID). A propriedade FieldSize
define o tipo Nmero especfico.
Data/Hora
Use para datas e horas.
Armazena 8 bytes.
Moeda
Use para valores monetrios e para evitar arredondamento durante os clculos.
Armazena 8 bytes.
AutoNumerao
Use para nmeros sequenciais (incremento de 1) ou aleatrios exclusivos que so
automaticamente inseridos quando um registro adicionado.
Armazena 4 bytes; armazena 16 bytes para cdigo de replicao (GUID).
Sim/No
Use para dados que podem ter somente um de dois valores possveis, como Sim/No,
Falso/Verdadeiro, Ativado/Desativado. Valores Nulo no so permitidos.
Armazena 1 bit.
Objeto OLE
Use para objetos OLE (como documentos do Microsoft Word, planilhas do Microsoft Excel,
imagens, sons ou outros dados binrios) que foram criados em outros programas usando o
protocolo OLE.
Armazena at 1 gigabyte (limitado pelo espao em disco).
Hiperlink
Use para hiperlinks. Um hiperlink pode ser um caminho UNC ou um URL.
Armazena at 64.000 caracteres.
Assistente de pesquisa
Use para criar um campo que permite escolher um valor em outra tabela ou lista de valores
usando uma caixa de combinao a escolha desta opo na lista de tipos de dados iniciar um
assistente que definir isso para voc.
Requer o mesmo tamanho de armazenamento que a chave primria que corresponde ao campo
Pesquisa - normalmente 4 bytes.
102
Banco de Dados I
Propriedade
Casas decimais
Descrio
Descrio
Formato
os
dados
em
letras
maisculas e em vermelho
mmm-aaaa : Exibe uma data no formato ms
abreviado e ano completo.
Quando for necessrio emitir um relatrio ou exibir uma
Indexado
Legenda
Mscara de entrada
Novos valores
103
Banco de Dados I
Propriedade
zero
Descrio
Regra de validao
Requerido
Tamanho do campo
Texto de validao
Valor padro
Novo objeto
Janela do banco de
dados
104
Banco de Dados I
Construir
(Expresses)
Define um campo como chave primria
Propriedades
Permite a
ndices de
primria
edio dos
uma tabela
Inserir linha
Excluir linha
105
Banco de Dados I
A tabela abaixo descreve as alteraes da barra de ferramentas quando alternamos para o modo
folha de dados.
Boto
Nome
Descrio
Novo registro
Excluir
registro
106
Banco de Dados I
LABORATRIO
G.
No Windows Explorer crie uma pasta chamada Curso de Access na unidade de disco C:\Meus
Documentos
H.
Crie um banco de dados com o seu nome na pasta criada no item anterior:
I.
Tipo de dados
Tamanho
Cdigo do cargo
AutoNumerao
Inteiro Longo
Descrio do cargo
Texto
25
Campo
Tipo de dados
Tamanho
Cdigo do setor
AutoNumerao
Inteiro Longo
Descrio do setor
Texto
25
tblSetores
tblEmpresas
Campo
Cdigo
empresa
Tipo de dados
da AutoNumerao
Tamanho
Mscara
Inteiro Longo
Razo Social
Texto
50
>[Azul]
Fone
Texto
10
(999)
9999
Fax
Texto
07
999-9999
Observaes
Memorando
999-
tblFuncionrios
Campo
Tipo de dados
Tamanho
Cdigo do funcionrio
AutoNumerao
Inteiro Longo
Cdigo da empresa
Nmero
Inteiro Longo
Nome do funcionrio
Texto
30
107
Banco de Dados I
Cdigo do cargo
Nmero
Inteiro Longo
Cdigo do setor
Nmero
Inteiro Longo
Salrio
Moeda
J.
K.
L.
108
Banco de Dados I
Unidade 21 -
RELACIONAMENTOS
109
Banco de Dados I
Relacionamentos Um-Para-Um
Ocorre quando um registro na tabela primria se relaciona com apenas um registro na tabela
secundria.
Relacionamentos Vrios-Para-Vrios
Os relacionamentos vrios-para-vrios no so gerenciados diretamente pelo Access e devem ser
evitados com a adio de uma tabela intermediria como no exemplo abaixo:
110
Banco de Dados I
Boto
Nome
Propagar atualizao
campos relacionados
Propagar
excluso
registros selecionados
Atualiza
dados
na
tabela
secundria
dos automaticamente quando os dados forem alterados
na tabela primria.
dos
Exclui
dados
na
tabela
secundria
automaticamente quando os dados forem excludos
na tabela primria.
111
Banco de Dados I
Boto
Nome
Descrio
Para excluir um relacionamento existente basta apenas marcar a linha que representa o
relacionamento desejado e pressionar a tecla DELETE.
Caso o usurio exclua uma tabela da tela de relacionamentos, as relaes no sero excludas.
Definindo as Propriedades de Pesquisa
Um dos objetivos de relacionar tabelas evitar dados redundantes, aps ter criado as tabelas do
banco de dados o usurio poder definir no modo estrutura de tabela as propriedades de
pesquisa, que permitiro que determinados campos exibam dados de outras tabelas. Por exemplo,
ao cadastrar um novo produto ao invs de termos que digitar o cdigo da categoria podemos
definir as propriedades de pesquisa do campo cdigo da categoria para que seja exibida uma
caixa de combinao com o nome das categorias.
A maneira mais simples de definirmos as propriedades de pesquisa de um campo utilizarmos a
opo Assistente de pesquisa no tipo de dados do campo.
Ao definir as propriedades de pesquisa atravs do Assistente de pesquisa o Access criar
automaticamente o relacionamento, porm no definir as regras de integridade referencial e
propagao de atualizao e excluso.
112
Banco de Dados I
LABORATRIO 3
Atravs do comando relacionamentos, relacione as tabelas criadas no laboratrio 2.
Quais tabelas seriam necessrias para criar um banco de dados de uma locadora de veculos?
Elabore um modelo. (Este laboratrio dever ser realizado em conjunto com o instrutor e a turma)
113
Banco de Dados I
Unidade 22 -
CONSULTAS
114
Banco de Dados I
Clique no boto Avanar e na prxima caixa de dialogo de um nome para sua consulta, em
seguida clique em Concluir.
115
Banco de Dados I
Na caixa de dialogo Consulta1: consulta seleo, arraste os campos das tabelas, que voc queira
verificar na sua consulta, para grande de design.
Para executar uma consulta no modo design clique no boto Executar na barra de ferramentas
Design de consulta.
As consultas no Access so realizadas na grade QBE (query by exemple) que permite a definio
de consultas complexas sem a necessidade de programao em SQL (Structured Query
Language).
O exemplo abaixo mostra uma consulta para verificar os pedidos trimestrais entre 01/01/1997 e
31/12/1997.
116
Banco de Dados I
Boto Nome
Tipo
Descrio
de Alterna entre os tipos de consultas permitidos pelo
consulta
Access.
Executar
Adicionar
tabelas
Totais
Valores
principais
117
Banco de Dados I
118
Banco de Dados I
119
Banco de Dados I
Consulta Atualizao
A consulta do tipo Atualizao permite que um grupo de registros seja atualizado rapidamente.
Como no exemplo abaixo que mostra uma consulta que atualiza todos as Bebidas em 10%:
120
Banco de Dados I
Consulta Acrscimo
A consulta do tipo acrscimo utilizada para transportar registros entre tabelas.
O exemplo abaixo mostra uma consulta que anexa dados de uma tabela chamada Novos
Produtos na tabela de Produtos existente:
Consulta Excluso
A consulta do tipo excluso serve para excluir um conjunto de registro de uma tabela baseado em
critrios informados. Os registros so excludos definitivamente.
A tela abaixo exibe a definio de uma consulta que exclui todos os produtos da categoria
Brinquedos da tabela de Produtos:
121
Banco de Dados I
Utilizando Parmetros
Os parmetros so variveis definidas pelo usurio que tm seus valores informados na execuo
da consulta. Por exemplo ao invs do usurio fornecer um critrio do tipo Bebidas para uma
consulta que lista os produtos de uma categoria especfica o usurio pode utilizar um critrio do
tipo [Entre com o nome da categoria].
No exemplo abaixo ilustramos a consulta descrita acima:
O texto utilizado como parmetro no pode ser um nome de campo e deve ter o seu tipo de dados
especificado atravs do comando ConsultaParmetros.
122
Banco de Dados I
123
Banco de Dados I
LABORATRIO 4
M.
Abra o banco de dados Testando as consultas.mdb na pasta Curso de Access 2003:
N.
Tabela/Campos
Produtos:
Lista de produtos
Nome do
Produto
Preo Unitrio
Pas dos
Funcionrios
Funcionrios por
pas
Funcionrios : Nome
Pas
Funcionrios: Pas
Cdigo
Categorias:
Produtos por
Categoria
categoria
Produtos:
Classificao
Nome do
Produto
Critrio:
Preo Unitrio
>95
Nome
Pas
Nome da
Consulta com
Totais
Consulta com
Nome da
Cdigo do
Critrios/Obs
Totais
Categoria
Produto
Produtos:
Produtos com
estoque crtico
Nome do
produto
Critrio:
Nome do
Unidades em
Entre 10 e 20
produto
estoque
Clientes:
Empresas com fax
Nome da
empresa
empresa
Fax
Clientes:
Nome da
Nome da
Critrio:
Negado nulo
Critrio:
Nome da
Brasil ou
Argentina
empresa
Argentina
Fone
Pas
Atualizao do
preo em 10%
Excluso dos
clientes da
Produtos:
Preo
Unitrio
Atualizar para:
[PreoUnitrio]*1
,1
Clientes:
Pas
Critrio:
Argentina
124
Banco de Dados I
Argentina
Exporta
Funcionrios: Nome do
Criao de
Funcionrio
tabela
Cidade
Funcionrios USA
Cidade
Pas
Clientes:
Critrio :
Estados Unidos
Nome da
Tabela
Quantidade de
empresa
Nome da
referncia
Funcionrios: Nome
empresa
cruzada
e funcionrio
Pedidos:
Nmero do Funcionrio
Pedido
Categorias:
Nome da
Produtos:
Consulta com
Nome da
Preo
Totais
categoria
Unitrio
125
Banco de Dados I
Unidade 23 -
FORMULRIOS
126
Banco de Dados I
Cada
aparece
separada com
em
uma
linha
campo
Os
em uma linha,
vez na parte
campos
superior do formulrio.
Auto Formulrio: Folha de
dados:
Os
aparecem em
um formato linha-e-coluna,
com
um
registro em cada linha e um campo em cada coluna. Os nomes dos campos aparecem na parte
superior de cada coluna.
Auto Formulrio: Tabela dinmica: O formulrio abre em modo de tabela dinmica. possvel
adicionar campos arrastando-os da lista de campos para as diferentes reas no modo de exibio.
Auto Formulrio: Grfico dinmico: O formulrio abre em modo de grfico dinmico. possvel
adicionar campos arrastando-os da lista de campos para as diferentes reas no modo de exibio.
Clique na tabela ou consulta que contm os dados em que voc deseja basear o formulrio.
Clique em OK.
O Microsoft Access aplica o ltimo autoformato usado para o formulrio. Caso voc ainda no
tenha criado um formulrio com um assistente ou no tenha usado o comando Auto Formatao
no menu Formatar, ele usar o autoformato Padro
127
Banco de Dados I
formulrio
do
no
Barra de ferramentas de
formatao
(formulrio/relatrio)
128
Banco de Dados I
Layout
Barra de ferramentas
Caixa de ferramentas
129
Banco de Dados I
Retngulo
ActiveX
Para utilizar a caixa de ferramentas, basta selecionar uma de suas opes e clicar na rea do
formulrio onde o contedo ser colocado.
Alm das barras de ferramentas e da caixa de ferramentas o usurio poder utilizar o boto direito
do mouse para acessar as opes de um determinado objeto.
Os menus do modo estrutura fornecem uma maneira simples de alinhar, distribuir e alterar a
disposio dos objetos em um formulrio.
130
Banco de Dados I
Abra uma tabela, consulta, formulrio, relatrio ou uma pgina de acesso a dados no modo de
design.
Abra a folha de propriedades seguindo um destes procedimentos:
No caso de um formulrio ou relatrio, clique duas vezes no seletor de formulrios ou no seletor
de relatrios.
, na barra de ferramentas.
Para uma seo em um formulrio ou relatrio, clique duas vezes no seletor de sees.
Para uma seo em uma pgina de acesso a dados, clique duas vezes na barra de sees.
na barra de ferramentas.
Para definir propriedades de uma de lista de campo de consulta, clique em qualquer parte da lista,
e em Propriedades
na barra de ferramentas.
Para definir propriedades do corpo de uma pgina de acesso a dados, clique acima da primeira
seo, e em Propriedades
na barra de ferramentas.
na barra de
ferramentas.
Na folha de propriedades, clique na propriedade que voc deseja definir e, em seguida, siga um
destes procedimentos:
Se uma seta aparecer na caixa da propriedade, clique nela e selecione um valor da lista.
Digite uma configurao ou expresso na caixa da propriedade.
131
Banco de Dados I
Dicas: Para obter Ajuda sobre qualquer propriedade na folha de propriedades, clique na
propriedade e, em seguida, pressione F1.
Se precisar de mais espao para inserir ou editar uma configurao de propriedade, pressione
SHIFT+F2 para abrir a caixa Zoom
Outro item importante no modo design de formulrio a folha de propriedades dos objetos que
pode ser acessada pelo boto da barra de
ferramentas
podem
ser
132
Banco de Dados I
133
Banco de Dados I
Esta ilustrao mostra a aparncia que o formulrio Adicionar produtos ter ao ser impresso.
Um subformulrio tambm pode ter sees. Por exemplo, este subformulrio possui um cabealho
e um rodap de formulrio, alm da seo de detalhes.
134
Banco de Dados I
Voc pode ocultar ou redimensionar uma seo, adicionar uma imagem ou definir a cor do plano
de fundo de uma seo. Tambm possvel definir propriedades da seo para personalizar a
maneira como o contedo de uma seo ser impresso.
23.5 SUBFORMULRIOS
Um subformulrio um formulrio dentro de outro. O formulrio primrio chamado de formulrio
principal e o formulrio dentro do formulrio denominado subformulrio. Uma combinao
formulrio/subformulrio sempre citada como um formulrio hierrquico, um formulrio
mestre/detalhe ou um formulrio pai/filho.
Os subformulrios so eficientes principalmente quando se deseja exibir dados de tabelas ou
consultas com um relacionamento um-para-muitos. Por exemplo, voc poderia criar um formulrio
com um subformulrio para exibir dados de uma tabela de categorias e de uma tabela de produtos.
Os dados na tabela de categorias correspondem ao lado "um" do relacionamento. Os dados na
tabela de produtos correspondem ao lado "muitos" do relacionamento cada categoria pode ter
mais de um produto.
O formulrio principal e o subformulrio neste tipo de formulrio so vinculados de tal forma que o
subformulrio exiba apenas registros que esto relacionados ao registro atual no formulrio
principal. Por exemplo, quando o formulrio principal exibir a categoria Bebidas, o subformulrio
exibir apenas os produtos na categoria Bebidas.
135
Banco de Dados I
Quando voc cria um subformulrio, possvel cri-lo de forma a ser exibido em modo folha de
dados, modo de formulrio, modo de tabela dinmica ou modo de grfico dinmico. Tambm
possvel definir o modo de exibio padro do subformulrio e desativar um ou mais modos de
exibio. possvel alternar o modo de exibio de uma subformulrio quando o formulrio
principal exibido em modo de formulrio.
136
Banco de Dados I
137
Banco de Dados I
correspondente na tabela base do subformulrio deve ser um campo numrico com a propriedade
FieldSize definida como Inteiro longo. Se voc selecionar uma ou mais consultas, as tabelas
base da consulta ou consultas devero atender a essas condies.
Aninhando nveis
Um formulrio principal poder ter qualquer nmero de subformulrios se voc colocar cada um
deles no formulrio principal. Voc tambm pode aninhar at sete nveis de subformulrios. Isto
significa que voc pode ter um subformulrio dentro de um formulrio principal e um outro
subformulrio dentro daquele subformulrio e assim por diante. Por exemplo, voc pode ter um
formulrio principal que exiba clientes, um subformulrio que exiba pedidos e outro subformulrio
que exiba detalhes do pedido. Entretanto, um formulrio no exibir subformulrios em modo de
tabela dinmica ou modo de grfico dinmico.
Inserindo dados usando um formulrio e subformulrio
Quando voc utiliza um formulrio com um subformulrio para inserir novos registros, o Microsoft
Access salva o registro atual no formulrio principal quando voc insere dados no subformulrio.
Isto assegura que os registros na tabela "muitos" tero um registro na tabela "um" com o qual se
relacionar. Isto tambm salva automaticamente cada registro medida que so adicionados ao
subformulrio.
Criar um subformulrio
Se o subformulrio for vinculado ao formulrio principal, certifique-se de que as origens do registro
base estejam relacionadas antes de usar este procedimento.
No possvel adicionar um subformulrio a um formulrio quando ele exibido em modo de
tabela dinmica ou em modo de grfico dinmico.
em Objetos.
138
Banco de Dados I
Na mesma caixa de dilogo do assistente, selecione outra tabela ou consulta da lista. Utilizando o
mesmo exemplo, selecione a tabela Produtos (o lado " muitos" da relao um-para-muitos).
Clique duas vezes nos campos que voc deseja incluir desta tabela ou consulta .
Quando voc clicar em Avanar, se os relacionamentos tiverem sido corretamente definidos antes
de iniciar o assistente, o assistente perguntar que tabela ou consulta voc deseja visualizar.
Utilizando o mesmo exemplo, para criar o formulrio Categorias, clique em Por categorias.
Na mesma caixa de dilogo do assistente, selecione a opo Formulrio com subformulrio (s)
.
Siga as instrues nas demais caixas de dilogo do assistente. Quando voc clicar em Concluir,
o Microsoft Access criar dois formulrios, um para o formulrio principal e controle de
subformulrio, e um para o subformulrio.
LABORATRIO
O.
Abra o banco de dados criado no laboratrio 2:
P.
Com a ajuda do Assistente de Auto formulrio Colunar crie um formulrio para cada tabela do
banco de dados:
Q.
Em cada um dos formulrios criados no item anterior coloque um boto que feche o formulrio:
R.
Crie um formulrio chamado Menu Principal, que possua um boto que abra cada um dos
formulrios criados no item B:
S.
T.
139
Banco de Dados I
Unidade 24 -
RELATRIOS
140
Banco de Dados I
relatrio padro
interveno
do
ferramentas
Conforme figura
ao lado.
141
Banco de Dados I
No modo design que serve apara alterar relatrios existentes ou criao de novos relatrios ser
exibida a seguinte tela:
142
Banco de Dados I
Boto
Nome
Descrio
Sublinhado
Esquerda
Centro
Centraliza o texto.
Direita
Cor
preenchimento
Cor fonte
Cor contorno
Contorno
143
Banco de Dados I
Outro item importante no modo design de relatrios a folha de propriedades dos objetos que
pode ser acessada pelo boto da barra de ferramentas ou
atravs
do
definidas
para
objeto relatrio:
144
Banco de Dados I
LABORATRIO 6
U.
Abra o banco de dados criado no laboratrio 2:
V.
Com a ajuda do Assistente de Auto relatrio tabular crie um relatrio para cada tabela do
banco de dados:
W.
Crie um novo formulrio no modo estrutura que possua um boto para visualizar cada um dos
relatrios criados no item B:
X.
Abra a estrutura do formulrio Menu Principal e crie um boto que abra o formulrio criado no
item C:
145
Banco de Dados I
Unidade 25 -
Pgina de dados
146
Banco de Dados I
Clique na tabela, na consulta ou no modo de exibio que contenha os dados nos quais voc
deseja basear sua pgina.
Clique em OK.
Na pgina de acesso a dados concluda, cada campo ser exibido em uma linha separada com
um rtulo esquerda. Se a pgina resultante no tiver a aparncia desejada, voc pode modificar
a pgina no modo de design.
Observao: Se voc definiu um tema padro, o Microsoft Access o aplica pgina.
Criar uma pgina de acesso a dados que contm campos de vrias tabelas e consultas
(Assistente de pgina)
O assistente formula perguntas detalhadas sobre origens do registro, campos, layout e formato
desejados e cria uma pgina com base nas suas respostas.
Se o assistente no for iniciado
Essa situao pode ocorrer porque o Access est em execuo no modo seguro, mas o
componente Microsoft Jet 4.0 SP8 ou posterior no est instalado no computador. necessrio
que o Jet 4.0 SP8 ou posterior esteja instalado para que o Access funcione plenamente quando o
modo seguro estiver habilitado.
Observao: Para obter mais informaes sobre a instalao da atualizao do Jet, consulte o
artigo
About
Microsoft
Jet
4.0
SP8
or
later
do
Office
Online,
em
http://office.microsoft.com/assistance/preview.aspx?AssetID=HA010489351033.
Para obter mais informaes sobre o modo seguro, consulte o artigo Sobre o modo seguro do
Microsoft Jet Expression Service.
147
Banco de Dados I
Se a pgina resultante no tiver a aparncia desejada, voc pode modificar a pgina no modo de
design.
Observaes:
a) Caso voc queira incluir campos de vrias tabelas e consultas em sua pgina, no clique em
Avanar nem em Concluir aps selecionar os campos da primeira tabela ou consulta no Assistente
de pgina. Repita as etapas para selecionar uma tabela ou consulta e escolha os campos que
deseja incluir no relatrio, at ter selecionado todos os campos necessrios.
b) Se voc incluir campos de vrias tabelas ou consultas mas no criar nveis de grupo, os
campos de uma das tabelas base podem oferecer suporte a atualizaes no modo de pgina ou
no Microsoft Internet Explorer. O assistente listar as origens de registro da pgina e solicitar que
voc especifique a fonte do recurso atualizvel.
148
Banco de Dados I
, em Objetos.
Observao: Se voc especificou um arquivo de conexo padro para o banco de dados na guia
Pginas da caixa de dilogo Opes, o Microsoft Access automaticamente definir as
propriedades ConnectionFile e ConnectionString para todas as novas pginas.
Criar uma pgina de acesso a dados autnoma
Se um banco de dados for aberto no Microsoft Access, feche-o.
No menu Arquivo, clique em Novo.
Na caixa de dilogo Novo, clique em Pgina de acesso a dados.
Na caixa de dilogo Selecionar fonte de dados, siga um destes procedimentos:
149
Banco de Dados I
150
Banco de Dados I
LABORATRIO 7
Y.
Como base nas tabelas criadas no laboratrio 2, crie uma pagina de acesso. Layout Livre.
151
Banco de Dados I
Unidade 26 -
PERSONALIZAO E
UTILITRIOS
Alm do ttulo, cone e formulrio padro o usurio poder definir se os menus podero ser
utilizados ou no e se a Janela Banco de Dados ser exibida.
No Access 2007 selecione o boto do Office (canto superior esquerdo) e clique em "Opes do
Access". Selecione o menu "Banco de dados atual" e desmarque os itens: Permitir Menus
Completos" e "Permitir Barras de Ferramentas Internas. Veja na figura abaixo
152
Banco de Dados I
153
Banco de Dados I
154
Banco de Dados I
Protegendo o Arquivo
A proteo de arquivo solicitar uma senha do usurio todas as vezes que o mesmo tentar abrir o
arquivo de banco de dados.
Para ativar a proteo por senha escolha FerramentasSeguranaDefinir senha do banco de
dados.
Criando um Arquivo Mde
Um arquivo MDE na verdade uma verso compilada do arquivo MDB. Um arquivo MDE
permitir apenas alteraes e visualizao de estrutura para tabelas e consultas.
Para criar um arquivo MDE menu FerramentasUtilitrios de Banco de dadosCriar um MDE
Criptografando o Arquivo
A criptografia tornar impossvel que outros aplicativos consigam ler o banco de dados do Access.
Quando o Access for efetuar a abertura do arquivo ele mesmo efetuar a descriptografia dos
dados, o que torna este recurso totalmente transparente para o usurio.
No Access 2007 encontramos estas opes na barra de ferramentas
155
Banco de Dados I
LABORATRIO 8
Z.
Defina o formulrio Menu Principal como formulrio de inicializao do seu banco de dados
criado no laboratrio 2:
AA.
BB.
CC.
DD.
156
Banco de Dados I
Unidade 27 -
MySQL
27.1 Introduo
O MySQL mais um exemplo de SGBD que utiliza a linguagem SQL como forma de interagir com os dados
armazenados. Obviamente, possui algumas sintaxes de comandos que mesmo provenientes da linguagem
SQL so especficas deste banco. um dos bancos de dados mais utilizados por empresas e usurios pessoais
Podemos citar vrios grandes exemplos de usurios deste sistema de gerenciamento de banco de dados, mas
o maior case de sucesso, no poderia deixar de ser outro: o Google.
Este sistema teve seu lanamento na dcada de 1980, de l para c o numero de usurios e pessoas
responsveis por sua manuteno e testes s tem aumentado. Alm disso uma srie de sistemas satlite vem
sendo desenvolvidos para agregar cada vez mais funcionalidades e este bando.
Inicialmente o MySQL era um sistema que pertencia a uma empresa que o ofertava livremente, sem a
inteno de gerar concorrncia. No entanto a sua grande expanso fez com que grandes corporaes como a
SUN a adquirisse. Ironicamente a SUN foi adquirida pela ORACLE o que criou quase que uma guerra fria
de bancos de dados, tendo a ORACLE de um lado e a Microsoft de outro.
Este grande ganho de mercado que o MySQL obteve tem como um dos grandes fatores a integrao com
uma das linguagens de programao de maior sucesso na Internet, o PHP. Esta configurao de uso do
Linux(Sistema Operacional), MySQL, PHP e o Apache(Servidor), criou uma sigla conhecida como LAMP,
que uma das opes mais aceitas pelos usurios na hora de hospedar seus sites. Tambm comum a
visualizao da sigla WAMP, que nada mais do que troca do sistema operacional Linux pelo Windows
Em seu princpio o MySQL era considerado um SGBD fraco e de poucos recursos. No entanto esta realidade
mudou drasticamente nos ltimos anos e ele j utilizado na gesto de dados com grande volume de acesso
como o Google e a Wikipdia alm de ter sua utilizao empregada em instituies que lidam com a
segurana e preciso da informao como fatores determinantes de seu negcio. Podemos citar como
exemplo a NASA e o exrcito Americano, alm de exemplos nacionais como o banco Bradesco e tantas
outras instituies financeiras
157
Banco de Dados I
Unidade 28 -
O Front-End
Este sistema bem completo e oferece suporte a linguagem, bem como interface amigvel ao
banco em si.
Alm desta possibilidade nativa, possumos uma srie de outros sistemas
desktop, cabendo um destaque ao Navicat.
Entretanto como a maior popularizao do MySQL se deu pelo grande
casamento com a linguagem para web(PHP), no poderia deixar de existir um
sistema nesta linguagem e que o mesmo fosse um dos mais utilizados.
Estamos nos referindo ao phpMyAdmin
Em nosso material vamos citar exemplos de manipulao de dados utilizando o phpMyAdmin bem
como do MySQL Query Browser
158
Banco de Dados I
Unidade 29 -
com o gerenciador
o Administrador.";
exit;
}
//2 passo - Seleciona o Banco de Dados
if(!($con=mysql_select_db($dbname,$id))) {
echo "No foi possvel
MySQL. Favor Contactar
estabelecer
uma
conexo
com
gerenciador
o Administrador.";
exit;
}
?>
Alm deste exemplo existe outras linguagem que possuem seu prprio script de conexo
159
Banco de Dados I
160
Banco de Dados I
Por sua vez o MySQL Query Browser um software desktop, portanto, fica instalado na mquina
que ir acessar o banco. Este programa pode ser facilmente baixado atravs do site da MYSQL ou
em local prprios para download de aplicativos, tais como o superdownloads e o baixaki.
A acessar este sistema a seguinte tela ser exibida:
161
Banco de Dados I
162
Banco de Dados I
Unidade 30 -
Conhecendo a Interface
30.1 phpMyAdmin
Ao acessar o phpMyAdmin nos exibida um tela com as principais funcionalidades do bando de
dados. Veja uma tela de exemplo abaixo:
Esta tela nos mostra algumas informaes sobre a configurao do servidor em que o banco est
hospedado bem como estatsticas sobre o funcionamento do banco de dados
163
Banco de Dados I
164
Banco de Dados I
No MySQL Query Browser localizamos estas mesmas opes no canto superior direito:
165
Banco de Dados I
Unidade 31 -
No MySQL Query Browser clicamos com o boto direito sobre uma base qualquer e escolhemos a
opo Create New Schema
166
Banco de Dados I
Unidade 32 -
Criando Tabelas
32.1 Interface
A criao de tabelas com a utilizao de scripts j foi vista em unidades anteriores, esto vamos
nos deter na facilidade da criao de tabelas com a interao da interface dos font-ends
phpMyAdmin
Com a base de dados selecionada basta digitar o nome da nova tabela e o nmero de campos
que a mesma ter (nmero de arquivos)
Logo apes este passo ser exibida uma tela para as devidas configuraes:
Valores Nulos
Tamanho do Campo
Tipo de dado
Nome do campo
Formatao Campo
Comentrio
Autoincremento
Texto Completo
Valor padro
Vavio
nico
Indice
Chave Primria
167
Banco de Dados I
Cometrios
Tipo de tabela
Salvar
Incluir campos
Formatao
Executar
O preenchimento das informaes solicitadas nos campos, na realidade gera um script em SQL
para a criao da referida tabela.
Podemos verificar os scripts criados para a criao de tabelas bem como para insero do dados
das mesmas atravs do boto exportar
Esta opo muito til quando precisamos criar uma srie de tabelas que desenvolvemos
localmente para um servidor remoto.
Alm disto este script, tambm utilizado para a instalao de sistemas web baseado em banco
de dados MySQL
MySQL Query Browser
Para o MySQL Query Browser o processo simples, basta clicar com o boto direito sobre a base
de dados na qual desejas que a tabela seja criada.
168
Banco de Dados I
Nome table
Base de Dados
Comentrio
Comentrio
Nulo
Tipo Dados
Nome Campo
Salvar
Alm da informaes apontadas nas caixas de texto cabe destacar que na parte inferior da tela
exibida a chave primria selecionada bem como os ndices. Alm disso tambm encontramos mais
detalhes sobre a configurao de cada campo.
169
Banco de Dados I
Unidade 33 -
Criando Consultas
33.1 Interface
A exemplo da criao de bases de dados e tabelas, no caso das consultas, tambm podemos
realiz-las por scripts ou via interface. Vejamos como isso funciona em nossos front-ends
phpMySQL
Com sua base de dados selecionada, a lista com as tabelas exibida a direita. Ao lado de cada
tabela temos o boto de suas propriedades(
basta clicar na aba
Limite de registros(limit)
Ordernao(order by)
Campos de resultado
Critrios(where)
Critrios(where)
170
Banco de Dados I
171
Banco de Dados I
Unidade 34 -
SQL Server
34.1 Introduo
O SQL Server um SGDB criado e mantido pela Microsoft. Ele utilizado em muitas empresas,
principalmente por sua grande capacidade de gerenciamento de informaes em alto volume de dados.
Este SGBD tem muitas ferramentas integradas ao ncleo que permitem um ganho realmente significativo em
termos de controle de desempenho e extrao de informaes.
Podemos citar a sua enorme capacidade de gerao de cubos de deciso, bem como seu elevado e confivel
controle de espelhamento e distribuio de dados.
Esta alta confiabilidade na gesto dos dados, bem como a solidez de sua empresa mantenedora fazem do SQL
Server uma das que melhor equilibra a relao custo benefcio.
Para empresas de pequeno porte ou mesmo usurio individual a Microsoft disponibiliza uma verso Express
de seu banco de dados, que apesar de algumas limitaes de recursos, tais como replicao e espelhamento,
supre a necessidade destes clientes.
Um dos maiores concorrentes do SQL Server o SGDB ORACLE, e logicamente cada uma das empresas
detentoras destas marcas coloca o seu sistema como o melhor. Logicamente que se fizermos uma avaliao
fria(sem bandeiras a defender), veremos que cada um deles possui seus pontos positivos e negativos.
A concluso que podemos chegar que cada um deles deve se adequar a realidade de infraestrutura e de
capital que se est disposto a investir, mas ambos so uma boa opo para qualquer linguagem adotada.
172
Banco de Dados I
Cabe apenas destacar, que o SQL Server, por ser um banco da Microsoft utiliza bem melhor os recursos do
sistema operacional quando combinado a plataforma Windows. Mesmo possuindo a possibilidade da
instalao deste bando de dados em um sistema operacional baseado no ncleo do Linux, esta configurao
no se mostra eficiente sob a tica de performance e confiabilidade dos dados armazenados.
Neste tipo de servidor(com Linux), recomenda-se a utilizao de outro SGBD, tal como o ORACLE,
MySQL, PostGre e tantos outros
173
Banco de Dados I
Unidade 35 -
O Front-End
174
Banco de Dados I
Unidade 36 -
New
SqlConnection(
"server=localhost;
database=nomedabase;
conexao.Open()
%>
Alm deste exemplo existem outras linguagens que possuem seu prprio script de conexo
175
Banco de Dados I
No caso de instalao local basta digitar utilizar no nome de seu computador como o nome do
servidor.
176
Banco de Dados I
Unidade 37 -
Conhecendo a Interface
Esta tela nos mostra algumas informaes sobre a configurao do servidor em que o banco est
hospedado bem como estatsticas sobre o funcionamento do banco de dados
177
Banco de Dados I
Unidade 38 -
Aps isto ser exibida uma tela para colocarmos o nome de nossa nova base de dados:
178
Banco de Dados I
179
Banco de Dados I
Unidade 39 -
Criando Tabelas
39.1 Interface
A criao de tabelas com a utilizao de scripts j foi vista em unidades anteriores, esto vamos
nos deter na facilidade da criao de tabelas com a interao da interface dos font-ends
Ao expandirmos as bases de dados existentes e posteriormente seu contedo, veremos que ser
exibida a opo de tabelas.
Basta clicar com o boto direito sobre a opo tabelas e por fim utilizar Nova Tabela
Ser exibida uma tela para informarmos quais sero os campos e quais so as suas principais
caractersticas;
Texto Completo
Script alterao
Espacial
Chave primria
Restries
Relacionamento
XML
ndices
Nome Campo
Tipo dado
Nulo
180
Banco de Dados I
Unidade 40 -
Criando Consultas
40.1 Interface
A exemplo da criao de bases de dados e tabelas, no caso das consultas, tambm podemos
realiz-las por scripts ou via interface. Vejamos como isso funciona em nosso front-ends
No canto superior esquerdo encontramos a opo Nova Consulta, ao clicar nela em nossa direita
ser exibida uma tela para digitarmos nosso script em SQL
181
Banco de Dados I
Unidade 41 -
Conhecendo XML
41.1 Introduo
XML (eXtensible Markup Language) uma linguagem marcao para necessidades especiais,
muito utilizada na Web, em podcasts e rss .
um subtipo de SGML (acrnimo de Standard Generalized Markup Language, ou Linguagem
Padronizada de Marcao Genrica) capaz de descrever diversos tipos de dados. Seu propsito
principal a facilidade de compartilhamento de informaes atravs da Internet.
Entre linguagens baseadas em XML incluem-se XHTML (formato para pginas Web), RDF,SDMX
,SMIL, MathML (formato para expresses matemticas), NCL, XBRL, XSIL e SVG (formato grfico
vetorial).
A principal caracterstica do XML, de criar uma infraestrutura nica para diversas linguagens, que
linguagens desconhecidas e de pouco uso tambm podem ser definidas sem maior trabalho e sem
necessidade de serem submetidas aos comits de padronizao.
182
Banco de Dados I
Unidade 42 -
Podemos usar o Front-end para tambm criar a coluna do tipo XML digitando diretamente a
definio no editor conforme abaixo:
183
Banco de Dados I
184
Banco de Dados I
185
Banco de Dados I
Clicando no link exibido na coluna dados iremos obter o arquivo XML abaixo:
Para que possamos incluir o elemento <produto descricao="Batata" valor="2.1" /> antes do
elemento < produto descricao="Feijao" valor="2.8" /> ?
Devemos executar o seguinte script:
UPDATE MinhaTabela
SET dados.modify
('insert <produto descricao="Batata" valor="2.1" />
before (/cliente/compras/produto)[2]
')
WHERE codigoiD = 1
Perceba
a
utilizao
da
clusula
before
e
que
especificamos
o
produto
(/cliente/compras/produto)[2]) atravs do ndice 2 para indicar a posio depois da qual vamos
incluir o elemento.
Naturalmente da mesma forma poderamos ter usado a clusula after para incluir depois da
posio indicada na instruo SQL.
Para efetuar uma alterao em dados XML j cadastrados devemos usar a instruo replace que
idntica a instruo Update e permite alterar valores j cadastrados.
A utilizao da instruo replace no pode ser usada para alterar ns, mas somente valores.
Como exemplo vamos alterar o nome do produto Milho para Ervilha usando a instruo replace.
UPDATE MinhaTabela
Set dados.modify
('replace
value
of
(/cliente/compras/produto[@descricao="Milho"]
@descricao)[1] with "Ervilha"')
186
Banco de Dados I
Where codigoId = 1
Podemos usar o operador last() para direcionar para o ltimo elemento independente da sua
posio. Assim, para atualizar o valor do ultimo produto para 3.1 usamos a seguinte instruo:
UPDATE MinhaTabela
SET dados.modify
('replace
"3.1"')
value
of
(/cliente/compras/produto/@descricao)[last()]
with
WHERE codigoid = 1
Aps a execuo da instruo vamos novamente usar uma instruo SQL Select e posteriormente
o link para verificar se o valor foi realmente alterado.
187
Banco de Dados I
188
Banco de Dados I
Esta instruo exclui todos os elementos descricao cujo atributo nome contenha a string "o"
Por isso voc sempre deve usar uma clusula WHERE em uma instruo DELETE, como no
exemplo abaixo:
UPDATE MinhaTabela
SET dados.modify('
delete /cliente')
WHERE codigoid = 1
A instruo acima exclui todo o contedo XML para o cliente de cdigo igual a 1. Como o cliente
a raiz do documento XML basta definir a raiz do documento que todos os elementos sero
excludos ao final o valor da coluna passa a conter uma string vazia ("").
189
Banco de Dados I
Unidade 43 -
Trabalho Final
190
Banco de Dados I
191