C CO OL LÉ ÉG GI IO O U UN NI IV VE ER RS SI IT TA AS S

C CU UR RS SO O T TÉ ÉC CN NI IC CO O E EM M I IN NF FO OR RM MÁ ÁT TI IC CA A







A AP PO OS ST TI IL LA A D DE E
I
I
N
N
T
T
R
R
O
O
D
D
U
U
Ç
Ç
Ã
Ã
O
O
A
A

B
B
A
A
N
N
C
C
O
O
D
D
E
E
D
D
A
A
D
D
O
O
S
S

E
E
S
S
Q
Q
L
L

Módulo II
P PR RO OF F. . C CR RI IS ST TI IA AN NO O V VI IE EI IR RA A
© © 2 20 00 04 4

Índice


Parte I - Banco de Dados (introdução a teoria e aplicação real)

1. Banco de Dados ............................................................................................................. 1
1.1 Introdução........................................................................................................ 1
1.2 Definição.......................................................................................................... 1
1.3 Operações básicas de um banco de dados .............................................................. 2
1.4 Vantagens e desvantagens e de se utilizar um banco de dados .................................. 2
1.4.1 Vantagens:.......................................................................................... 2
1.4.2 Desvantagens: ..................................................................................... 2
1.5 Arquitetura de um banco de dados........................................................................ 2
1.6 Banco de dados "Não-Relacionais¨ ........................................................................ 2
1.7 Banco de dados "Relacionais¨............................................................................... 3
1.7.1 Palavras Chaves do modelo apresentado e suas definições........................... 4
1.7.2 Definições do modelo dos bancos de dados relacionais ................................ 5
Nível Externo ou de Acesso: ................................................................... 5
Nível Gerencial ou Conceitual: ................................................................ 5
Nível Interno ou de Máquina: ................................................................. 6
1.8 Características de um banco de dados relacional ..................................................... 6
1.9 Sistemas Relacionais .......................................................................................... 7
Exercícios de Fixação ............................................................................................... 8
2. Modelagem de Dados...................................................................................................... 9
2.1 Definição.......................................................................................................... 9
2.2 Abstração dos Dados .......................................................................................... 9
2.3 Dicionário de dados (DD) .................................................................................... 9
2.4 Elementos da modelagem de dados....................................................................... 9
2.4.1 Objeto ................................................................................................ 9
2.4.2 Modelo Descritivo: ................................................................................ 10
2.4.3 Modelo Conceitual: ............................................................................... 10
2.4.4 Entidade ............................................................................................. 10
2.4.5 Relacionamento.................................................................................... 11
2.4.6 - Cardinalidade ou Ordem de Relacionamentos .......................................... 12
Relacionamento de Ordem 1-1 (1 para 1)............................................... 12
Relacionamento de Ordem 1-N:N-1 (1 pra muitos:muitos pra 1) ................ 12
Relacionamento de Ordem N-N (muitos pra muitos)................................. 13
2.4.7 Atributos do Relacionamento .................................................................. 13
2.4.8 Chaves ............................................................................................... 14
Chave Primária .................................................................................. 14
Chave Composta................................................................................ 14
Chave Estrangeira .............................................................................. 14
2.4.9 Ordem do Relacionamento ..................................................................... 15
Relacionamento Binário....................................................................... 15
Relacionamento Ternário..................................................................... 15
2.4.9 Participação Total e Parcial no relacionamento........................................... 16
2.5 Regras de Normalização dos Dados....................................................................... 16
2.5.1 - Definição.......................................................................................... 16
2.5.3 - Segunda Forma Normal (2FN) .............................................................. 17
2.5.4 - Terceira Forma Normal (3FN) ............................................................... 18
2.5.5 - As Formas Normais em resumo ............................................................ 19
2.6 Exercícios para fixação........................................................................................ 20
3. Modelo Relacional .......................................................................................................... 21
3.1 Elaboração de modelo de dados............................................................................ 21
3.1.1 Integridade de dados............................................................................. 21
3.1.2 Privacidade e segurança......................................................................... 21
3.1.3 Agilidade e flexibilidade na obtenção de informações .................................. 21
3.1.4 Padronização ....................................................................................... 21


4. As Tabelas .................................................................................................................... 22
4.1 Definição.......................................................................................................... 22
4.2 Métodos de Representação Gráfica........................................................................ 22
4.3 Elementos que compõem uma tabela .................................................................... 23
4.3.1 Identificação da Tabela.......................................................................... 23
4.3.2 Título dos Campos ................................................................................ 23
4.3.3 Campo................................................................................................ 23
4.3.4 Registro .............................................................................................. 23
4.3.5 Índices ............................................................................................... 23
4.3.6 Chave Primária..................................................................................... 23
4.3.7 Chave Estrangeira................................................................................. 24
4.3.8 Domínio.............................................................................................. 24
4.4 Exercício de fixação............................................................................................ 24
4.5 Implementação computacional de uma tabela......................................................... 25
4.6 Propriedades do Campo na implementação:............................................................ 27
4.6.1 Nome do campo ................................................................................... 27
4.6.2 Tipo de dados ...................................................................................... 27
4.6.3 Tamanho do campo............................................................................... 27
4.7 Atividade de Fixação........................................................................................... 28




Parte II - SQL (linguagem de definição e manipulação de dados)

5. SQL - Structured Query Language.................................................................................... 31
5.1 Introdução a SQL............................................................................................... 31
5.2 Visões.............................................................................................................. 32
5.3.1 Comandos da Linguagem SQL ........................................................................... 32
5.3.1 Comandos DDL .................................................................................... 32
5.3.1.1 Create Table........................................................................... 32
5.3.1.2 Alter Table ............................................................................. 34
5.3.1.3 Drop Table ............................................................................. 35
5.3.1.4 Create Index .......................................................................... 35
5.3.1.5 Drop Index............................................................................. 35
5.3.2 Comandos DML .................................................................................... 36
5.3.2.1 Insert .................................................................................... 36
5.3.2.2 Update .................................................................................. 36
5.3.2.3 Delete ................................................................................... 37
5.3.2.4 Select.................................................................................... 37
COUNT .................................................................................. 38
SUM...................................................................................... 38
AVG ...................................................................................... 38
MAX...................................................................................... 38
MIN....................................................................................... 38
6. Referências Bibliográficas ................................................................................................ 39
Sugestões de Leitura ............................................................................................... 39
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 1

Parte I - Banco de Dados
INTRODUÇÃO A TEORIA E APLICAÇÃO REAL


1. Banco de Dados

1.1 Introdução

Este material foi preparado com a finalidade de transmitir aos alunos do curso de
Informática e interessados as técnicas básicas para criação e manipulação de conjuntos
relacionados de dados através dos métodos de agrupamento de informações sobre tabelas
dinâmicas definindo todas etapas de estruturação e normalização até atingir sua real
aplicação. Ferramenta indispensável para qualquer desenvolvimento de sistemas de
informação.

O objetivo principal é aplicar o modelo de dados a ser apresentado através das etapas a
seguir:
1. definir os objetivos do sistema, de forma clara, enfatizando suas funcionalidades
2. traçar o diagrama de fluxo de dados (DFD) geral do sistema, onde se identificam os
processos principais, as entidades externas, os depósitos de dados e as unidades de
dados em fluxo.
3. detalhar as saídas do sistema, isto é, os benefícios do sistema.
4. detalhar as entradas do sistema, que permitirão a obtenção das saídas.
5. criar o dicionário de dados do sistema, onde cada elemento de dado e definido,
quanto a domínio e formato interno de armazenamento.
6. criar o modelo de dados, que consiste em
a. identificar as entidades representativas do ambiente.
b. descrever cada entidade através dos seus atributos.
c. identificar os relacionamentos entre as entidades.
d. classificar as conexões que materializam os relacionamentos.
1.2 Definição

BANCO: Local onde se guarda itens DADOS: informações diversas

Também popularmente chamado de Base de Dados, Data Base, Arquivo de Dados,
Agrupamento de Dados, Base de Informações.

"Um banco de dados é um arquivo físico que tem por finalidade armazenar em
dispositivos periféricos uma coleção de informações inter-relacionadas do mundo real
através de diversos sistemas de informações e posteriormente reutiliza-las em consultas,
pesquisas e atualização.¨
"É um depósito de um conjunto de arquivos de dados computadorizados que oferece
diversos recursos ao usuário, habilitando-lhe a realização de várias operações.¨
"É um local do computador onde as informações são armazenadas de forma
organizada, de fácil acesso e que podem ser manipuladas de vários modos.¨
"É uma coleção de dados inter-relacionados, representando informações sobre
domínios específicos.¨
"Representa o arquivo físico de dados, armazenado em dispositivos periféricos, onde
estão armazenados os dados de diversos sistemas, para consulta e atualização pelo
usuário.¨


Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 2

1.3 Operações básicas de um banco de dados

Adição de informações na base de informações;
Conservação dos dados nas bases de informações;
Atualização dos dados na base de informações;
Recuperação dos dados da base de informações;
Exclusão dos dados da base de informações;
Manutenção permanente dos dados;
Definição dos métodos de acesso;
Comunicação entre hardware e usuário.
1.4 Vantagens e desvantagens e de se utilizar um banco de dados

1.4.1 Vantagens:

Velocidade de acesso aos dados;
Reduzir redundâncias;
Evitar inconsistências;
Compartilhamento dos dados;
Controle centralizado;
Assumir padrões;
Independência dos dados (mais que uma vantagem, um objetivo);
Manter a integridade;
Uma só forma de comunicação.

1.4.2 Desvantagens:

A segurança pode ser comprometida;
Torna-se necessário níveis diferentes de usuários;
A integração pode ser comprometida;
O sistema parece complexo;
Pode ser necessário um hardware adicional;
O sistema deve funcionar com bastante exatidão.

1.5 Arquitetura de um banco de dados

A forma na qual o banco de dados acessa as suas informações é determinada conforme a
qual arquitetura o mesmo foi projetado.
Existem basicamente 2 arquiteturas de banco de dados:
o Não-relacionais e
o Relacionais

1.6 Banco de dados "Não-Relacionais"

São aqueles em que os dados do sistema estão armazenados fisicamente separados um
do outro. O acesso é feito pelos programas de aplicação, associando o nome externo dos
arquivos e definindo todo o registro independente da utilização dos campos.
É composto por uma cadeia de ponteiros que indica a próxima posição do dado a ser
manipulado. Muito comum entre as primeiras versões das linguagens de programação, como
por exemplo os arquivos de extensão DAT usados pelas linguagens Turbo Basic e Turbo C, e
também arquivos de dados do Cobol e Fortran. Não se apresentam em forma de tabelas,
mas sim de arquivos textos ou binários e não permitem compartilhamento.
Neste tipo de arquitetura não é permitido a co-relação entre os dados de arquivos
diferentes, tornando assim todo o trabalho definido dentro da linguagem e a cargo do
programador.

Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 3

Modelo de uma arquitetura Não-relacional:

Registro
Pai


Registros Filhos


1.7 Banco de dados "Relacionais"

É composto por um conjunto inter-relacionado de dados que são armazenados em
tabelas e controlados por níveis diferentes usuários e recursos através de sistemas
complexos e bem estruturados. É de fácil implementação e manipulação, robusto, seguro,
possibilitando compartilhamento de dados e disponibiliza várias ferramentas que permitem
uma independência de softwares específicos para manipulação.
Estes modelos relacionais foram projetados para uma total integração entre hardware,
software, peopleware (usuários) e dados.

Modelo de uma arquitetura relacional:


Níveis

Softwares Camadas Fluxo de Informações Recursos


Envolvidos








Interfaces /
Formulários e
Consultas
U
s
u
á
r
i
o

F
i
n
a
l


N
í
v
e
l

d
e

A
c
e
s
s
o

A
p
l
i
c
a
t
i
v
o
s

Externa

DSL



Sistema de
Informação
DML

Conceitual
Externa


Visões e
Relacionamentos
P
r
o
g
r
a
m
a
d
o
r


DDL


Conceitual
Interna



N
í
v
e
l


G
e
r
e
n
c
i
a
l

S

G

D

B



Tabelas




Gerenciador DC
D

B

A




N
í
v
e
l


d
e


M
á
q
u
i
n
a

S
i
s
t
e
m
a

O
p
e
r
a
c
i
o
n
a
l

Físico

HD, CD, DVD,
Servidor,
Disquetes
U
s
u
á
r
i
o

Funcionários
Nome Endereço Profissão
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 4

1.7.1 Palavras Chaves do modelo apresentado e suas definições
Sistemas de Informação (S.I.) - São programas de computadores que
controlam o fluxo de informações entre o banco de dados e os usuários,
permitindo a este ultimo o acesso personalizado de maneira rápida e prática.
Os mais conhecidos S.I. são: - Sistemas bancários (extrato, saque, depósito),
SPC, Serasa, Terminais de vendas, Home-Page, Bibliotecas Virtuais,
Enciclopédias eletrônicas, entre outros.
Usuário Final - Operador de todos os recursos dos sistemas de informação. É
pra ele e por eles que os dados são manipulados, porém não vê o
funcionamento interno do programa.
Interfaces, Formulários e Consultas - São telas de comunicação entre o
usuário e o aplicativo, e é por estas ferramentas por onde se recebe e envia os
dados ao núcleo do banco de dados.
Tabelas - Representam as estruturas de armazenamento das informações no
banco de dados sob forma de linha e colunas similarmente a uma matriz.
Visões - São abstrações (cópias) idênticas das informações da tabela
utilizadas nas apresentações aos usuários.
Relacionamentos - Ligações entre as tabelas e visões a fim de se relacionar
os dados. É a atividade mais importante da arquitetura de banco de dados
relacionais.
SGDB - (Sistema Gerenciador de Banco de Dados) - É o software responsável
pelo gerenciamento (armazenamento e recuperação) dos dados no Banco de
Dados. Principais SGDB em utilização na atualidade: MS Access, MySQL, SQL
Server, Oracle e Dbase.
DBA - (Administrador do banco de dados) - Os Administradores de Banco de
Dados são responsáveis pelo controle ao acesso dos dados e pela coordenação
da utilização do mesmo através de técnicas de manipulação, criação, edição,
disponibilização e segurança no SGDB.
Programador - Profissional da informática responsável pelo desenvolvimento
das interfaces do usuário e de toda lógica de acesso as visões geradas pelo
SGDB para utilização nos Sistemas de Informações.
DML - Linguagem que define os comandos de manipulação e operação dos
dados (comandos de consulta e atualização dos dados dos arquivos).
DDL - Linguagem que define as aplicações, arquivos e campos que irão
compor o banco de dados (comandos de criação e atualização da estrutura dos
campos dos arquivos).
DSL – Sublinguagem de dados. Código de Programação que definem a acesso
aos dados.
Gerenciador DC - Rotinas e Código em Linguagem de baixo nível (Assembly)
que controlam a entrada e saída das informações nos dispositivos de
armazenamento - HD, disquetes, CD, e são totalmente controlados pelos
Sistemas Operacionais.
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 5

1.7.2 Definições do modelo dos bancos de dados relacionais

Os modelos de banco de dados relacionais são distribuídos por 3 (três) níveis:

Nível Externo ou de Acesso:
É aquela vista pelos usuários que utilizam os sistemas, através de interfaces
que nada mais são que as telas dos aplicativos por onde o mesmo recebe e envia
informações ao núcleo do banco de dados, buscando o atendimento de suas
necessidades. É o ponto na qual os resultados chegam aos seus solicitantes.
Este processo de envio e recebimento das informações ao núcleo do sistema é
controlado pelos S.I.-Sistemas de Informações, que são softwares desenvolvidos
por programadores e que visam a interação com os dados do banco de dados que
são acessados através das Visões.
Nível Gerencial ou Conceitual:
Este é o nível de integração dos dados, onde se preparam os relacionamentos
e determinam-se as formas de extração dos dados da matriz principal (tabela).
O nível conceitual externo é o elo entre o S.I. e as visões que são extrações
idênticas dos dados da matriz principal por meio de filtros e classificações de
acessos dinâmicos, sendo que todas as informações estão relacionadas através de
chaves. Já o nível conceitual interno é exatamente o núcleo do banco de dados, e
neste ponto é que realmente ficam as fontes exatas das informações e suas
devidas estruturas tais como tipo da informação, nome do campo, tamanho de
dados, regras de validação, formatos, índices e demais componentes que mantém
a estrutura em perfeita harmonia.
Tanto no nível conceitual interno quanto externo as atividades são controladas
por um sistema de gerenciamento de banco de dados - SGDB, que é administrado
por um DBA, que por sua vez tem todo domínio das definições de normas e
procedimentos para manipulação dos dados, afim de garantir a segurança e
confiabilidade. Na visão conceitual, existem 2 (duas) linguagens de operação dos
recursos gerados pelo SGDB e que são conhecidas como DML e DDL.

Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 6

Nível Interno ou de Máquina:
Este nível é controlado exclusivamente pelo Sistema Operacional dado
computador e seus procedimentos são pré-definidos e padronizados, servindo
assim para qualquer SGDB. É neste ponto em que as informações saem da tabela
em forma lógica, passam pelo gerenciador DC e se transformam em
identificadores binários para que sejam gravados em dispositivos de
armazenamento permanente (HD, CD, FD), ficando assim protegidas e sempre a
disposição.

1.8 Características de um banco de dados relacional
Compartilhado - Permite a utilização simultânea e segura de um dado, por mais de
uma aplicação ou usuário, independente da operação que esteja sendo realizada. Deve ser
observada apenas os processos de atualizações concorrente, para não gerar erros de
processamento (atualizar simultaneamente o mesmo campo do mesmo registro). Os
aplicativos são por natureza multiusuário.
Integrado - Reúne várias tabelas de informações um só corpo de dados, permitindo
o melhor controle nas atividades de acesso e garantindo a eficiência de todo o processo. As
principais vantagens do processo integrado são:
1 - Redução ou Eliminação de Redundâncias - Possibilita a eliminação de dados
privativos de cada sistema. Os dados, que eventualmente são comuns a mais de
um sistema, são compartilhados por eles, permitindo o acesso a uma única
informação sendo consultada por vários sistemas.
2 - Eliminação de Inconsistências - Através do armazenamento da informação em
um único local com acesso descentralizado e, sendo compartilhada à vários
sistemas, os usuários estarão utilizando uma informação confiável. A
inconsistência ocorre quando um mesmo campo tem valores diferentes em
sistemas diferentes. Exemplo, o estado civil de uma pessoa é solteiro em um
sistema e casado em outro. Isto ocorre porque esta pessoa atualizou o campo em
um sistema e não o atualizou em outro. Quando o dado é armazenado em um
único local e compartilhado pelos sistemas, este problema não ocorre.
4 - Restrições de Segurança - Define para cada usuário o nível de acesso a ele
concedido (leitura, leitura e gravação ou sem acesso) ao arquivo e/ou campo.
Este recurso impede que pessoas não autorizadas utilizem ou atualizem um
determinado arquivo ou campo.
5 - Padronização dos Dados - Permite que os campos armazenados na base de
dados sejam padronizados segundo um determinado formato de armazenamento
(padronização de tabela, conteúdo de compôs, etc) e ao nome de variáveis
seguindo critérios padrões preestabelecido pela empresa. Ex. Para o campo
"Sexo" somente será permitido armazenamento dos conteúdos "M" ou "F".
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 7

6 - Independência dos Dados - Representa a forma física de armazenamento dos
dados no Banco de Dados e a recuperação das informações pelos programas de
aplicação. Esta recuperação deverá ser totalmente independente da maneira com
que os dados estão fisicamente armazenados. Quando um programa retira ou
inclui dados o SGBD compacta-os para que haja um menor consumo de espaço
no disco. Este conhecimento do formato de armazenamento do campo é
totalmente transparente para o usuário. A independência dos dados permite os
seguintes recursos:
a - Os programas de aplicação definem apenas os campos que serão utilizados
independente da estrutura interna dos arquivos
b - Quando há inclusão de novos campos no arquivo, será feita manutenção
apenas nos programas que utilizam esses campos, não sendo necessário
mexer nos demais programas. Obs.: Nos sistemas tradicionais este tipo de
operação requer a alteração no lay-out de todos os programas do sistema
que utilizam o arquivo.
7 - Manutenção da Integridade - Consiste em impedir que um determinado código
ou chave em uma tabela não tenha correspondência em outra tabela. Ex. Um
código de uma determinada disciplina na tabela "Histórico Escolar¨ sem a sua
descrição na tabela "Disciplina¨.

1.9 Sistemas Relacionais
Um sistema relacional é aquele no qual, os dados são percebidos pelos usuários como
tabelas; e, os operadores à disposição do usuário são operadores que geram novas tabelas a
partir das antigas.
Um sistema não-relacional, vê outras estruturas (que não são tabelas) de dados.
Estas outras estruturas necessitam de outros operadores para manipulá-las. Por exemplo, o
IMS (sistema hierárquico da IBM) apresenta os dados ao usuário sob a forma de um
conjunto de estruturas de árvore, e os operadores para manipulá-las incluem operadores
para percorrerem caminhos hierárquicos para cima e para baixo das árvores.
Podemos dividir os sistemas em 4 categorias de acordo com as estruturas de dados e
os operadores que apresentam ao usuário.
relacional,
lista invertida,
hierárquica e
rede.
Os sistemas de Banco de Dados agora estão disponíveis em máquinas que abrangem
desde pequenos micros até os maiores computadores de grande porte. Os recursos
proporcionados por um determinado sistema são, até certo ponto, definidos pelo tamanho e
pela potência da máquina básica. Os sistemas de grande porte , tendem a ter usuários
múltiplos e os das máquinas pequenas a ter usuário único. Um sistema de usuário único é
aquele no qual somente um único usuário pode operar um certo momento; o sistema de
usuários múltiplos é aquele em que diversos usuários podem operar simultaneamente. Na
realidade, no sistema de usuários múltiplos, são vistos pelo usuário como se fosse um
sistema de usuário único. Os problemas especiais dos sistemas de usuários múltiplos são
internos do sistema, não visíveis ao usuário.

Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 8
Exercícios de Fixação
1. O que é um Sistema de Banco de Dados?
2. Quais os níveis principais de um Banco de Dados? Explique cada um.
3. Qual a diferença entre sistemas de usuários únicos e sistemas de usuários múltiplos.
4. Definir integrado e compartilhado.
5. Quais as vantagens de um sistema de banco de dados?
6. Quais as atividades principais de um DBA?
7. Definir SGBD.
8. O que você entende por "sistema relacional¨?
9. Quais as diferenças entre os sistemas relacionais e os não-relacionais?
10. Definir os seguintes termos:
a) DDL
b) DML
c) Visões
d) Interfaces
e) Sublinguagem de dados
f) Gerenciador DC
11. Explicar o esquema abaixo:


















Usuário A1
Linguagem +
DSL
Visão externa
*Esquema externo
Mapeamento
externo/conceitual

TABELAS
Mapeamento
interno/conceitual

Definição de estrutura
do armazenamento
(esquema interno)
SGBD -
Sistema de
Gerenciamento
de Banco de
Arquivos de armazenamento físico.
Usuário A2
Linguagem +
DSL
Usuário A3
Linguagem +
DSL
Usuário A4
Linguagem +
DSL
Visão externa
Mapeamento
externo/conceitual
*Esquema conceitual
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 9


2. Modelagem de Dados

2.1 Definição
A Modelagem de Dados é basicamente um conjunto de conceitos e regras utilizadas
para descrever um Banco de Dados. Não existe uma única forma de representação deste
modelo, porém qualquer forma que permita a correta compreensão das estruturas de dados
compreendidas no Banco de Dados, pode ser considerada adequada.
Esta modelagem consiste em mapear o mundo real do sistema em um modelo gráfico
que irá representar o modelo e o relacionamento existente entre os dados, o que chamamos
de Abstração de dados.

2.2 Abstração dos Dados
Esta etapa consistem em extrair as informações necessárias do mundo real e converte-
las em pontos chaves para iniciar o modelo de dados.
Neste modelo, um esquema das tabelas, seus relacionamentos e suas chaves de acesso
são exibidas ao usuário.
Em um SGBD real é fornecida ao usuário somente uma representação conceitual dos
dados.

2.3 Dicionário de dados (DD)
Para coletarmos os dados do mundo real e transforma-los em informações que podem
ser armazenadas em um SGBD, não é uma tarefa simples.
Para que possamos satisfazer as necessidades do mundo real e conseguirmos
implementar este novo conceito usaremos algumas técnicas, sejam para aprimorar o
tratamento dos dados, sua organização ou forma de recuperação, independente do meio que
seja utilizado para tal.
Para tanto o entendimento dos seus fundamentos e sua aplicabilidade serão agora
discutidas, procurando iniciá-lo nesta forma de pensar a organização dos dados no dia-a-dia
do seu trabalho seja ele qual for.

2.4 Elementos da modelagem de dados

2.4.1 Objeto
"Objeto é um conjunto de coisas tangíveis ou abstratas, que possuam as
mesmas características e que estejam sujeitas às mesmas normas¨.
As coisas tangíveis ou abstratas que podem compor um conjunto são
chamadas de instâncias do objeto.
Exemplo de objeto e suas instâncias:
Objeto FERRAMENTAS DE ESCRITA MANUAL= {Lápis de escrita preto, Lápis de
cor vermelho, Lápis de carpinteiro} formam um conjunto de coisas do mundo real. O
Lápis preto HB é uma das instâncias do objeto FERRAMENTAS DE ESCRITA MANUAL.
Se montarmos uma tabela que represente o objeto FERRAMENTAS DE ESCRITA
MANUAL e completarmos com as instâncias citadas teremos explícito na definição
"...que possuam as mesmas características...¨ e teremos implícito que nenhum
elemento da tabela pode estar em branco e que não podemos ter dados estranhos ao
conjunto.
Tipo Cor Utilização mais comum
De Escrita preto escrever
De Cor vermelho pintar
De Carpinteiro preto marcar madeira para corte
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 10

2.4.2 Modelo Descritivo:
Este ferramenta é utilizada para descrever os processos e eventos naturais que
ocorrem durante a captação e tratamento das informações do sistema a ser avaliado.
Exemplo: Sistema para o controle de dados dos alunos de uma universidade.
Modelo descritivo:
¨A universidade mantém o cadastro de seus alunos no Registro
Acadêmico guardando em fichas seu nome, endereço, telefone e data de
nascimento. Sobre as disciplinas que são oferecidas a universidade mantém o
código, título, descrição e carga horária. O histórico de um aluno associa os
alunos as disciplinas que eles cursaram em cada ano e mantém a nota e
freqüência que eles obtiveram.¨


2.4.3 Modelo Conceitual:
Também conhecido por MER - Modelo Entidade-Relacionamento. É representar
objetos como entidades e as associações entre eles como relacionamentos.


2.4.4 Entidade
Identifica o objeto de interesse do sistema que tem "vida" própria, ou seja, a
representação abstrata de um objeto do mundo real sobre o qual desejamos guardar
informações.
Exemplo: Clientes, Fornecedores, Alunos, Funcionários, Departamentos, etc.

Não podem ser consideradas entidades:
o Entidade com apenas 1 elemento;
o Operações do sistema;
o Saídas do sistema;
o Pessoas que realizam trabalhos (usuários do sistema);
o Cargos de direção

Elementos que compõe uma entidade:

Identificação da Entidade - Palavra chave que identifica seu conteúdo.
Ex.: Cliente, Funcionário, Aluno.

Instância de Entidade - São os elementos da entidade.
Ex.: Cliente Paulo, Funcionário João, Aluno Pedro, etc.

Atributo - Informações que desejamos guardar sobre a instância de entidade.
Exemplo: Nome do aluno, Número da turma, Endereço do fornecedor,
Função do funcionário, etc.

Atributo Identificador da Entidade (Chave) - Informação que identifica
unicamente e exclusivamente os atributos em uma entidade.
Exemplo: Na entidade Alunos campo matrícula é considerado uma
chave, pois representa unicamente o aluno que a entidade representa.


Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 11

Representação Gráfica de entidades e atributos:

- Entidade:




- Atributo:



Modelo de uma entidade com informações de alunos:












2.4.5 Relacionamento
Representa a associação entre os elementos do conjunto de uma entidade com
outra entidade.

Exemplo: João está cursando de Banco de Dados.

onde:
João: Elemento do conjunto de valores do atributo Nome_aluno da
entidade Aluno;
Banco de Dados: Elemento do conjunto de valores do atributo
Nome_disciplina da entidade Disciplina;
cursando: Ligação existente entre um aluno e uma disciplina.

Representação Gráfica de relacionamentos



- Elemento de
Relacionamento:



Modelo do relacionamento Alunos-Disciplina







Identificação
da Entidade
Nome do Atributo

ALUNOS
#Código
Nome
Data_Nascimento
Endereço
Nome Mãe
Nome Pai
Série
descrição do
relacionamento

Alunos
cursando

Disciplina
Nome_Aluno Nome_Disciplina
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 12

2.4.6 Cardinalidade ou Ordem de Relacionamentos
Representa a freqüência com que existe o relacionamento.

Relacionamento de Ordem 1-1 (1 para 1)
Exemplo: João é casado com a Maria.

onde:
João: Elemento do conjunto de valores do atributo Nome da entidade
Homem.
Maria: Elemento do conjunto de valores do atributo Nome da entidade
Mulher.
casado: Ligação entre um homem e uma mulher, sendo que um homem
pode ser casado com uma e apenas uma mulher, assim como uma mulher
pode ser casada com um e apenas um homem (P.S. no mundo ocidental).












Relacionamento de Ordem 1-N:N-1 (1 pra muitos:muitos pra 1)

Exemplo: Pedro trabalha no Departamento Pessoal.

onde:
Pedro: Elemento do conjunto de valores do atributo Nome da entidade
Funcionário.
Departamento Pessoal: Elemento do conjunto de valores do atributo
Nome_Depart. da entidade Departamento.
Trabalha: Ligação entre um Funcionário e um Departamento, onde um
funcionário pode trabalhar em um e somente um departamento e um
departamento pode ter vários funcionários.















Homem
casado

Mulher
Nome Nome
1 1
Homem
casado

Mulher
Nome Nome
1 1

Funcionário
trabalha

Departamento
Nome Nome_Depart.
1 N
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 13

Relacionamento de Ordem N-N (muitos pra muitos)
Exemplo: Antônio está matriculado na disciplina Banco de Dados.

onde:
Antônio: Elemento do conjunto de valores do atributo Nome da entidade
Aluno.
Banco de Dados: Elemento do conjunto de valores do atributo Nome da
Disciplina da entidade Disciplina.
matriculado: Ligação existente entre um aluno e uma disciplina, onde
um aluno pode estar matriculado em várias disciplinas e cada disciplina pode
ter vários alunos matriculados.









Observação:

É muito importante ressaltar que quando passamos a trabalhar com
relacionamento de ordem N-N, o elemento do relacionamento torna-se uma
nova entidade na qual recebe novos atributos que são comuns entre as
entidades relacionadas e este são chamados de atributos do relacionamento, e
o elemento do relacionamento torna-se uma nova entidade.

2.4.7 Atributos do Relacionamento
Quando um determinado relacionamento possui atributos, também
conhecido como relacionamento valorado. Esta situação ocorre apenas em
relacionamento de ordem N-N.
Exemplo: Pedro trabalha no projeto Alfa 30 horas.
Pedro: Elemento do conjunto de valores do atributo Nome da entidade
Funcionário.
Alfa: Elemento do conjunto de valores do atributo Nome do Projeto da
entidade Projeto.
trabalha: Ligação existente entre um funcionário e um projeto. Neste
caso, este funcionário trabalha 30 horas no projeto, porém o mesmo poderá
trabalhar outro número de horas em outro projeto, assim como outro
funcionário trabalha outro número de horas no mesmo projeto Alfa. Podemos
concluir que 30 horas é o atributo que pertence ao Pedro no projeto Alfa.











Aluno
matricula

Disciplina
Nome Nome_Disciplina.
N N

Funcionário
Trabalha

Projeto
Nome Nome_Funcionário
N N
Horas
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 14


2.4.8 Chaves
Conceitualmente entidades e relacionamentos individuais são distintos já que
estes representam elementos do mundo real que também são distintos. Entretanto,
para que estes elementos sejam distintos dentro do banco de dados é necessário que
a diferença entre entidades dentro de um conjunto de entidades e de relacionamentos
dentro de um conjunto de relacionamentos seja estabelecida em termos de seus
atributos.

Chave Primária
A chave primária é a chave candidata escolhida pelo projetista do banco
de dados como de significado principal para a identificação de entidades dentro
de um conjunto de entidades. Ela servirá como um identificador único das
entidades de um conjunto de entidades. Através dela é possível distinguir as
várias entidades de um conjunto e dessa forma referenciar uma entidade
particular de forma específica e sem enganos.
Também é necessário um mecanismo de identificação dos vários
relacionamentos em um conjunto de relacionamentos. Assim, também existem
chaves primárias nos conjuntos de relacionamentos. Normalmente a chave
primária de um relacionamento é composta pela combinação das chaves
primárias das entidades participantes do relacionamento.

Chave Composta
Uma chave composta é um conjunto de 1 ou mais atributos que,
tomados coletivamente permitem identificar de maneira unívoca um atributo
em uma entidade. Por exemplo, considerando um com conjunto de atributos
de pessoas, o atributo CPF e RG juntos podem ser considerado uma chave
composta, pois o conjunto não terá duas entidades com o mesmo CPF ou RG.
Também podemos considerar que para determinada aplicação seja suficiente
combinar os atributos nome, endereço e data_nascimento para distinguir uma
entidade da outra. Assim, a combinação de nome+endereço+data_nascimento
seria outra chave composta.
Uma chave candidata sempre fará parte de uma chave composta. Em
outras palavras, é o conjunto de atributos que é capaz de diferenciar as
entidades de um conjunto, de forma que, se ignorarmos (excluirmos) qualquer
um dos atributos do conjunto este deixa de ser capaz de identificar de forma
unívoca a entidade.
Em alguns casos é possível identificar várias chaves candidatas para um
conjunto de entidades.
Chave Estrangeira
Uma chave estrangeira é uma coluna ou um grupo de colunas que pode
ou não fazer parte da chave primária de uma tabela, mas certamente é chave
primária de uma outra tabela. Uma chave estrangeira composta de mais de
uma coluna é chamada de chave estrangeira composta.
o Chaves estrangeiras são indicadas pela sigla "FK¨ (foreign key)
abaixo do cabeçalho da coluna apropriada em um SGBD.
Exemplo:Empregado.Código_Dpto é uma chave estrangeira já que
não é chave primária na tabela Empregado, mas é baseada no
mesmo domínio da chave primária da tabela Departamento.
o Chaves estrangeiras podem ter valores nulos, mas se houver valor,
este deve existir na tabela onde o domínio da chave estrangeira é
chave primária.
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 15

2.4.9 Ordem do Relacionamento
Indica o número de entidade que se relacionam.

Relacionamento Binário
Quando existe o relacionamento entre apenas duas entidades.
Exemplo: Um fornecedor comercializa produtos que são fabricados por
diversos indústrias.












Relacionamento Ternário
Quando existe o relacionamento entre três entidades.
Exemplo: Um engenheiro utiliza materiais que são utilizados em
projetos.












Exemplo: Pedro comprou 1 Kg. de banana do vendedor Manoel










Para que haja venda, tem que haver um cliente, um produto e um vendedor.

Fornecedor
comercializa

Produtos
N N

Indústrias
fabricam
N
N

Engenheiro
utiliza

Materiais
N N

Projetos
N

Cliente
compra / vende

Vendedor
1 1

Produto
1
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 16

2.4.9 Participação Total e Parcial no relacionamento
A participação total de um conjunto de entidades em um conjunto de
relacionamentos, acontece quando todas as entidades participam de pelo menos um
relacionamento. Já a participação parcial acontece quando somente algumas
entidades em E participam do relacionamento R. A participação total está
estreitamente relacionada à existência de dependência. Por exemplo, desde que toda
entidade pagamento esteja associada a alguma entidade empréstimo pelo
relacionamento pagamento-empréstimo, a participação de pagamento do conjunto de
relacionamentos pagamento-empréstimo é total. por outro lado, um indivíduo pode
ser cliente de um banco, tendo ou não contraído empréstimo nele. Dessa forma, é
possível que apenas parte do conjunto de entidades cliente esteja relacionado ao
conjunto de entidades empréstimo e a participação de cliente no conjunto de
relacionamentos devedor é, portanto, parcial.


2.5 Regras de Normalização dos Dados


2.5.1 - Definição
Consiste em definir o formato lógico adequado para as estruturas de dados
identificados no projeto lógico do sistema, com o objetivo de minimizar o espaço
utilizado pelos dados e garantir a integridade e confiabilidade das informações.
A normalização é feita, através da análise dos dados que compõem as estruturas
utilizando o conceito chamado "Formas Normais (FN)". As FN são conjuntos de
restrições nos quais os dados devem satisfazê-las.
Exemplo, pode-se dizer que a estrutura está na primeira forma normal (1FN), se os
dados que a compõem satisfizerem as restrições definidas para esta etapa.
A normalização completa dos dados é feita, seguindo as restrições das três formas
normais existentes, sendo que a passagem de uma FN para outra é feita tendo como
base o resultado obtido na etapa anterior, ou seja, na FN anterior.
Para realizar a normalização dos dados, é primordial que seja definido um campo
chave para a estrutura, campo este que permite irá identificar os demais campos da
estrutura.

2.5.2 - Primeira Forma Normal (1FN)
Consiste em retirar da estrutura os elementos repetitivos, ou seja, aqueles dados
que podem compor uma estrutura de vetor. Podemos afirmar que uma estrutura está
normalizada na 1FN, se não possuir elementos repetitivos. Exemplo:
Estrutura original:
Arquivo de Notas Fiscais (Numero NF, Série, Data emissão, Cod. do Cliente, Nome
do cliente, Endereço do cliente, CGC do cliente, Relação das mercadorias vendidas
(onde para cada mercadoria temos: Código da Mercadoria, Descrição da Mercadoria,
Quantidade vendida, Preço de venda e Total da venda desta mercadoria) e Total Geral
da Nota)
Analisando a estrutura acima, observamos que existem várias mercadorias em
uma única Nota Fiscal, sendo portanto elementos repetitivos que deverão ser retirados.
Estrutura na primeira forma normal (1FN):
Arquivo de Notas Fiscais (Numero NF, Série, Data emissão, Código do Cliente,
Nome Cliente, Endereço do cliente, CGC do cliente e Total Geral da Nota)
Arquivo de Vendas (Numero NF, Código da Mercadoria, Descrição da Mercadoria,
Quantidade vendida, Preço de venda e Total da venda desta mercadoria)
Obs. Os campos sublinhados identificam as chaves das estruturas.
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 17
Como resultado desta etapa ocorre um desdobramento dos dados em duas
estruturas, a saber:
- Primeira estrutura (Arquivo de Notas Fiscais): Dados que compõem a estrutura
original, excluindo os elementos repetitivos.
- Segundo estrutura (Arquivo de Vendas): Dados que compõem os elementos
repetitivos da estrutura original, tendo como chave o campo chave da estrutura original
(Numero NF) e o campo chave da estrutura de repetição (Código da Mercadoria).

2.5.3 - Segunda Forma Normal (2FN)
Consiste em retirar das estruturas que possuem chaves compostas (campo chave
sendo formado por mais de um campo), os elementos que são funcionalmente
dependentes de parte da chave. Podemos afirmar que uma estrutura está na 2FN, se
ela estiver na 1FN e não possuir campos que são funcionalmente dependente de parte
da chave. Exemplo:
Estrutura na primeira forma normal (1FN):
Arquivo de Notas Fiscais (Numero NF, Série, Data emissão, Código do Cliente,
Nome do cliente, Endereço do cliente, CGC do cliente e Total Geral da Nota)
Arquivo de Vendas (Numero NF, Código da Mercadoria, Descrição da Mercadoria,
Quantidade vendida, Preço de venda e Total da venda desta mercadoria)
Estrutura na segunda forma normal (2FN):
Arquivo de Notas Fiscais (Numero NF, Série, Data emissão, Código do Cliente,
Nome do cliente, Endereço do cliente, CGC do cliente e Total Geral da Nota)
Arquivo de Vendas (Numero NF, Código da Mercadoria, Quantidade vendida e
Total da venda desta mercadoria)
Arquivo de Mercadorias (Código da Mercadoria, Descrição da Mercadoria, Preço de
venda)
Como resultado desta etapa, houve um desdobramento do arquivo de Vendas (o
arquivo de Notas Fiscais, não foi alterado, por não possuir chave composta) em duas
estruturas a saber:
- Primeira estrutura (Arquivo de Vendas): Contém os elementos originais, sendo
excluídos os dados que dependem apenas do campo Código da Mercadoria.
- Segundo estrutura (Arquivo de Mercadorias): Contém os elementos que são
identificados apenas pelo Código da Mercadoria, ou seja, independentemente da Nota
Fiscal, a descrição e o preço de venda serão constantes.

2.5.4 - Terceira Forma Normal (3FN)
Consiste em retirar das estruturas os campos que são funcionalmente
dependentes de outros campos que não são chaves. Podemos afirmar que uma
estrutura está na 3FN, se ela estiver na 2FN e não possuir campos dependentes de
outros campos não chaves. Exemplo:
Estrutura na segunda forma normal (2FN):
Arquivo de Notas Fiscais (Numero NF, Série, Data emissão, Código do Cliente,
Nome do cliente, Endereço do cliente, CGC do cliente e Total Geral da Nota)
Arquivo de Vendas (Numero NF, Código da Mercadoria, Quantidade vendida e
Total da venda desta mercadoria)
Arquivo de Mercadorias (Código da Mercadoria, Descrição da Mercadoria, Preço de
venda)
Estrutura na terceira forma normal (3FN):
Arquivo de Notas Fiscais (Numero NF, Série, Data emissão, Código do Cliente e
Total Geral da Nota)
Arquivo de Vendas (Numero NF, Código da Mercadoria, Quantidade vendida e
Total da venda desta mercadoria)
Arquivo de Mercadorias (Código da Mercadoria, Descrição da Mercadoria, Preço de
venda)
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 18
Arquivo de Clientes (Código do Cliente, Nome do cliente, Endereço do cliente e
CGC do cliente)
Como resultado desta etapa, houve um desdobramento do arquivo de Notas
Fiscais, por ser o único que possuía campos que não eram dependentes da chave
principal (Numero NF), uma vez que independente da Nota Fiscal, o Nome, Endereço e
CGC do cliente são inalterados. Este procedimento permite evitar inconsistência nos
dados dos arquivos e economizar espaço por eliminar o armazenamento freqüente e
repetidas vezes destes dados. A cada nota fiscal comprada pelo cliente, haverá o
armazenamento destes dados e poderá ocorrer divergência entre eles.
As estruturas alteradas foram pelos motivos, a saber:
- Primeira estrutura (Arquivo de Notas Fiscais): Contém os elementos originais,
sendo excluído os dados que são dependentes apenas do campo Código do Cliente
(informações referentes ao cliente).
- Segundo estrutura (Arquivo de Clientes): Contém os elementos que são
identificados apenas pelo Código do Cliente, ou seja, independente da Nota Fiscal, o
Nome, Endereço e CGC dos clientes serão constantes.
Após a normalização, as estruturas dos dados estão projetadas para eliminar as
inconsistências e redundâncias dos dados, eliminando desta forma qualquer problema
de atualização e operacionalização do sistema. A versão final dos dados poderá sofrer
alguma alteração, para atender as necessidades específicas do sistema, a critério do
analista de desenvolvimento durante o projeto físico do sistema.

2.5.5 - As Formas Normais em resumo

Primeira Forma Normal (3FN)
Uma relação se encontra na primeira forma normal se todos os domínios de
atributos possuem apenas valores atômicos (simples e indivisíveis), e que os
valores de cada atributo na entidade seja um valor simples. Assim sendo todos os
atributos compostos devem ser divididos em atributos atômicos.
Segunda Forma Normal (2FN)
Uma relação se encontra na segunda forma normal quando estiver na primeira
forma normal e todos os atributos que não participam da chave primária são
dependentes desta. Assim devemos verificar se todos os atributos são
dependentes da chave primária e retirar-se da relação todos os atributos de um
grupo não dependente que dará origem a uma nova relação, que conterá esse
atributo como não chave. Desta maneira, na segunda forma normal evita
inconsistências devido a duplicidades.
Terceira Forma Normal (3FN)
Uma relação estará na terceira forma normal, quando estiver na primeira
forma norma e todos os atributos que não participam da chave primária são
dependentes desta porém não transitivos. Assim devemos verificar se existe um
atributo que não depende diretamente da chave, retirá-lo criando uma nova
relação que conterá esse grupo de atributos, e defina com a chave, os atributos
dos quais esse grupo depende diretamente.
Suas aplicações
O processo de normalização deve ser aplicado em uma relação por vez, pois
durante o processo de normalização vamos obtendo quebras, e por conseguinte,
novas relações. No momento em que o sistema estiver satisfatório, do ponto de
vista do analista, este processo iterativo é interrompido. De fato existem
literaturas indicando quarta, quinta formas normais, que não nos parecem tão
importante, nem mesmo academicamente.
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 19
A normalização para formas apoiadas em dependências funcionais evita
inconsistências, usando para isso a própria construção da Base. Se a mesma
consistência for passível de ser garantida pelo aplicativo, a normalização pode ser
evitada com ganhos reais no desempenho das pesquisas. No caso das
consistências não serem tão importantes, também podemos não normalizar
totalmente uma Base de Dados.

2.6 Exercícios para fixação
Normalizar os seguintes atributos:

Nº do Pedido, Nome do Cliente, Nome dos Produtos, Quantidades

Aplicando 1FN:
Nº do Pedido#, Código do Cliente, Nome dos Produtos, Quantidades
Código do Cliente#, Nome do Cliente
Aplicando 2FN:
Nº do Pedido#, Código do Cliente, Código dos Produtos, Quantidades
Código do Cliente#, Nome do Cliente
Código do Produto#, Nome do Produto
Aplicando 3FN
Nº do Pedido#, Código do Cliente
Código do Cliente#, Nome do Cliente
Código do Produto#, Nome do Produto
Nº do Pedido#, Código do Produto, Quantidade
Entidades após a aplicação da FN´s
Cliente Pedido Item Produto
CliCodi# PedNume# PedNume# ProCodi#
CliNome CliCodi ProCodi ProNome
IteQtde

Considerando qualquer formulário de pedidos podemos notar que o Número do
Pedido geralmente tem destaque e sempre é único, ou seja encontramos nosso atributo
chave de Pedidos, como sabemos que um cliente pode fazer mais de uma compra,
achamos nossa Tabela de Clientes, que pode ter um Código, portanto achamos seu
atributo chave, que por conseguinte será ligado ao atributo chave da entidade de
Pedido.

Finalmente podemos perceber, que da mesma forma como os clientes se repetem
em relação a entidade de Pedidos, os produtos podem se repetir na entidade de itens
(observe que não obstante não termos nenhum pedido com o mesmo item grafado
duas vezes, este item pode ser adquirido em outro pedido). Assim descobrimos nossa
quarta entidade, a entidade de Produtos e o atributo chave é Código do Produto.
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 20

3. Modelo Relacional
O modelo relacional utiliza um conjunto de linhas e colunas para representar tanto os
dados como a relação entre eles. Cada associação de linhas e colunas, chamamos de tabela.
Suas colunas possui um nome único e representam os atributos. Abaixo apresentamos um
exemplo de um modelo relacional contendo informações dos clientes de uma rede bancária.

Nome R.G. Endereço Agencia N.Conta Saldo
João 7654876-8 Av Brasil 2345 4567 550,00
Maria 9876543-4 R. St. Dummont 4567 6543 150,00
Carlos 7654986-2 Pd. Agostinho 5678 2345 330,00
Pedro 9234456-8 R. Neo Alves Mendes 6543 5678 1050,00

3.1 Elaboração de modelo de dados
A complexidade de um Banco de Dados reside mais na sua elaboração do que em
sua criação e manutenção. O processo que antecede a criação efetiva de um Banco de
Dados, denomina-se modelagem de dados. É no processo da modelagem que o DBA,
de posse de todos os levantamentos e entrevistas feitas com os usuários do sistema,
define quais serão os dados necessários e como eles serão organizados em tabelas
ainda como estas tabelas serão relacionadas para atender as "necessidades do
negócio¨. As "necessidades do negócio¨ são chamadas de Regras de Negócio. São estas
regras que definem a forma pela qual os dados devem ser organizados dentro do Banco
de Dados para que atendam o dia-a-dia do usuário.
3.1.1 Integridade de dados
A integridade dos dados está ligada a sua confiabilidade total. Por exemplo: um
Banco de Dados, cujas tabelas façam o registro de lançamentos de uma conta corrente
dos clientes de um banco. Se o cliente fizer uma consulta de saldo ou solicitar um
extrato de sua conta corrente, jamais poderá acontecer uma falha. A precisão deve ser
de 100%. Para garantir esta integridade de dados, o SGBD deve possuir mecanismos
de controle infalíveis. Imagine um depósito feito por um cliente sendo creditado para
outro ou um cheque sendo devolvido por insuficiência de fundos quando na verdade
tinha fundos.
3.1.2 Privacidade e segurança
Tão importante quanto a integridade dos dados é a segurança que é preciso ter
quanto ao acesso aos dados. A natureza das informações normalmente são sigilosas:
saldo de conta corrente, investimentos, senhas de acesso, relação de clientes
devedores e diversos outras. O acesso à informação só deve ser permitido àqueles que
possuam sua autenticação através do nome de usuário de sua senha pessoal.
3.1.3 Agilidade e flexibilidade na obtenção de informações
Não existe nada mais irritante para um usuário do que o tempo de espera para
obter uma informação, não importa se no seu computador em casa, no caixa eletrônico
ao consultar seu saldo ou pedir extrato, na Internet quando esta acessando aquele site
interessante, o SGBD devem oferecer flexibilidade (permitir obter a informação de
diversas formas) e agilidade (permitir que as informações cheguem com rapidez).
3.1.4 Padronização
Um SGBD deve oferecer uma forma padronizada de acesso aos dados, para que
se ganhe independência de plataforma e desta forma agilidade para obtenção da
informação. Esta padronização vai além das fronteiras do acesso e passa pela coerência
que devem ter analistas, DBAs e programadores em geral ao projetar um Banco de
Dados, para que ele não se transforme em uma amontoado de código que ninguém
consiga entender ou consultar de maneira interativa.
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 21

4. As Tabelas

4.1 Definição
Uma tabela é uma representação gráfica bidimensional de dados, composta de
colunas e linhas que é construída com base no resultado da aplicação da modelagem.

4.2 Métodos de Representação Gráfica

Método 1
Criar a tabela para o conjunto de entidades de nível superior
Para cada entidade de nível inferior criar uma tabela com os atributos
particulares + a chave primária da entidade de nível superior
Exemplo:
o Conta: número_conta, saldo
o Conta_poupança: número_conta, rendimento
o Conta_movimento: número_conta, limite_cheque

Método 2
Para cada entidade de nível inferior criar uma tabela com os atributos
particulares + os atributos da entidade de nível superior
Exemplo:
o Conta_poupança: número_conta, rendimento, saldo
o Conta_movimento: número_conta, limite_cheque, saldo
o Usada quando a gereralização é mutuamente exclusiva e total ou
teremos valores duplicados e ausência de representação

Modelo da Representação Gráfica de uma tabela
Tabela de Alunos
o Matricula
o Nome do aluno
o Endereço
o Data Nascimento
o Série
o Cód_Prof.


Tabela A L U N O S

Matricula Nome_Aluno Endereço Data_Nascimento Série Cód_Prof.
04001 Ana Maria Rua xxxxx 10/05/83 5 P01
04002 José Antonio Av. hhhhhh 15/08/79 8 P253
04003 Pedro Paulo Praça 15 21/11/02 2 P16




Identificação
da Tabela
Registros
ou Linhas
Campos ou Colunas
Chave
Primária
Chave
Estrangeira
Título dos
Campos
Domínios
ou Corpo
Índices (Ordenação)
A-Z / Z-A
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 22

4.3 Elementos que compõem uma tabela


4.3.1 Identificação da Tabela
Palavras chave ou expressões que indicam quais informações estarão
contidas nas tabelas.

4.3.2 Título dos Campos
Identificações, ou atributos que serão armazenados nas colunas da tabela.

4.3.3 Campo
O campo é a menor unidade de informação existente em um arquivo de
banco de dados. Isso significa que toda informação entrada em um arquivo de
banco de dados é quebrada em porções menores, que recairão em campos
específicos.

4.3.4 Registro
Um registro é um conjunto de campos. É a entidade que identifica uma
entrada única em um banco de dados.

4.3.5 Índices
Os índices de um banco de dados permitem que as instruções sejam
encontradas com uma maior rapidez. De certa forma, eles se assemelham aos
índices encontrados nos livros, ou seja, direcionam até a posição onde se
encontra a informação desejada.

4.3.6 Chave Primária
Uma chave primária é uma coluna ou um grupo de colunas que assegura a
unicidade das linhas dentro de uma tabela. Uma chave primária que tenha mais
de uma coluna é chamada de chave primária composta.
Para definir uma chave primária é necessário observar algumas regras:
Regra 1 - Chaves primárias são indicadas pela sigla "PK¨ (primary key),
imediatamente abaixo do cabeçalho da coluna apropriada.
Regra 2 - Valores de chaves primárias não podem ser nulos ("PK¨ implica
em "NN¨). Isso implica que uma linha sem chave primária não pode ser
distinguida de outra linha na mesma tabela.
Regra 3 - Colunas com chaves primárias não podem conter valores
duplicados, "PK¨ implica em "ND¨, por definição.
Regra 4 - Chaves primárias não podem ser alteradas, ("NC¨ = no change)
"PK¨ implica em "NC¨. Esta regra é freqüentemente objeto de debates entre os
teóricos dos banco de dados relacionais. Em certos casos parecem ser viáveis
modificações em algumas chaves primárias compostas. Em termos gerais porém,
é recomendável manter-se fiel a esta regra.
Diretrizes
1. Selecione chaves primárias absolutamente disciplinadas e que
permaneçam únicas.
2. Selecione chaves gerais que não tenham qualquer tendência de
alterações.
3. Se possível, selecione chaves primárias compactas. Chaves
primárias são freqüentemente usadas e referenciadas no sistema.
4. Selecione chaves primárias numéricas. Chaves primárias
numéricas são mais fáceis de acessar e gerenciar.
5. Selecione chaves primárias que são familiares ao usuário do
sistema. Sempre que possível use os códigos já existentes, os
identificadores etc.

Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 23


4.3.7 Chave Estrangeira
Uma chave estrangeira é uma coluna ou um grupo de colunas que pode ou
não fazer parte da chave primária de uma tabela, mas certamente é chave
primária de uma outra tabela. Uma chave estrangeira composta de mais de uma
coluna é chamada de chave estrangeira composta.
Para definir uma chave estrangeira é necessário observar algumas regras:
Regra 1 - Chaves estrangeiras são indicadas pela sigla "FK¨ (foreign key)
abaixo do cabeçalho da coluna apropriada.
Regra 2 - Chaves estrangeiras podem ter valores nulos, mas se houver
valor, este deve existir na tabela onde o domínio da chave estrangeira é chave
primária.

4.3.8 Domínio
Um domínio é um tipo fundamental de informação de um sistema. É o
universo das informações que estão contidas no atributo/campo de uma tabela.
Exemplo: No campo "Estado Civil¨ encontraremos as seguintes informações:
RS, MG, SP, RJ, BA, PR...

4.4 Exercício de fixação
Leia a tabela abaixo

Responda:
1. Qual é o nome da tabela?
2. Quantas colunas?
3. Qual é o código do empregado Roberto?
4. Qual é o nome do departamento em que João trabalha?
5. Quantos empregados trabalham no departamento de vendas?
6. Qual é o departamento que tem mais empregados?
7. Qual departamento que tem menos empregados?














Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 24


4.5 Implementação computacional de uma tabela

Uma vez que o banco de dados tenha sido projetado no papel, o próximo passo é
desenvolver o banco de dados dentro de um SGBD. Vamos utilizar como padrão para a
implementação computacional o
Microsoft Access, que é uma
ferramenta compacta, geralmente de
utilização doméstica, de fácil acesso
e encontrado em qualquer sistema
operacional windows que possua o
pacote office.
Quando definir tabelas no Microsoft
Access, é extremamente importante
manter seu projeto.





No Microsoft Access 2.0, existem duas ferramentas que o ajudarão na
implementação de seu projeto.




Área do Access que permite ao usuário a criação das tabelas e definição de suas
propriedades.








Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 25








Área para
definição
dos campos
e tipos de
dados
Área para
definição das
propriedades
e tamanho do
campo
Modelo de
estrutura de
uma tabela
Definindo
uma chave
primária
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 26

4.6 Propriedades do Campo na implementação:

4.6.1 Nome do campo: Identifica a natureza da informação. Ex: Nome,
Endereço, Telefone, etc.

4.6.2 Tipo de dados: Identifica a característica do dado armazenado no
campo. Ex: Texto, Data/Hora, Moeda, Número, etc.

Tipos básicos disponíveis no Access:
o Texto - Armazena caracteres alfanuméricos (texto e número). É o tipo
indicado para armazenar informações que não requerem cálculo. Ex: nome
de pessoas ou endereços.
o Memorando - Armazena caracteres, no entanto, ele é utilizado para
aguardar grandes blocos de texto que são divididos em parágrafos.
o Número - Armazena valores numéricos inteiros ou fracionários. Este tipo
deverá ser escolhido como padrão quando desejarmos efetuar cálculos com
valores de campos.
o Data/Hora - Faz com que o banco de dados trate os caracteres como
datas ou horas, dependendo da forma como serão digitados.
o Moeda - O tipo de dados Moeda tem todas características de um dado do
tipo numérico, porém com acréscimo do símbolo monetário. Exemplo: "R$¨
o AutoNumeração - Utilizado para contagem de registros. A cada registro
inserido na tabela ele é automaticamente incrementado em um valor.
o Sim/Não - Permite a entrada de valores do tipo Sim, Não, Verdadeiro ou
Falso. Qualquer outro tipo de valor que você digite no campo do tipo
Sim/Não causará um erro, e o Access soará um beep alertando sobre o
erro. Valores como Verdadeiro e Falso, o Access os converte para Sim ou
Não automaticamente. Quando digitar um valor "Não¨ certifique que digitou
com o acento (til), caso contrário o Access tratará o valor como incorreto.
o Objeto OLE - Esse tipo de dado é uma grande vantagem do ambiente
gráfico Windows, pois você pode definir que o dado seja uma imagem
gráfica. Umas das utilizações seria ter associada à ficha dos funcionários
uma foto do mesmo.
o Hyperlink - É um tipo de campo que irá armazenar um texto que permite
saltar para um arquivo, um local em um arquivo, uma página HTML na
Web. Exemplo: http://fp13vs23.digiweb.com
o Assistente de pesquisa - Cria um campo que permite que você escolha
um valor a partir de uma tabela ou de uma lista de valores, utilizando uma
caixa de combinação. A escolha dessa opção na lista de tipos de dados
inicia um assistente para definir isso para você.

4.6.3 Tamanho do campo: Define o tamanho máximo de caracteres que será
permitido em um campo.
Para Campos tipo Texto: Pode ser entre 1 a 255 caracteres.
Para Campos tipo Número: variante numérica caracterizada por faixa
de valores conforme tabela abaixo:



Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 27


4.7 Atividade de Fixação


Após o processo de entrevista com os usuários do departamento de compras da
empresa Fabrica & Vende Roupas Ltda., o DA (Administrador de Dados) identificou os
seguintes requisitos de dados para atender aos trabalhos daquele departamento:
O processo de compra pode ser iniciado por uma solicitação vinda do departamento de
produto (matéria prima), departamento de serviços gerais (material de escritório, limpeza,
segurança e afins), departamento de processamento de dados (suprimentos, acessórios e
equipamentos de informática). Esta solicitação indica o produto desejado, quantidade, marca
e modelo. A qualquer momento o gerente quer acesso imediato às seguintes informações:
compras de um período qualquer separado por departamento solicitante, tipo de produto,
valor mínimo máximo e solicitante, utilizando qualquer combinação dos argumentos citados.
Cada comprador precisa ter acesso a um catálogo de produtos com seus respectivos
fornecedores. A partir disto o comprador irá montar um lista de pedido que terá os produtos
solicitados, sua cotação anterior e atual com os fornecedores habituais e as condições
negociadas para valor, quantidade e forma de pagamento. O pedido deve ser mantido como
histórico, ficando pendente até que o fornecedor faça a entrega.
Cada produto feito para o departamento de compras pode indicar só o produto, sendo
marca e modelo opcionais. Quando estas últimas não forem especificadas o comprador irá
comprar o de menor preço.

Informações sobre os departamentos


Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 28













Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 29

Diagrama da Figura 42 para visualizar melhor como fica o modelo de dados.



Faça:

A partir das informações faça a modelagem dos dados, monte as tabelas e
implemente o banco de dados no Access.

Siga estas etapas:

1. Determine o tipo de cada uma da entidades/relações.
2. Escreva a condição determinante do relacionamento para cada relação
apresentada.
3. Monte o modelo relacional completo.
4. Normalize as entidades.
5. Desenvolva as tabelas.
6. Passe as tabelas para o Access, complementando com tipo de dado e tamanho
de cada atributo das tabelas.
7. Justifique sua escolha para os tipos e tamanhos utilizados.
8. Implemente os relacionamentos no Access.
9. Entre com dados diretamente nas tabelas criadas no Access.
10. Entregue o arquivo completo do Access, os modelos relacionais e as tabelas.
Data para Entrega: _____/______/______

Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 30

Parte II – SQL
LINGUAGEM DE DEFINIÇÃO E MANIPULAÇÃO DE DADOS



5. SQL - Structured Query Language


5.1 Introdução a SQL


Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas
linguagens destinadas à sua manipulação. O Departamento de Pesquisas da IBM,
desenvolveu a SQL como forma de interface para o sistema de BD relacional denominado
SYSTEM R, início dos anos 70. Em 1986 o American National Standard Institute ( ANSI ),
publicou um padrão SQL.

A SQL estabeleceu-se como linguagem padrão de Banco de Dados Relacional.

SQL apresenta uma série de comandos que permitem a definição dos dados, chamada de
DDL (Data Definition Language), composta entre outros pelos comandos Create, que é
destinado a criação do Banco de Dados, das Tabelas que o compõe, além das relações
existentes entre as tabelas. Como exemplo de comandos da classe DDL temos os comandos
Create, Alter e Drop.

Os comandos da série DML (Data Manipulation Language), destinados a consultas,
inserções, exclusões e alterações em um ou mais registros de uma ou mais tabelas de
maneira simultânea. Como exemplo de comandos da classe DML temos os comandos Select,
Insert, Update e Delete.

Uma subclasse de comandos DML, a DCL (Data Control Language), dispõe de comandos
de controle como Grant e Revoke.

A Linguagem SQL tem como grandes virtudes sua capacidade de gerenciar índices, sem a
necessidade de controle individualizado de índice corrente, algo muito comum nas linguagens
de manipulação de dados do tipo registro a registro. Outra característica muito importante
disponível em SQL é sua capacidade de construção de visões, que são formas de
visualizarmos os dados na forma de listagens independente das tabelas e organização lógica
dos dados.

Outra característica interessante na linguagem SQL é a capacidade que dispomos de
cancelar uma série de atualizações, exclusões ou de inserções. Os comandos Commit e
Rollback são responsáveis por estas facilidades.

Devemos notar que a linguagem SQL consegue implementar estas soluções, somente
pelo fato de estar baseada em Banco de Dados, que garantem por si mesmo a integridade
das relações existentes entre as tabelas e seus índices.







Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 31


5.2 Visões

VISÃO é uma relação (tabela) virtual montada a partir das relações (tabelas) reais.
O objetivo do uso das visões é restringir o acesso de usuários a apenas parte dos dados
de uma ou mais tabelas ou por comodidade, para que o usuário possa acessar apenas os
dados que lhe são de interesse, fazendo com que o mesmo não tenha controle sobre a base
de dados principal.

Um conjunto de tabelas de um BD pode suportar várias visões diferentes. Os dados
apresentados na visão não são salvos (na visão). Então, toda vez que uma visão for
referenciada, seus dados são acessados nas tabelas originais (isto porque os dados das
tabelas originais podem estar sofrendo alteração e a visão deve refletir essas mudanças).

Uma visão pode ser referenciada por qualquer comando (no lugar que apareceria a
referência a uma tabela). Obs: visões são ótimas em consultas, mas apresentam restrições
em operações que modificam dados na base de dados.

Modificações via visão devem ser refletidas nas tabelas originais. A maioria dos sistemas
comerciais só permite modificações nas visões montadas a partir de uma única tabela real
(mesmo assim para que a modificação se complete nenhuma regra de integridade da tabela
original pode ser violada. Por exemplo, em inserções não podem faltar campos que compõem
a chave primária, nem campos obrigatórios).













5.3 Comandos da Linguagem SQL
5.3.1 Comandos DDL
5.3.1.1 Create Table

Criar a estrutura de uma tabela(arquivo) definido as colunas (campos) e
as chaves primárias e estrangeiras existentes.

Sintaxe:

CREATE TABLE <nome-tabela>
(<nome-coluna> , <tipo-do-dado> [NOT NULL] )

PRIMARY KEY (nome-coluna-chave)
FOREIGN KEY (nome-coluna-chave-estrangeira) REFERENCES
(nome-tabela-pai) ON DELETE [RESTRICT] [CASCADE]

TABELAS LÓGICAS
VISÕES
BANCO DE DADOS

Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 32
onde:

a) nome-tabela - Representa o nome da tabela que será criada.
b) nome-coluna - Representa o nome da coluna que será criada.
c) tipo-do-dado - Cláusula que define o tipo e tamanho dos campos
definidos para a tabela. Os tipos de dados mais comuns serão
definidos mais à frente.
d) NOT NULL - Exige o preenchimento do campo, ou seja, no momento
da inclusão é obrigatório que possua um conteúdo.
e) NOT NULL WITH DEFAULT - Preenche o campo com valores pré-
definidos, de acordo com o tipo do campo, caso não seja especificado o
seu conteúdo no momento da inclusão do registro. Os valores pré-
definidos são:
o Campos numéricos - Valor zero.
o Campos alfanuméricos - Caracter branco.
o Campo formato Date - Data corrente.
o Campo formato Time - Horário no momento da operação.
f) PRIMARY KEY (nome-coluna-chave) - Definir para o banco de dados a
coluna que será a chave primária da tabela. Caso ela tenha mais de um
coluna como chave, elas deverão ser relacionadas entre os parênteses.
g) FOREIGN KEY (nome-coluna-chave-estrangeira) REFERENCES (nome-
tabela-pai) - Definir para o banco de dados as colunas que são chaves
estrangeiras, ou seja, os campos que são chaves primárias de outras
tabelas. Na opção REFERENCES deve ser especificado a tabela na qual a
coluna é a chave primária.
h) ON DELETE - Esta opção especifica os procedimentos que devem ser
feitos pelo SGBD quando houver uma exclusão de um registro na tabela
pai quando existe um registro correspondente nas tabelas filhas. As
opções disponíveis são:
o RESTRICT - Opção default. Esta opção não permite a exclusão na
tabela pai de um registro cuja chave primária exista em alguma
tabela filha.
o CASCADE - Esta opção realiza a exclusão em todas as tabelas
filhas que possua o valor da chave que será excluída na tabela
pai.
o SET NULL - Esta opção atribui o valor NULO nas colunas das
tabelas filhas que contenha o valor da chave que será excluída na
tabela pai.

Tipos de dados mais comuns:

1) Numéricos:
- Smallint - Armazena valores numéricos, em dois bytes binários,
compreendidos entre o intervalo -32768 a +32767.
- Integer - Armazena valores numéricos, em quatro bytes binários,
compreendidos entre o intervalo -2147483648 a +2147483647
- Decimal(n,m) - Armazena valores numéricos com no máximo 15
dígitos. Nesta opção deve ser definida a quantidade de dígitos inteiros
(n) e casas decimais (m) existentes no campo.
2) Alfanuméricos:
- Varchar (n) - Definir um campo alfanumérico de até 255 caracteres.
-Long Varchar - Definir um campo alfanuméricos de comprimento maior
que 254 caracteres.
3) Campo Date - Definir um campo que irá armazenar datas.
4) Campo Time - Definir um campo que irá armazenamento de horário.


Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 33

5.3.1.2 Alter Table

Alterar a estrutura de uma tabela(arquivo) acrescentando, alterando,
retirando e alterando nomes, formatos das colunas e a integridade referencial
definidas em uma determinada tabela.
Sintaxe:
ALTER TABLE <nome-tabela>
DROP <nome-coluna>
ADD <nome-coluna> <tipo-do-dado> [NOT NULL]
[NOT NULL WITH DEFAULT]
RENAME <nome-coluna> <novo-nome-coluna>
RENAME TABLE <novo-nome-tabela>
MODIFY <nome-coluna> <tipo-do-dado> [NULL]
[NOT NULL]
[NOT NULL WITH DEFAULT]
ADD PRIMARY KEY <nome-coluna>
DROP PRIMARY KEY <nome-coluna>
ADD FOREIGN KEY (nome-coluna-chave-estrangeira)
REFERENCES
(nome-tabela-pai) ON DELETE [RESTRICT]
[CASCADE] [SET NULL]
DROP FOREIGN KEY (nome-coluna-chave-estrangeira)
REFERENCES
(nome-tabela-pai)

onde:
a) nome-tabela - Representa o nome da tabela que será atualizada.
b) nome-coluna - Representa o nome da coluna que será criada.
c) tipo-do-dado - Cláusula que define o tipo e tamanho dos campos
definidos para a tabela.
d) DROP <nome-coluna> - Realiza a retirada da coluna especificada na
estrutura da tabela.
e) ADD <nome-coluna> <tipo-do-dado> - Realiza a inclusão da coluna
especificada na estrutura da tabela. Na coluna correspondente a este
campo nos registros já existentes será preenchido o valor NULL (Nulo).
As definições NOT NULL e NOT NULL WITH DEFAULT são semelhantes à
do comando CREATE TABLE.
f) RENAME <nome-coluna> <novo-nome-coluna> - Realiza a troca do
nome da coluna especificada.
g) RENAME TABLE <novo-nome-tabela> - Realiza a troca do nome da
tabela especificada.
h) MODIFY <nome-coluna> <tipo-do-dado> - Permite a alteração na
característica da coluna especificada.

Opções:
Além das existentes na opção ADD (NOT NULL e NOT NULL WITH
DEFAULT), temos a opção NULL que altera a característica do campo
passando a permitir o preenchimento com o valor Nulo.
o ADD PRIMARY KEY <nome-coluna> - Esta opção é utilizada quando
é acrescido um novo campo como chave primária da tabela.
o DROP PRIMARY KEY <nome-coluna> - Esta opção é utilizada
quando é retirado um campo como chave primária da tabela.
o ADD FOREIGN KEY <nome-coluna> - Esta opção é utilizada quando
é acrescido um novo campo sendo ele uma chave estrangeira.
o DROP FOREIGN KEY <nome-coluna> - Esta opção é utilizada
quando é retirado uma chave estrangeira da estrutura da tabela.
Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 34

5.3.1.3 Drop Table

Deletar a estrutura e os dados existentes em uma tabela. Após a execução
deste comando estarão deletados todos dados, estrutura e índices de acessos
que estejam a ela associados.

Sintaxe:

DROP TABLE <nome-tabela>

onde:

nome-tabela - Representa o nome da tabela que será deletada.

5.3.1.4 Create Index

Criar uma estrutura de índice de acesso para uma determinada coluna em
uma tabela. Um índice de acesso permite um acesso mais rápido aos dados em
uma operação de seleção. Os índices podem ser criados a partir de um ou mais
campos de uma tabela.

Sintaxe:

CREATE [UNIQUE] INDEX <nome-índice> ON <nome-tabela>
(<nome-coluna> [ASC/DESC], [<nome-coluna>)

onde:

a) nome-índice - Representa o nome da estrutura de índice que será
criada.
b) nome-tabela - Representa o nome da tabela que contem a coluna na
qual será criada o índice de acesso.
c) nome-coluna - Representa o nome da coluna que será criada.
d) Opção ASC/DESC - Representa a criação do índice ordenada
crescentemente (ASC) ou decrescentemente (DESC).


5.3.1.5 Drop Index

Deletar uma estrutura de índice de acesso para uma determinada coluna
em uma tabela.

Sintaxe:

DROP INDEX <nome-índice>

onde:

nome-índice - Representa o nome da estrutura de índice que será
deletada.






Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 35

5.3.2 Comandos DML

5.3.2.1 Insert

Incluir um novo registro em uma tabela do Banco de Dados.

Sintaxe:

INSERT INTO <nome-tabela> [(<nome-coluna>, [<nome-coluna>])]
VALUES (<relação dos valores a serem incluídos>)
onde:

a) nome-tabela - Representa o nome da tabela onde será incluída o
registro.
b) nome-coluna - Representa o nome da(s) coluna(s) terão conteúdo no
momento da operação de inclusão.
Obs.: Este comando pode ser executado de duas maneiras:
o Quando todos os campos da tabela terão conteúdo - Neste caso não
é necessário especificar as colunas, entretanto a relação dos valores
a serem incluídos deverão obedecer a mesma seqüência da
definição da tabela.
o Quando apenas parte dos campos da tabela terão conteúdo - Neste
caso devem ser especificadas todas as colunas que terão conteúdo e
os valores relacionados deverão obedecer esta seqüência. Para os
campos que não tem conteúdo especificado será preenchido o valor
NULL.



5.3.2.2 Update

Atualiza os dados de um ou um grupo de registros em uma tabela do
Banco de Dados.

Sintaxe:

UPDATE <nome-tabela>
SET <nome-coluna> = <novo conteúdo para o campo>
[<nome-coluna> = <novo conteúdo para o campo>]
WHERE <condição>

onde:

a) nome-tabela - Representa o nome da tabela cujo conteúdo será
alterado.
b) nome-coluna - Representa o nome da(s) coluna(s) terão seus conteúdos
alterados com o novo valor especificado.
c) condição - Representa a condição para a seleção dos registros que serão
atualizados. Este seleção poderá resultar em um ou vários registros.
Neste caso a alteração irá ocorrer em todos os registros selecionados.




Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 36

5.3.2.3 Delete

Deletar um ou um grupo de registros em uma tabela do Banco de Dados.

Sintaxe:

DELETE FROM <nome-tabela>
WHERE <condição>

onde:

a) nome-tabela - Representa o nome da tabela cujos registros serão
deletados.
b) condição - Representa a condição para a deleção dos registros. Este
seleção poderá resultar em um ou vários registros. Neste caso a
operação irá ocorrer em todos os registros selecionados.


5.3.2.4 Select

Selecionar um conjunto de registros em uma ou mais tabelas que atenda a
uma determinada condição definida pelo comando.

Sintaxe:

SELECT ALL FROM <nome-tabela> [,<nome-tabela>] DISTINCT
WHERE <condição>
GROUP BY <nome-coluna>
HAVING <condição>
ORDER BY <nome-campo> [ASC] [DESC]

onde:

a) nome-tabela - Representa o nome da(s) tabela(s) que contem as
colunas que serão selecionadas ou que serão utilizadas para a execução
da consulta.
b) condição - Representa a condição para a seleção dos registros. Este
seleção poderá resultar em um ou vários registros.
c) nome-coluna - Representa a(s) coluna(s) cujos resultados são grupados
para atender à consulta.
d) ALL - Opção default. Mostra todos os valores obtidos na seleção.
e) DISTINCT - Opção que mostra os valores obtidos na seleção eliminando
as duplicidades.
f) WHERE - Especifica o critério de seleção dos registros nas tabelas
especificadas.
g) GROUP BY - Especifica o(s) campo(s) que serão grupados para atender
a consulta.
h) HAVING - Especifica uma condição para seleção de um grupo de dados.
Esta opção só é utilizada combinada com a opção GROUP BY.
i) ORDER BY - Esta opção quando utilizada apresenta o resultado da
consulta ordenado de forma crescente ou decrescente pelos campos
definidos.




Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 37


Algumas funções utilizadas no comando Select

COUNT(*)
(DISTINCT <nome-campo>)

Retorna a quantidade de registros existentes no campo especificado.
Quando a opção * é utilizada o resultado é a quantidade de registros
existentes. Quando é referenciado o nome de um campo retorna a
quantidade de valores existentes na coluna.

SUM (ALL <nome-campo>)
DISTINCT

Retorna a soma dos valores existentes no campo especificado. Quando a
opção DISTINCT é utilizada são consideradas apenas os diferentes
valores existentes no campo.

AVG (ALL <nome-campo>)
DISTINCT

Retorna a média dos valores existentes no campo especificado. Quando a
opção DISTINCT é utilizada são consideradas apenas os diferentes
valores existentes no campo.

MAX (ALL <nome-campo>)
DISTINCT

Retorna o maior valor existente no campo especificado. Quando a opção
DISTINCT é utilizada são consideradas apenas os diferentes valores
existentes no campo.

MIN (ALL <nome-campo>)
DISTINCT

Retorna o menor valor existente no campo especificado. Quando a opção
DISTINCT é utilizada são consideradas apenas os diferentes valores
existentes no campo.


















Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL
Prof. Cristiano Vieira Copyright © 2004 Página . 38

6. Referências Bibliográficas

WIRTH, Niklaus. Estruturas de Dados. Editora Prentice-Hall do Brasil, 1986.
SILVA, Cristiano Vieira. Apostila de Banco de dados e SQL - Introdução a Teoria de Banco
de dados e Comando de Consultas em SQL, Colégio Universitas - Cursos Técnico em
Informática. Edição particular, publicação ©2004 - A utilização deste material será
somente sob autorização e a fonte deverá ser citada.
SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN S., Sistema de Banco de Dados,
São Paulo, Makron Books, 1999
ELMASRI, Ramez; NAVATHE, Shamkant B., Fundamentals of Database Systems, Addison-
Wesley, 2000
Sugestões de Leitura: Fonte (www.submarino.com.br)





Programando com Access 2000 SIMONE FRAGA


Estudo Dirigido de Access 2000 JOSE AUGUSTO N. G. FERNANDO BESTECHI
MIGUEL









MySQL: Guia de Consulta Rápida RUBENS PRATES






SQL: Curso Prático CELSO H. PODEROSO DE OLIVEIRA

Índice

! " # # $ %& ' ( *+ ! ) , ( ! + , - .! / 0 ! ! ) !3 1 2 % # ) ! 1 4 ! / ! # ) ! 1 5 & # 1 ! +! 93

!

5

6/ 78 2 3 1 ! % 2 !

!

: !

;

$+

5

'2 3 !+! 2 !

< 5 ! # 5 !/ ! # 2 $+! '*/ ! +! +! * : +! *) ) : #* +! ) : *) -% +! 6/ 0 / 0 . / 0 / / 0 2 7 +! +! +! > 7. > ! . ! ! ) ! " $ ? $ *8 9 ) ! 9; : ) $ *> 9 ) ! 9; : ) $$?% 9 ) 1 3 ! ! . % ! .

$ $ $ ' ' 6 7 7 7 7 7 7 = = =

; # ; ;

$ $ $ ' ' ' 6 7 =

!3 ! "

% >

! 5@ 2 ! + & > ! 1 / / + A / 0 . / 0 2 1 3 / ) > > ! ! ! # $ 6 4 ! > !

$ ' 6 2 3 1 $ ! '. ' ' ' -%

0 93

$ 8 C* 8 B $ $ $

B

DC 8 C B C 8 C B C > ! > ! > ! / 3 $ 3 5C E ! 8! / E > ) 85 E %4 5% F 5) / % !

/ $

$

/ $ $ $ $ $ / $ $ $ $

' +

G 8

! C

$ $ $ ' ' ' 6 6 6 6 6 7 7

Colégio Universitas – Curso Técnico em Informática

Introdução a Banco de dados e SQL

INTRODUÇÃO A TEORIA E APLICAÇÃO REAL

Parte I - Banco de Dados

2 ! H !

! @ @ 9 @ !

!

! ! ! " ! @

< ! !

& ! &

< # <

! @

! I !3 I

! ! I " : 9; ! 3 I J 1 1 ! " I & @

@ ! I

! 0 ! 0 $ & '

!3 1

I

@ I I & I

I

1 !

! ! 3 & ! " !

!

!

( E @ & ( K ( K " ( K 1 # +

" @ ! " J ! ! I ! ! 1 " , , & 1 ,

@ !

&

1

& * !

! ! *! "

" ! ! I & , ,

< I 0 ! & *

& *! 0

" ! " " !

! I " I

I @ ! ! " I !

Prof. Cristiano Vieira

Copyright © 2004

Página 1 .

. % & ! & ! & 2 3 o ) * ! o +! / 8 & K ! 3 @ ) I 5 ! & & & 3 & & ! " @ < & # # 0 & @ 12 3 " I ! " J 3 ! I > ! 0 @ ! 0 * ! ! & > / I !I ! ! ) ! & 3 / % > ! 9 ! 3 Prof. Cristiano Vieira Copyright © 2004 Página 2 .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL $% & % / % ! " + 2 ! 3 5 " ' " L L L L L L @ L 0 * M + " / () ( ) ! + 2 / / % 5 E ( % > % . * " ! 0 ! G ! L H G ! " L L L L L : L J ! L * 1 L !3 L 0 M ! L 3 L & I < . .. L .

Cristiano Vieira Copyright © 2004 Página 3 . Usuário DBA Conceitual Interna Tabelas Programador Usuário Final . Disquetes Prof. DVD.Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL 5 ! " ! & ) * ! ! # Funcionários Nome Endereço Profissão ! # 4 K ! !3 ! G 2 M I 5 ! ! !M # 2 < 1 K ! 0 M ! : & . Servidor. CD. 3 * ! 1 < ! ! ! " ! ! & ! @ I & 0 M I " I I ! ! ! # Níveis Softwares Camadas Fluxo de Informações Recursos Envolvidos Nível de Acesso Aplicativos Externa DSL DML Conceitual Externa Interfaces / Formulários e Consultas Sistema de Informação Visões e Relacionamentos Nível Gerencial SGDB DDL Sistema Operacional Nível de Máquina Gerenciador DC Físico HD.

& 5 ! + & / J 1 I/ I C ! 3 1 ! :% ! !. . & –8 ! . : 3 I & & I I & I ! J .? ! @ % ! ! I I I ! ! ! J ! ! ! ! " ! I & ! " & . ! #58 % I5D BC 8 C 8 I B . & " 8 Prof. 8 4 < : ? C & & : . / J C ! " & ! 8 ! @ 8 4 4 : 8 4 ! " ! " 8 : J . Cristiano Vieira .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL 4 * 5 * 6 8 ! !3 0 I > ! O ! 8 I ! " #* 8 I N *. ! 8 1 :8 . ! G " ! " ! ? C ! & ! . I I 8/ 8 .* K M ! . D ! ? N I Copyright © 2004 Página 4 . I :% ! ! " ! " .I 2 ! @ 7 ' ! 8 K ! & ! I @ G 98 ! P! :" + ' I @ 5 8 ! !0 ) & ! " 2 K ! .

1 # 0= > * ? K & ! & 2 ! ! 8 *8 & @ ! P! M @ ! & 0= .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL 4 & ! " ! ! & P! K ! & ! & ! ! " ! ! I 0 I& I @ 1 : G. * 2 @ 1 ! G H 0 Q 5 1 ! * !3 I 1 ! @& ! 0 1 ! % & I ! & ! ! I ! ! I 3 @ " " ! ! @ 3 3 I I 1 & " ! 3 I I : 0 3 ?8 4 1 . .! 5C C I & @ 8 ! ! P! I & 0 @ ! & ! @ I ! ! : !. 3 I > ! ) !8 4 & Prof. Cristiano Vieira Copyright © 2004 Página 5 .

. I @5 5 ! = 6 ? . ! ! 0 ! * 2 > I ! ! 0 2 A * . ! " 1 ! & ! S ! " $ * : T 3T 8 Prof. P " " ! " Copyright © 2004 2 .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL 0= * 2 1 !@ <' . ! K ! 3! @ * & ! 8 " / I ! ! & ! & 8 4 ! J I " ! & < :N I/ I9 . I ! " " ? +P " ! " ! " : ! H & ! ! ! # J G I % < I I ! " . Cristiano Vieira + < " @ * . 3 T 5T T T 9 Página 6 . ! I& ! !I ! P * > P I G ! ! & 2 3 B * % @ ! " ! " ! & B I " I ! ! 0 R ! % @ ! ! " " !I ! " @ ! P * 2 2 ! ! & :! & ! 0 ! * I! & " . " !I P & OI ! .

Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL ' * ! & ! B 2 8 4 2 ! # * ! 0 * + ! * " & % B 0< 1 ! " " G @ & & ! " * B 3 0 ! & & ! & * / ! " #) !D * & I I & . . 0 ! & G ! ( J N J ! 2 E 3 2 !. C E !L I 2 ! R ! & ! @ & ! I & ! ! E 2 58 : < 0 & * ! ! G I 5. 3 ! !I 0 .* < 0 J ! " ! !( ! . . Cristiano Vieira Copyright © 2004 Página 7 . & ! ! 0 & ! I I 0 1 & ! & ! ! I P I ! 1 G & & & & ! P P ! @ & ! ! & P !I ! E @ I @ I I & & ! P L ! 0 @ ) P ! ! ! Prof. I & :& !*! !*! 3 !.

B = . * ! U . Prof. . . 5C .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL > ? = & B B ! 8? @ 8 1 P ! 0 U U2 ! 3 & P ! ! $ ' 6 B B 8 4 & G ( ! ! # C ! . U % U U 9.8 ! . . Cristiano Vieira Copyright © 2004 Página 8 . 4 2 ! 3 / & Usuário A1 Linguagem + DSL 3# Usuário A2 Linguagem + DSL Usuário A3 Linguagem + DSL Usuário A4 Linguagem + DSL *Esquema externo Visão externa Visão externa Mapeamento externo/conceitual Mapeamento externo/conceitual SGBD Sistema de Gerenciamento de Banco de *Esquema conceitual TABELAS Mapeamento interno/conceitual Definição de estrutura do armazenamento (esquema interno) Arquivos de armazenamento físico.

< & < < & 1 R I& . ! < ' ! 8 4 & I ! *! < !& ! " I @ " ! ! " . < 2 3 ! < < # ! &% %! ' ! IC 0 C N @ 8 5% E C ) % ! ( & ! ! < > 2 / / Prof. Cristiano Vieira / . ! 1 & 0 & 0 E! " ! 0 Copyright © 2004 Página 9 . " .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL < %5 !I 2 & $ " 2 ! ) 3 2 ! @ & ! & ! ! @ ) & I 3 < P & ! 3 I & ! 0 ! " ! 3 0 !I 8 4 & ! @ ! !I ! 0 ! * ! $ . I ! 0 @ I I < & ! " ! * * ! ! ! *! & (> ( %" D ( < % 0 H @ 1 1 < H ( %% ) (! X H !& # & ' * VW C I C < ! < 9+ % ) % 2 + 52 > 8 22 / > 5% E C 8+ % ) % < 9+ % ) % 2 + 52 > 8 22 / > 8+ % H 3! 1 1 .

* 1 ! @ & 0 ! & Prof. / & L ! " ! 0 : .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL ( < 2 2 3 5 !# 8 ! + .! 0 I% ! ! Q < I) P & P *8 . . ( 1 . L ! !#/ ! I 9 I! % I 9 # L & ! T T J I & ! < I I <I 2 2 #/ 3 ! H 2 2 #/ 3 ! * 2 3 I9 ? . *! @ ! " ! ! # ! $ $ 2 / 0 ! & ($< > < @ 5 0 ! 52 * 5 + !2 ! *+ ! ! K ((> < < 2 3 ) o o o o o 2 L 81 . I H I2 I % 9 % !#) I ! 2 2 3 I 3! !# ) % ! :/ 0 . !I 9 & I! % . . Cristiano Vieira Copyright © 2004 Página 10 .

.2 + ! < 2 3 !#Q # 3$ # 2 ! % ! L # 2 ! < ! < ! L #C 3 ! ! ! ! ) Y! ) Y ! + 4 - 2 ! +! # descrição do relacionamento 5 ! ! % ! * ! Alunos Nome_Aluno Prof.Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL + 2 4 # # Identificação da Entidade - % # Nome do Atributo 5 ! #Código Nome ! # Série ALUNOS Nome Pai Data_Nascimento Endereço Nome Mãe (. Cristiano Vieira cursando Disciplina Nome_Disciplina Copyright © 2004 Página 11 .

Cristiano Vieira Copyright © 2004 Página 12 . Homem Nome 1 casado 1 Mulher Nome 2 2 3 !#. # " 9 #2 ! % ! 0 10! 01 .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL (/5 + % &G Z 2 & 3 ! 2 2 3 !# Q # 3 $ #2 ! N & 5 ! 0 #C #2 ! @ % 1 5 < < 0 0 ! ! ! I 0 ! I 0 :. . ! ! < " #2 ! 9 ! 0 ! < ) ! I ) Y #C Funcionário Nome 1 trabalha N Departamento Nome_Depart.8 ) ) & 0 ! 0 ! . Prof.

< < ) @ #C I ! 0 ! & P ! 0 =0 @ =0 0 < I @ < I < .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL 2 2 3 !# % O # 4 % ! ! #2 ! % 010 ! ! < #2 ! ! < ! ! ! ! ) ) ! I ! #C ! ! ! 3 ! Aluno Nome # K ! N matricula N Disciplina Nome_Disciplina. < 2 ! ! ) *) !# . % ! . Cristiano Vieira Copyright © 2004 Página 13 . #2 ! ! 0 < < 3 ! 0 0 P & ! ! < I 2 % ! ! ! =0 ) ) . < % ! Funcionário Nome N Trabalha N Projeto Nome_Funcionário Horas Prof. . ! ) I *) & ! ! & ! 0 * & ! & ! ! 0 * I ! (4" B 0 ! 2 3 " 9 #2 ! .

]D .& ! & 1 2 < 6 5 * > E " ! @ 0 o / 0 3 3 !# 2 2 @ 0 1 o / 0 3 0 Prof. I I < @ 3 !I /9 + < . Cristiano Vieira Copyright © 2004 Página 14 . < [ 0 " : 3! " 0 Y & I 0 + 4 > @ ! Y [ E ! 0 0 I@ < < I < @ 1 ! & & I 3 @ 2 . 4 & I % I < 1 < /9 . 8 4 < & @ 0 !I @ . ! 0 0 @ ! E 0 ! 0 / J 0 ! !I 0 ! ! Y @ ! 2 ! ! 0 I ! !I 1 0 ! & @ 0 ! (\ : 9.Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL (@5 * 6 / & ! ! ! < < < ! < ! ! ! & @ @ ! 2 & < & I 5 * 6 % 0 ' @ 0 ! < < < ! > 1 @ @ < < ! @ ! ! ! ! % ) I ! @ 3 0 0 2 ! % @ !@ 1 ! P ! 0 ! < ! 0 5 * 5 6 E ! 0 .

Cristiano Vieira & 0< I & 0 ! I Página 15 . \ 5 ! Cliente 1 compra / vende 1 Vendedor 1 Produto .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL (C% 2 P & ! 2 B 2 3 P 3 !#E ' ! ! " & Fornecedor N comercializa N Produtos N Indústrias N fabricam 2 B 2 3 < 3 : ' ! 0 ! " G & ! " !# E Engenheiro N utiliza N Materiais N Projetos 2 3 !#. Prof. Copyright © 2004 .

Prof. / ! I I 9 ) I 2 ! I ) B ! 4 ! I I . . )I @ I <I I@ 9 ) 9 ) ! & < @ G " ! " % ! " 2 3 !I & % ! " 3 ! . 1 / < ! J I 0 & * " & " I ! & ! " I @ T 9 ! ! " @ ! J I & < ! ! ) " *! G & :9 . 3 ! ! & @ ! @ ! ! I ! < < 1 I@ ! < ! < !I ! ! ! 1 !& < ! . ! " I & 0 . > I ) I ! 9I ) ) 9 ! I.2 0 + .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL (C % ! ! I Q 2 ! : ! & ! R 3 G < * @ I * @ @ I < @ @ I I ! G ! ! 1 < ! ! + & % . )T % 9 ) < !: 9 . ! :) )I @ I 98 I/ / 4 ! I+ ! #/ J 5 > ! I & ! 9 ! :) ) I8 9 @ I ! I 4 / / ! > :) ) I/ 9 J 5 > ! !0 0 Copyright © 2004 : B ) . 5 . Cristiano Vieira Página 16 . I <I & ! & 2 3 !# I / I / ! 5 . & 1 / ! " %& ! I2 8 0 8 0 ! . % ! P ) %& / ! %& ! 4 3 & I/ J ) .

& ! 9I ) 0 %& ) > %& ! %& . Cristiano Vieira . ! ! ) 9 . & ! & ! 0 & : 0 ! 9I ) . Página 17 . Prof. I 0 . 9 ! # :% & ! :% & ! I 0 8 0 8 0 & . # & ! 0 %& ) %& B %& ) > %& ! %& . 9 :) :) I/ J IB 5 / ! 5 I 5 I . 3 !1 * 8 9 ! I .(1 : / ) ! ! 2 3 9 ) !# ) I 2 9 ! :) ) I8 9 @ I ! I 4 / / ! > :) ) I/ 9 J 5 I . 5 :/ J 5 I ! 9 # & :% & !/ J 5 5 I :% & I0 ! ! 4 I ! I/ J ) . :/ J 5 I # ! ) I8 9 @ I ) I/ 9 J . ! 3! I * 8 :) . 5 . > ! " ! ) 9 :) ) I8 9 @ I I 2 ! I 4 / / ! > :) ) I/ 9 J 5 . : . %& ! 4 ! %& ! %& .$1 / ). I ! & ) I . IB 5 / ! I . / & * . / ! I I ! 4 I/ J ! ) . IB 5 & / ! I I .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL / I * . / @ # I <I 8 0 $0 8 & & 0 9 ) !# I/ J ! ) . / # 0 @ ! / J 5 . # 0 & 0 :/ J 5 . :/ J 5 Copyright © 2004 ! 4 I . > > ) ) . ! ) I 2 9 ! 2 3 5 " ! :) ) I8 9 @ I ! I 4 / / ! > :) ) I/ 9 J 5 .

:% & ! / J / / 4 ! ! " I H ! " ) 9 . 9I ! & " :/ J / ! I0 1 "& 2 " % I) ! I2 & ! ) 0 I 2 G & Z I0 & & ) ! ! G $ % & @ ! / J ! ) < I ! % 1 < 1 ! I & ! & 9 ! ) I " ! ! ! " * . 3 !1 : * 8 ) I 2 :% & & ! . Cristiano Vieira ) ! I Copyright © 2004 Página 18 . / # I / ! & 9 ! ! @ / ! / ! I . . / # <I @ ! I %J G ! " ! ! ! . . I 1 & 8 E ! 0 8 0 ! : E G 8 ! 0 3 ! & & & " I I 3 ! ! I Prof.Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL %& / / 4 ! / I ! :) / / 4 ! 9 / ! .8 I ! 0 8 0 $0 8 E ! ! ! O < : ! ! ! 1 ! O ! & ! % 0 & 0 * I ! $0 8 !& I & @ % 0 I & ! " ! " ! & & @ & I& I& ! I J I I *! 0 I 0 ! ! I& & 0 % .. ! P ).

) // ! B _ . I B %! ) ^ / J %! ) ^ / J / J %! ) ^ / J / J ) ^ 2 / ! // ! /) ! 9# ) . ! . _I J / / ! . . Cristiano Vieira Copyright © 2004 Página 19 . J _I ) _I ) _I J / ! .% 0 @/ J . ) . _I J / / ! . I B / .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL % G G G ! ! " I 1 ! 0 G J ! ! 0 I @ I & 8 ! " ) ! " /> ? ) = ? # ! " ) ^ . _ . ) _ / ! / ! . 9` ) . 0 & ! & & I > ! I& / ! ! & I& @P ! ! I < " / J I 0 & ) P I 0 : & 9 ! ! & " I I . . I ) / ! I ) . Prof. I B _I ) / ! I ) / ! . . I B _I ) _I ) / ! I J / / ! . . / _ . ! . 0 0 . / . I & I 0 & . _I J / / ! 9# ) . 9 ) .

$ > " % I & ! +4 -'$ 6-'*6 76-'$ * -'$ 76'* 7 $'*6 2 % ! + 8 . & I Prof. = ! 0 $ > & ! I * & ! 1 0& ! ! 8 I < ! ! " ! ! I 8 4 J ! G !. Cristiano Vieira & Copyright © 2004 . !& ! * * 0 + ! K ! ! " ( ) J " & & % I I ! 8 J . ! + 3 : " & & I 3 ! O & ! " .% ( & & $ % I < ! 3 =a . I !3 ! & & : 0 $ ( E 8 4 0 2 " G ! ! " I ! ! ! @ % ! < J ! I ! & & G @ Página 20 . ! ! % 0 3 ! !# ! & @ % " I R @ 0 J & ! I ! 0 @ ! # ! R ! & & ! $ $) ! 3 ?" I ! I 8 4 . % 0 + ) % ! 5 !3 & * ! ! ! ! J .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL $ < 2 ! ! ! ! ! " ! / P ! ! < !0 !0 ! ! % ! % $ $'$'-6 '$ )/ $''$ $ $'-6 8! $$== I= $== I= == I= = I= $== I0 3 ! 8 3 ! ! ) Q 5 / ! .

! 2 3 ! [ 0 !# o / # P o / Y o / Y < 1 ! 1 ! Y I ! # P Y # P Y 1 ! ! I I ! Y0 & <E .' " ) 8 @ / Y J . :" - 70 % 0 % F 5 > + % . Prof. ! 2 3 1 ! [ !# o / o / o E 1 ! Y Y & ! # P # P ! Y Y ! " I I ! @ G I ! Y0 & I ! 3! ! ! < > o o o o o o Identificação da Tabela Título dos Campos Registros ou Linhas < == = == = == = 2 ! 5 ) 2 % ! ! ! .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL ( . Cristiano Vieira .' ! ! ! I ! <E / . 333 33 000 000 $ F 0 == 6 S $S $S 6S = -7 S S = E $ 6 5 F G .$ . ! Domínios ou Corpo Chave Primária A-Z / Z-A Índices (Ordenação) Campos ou Colunas Chave Estrangeira Copyright © 2004 Página 21 . = . .:" ( E ! ( <E !0 ! @ & @ 2 1 .' Q @% .

! & !0 !0 ! 2 $ 1 /! 0 ! I. & " ($ .! 0 ! 5 I :" 3 & & ($ : = & " ! ! ($ $5 @ & @& 1 ($ (2 E P ($ . (\ ! ( . ! (/ 2 ) .H 1 " 1 ! < ' @ !0 @ 0 0 1 / 0 3 1 ! ! 0 0 0 ! ! < 2 @ I I:( / V ) .. 2 2 (). ) . ! ! ! (\ : . 0 @ ! ! ! :( \ . 0 . ..Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL ($> . # D ] DI . @ & Z J ! 2 ! 0 @ ! * ! " 8! 0 P 8! 0 & ! 8 1 ! I ! 0 & Z 8! 0 @ $ 8! 0 & 8 & 1 ! ! 0 & ! & ! G / 0 @ ! J < 3 / 0 & I Prof. ! ! E 0 ! & & 0 I <I & I ! @ < ! 0 I& 3 & & @ < K & ($ /5 * 6 E 0 ! . ) I 2 (1 / 0 (\ . Cristiano Vieira Copyright © 2004 Página 22 . ..

0 @ 0 ! ! ! 1 0 ($@ E = 1 @ & ( 2 / ! .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL ($ 45 * > 6 E 0 " ! @ 0 . ((> ? C = ! ? 3 + # B B B B $ ' B B B ! @ ! & & ! @ ! @ ! 0 U U ! @ ! J U + & U Q ! U 0 U !U Prof. +I % . !I # ]D . Cristiano Vieira Copyright © 2004 Página 23 . ! S ! # K 2 3 !#) 8 54 8 I Q I+ + I I . 2 3 2 !I @ 0 ! E 0 0 ! !I 0 @ ! ! & @ 0 * / 0 ! 0 * / 0 3 ! ! (\ : 9. .

Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL (. . Cristiano Vieira Copyright © 2004 Página 24 . E ! "& 0 8 4 " < ! " ! 5 ! " I & @ I ! @ I ! & ! & !M M & ! I@ 3 < 5 % ! ! I J 3 @ B % ) ! 5 % < = I 3 & < b % & ! Prof.

Cristiano Vieira Copyright © 2004 Página 25 . .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL Área para definição dos campos e tipos de dados Área para definição das propriedades e tamanho do campo Modelo de estrutura de uma tabela Definindo uma chave primária Prof.

9! B ! & 8 S ) ! ) : ! . 1 / ! ! 3 % ! 0 ! (/$: 6 5 5 ! : ? #. . 0I # ! 3# 0 3 $$ @ " & 3 ! Prof. I %" D % >1 2 d MI E I B G ! " < o o KL M1 K & ! & I ! ! d 2 3 !#0 #S S M . ! ! ! & % 9! I % % @ o J 0 1 .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL (/ (/ 2 (/ 0 I ! > 5 ! I ! S N = * " " o o < 0I ! o o o o < 0 J K 0 1 @ 1 9" I I & 5 @ 1 E! " ! !@ @ 1 % 1 % ! " ! 0 ! " 3 & @ & ! " 2 #) 3 I : 2 #> 3 I 3 I 5 - I P ) ! ! @ & I 1 I " : " ' o :? 1 % : 3 & P . K ! ! 2# 3 ! " 2 ! ! I ! @ < 1 1 ! 2 3 % 8 I) I G ! 8 ! ( . Cristiano Vieira Copyright © 2004 Página 26 . ) ! & R " & & ! ! G 0 3 I & I & N 5C > G ! " ! 0 & & !#( c +.

I . . I .* 8? %J 9 & : & @ e + C I % :% ! 0 & ! ! : : ! < R ! I & I .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL (4. Cristiano Vieira Copyright © 2004 Página 27 .2 ! & 1 & ! & ! I ! " & ! & ! ! ! ! I& @& ! %& ! & ! 1 / % ! 0 J / ! B I I 3 # I & 0 J P ! I Prof. # J I! I J I "I .

. Cristiano Vieira Copyright © 2004 Página 28 .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL Prof.

Q 2 =2 ! #Y Y Y Y Y Y S Y Y Y Y Y SY Y YY Y Y Prof. Cristiano Vieira Copyright © 2004 Página 29 . .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL 9 ! " ! 0 ! 8 ! % ! ! % I ! ! S ! ! ! ! " ! ! & ! & 2 ! 0 ! ! % ! ! % ! I ! 0 % ! I ! % ! ! ! " 0 ! ! 2 5 ) $ ' 6 7 .

I 1 1 I! 1 I& ! ! I " ! J 1 ! +! ] ! @ ! " ! I 3! ! 8 C B ! I& 1 8 C@ B & / & ! ! 3 ! ! ! I Prof. 1 L . Cristiano Vieira Copyright © 2004 Página 30 . & ! ! 5I : % 8 . I 5C I 3! ! H I E E ! %C ! 1 ! ! " ! ! I ! 8! I 5C I 4 8 C B ! 8 C @ B ! ! " + ] / : C / ! C .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL LINGUAGEM DE DEFINIÇÃO E MANIPULAÇÃO DE DADOS Parte II – SQL . B ! ! 8 C B 882 + 1 f>5 I ! 8 C B %8 BC 8 C B C: 3 / ! * @ C ! I! % @ ! / ! / R -= 2 +! ! 76' % ) !8 ! I . . I 3 I ! > ! & ! ! +! ! I0 / I& I ! @ ! C @ 5C : 3 ! 5 ! C ! . ) I ! & .

%0 Copyright © 2004 . ) EC * ! * 0 . ) & 8 g @ < & ! 0 ! E < I ! E G & 5 J ! & ! I ! . $5 .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL . 3 !I J . * * !i * i j >) C k .$ / 0 ' 5 > : : 2 . 2 ! I : ! : ! I "& & . . * ! * 0 * * !* .0 O N : %2 > : Prof. @ ! I & & 0 ! ! : !. ! : . ! 0 ! & % P ! ! ! ! & ! & J ! ! : .>h :h * ! iI h 2 <.> .$ 5 . ! & ! ! I " : !.2 8 2 05 >> > > > > >j 2 > / k j % / 2 : +8+ > /8% k Página 31 . # : ! 0 VISÕES TABELAS LÓGICAS BANCO DE DADOS .N O N : 2 > 8 > . !. Cristiano Vieira 5 :" !: 3 & .

/ > * & " !* " ! D D ' 3 1 I I $ 0 Prof.+ 9 + ) 2 : 22 2 / 8 * !* . .) @ * 8 ! ! # * % @ I -'6 [ -'* * % " ! @ I & !* . C> & !8 4 & 0 3! ! & 3 ! ! 0 % 1 # o + 8 +/ * 2> > ! 2 3! ! < 0 3 ! ! ! 0 o / 8 % 2* 2 %/ ! " 3! ! ! 0 & ! 0 & 3 !1 ! o 8>) C * 2 2 EC ! ! & 0 ! ! ) C E 0 & ! 3 !1 0 ! ( . .* % : " ! @ 1 ) & : .) > ) C d > EC N 2% C * .* ! & 0 I <I & 0 ! ) + 9+ ) 2 22 2 / 8 ! & ! ! @ 0 0 ) 2 2 2* 2 ..Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL . * * * * ! !* + *+ * / ! !& ! & ! & ! 0 R ./ * & " .* ! @ @ $$ *C 0 * ! @ & $ .* ! & 0 ! / ! 0 ! 0 I! ! G . 5% f \ f : + + 2 * ! * 0 . 9E> 0 ! @ * I I < P ! ! @ * # o / @ * ! " o / ! @ */ o / * o / > *N .9 + 4 \ f : 2 ) 2 * ! * 0 * .6 ' 6 [ . Cristiano Vieira Copyright © 2004 Página 32 . .3 .6 * ! I . : .% ! @ # * 0 : . ) >) C * 2 EC 3 0 I <I ! @ J & P .

@ .>h * * !i <% 8 h N * ! ih * * i jEC ) Ck j >) C k ) EC j >) C d > 2 % C k ) EC N 9E> 2 <. 5% f \ f h + + 2 * ! i * 2 & @ 0 % 9 + 4 \ fh 2 ) 2 * ! i * 2 @ ! 0 + . + ) 52 h 2% * ! i h * * ! i * + ! " ! .N O N h 2 > * ! i 2 % 2 <.0 O N : %2 > * ! * 0 * . 2 8 2 05 >> > > : * !* . 9 h f * ! i h * * i * .>h 2 % h h * * * ! ! * * i j >) C k ) EC j >) C d > ) EC N 2% Ck 9E> 2 0> <>h * ! ih * * ! i 2 0> <>: . !i i ih .h . + . .% h i * + ! " ! ! ! ) ! < 3 0 ! ) C :) !. . 9 E >I o o o o Prof. 5% f \ f h + + 2 * ! i * 2 @ 0 + . + ) 52 > C h 2% % 2 * * !i * + ! " ! 0 5 .N O N h 2 > * ! i 8 > . * * * * ! !* + *+ * / ! !& ! & ! " 0 ! . . Cristiano Vieira ! & ! * ! i * + ! " ! * ! i h * * % :) > ) C EC ) C & EC ! 0 ! )! % .: 2: > . 2 8 2 05 >> > > : * !* .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL . ! 1 ! ) %@ ! 3 2 % C.0 O N : %2 > * ! * 0 * .$ % ! :" !: ! I ! & ! . 9+ 4 \f h 2 ) 2 * ! i * 2 & @ 0 Copyright © 2004 ) > ) C d > EC N 1 @ ! " & ! @ ! " ! ! " & @ ! " ! Página 33 .%0 > > > j 2 > / k : +8+ > j % / 2 j 2 ) Ck / 8 % k 8> EC 2 % 8 > . I ! I ! ' . EC % ) >) C ) >) C d > EC EC N 2% C 9E> ! 0 R / 2> > C +%2 % 2 .

Cristiano Vieira Copyright © 2004 Página 34 . *1 * + ! * + 1 ! *+ %/ 2/ * + 8S 8 :% / 8. ! ! ' 2 % ? 1 ! 0 > h R *1 i *1 ! * + 1 & Prof. ! & !& 1 & ! . . . * & ! .> 70 7> 0 > h Q R :h * ! *1 i %0 h * i j8 S 2 / j %/ 8 kI h !i * ! i.$ . . * .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL . 1 : 2/ 8.$ (5 / ! E !* + ? 1 1 ! ! 1 !& ! ! ' 5 > : P 2 .$ $ ! :" 3 ! I ! ' 2 % : >h * !i ! %J 1 3 & < * .

! .$ ! ' 0 > : 0: h 2 % * ) 7> :h ! !i j :h ! * ! iI h j * !1 i. ! . . k ! . #2 B @ * * ! ! * + * + ! 3 ! ! I !1 ! : .$ % 7 ! " ! ' 7 .$ 5 < . ! ! : . * * ! ! * + *+ ! *+ ! 2 ! ! ! : . ! ! : . . # * ) ! &G Z ! ! P & &G Z P 0 !1 P o P ! o B ! & ) C EC ! * ) P .>h : * !i > h : * ! i Vh j h * ! i Vh S K> > h 2 i P P i ik .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL . ! ik. < P P & ! ! " ) Prof. Cristiano Vieira Copyright © 2004 Página 35 . ! .

! .Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL . Cristiano Vieira Copyright © 2004 Página 36 . ! 0 N . + 2 + f* 2 ! Prof.& ! ! " & ! " ! 4 E f + . ! !5 & @ : . * ! * + & ! * + ! * + R : . ! . 8 ) >* > / ! . ! & !: .4 E f * 2 + . dN + * 2 22 .% C* C .$ ( 8! < ! ' > > : . & ! " ! 3 2 ! * : . . ! * ! * + * + ! ! ! ! < 2 ) . % ) * 2 4 2 J@ . ! .$ $ ! ' > > >8 %< h : 2 S K> > h 2 * i !i ! . ! : . h ) %2 > 2 Nh * !i jh I * !ik i * ! i i * i j8 k j 2 / %/ 8k : 05 : ! & .2 %7 Nh K.0. ! ! ! : . ! ! < ! ! ! ! .8 %< h 5 2 S K> > h 2 .

:l : 8 ) >h > / + B 3 & & B + * i. + ! @ 8 ) > @ > / 3 ! ! " 3 B R C <. 3 B ! * 8 ) > > / ! ! " i.Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL - & 5 %70: . + 8 ) > @ > / 3 3 B ! Prof. @ & * 7< :% Ch C 8 ) > > / + ! 8 ) > @ > / 3 * 8 ) > > / ! ! " 3 B . 3 ! ! l@ ! " @ ! 3 i. :% Ch ) C i. Cristiano Vieira Copyright © 2004 Página 37 .:% Ch * 8 ) > > / + 8 ) > @ > / 3 < 0 :% Ch C ! " ! i.. .

!I ] 5 8 C? B 8 C /! BI @ E m = = ? % L\ + N N >I ] I 777 ] D 9L8 % 8 % 8 I8 E +N ) I 2 5% + I+ C 8 " ) % N I8 L % >2 0 d !D = = I = & ! I9 ! 8 D I% * ***+ & + + ! & Programando com Access 2000 85 ) 9 % % 2 +4 Estudo Dirigido de Access 2000 54 2 EC Q 8 % 4 8 ) 4 9+ % 2 E E > 2) ) 2 >/ 82N MySQL: Guia de Consulta Rápida + 2 8. Cristiano Vieira Copyright © 2004 Página 38 . % 2 E ) + >8 SQL: Curso Prático /C N . *N ! ! ! 76' I > ? / ! " > @ ! d + N )] >I ! 8C % / I / 2 " 8 C 2 8 N > I% 0 +/ %n 8 . . 2 8 28 + 2 C 2+ % Prof.Colégio Universitas – Curso Técnico em Informática Introdução a Banco de dados e SQL / 2 B " 2 ' 2 % ! / ! !I ! .