Академический Документы
Профессиональный Документы
Культура Документы
CAPTULO V - LINGUAGENS DE BD
1. SQL...............................................................................19
2. Autocontidas..................................................................22
3. Hospedeiras...................................................................22
4. Visuais...........................................................................23
5. Linguagens para INTERNET..........................................23
Concluso..........................................................................24
INTRODUO
CAPTULO I
CONCEITOS BSICOS
Para compreender com maior facilidade os conceitos relativos a BANCO DE
DADOS de suma importncia revisar-mos alguns conceitos bsicos
referentes teoria e terminologia de arquivos convencionais, haja vista, que
os primeiros SGBD foram criados a partir do aperfeioamento de sistemas
gerenciadores de arquivo, e ainda utilizam muito da base conceitual e da
terminologia de arquivos.
1. ARQUIVO
Um arquivo uma coleo de REGISTROS do mesmo tipo, ou seja,
referentes a um mesmo assunto e com o mesmo formato padro (layout).
Constitui o componente do sistema no qual so armazenados os dados,
que combinados atravs dos programas servem de base para a gerao
da informao desejada pelo usurio, atravs de relatrios e consultas
on-line.
Um sistema de controle de notas, por exemplo, pode armazenar seus
dados em diversos arquivos, cada um contendo informaes sobre um
determinado item do sistema: ALUNO, PROFESSOR, MATRIA, NOTA,
etc.
Essas informaes podem ser combinadas atravs de programas para
gerar, por exemplo, o BOLETIM ESCOLAR, a PAUTA ou uma tela de
CONSULTA DE NOTAS.
2. REGISTRO
Um registro constitudo por conjunto de campos valorados (contendo
dados. Consiste na unidade de armazenamento e recuperao da
informao em um arquivo. Geralmente, os registros de um arquivo
possuem um formato padro (layout), definido pela seqncia, tipo e
tamanho dos campos que o compem. Porm, algumas linguagens de
programao permitem a criao de registros com layouts deferentes em
um mesmo arquivo, recurso este que raramente utilizado.
3. CAMPO
a unidade bsica formadora de um registro. Constitui a clula da
informao. a menor poro de um arquivo que pode ser referenciada
por um programa.
Cada campo possui NOME, TIPO e TAMANHO. Os tipos de campo mais
comuns so:
_ Armazena somente nmeros
_ Pode conter casas decimais
NUMBER
CHAR ou
ALFANUMRICO
DATE
especiais
_ Armazena datas fazendo consistncia automtica
ARQUIVO ALUNO
LAYOUT
CAMPOS
TIPO e TAM.
REGISTROS
MATRICULA NOME
ENDEREO DT_NASC
NUMBER (03) CHAR (30) CHAR (50)
DATE
001
002
003
.
.
Jos
Maria
Ana
.
.
5. CHAVE SECUNDRIA
ARQUIVO ALUNO
PK
MATRICULA
001
003
002
005
.
NOME
Jos
Maria
Ana
Jos
.
ENDEREO
SQS 308 ...
QND 14 ....
SQN 410 ...
GAMA
.
DT_NASC
23/08/78
25/09/70
10/08/85
05/04/76
.
PROGRAMA X
INCIO....
.
.
SE NOME = JOS
ENTO IMPRIMIR
.....
.
.
FIM
6. CHAVE CANDIDATA
Pode ocorrer uma situao em que mais de um campo satisfaa a
condio de chave primria, constituindo duas ou mais CHAVES
CANDIDATAS. Neste caso, o analista dever eleger somente uma delas
como CHAVE PRIMRIA, as demais permanecero na condio de
CANDIDATAS, indicando que tratam-se de campos de preenchimento
obrigatrio e com valores nicos para cada registro, o que ser garantido
atravs de mecanismos de integridade de coluna, que veremos no
captulo relativo a banco de dados.
A figura a seguir mostra um exemplo de arquivo com CHAVE CANDIDATA
ARQUIVO ALUNO
CHAVE CANDIDATA
CHAVE PRIMRIA
MATRICULA
001
003
002
005
.
.
NOME
Jos
Maria
Ana
Jos
.
.
ENDEREO
SQS 308 ...
QND 14 ....
SQN 410 ...
GAMA
.
.
CPF
72993246500
12354789065
09876587659
28746503645
.
.
CAPTULO II
ORGANIZAO DE ARQUIVOS
O tema organizao de arquivos refere-se a forma como os registros so
armazenados em um arquivo baseado em computador. Confunde-se com
MTODO DE ACESSO, que consiste na forma como esses podem ser
recuperados. A organizao do arquivo determina os mtodos de acesso
que podem ser utilizados na recuperao dos registros, mas tratam-se de
coisas distintas.
Apesar de este ser um assunto muito abrangente e com muitas variantes
em termos de abordagem, trataremos de apenas trs tipos de
organizao (SEQENCIAL, SERIAL E INDEXADA) e seus respectivos
mtodos de acesso. Essa escolha baseia-se na necessidade de
discutirmos alguns conceitos essenciais para o estudo do modelo
Relacional de banco de dados, que constitui o objeto principal desse
texto.
1. MTODOS DE ACESSO
Para recuperarmos um registro em um arquivo, podemos utilizar acesso
SEQENCIAL ou DIRETO.
O mtodo SEQENCIAL de acesso o mais tradicional e consiste em
efetuar a leitura dos registros, um aps o outro, comparando o
ARGUMENTO DE PESQUISA, com o valor do campo CHAVE (primria
ou secundria) no registro corrente, at encontrar os registros desejados
ou o final do arquivo.
exemplo:
PROGRAMA Y
INCIO....
.
Repita at fim
ler registro
SE NOME = JOS
ENTO IMPRIMIR
Fim repita (volte a ler)
.
FIM DO PROGRAMA
argumento de pesquisa
2. ORGANIZAO SEQENCIAL
A ORGANIZAO SEQENCIAL caracteriza-se pela existncia de uma
CHAVE DE ORDENAO. Essa chave determina a ordem em que os
registros so armazenados e pode ser SIMPLES ou COMPOSTA por
dois ou mais campos. Geralmente, coincide com a chave primria, mas
no obrigatoriamente.
A organizao seqencial somente permite o ACESSO SEQENCIAL.
A figura a seguir apresenta um arquivo com ORGANIZAO SEQENCIAL e CHAVE
PRIMRIA(MATRICULA) distinta da CHAVE DE ORDENAO (NOME - ordem alfabtica).
ARQUIVO ALUNO
chave primria
MATRICULA
001
003
002
005
.
.
NOME
Ana
Jos
Jos
Maria
.
.
chave de ordenao
ENDEREO
SQS 308 ...
QND 14 ....
SQN 410 ...
GAMA
.
.
DT_NASC
23/08/78
25/09/70
10/08/85
05/04/76
.
.
3. ORGANIZAO SERIAL
Nesta forma de organizao os registros so armazenados de acordo
com a ordem de incluso. o arquivo no possui chave de ordenao,
portanto no existe preocupao com a ordem de armazenamento dos
registros. No entanto, sempre recomendvel o arquivo possua uma
chave primria.
A organizao serial somente permite o ACESSO SEQENCIAL. No
deve ser utilizada em processos de excluso e alterao de registros na
modalidade bacth (atualizao em lote), pois degrada a performance.
muito utilizada em processos de incluso de registros onde no haja
preocupao em manter a seqncia dos mesmos (pools de digitao).
tambm empregada no arquivo de dados que serve de base para a
organizao indexada, que estudaremos no prximo item.
A figura a seguir apresenta um arquivo com ORGANIZAO SERIAL. Note que ele
no possui CHAVE DE ORDENAO.
ARQUIVO ALUNO
chave primria
MATRICULA
005
003
002
001
.
NOME
Maria
Jos
Ana
Jos
.
ENDEREO
SQS 308 ...
QND 14 ....
SQN 410 ...
GAMA
.
DT_NASC
23/08/78
25/09/70
10/08/85
05/04/76
.
10
4. ORGANIZAO INDEXADA
Nesta forma de organizao, os registros so armazenados em um
arquivo de dados com organizao serial e para cada campo (ou
combinao deles) atravs do qual se deseja obter acesso direto
(indexado) deve-se criar um arquivo de ndice (processo de indexao).
Um mesmo arquivo de dados pode possuir diversos arquivos de ndice a
ele associados. Porm, apesar da flexibilidade para a criao de ndices,
esse recurso deve ser utilizado com critrio, pois a manuteno de
muitos ndices pode degradar a performance no processo de atualizao
do arquivo. Ou seja, ganha-se na consulta on-line, mas pode-se perder
na atualizao de dados.
O arquivo de ndice composto basicamente por duas colunas. A
primeira corresponde ao campo utilizado no processo de indexao
(endereo lgico) e a segunda armazena um valor (endereo fsico) que
serve como referncia, para que o gerenciador de arquivos localize o
registro no disco magntico.
Os registros dos arquivos ndice so ordenados pelo endereo lgico.
Portanto, se utilizarmos um algoritmo de leitura seqencial em um arquivo
indexado por nome, por exemplo, obteremos os registros em ordem
alfabtica, mesmo sendo o arquivo de dados um arquivo serial. Ou seja
prevalece a ordem do ndice. Porm nesse exemplo, a performance a
performance do arquivo indexado seria menor, se comparada a de um
arquivo seqencial por nome.
Sempre que um arquivo ndice for referenciado por um programa, ele
ser carregado para memria principal, o que torna desprezvel o tempo
de busca dos registros nesse arquivo. Alm disso, o algoritmo utilizado
na busca o de pesquisa binria, o que reduz ainda mais o tempo.
Os ndices constitudos com base no valor da chave primria ou
candidata so conhecidos como NDICES PRIMRIOS e os demais
como NDICES SECUNDRIOS.
11
ARQUIVO ALUNO
NDICE
PRIMRIO
TSL
220
321
231
110
NDICE
SECUNDRIO
NOME TSL
Ana
321
Jos
220
Jos
231
Maria 110
.
331
(endereo fsico)
ENDEREO
SQS 308 ...
QND 14 ....
SQN 410 ...
GAMA
.
DT_NASC
23/08/78
25/09/70
10/08/85
05/04/76
.
12
CAPTULO III
SISTEMA GERENCIADOR DE BANCO DE DADOS - SGBD
A expresso BANCO DE DADOS, coloquialmente empregada com os mais
diversos significados, de tal sorte que, ao indagarmos de algum sobre o BANCO DE
DADOS com o qual trabalha em sua empresa, poderemos obter as seguintes
respostas:
1. Trabalho com ORACLE, ACCESS, SQL SERVER, SYBASE, etc..
2. Trabalho com o banco de dados de PESSOAL, MATERIAL ou FINANAS;
3. Trabalho com o CADASTRO DE PESSOAL, SISTEMA DE VENDAS, etc.
Para evitar conflitos terminolgicos, definimos a seguir trs expresses, consagradas
na a literatura clssica, que seriam melhor aplicadas a cada uma das situaes
anteriores.
1. SISTEMA GERENCIADOR DE BANCO DE DADOS - SGBD
Essa expresso estar corretamente empregada, quando utilizada para
designar o SOFTWARE utilizado para criar um BANCO DE DADOS.
Portanto, tratando-se de SGBD estaremos nos referindo a produtos como
ACCESS, ORACLE, SYBASE, SQL SERVER, ADABAS, etc.
2. BANCO DE DADOS - BD
Esse enunciado refere-se a um conjunto de informaes relacionadas,
que so armazenadas no computador e recuperadas com a utilizao
dos recursos de um SGBD. Essas informaes devem ser estruturadas,
de tal maneira, que independam de aplicaes especficas. Ou seja, um
BD de PESSOAL, adequadamente estruturado, pode fornecer dados,
tanto para um sistema de Folha de Pagamento, quanto para um sistema
de Treinamento de Recursos Humanos.
13
BD DE ALUNOS
CONTROLE DE
MENSALIDADE
CONTROLE
DE NOTAS
PEDAGOGA
EMPRSTIMOS
DE LIVROS
BIBLIOTECA
14
CAPTULO IV
OBJETIVOS DE BANCO DE DADOS
O desenvolvimento da tecnologia de banco de dados tem se pautado por buscar
alcanar, como objetivo permanente o aumento de produtividade nas atividades de
desenvolvimento e manuteno de sistemas. Nesse sentido os fabricantes de SGBD
vem dotando seus produtos com mecanismos que facilitam a adaptao dos BD s
novas necessidades que surgem no dia a dia e que reduzem o trabalho de
programao. Aliado a esses dois fatores existe toda uma filosofia que orienta os
tcnicos na escolha do melhor produto para a sua empresa e no trabalho de projeto de
banco de dados.
Dessa filosofia destacamos, a seguir, alguns objetivos de BD, os quais um
profissional deve ter em mente ao lidar com essa tecnologia.
1. INDEPENDNCIA DE DADOS
Os SGBD devem ser dotados de recursos que possibilitem a descrio
das estruturas de dados (layout de arquivos e/ou tabelas) de forma
independente dos procedimentos de manipulao (leitura e gravao) de
dados no BD. Esse objetivo visa tornar transparente para os programas
que acessam o BD as alteraes que, por ventura, venham a ocorrer nas
estruturas de dados, como por exemplo o acrscimo de um novo campo
de informao ao banco. Da mesma forma, alteraes em lgicas de
programas que acessam o BD no devem afetar as estruturas de dados.
Quanto maior o grau de independncia de dados, menor ser o tempo
em que o BD ficar fora de operao para atividades de manuteno
como, por exemplo, recompilao.
At hoje, a maneira mais eficiente adotada pelos fornecedores de SGBD
para implementao desse objetivo foi a utilizao do SQL (structured
query language) nos produtos que seguem o Modelo Relacional. O SQL
possui grupos de comandos especficos e independentes para as tarefas
de criao e alterao de tabelas (DDL - data definition language) e
leitura e atualizao do BD (DML - data manipulation language).
15
2. COMPARTILHAMENTO DE DADOS
Consiste na reutilizao dos dados do BD pelo maior nmero possvel de
aplicaes dentro da empresa. Nesse sentido, os dados do BD devem
ser muito bem planejados e estruturados. Portanto, este objetivo de
banco de dados esta mais ligado a atividade de anlise e projeto de BD.
O compartilhamento de dados visa diminuir a redundncia de dados,
considerando-o como um recurso da empresa e no propriedade de
setores isolados da organizao.
Para implementar o compartilhamento de dados necessrio que a
empresa disponha de recursos de rede, que permitam colocar o BD ao
alcance dos diversos usurios. Alm disso, necessrio que o SGBD
possua um competente sistema de segurana, para que se estabelea a
privacidade de dados, atravs de mecanismos de restrio de acesso.
3. MENOR REDUNDNCIA DE DADOS
Redundncia de dados consiste na repetio de um mesmo dado em
diversos arquivos (tabelas) de um sistema, banco de dados, ambiente
computacional ou empresa. Como exemplo, pode-se tomar a ocorrncia
do dado NOME DO FUNCIONRIO, em bases de dados no
compartilhadas dos sistemas de CADASTRO, FOLHA DE PAGAMENTO
e TREINAMENTO de uma empresa.
A redundncia danosa para o ambiente computacional, pois aumenta
os custos com o armazenamento de dados, com o pessoal para
manuteno de sistema.
Alm disso, a redundncia gera inconsistncia de dados, ou seja, o dado
redundante extrado a partir de arquivos diferentes apresenta valores
divergentes. Tal fato, pode afetar a credibilidade do usurio no sistema e
no pessoal de informtica.
4. PRIVACIDADE DE DADOS
O COMPARTILHAMENTO DE DADOS leva um grande nmero de
usurios, com funes diversificadas na empresa, a acessar um mesmo
banco de dados. Nesse contexto, o objetivo de privacidade de dados
ressalta a preocupao que o projetista de BD deve ter em vedar o
acesso de usurios no autorizados a informaes sigilosas ou de
acesso restrito.
16
7. INTEGRIDADE DE DADOS
A integridade de dados refere-se a mecanismos que esto disponveis
nos SGBD, que garantem a consistncia dos dados armazenados no
SGBD, segundo parmetros de validao, especificados no momento de
criao do BD, em conjunto com as estruturas de dados.
Esse objetivo s se tornou disponvel, como recurso do SGBD, com o
advento dos modelos Relacionais e consta como pr-requisito para
enquadramento de produtos nessa categoria de SGBD.
No captulo dedicado aos SGBD relacionais trataremos esse assunto
com maior riqueza de detalhes.
18
CAPTULO V
LINGUAGENS DE BANCO DE DADOS
As linguagens de banco de dados consistem na interface do usurio para interagir
com o SGBD. Neste texto destacamos cinco modalidades de linguagens que so mais
comunmente utilizadas nessa interao: SQL, autocontida, hospedeira, visuais e
aquelas voltadas para INTERNET. Esta uma classificao meramente didtica que
objetiva apenas demostrar formas diferenciadas de interao com o BD. Outros
autores possuem diferentes classificaes.
1. SQL (STRUCTURED QUERY LANGUAGE)
A liguagem SQL (anteriormente escrita SEQUEL) foi criada junto com o Sistema
R, primeiro prottipo de SGBD-R, desenvolvido de 1974 a 1979 no IBM San Jose
Research Laboratory. A veso original do SQL foi baseada em uma linguagem
anterior chamada SQUARE. As duas linguagens so essencialmente a mesma, mas
a SQUARE usa uma sintaxe bem mais matemtica, enquanto a SQL mais
parecida com o ingls.
A linguagem SQL mais do que somente uma linguagem de consulta, sem que isto
se oponha ao query no seu nome. Ela fornece funes de recuperao e
atualizao de dados, alm de criao, manuteno da estrutura de dados e controle
do ambiente do BD.
uma linguagem essencialmente interativa, porm pode ser embutida em outras
linguagens procedurais (que neste texto chamamos linguagem hospedeira) para ser
utilizada em programas batch ou on-line, que acessam o BD. Suas principais
caractersticas so:
_ Padro ANSI (American National Standard Institute). O ANSI estabeleceu-se
como um padro de fato de SQL para os fornecedores de produtos relacionais,
que atualmente lideram o mercado. Este aspecto facilita a interoperabilidade entre
BDs de diferentes fornecedores.
_ Padro de acesso. Todo o acesso ao BD Relacional feito em SQL, mesmo que
embutida em outra linguagem.
_ Interpretada (no compilada), caracteristica que prov maior grau de
independncia de dados aos BD relacionais, ou seja, faz com que a aplicao
reconhea alteraes nas estruturas de dados, sem necessidade de ser recompilada.
19
_ DDL, DML e DCL. O SQL possui esses trs grupos de comandos, montados
conforme a funo do comando no banco de dados. Esta caracterstica tambm
relaciona-se independncia de dados, uma vez que pode-se descrever os dados
(DCL) de forma independente das aplicaes (DML).
_ DDL (Data Definition Languge). Linguagem para definio de dados, que
compreende os seguintes comandos SQL:
_ CREATE - Utilizado para criar objetos (tabela, ndice, view, sequence, etc.)
no BD.
Exemplo: Criao da tabela funcionrio com os atributos matricula e nome.
CREATE TABLE funcionrio
(matricula number(05)
nome
char (30);
_ ALTER - Utilizado para alterar objetos do BD (adicionar colunas, modificar
tipo de dados, adcionar integridade, etc.).
Exemplo: Adio da integridade de chave primria tabela funcionrio.
ALTER TABLE funcionrio
ADD CONSTRAINT PRIMARY KEY (matricula);
_ DROP - Exclui objetos do BD.
Exemplo: Excluso da tabela funcionrio do BD.
DROP TABLE funcionrio
20
21
2. LINGUAGEM AUTOCONTIDA
Esta modalidade de linguagem a extenso procedural do SQL, que nos
SGBD-R utilizada para desenvolvimento de programas que ficam
residentes no banco de dados (TRIGGERS, STORED PROCEDURES,
FUNCES). Acrescenta ao SQL interativo estruturas de deciso (IFTHEN-ELSE) e repetio (LOOP, FOR e/ou DO WHILE). uma
linguagem proprietria (Cada SGBD possui a sua). Os programas
escritos nessa linguagem geralmente assemelham-se a programas
PASCAL.
3. LINGUAGEM HOSPEDEIRA
So linguagens procedurais de 3 gerao (notadamente o COBOL)
utilizadas como hospedeiras (host) de comandos prprios de banco de
dados. Linguagens hospedeiras foram muito utilizadas nos SGBD dos
modelos Hierrquicos e Rede, dado que nestas geraes de SGBD ainda
no existia o SQL com toda a sua simplicidade e potencialidade. Por
outro lado, imperava uma forte cultura nas linguagens COBOL, PL/1,
FORTRAN, etc.... que foi aproveitada pelos fabricantes de SGBD,
facilitando a introduo dessa nova cultura.
Os SGBD que utilizam linguagens hospedeiras. possuem um software
PR-COMPILADOR, que inserido na rotina de compilao do fonte do
programa hospedeiro, para converter os comandos de BD (estranhos
linguagem HOST) em linguagem objeto ou chamadas (CALL) de rotinas
intelegveis pelo compilador a linguagem.
Esquema de compliao com linguagem hospedeira:
PROGRAMA
FONTE
HOSPEDEIRO
PR_
COMPILADOR
PROGRAMA
PR_
COMPILADO
PROCESSO
NORMAL DE
COMPILAO
22
4. LINGUAGEM VISUAL
As linguagens visuais atualmente dominam o ambiente de
desenvolvimento para a arquitetura Cliente/Servidor. Nessa arquitetura,
so utilizadas para desenvolver a interface Cliente da aplicao.
Recebem a denominao de FRONT-END. Geram aplicaes para
ambiente grfico, padro WINDOWS. So orientadas a eventos e em sua
maioria, baseiam-se na tecnologia de Orientao a Objetos,
apresentando recursos como classe, objeto, herana, polimorfismo, etc..
Utilizam o SQL como linguagem para acesso aos bancos de dados
relacionais, atravs de APIs (Aplication Program Interface) nativas ou
genricas (ex: ODBC e ODAPI). Como exemplos de linguagem dessa
categoria podemos citar: DELPHI, VISUAL BASIC, POWER BUILDER,
CENTURA, etc..
Nossa maior preocupao neste texto chamar a ateno do leitor para
o fato de que essas linguagens so FRONT_ENDs de SGBD relacionais.
Apesar de serem orientadas a objeto, no devem ser confundidas com os
BD relacionais ou Orientados a Objeto, este ltimo, ainda uma
tecnologia que ocupa um espao restrito no mercado.
Esquema de acesso a BD relacional com linguagem visual:
SQL
PRGRAMA EM
LIGUAGEM
VISUAL
SQL PARO
API
DADOS
BD-R
DADOS
23
CONCLUSO
O banco de dados constitui a parte esttica da aplicao. A dinmica de
um sistema dada pelas linguagens que armazenam, recuperam e
manipulam as informaes contidas no BD e existem diversas maneiras
para se executar essas tarefas.
A evoluo das linguagens aponta para utilizao de produtos no
proprietrios e que privilegiem a reutilizao do cdigo, alm dos dados
que j so amplamente reutilizados atravs da tecnologia relacional. Isso
porque, o cdigo contm a inteligncia das aplicaes (regras do
negcio) que, em ltima anlise, refletem o conhecimento da empresa a
respeito do seu negcio. A reutilizao do cdigo pode trazer, como
benefcios imediatos, a reduo no tempo e custo de desenvolvimento e
manuteno de novas aplicaes, a padronizao de processos e a
melhoria constante na qualidades dos sistemas gerados.
A medida que surgem novas tecnologias para acesso s informaes do
BD, muitos sistemas antigos permanecem como legados, porque so
sistemas crticos, de difcil substituio, ou porque so satisfatrios e, em
anlise de custo / benefcio, tem o seu redesenvolvimento
desaconselhado. Alm disso, as necessidades de acesso s informaes
esto se diversificando, as empresas esto abrindo suas fronteiras e
oferecendo acesso direto do cliente a suas bases de dados. Como
resultado, comum observarmos ambientes de sistemas heterogneos,
desenvolvidos com tecnologias diferentes, em termos de linguagens e
banco de dados, onde observamos COBOL convivendo com DELPHI,
VB, HTM, JAVA, etc..
Nesse contexto, tambm surge como uma tendncia o desenvolvimento
de aplicaes em trs ou N camadas. O foco principal dessa tecnologia
maximizar a reutilizao de cdigo, atravs do desenvolvimento das
regras do negcio em componentes reutilizveis, que obedeam a
padres de mercado (CORBA, COM/DCOM, EJB) e que funcionem como
linguagens universais, podendo ser acionados a partir de interfaces
clientes desenvolvidas em diferentes linguagens.
Em sntese, o bancos de dados relacionais tornaram-se grandes
repositrios de dados, constituindo uma tecnologia madura que tem
atendido satisfatoriamente o mercado. Do lado das aplicaes, observase uma tendncia a diversificao de tecnologias, sem descuidar dos
benefcios que podem trazer a reutilizao das regras de negcio.
24
CAPTULO VI
A interseo
CLULA.
linha
coluna
de
uma
tabela
demomina-se
ATRIBUTO
RELAO: FUNCIONRIO
MATR
NOME
CARGO DT_NASC
01
MIRIAM
01
25/09/62
02
JUVENAL
03
18/04/70
02
10/02/68
03
GABRIELA
CLULA
TUPLA
VALOR DE
ATRIBUTO
2. REGRAS DE INTEGRIDADE
26
27
28
b. INTEGRIDADE PROCEDURAL
A Integridade Procedural apresenta-se sob a forma de um programa, cuja
lgica escrita pelo programador, na linguagem procedural nativa do
SGBD. Esse tipo de integridade supre as necessidades no cobertas
pelos parmetros de integridade declarativa.
No ORACLE a integridade procedural pode ser criada atravs de
TRIGGERS, STORED PROCEDURES ou FUNES DO USURIO.
Estes elementos so escritos em PL/SQL que a extenso procedural do
SQL desse SGBD.
Um TRIGGER (gatilho) criado para disparar, automaticamente, sempre
que o SGBD detectar a ocorrncia de um ou mais comandos de acesso a
tabela.
Exemplo:
CREATE TRIGGER atualiza_saldo
AFTER INSERT ON TABLE lanamentos
BEGIN
UPDATE Tab_saldo
SET saldo_atual=saldo_atual + valor_lanamento;
END;
No exemplo, sempre que um registro for includo na tabela lanamentos
o trigger dispara e atualiza o saldo_atual na tabela tab_saldo.
Nem todos os SGBD possuem integridade procedural. Esse recurso
mais frequente nos SGBD de maior porte como ORACLE, DB/2,
INFORMIX, SQL SERVER, etc..
29
c. INTEGRIDADE REFERENCIAL
A Integridade Referencial o mecanismo dos SGBD-R que, no processo de
atualizao do BD, mantm o sincronismo entre duas tabelas relacionadas, em
relao aos valores da chave estrangeira e da respectiva chave primria.
TABELA PAI
FUNCIONRIO
MATRICULA- PK
1
TABELA FILHO
DEPENDENTE
MATRICULA- FK
30
Exemplo:
CREATE TABLE funcionrio
(matricula number(05) PRIMARY KEY
nome
char (30)
sexo
char (01));
CREATE TABLE dependente
(id_dependente
number(05) PRIMARY KEY
nome_dependente
char (30)
data nascimento
date
matricula_funcionrio number(05) FOREIGN KEY
REFERENCES funcionrio.matricula
ON DELETE CASCADE);
O exemplo apresenta a integridade referencial, declarada na tabela
dependente, indicando que o campo matricula_funcionrio dessa tabela,
refere-se ao campo matricula da tabela funcionrio. Com essa declarao o
SGBD garante que a incluso de um DEPENDENTE, somente ser valida
caso exista o FUNCIONRIO correspondente.
Por outro lado, a clusula ON DELETE CASCADE indica que sempre que
for excludo um registro da tabela funcionrio, o SGBD deve excluir
automticamente os registros da tabela dependente a ele relacionados.
31
3. OPERADORES RELACIONAIS
Os Operadores Relacionais constituem mecanismos do SGBD-R para
recuperao de informaes no Banco de Dados. Inserem-se no contexto
da Algebra Relacional que possui sete operadores, sendo trs relacionais
(PROJEO, SELEO e JUNO) e quatro operadores tradicionais de
conjunto (UNIO, INTERSEO, DIFERENA e PRODUTO
CARTEZIANO).
Para que um SGBD seja considerado relacional basta que possua
apenas os operadores relacionais. Os operadores de conjunto podem ser
simulados a partir dos primeiros.
No SQL/ANSI, os sete operadores so implementados por variaes nas
clusulas do comando SELECT.
No prximo captulo trataremos dos operadores relacionais com
exemplos da aplicao de cada um deles.
32
4. PROPRIEDADES RELACIONAIS
As Propriedades relacionais so consideraes bvias, porm
elucidativas a respeito do funcionamento e da filosofia que norteia o
desenvolvimento dos SGBD-R. Essas propriedades derivam da teoria de
conjuntos e algumas se sobrepem ou confirmam as regras de
integridade.
a. Uma tabela no deve possuir duas linhas iguais. Isto se explica
pelo fato de que as linhas so componentes de um conjunto (a tabela) e
se faz necessrio poder distinguir os elementos de um conjunto. Assim
sendo, pelo menos um atributo componente da linha deve possuir um
valor que a diferencie das demais. Nos modelos relacionais o diferencial
mnimo entre duas linhas de uma tabela a chave primria.
b. Toda a tabela de um BD relacional deve possuir chave primria.
Essa propriedade decorre da anterior. Atualmente, todos os SGBD-R
disponveis no mercado mantm automaticamente a unicidade da chave
primria. Por outro lado, alguns produtos relacionais permitem a criao
de tabelas sem PK, deixando a critrio do analista a sua declarao ou
no, o que contraria esta propriedade mas atribui maior flexibilidade ao
produto.
c. Cada tabela deve possuir um nome prprio, distinto das demais
tabelas do mesmo banco de dados. Essa propriedade tambm deriva
da teoria de conjuntos, j que as tabelas so componentes do conjunto
BD. Ressalta-se que em banco de dados distintos duas tabelas podem
ter o mesmo nome.
d. Cada atributo de uma mesma tabela deve possuir um nome
diferente. Por outro lado, o mesmo atributo pode aparecer em outra
tabela com o mesmo nome ou com nome diferente (sinnimo).
e. Os SGBD-R somente operam com estruturas de dados de formato
tabular, normalizadas pelo menos em !FN (1 forma normal), onde a
principal caracterstica a atmicidade, ou seja, ocorrncia de apenas
um valor de atributo para cada clula da tabela. Esse nvel de
normalizao exigido para tornar possvel a aplicao da lgebra
Relacional para recuperar informaes contidas nas tabelas do BD.
Nveis mais altos de normalizao (2FN a $FN) so teis para diminuir a
redundncia, melhorar a consistncia e integridade dos dados.
33
procedimentos
j. Maior Produtividade.
l. Padronizao dos produtos facilitando a difuso e preservao da
cultura relacional.
34
CAPTULO VII
LGEBRA RELACIONAL
A lgebra Relacional uma teoria matemtica baseada nas relaes entre conjuntos.
Da sua aplicao ao Modelo Relacional de Banco de Dados, resultou a possibilidade
de armazenar estruturas de dados complexas (como uma ficha cadastro de clientes),
de maneira fragmentada, no formato tabular dos SGBR-R e recompor a informao
original, a partir da formulao de relaes entre as tabelas do banco de dados. Essas
relaes so providas pelos operadores da lgebra relacional, que se encontram
disponveis nos recursos da linguagem SQL (Structured Query Language).
Os operadores da lgebra relacional classificam-se em dois grupos:
_ OPERADORES TRADICIONAIS DE CONJUNTO
. UNIO
. INTERSEO
. DIFERENA
. PRODUTO CARTESIANO
_ OPERADORES RELACIONAIS
. PROJEO
. SELEO
. JUNO
Para classificar-se um SGBD como Relacional, fundamental que ele possua, entre
outras caractersticas, no mnimo os trs operadores relacionais, haja vista que, nem
todos os SGBD-R possuem os sete operadores. Os Operadores Tradicionais so mais
encontrados em SGBD mais robustos, como ORACLE, SYBASE e DB/2.
35
1. ESTUDO DE CASO
CLIENTE
1
N
CONTA
36
NOME
RITA
MARCELO
CARLA
VTOR
RAQUEL
BRUNA
SNIA
GETLIO
ENDEREO TIPO
SQN
V
GUAR
C
GAMA
E
SQS
C
SQS
E
GUAR
V
CRUZEIRO
C
SQN
C
CONTA_CORRENTE
NUMAGENCIA CONT ID-CLI
A
106
001
004
106
002
003
106
040
003
167
001
005
167
005
007
167
006
008
202
001
001
202
002
003
202
003
002
202
004
004
SIT
0
2
0
0
0
2
0
1
0
2
C = COMUM
E= ESPECIAL
V= VIP
SALDO
20.000,00
250,00
500,00
50,00
10,00
20,00
150,00
0
30,00
50.000,00
0 = ATIVA
1 = INATIVA
2 = BLOQUEADA
37
2. GENERALIDADES
a. Nos SGBD que utilizam o SQL padro ANSI (Americam National
Standard Institute),
os operadores da lgebra Relacional so
implementados por variaes de parmetros na sintaxe do comando
SELECT, que um comando de leitura da base de dados.
b. A sintaxe utilizada para os comandos SELECT, que aparecero nos
exemplos, foi extrada dos manuais do SGBD ORACLE, que segue o
padro SQL ANSI. A estrutura bsica do comando SELECT :
SELECT colunas.... ou * (que significa todas as colunas)
FROM tabelas .....
WHERE condio........
38
3. OPERADORES DE CONJUNTO
a. UNIO
A unio de duas tabelas A e B, resulta numa tabela virtual C,
contendo o total de linhas das tabelas envolvidas na operao.
No sistema exemplo, imagine que cada agncia mantenha os dados
cadastrais de CLIENTE em servidores locais de sua rede, e que esses
servidores esto ligados em um servidor corporativo. Para se obter no
servidor corporativo uma viso nica, que contenha os dados de todos
os clientes do Banco, pode-se utilizar o operador UNION da seguinte
maneira:
SELECT * FROM cliente@agencia1;
UNION
SELECT * FROM cliente@agencia2;
.
.
UNION
SELECT * FROM cliente@agenciaN;
O resultado seria idntico ao que temos na amostragem da tabela
CLIENTE do sistema exemplo:
ID-CLI
001
002
003
004
005
006
007
008
NOME
RITA
MARCELO
CARLA
VTOR
RAQUEL
BRUNA
SNIA
GETLIO
ENDEREO
SQN
GUAR
GAMA
SQS
SQS
GUAR
CRUZEIRO
SQN
TIPO
V
C
E
C
E
V
C
C
39
b. INTERSEO
A Interseo entre duas tabelas A e B, resulta numa tabela virtual
C, contendo as linhas comus s duas tabelas envolvidas na
operao.
No sistema exemplo, considere a necessidade de se listar o
IDCLI"
de
clientes
que
possuam,
simultaneamente,
CONTAS_CORRENTES ativas e bloqueadas. Para atender a esse
requerimento, pode-se utilizar o operador INTERSECT da seguinte
maneira:
SELECT id_cli
FROM conta_corrente
WHERE sit = 0
INTERSECT
SELECT id_cli
FROM conta_corrente
WHERE sit = 2;
Considerando a amostragem da tabela CONTA_CORRENTE do
sistema exemplo, o resultado do SQL anterior seria:
ID-CLI
004
003
40
c. DIFERENA
A Diferena entre duas tabelas A e B (na ordem A - B), resulta
numa tabela virtual C, contendo as linhas pertencentes
exclusivamente tabela A e no a B.
No sistema exemplo, considere a necessidade de se listar o ID-CLI"
de clientes que no possuam contas_correntes INATIVAS ou
BLOQUEADAS, somente ATIVAS. Para atender a esse requerimento,
pode-se utilizar o operador MINUS da seguinte maneira:
SELECT id_cli
FROM conta_corrente
WHERE sit = 0
MINUS
SELECT id_cli
FROM conta_corrente
WHERE sit = 2 OR sit = 1;
Considerando a amostragem da tabela CONTA_CORRENTE do
sistema exemplo, o resultado do SQL anterior seria:
ID-CLI
005
007
001
002
41
d. PRODUTO CARTESIANO
A Produto Cartesiano entre duas tabelas A x B resulta numa tabela
virtual C, contendo todas as linhas da tabela A combinadas com
todas as linhas da tabela B, atravs da concatenao de suas linhas.
Essa operao tem uma certa semelhana com a JUNO, pois
combina dados de mais de uma tabela, exceto que no estabelece
nenhum critrio (join condition) para isso.
Geralmente o Produto utilizado para construo de massas de teste
ou quando o tcnico esquece de colocar o join condition em um
SELECT que envolva duas ou mais tabelas. Nesse caso, pode resultar
numa tabela enorme. Por exemplo, o produto entre uma tabela A com
50 linhas e uma tabela B com 100 linhas resulta numa tabela C com
5.000 linhas.
O SELECT a seguir efetua um produto entre as tabelas CLIENTE e
CONTA_CORRENTE:
SELECT nome, saldo
FROM cliente, conta_corrente;
42
43
3. OPERADORES RELACIONAIS
e. PROJEO
A Projeo consiste em obter um subconjunto de colunas de
uma ou mais tabelas_base, como resultado de uma consulta
parcial aos dados disponveis no banco de dados.
Geralmente utilizada em conjunto com as demais operaes
para produzir resultados de consultas, ou ainda, para criar
vises (VIEWs), que restringem o acesso do usurio a determinados
atributos da base de dados.
No sistema exemplo, uma consulta contendo nome e endereo dos
clientes, corresponde a uma PROJEO elaborada a partir da tabelabase CLIENTE, atravs da seguinte sentena SQL:
SELECT nome, endereo
FROM cliente;
Considerando a amostragem da tabela CLIENTE do sistema exemplo, o
resultado do SQL anterior seria:
NOME
RITA
MARCELO
CARLA
VITOR
RAQUEL
BRUNO
SNIA
GETLIO
ENDEREO
SQN
GUAR
GAMA
SQS
SQS
GUAR
CRUZEIRO
SQN
44
f. SELEO
Tambm conhecida como Restrio, essa operao tem por finalidade
selecionar um subconjunto de linhas de uma ou mais tabelas_base,
de acordo com critrios (where criteria), que envolvem atributos e
valores para filtrar os dados desejados, gerando uma consulta parcial
aos dados disponveis no banco de dados.
Geralmente utilizada em conjunto com as demais operaes
para produzir resultados de consultas, ou ainda, para criar
vises (VIEWs), que restringem o acesso do usurio a determinadas
linhas de tabelas na base de dados.
Os Critrios de Seleo so traduzidos na sintaxe do comando
SELECT, pela combinao de operadores lgicos (AND, OR, NOT),
aritimticos (=, <>, >, <, >= e <=) e operadores SQL (BETWEEM, LIKE,
IN, NULL), representados na clusula WHERE.
No sistema exemplo, uma consulta contendo somente os clientes VIP,
corresponde a uma SELEO elaborada a partir da tabela-base
CLIENTE, atravs da seguinte sentena SQL.
SELECT *
FROM cliente
WHERE tipo = V;
Considerando a amostragem da tabela CLIENTE do sistema exemplo, o
resultado do SQL anterior seria:
ID-CLI NOME
ENDEREO
001 RITA
SQN
006 BRUNA GUAR
TIPO
V
V
45
g. JUNO
Essa operao relacional utilizada para compor informaes
complexas a partir de tabelas relacionadas. A juno de duas tabelas
A e B concatena as linhas das tabelas envolvidas, resultando numa
tabela virtual C.
Para efetuar a JUNO de duas tabelas essencial que elas estejam
logicamente relacionadas, conforme prev o modelo relacional, ou
seja, o grau do relacionamento deve ser no mximo 1 : N, sendo que
a chave primria da entidade 1 deve figurar como chave estrangeira
da entidade N. Alm disso, os valores dessas chaves devem ser
coincidentes, para as linhas que se deseja concatenar.
A juno notada na sintaxe do SQL, pela comparao de atributos
chave primria / chave estrangeira, atravs da clusula WHERE do
comando SELECT, o que denominamos condio de juno (join
condition). Quando o tcnico esquece de colocar o join condition em
um SELECT que envolva duas ou mais tabelas o SGBD geralmente
efetua o PRODUTO.
46
SALDO
150,00
30,00
500,00
0,00
20.000,00
50.000,00
50,00
10,00
20,00
47
INTRODUO
A modelagem de um sistema de processamento de dados pode ser feita a partir de dois
enfoques:
1) Enfoque dos DADOS que so processados;
2) Enfoque das FUNES que tratam esses dados.
Esses dois enfoques so complementares e, usados conjuntamente, fornecem ao analista os
dois principais ngulos do problema em anlise: DADOS E FUNES. O Diagrama de
fluxo de dados (DFD) e o Diagrama Hierrquico Funcional (DHF) so exemplos de
ferramentas com enfoque FUNCIONAL e o Modelo de Entidade e Relacionamentos (MER)
o diagrama utilizado para prover a viso dos DADOS.
Os modelos Funcional e de Dados, ao integrarem um projeto de sistemas, constituem-se em
importantes instrumentos para, entre outras coisas:
_ Apresentar, atravs de diagramas, uma sntese do problema, destacando seus aspectos
mais relevantes;
_ Oferecer uma viso contextual do sistema em anlise.
_ Facilitar a comunicao entre os integrantes da equipe de desenvolvimento (gerentes,
analistas, usurios, etc);
_ Motivar a participao do usurio no projeto;
_ Documentar o processo de anlise, para que o trabalho no sofra soluo de continuidade;
Apesar dos dois enfoques (Funcional e de Dados) do processo de anlise de sistemas, este
texto trata, especificamente, da MODELAGEM DE DADOS, com o emprego do MODELO
DE ENTIDADES E RELACIONAMENTOS e da tcnica de NORMALIZAO, adotando
a METODOLOGIA DE PROJETO DESCENDENTE (Setzer, Valdemar) como referencial
metodolgico para o proceso de modelagem.
48
CAPTULO VIII
NVEIS DE ABSTRAO
Ao projetar um sistema de informaes para ser implantado no computador, o projetista
elabora um modelo da realidade, visando adequa-la s limitaes do ambiente do
computador. Devido complexidade do mundo real e seguindo a linha de abordagem TOP
DOWN, o processo de modelagem atravessa diversas fases, s quais Setzer1 denominou
NVEIS DE ABSTRAO, em sua Metodologia de Projeto Descendente, que usaremos
como referncia neste texto e que encontra esquematizada na figura a seguir:
MUNDO REAL
MODELO
DESCRITIVO
MODELO
CONCEITUAL
MER ou DFD
NORMALIZAO
MODELO
OPERACIONAL
MODELO
INTERNO
MER Normalizado
49
1. MUNDO REAL
O MUNDO REAL envolve todos os objetos (normas, pessoas, eventos,
fatos, organismos sociais, etc..), que compem o CENRIO, do qual, o
analista dever extrair a parte a ser representada no computador, que
pode ser uma empresa, um departamento, setor, processo de negcio,
etc..
2. MODELO DESCRITIVO
Este modelo representado por um texto contendo a descrio do
mundo real (ambiente alvo do estudo), explicitando as caractersticas do
problema a ser tratado atravs de regras do negcio, elenco de
necessidades, a anlise de requisitos, questionrios, formulrios,
relatrios, informaes sobre volume, etc.. Constitui o primeiro nvel da
modelagem, onde o analista estabelece as fronteiras do sistema.
Neste nvel de abstrao, o modelador identifica a rea alvo da
modelagem, descreve o problema a ser solucionado e identifica os
componentes sobre os quais se deseja armazenar e recuperar
informaes. Deve-se relatar o maior o nvel de detalhes possvel a
respeito do problema, cuidando-se para no perder a objetividade.
O maior problema do modelo descritivo a falta de padro. Existem
vrias maneiras de se descrever o mesmo problema, as palavras
possuem significados variados e podem causar dupla interpretao, ou
seja, ambigidade. Para amenizar esse problema, deve-se evitar
perodos longos, procurar trabalhar com tpicos, frases curtas e utilizar
palavras precisas e adequadas ao vocabulrio profissional do usurio.
50
3. MODELO CONCEITUAL
um modelo baseado em smbolos PADRONIZADOS, que expressa,
graficamente, os CONCEITOS do MUNDO REAL delineados no Modelo
Descritivo. A utilizao de uma simbologia padronizada torna a linguagem
mais precisa, o que facilita a comunicao entre os integrantes da equipe
de desenvolvimento, especialmente, entre analistas e usurios. Portanto,
esse modelo o mais adequado para o registro e validao dos
conceitos do mundo real, nas fases do projeto que envolvem o usurio.
O produto dessa fase da anlise deve ser um MODELO DE ENTIDADES
E RELACIONAMENTOS (MER) enfocando a viso dos DADOS com alto
nvel de abstrao, ou seja, voltado para o MUNDO REAL e sem
preocupar-se com detalhes do ambiente operacional, como, por exemplo,
o software e hardware no qual o sistema ser implantado.
Neste nvel da modelagem, deve-se ressaltar os aspectos mais
relevantes do problema, ou seja, representa-se principais entidades,
relacionamentos, estruturas de dados e integrao com outros sistemas.
Os detalhes do banco de dados (chaves primrias, estrangeiras,
integridades, etc.) devem ser deixados para a fase seguinte, de
construo do modelo operacional.
4. MODELO OPERACIONAL
O modelo Operacional decorre da anlise do modelo Conceitual, visando
torna-lo adequado ao ambiente operacional, no qual o sistema ser
implantado. No caso especfico deste texto, essa anlise visa adaptar o
modelo Conceitual s limitaes de um Sistema Gerenciador de Banco
de Dados Relacional (SGBD-R).
Obter o projeto das tabelas do banco de dados o principal objetivo
dessa fase e para alcana-lo, o analista deve investigar cada entidade do
Modelo Conceitual, decompor estruturas em elementos de dados, utilizar
a NORMALIZAO e o conhecimento sobre o MODELO RELACIONAL
como balizadores de suas aes.
Nesta fase, o dicionrio de dados do Modelo Conceitual enriquecido
com a escolha das chaves primrias, definio de chaves estrangeiras,
ndices, integridades, e outros detalhes essenciais para a criao do
banco de dados.
51
5. MODELO INTERNO
Corresponde ao sistema implementado no computador, ou seja,
representado pelo conjunto de linhas de cdigo geradas na linguagem do
SGBD, que no caso dos modelos Relacionais o SQL (structured query
language).
Do ponto de vista terico, o modelo Operacional seria o ideal para ser
implantado. Porm, a prtica revela que esse modelo ainda pode sofrer
modificaes antes que o BD seja criado. Os principais fatores que
determinam essas modificaes so a MELHORIA DE PERFORMANCE
e a DISTRIBUIO DE DADOS.
Visando aumentar a performance, podem ser criadas redundncias, com
a desnormalizao e criao de tabelas totalizadoras para gerao de
informaes gerenciais. Nesses casos, deve-se ter especial cuidado com
a consistncia do BD no processo de atualizao dos dados. Alm disso,
deve-se considerar que a redundncia de dados aumenta os custos com
processamento e armazenamento de dados, que devem ser
compensados pelo benefcio esperado.
Com relao distribuio de dados comum a criao de cpias de
tabelas (distribuio por replicao) ou a fragmentao de uma entidade
do modelo operacional em vrias tabelas no redundantes (distribuio
por particionamento). Em ambos os casos, as partes resultantes so
distribudas em diversos ns da rede e a manuteno dessas partes ser
facilitada caso o SGBD possua algum mecanismo de gerenciamento
automtico de distribuio de dados.
52
CAPITULO IX
MODELO DE ENTIDADES E RELACIONAMENTOS
O MODELO DE ENTIDADE E RELACIONAMENTOS (MER), foi proposto
originalmente por PETER CHEN em 1976. Seu objetivo, ao publicar esse trabalho,
era consagrar um mtodo eficiente para representar os dados e ressaltar a diferena
entre as estruturas suportadas pelos SGBD HIERRQUICOS, REDE e
RELACIONAL. Atualmente o MER tem sido utilizado para representar a viso dos
dados no projeto de banco de dados.
A principal vantagem do MER a simplicidade. O Modelo de Entidades e
Relacionamentos possui apenas trs componentes bsicos: ENTIDADE, ATRIBUTO
e RELACIONAMENTO (e seus respectivos smbolos para diagramao).
A proposta original de CHEN foi enriquecida por trabalhos de diversos autores, que
procuraram atribuir maior capacidade semntica ao MER, o que gerou as camadas
EXTENSES. As extenses ao MER possibilitam representar o mundo real com
maior riqueza de detalhes. Por outro lado, elas provocaram a diversificao dos
padres de notao e terminologia, contrastando com a proposta original de
simplicidade e acarretando problemas para a disseminao da cultura.
Este captulo procura exprimir uma viso objetiva do Modelo de Entidades, para
instrumentalizar o analista frente necessidade de representar a viso dos dados de
um projeto de sistema.
53
1. NOTAO E TERMINOLOGIA
ENTIDADE a representao genrica de um COMPONENTE DO
MUNDO REAL, SOBRE O QUAL DESEJAMOS ARMAZENAR
INFORMAES (ATRIBUTOS).
As ENTIDADES podem representar coisas tangveis (pessoal, material,
patrimnio, etc.) ou intangveis (eventos, conceitos, planos, etc.).
Para NOTAR graficamente uma entidade emprega-se um RETNGULO
identificado por um substantivo (simples ou composto).
Exemplo:
CLIENTE
CONTA_CORRENTE
54
55
3. ATRIBUTO
Os atributos so os dados que devemos armazenar a respeito da
entidade, para atender s necessidades de informaes demandadas
pelo usurio. Constituem tudo o que se pode relacionar como prprio
(propriedade) da entidade e que, de alguma forma, estejam contidos no
escopo do problema em anlise. Os atributos qualificam e distinguem as
entidades no MER.
Em relao ao banco de dados, os atributos representam as colunas, que
formam a estrutura de dados das tabelas. As colunas armazenam um
valor para cada linha. Esse valor armazenado designado por VALOR
DE ATRIBUTO.
O conjunto de valores de atributos, distintos por um identificador nico
(chave primria) denomina-se OCORRNCIA. Esse conceito anlogo
ao de linha (tupla) em tabela relacional e de registro em arquivo
convencional.
Pode-se exprimir os atributos no MER, conforme mostrado na figura
abaixo:
CONTA_CORRENTE
CLIENTE
0 endereo
0 nome
0 identificador
56
4. DICIONRIO DE DADOS
Os ATRIBUTOS so usualmente descritos sob a forma de estruturas e
elementos no Dicionrio de Dados, onde deve constar uma relao de
atributos para cada entidade do MER. As notaes mais utilizadas para
criao de dicionrios de dados so as definidas por GANE2 e
YOURDON3.
Exemplo da notao de Gane para descrio de estruturas de dados:
CLIENTE
IDENTIFICADOR
NOME
ENDEREO
CONTA_CORRENTE
NUMERO_CONTA
TIPO-CONTA (1-poupana, 2-c/c)
AGNCIA
CDIGO_AGNCIA
ENDEREO_AGNCIA
LANAMENTOS*
NUMERO_LANAMENTO
DATA
TIPO (deb, cre)
VALOR
2
3
57
ENTIDADE
DO MER
FUNCIONRIO
TABELA
DO BD
ENTIDADE FUNCIONRIO
MATRIC
01
02
03
NOME
MIRIAM
JUCA
JOO
CARGO
01
03
02
DT-NASC
25/09/62
18/04/70
10/02/68
ATRIBUTOS
OCORRNCIA
VALOR DE
ATRIBUTO
CLULA
58
5. RELACIONAMENTO
O relacionamento representa a relao existente entre entidades integrantes de um
MER. notado por uma LINHA ligando as ENTIDADES envolvidas e possuem
NOME e CARDINALIDADE. Veja a figura a seguir.
RELACIONAMENTO
CLIENTE
1 MOVIMENTA
CONTA_CORRENTE
NOME DO RELACIONAMENTO
CARDINALIDADE DO
RELACIONAMENTO
utiliza
um
LOSANGO
para
representar
o
Peter
Chen4
RELACIONAMENTO entre entidades, porm, a experincia demostra que
o uso dessa notao contribui para poluir o grfico e no produz
resultado prtico, exceto em casos de relacionamentos que envolvam
mais de duas entidades (relacionamento mltiplo - modelo conceitual).
CLIENTE
N
movimenta
CONTA_CORRENTE
Notao de CHEN
59
CARDINALIDAD
CLIENTE
MOVIMENT
CONTA_CORRENTE
MOVIMENTA
CONTA_CORRENTE
60
CLIENTE
MOVIMENT
CONTA_CORRENTE
CLIENTE
MOVIMENTA
CONTA_CORRENTE
Indica que:
61
7. NOME DO RELACIONAMENTO
o componente do modelo E-R que identifica o relacionamento,
justificando e esclarecendo a importncia de sua existncia para o
contexto estudado.
Exemplo:
NOME DO RELACIONAMENTO
CLIENTE
MOVIMENTA
CONTA_CORRENTE
62
8. PAPEL
O papel das entidades no relacionamento fica implcito no nome e na
cardinalidade do mesmo e pode ser inferido a partir desses
componentes. Porm, especificar o PAPEL que cada entidade
desempenha uma alternativa, que pode substituir, com maior preciso,
a colocao do nome no relacionamento, atribuindo ao MER maior
capacidade semntica.
EXEMPLO:
GERENTE
LIDER
LIDERADO
PROJETO
63
CLIENTE
TITULAR
CONTA_CORRENTE
_ Sentena-1:
UM CLIENTE titular de VRIAS CONTAS-CORRENTES.
CARDINALIDADE
_ Sentena-2:
UMA CONTA-CORRENTE tem como titular UM CLIENTE.
CARDINALIDADE 1
64
OBRIGATRIO
(bolinha aberta)
sem marcao
| (uma barra vertical)
linha do relacionamento tracejada
(bolinha fechada)
| ( uma barra vertical)
|| (duas barras verticais)
linha cheia no relacionamento
AUTOR
JAMES MARTIN
DIVERSOS
DIVERSOS
BACHMAN / GANE
Exemplo:
CLIENTE
MOVIMENT
CONTA_CORRENTE
65
66
Desvantagens do MER:
- Diversidade da notao e terminologia
- Nenhuma nfase aos processos que manipulam as informaes.
67
CAPITULO X
TIPOS ESPECIAIS DE RELACIONAMENTO
Os casos apresentados a seguir representam situaes especiais que ocorrem
esporadicamente. Geralmente os relacionamentos do MER so do tipo 1:N entre um
par de entidades.
1. AUTO-RELACIONAMENTO
O auto-relacionamento representa a relao entre linhas de uma mesma
tabela. tambm conhecido como RECURSIVIDADE.
Exemplos:
FUNCIONRIO
GERENCIA
PEA
COMPE
68
SETOR
FUNCIONRIO
CHEFIA
69
3. RELACIONAMENTO MLTIPLO
O Relacionamento Mltiplo, previsto por PETER CHEN, aquele que
relaciona mais do que duas entidades. Este tipo de relacionamento
somente ocorre em Modelos Conceituais e geralmente denota eventos.
Para implementa-lo nos SGBD-R necessrio criar uma entidade, em
procedimento anlogo ao que adotado nos casos de relacionamento
N:N.
Exemplo:
VENDEDOR
VENDE
PRODUTO
CLIENTE
70
CAPITULO XI
EXTENSES AO MER
EXTENSES AO MER so conceitos e simbologias criados por diversos
autores que escrevem sobre o Modelo de Entidades, para representar
situaes especficas, no cobertas pela proposta original de PETER
CHEN. As extenses possibilitam ao modelador tornar o modelo mais
genrico (conceitual) ou mais especfico (operacional), conforme a
necessidade. Neste captulo destacamos algumas extenses as quais
julgamos importantes para a abordagem metodolgica que adotamos
neste texto.
As extenses que abordaremos so as seguintes:
_ Generalizao (Setzer e outros) ou Supertipo (Gane)
_ Especializao (Setzer e Outros), Subtipo (Gane), particionamento ou
classificao (outros).
_ Agregao (Setzer)
71
1. GENERALIZAO
o resultado da unio de dois ou mais conjuntos de entidades afins, de
mais baixo nvel de abstrao, produzindo uma entidade mais genrica.
Portanto, a generalizao parte de entidades ESPECFICAS para criar
uma GENRICA.
O exemplo a seguir apresenta dois tipos de conta (corrente e poupana).
No Modelo Conceitual elas apresentam-se como entidades
independentes. Verificado que elas possuem atributos em comum, criouse no Modelo Operacional a entidade genrica CONTA, que contm os
atributos comuns aos dois tipos de conta, alm de um atributo TIPO
para diferenci-las. Essa soluo pode simplificar o processo de
atualizao e facilitar determinadas consultas que manipulem
informaes gerais sobre os dois tipos de conta.
Exemplo:
MODELO CONCEITUAL
MODELO OPERACIONAL
CLIENTE
CONTA_CORRENTE
CLIENTE
POUPANA
GENERALIZAO
CONTA
TIPO
ENTIDADES ESPECFICAS
CONTA_CORRENTE
POUPANA
72
2. ESPECIALIZAO
o resultado da diviso de uma entidade genrica, em subconjuntos de
entidades, que contenham atributos especficos de determinadas
categorias de entidades. Portanto, a Especializao parte de uma
entidade GENRICA para criar ESPECFICAS.
Exemplo:
MODELO OPERACIONAL
MODELO CONCEITUAL
CLIENTE
CLIENTE
CONTA
CONTA
ENTIDADE GENRICA
TIPO
ESPECIALIZAO
CONTA_CORRENTE
POUPANA
73
3. AGREGAO
Na abordagem top-down (do geral para o especfico) comum
representar-se no Modelo Conceitual apenas as entidades mais
importantes para a elucidao do problema. Assim, uma nica entidade
do Conceitual, ao ser normalizada, pode dar origem a um conjunto de
entidades e seus relacionamentos no Modelo Operacional.
Portanto, a AGREGAO um recurso do Modelo Conceitual, que
representa atravs de uma nica entidade no-normalizada, um
conjunto de entidades e relacionamentos do nvel Operacional.
A Agregao permite visualizar um modelo complexo, com muitas
entidades, de uma maneira mais genrica. Com isso, obtm-se uma
melhor viso do contexto, com destaque para as entidades e
relacionamentos mais importantes e omisso dos detalhes irrelevantes.
MODELO CONCEITUAL
MODELO OPERACIONAL
CLIENTE
CLIENTE
NOTA-FISCAL
NOTA-FISCAL
ENTIDADES
AGREGADAS
NORMALIZAO
AGREGAO
ITENS-NOTA
PRODUTO
74
COMPRA
VENDEDOR
PRODUTO
75
CAPTULO XII
NORMALIZAO
A NORMALIZAO uma tcnica de modelagem de dados, criada por E. F.
CODD, nos laboratrios de pesquisa da IBM, lanada junto com as bases do
modelo Relacional de SGBD. Essa tcnica de modelagem nos proporciona
critrios objetivos, para determinarmos quando uma relao (tabela / estrutura de
dados) apresenta problemas no tocante observncia de princpios do enfoque
relacional, tais como:
- Tabela bidimensional (valores atmicos)
- Regras de integridade
- Mnima redundncia
- Nenhuma inconsistncia
- Inexistncia de anomalias de atualizao (incluso, alterao e excluso)
O processo de NORMALIZAO proposto por CODD, deu origem a trs
FORMAS NORMAIS:
_ PRIMEIRA FORMA NORMAL - 1FN;
_ SEGUNDA FORMA NORMAL 2FN e;
_ TERCEIRA 3FN.
Outras formas normais foram propostas, por diversos autores, configurando
situaes que ocorrem mais raramente, sendo a 4FN a mais significativa.
Conforme veremos mais adiante, a 1FN visa to somente colocar as estruturas de
dados oriundas dos modelos conceituais no formato tabular adequado, que
permita que elas possam ser criadas nos SGBD-R. Nesse sentido, considera-se
que relaes em 1FN j esto NORMALIZADAS.
As demais formas normais esto dirigidas para evitar REDUNDNCIA DE
DADOS, INCONSISTNCIAS e ANOMALIAS DE ATUALIZAO.
Redundncia de dados um fato gerador de inconsistncias, j as anomalias de
atualizao criam dificuldades operacionais para a manuteno do BD. Esses
aspectos reforam a importncia de aplicao da 2FN e 3FN.
76
1. ANOMALIAS DE ATUALIZAO
So problemas presentes em estruturas de dados modeladas de forma inadequada.
TABELA FUNCIONRIO
JOO
JOS
VILMA
ANA
JUCA
ANA
.
.
.
SQS
SQS
GAMA
GUARA
SQN
SQN
.
.
.
01
01
05
02
02
02
.
.
.
GETAE
GETAE
GEPAC
GEPRO
GEPRO
GEPRO
.
.
.
2
2
1
3
3
3
.
.
.
77
2. TERMINOLOGIA
O vocabulrio de NORMALIZAO se confunde com o empregado nos
SGBD do modelo RELACIONAL. Isso ocorre por que a tcnica de
normalizao uma das bases desse modelo. Os termos abaixo so relevantes
para o entendimento das trs formas normais.
a. CLULA
Interseo (LINHA X COLUNA) de uma relao.
b. ITEM REPETITIVO (VALOR NO-ATMICO ou ATRIBUTO NOSIMPLES).
Ocorre quando uma clula possui mais do que um valor de atributo,
representado por estruturas de dados dos tipos VETOR, MATRIZ ou ITENS
DE GRUPO, que impedem a adequada aplicao das operaes relacionais,
com SQL (Structured Query Language).
c. VALOR ATMICO (ATRIBUTO SIMPLES)
Caracterizado quando uma clula possui apenas um valor de atributo. Esta a
situao adequada no modelo Relacional.
d. CHAVE PRIMRIA
CHAVE PRIMRIA, PRIMARY KEY (PK) ou simplesmente CHAVE o
atributo ou combinao de atributos que permite a IDENTIFICAO NICA
de cada tupla na relao. A PK no admite duplicata e nem valor nulo.
Ex: Se pesquisarmos uma relao de FUNCIONRIOS, de PK =
MATRICULA, utilizando a matricula como chave de acesso, deveremos obter
uma nica tupla como resultado da pesquisa.
78
e. DEPENDNCIA FUNCIONAL
a correspondncia (identificao unvoca) existente entre dois atributos de
uma mesma relao. pode ser de trs tipos: COMPLETA, PARCIAL e
TRANSITIVA
f. DEPENDNCIA FUNCIONAL COMPLETA (DFC)
Relao de identificao unvoca entre o ATRIBUTO-CHAVE e os demais
atributos da relao.
Ex: COD-CLIENTE ==> NOME-CLIENTE, ENDEREO;
COD-CLIENTE + NUM-PRESTAO ==> DT-VENCIMENTO, VALOR;
79
80
NOME-CLI
END-CLI
DT-VENDA
001
Antnio
SQS
22/08
02
03
.
.
.
Juliana
Cludia
.
.
.
SQN
SQS
.
.
.
10/09
20/07
.
.
.
ITENS-DE-VENDA
COD-PROD QUANT P-U
01
10
20
02
20
10
05
8
5
01
6
20
05
10
5
.
.
.
.
.
.
81
Observaes:
- ITENS DE GRUPO so IDENTADOS, com deslocamento para a direita dando
idia de hierarquia;
- GRUPOS REPETITIVOS so sinalizados com * e/ou grafados no PLURAL.
- Os atributos componentes da CHAVE devem receber uma das seguintes
notaes:
. sublinhados, ou;
. Um # ou um C colocados esquerda dos atributos.
A representao genrica da tabela VENDA segundo a notao de YORDON/DE
MARCO :
VENDA = NUM-NF, NOME-CLI, END-CLI, DATA-VENDA, ITENS-DE-VENDA
{COD-PROD, QUANT, P-UNIT}
Observaes:
- GRUPOS REPETITIVOS so representados entre chaves;
- O ATRIBUTO-CHAVE deve ser sublinhado.
- Para relaes com grande nmero de atributos a notao de GANE mais
eficiente;
82
4. ESQUEMA DA NORMALIZAO
RELAO
NO
NORMALIZADA
1FN
2FN
3FN
83
5. RELAES NO-NORMALIZADAS
Uma relao NO NORMALIZADA aquela que possui atributos do tipo NOSIMPLES (NO-ATMICOS).
Para a devida utilizao dos OPERADORES RELACIONAIS necessrio que a
relao no-normalizada seja transformada numa forma onde os atributos s
contenham VALORES ATMICOS, em outras palavras, preciso tornar a
estrutura de dados plana. Esse processo de planificao da relao concretizado
aps a sua transposio para a 1FN.
Considere a relao abaixo:
Relao: CONTA CORRENTE
CONTA-CORRENTE
CONTA
AGENCIA
NUMERO
NOME-CLIENTE
ENDEREO-CLIENTE
DEPENDENCIA
TIPO-AGENCIA
DESCRIO-TIPO-AGENCIA
ENDEREO-DEPENDENCIA
LANAMENTOS*
NUM-DOCUMENTO
DATA-DOCUMENTO
VALOR-LANAMENTO Observaes:
84
Observaes:
- O esquema genrico passou a contar somente com ATRIBUTOS SIMPLES.
Todos os ITENS DE GRUPO foram eliminados.
- Assim como toda a relao em 1FN, a estrutura de dados acima apresenta
redundncias e anomalias de atualizao.
- CODD estabelece um outro procedimento para normalizao (1FN), que o de
decompor a relao no-normalizada em tantas relaes quantos forem os grupos
repetitivos alm de incluir uma relao para o conjunto de colunas atmicas. No
processo que descrevemos essas relaes surgem naturalmente na derivao das
formas normais seguintes (2FN e 3FN).
85
86
87
88
89
Observaes:
- A chave da relao TIPO-AGNCIA permaneceu na relao principal como
CHAVE ESTRANGEIRA, possibilitando o relacionamento entre as duas tabelas.
- As relaes CONTA e LANAMENTO j se encontram em 3FN, porque
no contm DFT.
- Com a aplicao da 3FN, TODAS as DEPENDNCIAS FUNCIONAIS restantes
nas relaes so do tipo COMPLETAS.
90
BIBLIOGRAFIA
1. CHU, SHAO YONG
BANCO DE DADOS - ATLAS
2. KORTH, HENRY F.
SISTEMAS DE BANCO DE DADOS - MAC GRAW
3. DATE , C. J.
BANCO DE DAODS - TPICOS AVANADOS - CAMPUS
4. SETZER, VALDEMAR W.
BANCO DE DADOS
5. ACCIO FELICIANO NETO
ENGENHARIA DA INFORMAO - MAC GRAW
6. GANE, CHRIS
ANLISE ESTRUTURADA DE SISTEMAS - LTC
7. GANE, CHRIS
DESENVOLVIMENTO RPIDO DE SISTEMAS - LTC
8. YORDON, EDWARD
ANLISE ESTRUTURADA MODERNA - CAMPUS
9. CHEN, PETER
MODELO ENTIDADE x RELACIONAMENTOS
91