Sei sulla pagina 1di 88

FACULDADEDETECNOLOGIADAZONALESTE

BRUNOSELLAEUGENIO

Projetodebancodedados,apresentandoasvantagensdaimplementaode
aplicaesnobancodedados.

13dedezembrode2010

FACULDADEDETECNOLOGIADAZONALESTE
BRUNOSELLAEUGENIO

Projetodebancodedados,apresentandoasvantagensdaimplementaode
aplicaesnobancodedados.

TrabalhodeConclusodeCursoapresentado
FaculdadedeTecnologiadaZonaLeste,sob
aorientaodoProfessorMe.Leandro
ColevatiDosSantos,comorequisitoparcial
paraaobtenododiplomadeGraduaono
CursodeInformticaparaNegcios.

SoPaulo,2010

Eugenio,BrunoSella
Projetodebancodedados,apresentandoasvantagensdaimplementaodeaplicaesnobancode
dados
BrunoSellaEugenioFaculdadedeTecnologiadaZonaLeste,SoPaulo,2010

88p.

Orientador:ProfessorMe.LeandroColevatidosSantos
TrabalhodeConclusodeCursoFaculdadedeTecnologiadaZonaLeste

1. Bancodedados.2.Implementao.3.Vantagens.4.Aplicaes.

FACULDADEDETECNOLOGIADAZONALESTE

EUGENIO,BrunoSella.
Projeto de banco de dados, apresentando as vantagens da implementao de
aplicaes no banco de dados.

Monografiaapresentadanocursode
InformticaparaNegciosnaFaculdadede
TecnologiaDaZonaLestecomorequerido
paraobtenodottulodeTecnlogoem
InformticaparaGestodeNegcios.

Aprovadoem:
BancaExaminadora

Prof. Me. Leandro Colevati Dos SantosInstituio:FatecZonaLeste


Julgamento:________________________Assinatura:_________________________

Prof. Me. Ricardo Satoshi Oyakawa Instituio:FatecZonaLeste


Julgamento:________________________Assinatura:_________________________

Prof. Me. Alex Sander Resende de DeusInstituio:FatecZona


Leste
Julgamento:________________________Assinatura:_________________________

A todos que me ajudaram...

Agradecimentos

minhafamliaporincentivarmesempre.
Aosamigosqueajudaramnodesenvolvimento.
AoorientadoreprofessorMe.LeandroColevati.
AosprofessoresquemeajudaramnodesenvolvimentodemeuTCCProfClia,Prof.
JoilsoneProf.AlexSander.

Sonhosnomorrem,apenasadormecemnaalmadagente.
ChicoXavier

EUGENIO,BrunoSella.Projeto de banco de dados, apresentando as


vantagens da implementao de aplicaes no banco de dados. 88 pg.
Trabalho para concluso de curso (tecnlogo) da Faculdade de Tecnologia
da Zona Leste, So Paulo 2010.

Hoje em dia o conceito de banco de dados vem sendo amplamente utilizado


em diversos projetos inclusive para o desenvolvimento de aplicaes,
implementando a lgica do negcio, segurana como controle de acessos,
regras de negcios e outras funcionalidades no prprio banco de dados, isso
vem sendo possvel com o avano nos desenvolvedores de SGBDs (Sistemas
Gerenciadores de Banco de Dados) que vem agregando todas essas
funcionalidades ao SGBD. O objetivo Estudar e demonstrar as vantagens da
implementao da lgica de uma aplicao em um banco de dados, atravs de
pesquisa e aplicao da teoria em um projeto no SGBD Sql Server com
interface em VB. Para responder a seguinte questo: Quais so as reais
vantagens da implementao de aplicaes no banco de dados? As hipteses
levantadas so Mostrar atravs de teoria e pratica como pode ser mais
vantajoso e seguro a implementao de uma aplicao no banco de dados.
Existem duas abordagens que podem ser aplicadas no desenvolvimento de
aplicaes, a primeira, mais difundida nas empresas, estipulava que a lgica do
negcio deveria residir na aplicao, a segunda, no muito utilizada, sugere
que a mesma deveria residir no banco de dados. Porm, os profissionais no
adotaram sempre o primeiro ou o segundo ponto de vista. Como sempre,
existem situaes em que os dois pontos de vista fazem sentido. Talvez por
falta de conhecimento da funcionalidade, comum optar-se pela primeira
abordagem (a lgica deve residir na aplicao), mas s o adotaram porque at
o momento no tinham nenhuma outra escolha, ou j era a forma a qual j
estavam acostumados a utilizar. Com o estudo da primeira hiptese
demonstramos as vantagens da utilizao da tcnica de implementar a
aplicao no banco de dados.

Palavras Chave: 1 Banco de Dados, 2 Implentao, 3 vantagens, 4 Aplicaes.

EUGENIO,BrunoSella.Project database, presenting the advantages of


deploying applications in the database. 88 pg. Conclusion of course work
(technologist) of Faculdade de Tecnologia da Zona Leste, So Paulo 2010.


Abstract
Today the concept of database is being extensively used in several projects
including the development of applications, implementing the business logic,
security and access control, business rules and other features in the database
itself, this has been possible with advances in database management systems
developers (Management Systems Database) which has been adding all these
features to the DBMS. The goal is to study and demonstrate the advantages of
implementing the logic of an application in a database, through research and
apply theory in a project in DBMS SQL Server with VB interface. To answer the
question: What are the real benefits of deploying applications in the database?
The hypotheses are show through theory and practice as it may be more
advantageous and secure the implementation of an application in the database.
There are two approaches that can be applied in applications development, the
first, most widespread in companies, provided that the business logic should
reside in the application, the second, not much used, suggests that it should
reside in the database. However, professionals do not always have taken the
first or second point of view. As always, there are situations in which the two
views make sense. Perhaps for lack of knowledge of the functionality is
common to choose the first approach (logic should reside in the application), but
only adopted it because so far had no other choice, that it was the manner in
which they were accustomed to use. In the first case study demonstrated the
advantages of using the means of implementing the application in the database.

Keywords: 1 Database, 2 Implementation, 3 Advantages, 4 Applications.

Lista de Figuras

Figura1a:ProgramaoincludanaAplicao..............................................................19
Figura1b:ProgramaoincludanoBancodeDados....................................................19
Figura2a:ExemplodemodeloHierrquico...................................................................26
Figura2b:ExemplodemodelodeRede.........................................................................26
Figura2c:ExemplodeummodeloRelacional................................................................28
Figura3:EsquemageraldemodelagemusandoMER...................................................30
Figura4:Exemplosdeentidadeseseusrespectivosatributos......................................32
Figura5:Umexemplodeatributocomposto.................................................................32
Figura6a:ExemplodesmbolodarepresentaoER.....................................................34
Figura6b:exemploderelacionamento1:1....................................................................35
Figura6c:Exemploderelacionamento1:N....................................................................35
Figura6d:ExemploderelacionamentoN:N...................................................................36
Figura6e:Exemploderelacionamentoesuascardinalidades.......................................36
Figura7a:exemplodedependnciafuncionaltotal......................................................45
Figura7b:Exemploda2fn..............................................................................................47
Figura8a:exemplodeprojetofsico..............................................................................51
Figura8b:exemplodomodelolgicodedados.............................................................62
Figura9:exemplodecriaodetabelanoVisualStudio...............................................65
Figura10:exemplodecriaodechaveprimrianoVisualStudio...............................66
Figura11:exemplodecriaodechaveestrangeiranoVisualStudio...........................67
Figura12:exemplodarelaodechavesetabelasnoVisualStudio.............................68
Figura13:telaparacriaodeinterfacedentrodoVisualStudio..................................77
Figura14:telaparacriaodeinterfacedentrodoVisualStudio..................................78

Figura15:Assistentedecriaodeconexodebancodedadoscominterface...........79
Figura16:Assistentedecriaodeconexodebancodedadoscominterface...........80
Figura17:Assistentedecriaodeconexodebancodedadoscominterface...........80
Figura18:Codificaodeacessodobancodedadoscomainterface...........................82

Sumrio

1.Introduo......................................................................................................................14
2FundamentosdeBancodeDados.................................................................................24
2.1UMABREVEHISTRIADASAPLICAESDEUMBANCODEDADOS..........................24
2.1.1PrimeirasAplicaesdeBancosdeDadosUsandoSistemasHierrquicosedeRede
.............................................................................................................................................24
2.1.2ObtendoFlexibilidadedeAplicaocomoBancodeDadosRelacional..................27
2.2AmpliandoasFuncionalidadesdosBancosdeDadosparaasNovasAplicaes........29
3ModelagemdeDadosUsandooModeloEntidadeRelacionamento(MER)..................30
3.1ModelodeDadosConceitualdeAltoNveleProjetodeBaseDados.........................30
3.2ConceitosdoModeloEntidadeRelacionamento........................................................31
3.2.1EntidadeseAtributos................................................................................................31
3.3Relacionamentoentreentidades:tiposecardinalidade.............................................34
3.3.1- Tipos de relacionamento.......................................................................................34
3.3.2Cardinalidade............................................................................................................36
4Seguranaeautorizao................................................................................................38
4.1TiposdeSegurana......................................................................................................38
5NormalizaodeBancodeDados.................................................................................44
5.1PrimeiraFormaNormal(1FN).....................................................................................44
5.2SegundaFormaNormal(2FN)......................................................................................44
5.3TerceiraFormaNormal(3FN)......................................................................................48
6Vantagensdautilizaodobancodedados,eautilizaodestasvantagenspara
implementaodeaplicaes.............................................................................................49
6.1Principaisvantagens.....................................................................................................49
6.1.1Dadospodemsercompartilhados............................................................................50
6.1.2Redundnciaspodemserreduzidas.........................................................................51

6.3Inconsistnciaspodemserevitadas............................................................................52
6.1.4Suporteatransaespodeserfornecido.................................................................52
6.5Integridadespodemsermantidas...............................................................................53
6.1.6Seguranapodeserreforada..................................................................................54
6.1.7Requisitoscontraditriospodemserequilibrados...................................................55
6.1.8Padrespodemserreforados.................................................................................55
6.1.9Independnciadosdados.........................................................................................56
6.1.9.1IndependnciaFsica..............................................................................................56
6.1.9.2IndependnciaLgica............................................................................................57
6.1.10Implementaoficanobancodedados,gerandomenostrabalhodecodificao57
6.1.11Nonecessriamuitaexperinciaemimplementaodeinterfaces.................58
6.1.12Menortrfegodeinformaesnarede..................................................................58
7ESTUDODECASOBIBLIOTECA.......................................................................................59
7.1OProjeto......................................................................................................................59
7.1.1ChaveEstrangeira(ForeignKey)...............................................................................62
7.1.2ChavePrimria(PrimaryKey)...................................................................................63
7.2Implementandooprojeto............................................................................................64
7.2.1Criandotabelaserelaes........................................................................................64
7.2.1Abastecendoabasededados..................................................................................69
7.2.1.1StoredProcedures(ProcedimentosArmazenados)...............................................71
7.2.2Aplicandoregrasdenegcio.....................................................................................72
7.2.2.1Triggers(Gatilhos)..................................................................................................73
7.2.2.1.1UsoseaplicabilidadedosTriggers......................................................................74
7.3Desenvolvimentodainterface.....................................................................................76
7.4ConexodainterfacecomBancodeDados................................................................78
8Consideraesfinaiseestudosfuturos..........................................................................83

RefernciasBibliogrficas...................................................................................................86

14

1.Introduo

Hoje em dia o conceito de banco de dados vem sendo


amplamente utilizado em diversos projetos inclusive para o desenvolvimento de
aplicaes, implementando a lgica do negcio, segurana como controle de
acessos, regras de negcios e outras funcionalidades no prprio banco de
dados, isso vem sendo possvel com o avano nos desenvolvedores de SGBDs
(Sistemas Gerenciadores de Banco de Dados) que vem agregando todas
essas funcionalidades ao SGBD.


Segundo (ELMARSI e NAVATHE, 2005), um banco de dados
uma coleo de dados relacionados. Os dados so fatos que podem ser
gravados e que possuem um significado implcito. Por exemplo, considere
nomes, nmeros telefnicos e endereos de pessoas que voc conhece. Esses
dados podem ter sido escritos em uma agenda de telefones ou armazenados
em um computador, por meio de programas como o Microsoft Access ou Excel.
Essas informaes so uma coleo de dados com um significado implcito,
conseqentemente, um banco de dados.


Algumas afirmaes sobre Banco de dados:


Um banco de dados representa alguns aspectos do mundo real,
sendo chamado, s vezes, de minimundo ou de universo de discurso
(UoD). As mudanas no minimundo so refletidas em um banco de
dados.
15

Um banco de dados uma coleo lgica e coerente de dados


com algum significado inerente. Uma organizao de dados ao acaso
(randmica) no pode ser corretamente interpretada como um banco de
dados.
Um banco de dados projetado, construdo e povoado por
dados, atendendo a uma proposta especfica.


Dizendo em outra maneira, um banco de dados possui algumas fontes
das quais os dados so derivados, alguns nveis de interao com os eventos
do mundo real e um pblico efetivamente interessado em seus contedos.


Segundo (ELMARSI e NAVATHE, 2005), Um banco de dados pode ser
de qualquer tamanho e de complexidade varivel. Como exemplo, possvel
verificar um banco de dados de uma biblioteca de faculdade pequena com o
cadastro apenas de livros, alunos e emprstimos. Em contrapartida possvel
ter um banco de dados complexo como o da receita federal, que cadastra as
declaraes de contribuintes brasileiros, com diversas linhas e colunas
armazenando e processando uma vasta quantidade de dados.


De acordo com (DATE 1990), o propsito principal a ser alcanado
pelos sistemas de bancos de dados desde o seu surgimento, era o de oferecer
recursos que visam manter os dados organizacionais e torn-los disponveis
quando solicitados. Com a adoo de sistemas de banco de dados, as
empresas puderam dispor de uma ferramenta eficiente para tratamento e
disseminao de informaes, superando assim todas as limitaes impostas
pelos sistemas anteriores.
16



Segundo (ELMARSI e NAVATHE, 2005), um banco de dados pode ser
gerado e mantido manualmente ou pode ser automatizado (computadorizado).
Por exemplo, catalogo de cartes bibliotecrios um banco de dados que
oferece a possibilidade de ser criado e mantido manualmente. Um banco de
dados computadorizado pode ser criado e mantido tanto por um grupo de
aplicativos escritos especialmente para essa tarefa como um sistema
gerenciador de banco de dados. claro que, neste TCC, o objetivo abordar
os bancos de dados computadorizados.


Segundo (ELMARSI e NAVATHE, 2005), um sistema gerenciador de
banco de dados (SGBD) uma coleo de programas que permite aos
usurios criar e manter o banco de dados. O SGBD , portanto, um sistema de
software de propsito geral que facilita os processos de definio, construo
manipulao e compartilhamento de bancos de dados entre vrios usurios e
aplicaes. A definio de um banco de dados implica especificar os tipos de
dados, as estruturas e as restries para os dados a serem armazenados em
um banco de dados.


Construir o banco de dados consiste em armazenar lgica e fisicamente
dados especficos de modo que eles possam ser manipulados de modo pratico
e gil. O compartilhamento permite aos mltiplos usurios e programas
acessar, de forma concorrente, o banco de dados.


17

Outras funes importantes do SGBD so a proteo e a manuteno


do banco de dados por longos perodos. A proteo inclui proteo do sistema
contra o mau funcionamento ou falhas (crashes) no hardware ou software, e
segurana contra acessos.


Procura-se sempre fazer o melhor no desenvolvimento de aplicaes,
seja em termos de desempenho ou aparncia do sistema. Sempre se quer que
a aplicao seja a mais rpida possvel, visando satisfao do cliente. Se
uma operao pode ser feita completamente no servidor, sem a necessidade
de obter informaes do usurio enquanto a operao estiver sendo
processada, pode-se escrever a lgica do negcio no servidor de banco de
dados. Cada vez mais os sistemas gerenciadores de banco de dados trazem
inclusas Funcionalidades e facilidades, como procedimentos armazenados
utilizando recursos de linguagens externas, e deve-se aproveitar o melhor
nestes recursos.


De acordo com (PRADO, 1998), o que contribuiu de forma decisiva
para a disseminao do uso dos sistemas de bancos de dados cliente/servidor,
foram os inmeros problemas encontrados em sistemas que utilizam o modelo
de bancos de dados centralizado. Apesar dos sistemas centralizados
proporcionarem ganhos significativos de produtividade, no ofereciam solues
para os seguintes problemas encontrados:


- Aumento de trfego na rede, tendo como causa o acesso simultneo
dos usurios ao banco de dados, gerando assim uma significativa degradao
na performance do sistema;
18

- Ausncia de mecanismos que possibilitem restringir o acesso de


usurios no autorizados a determinadas informaes do banco de dados;
- O grande volume de dados que eram processados em estaes que,
em muitos casos, no possuam capacidade de processamento adequada nem
memria suficiente.


Sistemas de bancos de dados tornaram-se um componente essencial no
cotidiano da sociedade moderna (NAVATHE 2002), e conseqentemente a
maneira de acesso aos dados requer uma constante atualizao por parte do
desenvolvedor.


A programao o mtodo de criao ou alterao de um programa de
computador, que se pode entender como algo que sofra processamento. Em
banco de dados, a programao pode ser feita com as instrues SQL e a
explorao dessas tcnicas, demonstra que h muito tempo elas existem, mas
que a pouco so utilizadas.


As tcnicas utilizadas na programao em banco de dados apresentam
diferenas abordagens na sua implementao. Na Figura 1a temos uma
contextualizao de uma aplicao que utiliza as regras de negcio nas
aplicaes clientes, j na Figura 1b apresenta uma contextualizao de uma
aplicao que faz uso de tcnicas de programao residente em banco de
dados e por ele so controlados.


19


Figura 1a: Programao includa na Figura 1b: Programao includa no
Aplicao. Banco de Dados.
Fonte: (AUTOR, 2010) Fonte: (AUTOR,2010)


Conforme mostra a Figura 1a, as aplicaes clientes que utilizam
tcnicas de programao includas na aplicao necessitam de mais trfego de
rede para a execuo de rotinas na base de dados, pois as regras de negcios
(P1, U1, G1, R1) devem ser passadas ao SGBD sempre que uma instruo
necessria. Alm disso, as regras devem ser includas em cada aplicao que
as utiliza tornando o processo de manuteno mais trabalhoso e complexo. Por
outro lado, na Figura 1b, mostra-se um aplicativo cliente que tira vantagem de
um procedimento armazenado, de uma UDF, de um gatilho ou ainda, com as
restries definidas diretamente no SGBD. Isso pode ajudar a diminuir o
trfego de rede e o nmero de vezes que um banco de dados acessado, pois
h a reduo de necessidade de interao, j que as regras esto no prprio
servidor de banco de dados. Outra vantagem que o cdigo gerenciado pelo
SGBD nico e centralizado, ou seja, caso h a necessidade de alteraes
nas regras, altera-se uma nica vez, diferente das aplicaes clientes, onde
uma mudana de regra deve se alterada em todas as aplicaes.
20



Deve-se ter cuidado tambm com o acmulo de instrues utilizadas no
banco de dados. Um gatilho, por exemplo, que dispara uma atualizao em
outra tabela e esta por sua vez tambm pode executar um novo disparo
ocasionando perda de desempenho do banco de dados.


A justificativa para este Trabalho estudar e demonstrar as vantagens
deste tipo de abordagem na construo de aplicaes, no indicando qual
modo melhor e sim verificando os pontos fortes deste tipo de abordagem,
procurarei explicar os mtodos utilizados nos SGBDRs atuais, mtodos esses
que possibilitam esta abordagem de aplicao implementada com a lgica no
Banco de Dados, conceitos como de Stored Procedures (Procedimentos
Armazenados), Triggers (Gatilhos), Constraints (Restries) como Primary
Keys (Chaves Primrias) e Foreign Keys (Chaves Estrangeiras), visando
explicar e dar exemplos de como aplic-las, procurarei alm de dar exemplos
construir um pequeno projeto de uma aplicao implementada com a lgica no
Banco de Dados, neste projeto utilizarei o SGBD Sql Server com interface em
Vb.


O objetivo deste TCC apresentar atravs de pesquisa bibliogrfica e
um pequeno estudo de caso de uma biblioteca de faculdade as principais
vantagens da utilizao dos mtodos mais atuais dos SGBDs na
implementao de aplicativos com a lgica aplicada no banco, no visando se
um modo melhor ou pior e sim focando somente as vantagens da utilizao
deste tipo de tcnica que hoje ainda pouco utilizada no mercado corporativo.

21

Como objetivos especficos temos os seguintes itens:



- Apresentar as principais vantagens da utilizao da tcnica de lgica
do negcio implementada no banco de dados.
- Apresentar informaes sobre o surgimento do banco de dados e sua
evoluo.
- Mostrar a importncia da abordagem de banco de dados relacional.
- Abordar a modelagem de dados utilizando entidade relacionamento.
- Tipos de entidades e atributos.
-Abordar segurana e autorizao em banco de dados.
- Normalizao em banco de dados
- Conceitos de comandos utilizados na administrao de um banco de
dados.


Mas Quais so as reais vantagens da implementao de aplicaes no
banco de dados?


As hipteses para elucidar estas vantagens so mostrar atravs de
teoria e prtica como pode ser mais vantajoso e seguro a implementao de
uma aplicao no banco de dados.


Atravs de estudo procurarei apontar as vantagens da utilizao de
banco de dados no desenvolvimento de aplicaes, tentando apontar somente
as vantagens. No procurarei comparar os tipos de tcnicas existentes
22

apontando qual melhor e sim apontarei somente as vantagens encontradas


atravs deste estudo.


Como metodologias para este estudo sero abordados os mtodos de
pesquisa exploratria e tambm tentarei atravs de um estudo de caso elucidar
as idias expressadas no decorrer do trabalho, de modo com que possam ser
mais facilmente compreendidas.


Na questo da organizao do trabalho ele ser apresentado nos itens
subseqentes e esto distribudos da seguinte forma:


O Captulo 2 procura abordar os conceitos fundamentais sobre os
sistemas de banco de dados. Descreve os aspectos histricos e tcnicos
destas tecnologias, de modo a servir de base para compreenso a respeito da
metodologia de funcionamento dos sistemas de banco de dados.


O Captulo 3 procura abordar a modelagem de dados utilizando a
tcnica de entidade relacionamento (MER). Especificando o que so e os tipos
de entidades e atributos, e seus tipos de relacionamento.


O Captulo 4 procura abordar segurana e autorizao em banco de
dados, buscando elucidar quais so os tipos de segurana.

23


O Captulo 5 procura abordar a normalizao de banco de dados.


O Captulo 6 procurar abordar as vantagens da utilizao do banco de
dados, e a utilizao destas vantagens para implementao de aplicaes.


O Captulo 7 apresenta o estudo de caso biblioteca de faculdade, que ir
procurar utilizar todos os conceitos e servir como exemplo para elucidao de
alguns tpicos apresentados neste estudo.


O Captulo 8 apresenta a concluso do trabalho realizado, expondo as
consideraes finais do autor, sugestes e outras observaes que podero
contribuir para futuras pesquisas relacionadas o tema deste trabalho.










24

2FundamentosdeBancodeDados


2.1UMABREVEHISTRIADASAPLICAESDEUMBANCODE
DADOS


Apresentaremos agora uma breve viso histrica das aplicaes que
utilizam o SGBD e como elas forneceram a motivao para surgimento de
novos tipos de sistemas de banco de dados.



2.1.1PrimeirasAplicaesdeBancosdeDadosUsandoSistemas
HierrquicosedeRede


A maioria das aplicaes pioneiras utilizando um banco de dados
mantinha os registros das grandes organizaes, como as corporaes,
universidades, hospitais e bancos. Em muitas dessas aplicaes existia um
grande nmero de registros de estruturas semelhantes. Por exemplo, em uma
aplicao para uma universidade, as informaes similares seriam mantidas
para cada aluno, cada curso, cada registro de nota, e assim por diante. Havia
tambm muitos tipos de registros e diversos inter-relacionamentos entre eles.


Um dos principais problemas com os sistemas de banco de dados
pioneiros era a mistura entre os relacionamentos conceituais, o
25

armazenamento fsico e a localizao de registros no disco. Por exemplo, o


registro de notas de um aluno especfico poderia ser fisicamente armazenado
prximo ao registro de aluno. Apesar de prover acessos muito eficientes,
destinados a consultas originais e transaes, para as quais o banco de dados
foi projetado para executar, ele no oferecia flexibilidade suficiente e eficiente
para os acessos a registros quando novas consultas e transaes fossem
necessrias. Em especial, as novas consultas que precisavam de uma
organizao diferente de armazenamento para a eficincia no processamento
eram muito difceis de serem implementadas. Tambm era muito complicado
reorganizar o banco de dados quando as mudanas eram feitas para atender a
novos requisitos da aplicao.


Outra deficincia desses sistemas era que forneciam somente as
interfaces para a linguagem de programao. Isso fez com que o tempo
consumido fosse significativamente alto para implementar novas consultas e
transaes, pois os novos programas tinham de ser escritos, testados e
depurados. A maioria desses sistemas de banco de dados foi implementada
em computadores grandes (mainframes) e caros, comeando em meados de
1960 at os anos 70 e 80. Os principais tipos desses sistemas iniciais foram
baseados em trs paradigmas principais: os sistemas hierrquicos, aqueles
baseados em modelo de rede, e os de arquivos invertidos.
A seguir exemplos destas abordagens nas figuras 2a e 2b:

26


Figura 2a: Exemplo de modelo Hierrquico.
Fonte: (PEREIRA NETO, 2010, S/P).




Figura 2b: Exemplo de modelo de Rede.
Fonte: (PEREIRA NETO, 2010, S/P).



27

2.1.2ObtendoFlexibilidadedeAplicaocomoBancodeDados
Relacional


Segundo (ELMARSI e NAVATHE, 2005) Os bancos de dados relacionais
foram originalmente projetados com o objetivo de separar o armazenamento
fsico dos dados da sua representao conceitual e prover uma fundamentao
matemtica para os bancos de dados. O modelo de dados relacional tambm
introduziu as linguagens de consulta de alto nvel, que so uma alternativa s
interfaces para as linguagens de programao. Conseqentemente, ficou mais
rpido escrever novas consultas. Os sistemas relacionais foram, a princpio,
direcionados para as mesmas aplicaes dos sistemas pioneiros, mas foi
decisivo o fato de oferecerem flexibilidade para o desenvolvimento rpido de
novas consultas e para reorganizar o banco de dados quando os requisitos
eram alterados.


Os primeiros sistemas relacionais experimentais desenvolveram-se no
fim dos anos 70 e os SGBDRs (sistemas de gerenciamento de banco de dados
relacional) introduzidos no incio dos anos 80 eram muito lentos, pois no
usavam ponteiros para o armazenamento fsico ou registros de localizao
para acessar os registros de dados relacionados. Com o desenvolvimento de
novas tcnicas de armazenamento e indexao, e com o processamento
aprimorado de consultas e otimizao, seu desempenho melhorou. Assim, os
bancos de dados relacionais tornaram-se os tipos dominantes de sistemas para
as aplicaes tradicionais de banco de dados. Os bancos de dados relacionais
agora existem na maioria dos computadores, desde aqueles de uso pessoal
at os de grandes servidores.
Abaixo a figura 2c mostra o modelo relacional de banco de dados.

28

Figura 2c: Exemplo de um modelo Relacional.


Fonte: (PEREIRA NETO, 2010, S/P).


Existe ainda o tipo de banco de dados Orientado objetos, porm no
sero feitos comentrios sobre ele, pois a inteno deste estudo ser
realmente as vantagens de aplicaes utilizando o sistema de banco de
dados relacional, que no momento atual do mercado de trabalho e o mais
utilizado e difundido.




29

2.2AmpliandoasFuncionalidadesdosBancosdeDadosparaas
NovasAplicaes


O sucesso dos sistemas de banco de dados em aplicaes tradicionais
encorajou os desenvolvedores de outros tipos de aplicaes a se esforarem
para us-los. Essas aplicaes tradicionalmente usavam seus prprios
arquivos especializados e estruturas de dados. A seguir, alguns exemplos
dessas aplicaes:


Aplicaes cientficas, que armazenam uma grande quantidade de
dados resultantes de experimentos cientficos em reas como fsica avanada
ou mapeamento do genoma humano.
Armazenamento e restaurao de imagens, de notcias escaneadas ou
fotografias pessoais a imagens fotografadas por satlite e imagens de
procedimentos mdicos, como raios X ou ressonncia magntica.
Armazenamento e recuperao de vdeos, como filmes ou videoclipes
de notcias ou de mquinas fotogrficas digitais.
Aplicaes para Data Mining
1
(garimpagem de dados), que analisam
grandes quantidades de dados pesquisando as ocorrncias de padres
especficos ou relacionamentos.


1
Data Mining ou Minerao de Dados consiste em um processo analtico projetado para explorar grandes
quantidades de dados (tipicamente relacionados a negcios, mercado ou pesquisas cientficas), na busca de
padres consistentes e/ou relacionamentos sistemtico entre variveis e, ento, valid-los aplicando os padres
detectados a novos subconjuntos de dados. O processo consiste basicamente em 3 etapas: explorao;
construo de modelo ou definio do padro; e validao/verificao.
30

3ModelagemdeDadosUsandooModeloEntidade
Relacionamento(MER)


O MER um modelo de dados conceitual de alto-nvel, ou seja, seus
conceitos foram projetados para serem compreensveis a usurios,
descartando detalhes de como os dados so armazenados (TAKAI, 2005,
pg22, apud DATE, 2000).


O MER atualmente utilizado principalmente para os projetos de banco
de dados.


3.1ModelodeDadosConceitualdeAltoNveleProjetodeBase
Dados


Figura 3: Esquema geral de modelagem usando MER.
Fonte: (TAKAI, ITALIANO,FERREIRA, 2005, APUD DATE, 2000, PAG 22)
31

3.2ConceitosdoModeloEntidadeRelacionamento


3.2.1EntidadeseAtributos


O objeto bsico que o MER representa a entidade. Uma entidade
algo do mundo real que possui uma existncia independente. Uma entidade
pode ser um objeto com uma existncia fsica - uma pessoa, carro ou
empregado - ou pode ser um objeto com existncia conceitual - uma
companhia, um trabalho ou um curso universitrio. Cada entidade tem
propriedades particulares, chamadas atributos, que a descrevem. Por exemplo,
uma entidade EMPREGADO pode ser descrita pelo seu nome, o trabalho que
realiza, idade, endereo e salrio. Uma entidade em particular ter um valor
para cada um de seus atributos. Os valores de atributos que descrevem cada
entidade ocupam a maior parte dos dados armazenados na base de dados.


A Figura 4 ilustra duas entidades. A entidade e1, EMPREGADO, tem
quatro atributos: Nome, Endereo, Data de nascimento e Telefone residencial.
Os seus valores so: Joo da Silva, Rua Gois 711, So Paulo, SP,
1301100, 31/07/1973 e 713-749, respectivamente. A entidade c1,
COMPANHIA, tem trs atributos: Nome, Sede e Presidente. Seus valores so:
Cooper Sugar, Ribeiro Preto e Joo da Silva.


32


Figura 4: Exemplos de entidades e seus respectivos atributos.
Fonte: (AUTOR,2010).


Alguns atributos podem ser divididos em subpartes com significados
independentes. Por exemplo, Endereo da entidade e1 pode ser dividido em
Endereo da Rua, Cidade, Estado e CEP. Um atributo que composto de
outros atributos mais bsicos chamado composto. J,atributos que no so
divisveis so chamados simples ou atmicos. Atributos compostos podem
formar uma hierarquia, conforme pode ser observado no exemplo da Figura 5.



Figura 5: Um exemplo de atributo composto.
Fonte: figura gerada pelo autor.


33

Atributos compostos so teis quando os usurios referenciam o atributo


composto como uma unidade e, em outros momentos, referenciam
especificamente a seus componentes. Se o atributo composto for sempre
referenciado como um todo, no existe razo para subdividi-lo em
componentes elementares.


Muitos atributos tm apenas um nico valor. Tais atributos so
chamados atributos uni-valorados (exemplo, Data de nascimento da entidade
e1 da figura 4). Em outros casos, um atributo pode ter um conjunto de valores.
Tais atributos so chamados de atributos multivalorados (exemplo, Telefone
residencial da entidade e1 da figura 4). Atributos multivalorados podem possuir
uma multiplicidade, indicando as quantidades mnima e mxima de valores.


Em alguns casos, dois ou mais atributos so relacionados. Por exemplo,
Idade e Data de Nascimento de uma pessoa. Para uma entidade pessoa em
particular, a Idade pode ser determinada a partir da data atual e da Data de
Nascimento. Atributos como Idade so chamados atributos derivados
2
.


Alguns valores de atributos podem ser derivados de entidades
relacionadas. Por exemplo, um atributo Nmero de Empregados de uma
entidade departamento que pode ser calculado contando-se o nmero de
empregados relacionados com o departamento.

2
Atributosderivadosnonecessitamserarmazenadosnabasededados,podendosercalculadospor
meiodeumaconsulta
34

3.3Relacionamentoentreentidades:tiposecardinalidade

Relacionamento entre entidades o tipo de ocorrncia existente entre


entidades. O smbolo que representa o relacionamento no modelo E-R um
losango com o nome do relacionamento escrito no seu interior, como no
exemplo a seguir na figura 6a.



Figura 6a: Exemplo de smbolo da representao ER.
Fonte: (AUTOR,2010).


Em um modelo de entidade e relacionamento, nem todas as entidades
sero relacionadas, h casos em que no h relacionamento entre entidades,
nestes casos consideramos como entidades isoladas.

3.3.1- Tipos de relacionamento




Existem trs tipos de relacionamento entre entidades:


35

- um-para-um.
O relacionamento um-para-um usado quando uma entidade A se
relaciona com uma entidade B e vice-versa.
Este relacionamento representado pelo sinal: 1:1
Veja o exemplo na figura 6b:



Figura 6b: exemplo de relacionamento 1:1
Fonte: (AUTOR,2010).


- um-para-muitos.
O relacionamento um-para-muitos usado quando uma entidade A pode
se relacionar com uma ou mais entidades B.
Este relacionamento representado pelo sinal: 1:N
Veja o exemplo na figura 6c:



Figura 6c: Exemplo de relacionamento 1:N
Fonte: (AUTOR,2010).

36



-muitos-para-muitos.
O relacionamento muitos-para-muitos usado quando vrias entidades
A se relacionam com vrias entidades B.
Este relacionamento representado pelo sinal: N:N ou N:M.
Veja o exemplo na figura 6d:


Figura 6d: Exemplo de relacionamento N:N
Fonte: (AUTOR,2010).

3.3.2Cardinalidade


A cardinalidade um conceito importante para ajudar a definir o
relacionamento, ela define o nmero de ocorrncias em um relacionamento.


Para determinar a cardinalidade, deve-se fazer a pergunta relativa ao
relacionamento em ambas as direes. No exemplo da figura 6e a seguir,
temos:

37



Figura 6e: Exemplo de relacionamento e suas cardinalidades.
Fonte: (AUTOR,2010).


Um departamento possui quantos empregados?
- no mnimo 1 e no mximo N.
Um empregado est alocado em quantos departamentos?
- no mnimo em 1 e no mximo em 1


Somando-se as cardinalidades, definido o resultado final do
relacionamento,1:N.









38

4Seguranaeautorizao


Este captulo aborda as tcnicas utilizadas para proteger o banco de
dados contra pessoas que no esto autorizadas a acessar determinadas
partes ou todo o banco de dados.


4.1TiposdeSegurana


A segurana em bancos de dados uma rea bastante ampla que se
refere a muitas questes, incluindo:


- Questes legais e ticas referentes ao direito de acesso a certas
informaes. Algumas informaes podem ser consideradas privadas e no
podem ser acessadas legalmente por pessoas no autorizadas. Nos Estados
Unidos, existem diversas leis que disciplinam a privacidade de informaes.
- Questes polticas nos nveis governamental, institucional ou
corporativo, como quais os tipos de informao que no devem ser tornadas
disponveis publicamente por exemplo, avaliaes de crdito e registros
mdicos pessoais.
- Questes relacionadas a sistema, como os nveis de sistema nos quais
as vrias funes de segurana devem ser implementadas, por exemplo, se
uma funo de segurana deve ser tratada no nvel fsico de hardware, no nvel
de sistema operacional ou no nvel do SGBD.
39

- As necessidades em algumas organizaes de identificar mltiplos


nveis de segurana e em categorizar os dados e usurios com base nessas
classificaes por exemplo, altamente secreto (top secret), secreto (secret),
confidencial (confidential) e no confidencial (unclassified). A poltica de
segurana de uma organizao a respeito da permisso de acesso a vrias
classificaes de dados deve ser implementada.


As ameaas aos bancos de dados resultam na perda ou na degradao
de alguns ou de todos os seguintes objetivos de segurana: integridade,
disponibilidade e confidencialidade.


- Perda de integridade: A integridade do banco de dados refere-se
exigncia de que a informao seja protegida contra a modificao imprpria. A
modificao de dados inclui a criao, a incluso, a alterao, a mudana de
status do dado e a excluso. A integridade perdida se modificaes no
autorizadas so realizadas nos dados tanto por atos intencionais quanto por
atos acidentais. Se a perda de integridade do sistema ou dos dados no for
corrigida, o uso prolongado do sistema contaminado ou de dados corrompidos
pode resultar em impreciso, fraude ou em decises equivocadas.
- Perda de disponibilidade: A disponibilidade de banco de dados
refere-se a tornar os objetos disponveis para um usurio humano ou para um
programa que tenha direito legtimo a eles.
- Perda de confidencialidade: A confidencialidade de um banco de
dados refere-se proteo dos dados contra a divulgao no autorizada. O
impacto da divulgao no autorizada de informao confidencial pode variar
desde a violao da Data Privacy Act (Lei de Privacidade de Dados, nos
Estados Unidos) at a colocao em risco da segurana nacional. A divulgao
no autorizada, imprevista, ou no intencional pode resultar na perda da
40

confiana pblica, em constrangimentos, ou na ao legal contra a


organizao.


De acordo com (NAVATHE e ELMARSI, 2005) Para proteger o banco de
dados contra esses tipos de ameaas, quatro tipos de medidas podem ser
implementadas: controle de acesso, controle de inferncia
3
, controle de
fluxo e criptografia.


Em um sistema de banco de dados multiusurio, o SGBD deve oferecer
tcnicas que habilitam certos usurios ou grupos de usurios a acessar partes
selecionadas de um banco de dados sem obter acesso ao restante do banco.
Isso especialmente importante quando um grande banco de dados integrado
utilizado por muitos usurios diferentes dentro de uma mesma organizao.
Por exemplo, informaes sensveis, como salrios de funcionrios ou
avaliaes de desempenho, devem ser mantidas confidencialmente em relao
maioria dos usurios do sistema de banco de dados. Tipicamente um SGBD
inclui um subsistema de segurana de banco de dados e de autorizao que
responsvel por garantir a segurana de partes de um banco de dados contra o
acesso no autorizado.


Atualmente comum se referir a dois tipos de mecanismos de
segurana de bancos de dados:

3
Infernciaomtodoparadefinirregrasdeinferncia,deduzirnovasinformaesdobancodedados
armazenados.Essesdadossochamadoscomodedutveisbancosdedados.Emoutraspalavras,deve
haveralgunsmtodosparafornecerinformaesporaplicaolgicadobancodedadosarmazenados.
41

Mecanismos de acesso discricionrio: So utilizados para conceder


privilgios a usurios, inclusive a capacidade de acessar arquivos de dados,
registros ou campos especficos de uma maneira especifica (como leitura,
incluso, excluso ou atualizao).
Mecanismos de acesso obrigatrio (mandatory): So utilizados para
impor a segurana em vrios nveis por meio da classificao dos dados e dos
usurios em vrias classes de segurana (ou nveis) e, depois, pela
implementao da poltica de segurana adequada da organizao. Por
exemplo, uma poltica de segurana tpica permitir aos usurios em
determinado nvel da classificao ver apenas os itens de dados classificados
no prprio nvel de classificao do usurio (ou abaixo).


Uma extenso disso a segurana baseada em papis (role-based
4
),
que impe polticas e privilgios baseando-se no conceito de papis.


Um segundo problema comum a todos os sistemas de computao
prevenir que pessoas no autorizadas acessem o prprio sistema, seja para
obter informao, seja para realizar alteraes mal-intencionadas em uma
parte do banco de dados. O mecanismo de segurana de um banco de dados
deve incluir providncias para a restrio de acesso ao sistema de banco de
dados como um todo.

4
Emsistemasdeseguranainformtica,controledeacessobaseadoemfuno(RBAC)umaabordagempara
restringiroacessoaosistemaaosutilizadoresautorizados.umaabordagemmaisrecentealternativaparao
controledeacessoobrigatrio(MAC)econtroledeacessodiscricionrio(DAC).RBACmuitasvezesreferidacomo
seguranabaseadaemfuno.

42

Essa funo chamada controle de acesso e tratada por meio da


criao de contas de usurios e senhas para controlar o processo de login pelo
SGBD.


Um terceiro problema de segurana associado a bancos de dados o
de controlar o acesso a um banco de dados estatstico, o qual utilizado para
prover informaes estatsticas ou resumos de valores baseados em vrios
critrios. Por exemplo, um banco de dados de estatsticas de populao pode
fornecer informaes baseadas em grupos de idade, nveis de renda,
tamanhos de residncia, nveis de educao e em outros critrios. Usurios de
bancos de dados estatsticos, como estatsticos do governo ou de empresas de
pesquisas de mercado, tm a permisso de acesso ao banco de dados para
recuperar informaes estatsticas sobre uma populao, porm, no a tm
para acessar as informaes confidenciais detalhadas de indivduos em
particular. A segurana em bancos de dados estatsticos deve assegurar que
informaes individuais no possam ser acessadas. s vezes, possvel
deduzir ou inferir certos fatos a respeito de indivduos a partir de consultas que
envolvam apenas estatsticas sumrias de grupos; conseqentemente, isso
tambm no pode ser permitido. As medidas correspondentes so chamadas
controle de inferncia.


Uma ltima questo de segurana a criptografia de dados, utilizada
para proteger dados sensveis (como nmeros de cartes de crdito) que esto
sendo transmitidos por meio de alguma rede de comunicao. A criptografia
tambm pode ser usada para prover proteo adicional para as partes
sensveis de um banco de dados. Os dados so codificados utilizando algum
algoritmo de codificao.

43


Um usurio no autorizado que acesse os dados codificados ter
dificuldades em decifr-los, j aos usurios autorizados so fornecidos
algoritmos de decodificao ou de decifragem (ou chaves) para esses dados.
Tcnicas de criptografia que so muito difceis de serem decodificadas sem
uma chave tm sido desenvolvidas para aplicaes militares.




















44

5NormalizaodeBancodeDados.


O processo de normalizao foi proposto inicialmente por Codd em
1972. Esta uma maneira mais formal de garantir as diretrizes do projeto de
Banco de Dados.


5.1PrimeiraFormaNormal(1FN)


A primeira forma normal agora genericamente considerada como parte
da definio formal de uma relao. Historicamente foi definida para no
permitir atributos multivalorados, compostos e suas combinaes (TAKAI,
ITALIANO, FERREIRA, 2005, apud DATE, 2000).


5.2SegundaFormaNormal(2FN)


A segunda forma normal baseada no conceito de dependncia
funcional total. Uma dependncia funcional X->Y uma dependncia funcional
total se, na remoo de qualquer atributo A de X significar que a dependncia
no mais existe, isto , para todo atributo A X, (X-{A}) >x->Y. Por exemplo,
na Figura 9.8b, {NSS, PNUMERO} ->HORAS uma dependncia funcional
total (nem NSS->HORAS e nem PNUMERO->HORAS so DF. Porm, a
dependncia {NSS, PNUMERO}->ENOME parcial, pois NSS->ENOME.
45



Um esquema de relao R est na 2FN se qualquer atributo no-primo
A de R for totalmente dependente funcionalmente de qualquer chave de R.
Atributo no-primo qualquer atributo que no seja membro de uma chave-
candidata. A relao EMP_PROJ da Figura 5 est na 1FN, mas no na 2FN. O
atributo no-primo ENOME viola a 2FN devido df2, o mesmo acontece com
os atributos no-primos PNOME e PLOCALIZAO em df3. As dependncias
funcionais df2 e df3 indicam a dependncia parcial da chave-primria {NSS,
PNUMERO}, violando assim a 2FN (TAKAI,ITALIANO,FERREIRA, 2005, apud
DATE, 2000).
Veja exemplo na figura 7a:



Figura 7a: exemplo de dependncia funcional total.
Fonte:(TAKAI, ITALIANO, FERREIRA, 2005, pag. 82, apud DATE, 2000).
46



Se uma relao no est na 2FN, ela pode ser normalizada em um
nmero de relaes na 2FN. As dependncias funcionais df1, df2 e df3
indicadas na Figura 5a podem ser consideradas para decompor a relao
EMP_PROJ em trs esquemas de relaes EP1, EP2 e EP3, como mostra a
Figura 5a. Cada um desses esquemas de relao satisfaz a 2FN. Verifica-se
que as relaes EP1, EP2 e EP3 evitam as anomalias que estava sujeita a
relao EMP_PROJ.
Veja o exemplo na figura 7b.

47


Figura 7b: Exemplo da 2fn.
Fonte:(TAKAI, ITALIANO, FERREIRA, 2005, pag. 83, apud DATE, 2000).





48

5.3TerceiraFormaNormal(3FN)


A terceira forma normal baseada no conceito de dependncia
transitiva. Uma dependncia XY em uma relao R uma dependncia
transitiva se existir um conjunto de atributos Z que no um subconjunto de
qualquer chave de R, e tanto XZ quanto ZY. Por exemplo, a dependncia
NSSNSSGER uma dependncia transitiva em EMP_DEPT da Figura 5a
(b).


Diz-se que a dependncia de NSSGER sobre o atributo chave NSS
transitiva via DNUMERO. Intuitivamente, verifica-se que a dependncia de
NSSGER sobre DNUMERO indesejvel uma EMP_DEPT desde que
DNUMERO no chave de EMP_DEPT. Um esquema de relao R est na
3FN se ele estiver na 2FN e nenhum atributo no-primo de R dependente
transitivamente de qualquer chave de R. A relao EMP_DEPT da Figura 5a
(b) est na 2FN, pois no h dependncia parcial de nenhum atributo no-
primo sobre a chave.


Porm, no est na 3FN, pois NSSGER e DNOME so dependentes
transitivos de NSS via DNUMERO. Pode-se normalizar EMP_DEPT
decompondo-o em dois esquemas de relao na 3FN, ED1 e ED2, como
mostra a figura 5a (b).

49


6Vantagensdautilizaodobancodedados,eautilizao
destasvantagensparaimplementaodeaplicaes.


Neste capitulo sero listadas as principais vantagens na utilizao do
banco de dados, visando demonstrar a utilidade de cada uma na
implementao de aplicaes no prprio banco de dados.


6.1Principaisvantagens


As principais vantagens encontradas no estudo se apresentam na
seguinte seqncia:


-Dados podem ser compartilhados.
-Redundncia pode ser reduzida.
-Inconsistncia pode ser evitada (at certo ponto) .
-Suporte a transaes pode ser fornecido.
-Integridade pode ser mantida.
-Segurana pode ser reforada.
-Requisitos contraditrios podem ser equilibrados.
-Padres podem ser reforados.
50

-Implementao fica no banco de dados, gerando menos trabalho de


codificao.
-No necessria muita experincia em implementao de interfaces.
-Menor trafego de informaes na rede.


6.1.1Dadospodemsercompartilhados


Pores do banco de dados podem ser compartilhadas por vrios
usurios. Eles acessam da mesma maneira, mas podem usar para finalidades
distintas. Do mesmo modo, diversas aplicaes podem fazer uso dos dados,
assim como aplicaes podem ser desenvolvidas para us-los.


No caso da implementao da aplicao do banco de dados no servidor
possvel ter a aplicao na base de dados e poderamos ter diversas
interfaces adaptadas para o tipo de usurio que as utilizaro.


Por exemplo, em uma biblioteca, pode-se ter para o aluno somente as
telas de interface de pesquisa de livro e de verificao da situao de seu
emprstimo, e para o bibliotecrio poderamos fornecer acesso as interfaces de
cadastro de livros e Tcc, de cadastro de aluno e professores, de cadastro de
emprstimo, alm das interfaces de consultas.


51

Neste exemplo no necessrio mudar nada na aplicao


implementada no banco de dados, gerando alm de menor tempo de
codificao, uma possibilidade de controle de segurana.


6.1.2Redundnciaspodemserreduzidas


Em aplicaes sem banco de dados comum que cada uma delas
tenha seu prprio conjunto de arquivos. Isso gera redundncia de dados, uma
vez que provvel que as mesmas informaes estejam presentes. O
resultado um desperdcio no espao de armazenamento. Certas
redundncias, entretanto, so desejadas, como no caso de back-ups, nesse
caso o sistema deve estar ciente dela e responsabilizar-se por atualizar os
registros necessrios


O banco de dados de extrema importncia para o controle de
redundncias, os SGBDs tem mtodos para o auxilio neste controle de
redundncias, podemos por exemplo utilizar utilizar chaves primarias (Primary
Key) e chaves estrangeiras (Foreign Key) para controle e integrao entre
tabelas evitando redundncias, esse conceito de declarar chaves primarias e
estrangeiras tem no nome de CONSTRAINT (Restries), sero dados
exemplos de utilizao e ser definido melhor o conceito de constraints no
captulo do estudo de caso.



52


6.3Inconsistnciaspodemserevitadas


Esse tpico est relacionado com o anterior. O fato de reduzir a
redundncia significa que menor a chance de termos dados redundantes
onde duas entradas no coincidam: isso quer dizer que o banco de dados est
inconsistente, uma entrada est atualizada e outra no. Tal fato torna provvel
que o sistema fornea informaes incorretas. Eliminar a redundncia implica
em acabar tambm com as inconsistncias. Nos casos onde a redundncia
no eliminada, mas sim controlada, o banco de dados tambm no se tornar
inconsistente do ponto de vista do usurio, j que as atualizaes sero
propagadas em todas as entradas onde for necessrio.


Outra vantagem da utilizao do banco de dados para o
desenvolvimento da aplicao, com o banco de dados centralizado a
atualizao feita deve ser replicada para todos uma vez que todos acessam a
mesma base, deixando assim mesmo que inconscientemente o controle de
atualizaes na base perfeito. Alem de no deixar o sistema redundante e
inconsistente ainda consegue centralizar o modo de acesso e atualizao.


6.1.4Suporteatransaespodeserfornecido


A transao a unidade lgica de trabalho. Ela essencialmente
atmica e envolve, geralmente, vrias operaes de banco de dados
53

(normalmente de atualizao). Um exemplo genrico a transferncia de


dinheiro de uma conta A para a conta B, onde possvel perceber que temos
duas atualizaes que devem ser feitas, uma delas para retirar o dinheiro da
conta A e outra para deposit-lo na conta B. A declarao das duas operaes
dentro de uma transao acarretar ou no acontecimento das duas ou de
nenhuma delas no caso de uma falha no sistema. Essa atomicidade de
importncia fundamental na implementao de um banco de dados, uma vez
que garante consistncia e diminui o risco de perda de informaes.


Na utilizao do banco centralizado como a aplicao quando certo
processo est neste momento de atualizao o processo travado (lock)
dando maior garantia de que ningum consiga acessar o processo neste
perodo podendo causar uma perda de informao ou alguma inconsistncia e
somente depois de completo o processo, neste exemplo de transferncia da
conta A para a conta B, ele e finalmente liberado para novas atualizaes.


6.5Integridadespodemsermantidas


A inconsistncia dos dados um exemplo de falta de integridade, mas
no o nico. Alm dele, existem outras formas de fornecimento incorreto de
dados por parte do sistema. Um campo da tabela que informa a data de
nascimento normalmente no poder ter um dia posterior hoje. O controle
centralizado no banco de dados garante a integridade e estabelecido atravs
das regras de negcio que so verificadas a cada atualizao no banco. A
importncia desse atributo muito maior do que nos sistemas de
armazenamento convencionais uma vez que aqui os dados so
54

compartilhados, uma inconsistncia ou falta de integridade propaga-se para


vrios outros usurios podendo tomar propores catastrficas.


Nos SGBDs atuais tambm possvel ter a possibilidade de
implementar estas regras de negcio, uma maneira muito conhecida,
extremamente eficiente e muito utilizada e o conceito de TRIGGERS (Gatilhos)
para o controle destas regras de negcio, procurei dar exemplos e definir
melhor o que seriam as triggers no captulo do estudo de caso.


6.1.6Seguranapodeserreforada


Os bancos de dados fornecem mecanismos para restringir o uso de
determinadas operaes a certos campos ou usurios, de modo que possvel
estabelecer limites confidenciais a certos campos ou tabelas ou mesmo impedir
que certos dados sejam alterados, caso seus valores o exijam. A natureza
centralizada dos bancos de dados fazem que essa segurana seja necessria,
mais do que em sistemas dispersos.


A centralizao ajuda muito no controle e, alm disso hoje em dias os
SGBDs tem dentro de seu prprio sistema a possibilidade alem de criao de
contas de usurio com senhas, a possibilidade de restries de acesso a
determinados usurios em determinadas funcionalidade definidas pelo
gerenciador deste banco, sendo assim pode ajudar com que mesmo o usurio
tendo uma interface com acessos no autorizados, no momento de tentar
55

utiliz-los com seu login e senha, sejam barrados pelo sistema de banco de
dados, tendo assim um reforo no controle de segurana do sistema.


6.1.7Requisitoscontraditriospodemserequilibrados


Conhecendo as necessidades da empresa, o sistema pode ser
estruturado de maneira a oferecer maior performance em aplicaes que sejam
mais necessrias (sacrificando a performance nas que no sejam tanto)
atravs de uma organizao fsica dos dados nos meios de armazenamento.


6.1.8Padrespodemserreforados


Com um sistema centralizado fica mais fcil manter o padro na
representao das informaes. A padronizao desejvel para diversos fins
como o intercmbio de dados ou a migrao deles entre sistemas. Manter a
nomenclatura dos dados dentro de um padro tambm um grande facilitador
para o compartilhamento e a compreenso dos dados. Um outro ponto que no
to bvio padronizao dos dados para prover a independncia dos
dados, que ser discutida a seguir.



56

6.1.9Independnciadosdados


A independncia de dados guarda uma proximidade com o conceito de
abstrao de dados das linguagens de programao, onde os dados que esto
encapsulados podem ter sua implementao modificada sem que o resto da
aplicao note alguma diferena. A estrutura de armazenamento ou a
estratgia de acesso aos dados so indiferentes aplicao. Isso garante uma
imensa portabilidade aos bancos de dados, uma vez que possvel a criao
de basicamente qualquer tipo de aplicativo para interagir com o mesmo banco
de dados, tendo poucas ou nenhuma mudana no mtodo para essas
interaes. A preocupao com nveis mais baixos de implementao pode ser
redirecionada para a estrutura em si.


6.1.9.1IndependnciaFsica


A independncia fsica dos dados est relacionada com a habilidade de
modificar o esquema fsico sem haver necessidade de reescrever a aplicao.
Isso pode ser feito por questes de performance ou a reorganizao dos dados
na memria secundria para atender melhor a aplicao.

57

6.1.9.2IndependnciaLgica


Na independncia lgica modifica-se o esquema lgico sem ter
necessidade de alterar a aplicao. usada em um nvel mais conceitual,
como a insero de um campo, mudana na ordem dos campos ou do
tamanho de um deles. muito mais difcil de ser alcanada j que os
programas geralmente so muito dependentes da estrutura lgica.


6.1.10Implementaoficanobancodedados,gerandomenos
trabalhodecodificao


Como mencionado em itens anteriores uma das vantagens ocorre na
questo da codificao do sistema, com a lgica toda no banco de dados o
programador precisa ter conhecimento somente da linguagem do SGBD e no
precisa saber muito sobre codificao de interfaces, hoje em dia existem
diversas aplicaes que podem modelar interfaces de maneira fcil e gil,
veremos no estudo de caso como fcil a implementao de uma interface e
tambm a facilidade de integrao da interface com o banco de dados.


Alm desta facilidade de integrao e codificao os tempos de
codificao e de retrabalho tornam-se relativamente menores do que na
implementao de aplicaes por outros mtodos.


58

6.1.11Nonecessriamuitaexperinciaemimplementaode
interfaces


Como dito no item anterior para a criao da aplicao possvel focar
maior parte do tempo na codificao da aplicao no banco de dados e gasto
menos tempo na implementao de interfaces, sendo que alem da facilidade
que alguns programas hoje em dia trazem para a implementao de interfaces
grande e tambm no preciso preocupao com codificaes especificas
de regras de negocio na interface, essas regras ficaro todas no banco e
quando a integrao for feita no da interface com o banco a interface tem o
trabalho somente de acionar estas regras no banco

6.1.12Menortrfegodeinformaesnarede


Nas figuras 1a e 1b do capitulo de justificativa deste trabalho
apresentada a perfeita explicao de quanto menor o trafego na rede, no
ser abordado o mrito do retrabalho ao se implementar as regras de negocio
nos aplicativos ao invs de implementar no banco de dados, ser discutido
sobre este menor trafego de rede gera uma maior performance de sistema,
como visto nas figuras estando centralizado existe uma menor necessidade de
trafego e troca de informaes isto que realmente gera a melhor
performance.



59

7ESTUDODECASOBIBLIOTECA


Neste captulo sero elucidadas os pontos citados nos captulos
anteriores, sero demonstrados atravs de exemplos do estudo de caso as
tcnicas utilizadas para a utilizao deste mtodo, sero explicados tambm
mais alguns pontos importantes e algumas tcnicas no citadas ou no
explicadas anteriormente, tcnicas estas importantes para demonstrar as
vantagens de utilizao deste mtodo de implementao da regra de negcio
no banco de dados, atravs destas demonstraes e explicaes esperada
apresentar e elucidar as vantagens que levam a este tipo de abordagem
comear a ser pensada em ambientes empresariais como uma boa soluo de
negcio.


7.1OProjeto


A primeira coisa a ser feita antes da implementao do banco de dados
e de sua aplicao o projeto.


Primeiro preciso conhecer bem o ambiente em que se ir atuar, no
caso deste estudo de caso ser trabalhado com um ambiente acadmico e o
sistema ser para uma biblioteca de uma faculdade.


60

Vendo uma biblioteca e pegando as principais funes que o sistema


necessita realizar seria o cadastro de alunos e professores, o cadastro de livros
e de TCC j que seria uma biblioteca de faculdade, e por fim o controle de
emprstimos realizados por professores ou alunos, cadastro este de obras
literrias ou de TCC.


No banco de dados no modelo relacional que o que esta sendo
utilizado no estudo de caso o mtodo por ele utilizado o mtodo de tabelas
que se relacionam.


O primeiro passo a definio dos campos (colunas) que existiro
nestas tabelas, seus tipos de dados e seu espao ocupado.


J nesta etapa de projeto, pensando apenas nos tipos de dados, nomes
de colunas e nomes de tabelas, conseguimos pensar na parte fsica do projeto
e tambm na parte lgica tendo inclusive algumas restries de integridade
onde, por exemplo, o campo RA da tabela aluno deve ser de numrica, no
permitindo a quem est utilizando o sistema inserir caracteres de letras.


Na figura 8a ser demonstrado um exemplo do projeto fsico do sistema
de banco de dados do estudo de caso biblioteca de faculdade.

61

LIVRO
ISBN: SMALLINT
TITULO: VARCHAR2(30)
AUTOR: VARCHAR2(30)
EDITORA: VARCHAR2(30)
EDIO: VARCHAR2(30)
STATUS: CHAR(1)
TCC
CDIGO_TCC: SMALLINT
NOME_AUTOR: VARCHAR2(30)
TITULO: VARCHAR(100)
CURSO: VARCHAR2(30)
ANO_PUBLICAO: SMALLINT
STATUS: CHAR(1)
ALUNO
RA: SMALLINT
NOME: VARCHAR2(30)
SEMESTRE: SMALLINT
CURSO: VARCHAR2(30)
PROFESSOR
RE: SMALLINT
NOME: VARCHAR2(30)
MATERIA_LECIONADA: VARCHAR2(30)
EMPRSTIMO
NUMERO: SMALLINT
RE: SMALLINT
ISBN: SMALLINT
CDIGO_TCC: SMALLINT
RA: SMALLINT
DATA_RETIRADA: DATE
DATA_DEVOLUO: DATE

Figura 8a: exemplo de projeto fsico.
Fonte: Aplicativo Erwin Data Modeler, figura gerada pelo autor.


Nesta figura 8a pode ser observado como foi realizado o projeto fsico e
pode-se verificar tambm quais tabelas se relacionam, ainda no se sabe quais
restries elas tm, mas sabemos a relao entre elas.


J o projeto abrange grande parte das vantagens da utilizao de banco
de dados e de sua implementao para projetos deste tipo, se consegue
atravs do projeto tentar garantir diversas questes como diminuio de
inconsistncias, integridade do sistema, padres definidos entre outros citados
no captulo 6.


Outro mtodo utilizado e que j pode ser especificado na fase de projeto
seria o conceito de chave estrangeira (Foreign Key) e Chave Primria (Primary
Key).

62


Na figura 8b a seguir veremos o mesmo projeto, visto do modo lgico j
com as restries de chaves.


Figura 8b: exemplo do modelo lgico de dados.
Fonte: Aplicativo Erwin Data Modeler, figura gerada pelo autor.


Na figura 8b possvel ver as restries geradas em cada tabela, essas
restries tanto para as questes citadas na figura 8a quanto para as relaes
entre tabelas e questes de facilidade para encontrar dados.


7.1.1ChaveEstrangeira(ForeignKey)


a chave formada atravs de um relacionamento com a chave primria
de outra tabela. Define um relacionamento entre as tabelas e pode ocorrer
63

repetidas vezes. Caso a chave primria seja composta na origem, a chave


estrangeira tambm o ser.


Podemos tambm acrescentar restries como se certo campo da tabela
pode ser nulo (null), ou seja, pode ser um campo no qual tida a opo de
pode-se preench-lo ou no ou no nulo (not null), ou seja, o preenchimento do
campo obrigatrio no se pode inserir o conjunto de dados na tabela sem
preencher este campo no nulo. Segue um exemplo de chave estrangeira:


ALTER TABLE TB_EMPRESTIMO ADD CONSTRAINT
FK_ISBN_LIVRO FOREIGN KEY (ISBN_LIVRO) REFERENCES TB_LIVRO
(ISBN);


7.1.2ChavePrimria(PrimaryKey)


a chave que identifica cada registro dando-lhe unicidade. A chave
primria nunca se repetir. No projeto da biblioteca ela ajuda, por exemplo,
fazendo com que nenhum emprstimo tenha o mesmo nmero o que poderia
causar erros e problemas futuros. Segue um exemplo de criao de uma chave
primria:


ALTER TABLE TB_LIVRO ADD CONSTRAINT PK_ISBN PRIMARY
KEY (ISBN);
64

7.2Implementandooprojeto


7.2.1Criandotabelaserelaes


Aps definido o projeto chega a hora de comear a implementar o
projeto no banco e na interface, primeiramente implementando o banco que e
neste caso o foco de deste estudo.


Como j conhecido o modelo relacional apresenta a relao de tabelas
definidas pelo nosso projeto citado no sub-capitulo anterior e para iniciar a
implementao criando as tabelas definidas no projeto. A seguir no exemplo de
criao de uma tabela, ser apresentado como realizar a criao de uma tabela
por cdigo e mostrarei tambm como foi feita no projeto de SqlServer e VB j
que no VB se tem um assistente simples para criao de tabelas. Exemplo de
um cdigo para criao de uma das tabelas do projeto:

CREATE TABLE TB_LIVRO
(ISBN SMALLINT NOT NULL,
TITULO VARCHAR (100) NOT NULL,
AUTOR VARCHAR (30) NOT NULL,
EDITORA VARCHAR (30) NOT NULL,
EDIO SMALLINT,
STATUS CHAR(1)NOT NULL);

65

No exemplo acima mostra que na criao da tabela j possvel


implementar algumas das vantagens citadas no captulo 6, por exemplo pode-
se j definir o tipo de entrada que aceitara a tabela para cada campo, por
exemplo, no campo ISBN a tabela somente aceitar que o usurio digite a
entrada smallint ou seja nmeros inteiros, enquanto o campo titulo aceitara
entradas do tipo Varchar (100), ou seja caracteres diversos com no mximo
100.


J em VB que est sendo utilizado para realizar o projeto possui um
assistente de criao de tabelas em seu aplicativo o Visual Studio, no qual no
preciso de cdigos para criao de tabela. Segue a figura deste assistente de
instalao.



Figura 9: exemplo de criao de tabela no Visual Studio.
Fonte: Aplicativo Visual Studio, figura gerada pelo autor.


Na figura 9 podemos observar que somente precisamos criar o nome da
coluna, inserimos o tipo de entrada que ela aceita e j podemos definir se ela
66

pode ser nula, ou seja, pode ser uma coluna cujo no obrigatrio o
preenchimento ou no nulo, ou seja, uma coluna de preenchimento
obrigatrio.


feita a criao de todas as tabelas planejadas no projeto para que se
tenha a base de dados, que depois ser ligada a interface.


Aps a criao das tabelas necessrio a criao de mais algumas
regras de negcio que seriam as chaves primria e estrangeira citadas no sub-
item anterior, no exemplo anterior foi abservado como implementar estas
regras por meio de cdigo, na figura 10 ser elucidado que no Visual Studio
tambm temos uma maior facilidade de criao destas regras por assistentes.



Figura 10: exemplo de criao de chave primria no Visual Studio.
Fonte: Aplicativo Visual Studio, figura gerada pelo autor.

67

No exemplo da figura 10 possvel visualizar que a prpria ferramenta


tem a opo de determinar qual coluna deseja que seja uma chave primria.


Para criao da chave estrangeira o processo um pouco diferente mas
tambm muito simples, segue na figura 11:



Figura 11: exemplo de criao de chave estrangeira no Visual Studio.
Fonte: Aplicativo Visual Studio, figura gerada pelo autor.



68

J para criao de chave estrangeira no Visual Studio existe uma


funcionalidade em que se puxa suas tabelas e possivel clicar em suas chaves
primrias e ligar a chave primria a sua respectiva chave estrangeira de outra
tabela somente clicando uma coluna e arrastando esta coluna at sua
respectiva chave estrangeira, ao ligar as duas a tela da figura 11 aparece para
confirmarmos a criao da chave estrangeira e pronto. Segue a figura 12 de
como ficam as relaes aps as criaes destas chaves:



Figura 12: exemplo da relao de chaves e tabelas no Visual Studio.
Fonte: Aplicativo Visual Studio, figura gerada pelo autor.


Na Figura 12 pode-se verificar como aparece no Visual Studio a relao
das tabelas aps criao e definio de sua chave primria e estrangeira, na
figura o quadrado est mostrando a ligao de chave estrangeira e o circulo a
criao da chave primria.
69



7.2.1Abastecendoabasededados


Aps a criao das tabelas e relaes preciso um modo com que o
banco de dados receba os dados inseridos pelos usurios. Existem alguns
modos de insero de dados nas tabelas de nosso projeto, mas o melhor modo
para insero de dados foi atravs de Stored Procedures (Processos
Armazenados).


Com processos armazenados consegue-se reforar o projeto
principalmente no que se refere segurana, por exemplo, no cdigo a seguir,
quem no tem acesso ao banco ou um usurio com acessos limitados, no
consegue enxergar o que ocorre dentro da procedure, somente sabe que ela
executada, mas sua ao fica protegida para visualizao. Segue exemplo de
uma procedure e como ela executada:


CREATE PROCEDURE dbo. PROC_I NSERELI VRO

@I SBN SMALLI NT,
@TI TULO VARCHAR( 100) ,
@AUTOR VARCHAR( 50) ,
@EDI TORA VARCHAR ( 50) ,
@EDI O SMALLI NT


AS

I NSERT I NTO TB_LI VRO ( I SBN, TI TULO, AUTOR, EDI TORA, EDI O)
VALUES ( @I SBN, @TI TULO, @AUTOR, @EDI TORA, @EDI O) ;

70


A procedure acima demonstra a insero de um livro pelos parametros
definidos por quem a criou, todos os itens com o @ antes de seu nome so
parmetros de entrada pr-definidos pelo administrador do banco de dados, j
na definio dos parmetros de entrada podemos controlar o que o usurio
insere no banco alm da proteo que j tnhamos criado atravs da definio
da tabela com seus atributos. E a procedure executada desta maneira:


Begi n

Pr oc_i nser el i vr o ( @i sbn, @t i t ul o, @aut or , @edi t or a, @edi o)

end;
ou

Exec Proc_inserelivro @i sbn, @t i t ul o, @aut or , @edi t or a, @edi o


Como visto acima o usurio ter no Maximo o conhecimento dos
parmetros de entrada que sero aceitos, no tendo conhecimento de como
este processo e feito e no podendo alter-lo. Este procedimento garante
segurana para a base de dados.


O exemplo mostra uma procedure de insero, mas podemos tambm
criar procedures para efetuar pesquisas, como explicarei melhor no tpico
7.2.1.1, procedures podem ser vantajosas de diversas maneiras.


71

7.2.1.1StoredProcedures(ProcedimentosArmazenados)


um programa executado atravs de uma simples declarao SQL,
executado no espao de processo do servidor, como vantagens pode
encapsular a lgica da aplicao enquanto permanece fechado para os
dados, tambm pelo reuso da lgica da aplicao por diferentes usurios, evita
o retorno de tuplas
5
uma a uma atravs de cursores.


So utilizados Stored Procedures, pois eles permitem que o servidor
efetue operaes complexas em seus bancos de dados sem envolver o
software cliente. Eles podem ser compartilhados por todas as aplicaes
cliente que acessam o banco de dados. No necessrio programar a mesma
lgica dentro de cada aplicao, em vez disso voc s programa e testa ela
uma vez no servidor. Alm disso, reduzem trfico na rede, permitem que voc
divida tarefas complexas em mdulos menores e mais lgicos, so bastante
teis para efetuar tarefas de processamento peridico, fornecem melhor
concorrncia entre o cliente e o servidor.





5
Emteoriadebancodedados,essadefinioabrangemaiscoisas.Embancodedados,significauma
funoquemapeianomesavaloresrespectivos,portantooselementospodemviremqualquerordem,
jqueelestmumnomeassociadoaeles.Exemplo:(instrumento:"guitarra",cordas:6)
Noexemploacima,onomeinstrumentoestassociadoaovalor"guitarra".Onomedeumatuplaento
simbolizaacolunadeumatabeladobancodedados.
72

7.2.2Aplicandoregrasdenegcio


Aps a criao do banco de dados e algumas regras j no projeto e na
implementao do banco, pode-se tambm aplicar as regras de negcio, o
modo mais eficiente em banco de dados para a aplicao destas regras
atravs de Triggers (Gatilhos).


No sistema do estudo de caso foi criada apenas uma trigger para
demonstrar como so criadas e a importncia dela no projeto. Segue a Trigger
do projeto no abaixo:

ALTER TRI GGER Tr g_at r aso
ON dbo. TB_EMPRESTI MO
f or UPDATE
AS

updat e t b_empr est i mo
set t axa_at r aso = 5
wher e dat edi f f ( day, dat a_r et i r ada, dat a_devol uo) >3;



Est Trigger acionada toda vez que ocorre um Update na tabela
tb_emprestimo e o quesito da Trigger satisfeito, neste caso toda vez que o
emprstimo e a devoluo for maior que 3 dias ele cobra uma taxa de atraso
de 5 reias.

Este exemplo mostra que atravs da Trigger aps uma insero
conseguimos validar o atraso da devoluo e cobrarmos a taxa estipulada no
projeto, este um exemplo simples da funcionalidade de Trigger, no sub-item
posterior explicarei mais sobre Triggers.
73



7.2.2.1Triggers(Gatilhos)


Segundo (Bianchi, 2010), um Trigger um tipo especial de procedimento
armazenado, que executado sempre que h uma tentativa de modificar os
dados de uma tabela que protegida por ele.


Os Triggers so definidos em uma tabela especfica, que denominada
tabelas de Triggers so chamados automaticamente. Quando h uma tentativa
de inserir, atualizar ou excluir os dados em uma tabela, e um Trigger tiver sido
definido na tabela para essa ao especfica, ele ser executado
automaticamente, no podendo nunca ser ignorado.


No podem ser chamados diretamente, ao contrrio dos procedimentos
armazenados do sistema, os disparadores no podem ser chamados
diretamente e no passam nem aceitam parmetros.


parte de uma transao, o Trigger e a instruo que o aciona so
tratados como uma nica transao, que poder ser revertida em qualquer
ponto do procedimento, caso voc queria usar ROLLBACK, conceitos que
veremos mais a frente

74


Para que um TRIGGER seja disparado, o usurio o qual entrou com as
instrues, dever ter permisso de acessar tanto a entidade e
conseqentemente ao TRIGGER.


7.2.2.1.1UsoseaplicabilidadedosTriggers


-Impor uma integridade de dados mais complexa do que uma restrio
CHECK;
-Definir mensagens de erro personalizadas;
-Manter dados desnormalizados;
-Comparar a consistncia dos dados posterior e anterior de uma
instruo UPDATE;


Os Triggers so usados com enorme eficincia para impor e manter
integridade referencial de baixo nvel, e no para retornar resultados de
consultas. A principal vantagem que eles podem conter uma lgica de
processamento complexa.


Voc pode usar Triggers para atualizaes e excluses em cascata
atravs de tabelas relacionadas em um banco de dados, imporem integridades
mais complexas do que uma restrio CHECK, definir mensagens de erro
75

personalizadas, manter dados desnormalizados e fazer comparaes dos


momentos anteriores e posteriores a uma transao.


Voc pode utilizar os TRIGGERS para impor integridade referencial da
seguinte maneira:


Executando uma ao ou atualizaes e excluses em cascata:
A integridade referencial pode ser definida atravs do uso das restries
FOREIGN KEY e REFERENCE, com a instruo CREATE TABLE. Os Triggers
fazem bem o trabalho de checagem de violaes e garantem que haja
coerncia de acordo com a sua regra de negcios. Se voc exclui um cliente,
de certo, voc ter que excluir tambm todo o seu histrico de movimentaes.
No seria boa coisa se somente uma parte desta transao acontecesse.


Criando disparadores de vrios registros:
Quando mais de um registro atualizado, inserido ou excludo, voc
deve implementar um Trigger para manipular vrios registros.

76

7.3Desenvolvimentodainterface


Como dito no captulo de vantagens, uma delas a fcil implementao
de interfaces, no caso da implementao toda no banco de dados no
preciso se preocupar em implementar alguma regra de negcio ou muita
codificao no projeto na parte da interface.


No estudo de caso pode-se criar a interface mais facilmente, pois o
prprio Visual Studio possui um assistente de criao de interface, onde no
precisamos de muita habilidade para criao das telas, seria praticamente o
processo de arrastar quais funes que na sua interface como, por exemplo,
botes, campos de texto, ttulos de interface e etc. A seguir na figura 13 ser
apresentada a cara da interface do Visual Studio e uma figura com uma tela
criada pelo projeto do estudo de caso.


77


Figura 13: tela para criao de interface dentro do Visual Studio.
Fonte: Aplicativo Visual Studio, figura gerada pelo autor.


Como se v na figura 13 a parte destacada com o quadrado mostra, os
itens que se pode inserir na interface e arrastar para tela principal e montar a
interface do modo desejado, sem precisar de codificao.
78


Figura 14: tela para criao de interface dentro do Visual Studio.
Fonte: Aplicativo Visual Studio, figura gerada pelo autor.


J na figura 17 pode-se ver uma interface, que a interface principal do
nosso sistema de biblioteca criada, pode-se ver que usamos alguns itens da
caixa de itens e conseguimos montar facilmente a interface da aplicao.


7.4ConexodainterfacecomBancodeDados


Para este estudo de caso que foi utilizado banco de dados Sql Server
com interface em VB a conexo bem simples, o prprio aplicativo Visual
Studio j possui um assistente de conexo.


79

Como o Sql Server j est nativo no Visual Studio no preciso de


nenhum tipo de adaptador para se conseguir a conexo do banco de dados
com a interface, utilizamos diretamente o assistente com apenas algumas
etapas j conseguimos a conexo com o banco de dados. Segue o exemplo de
como foi criada a conexo no Visual Studio conforme mostra a figura 15, 16 e
17.



Figura 15: Assistente de criao de conexo de banco de dados com interface.
Fonte: Aplicativo Visual Studio, figura gerada pelo autor.
80


Figura 16: Assistente de criao de conexo de banco de dados com interface.
Fonte: Aplicativo Visual Studio, figura gerada pelo autor.


Figura 17: Assistente de criao de conexo de banco de dados com interface.
Fonte: Aplicativo Visual Studio, figura gerada pelo autor.
81

Como possvel ver nas figuras 15, 16 e17 o assistente bem simples e
em dois passos j criada a nossa conexo criada, primeiro escolhe-se com
qual tipo de banco de dados iremos nos conectar, depois se d o nome a
conexo do banco de dados e pronto a conexo est criada.


Ser Tratada tambm agora sobre a codificao necessria para que
pela interface consigamos dar os comandos acionando o banco de dados, para
fazer as inseres, alteraes, delees e pesquisa no banco de dados.


V-se na figura 18 que os comandos de codificao a serem criados so
bem simples, isto que j havamos dito como uma das vantagens neste tipo de
abordagem de implementao de aplicaes no banco de dados. A codificao
simples, praticamente igual para todas as telas e tambm temos a vantagem
de no dar a opo de que algum que tenha acesso a interface ter acesso a
como os processos so executados no servidor de banco de dados.


possvel Ver na figura 18 que na interface o mtodo de acesso ao
banco acionado pelo boto est apenas chamando a Stored Procedure em
questo e dando os parmetros de entrada digitados atravs dos campos da
interface, no sabendo como esta procedure executada dando maior
segurana ao projeto. Segue na figura 18 como fica a codificao do projeto
na interface.


82


Figura 18: Codificao de acesso do banco de dados com a interface.
Fonte: Aplicativo Visual Studio, figura gerada pelo autor.


Com este simples estudo de caso de um sistema de biblioteca de uma
faculdade exemplifica de forma com que fique mais fcil o entendimento e
demonstrando atravs de exemplos prticos, as vantagens que foram citadas
no captulo seis e tambm o tema principal deste estudo.








83

8Consideraesfinaiseestudosfuturos


O estudo bibliogrfico e o exemplo de aplicao atravs do estudo de
caso biblioteca de faculdade consegue demonstrar algumas das vantagens da
aplicao da tcnica de implementao de sistemas ou aplicaes com a regra
de negcio e a codificao no banco de dados.


Este projeto foi feito em Sql Server e VB, mas poderia ter sido aplicado
com outros sistemas tambm como Oracle, Firebird entre outros e interface em
Java ou algum tipo de interface web que o projeto e a aplicao no iria se
alterar de maneira muito drstica.


Com este estudo forma demonstradas as vantagem deste tipo de projeto
e tentamos com estas vantagens mostrar, alm disto, que com a grande
evoluo dos SGBDs ou seja Sistemas Gerenciadores de Banco de Dados a
utilizao deste tcnica tende a crescer bastante no mercado empresarial.


Hoje em dia a aplicao deste mtodo ainda no to utilizada em
empresas, pois os SGBDs esto em crescente evoluo a pouco tempo de
modo a utilizao em empresas seja difundida.


84

Foi procurado neste estudo somente as vantagens da utilizao do


banco de dados para este tipo de viso na implementao de projetos, no
procurei fazer comparaes.


Neste estudo alm de se conseguir ver as vantagens da utilizao deste
mtodo conseguimos esclarecer muitas duvidas de conceitos bsicos de banco
de dados como segurana, normalizao, integridade, entre outras e
conseguimos explicar tambm como se faz isso atravs de explicaes de
como so utilizadas Storde Procedures, Triggers, mostrando a importncia de
um projeto anterior a implementao da codificao no banco de dados, alguns
conceitos sobre Chaves Primrias e Chaves Estrangeiras (PK, FK), com todo o
estudo terico e projeto consegue-se elucidar de forma satisfatria esta
utilizao.


Como dito no objetivo do estudo e no decorrer do projeto deste TCC,
forma demonstradas apenas as vantagens da utilizao deste mtodo e
acredita-se que na medida do possvel foram demonstradas algumas das
principais vantagens desta utilizao, por ser um estudo de perodo curto
consegue-se elucidar boa parte do objetivo, mas pode-se deixar para estudos
futuros alguns pontos interessantes que podem ser considerados.


Pode-se deixar como pontos para estudos futuros, por exemplo, um
estudo sobre as desvantagens da utilizao deste mtodo, procurando
demonstrar tambm os pontos fracos, e claro que como todos mtodos
utilizados no mercado atual existem tambm algumas desvantagens.

85


Pode-se deixar tambm como uma boa dica para estudo futuro algumas
comparaes de utilizao deste mtodo com a utilizao de outros mtodos
utilizados. Com um comparativo pode-se enxergar de modo mais efetivo as
vantagens e desvantagens de um mtodo com relao ao outro e pode-se
tambm verificar qual mtodo seria mais vantajoso e em qual situao escolher
ou um ou o outro.


Como dito anteriormente mesmo com pontos para estudo futuro
considera-se este estudo como satisfatrio no mbito do objetivo definido no
comeo deste estudo.















86

RefernciasBibliogrficas


BIANCHI, Wagner. (2010), Introduo Triggers , Disponvel em:
http://www.devmedia.com.br/post-1695-Introducao-a-TRIGGERS.html.
Acessado em: 10 novembro, 2010 s 18h00min.

DATE, C. J. Introduo a Sistema de banco de dados, editora Campus,
2000.

DATE, C. J. Introduo a Sistemas de Bancos de Dados , editora Campus,
8 ed,1990.

ELMARSI, RAMEZ & NAVATHE, SHAMKANT - Sistemas de Banco de
Dados, editora addison-wesley, 4ed, 2005.

IBM. (2005) Centro de Informaes do DB2 , Disponvel em:
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp Acesso em: 13
agosto, 2010 s 20h00min.

NETO, Francisco Gonalves Pereira. (2010), Banco de dados Hierrquico
Exemplo, disponvel em: http://e-reality-home.blogspot.com/2008/09/banco-
de-dados-hierarquico-exemplo.html acessado em 30/09/2010 s 18hrs00min.

NETO, Francisco Gonalves Pereira. (2010), Banco de dados Hierrquico
Exemplo, disponvel em: http://e-reality-home.blogspot.com/2008/09/banco-
de-dados-hierarquico-exemplo.html acessado em 30/09/2010.
87


PEREIRA NETO, Francisco Gonalves Pereira. (2010), Banco de dados
Hierrquico Exemplo, disponvel em: http://e-reality-
home.blogspot.com/2008/09/banco-de-dados-hierarquico-exemplo.html
acessado em 30/09/2010.

NAVATHE, Elmasri. (2002), Sistemas de Banco de Dados, Fundamentos e
Aplicaes, 3 edio. Rio de Janeiro: LTC, 837 pginas.

PRADO, D., Administrao de projetos com PERT/CPM.2ed. Belo Horizonte:
Ed. UFMG, 1988. 126p. ISBN 8521603355

TAKAI, O.K.; ITALIANO, I.C., FERREIRA J.E., Introduo ao Banco de
Dados. In: ELMARSI, RAMEZ & NAVATHE, SHAMKANT - Sistemas de
Banco de Dados, editora addison-wesley, 4ed, 2005.

Potrebbero piacerti anche