Você está na página 1de 25

Faculdade de Tecnologia do Nordeste � FATENE

Curso: Desenvolvimento WEB


Prof. Marcelo Pessoa
Administra��o de
Banco de Dados
Agosto/2008
�ndice
1.
Introdu��o........................................................................
..........................................................4
1.1.
Dado..............................................................................
......................................................4
1.2.
Informa��o........................................................................
..................................................4
1.3. A Informa��o como Recurso da
Empresa...........................................................................
4
2. Organiza��es B�sicas de
Arquivos..........................................................................
..................5
2.1.
Conceitos.........................................................................
...................................................5
2.2. Estruturas de
Arquivos..........................................................................
...............................5
2.2.1. Arquivo
seq�encial........................................................................
...............................5
3. Bancos de
Dados.............................................................................
..........................................7
3.1. Banco de Dados
(BD)..............................................................................
............................7
3.2. Sistema de Ger�ncia de Banco de Dados
(SGBD).............................................................7
3.2.1. Processamento de Dados sem Banco de
Dados........................................................7
3.2.2. Processamento de dados com uso de
SGBD.............................................................8
3.2.3. Principais Componentes de um
Sgbd..........................................................................8
3.2.4. Caracter�sticas de um
SGBD..............................................................................
.........8
3.3. Abstra��o de
Dados.............................................................................
...............................9
3.4. Modelos de Bancos de
Dados.............................................................................
..............10
3.5. Independ�ncia de
Dados.............................................................................
......................10
3.6. Fun��es relacionadas ao
Sgbd..............................................................................
...........10
3.6.1. Administrador de
Dados.............................................................................
................10
3.6.2. Administrador de Banco de
Dados............................................................................1
0
3.6.3. Projetista da Base de
Dados.............................................................................
.........11
3.6.4. Analista de
Sistemas..........................................................................
........................11
3.7. Arquiteturas para uso do
Sgbd..............................................................................
............11
3.7.1. Mono-
usu�rio...........................................................................
..................................11
3.7.2. Multi-Usu�rio com Processamento
Central...............................................................11
3.7.3. Arquitetura em Rede com Servidor de
Arquivos....................................................... 11
3.7.4. Arquitetura
Cliente/Servidor..................................................................
.....................11
3.8. Fases do Projeto de
Bd................................................................................
.....................11
3.8.1. Construir o Modelo
Conceitual........................................................................
...........11
3.8.2. Construir o Modelo
L�gico............................................................................
.............11
3.8.3. Construir o Modelo F�sico
..................................................................................
.......12
3.8.4. Avaliar o Modelo F�sico
..................................................................................
...........12
3.8.5. Implementar o
BD................................................................................
......................12
4. MODELAGEM DE
DADOS.............................................................................
.........................13
4.1.
Conceitos.........................................................................
.................................................13
4.2. Tipos de
Abstra��o.........................................................................
...................................13
4.2.1.
Classifica��o.....................................................................
.........................................13
4.2.2.
Agrega��o.........................................................................
.........................................13
4.2.3.
Generaliza��o.....................................................................
.......................................13
4.3. Requisitos para Modelagem de
Dados.............................................................................
13
4.4. Modelos
Conceituais.......................................................................
...................................13
4.5. Modelos
L�gicos...........................................................................
.....................................14
4.5.1. Modelo
Hier�rquico.......................................................................
.............................14
4.5.2. Modelo de
Rede..............................................................................
...........................14
4.5.3. Modelo
Relacional........................................................................
..............................15
4.6. Modelo de Dados
F�sico............................................................................
........................16
5. MODELO ENTIDADE-RELACIONAMENTO
(M.E.R.).............................................................17
5.1.
Introdu��o........................................................................
.................................................17
5.2.
Entidade..........................................................................
..................................................17
5.3.
Relacionamento....................................................................
.............................................17
5.3.1. Auto-
relacionamento....................................................................
..............................18
5.3.2. Cardinalidade de
Relacionamentos...................................................................
........19
5.3.3. Cardinalidade
M�xima............................................................................
...................19
5.3.4. Classifica��o de Relacionamentos
Bin�rios..............................................................19
5.3.5. Relacionamento
tern�rio..........................................................................
..................21
5.3.6. Cardinalidade
m�nima............................................................................
....................21
5.4. Nota��es
Alternativas......................................................................
..................................22
5.5. Atributo
..................................................................................
............................................22
5.5.1.
Dom�nio...........................................................................
...........................................23
5.5.2. Tipos de
Atributos.........................................................................
.............................23
5.5.3. Atributo de Relacionamento
..................................................................................
....23
5.5.4. Identificador de
Entidades.........................................................................
.................23
5.5.5. Relacionamento Identificador (Entidade
Fraca)........................................................ 24
5.5.6. Identificador de
Relacionamentos...................................................................
...........24
5.6.
Generaliza��o/Especializa��o......................................................
.....................................24
5.7. Entidade Associativa
(Agrega��o).......................................................................
..............26
5.8. Relacionamento Mutuamente
Exclusivo.........................................................................
..27
5.9. Restri��o de Persist�ncia no
Relacionamento..................................................................27
5.10. Esquema Textual do
MER...............................................................................
................28
6. Linguagem de Banco de Dados �
SQL...............................................................................
.....29
1. INTRODU��O
1.1. DADO
? Representa��o de um evento do mundo f�sico, de um fato ou de uma id�ia
? Representa��o de uma propriedade ou caracter�stica de um objeto real
? N�o tem significado por si s�
? Ex.: quantidade de Kwh consumidos em uma resid�ncia.
1.2. INFORMA��O
? Organiza��o e agrega��o dos dados, permitindo uma interpreta��o
? Informa��o ? interpreta��o dos dados
? Ex.: Consumo de energia comparado com a capacidade geradora da usina.
Dados
Identificados
Organizados
Agrupados
Armazenados
Recuperados
geram Informa��o
1.3. A INFORMA��O COMO RECURSO DA EMPRESA
Administra��o de Banco de Dados 4
2. ORGANIZA��ES B�SICAS DE ARQUIVOS
2.1. CONCEITOS
? Estruturas de Dados: define a forma como os dados est�o organizados, como se
relacionam e como ser�o manipulados pelos programas. Ex: vetores e matrizes,
registros,
filas, pilhas, �rvores, grafos, etc.
? Arquivo: cole��o de registros l�gicos, cada um deles representando um objeto ou
entidade.
Na pr�tica os arquivos geralmente est�o armazenados na mem�ria secund�ria (fitas e
discos) e s�o usados para armazenar os resultados intermedi�rios de processamento
ou
armazenar os dados de forma permanente.
? Registro l�gico (registro) : seq��ncia de itens, cada item sendo chamado de
campo ou
atributo, correspondendo a uma caracter�stica do objeto representado. Os registros
podem
ser de tamanho fixo ou de tamanho vari�vel.
? Campo: item de dados do registro, com um nome e um tipo associados
? Bloco: unidade de armazenamento do arquivo em disco, tamb�m denominado registro
f�sico. Um registro f�sico normalmente � composto por v�rios registros l�gicos.
Cada bloco
armazena um n�mero inteiro de registros.
? Chave: � uma seq��ncia de um ou mais campos em um arquivo
? Chave prim�ria: � uma chave que apresenta um valor diferente para cada registro
do
arquivo. � usada para identificar, de forma �nica, cada registro.
? Chave secundaria: � uma chave que pode possuir o mesmo valor em registro
distintos. �
normalmente usada para identificar um conjunto de registros.
? Chave de acesso: � uma chave usada para identificar o(s) registro(s) desejado(s)
em uma
opera��o de acesso ao arquivo.
2.2. ESTRUTURAS DE ARQUIVOS
2.2.1. ARQUIVO SEQ�ENCIAL
Nos arquivos seq�enciais a ordem l�gica e f�sica dos registros armazenados � a
mesma. Os registros podem estar dispostos seguindo a seq��ncia determinada por uma
chave
prim�ria (chamada chave de ordena��o), ou podem estar dispostos aleatoriamente.
# Numero Nome Idade Salario
0 1000 ADEMAR 25 600
1 1050 AFONSO 27 700
2 1075 CARLOS 28 500
3 1100 CESAR 30 1000
4 1150 DARCI 23 1500
5 1180 EBER 22 2000
6 1250 ENIO 27 750
7 1270 FLAVIO 28 600
8 1300 IVAN 30 700
9 1325 MIGUEL 34 1000
10 1340 MARIA 35 1500
11 1360 RAMON 32 2000
12 1400 SANDRA 29 700
13 1450 TATIANA 30 500
a) Acesso a um registro
Podemos considerar dois tipos de acesso: seq�encial ou aleat�rio.
O acesso seq�encial consiste em acessar os registros na ordem em que est�o
armazenados, ou seja, o registro obtido � sempre o posterior ao �ltimo acessado.
Como os
registros s�o armazenados em sucess�o cont�nua, acessar o registro �n� de um
arquivo requer
a leitura dos �n-1� registros anteriores.
Administra��o de Banco de Dados 5
O acesso aleat�rio se caracteriza pela utiliza��o de um �argumento de pesquisa�
(chave de acesso), que indica qual o registro desejado. Neste caso, a ordem em que
os
registros s�o acessados pode ser diferente da ordem em que eles est�o armazenados
fisicamente. Se o arquivo est� ordenado e a chave de acesso coincide com a chave
de
ordena��o, podemos utilizar a pesquisa bin�ria. Caso contr�rio, deve ser realizada
uma
pesquisa seq�encial no arquivo.
b) Inser��o de um registro
Se o arquivo n�o est� ordenado, o registro pode ser simplesmente inserido ap�s o
�ltimo registro armazenado.
Se o arquivo est� ordenado, normalmente � adotado o seguinte procedimento:
Dado um arquivo base B, � constru�do um arquivo de transa��es T, que contem os
registros a serem inseridos, ordenado pela mesma chave que o arquivo B. Os
arquivos B e T
s�o ent�o intercalados, gerando o arquivo A, que � a vers�o atualizada de B.
Arquivo B Arquivo T Arquivo A
# Num Nome Idade # Num Nome Idade # Num Nome Idade
0 1000 ADEMAR 25 0 1070 ANGELA 25 0 1000 ADEMAR 25
1 1050 AFONSO 27 1 1120 CLAUDIA 27 1 1050 AFONSO 27
2 1075 CARLOS 28 2 1280 IARA 28 2 1070 ANGELA 25
3 1100 CESAR 30 3 1310 LUIS 30 3 1075 CARLOS 28
4 1150 DARCI 23 4 1420 SONIA 23 4 1100 CESAR 30
5 1180 EBER 22
6 1250 ENIO 27
7 1270 FLAVIO 28
8 1300 IVAN 30
9 1325 MIGUEL 34
10 1340 MARIA 35
11 1360 RAMON 32
12 1400 SANDRA 29
13 1450 TATIANA 30
5 1120 CLAUDIA 27
6 1150 DARCI 23
7 1180 EBER 22
8 1250 ENIO 27
9 1270 FLAVIO 28
10 1280 IARA 28
11 1300 IVAN 30
12 1310 LUIS 30
13 1325 MIGUEL 34
14 1340 MARIA 35
15 1360 RAMON 32
16 1400 SANDRA 29
17 1420 SONIA 23
18 1450 TATIANA 30
c) Exclus�o de um registro
Normalmente � implementada como a inser��o, com a cria��o de um arquivo de
transa��es que cont�m os registros a serem exclu�dos, que � processado
posteriormente.
Pode ainda ser implementada atrav�s de um campo adicional no arquivo que indique o
estado (status) de cada registro. Na exclus�o, o valor deste campo seria alterado
para
�exclu�do�. Posteriormente, � feita a leitura seq�encial de todos os registros,
sendo que os
registros que n�o estiverem marcados como �exclu�dos� s�o copiados para um novo
arquivo.
d) Altera��o de um registro
Consiste na modifica��o do valor de um ou mais atributos de um registro. O
registro
deve ser localizado, lido e os campos alterados, sendo gravado novamente, na mesma
posi��o.
A altera��o � feita sem problemas, desde que ela n�o altere o tamanho do registro
nem modifique o valor de um campo usado como chave de ordena��o.
Administra��o de Banco de Dados 6
3. BANCOS DE DADOS
3.1. BANCO DE DADOS (BD)
Um Banco de Dados (BD) pode ser definido como uma cole��o de dados
interrelacionados, armazenados de forma centralizada ou distribu�da, com
redund�ncia
controlada, para servir a uma ou mais aplica��es.
3.2. SISTEMA DE GER�NCIA DE BANCO DE DADOS (SGBD)
Conjunto de software para gerenciar (definir, criar, modificar, usar) um BD e
garantir a integridade e seguran�a dos dados. O SGBD � a interface entre os
programas de
aplica��o e o BD. Em ingl�s � denominado DataBase Management System (DBMS).
3.2.1. PROCESSAMENTO DE DADOS SEM BANCO DE DADOS
Dados de diferentes aplica��es n�o est�o integrados, pois s�o projetados para
atender
a uma aplica��o espec�fica.
Administra��o de Banco de Dados 7
Problemas da falta de integra��o de dados:
? O mesmo objeto da realidade � m�ltiplas vezes representado na base de dados.
Exemplo: dados de um produto em uma ind�stria
? Redund�ncia n�o controlada de dados: N�o h� ger�ncia autom�tica da
redund�ncia, o que leva a inconsist�ncia dos dados devido a redigita��o de
informa��es
? Dificuldade de extra��o de informa��es: os dados s�o projetados para atender
aplica��es especificas gerando dificuldades para o cruzamento de informa��es
? Dados pouco confi�veis e de baixa disponibilidade
3.2.2. PROCESSAMENTO DE DADOS COM USO DE SGBD
Os dados usados por uma comunidade de usu�rios s�o integrados no Banco de
Dados. Cada informa��o � armazenada uma �nica vez, sendo que as eventuais
redund�ncias
s�o controladas pelo sistema em computador, ficando transparentes para os
usu�rios.
3.2.3. PRINCIPAIS COMPONENTES DE UM SGBD
? Dicion�rio de dados (Data Dictionary): Descreve os dados e suas rela��es em
forma
conceitual e independente de seu envolvimento nas diversas aplica��es. Fornece
refer�ncias cruzadas entre os dados e as aplica��es.
? Linguagem de defini��o de dados (DDL - Data Definition Language): Descreve os
dados que est�o armazenados no BD. As descri��es dos dados s�o guardadas em um
�meta banco de dados�.
? Linguagem de acesso (DML - Data Manipulation Language): Usada para escrever as
instru��es que trabalham sobre a base de dados, permitindo o acesso e atualiza��o
dos
dados pelos programas de aplica��o. Geralmente integrada com a DDL.
? Linguagem de consulta (QUERY): Permite que o usu�rio final, com poucos
conhecimentos t�cnicos, possa obter de forma simples, informa��es do BD.
? Utilit�rios administrativos: Programas auxiliares para carregar, reorganizar,
adicionar,
modificar a descri��o do BD, obter c�pias de reserva e recuperar a integridade
f�sica em
caso de acidentes.
3.2.4. CARACTER�STICAS DE UM SGBD
Um princ�pio b�sico em BD determina que cada item de dado deveria ser capturado
apenas uma vez e ent�o armazenado, de modo que possa tornar dispon�vel para
atender a
qualquer necessidade de acesso qualquer momento.
Alguns pontos importantes s�o:
? Independ�ncia dos dados: O SGBD deve oferecer isolamento das aplica��es em
rela��o aos dados. Esta caracter�stica permite modificar o modelo de dados do
Administra��o de Banco de Dados 8
BD sem necessidade de reescrever ou recompilar todos os programas que
est�o prontos. As defini��es dos dados e os relacionamentos entre os dados
s�o separados dos c�digos os programas. Mais de 80 % do tempo dos analistas
e programadores � gasto na manuten��o de programas. A principal causa
deste elevado tempo reside na falta de independ�ncia entre dados e programas.
? Facilidade uso/desempenho: Embora o SGBD trabalhe com estruturas de dados
complexas, os arquivos devem ser projetados para atender a diferentes
necessidades, permitindo desenvolver aplica��es melhores, mais seguras e
mais rapidamente. Deve possui comandos poderosos em sua linguagem de
acesso.
? Integridade dos dados: O SGBD deve garantir a integridade dos dados, atrav�s da
implementa��o de restri��es adequadas. Isto significa que os dados devem ser
precisos e v�lidos.
? Redund�ncia dos dados: O SGBD deve manter a redund�ncia de dados sob
controle, ou seja, ainda que existam diversas representa��es do mesmo dado,
do ponto de vista do usu�rio � como se existisse uma �nica representa��o.
? Seguran�a e privacidade dos dados: O SGBD deve assegurar que estes s�
poder�o ser acessados ou modificados por usu�rios autorizados.
? R�pida recupera��o ap�s falha: Os dados s�o de import�ncia vital e n�o podem
ser perdidos. Assim, o SGBD deve implementar sistemas de toler�ncia a falhas,
tais como estrutura autom�tica de recover e uso do conceito de transa��o.
? Uso compartilhado: O BD pode ser acessado concorrentemente por m�ltiplos
usu�rios.
? Controle do espa�o de armazenamento: O SGBD deve manter controle das
�reas de disco ocupadas, evitando a ocorr�ncia de falhas por falta de espa�o de
armazenamento.
3.3. ABSTRA��O DE DADOS
Um prop�sito central de um SGBD � proporcionar aos usu�rios uma vis�o abstrata
dos dados, isto �, o sistema esconde certos detalhes de como os dados s�o
armazenados ou
mantidos. No entanto, os dados precisam ser recuperados eficientemente.
A preocupa��o com a efici�ncia leva a concep��o de estruturas de dados complexas
para representa��o dos dados no BD. Por�m, uma vez que SGBD s�o freq�entemente
usados
por pessoas sem treinamento na �rea de computa��o, esta complexidade precisa ser
escondida dos usu�rios. Isto � conseguido definindo-se diversos n�veis de
abstra��o pelos
quais o BD pode ser visto:
? N�VEL F�SICO: � o n�vel mais baixo de abstra��o, no qual se descreve como os
dados s�o armazenados. Estruturas complexas, de baixo n�vel, s�o descritas em
detalhe.
? N�VEL CONCEITUAL: � o n�vel que descreve quais os dados s�o realmente
armazenados no BD e quais os relacionamentos existentes entre eles. Este n�vel
descreve o BD como um pequeno n�mero de estruturas relativamente simples.
Muito embora a implementa��o de estruturas simples no n�vel conceitual possa
envolver estruturas complexas no n�vel f�sico, o usu�rio do n�vel conceitual
n�o precisa saber disto.
? N�VEL VIS�O: Este � o n�vel mais alto de abstra��o, no qual se exp�e apenas
parte do BD. Na maioria das vezes os usu�rios n�o est�o preocupados com
todas as informa��es do BD e sim com apenas parte delas (Vis�es dos
Usu�rios)
Administra��o de Banco de Dados 9
3.4. MODELOS DE BANCOS DE DADOS
Um modelo de (banco de) dados � uma descri��o dos tipos de informa��es que est�o
armazenadas em um banco de dados, ou seja, � a descri��o formal da estrutura de
BD.
Estes modelos podem ser escritos em linguagens textuais ou linguagens gr�ficas.
Cada apresenta��o do modelo � denominado �esquema de banco de dados�.
Se tomarmos como exemplo uma ind�stria, o modelo de dados deve mostrar que s�o
armazenadas informa��es sobre produtos, tais como c�digo, descri��o e pre�o. Por�m
o
modelo de dados n�o vai informar quais produtos est�o armazenados no Banco de
Dados.
No projeto de um banco de dados, geralmente s�o considerados 3 modelos:
conceitual, l�gico e f�sico.
? Modelo conceitual: � uma descri��o mais abstrata da base de dados. N�o cont�m
detalhes de implementa��o e � independente do tipo de SGBD usado. � o ponto
de partida para o projeto da base de dados.
? Modelo L�gico: � a descri��o da base de dados conforme � vista pelos usu�rio do
SGBD (programadores e aplica��es). � dependente do tipo de SGBD escolhido,
mas n�o cont�m detalhes da implementa��o (uma vez que o SGBD oferece
abstra��o e independ�ncia de dados).
? Modelo f�sico (interno): Descri��o de como a base de dados � armazenada
internamente. Geralmente s� � alterada para ajuste de desempenho. A
tend�ncia dos produtos modernos � ocultar cada vez mais os detalhes f�sicos de
implementa��o.
3.5. INDEPEND�NCIA DE DADOS
? Independ�ncia de dados a n�vel f�sico: a capacidade de se modificar o modelo
f�sico, sem
precisar reescrever os programas de aplica��o.
? Independ�ncia dados a n�vel l�gico: a capacidade de se modificar o esquema
l�gico,
sem a necessidade de reescrever os programas de aplica��o. Modifica��es no n�vel
l�gico
s�o necess�rias sempre que a estrutura l�gica do BD for alterada. Em alguns casos
a
recompila��o pode ser requerida.
3.6. FUN��ES RELACIONADAS AO SGBD
3.6.1. ADMINISTRADOR DE DADOS
? Gerenciar o dado como um recurso da empresa.
? Planejar, desenvolver e divulgar as bases de dados da empresa.
? Permitir a descentraliza��o dos processos, mas manter centralizado os dados.
? Permitir f�cil e r�pido acesso as informa��es a partir dos dados armazenados.
? O grande objetivo de administrador de dados � permitir que v�rios usu�rios
compartilhem
os mesmos dados. Deste modo, os dados n�o pertencem a nenhum sistema ou usu�rio de
forma espec�fica, e sim, � organiza��o como um todo. Assim, o administrador de
dados se
preocupa basicamente com a organiza��o dos dados e n�o com o seu armazenamento.
3.6.2. ADMINISTRADOR DE BANCO DE DADOS
O DBA (DataBase Administrator) � pessoa ou grupo de pessoas respons�vel pelo
controle do SGBD. S�o tarefas do DBA:
? Responsabilidade pelos modelos l�gico e f�sico (definindo a estrutura de
armazenamento)
? Coordenar o acesso ao SGBD (usu�rios e senhas)
? Definir a estrat�gia de backup
? Melhorar o desempenho do SGBD
? Manter o dicion�rio de dados
Administra��o de Banco de Dados 10
3.6.3. PROJETISTA DA BASE DE DADOS
Constr�i o modelo conceitual de uma parte da base de dados, com a participa��o do
usu�rio. Junto com o DBA integra as novas partes ao banco de dados global.
3.6.4. ANALISTA DE SISTEMAS
Define e projeta aplica��o que ir�o usar a base de dados existente. Utiliza o
modelo
conceitual e o modelo l�gico existentes, mas n�o define os dados da base de dados.
3.7. ARQUITETURAS PARA USO DO SGBD
3.7.1. MONO-USU�RIO
? BD est� no mesmo computador que as aplica��es
? N�o h� m�ltiplos usu�rios
? Recupera��o geralmente atrav�s de backup
? T�pico de computadores pessoais
3.7.2. MULTI-USU�RIO COM PROCESSAMENTO CENTRAL
? BD est� no mesmo computador que as aplica��es
? M�ltiplos usu�rios acessando atrav�s de terminais
? T�pico de ambientes com mainframe
3.7.3. ARQUITETURA EM REDE COM SERVIDOR DE ARQUIVOS
? Multi-usu�rio
? Servidor de arquivos cont�m todos os arquivos do banco de dados
? As esta��es clientes executam as aplica��es e o software de BD
? Gera alto tr�fego na rede
? T�pico de redes pequenas (peer-to-peer)
3.7.4. ARQUITETURA CLIENTE/SERVIDOR
? Multi-usu�rio
? Servidor dedicado ao Banco de Dados, executando o SGBD
? As esta��es clientes executam apenas as aplica��es
? Tr�fego na rede � menor
? Arquitetura atualmente em uso
3.8. FASES DO PROJETO DE BD
3.8.1. CONSTRUIR O MODELO CONCEITUAL
? Modelo de alto n�vel, independente da implementa��o
? Etapa de levantamento de dados
? Uso de uma t�cnica de modelagem de dados
? Abstra��o do ambiente de hardware/software
3.8.2. CONSTRUIR O MODELO L�GICO
? Modelo implement�vel, dependente do tipo de SGBD a ser usado
? Considera as necessidades de processamento
? Considera as caracter�sticas e restri��es do SGBD
? Etapa de normaliza��o dos dados
Administra��o de Banco de Dados 11
3.8.3. CONSTRUIR O MODELO F�SICO
? Modelo implement�vel, com m�todos de acesso e estrutura f�sica
? Considera necessidades de desempenho
? Considera as caracter�sticas e restri��es do SGBD
? Dependente das caracter�sticas de hardware/software
3.8.4. AVALIAR O MODELO F�SICO
? Avaliar o desempenho das aplica��es
? Avaliar os caminhos de acesso aos dados e estruturas utilizadas
3.8.5. IMPLEMENTAR O BD
? Etapa de carga (load) dos dados
? Gerar as interfaces com outras aplica��es
Administra��o de Banco de Dados 12
4. MODELAGEM DE DADOS
4.1. CONCEITOS
? Abstra��o: processo mental atrav�s do qual selecionamos determinadas
propriedades ou
caracter�sticas dos objetos e exclu�mos outras, consideradas menos relevantes para
o
problema sendo analisado.
? Modelo: � uma abstra��o, uma representa��o simplificada, de uma parcela do mundo
real,
composta por objetos reais.
? Modelagem: atividade atrav�s da qual se cria um modelo.
? Modelo de dados: Um modelo de dados � uma descri��o das informa��es que devem
ser
armazenadas em um banco de dados, ou seja, � a descri��o formal da estrutura de BD
(descri��o dos dados, dos relacionamentos entre os dados, da sem�ntica e das
restri��es
impostas aos dados).
4.2. TIPOS DE ABSTRA��O
4.2.1. CLASSIFICA��O
Os objetos do mundo real s�o organizados segundo suas propriedades ou
caracter�sticas comuns, formando classes de objetos. Um objeto pode pertencer
simultaneamente a v�rias classes.
4.2.2. AGREGA��O
Uma classe � definida a partir de um conjunto de outras classes, que representam
suas
partes componentes.
4.2.3. GENERALIZA��O
Define uma nova classe a partir de caracter�sticas comuns de outras classes. A
classe
gen�rica que re�ne as caracter�sticas comuns � denominada superclasse e as classes
que
herdam estas caracter�sticas s�o denominadas subclasses.
4.3. REQUISITOS PARA MODELAGEM DE DADOS
? Entender a realidade em quest�o, identificando os objetos que comp�e a parte da
realidade
que vai ser modelada..
? Representar formalmente a realidade analisada, construindo um modelo de dados.
? Estruturar o modelo obtido e adequ�-lo ao SGBD a ser usado, transformando o
modelo
conceitual em modelo l�gico.
4.4. MODELOS CONCEITUAIS
S�o usados para descri��o de dados no n�vel conceitual. Proporcionam grande
capacidade de estrutura��o e permitem a especifica��o de restri��es de dados de
forma
expl�cita. Exemplos:
? Modelo Entidade-Relacionamento (M.E.R.)
? Modelo de Sem�ntica de dados
? Modelo Infol�gico
? Modelos Orientados para Objetos (OO)
Administra��o de Banco de Dados 13
4.5. MODELOS L�GICOS
S�o usados na descri��o dos dados no n�vel l�gico. Em contraste com modelos
conceituais, esses modelos s�o usados para especificar tanto a estrutura l�gica
global do BD
como uma descri��o em alto n�vel da implementa��o.
4.5.1. MODELO HIER�RQUICO
Um BD hier�rquico � uma cole��o de �rvores de registros. Os registros s�o usados
para representar os dados e ponteiros s�o usados para representar o relacionamento
entre os
dados, numa liga��o do tipo pai-filho. A restri��o � que um determinado registro
somente pode
possuir um registro pai.
4.5.2. MODELO DE REDE
O BD em rede � um grafo, onde os n�s representam os registros e os arcos
representam os relacionamentos entre os registros, atrav�s de liga��es pai-filho.
Diferente do
modelo hier�rquico, um registro pode possuir diversos registros pai.
Administra��o de Banco de Dados 14
4.5.3. MODELO RELACIONAL
Um BD relacional possui apenas um tipo de constru��o, a tabela. Uma tabela �
composta por linhas (tuplas) e colunas (atributos). Os relacionamentos entre os
dados tamb�m
s�o representados ou por tabelas, ou atrav�s da reprodu��o dos valores de
atributos.
Administra��o de Banco de Dados 15
4.6. MODELO DE DADOS F�SICO
Usados para descrever os dados em seu n�vel mais baixo. Capturam os aspectos de
implementa��o do SGBD.
Administra��o de Banco de Dados 16
5. MODELO ENTIDADE-RELACIONAMENTO (M.E.R.)
5.1. INTRODU��O
? Apresentado por Peter Chen, em 1976
? � a t�cnica mais difundida para construir modelos conceituais de bases de dados
? � o padr�o para modelagem conceitual, tendo sofrido diversas extens�es
? Est� baseado na percep��o de uma realidade constitu�da por um grupo b�sico de
objetos
chamados ENTIDADES e por RELACIONAMENTOS entre estas entidades
? Seu objetivo � definir um modelo de alto n�vel independente de implementa��o
? O modelo � representado graficamente por um Diagrama de Entidade-Relacionamento
(DER), que � simples e f�cil de ser entendido por usu�rios n�o t�cnicos
? Conceitos centrais do MER: entidade, relacionamento, atributo,
generaliza��o/especializa��o, agrega��o (entidade associativa)
5.2. ENTIDADE
? Conjunto de objetos da realidade modelada sobre os quais deseja-se manter
informa��es
no Banco de Dados
? Uma entidade pode representar objetos concretos da realidade (pessoas,
autom�veis,
material, nota fiscal) quanto objetos abstratos (departamentos, disciplinas,
cidades)
? A entidade se refere a um conjunto de objetos; para se referir a um objeto em
particular �
usado o termo inst�ncia (ou ocorr�ncia)
? No DER, uma entidade � representada atrav�s de um ret�ngulo que cont�m o nome da
entidade
5.3. RELACIONAMENTO
? � toda associa��o entre entidades, sobre a qual deseja-se manter informa��es no
Banco
de Dados.
? Os relacionamentos representam fatos ou situa��es da realidade, onde as
entidades
interagem de alguma forma
? Um dado por si s� n�o faz uma informa��o, pois n�o tem sentido pr�prio; �
necess�rio que
haja uma associa��o de dados para que a informa��o seja obtida.
? Exemplos:
? Fornecimento: entre as entidades FORNECEDOR e MATERIAL
? Matr�cula: entre as entidades ALUNO e DISCIPLINA
? Financiamento: entre as entidades PROJETO e AGENTE FINANCEIRO
? No DER, os relacionamentos s�o representados por losangos, ligados �s entidades
que
participam do relacionamento
Administra��o de Banco de Dados 17
PESSOA DEPARTAMENTO
DEPARTAMENTO LOTA�� PESSOA
? Diagrama de ocorr�ncias de relacionamentos:
5.3.1. AUTO-RELACIONAMENTO
Relacionamento entre ocorr�ncias da mesma entidade.
Diagrama de ocorr�ncias no auto-relacionamento:
O papel da entidade no relacionamento indica a fun��o que uma ocorr�ncia de uma
entidade cumpre em uma ocorr�ncia de um relacionamento.
Administra��o de Banco de Dados 18
marido esposa
PESSOA
CASAMENT
O
5.3.2. CARDINALIDADE DE RELACIONAMENTOS
A cardinalidade de uma entidade em um relacionamento expressa o n�mero de
inst�ncias da entidade que podem ser associadas a uma determinada inst�ncia da
entidade
relacionada.
Devem ser consideradas duas cardinalidades:
? Cardinalidade m�nima de uma entidade � o n�mero m�nimo de inst�ncias da
entidade associada que devem se relacionar com uma inst�ncia da entidade em
quest�o.
? Cardinalidade m�xima de uma entidade � o n�mero m�ximo de inst�ncias da
entidade associada que devem se relacionar com uma inst�ncia da entidade em
quest�o.
5.3.3. CARDINALIDADE M�XIMA
No projeto para BD relacional (como neste curso) n�o � necess�rio distinguir as
cardinalidades que sejam maiores que 1. Assim, s�o usados apenas as cardinalidades
m�ximas 1 e n (muitos).
5.3.4. CLASSIFICA��O DE RELACIONAMENTOS BIN�RIOS
A cardinalidade m�xima � usada para classificar os relacionamentos bin�rios
(aqueles
que envolvem duas entidades).
Administra��o de Banco de Dados 19
a) Relacionamentos 1:1 (um-para-um)
b) Relacionamentos 1:N (um-para-muitos)
c) Relacionamentos N:N (muitos-para-muitos)
Administra��o de Banco de Dados 20
5.3.5. RELACIONAMENTO TERN�RIO
� o relacionamento formado pela associa��o de tr�s entidades
Cardinalidade em relacionamentos tern�rios:
5.3.6. CARDINALIDADE M�NIMA
A cardinalidade m�nima � usada para indicar o tipo de participa��o da entidade em
um
relacionamento. Esta participa��o pode ser:
? Parcial ou Opcional: quando uma ocorr�ncia da entidade pode ou n�o participar de
determinado relacionamento; � indicado pela cardinalidade m�nima = 0 (zero).
? Total ou Obrigat�ria: quando todas as ocorr�ncias de uma entidade devem
participar de determinado relacionamento; � indicado pela cardinalidade m�nima
> 0 (zero).
Exemplos:
Um cliente pode fazer pedidos ou n�o, mas todos os pedidos devem estar associados
a
um cliente.
Administra��o de Banco de Dados 21
CLIENTE 1 REALIZA N PEDIDO
DEPTO 1 ALOCA N EMPREGADO
Todos os departamentos devem possuir pelo menos um empregado alocado, e todos
os empregados devem estar alocados em um departamento.
Parcialidade m�nima: para um departamento ser criado, devem existem pelo menos
10 empregados alocados.
5.4. NOTA��ES ALTERNATIVAS
? Nota��o Heuser: sem�ntica associativa
? Nota��o Santucci/MERISE: sem�ntica participativa
? Nota��o Setzer: sem�ntica associativa
5.5. ATRIBUTO
? � um dado que � associado a cada ocorr�ncia de uma entidade ou relacionamento.
? Os atributos n�o possuem exist�ncia pr�pria ou independente - est�o sempre
associados a
uma entidade ou relacionamento
? Exemplos:
? Funcion�rio: Matr�cula, Nome, Endere�o
? Material: C�digo, Descri��o
? Financiamento: Valor total, Meses
? Fornecedor: Nome, Endere�o
Administra��o de Banco de Dados 22
10
DEPTO 1 ALOCA N EMPREGADO
(1,1) (0,N)
DEPTO ALOCA EMPREGADO
DEPTO (0,N) ALOCA (1,1) EMPREGADO
DEPTO 1 ALOCA N EMPREGADO
5.5.1. DOM�NIO
� o conjunto de valores v�lidos que um atributo pode assumir.
Ex: Estado civil: solteiro, casado, divorciado, vi�vo
5.5.2. TIPOS DE ATRIBUTOS
a) Opcional/Mandat�rio
130.Opcional: o atributo pode possuir um valor nulo (vazio). Ex: n�mero
de telefone
? Mandat�rio: o atributo deve possuir um valor v�lido, n�o nulo. Ex: nome do
cliente
b) Monovalorado/Multivalorado
132.Monovalorado: o atributo assume um �nico valor dentro do dom�nio.
Ex: data de nascimento
? Multivalorado: o atributo pode assumir um n�mero qualquer de valores dentro do
dom�nio. Ex: Telefone para contato
c) At�mico/Composto
134.At�mico: o atributo n�o pode ser decomposto em outros atributos. Ex:
Idade
? Composto: o atributo � composto por mais de um atributo. Ex: Endere�o
5.5.3. ATRIBUTO DE RELACIONAMENTO
Assim como as entidades, os relacionamentos tamb�m podem possuir atributos.
5.5.4. IDENTIFICADOR DE ENTIDADES
? Conjunto de atributos que tem a propriedade de identificar univocamente cada
ocorr�ncia
de uma entidade
? Toda entidade deve possuir um identificador
? O identificador deve ser m�nimo, �nico, monovalorado e mandat�rio
Administra��o de Banco de Dados 23
5.5.5. RELACIONAMENTO IDENTIFICADOR (ENTIDADE FRACA)
Existem casos em que uma entidade n�o pode ser identificada apenas com seus
pr�prios atributos, mas necessita de atributos de outras entidades com as quais se
relaciona.
Este relacionamento � denominado Relacionamento Identificador. Alguns autores
denominam
uma entidade nesta situa��o de Entidade Fraca.
5.5.6. IDENTIFICADOR DE RELACIONAMENTOS
Uma ocorr�ncia de relacionamento diferencia-se das demais pelas ocorr�ncias das
entidades que participam do relacionamento. No exemplo
No exemplo, uma ocorr�ncia de ALOCA��O � identificada pela ocorr�ncia de
Engenheiro e pela ocorr�ncia de Projeto. Ou seja, para cada par (engenheiro,
projeto) h� no
m�ximo um relacionamento de aloca��o.
Em certos casos, ser� necess�rio o uso de atributos identificadores de
relacionamentos. Por exemplo:
Como o mesmo m�dico pode consultar o mesmo paciente em diversas ocasi�es, �
necess�rio o uso de um atributo que diferencie uma consulta da outra.
5.6. GENERALIZA��O/ESPECIALIZA��O
? A generaliza��o � um processo de abstra��o em que v�rios tipos de entidade s�o
agrupados em uma �nica entidade gen�rica, que mant�m as propriedades comuns
? A especializa��o � o processo inverso, ou seja, novas entidades especializadas
s�o
criadas, com atributos que acrescentam detalhes � entidade gen�rica existente
Administra��o de Banco de Dados 24
? A entidade gen�rica � denominada superclasse e as entidades especializadas s�o
as
subclasses. A superclasse armazena os dados gerais de uma entidade, as subclasses
armazenam os dados particulares
? Este conceito est� associado � id�ia de heran�a de propriedades. Isto significa
que as
subclasses possuem, al�m de seus pr�prios atributos, os atributos da superclasse
correspondente.
? Usada quando � necess�rio caracterizar entidades com atributos pr�prios ou
participa��o
em relacionamentos espec�ficos
Uma generaliza��o/especializa��o pode ser total ou parcial:
? � total quando, para cada ocorr�ncia da entidade gen�rica, existe sempre uma
ocorr�ncia em uma das entidades especializadas.
? � parcial quando nem toda ocorr�ncia da entidade gen�rica possui uma ocorr�ncia
correspondente em uma entidade especializada.
Administra��o de Banco de Dados 25
5.7. ENTIDADE ASSOCIATIVA (AGREGA��O)
? O uso desta abstra��o � necess�rio quando um relacionamento deve ser
representado
como uma entidade no modelo conceitual. Isto ocorre quando � necess�rio
estabelecer um
relacionamento entre uma entidade e um relacionamento.
? Para atender a esta situa��o foi criado o conceito de Entidade Associativa ou
Agrega��o. A
agrega��o � simplesmente um relacionamento que passa a ser tratado como entidade.
? Considerando o exemplo
Se for necess�rio adicionar a informa��o que, a cada consulta um ou mais
medicamentos podem ser prescritos ao paciente, ser� necess�rio criar uma nova
entidade
(MEDICAMENTO). Esta entidade deve se relacionar com as consultas, mas CONSULTA �
um
relacionamento. Deve ser criada ent�o uma entidade associativa.
Outra forma alternativa de se representar a entidade associativa �
Administra��o de Banco de Dados 26
5.8. RELACIONAMENTO MUTUAMENTE EXCLUSIVO
Neste tipo de relacionamento uma ocorr�ncia de um entidade pode estar associada
com ocorr�ncias de outras entidades, mas n�o simultaneamente.
5.9. RESTRI��O DE PERSIST�NCIA NO RELACIONAMENTO
Um relacionamento � persistente quando, depois de criado, ele n�o puder ser
removido
indiretamente pela remo��o de uma ocorr�ncia de uma das entidades associadas.
Administra��o de Banco de Dados 27
AVI�O
PASSAGEIRO
TRANSPORTE CARGA
TRANSPORTE
1 N
ALUNO EMPR�STIMO
LIVRO
5.10. ESQUEMA TEXTUAL DO MER
Um esquema ER pode ser um texto. Abaixo � definida uma sintaxe para uma
linguagem textual para defini��o de esquemas ER. Nesta sintaxe, s�o usadas as
seguintes
conven��es: colchetes indicam opcionalidade, o sufixo LISTA denota uma seq��ncia
de
elementos separados por v�rgulas e o sufixo NOME denota os identificadores.
ESQUEMA � Esquema: ESQUEMA_NOME
SE��O_ENTIDADE
SE��O_GENERALIZA��O
SE��O_AGREGA��O
SE��O_RELACIONAMENTO
SE��O_ENTIDADE � (DECL_ENT)
DECL_ENT �Entidade: ENTIDADE_NOME
{SE��O_ATRIBUTO}
{SE��O_IDENTIFICADOR}
SE��O_ATRIBUTO � Atributos: {DECL_ATRIB}
DECL_ATRIB � [(MIN_CARD, MAX_CARD)] ATRIBUTO_NOME [: DECL_TIPO]
MIN_CARD � 0 | 1
MAX_CARD � 1 | N
DECL_TIPO � inteiro|real|boolean|texto(inteiro)|enum(LISTA_VALORES)|data
SE��O_IDENTIFICADOR � Identificadores: {DECL_IDENT}
DECL_IDENT � (IDENTIFICADOR)
IDENTIFICADOR � ATRIBUTO_NOME
SE��O_GENERALIZA��O � {DECL_HIERARQUIA_GEN}
DECL_HIERARQUIA_GEN � Generaliza��o[(CORBERTURA)]; NOME_GEN
PAI: NOME_ENTIDADE
FILHO: LISTA_NOME_ENTIDADE
COBERTURA � t | p
SE��O_AGREGA��O �{DECL_ENT_ASSOC}
DECL_ENT_ASSOC � EntidadeAssociativa: NOME_RELACIONAMENTO
SE��O_RELACIONAMENTO � {DECL_RELACIONAMENTO}
DECL_RELACIONAMENTO � Relacionamento: NOME_RELACIONAMENTO
Entidades: {DECL_ENT-RELACIONADA}
[ Atributos: {DECL_ATRIB} ]
[ Identificadores: {DECL_IDENT}]
DECL_ENT-RELACIONADA � [(MIN_CARD,MAX_CARD)] NOME_ENTIDADE
Exemplo:
Esquema: EMPRESA
Entidade: DEPARTAMENTO
Atributos: c�digo: inteiro;
Nome: texto(20);
Ativo: boolean;
Identificador: c�digo
Entidade: EMPREGADO
Atributos: matr�cula: inteiro;
Nome: texto(50);
DataNasc : data;
Identificador: matr�cula
Relacionamento: ALOCA
Entidades: (0,N) DEPARTAMENTO
(1,1) EMPREGADO
Administra��o de Banco de Dados 28
6. LINGUAGEM DE BANCO DE DADOS � SQL
Devemos ressaltar que a linguagem SQL � utilizada tanto pelos profissionais
respons�veis
pelos dados, onde � ressaltada a figura do Administrador do Banco de Dados e dos
Analistas
de Dados, como tamb�m pelos desenvolvedores de Aplica��es. Enquanto �queles est�o
preocupados com o desempenho, integridade do Banco de Dados e utilizam toda gama
de
recursos dispon�veis no SQL, estes est�o preocupados apenas em "transformar dados
em
informa��es", portanto para os desenvolvedores costuma-se dizer que conhecer o
"select" j�
basta. Em nosso curso enfatizaremos a import�ncia de TODOS os comandos do SQL, mas
sabemos de antem�o que os professores respons�veis pelas linguagens IDEO, VB e
Delphi,
ressaltar�o a preponder�ncia da instru��o "select", que ser� apresentada a seguir
e n�o no
final do curso de SQL como geralmente acontece, pelo fato de que diversas
disciplinas
necessitam especificamente deste comando, que passaremos a apresentar:
Exerc�cio: baseado nas vinte quest�es expostas a seguir, elabore o DER
contemplando os
atributos e entidades citados em cada uma.
1) Sele��o de todas os campos (ou colunas) da tabela de Departamentos.
Resp:
SELECT * FROM DEPARTAMENTOS;
O exemplo utiliza o coringa "*" para selecionar as colunas na ordem em que foram
criadas. A
instru��o Select, como pudemos observar seleciona um grupo de registros de uma (ou
mais)
tabela(s). No caso a instru��o From nos indica a necessidade de pesquisarmos tais
dados
apenas na tabela Departamentos.
Where como base das Restri��o de tuplas.
A cl�usula "where" corresponde ao operador restri��o da �lgebra relacional. Cont�m
a
condi��o que as tuplas devem obedecer a fim de serem listadas. Ela pode comparar
valores
em colunas, literais, express�es aritm�ticas
ou fun��es.
A seguir apresentamos operadores l�gicos e complementares a serem utilizados nas
express�es apresentadas em where.
Operadores l�gicos
operador significado
= igual a
> maior que
>= maior que ou igual a
< menor que
<= menor que ou igual a
Administra��o de Banco de Dados 29
Exemplos:
SELECT EMPREGADO, FUN��O
FROM EMPREGADOREGADOS
WHERE [C�DIGO DEPARTAMENTO] > 10;
SELECT EMPREGADO, FUN��O
FROM EMPREGADO
WHERE FUN��O = 'GERENTE';
O conjunto de caracteres ou datas devem estar entre ap�strofes (�) na cl�usula
"where".
2) Selecione todos os departamentos cujo or�amento mensal seja maior que 100000.
Apresente o Nome de tal departamento e seu or�amento anual, que ser� obtido
multiplicando-se o or�amento mensal por 12.
Resp: Neste problema precisamos de uma express�o que � a combina��o de um ou mais
valores, operadores ou fun��es que resultar�o em um valor. Esta express�o poder�
conter
nomes de colunas, valores num�ricos, constantes e operadores aritm�ticos.
SELECT DEPARTAMENTO, OR�AMENTO * 12
FROM DEPARTAMENTOS
WHERE OR�AMENTO > 100000;
3) Apresente a instru��o anterior, por�m ao inv�s dos "feios" Expr1001 e Expr1002,
os
T�tulos Departamento e Or�amento.
Resp: Neste exemplo deveremos denominar colunas por apelidos. Os nomes das colunas
mostradas por uma consulta, s�o geralmente os nomes existentes no Dicion�rio de
Dado,
por�m geralmente est�o armazenados na forma do mais puro "informatiqu�s", onde
"todo
mundo" sabe que CliCodi significa C�digo do Cliente. � poss�vel (e prov�vel) que o
usu�rio
desconhe�a estes s�mbolos, portanto devemos os apresentar dando apelidos �s
colunas
"contaminadas" pelo informatiqu�s, que apesar de fundamental para os analistas,
somente s�o
vistos como enigmas para os usu�rios.
SELECT DEPARTAMENTO, OR�AMENTO * 12 AS [OR�AMENTO ANUAL]
FROM DEPARTAMENTOS
WHERE OR�AMENTO > 100000;
4) Apresente todos os sal�rios existentes na empresa, por�m omita eventuais
duplicidades.
Resp: A cl�usula Distinct elimina duplicidades, significando que somente rela��es
distintas
ser�o apresentadas como resultado de uma pesquisa.
SELECT DISTINCT FUN��O
FROM EMPREGADOS;
5) Apresente todos os dados dos empregados, considerando sua exist�ncia f�sica
diferente de sua exist�ncia l�gica (ou seja devidamente inicializado).
Administra��o de Banco de Dados 30
Resp: Desejamos um tratamento diferenciado para valores nulos. Qualquer coluna de
uma
tupla que n�o contenha informa��es � denominada de nula, portanto informa��o n�o
existente.
Isto n�o � o mesmo que "zero", pois zero � um n�mero como outro qualquer, enquanto
que um
valor nulo utiliza um "byte" de armazenagem interna e s�o tratados de forma
diferenciada pelo
SQL.
SELECT EMPREGADO, SAL�RIO + COMISS�O FROM EMPREGADOS;
6) Apresente os nomes e fun��es da cada funcion�rio contidos na tabela empresa,
por�m classificados alfabeticamente (A..Z) e depois alfabeticamente invertido
(Z..A).
Resp: A cl�usula Order By modificar� a ordem de apresenta��o do resultado da
pesquisa
(ascendente ou descendente).
SELECT EMPREGADO, FUN��O
FROM EMPREGADOS
ORDER BY EMPREGADO;
SELECT EMPREGADO, FUN��O
FROM EMPREGADOS
ORDER BY EMPREGADO DESC;
Nota: Tamb�m � poss�vel fazer com que o resultado da pesquisa venha classificado
por v�rias
colunas. Sem a cla�sula "order by" as linhas ser�o exibidas na sequ�ncia que o
SGBD
determinar.
7) Selecione os Nomes dos Departamentos que estejam na f�brica.
Resp:
SELECT DEPARTAMENTO
FROM DEPARTAMENTOS
WHERE [LOCAL DEPARTAMENTO] = "S�O PAULO";
O exemplo exigiu uma restri��o (S�o Paulo) que nos obrigou a utilizar da instru��o
Where.
Alguns analistas costumam afirmar em tom jocoso que SQL n�o passa de
"Selecione algo De algum lugar Onde se verificam tais rela��es"
Acreditamos que esta brincadeira pode ser �til ao estudante, na medida em que
facilita sua
compreens�o dos objetivos elementares do SQL.
Demais Operadores
Operador Significado
between ... and ... entre dois valores ( inclusive )
in ( .... ) lista de valores
like com um padrao de caracteres
is null � um valor nulo
Exemplos:
SELECT EMPREGADO, SAL�RIO
Administra��o de Banco de Dados 31
FROM EMPREGADOS
WHERE SAL�RIO BETWEEN 500 AND 1000;
SELECT EMPREGADO, [C�DIGO DEPARTAMENTO]
FROM EMPREGADOS
WHERE [C�DIGO DEPARTAMENTO] IN (10,30);
SELECT EMPREGADO, FUN��O
FROM EMPREGADO
WHERE EMPREGADO LIKE 'F' & �*�;
SELECT EMPREGADO, FUN��O
FROM EMPREGADO
WHERE COMISS�O IS NULL;
O s�mbolo "%" pode ser usado para construir a pesquisa ("%" = qualquer sequ�ncia
de nenhum
at� v�rios caracteres).
Operadores Negativos
operador descri��o
<> diferente
not nome_coluna = diferente da coluna
not nome_coluna > n�o maior que
not between n�o entre dois valores informados
not in n�o existente numa dada lista de valores
not like diferente do padrao de caracteres informado
is not null n�o � um valor nulo
8) Selecione os Empregados cujos sal�rios sejam menores que 1000 ou maiores que
3500.
Resp: Necessitaremos aqui a utiliza��o de express�o negativas. A seguir
apresentamos
operadores negativos.
SELECT EMPREGADO, SAL�RIO
FROM EMPREGADO
WHERE SAL�RIO NOT BETWEEN 1000 AND 3500;
9) Apresente todos os funcion�rios com sal�rios entre 200 e 700 e que sejam
Vendedores.
Resp: Necessitaremos de consultas com condi��es m�ltiplas.
Operadores "AND" (E) e "OR" (OU).
SELECT EMPREGADO, SAL�RIO, FUN��O
FROM EMPREGADO
WHERE SAL�RIO BETWEEN 700 AND 2000
AND FUN��O = 'VENDEDOR';
Administra��o de Banco de Dados 32
10) Apresente todos os funcion�rios com sal�rios entre 200 e 700 ou que sejam
Vendedores.
Resp:
SELECT EMPREGADO, SAL�RIO, FUN��O
FROM EMPREGADO
WHERE SAL�RIO BETWEEN 700 AND 2000
OR FUN��O = 'VENDEDOR';
11) Apresente todos os funcion�rios com sal�rios entre 200 e 700 e que sejam
Vendedores ou Balconistas.
Resp:
SELECT EMPREGADO, SAL�RIO, FUN��O
FROM EMPREGADO
WHERE SAL�RIO BETWEEN 700 AND 2000
AND ( FUN��O = 'BALCONISTA' OR FUN��O = 'VENDEDOR' );
Fun��es de Caracteres
Lower - for�a caracteres mai�sculos aparecerem em min�sculos.
Upper - for�a caracteres min�sculos aparecerem em mai�sculos.
Concat(x,y)- concatena a string "x" com a string "y".
Substring(x,y,str)- extrai um substring da string "str", come�ando em "x", e
termina em "y".
To_Char(num)- converte um valor num�rico para uma string de caracteres.
To_Date(char,fmt)- converte uma string caracter em uma data.
^Q - converte data para o formato apresentado.
12) Apresente o nome de todos os empregados admitidos em 01/01/80.
Resp:
SELECT *
FROM EMPREGADOS
WHERE [DATA ADMISS�O] = 01/01/80;
Fun��es Agregadas (ou de Agrupamento)
fun��o retorno
avg(n) m�dia do valor n, ignorando nulos
count(expr) vezes que o n�mero da expr avalia para algo nao nulo
max(expr) maior valor da expr
min(expr) menor valor da expr
sum(n) soma dos valores de n, ignorando nulos
13) Apresente a M�dia, o Maior, o Menor e tamb�m a Somat�ria dos Sal�rios pagos
aos
empregados.
Resp:
SELECT AVG(SAL�RIO) FROM EMPREGADOS;
SELECT MIN(SAL�RIO) FROM EMPREGADOS;
SELECT MAX(SAL�RIO) FROM EMPREGADOS;
Administra��o de Banco de Dados 33
SELECT SUM(SAL�RIO) FROM EMPREGADOS;
Agrupamentos
As fun��es de grupo operam sobre grupos de tuplas(linhas). Retornam resultados
baseados
em grupos de tuplas em vez de resultados de fun��es por tupla individual. A
cla�sula "group
by" do comando "select" � utilizada para dividir tuplas em grupos menores.
A cl�usula "GROUP BY" pode ser usada para dividir as tuplas de uma tabela em
grupos
menores. As fun��es de grupo devolvem uma informa��o sumarizada para cada grupo.
14) Apresente a m�dia de sal�rio pagos por departamento.
Resp:
SELECT DUPNUME, AVG(SAL�RIO)
FROM EMPREGADOS
GROUP BY [C�DIGO DEPARTAMENTO];
Obs.: Qualquer coluna ou express�o na lista de sele��o, que n�o for uma fun��o
agregada,
dever� constar da cla�sula "group by". Portanto � errado tentar impor uma
"restri��o" do tipo
agregada na cl�usula Where.
Having
A cl�usula "HAVING" pode ser utilizada para especificar quais grupos dever�o ser
exibidos,
portanto restringindo-os.
15) Retome o problema anterior, por�m apresente resposta apenas para departamentos
com mais de 10 empregados.
Resp:
SELECT [C�DIGO DEPARTAMENTO], AVG(SAL�RIO)
FROM EMPREGADO
GROUP BY [C�DIGO DEPARTAMENTO]
HAVING COUNT(*) > 3;
Obs.: A cla�sula "group by" deve ser colocada antes da "having", pois os grupos
s�o formados
e as fun��es de grupos s�o calculadas antes de se resolver a cl�usula "having".
A cl�usula "where" n�o pode ser utilizada para restringir grupos que dever�o ser
exibidos.
Exemplificando ERRO t�pico - Restringindo M�dia Maior que 1000:
SELECT [C�DIGO DEPARTAMENTO], AVG(SAL�RIO)
FROM EMPREGADOS
WHERE AVG(SALARIO) > 1000
GROUP BY [C�DIGO DEPARTAMENTO];
( Esta sele��o est� ERRADA! )
SELECT [C�DIGO DEPARTAMENTO], AVG(SAL�RIO)
FROM EMPREGADOS
GROUP BY [C�DIGO DEPARTAMENTO]
Administra��o de Banco de Dados 34
HAVING AVG(SAL�RIO) > 1000;
( Sele��o Adequada )
Seq��ncia no comando "Select":
SELECT coluna(s)
FROM tabela(s)
WHERE condi��o(�es) da(s) tupla(s)
GROUP BY condi��o(�es) do(s) grupo(s) de tupla(s)
HAVING condi��o(�es) do(s) grupo(s) de tupla(s)
ORDER BY coluna(s);
A "sql" far� a seguinte avalia��o:
a) WHERE, para estabelecer tuplas individuais candidatas (n�o pode conter fun��es
de grupo)
b) GROUP BY, para fixar grupos.
c) HAVING, para selecionar grupos para exibi�ao.
Equi-Jun��o ( Jun��o por igualdade )
O relacionamento existente entre tabelas � chamado de equi-jun��o, pois os valores
de
colunas das duas tabelas s�o iguais. A Equi-jun��o � poss�vel apenas quando
tivermos
definido de forma adequada a chave estrangeira de uma tabela e sua refer�ncia a
chave
prim�ria da tabela precedente. Apesar de admitir-se em alguns casos, a equi-jun��o
de
tabelas, sem a correspond�ncia Chave Prim�ria-Chave Estrangeira, recomendamos
fortemente
ao estudante n�o utilizar este tipo de constru��o, pois certamente em nenhum
momento nos
exemplos propostos em nossa disciplina ou nas disciplinas de An�lise e Projeto de
Sistemas,
ser�o necess�rias tais jun��es.
16) Listar Nomes de Empregados, Cargos e Nome do Departamento onde o empregado
trabalha.
Resp: Observemos que dois dos tr�s dados solicitados est�o na Tabela Emp, enquanto
o outro
dado est� na Tabela Departamentos. Deveremos ent�o acessar os dados restringindo
convenientemente as rela��es existentes entre as tabelas. De fato sabemos que
[C�DIGO
DEPARTAMENTO] � chave prim�ria da tabela de Departamentos e tamb�m � chave
estrangeira da Tabela de Empregados. Portanto, este campo ser� o respons�vel pela
equijun��o.
SELECT A.EMPREGADO, A.FUN��O, B.DEPARTAMENTO
FROM EMPREGADOS AS A, DEPARTAMENTOS AS B
WHERE A.[C�DIGO DEPARTAMENTO] = B.[C�DIGO DEPARTAMENTO];
Obs.: Note que as tabelas quando cont�m colunas com o mesmo nome, usa-se um
apelido
"alias" para substituir o nome da tabela associado a coluna. Imagine que algu�m
tivesse
definido NOME para ser o Nome do Empregado na Tabela de Empregados e tamb�m NOME
para ser o Nome do Departamento na Tabela de
Departamentos. Tudo funcionaria de forma adequada, pois o ali�s se encarregaria de
evitar
que uma ambiq�idade fosse verificada. Embora SQL resolva de forma muito elegante o
problema da nomenclatura id�ntica para campos de tabelas, recomendamos que o
estudante
fortemente evite tal forma de nomear os campos. O SQL nunca confundir� um A.NOME
com
um B.NOME, por�m podemos afirmar o mesmo de n�s mesmos?
Administra��o de Banco de Dados 35
17) Liste os C�digos do Cada Funcion�rio, seus Nomes, seus Cargos e o nome do
Gerente ao qual este se relaciona.
Resp: Precisamos criar um auto-relacionamento, ou seja, juntar uma tabela a ela
pr�pria. �
poss�vel juntarmos uma tabela a ela mesma com a utiliza��o de apelidos, permitindo
juntar
tuplas da tabela a outra tuplas da mesma tabela.
SELECT A.EMPNUME, A.EMPREGADO, A.FUN��O, B.EMPREGADO
FROM EMPREGADOS AS A, EMPREGADOS AS B
WHERE A.EMPGERE = B.EMPNUME;
As Sub-Consultas
Uma sub-consulta � um comando "select" que � aninhado dentro de outro "select" e
que
devolve resultados intermedi�rios.
18) Relacione todos os nomes de funcion�rios e seus respectivos cargos, desde que
o
or�amento do departamento seja igual a 300000.
Resp:
SELECT EMPREGADO, FUN��O
FROM EMPREGADOS AS A
WHERE 300000 IN ( SELECT OR�AMENTO
FROM DEPARTAMENTOS
WHERE DEPARTAMENTOS.[C�DIGO DEPARTAMENTO]
= A.[C�DIGO DEPARTAMENTO] );
Nota: Observe que a cl�usula IN torna-se verdadeira quando o atributo indicado
est� presente
no conjunto obtido atrav�s da subconsulta.
19) Relacione todos os departamentos que possuem empregados com remunera��o
maior que 3500.
Resp:
SELECT DEPARTAMENTO
FROM DEPARTAMENTOS AS A
WHERE EXISTS (SELECT *
FROM EMPREGADOS
WHERE SAL�RIO > 3500 AND EMP.[C�DIGO DEPARTAMENTO]
= A.[C�DIGO DEPARTAMENTO]);
Nota: Observe que a cl�usula EXISTS indica se o resultado de uma pesquisa cont�m
ou n�o
tuplas. Observe tamb�m que poderemos verficar a n�o exist�ncia (NOT EXISTS) caso
esta
alternativa seja mais conveniente.
Uni�es
Podemos eventualmente unir duas linhas de consultas simplesmente utilizando a
palavra
reservada UNION.
20) Liste todos os empregados que tenham c�digos > 10 ou Funcion�rios que
trabalhem
em departamentos com c�digo maior que 10.
Administra��o de Banco de Dados 36
Resp: Poder�amos resolver esta pesquisa com um �nico Select, por�m devido ao fato
de
estarmos trabalhando em nosso exemplo com apenas duas tabelas n�o consiguimos
criar um
exemplo muito adequado para utiliza��o deste recurso.
(Select * From Empregados Where EmpNume > 10)
Union
(Select * From Empregados Where [C�digo Departamento] > 10);
Inser��es, Altera��es e Exclus�es
Uma linguagem direcionada a extra��o de informa��es de um conjunto de dados, em
tese n�o
deveria incorporar comandos de manipula��o dos dados. Devemos observar contudo que
a
mera exist�ncia de uma linguagem padronizada para acesso aos dados "convidava" os
desenvolvedores a aderirem a uma linguagem "padr�o" de manipula��o de tabelas.
Naturalmente cada desenvolvedor coloca "um algo mais" em seu SQL (SQL PLUS, SQL *,
ISQL, e toda sorte de nomenclaturas), por um lado desvirtuando os objetivos da
linguagem
(padroniza��o absoluta), mas em contrapartida otimiza os acessos ao seu banco de
dados e
por maior que sejam estas mudan�as, jamais s�o t�o importantes que impe�am que um
programador versado em SQL tenha grandes dificuldades em se adaptar ao padr�o de
determinada implementa��o. De fato as diferen�as entre o SQL da Sybase, Oracle,
Microsoft,
s�o muito menores dos que as existentes entre o C, o BASIC e o Pascal, que s�o
chamadas
de linguagens "irm�s", pois todas originam-se conceitualmente no FORTRAN. Podemos
observar que todas as tr�s linguagens mencionadas possuem estruturas de controle
tipo "para"
(for), "enquanto" (while) e repita (do..while, repeat..until). Todas trabalham com
blocos de
instru��o, todas tem regras semelhantes para declara��o de vari�veis e todas usam
comandos
de tomada decis�o baseadas em instru��es do tipo "se" ou "caso", por�m apesar de
tantas
semelhan�as (sic), � praticamente imposs�vel que um programador excelente em uma
linguagem consiga rapidamente ser excelente em outra linguagem do grupo.
Poder�amos
arriscar a dizer que um excelente programador C que utilize a implementa��o da
Symantech
ter� que passar por um breve per�odo de adapta��o para adaptar-se ao C da
Microsoft.
O que ocorreria ent�o se este programador tiver que adaptar-se ao Delphi (Pascal)
da
Borland?
De forma alguma o mesmo ocorrer� com o especialista em SQL ao ter que migrar do
Banco de
Dados X para o Banco de Dados Y. Naturalmente existir� a necessidade de
aprendizado, mas
este programador poder� ir adaptando-se aos poucos sem precisar ser retreinado, o
que � um
aspecto extremamente vantajoso para as empresas.
Inserir (Insert)
INSERT INTO <tabela> [<campos>] [VALUES <valores>]
Ex:
INSERT INTO DEPARTAMENTOS;
Possibilita a inser��o de registros de forma interativa.
INSERT INTO DEPARTAMENTOS ([C�DIGO DEPARTAMENTO], DEPARTAMENTO, [LOCAL
DEPARTAMENTO])
VALUES (70,"PRODUCAO","RIO DE JANEIRO");
Possibilita a inser��o de registros em tabelas sem digita��o dos dados.
Atualizar (Update)
Administra��o de Banco de Dados 37
UPDATE <tabela> SET <campo> = <express�o> [WHERE <condi��o>];
Ex: UPDATE EMP SET SAL�RIO = SAL�RIO* 1.2 WHERE SAL�RIO< 1000;
Excluir (Delete)
DELETE FROM <tabela> [WHERE <condi��o>];
Ex: DELETE From Empregados WHERE SAL�RIO > 5000;
Vis�es
Uma vis�o consiste basicamente de uma tabela derivada de outras tabelas.
Considerando o
exemplo TRABALHO, poder�amos criar uma vis�o baseada na Tabela de Empregados (EMP)
e
na Tabela de Departamentos (DEPARTAMENTOS) onde tiv�ssemos somente os Nomes dos
Funcion�rios e os Departamenos nos quais estes trabalhassem. Ter�amos algo
assemelhado
ao abaixo representado:
CREATE VIEW EMPREGADOS_DEPARTAMENTOS
AS SELECT E.EMPREGADO, D.DEPARTAMENTO
FROM EMPREGADOS AS E, DEPARTAMENTOS AS D
WHERE E.[C�DIGO DEPARTAMENTO] = D.[C�DIGO DEPARTAMENTO];
Devemos observar que:
1- Uma vis�o definida sobre uma �nica tabela somente ser� atualiz�vel se os
atributos da tal
vis�o contiverem a chave prim�ria de tal tabela.
2- Vis�es sobre v�rias tabelas n�o s�o pass�veis de atualiza��es.
3- Vis�es que utilizam fun��es de agrupamentos, tamb�m n�o poder�o ser
atualizadas.
Administra��o de Banco de Dados 38