Você está na página 1de 14

Faculdade Inforium de Tecnologia Curso Tecnlogo em Redes

Disciplina Administrao de Banco de dados


Professor: Augusto Zadra
Ano 2008
Apostila das aulas tericas

Disciplina Administrao de Banco de dados Prof.: Augusto Zadra

Faculdade Inforium de Tecnologia Curso Tecnlogo em Redes

1. INTRODUO E CONCEITOS GERAIS


A tecnologia aplicada aos mtodos de armazenamento de informaes
vem crescendo e gerando um impacto cada vez maior no uso de
computadores, em qualquer rea em que os mesmos podem ser aplicados.
Apresentamos agora alguns conceitos gerais:
BANCO DE DADOS : pode ser definido como um conjunto de dados
devidamente relacionados.
REGISTROS: pode ser definido como uma combinao de linhas e colunas
populadas com informaes definidas em um sistema de banco de dados.
DADOS: podemos compreender como fatos conhecidos que podem ser
armazenados e que possuem um significado implcito. Porm, o significado do
termo banco de dados mais restrito que simplesmente a definio dada
acima. Um banco de dados possui as seguintes propriedades:
um banco de dados uma coleo lgica coerente de dados com um
significado inerente; uma disposio desordenada dos dados no pode
ser referenciada como um banco de dados;
um banco de dados projetado, construdo e populado com dados
para um propsito especfico; um banco de dados possui um conjunto
pr definido de usurios e aplicaes;
um banco de dados representa algum aspecto do mundo real, o qual
chamado de mini-mundo ; qualquer alterao efetuada no mini-mundo
automaticamente refletida no banco de dados.
Um banco de dados pode ser criado e mantido por um conjunto de
aplicaes desenvolvidas especialmente para esta tarefa ou por um Sistema
Gerenciador de Banco de Dados (SGBD).
SGBD: permite aos usurios criarem e manipularem bancos de dados de
propsito gerais. O conjunto formado por um banco de dados mais as
aplicaes que manipulam o mesmo chamado de Sistema de Banco de
Dados.

Disciplina Administrao de Banco de dados Prof.: Augusto Zadra

Faculdade Inforium de Tecnologia Curso Tecnlogo em Redes

2. Papeis na administrao de Bancos de dados

2.1. Administrador de Banco de Dados (DBA)


Em um ambiente de banco de dados, o recurso primrio o banco de
dados por si s e o recurso secundrio o SGBD e os softwares relacionados. A
administrao destes recursos cabe ao Administrador de Banco de Dados, o
qual responsvel pela autorizao de acesso ao banco de dados e pela
coordenao e monitorao de seu uso.
2.2. Projetista de Banco de Dados
O Projetista de Banco de Dados responsvel pela identificao dos
dados que devem ser armazenados no banco de dados, escolhendo a
estrutura correta para representar e armazenar dados. Muitas vezes, os
projetistas de banco de dados atuam como staff do DBA, assumindo outras
responsabilidades aps a construo do banco de dados. funo do
projetista tambm avaliar as necessidades de cada grupo de usurios para
definir as vises que sero necessrias, integrando-as, fazendo com que o
banco de dados seja capaz de atender a todas as necessidades dos usurios.
2.3. Usurios Finais
Existem basicamente trs categorias de usurios finais que so os
usurios finais do banco de dados, fazendo consultas, atualizaes e gerando
documentos:
Usurios casuais: acessam o banco de dados casualmente, mas que
podem necessitar de diferentes informaes a cada acesso; utilizam
sofisticadas linguagens de consulta para especificar suas
necessidades;
Usurios novatos ou paramtricos: utilizam pores pr-definidas do
banco de dados, utilizando consultas preestabelecidas que j foram
exaustivamente testadas;
Usurios sofisticados: so usurios que esto familiarizados com o
SGBD e realizam consultas complexas.

Disciplina Administrao de Banco de dados Prof.: Augusto Zadra

Faculdade Inforium de Tecnologia Curso Tecnlogo em Redes

2.4. Analistas de Sistemas e Programadores de Aplicaes


Os analistas determinam os requisitos dos usurios finais e
desenvolvem especificaes para transaes que atendam estes
requisitos, e os programadores programam estas especificaes como
programas, testando, depurando, documentando e dando manuteno
no mesmo. importante que, tanto analistas quanto programadores,
estejam a par dos recursos oferecidos pelo SGBD.
3. ADMINISTRAO DE BANCOS DE DADOS
3.1 LINGUAGENS DE MANIPULAO DE DADOS
DML: Data Manipulation Language ou Linguagem de Manipulao de Dados.
Serve para manipular as informaes que existem nas tabelas do banco de
dados.
Exemplo de comandos:
1. Select : Seleo
2. Insert : Insero
3. Update : Atualizao
4. Delete: Deleo
DDL: (Data Definition Language - Linguagem de Definio de Dados). Serve
para criar/remover estruturas/objetos do banco de dados.
Exemplo de comandos:
1. Create: Cria uma objeto
2. Alter: Altera a objeto
3. Drop: Apaga a objetivo
DCL: Data Control Language. Serve para controlar os acessos ao banco de
dados.
Exemplo de comandos:
1. Grant : Permite acesso
2. Deny : Nega acesso
Disciplina Administrao de Banco de dados Prof.: Augusto Zadra

Faculdade Inforium de Tecnologia Curso Tecnlogo em Redes

3. Revoke: Apenas remove um Grant ou um deny.


SDL: (Storage Definition Language - Linguagem de
Armazenamento) para a especificao do esquema interno

Definio

de

3.2 CONCEITOS DE ADMINISTRAO


TRANSAO: um conjunto de procedimentos que executado num banco
de dados, que para o usurio visto como uma nica ao.
O conceito ACDI,nos especifica as propriedades que garantes a integridade de
uma transao:
Atomicidade: Uma transao no pode ser executada pela metade, isto , ou
se executa ela por inteiro, ou se retorna para o estado anterior a transao ter
sido iniciada.
Consistncia: Consistncia de dados acontece quando os dados de entrada
so os mesmos da sada do banco de dados, ou que as operaes aritmticas
executadas, resultar o esperado.
Isolamento: Os resultados das instrues de cada transao, no podem
depender do resultado das instrues das outras transaes. As transaes
so independentes.
Durabilidade: Quando ocorre falha no banco de dados, apos a execuo com
sucesso de uma transao, a durabilidade garante por algum mecanismo a
recuperao das informaes perdidas.
Controle de concorrncia um mtodo usado para garantir que as
transaes so executadas de uma forma segura e segue as regras ACID. Os
SGBD devem ser capazes de assegurar que nenhuma ao de transaes
completadas com sucesso (committed transactions) seja perdida a desfazer
transaes abortadas (rollback). Requeremos, portanto, que qualquer
escaloname produzido quando se processa um conjunto de transaes ao
mesmo tempo, seja realizado em alguma ordem. Um sistema que garante esta
propriedade assegura a seriabilidade.

Disciplina Administrao de Banco de dados Prof.: Augusto Zadra

Faculdade Inforium de Tecnologia Curso Tecnlogo em Redes

LOCKS
O mecanismo de lock (travamento) evita conflitos de atualizao. Usurios no
podem ler ou modificar dados que esto sendo alterados num dado momento

PERGUNTAS:
O que commit?
O que rollback?
Como o sistema executa um rollback?
O que acontece quando ocorre um dead lock?

Disciplina Administrao de Banco de dados Prof.: Augusto Zadra

Faculdade Inforium de Tecnologia Curso Tecnlogo em Redes

4. MODELAGEM DE DADOS
4.1 REVISAO FORMAS NORMAIS
4.1.1 Normalizao de tabelas
Objetivo: O objetivo da normalizao evitar os problemas provocados por
falhas no Projeto do Banco de Dados, bem como eliminar a "mistura de
assuntos" e as correspondentes repeties desnecessrias de dados.
Uma Regra de Ouro que devemos observar quando do Projeto de um Banco
de Dados baseado no Modelo Relacoional de dados a de "no Misturar
assuntos em uma mesma Tabela".
Exemplo: Tabela Computador devemos colocar somente campos relacionados
com o assunto Computadores. No devemos misturar campos relacionados
com outros assuntos, tais como OS, Peas, etc. Essa "Mistura de Assuntos"
em uma mesma tabela acaba por gerar repetio desnecessria dos dados
bem como inconsistncia dos dados.
O Processo de Normalizao aplica uma srie de Regras sobre as Tabelas de
um Banco de Dados, para verificar se estas esto corretamente projetadas.
Embora existam 5 formas normais (ou regras de Normalizao), na prtica
usamos um conjunto de 3 Formas Normais.
1a Forma Normal
A 1a Forma Normal prega que todos os atributos de uma tabela devem ser
atmicos (indivisveis), ou seja, no so permitidos atributos multivalorados,
atributos compostos ou atributos multivalorados compostos
"Uma Tabela est na Primeira Forma Normal quando seus atributos no
contm grupos de Repetio".

Disciplina Administrao de Banco de dados Prof.: Augusto Zadra

Faculdade Inforium de Tecnologia Curso Tecnlogo em Redes

2a Forma Normal
A 2a Forma Normal prega o conceito da dependncia funcional total. Uma
dependncia funcional X  Y total se removemos um atributo A qualquer do
componente X e desta forma, a dependncia funcional deixa de existir. A
dependncia funcional X  Y uma dependncia funcional parcial se existir
um atributo A qualquer do componente X que pode ser removido e a
dependncia funcional X  Y no deixa de existir.
Na prtica ocorre quando a chave Primria composta por mais de um
campo. Neste caso, devemos observar se todos os campos que no fazem
parte da chave dependem de todos os campos que compem a chave.
Dividimos ento a Tabela que no est na Segunda Forma Normal em duas
outras tabelas sendo que as duas tabelas resultantes esto na Segunda Forma
Normal.
3a Forma Normal
A 3a Forma Normal prega o conceito de dependncia transitiva. Uma
dependncia funcional X  Y em uma tabela T uma dependncia transitiva
se existir um conjunto de atributos Z que no um subconjunto de chaves de T
e as dependncias X  Z, Z  Y, so vlidas.
Na definio dos campos de uma entidade podem ocorrer casos em que um
campo no seja dependente diretamente da chave primria ou de parte dela,
mas sim dependente de outro campo da tabela, campo este que no a Chave
Primria.
Com isso podemos concluir que como resultado do Processo de Normalizao,
iremos obter um nmero maior de tabelas, porm sem problemas de
redundncia e inconsistncia dos dados.

Disciplina Administrao de Banco de dados Prof.: Augusto Zadra

Faculdade Inforium de Tecnologia Curso Tecnlogo em Redes

4.2 REVISAO RELACIONAMENTOS


4.2.1 RELACIONAMENTO DO TIPO UM PARA UM: ( 1 1 )
Esta relao existe quando os campos que se relacionam so ambos do tipo
Chave Primria, em suas respectivas tabelas. Cada um dos campos no
apresenta valores repetidos. Na prtica existem poucas situaes onde
utilizaremos um relacionamento deste tipo.
4.2.2 RELACIONAMENTO DO TIPO UM PARA VRIOS: ( 1 N )
Este , com certeza, o tipo de relacionamento mais comum entre duas tabelas.
Uma das tabelas (o lado um do relacionamento) possui um campo que a
Chave Primria e a outra tabela (o lado vrios) se relaciona atravs de um
campo cujos valores relacionados podem se repetir vrias vezes.
4.3.3 RELACIONAMENTO DO TIPO VRIOS PARA VRIOS: ( N N )
Este tipo de relacionamento "aconteceria" em uma situao onde em ambos
os lados do relacionamento os valores poderiam se repetir. Vamos considerar o
caso entre Trocas e Pedidos. Posso ter Vrios Pedidos nos quais aparece um
determinado produto, alm disso vrios Produtos podem aparecer no mesmo
Pedido. Esta uma situao em que temos um Relacionamento do Tipo Vrios
para Vrios.
NA PRTICA NO POSSVEL IMPLEMENTAR UM RELACIONAMENTO
DESTE TIPO, DEVIDO A UMA SRIE DE PROBLEMAS QUE SERIAM
INTRODUZIDOS NO MODELO DO BANCO DE DADOS.
SOLUO PARA ESTE PROBLEMA:
Para evitar este tipo de problema bastante comum "quebrarmos" um
relacionamento do tipo Vrios para Vrios em dois relacionamentos do tipo Um
para Vrios. Isso feito atravs da criao de uma nova tabela, a qual fica com
o lado Vrios(N) dos relacionamentos.

Disciplina Administrao de Banco de dados Prof.: Augusto Zadra

Faculdade Inforium de Tecnologia Curso Tecnlogo em Redes

4.2.4 INTEGRIDADE REFERENCIAL


A Integridade Referencial utilizada para garantir a Integridade dos dados
entre as tabelas relacionadas. Por exemplo, considere um relacionamento do
tipo Um-para-Vrios entre a tabela Computadores e a tabela Ordem de Servio
(um computador pode ter vrias Ordens de servio associadas a ele). Com a
Integridade Referencial, o banco de dados no permite que seja cadastrado
uma OS para um computador que ainda no foi cadastrado. Em outras
palavras, ao cadastrar uma OS, o banco de dados verifica se o cdigo do
computador que foi digitado j existe na tabela Computador. Se no existir, o
cadastro da OS no ser aceito. Com o uso da Integridade Referencial
possvel ter as seguintes garantias:
Quando o Cdigo de um computador for alterado na Tabela
Computadores, podemos configurar para o banco de dados atualizar,
automaticamente, todos os Cdigos do Computador na Tabela OS, de
tal maneira que no fiquem Registros rfos, isto , registros de OS
com um Cdigo de Computador para o qual no existe mais um
correspondente na Tabela Computadores. Essa ao conhecida como
"Propagar atualizao dos campos relacionados".
Quando um Computador for excludo da Tabela Computadores,
podemos configurar para que o banco de dados exclua,
automaticamente, na tabela OS todas as OSs para o Computador que
est sendo Excludo. Essa opo conhecida como "Propagar
excluso dos registros relacionados".
Essas opes, conforme mostrarei logo em seguida, podem ser configuradas
quando da Definio dos Relacionamentos (no exemplo prtico mais adiante
utilizarei o Microsoft Access, mas estes conceitos so vlidos para qualquer
banco de dados). Estas opes no so obrigatrias, isto , podemos optar por
no Atualizar ou no Excluir em cascata.
A Opo de "Propagar atualizao dos campos relacionados" utilizada na
maioria das situaes, j a opo de "Propagar excluso dos registros
relacionados" deve ser estudada caso a caso. Por exemplo, se nos
quisssemos manter um histrico com os Pedidos de cada Cliente, no
utilizaramos a opo "Propagar excluso dos registros relacionados"; caso no
nos interessasse manter um histrico dos pedidos, poderamos utilizar esta
opo.

Disciplina Administrao de Banco de dados Prof.: Augusto Zadra

10

Faculdade Inforium de Tecnologia Curso Tecnlogo em Redes

5. PROJETANDO UM BANCO DE DADOS


Um banco de dados bem projetado fornece um acesso conveniente s
informaes desejadas. Com uma boa estrutura, gasta-se menos tempo na
construo de um banco de dados e, ao mesmo tempo, assegura-se resultados
mais rpidos e precisos. Nunca demais lembrar que jamais devemos misturar
assuntos em uma mesma tabela.
Essa tarefa faz parte da especificao dos requisitos de banco de dados, ou
seja, um estudo de adequao s necessidades de resoluo de um problema
no mini-mundo.

5.1 ETAPAS NA ESTRUTURAO E PROJETO DE UM BANCO DE DADOS:

5.1.1 DETERMINAR QUAL O OBJETIVO DO BANCO DE DADOS


Isto ajuda na determinao de quais os dados devem ser armazenados.
fundamental ter bem claro qual o objetivo a ser alcanado com o banco de
dados. fazer o acompanhamento das despesas, a evoluo das vendas ou
outro objetivo qualquer.

5.1.2 DETERMINAR AS TABELAS NECESSRIAS

Aps definirmos os objetivos do Banco de Dados, as informaes devem ser


definidas e separadas em assuntos diferentes, tais como "Clientes",
"Empregados", "Pedidos", pois cada um ir compor uma tabela no banco de
dados. Lembre-se da regrinha nmero um: "No misturar assuntos na mesma
tabela", ou seja, uma coisa uma coisa e outra coisa outra coisa.

5.1.3 DETERMINAR OS CAMPOS DE CADA TABELA

Definir quais informaes devem ser mantidas em cada tabela. Por exemplo, a
tabela Clientes poderia ter um campo para o Cdigo Do Cliente, outro para o
Nome Do Cliente e assim por diante.

Disciplina Administrao de Banco de dados Prof.: Augusto Zadra

11

Faculdade Inforium de Tecnologia Curso Tecnlogo em Redes

5.1.4 DETERMINAR A CHAVE PRIMRIA DE CADA TABELA, SENDO QUE


PODE HAVER TABELAS ONDE NO EXISTA UMA CHAVE PRIMRIA:
Determinar, em cada tabela, quais campos sero utilizados como Chave
Primria. Esta uma etapa importantssima para a definio dos
Relacionamentos que vem a seguir. Pode haver tabelas onde no exista uma
chave primria.

5.1.5 DETERMINAR OS RELACIONAMENTOS

Decidir como os dados de uma tabela se relacionam com os dados de outras


tabelas. Por exemplo, Clientes podem Fazer Vrios Pedidos, ento existe um
relacionamento do tipo Um-para-vrios entre a tabela Clientes (lado um) e a
tabela Pedidos (lado vrios). Fornecedores podem fornecer Vrios Produtos,
etc.

5.1.6 REFINAR A ESTRUTURA DO BANCO DE DADOS


Antes de inserir muitos dados, ou at mesmo antes de inserir qualquer dado,
verificar se a estrutura contm erros, isto , verificar se os resultados obtidos
so os desejados. Isto, normalmente, pode ser obtido atravs do processo de
Normalizao. Caso necessrio, deve-se alterar a estrutura do banco de
dados.
Com uma boa estrutura, gasta-se menos tempo na construo e manuteno
do banco de dados e, ao mesmo tempo, assegura-se resultados mais rpidos e
precisos.
5.2 DICAS PARA DETERMINAO DOS CAMPOS DE UMA TABELA

5.2.1 RELACIONAR DIRETAMENTE CADA CAMPO AO ASSUNTO DA TABELA

Se um campo descreve o assunto de uma tabela diferente, este campo deve


pertencer a outra tabela. O mesmo acontece quando uma informao se repete
em diversas tabelas. Este um indcio de que existem campos desnecessrios
em algumas tabelas.

Disciplina Administrao de Banco de dados Prof.: Augusto Zadra

12

Faculdade Inforium de Tecnologia Curso Tecnlogo em Redes

5.2.2 NO INCLUIR DADOS DERIVADOS OU CALCULADOS


No recomendado armazenar o resultado de clculos nas tabelas. O correto
que o clculo seja executado quando necessitarmos do resultado,
normalmente em uma consulta.

5.2.3 INCLUIR TODAS AS INFORMAES NECESSRIAS:


Como fcil esquecer informaes importantes, deve-se ter em mente todas
as informaes coletadas desde o incio do processo e perguntar se com elas
possvel obter todas os resultados desejados.
5.2.4 ARMAZENAR TODAS AS INFORMAES SEPARADAMENTE
Existe uma tendncia em armazenar informaes em um nico campo. Por
exemplo, o nome do curso e o tempo de durao em uma mesmo campo.
Como as duas informaes foram combinadas em um nico campo, ficar
difcil conseguir um relatrio classificado pelo tempo de durao dos cursos.
Como selecionar o campo que ser a Chave Primria?
Um bom Sistema Gerenciador de Banco de Dados (SGBD) aquele que
encontra e nos fornece, rapidamente, todas as informaes necessrias que
nele estejam armazenadas, mesmo que estas informaes estejam em
diferentes tabelas. Para que isto seja possvel necessrio incluir um campo
ou conjunto de campos que identifiquem de modo nico cada registro de uma
tabela. Esta informao chamada Chave Primria. Deve-se ter certeza que
este campo (ou conjunto de campos) seja sempre diferente para cada registro,
por no ser permitido valores duplicados em um campo de chave primria.
5.2.5 AO ESCOLHER CAMPOS DE CHAVE PRIMRIA, CONSIDERE OS
SEGUINTES DETALHES
No permitida duplicidade de valores ou nulos (informaes desconhecidas).
Caso no exista um identificador nico para uma determinada tabela, pode-se
usar um campo que numere os registros seqencialmente.

Pode-se utilizar o valor deste campo para encontrar registros.

Disciplina Administrao de Banco de dados Prof.: Augusto Zadra

13

Faculdade Inforium de Tecnologia Curso Tecnlogo em Redes

O tamanho da chave primria afeta a velocidade das operaes, portanto, para


um melhor desempenho, devemos utilizar o menor tamanho que acomode os
valores necessrios que sero armazenados no campo.
Agora que j revisamos diversos conceitos importantes sobre banco de dados
vamos coloc-los em prtica, atravs de um exerccio de Projeto de Banco de
Dados. Ser apresentada uma determinada situao e voc dever projetar o
Banco de Dados para atender a Situao Solicitada. Projetar o banco de dados
significa fazer um diagrama Entidade x Relacionamentos onde so indicadas
quais tabelas faro parte do banco de dados, quais os campos de cada tabela,
qual o campo que ser a Chave

Disciplina Administrao de Banco de dados Prof.: Augusto Zadra

14