Professional Documents
Culture Documents
Administraao de Banco de
Dados I
WFernando Bastos
CONTEDO
Referncia bibliogrfica:
Felipe Nery Rodrigues Machado, Banco de Dados Projeto e Implementao Editora rica
Fanderuff, Damaris .Dominando o Oracle 9i Modelagem e Desenvolvimento Pearson Education Makron Books
BANCO DE DADOS
Definio : uma coleo organizada de dados. uma ferramenta desenvolvida para a
manipulao eficiente de um grande conjunto de informaes estruturadas e armazenadas de forma
organizada e integrada.
Caractersticas de SGBD :
Integridade: consiste em impedir que determinado cdigo ou chave em uma tabela no tenha
correspondncia em outra tabela. PK e FK.
Segurana ou privacidade: define para cada usurio o nvel de acesso tabela e /ou campo, seja
de leitura, leitura e gravao ou sem acesso.
2
Administrao de Banco de Dados I
MODELAGEM DE DADOS
Existe de um lado as tcnicas de Orientao a Objetos ( que atualmente indiscutvel a vantagem obtida
no projeto) e o grande mercado nacional e mundial utilizando os SGBD Relacionais. E como permitir que
um projeto desenvolvido em O.O. seja facilmente inserido em um ambiente de banco de dados relacional?
Denominamos como camada de persistncia de dados.
O nosso objetivo dominar as tcnicas de modelagem de dados para banco de dados relacionais,
completando com a implementao em projetos de anlise estruturada ou com um projeto orientado a
objetos.
Um dos principais problemas relacionados com banco de dados a redundncia, solucionamos com a
criao de vrias tabelas apesar de aumentar a complexidade. Quando se admite a redundncia, muito
comum ter que repetir nomes, descries, etc. Ao isolarmos essas informaes em tabelas distintas e ao
relacionarmos as tabelas por um cdigo comum estamos economizando espao de armazenamento.
A modelagem de dados busca representar a organizao dos dados do mundo real. O objetivo de um
modelo de dados garantir que as informaes existentes requeridos pela aplicao e pelo banco de
dados estejam representados de forma simples para que tanto o usurio final entenda e o DBA
(administrador do banco de dados) utilize para a criao da estrutura final do SGBD.
O analista abstrai do mundo real, ou seja, a parte do negcio que tem interesse em controlar, sem se
preocupar nesse primeiro momento com qualquer conceito tcnico. Obtemos assim um modelo
conceitual, tendo como resultado um esquema grfico.
O segundo passo iniciar o modelo lgico, considerando as abordagens da tecnologia dos SGBD (
relacional, hierrquica, rede ou Orientado a objeto) mas sem considerar, ainda, nenhuma caracterstica
especfica de SGBD.
Somente no modelo fsico, que ser construdo a partir do modelo lgico, deve obrigatoriamente definir o
SGBD e descrever estruturas fsicas de armazenamento de dados.
Metodologia Case
O processo de Anlise de Dados pressupe trs fases distintas e integradas:
Figura 1
3
Administrao de Banco de Dados I
Estratgia
Anlise
Projeto
Construo
Figura 2
4
Administrao de Banco de Dados I
Modelo Conceitual
Representao dos conceitos e caractersticas observados no ambiente;
Ignorar particularidades de implementao.
Modelo Lgico
Regras de Derivao:
Normalizao das estruturas de dados
Derivao de estruturas de agregao e generalizao-especializao
Derivao de relacionamentos
Regras de Restrio:
Restrio de domnio
Restrio de Integridade
Restrio de Implementao
Modelo Fsico
Inclui a anlise das caractersticas e recursos necessrios para armazenamento e
manipulao das estruturas de dados (estrutura de armazenamento, endereamento,
acesso e alocao fsica).
Modelo Entidade-Relacionamento
O Modelo Entidade-Relacionamento foi definido por Peter Chen em 1976, e teve como base a teoria
relacional criada por E.F.Cood (1970). Segundo Chen, a viso de uma dada realidade, baseia-se no
relacionamento entre entidades, os quais retratam os fatos que governam esta mesma realidade, e
que cada um (entidade ou relacionamento) pode possuir atributos (qualificadores desta realidade).
A tcnica de modelagem Entidade-Relacionamento proposta por Peter Chen est definida como uma
notao orientada para o desenho do modelo conceitual, pois permite a descrio desse esquema
conceitual sem a preocupao com problemas de implementao fsica ou de performance de banco
de dados.
5
Administrao de Banco de Dados I
Usaremos a notao grfica original de Peter Chen com mnimas adaptaes e extenses e
comentrios da Metodologia Case, James Martin. Para montar um modelo necessrio estudar
detalhadamente os conceitos:
ENTIDADE
As entidades so o conjunto de objetos de mesma natureza, com as mesmas caractersticas ou
atributos, abrigados sob um nome genrico. Entidade algo que desempenha papel especfico no
sistema que est sendo modelado; algo sobre o qual se deseja guardar informaes. A existncia
e a identificao de uma entidade dependem inteiramente do contexto em que ela estiver inserida.
Uma entidade pode ser: um objeto real, como livro, mquina, lugar, etc;
Uma pessoa, como empregado, contribuinte, cliente, aluno, etc;
Um conceito abstrato, como curso, conta, etc;
Um acontecimento, uma situao em que algo est ocorrendo ou est planejado, como fornecimento
de encomenda, casamento, etc;
Entidade fraca ou dependente: Sua existncia depende da existncia de outra entidade, dita
forte.
Exemplos: A Entidade BANCO uma entidade forte (no depende de ningum). A Entidade
AGENCIA depende dela).
A Entidade DISCIPLINA uma entidade forte e a Entidade TURMA a Entidade fraca da tabela
Disciplina. (a existncia da primeira tabela dependente da segunda)
6
Administrao de Banco de Dados I
ATRIBUTOS
Atributos so informaes referentes a uma entidade que necessitam ser conhecida ou at mesmo
armazenadas. Atributos descrevem uma Entidade pela qualificao, identificao, quantificao ou
expresso de estado da Entidade. O que descreve uma Entidade?
No caso de uma pessoa, um funcionrio de um banco por exemplo, quais so os dados importantes
que devero ser mantidos?
FUNCIONARIO (matricula, nome, endereo, telefones, dataNascimento)
Atributo Multivalorado: Abriga vrios valores para uma nica instncia de uma entidade;
Atributo Derivado: Pode ser calculado a partir dos demais atributos da entidade;
Representao de um atributo
Nome de um atributo deve ser sempre no singular, no colocar acentuao;
Utilizar nomes breves e objetivos que identifiquem facilmente o contedo do atributo;
Se uma entidade tm atributos multivalorados temos de criar uma tabela com o atributo determinante
dessa entidade e o atributo multivalorado ou se isso no se justificar definir um nmero fixo para
esse atributo e desdobr-lo nesse nmero de colunas.
Se uma entidade tm atributos compostos temos de criar na tabela dessa entidade colunas
referentes a esse atributo.
7
Administrao de Banco de Dados I
8
Administrao de Banco de Dados I
Opcionais: Um valor pode ser conhecido para cada ocorrncia da Entidade. [o/ (0,1)]
RELACIONAMENTOS
Um relacionamento pode ser entendido como uma associao entre instncias de Entidades devido
a regras de negcio. Normalmente ocorre entre instncias de duas ou mais Entidades , podendo
ocorrer entre instncias da mesma Entidade (auto-relacionamento).
Com a evoluo e a criao de ferramentas CASE, foram criadas outros tipos de notao.
Engenharia de Informaes foi criado na dcada de 80 por James Martin. A maioria das
ferramentas case de mercado no disponibilizam o tipo de notao Peter Chen.
9
Administrao de Banco de Dados I
Grau de Relacionamento
O numero de conjuntos de entidades que participa de um conjunto de relacionamento tambm o
grau desse conjunto de relacionamento. Um conjunto de relacionamento binrio de grau dois; um
relacionamento ternrio de grau trs. O mais comum o binrio.
Ternrio Binrio
DEPARTAMENTO SETOR
gerencia
est subordinado
cod_depto cod_setor
nome_depto nome_setor
10
Administrao de Banco de Dados I
Peter Chen
Metodologia Case
Cod_depto
Cod_depto
O instrutor de Nome_depto
Nome_depto
Frequentado por
Participante de
ALUNO
Cod_depto
Nome_depto
11
Administrao de Banco de Dados I
RESTRIES DE INTEGRIDADE
As restries de integridade no banco de dados:
Integridade -> correo, consistncia e segurana dos dados armazenados.
Os aspectos de integridade bsica do modelo relacional esto associados aos conceitos de chave de
acesso. Ou seja, garantir a integridade de um esquema relacional significa garantir o acesso
individualizado a todas as ocorrncias de uma tabela, assim como garantir relacionamentos vlidos e
condizentes com a realidade.
CHAVE NICA (chave candidata) : Alm da chave primria, uma tabela pode possuir quantas
chaves nicas forem necessrias.
CHAVE SECUNDRIA: a chave auxiliar de acesso a uma tabela. A chave secundria tambm
possui ndices relacionados utilizados em campos onde se efetua constante pesquisa de acesso.
No precisam ser necessariamente nicos.
CHAVE ESTRANGEIRA (foreign key fk): Permite o acesso e a validao de outras tabelas. Essa
chave permite que se estabeleam os relacionamentos em um banco de dados. A chave estrangeira
deve ser compatvel com sua correspondente em outra tabela, isso garante a integridade referencial.
Caracterizam as restries nas quais os relacionamentos entre entidades esto submetidos (regras
do negcio).
Exemplo:
O esquema de Entidade Relacionamento de uma empresa pode definir certas restries, as quais o
contedo do banco de dados deve respeitar. Isso feito utilizando o Mapeamento de Cardinalidade:
expressa o nmero de entidades as quais outra entidade pode estar associada via um conjunto de
relacionamentos.
12
Administrao de Banco de Dados I
GRAU DE CARDINALIDADE
O grau de cardinalidade representa a quantidade de ocorrncias de cada entidade que esto
envolvidas no relacionamento. Podem ser:
Cardinalidade mxima: indica a qtde. mxima de ocorrncias de entidades que podem estar
associadas a uma ocorrncia da outra entidade (1 ou N).
Um_para_Um (1:1) - Uma entidade em A est associada no mximo a uma entidade em B, e uma
entidade em B est associada a no mximo uma entidade em A.
Um_para_Muitos (1:N) - Uma instncia de uma entidade A est associada a qualquer nmero de
instncias da entidade B. Porm, uma instncia da entidade B pode estar associada, no mximo, a
uma instncia da entidade A.
Muitos_para_Um (N:1) - uma instncia da entidade A est associada a uma instncia de B. Porm,
uma instncia de B pode estar associada a qualquer nmero de instncias de A.
Muitos_para_Muitos(M:N) - uma instncia da entidade A est associada a qualquer nmero de
instncias da entidade B, e vice-versa.
13
Administrao de Banco de Dados I
Exemplos:
Entidade A Entidade B
ATRIBUTOS DE RELACIONAMENTOS
Normalmente ocorrem quando duas ou mais entidades esto relacionadas, e necessrio manter
informaes sobre esta associao.
Atributos de relacionamentos so normalmente assinalados em relacionamentos muitos para muitos.
Nunca assinalamos atributos em relacionamentos 1-1 ou 1-N.
14
Administrao de Banco de Dados I
fixa-se uma instncia da uma das entidades, e observa-se o valor do atributo para cada mudana
de instncia na outra entidade.
se o valor do atributo mudar, ento ele no pertence entidade que foi fixada.
PREO, QUANTIDADE e PRAZO, no podem pertencer a PRODUTO, pois se fosse assim TODOS
os FORNECEDORes deveriam praticar o mesmo preo.
(Peter Chen)
15
Administrao de Banco de Dados I
NOMEAR O RELACIONAMENTO
Nomear cada direo de um Relacionamento. (voz ativa e voz passiva).
Exemplo:
Considerar o relacionamento entre departamento e empregado.
16
Administrao de Banco de Dados I
Exemplo:
DEVE UM EMPREGADO SER ATRIBUDO A UM DEPARTAMENTO? Sempre?
EXISTE ALGUMA SITUAO EM QUE O EMPREGADO NO DEVER SER ATRIBUIDO
A UM DEPARTAMENTO?
NO UM EMPREGADO SEMPRE DEVE SER ATRIBUDO PARA UM DEPARTAMENTO!
Exemplo:
PODE UM EMPREGADO SER ATRIBUDO A MAIS QUE UM DEPARTAMENTO?
NO, UM EMPREGADO PODE SER ATRIBUDO A SOMENTE UM DEPARTAMENTO.
VALIDAR O RELACIONAMENTO
Ler em voz alta o Relacionamento.
A leitura do Relacionamento deve ter senso com relao ao negcio.
Exemplo:
CADA EMPREGADO DEVE SER ATRIBUDO A UM E SOMENTE UM DEPARTAMENTO.
CADA DEPARTAMENTO PODE SER RESPONSVEL POR UM OU MAIS EMPREGADOS.
Devemos evitar dados derivados, pois so dados redundantes que podem gerar inconsistncias
no banco de dados. Relacionamento 1:1 so raros (pode ser a mesma entidade)
17
Administrao de Banco de Dados I
A generalizao difere dos demais relacionamentos (entidade fraca, n-rios etc.) porque a primeira
se trata de um relacionamento entre entidades.
Atributos e operaes e relacionamentos so herdados pelas entidades filhas.
18
Administrao de Banco de Dados I
DEPARTAMENTO
COOPERATIVA
DOMNIO
A noo de domnio de um item de dado assemelha-se noo de domnio de um conjunto na
matemtica. um conjunto de regras de validao do negcio, restries de formatos e outras
propriedades que se aplicam a um grupo de atributos.
Por exemplo: Uma lista de valores (F, M para sexo, por exemplo); uma faixa de valores ([1,12])
para ms, por exemplo).
O domnio definido uma nica vez no dicionrio de dados (banco de dados especificamente criado
para guardar as definies dos dados e diagramas relacionados no banco de dados) e cada atributo
ser associado ao seu respectivo domnio.
TABELA
Objeto criado para armazenar os dados fisicamente. Os dados so armazenados em linhas
(registros) e colunas (campos). Os dados de uma tabela normalmente descrevem um assunto tal
como clientes, vendas, etc. Quando transporta ao modelo fsico, uma tupla equivale a uma registro
ou linha da tabela.
19
Administrao de Banco de Dados I
Com a concluso da modelagem inicial, vamos dar incio ao projeto inicial de Banco de Dados.
O projeto de Banco de Dados realizado durante o estgio de Projeto do Ciclo de Desenvolvimento
e realizado concorrentemente com projetos de aplicaes.
1. Transcrever o Modelo ExR para Tabelas Relacionais para produzir um projeto inicial.
2. Redefinir projeto inicial para produzir um projeto completo de banco de dados.
NOT NULL - NN (NO NULA, ou seja no pode estar vazio, o zero um alfanumrico e
espao um caractere para o banco de dados)
20
Administrao de Banco de Dados I
Metodologia Case
FUNCIONARIO DEPARTAMENTO
#* id #* cdigo_depto
* nome * nome
o celular
Tabela: FUNCIONARIO
Tipo de Chave PK FK
Peter Chen
Tipo de Chave PK FK
21
Administrao de Banco de Dados I
NORMALIZAO DE TABELAS
Normalizao um conjunto de regras para minimizar redundncia de dados.
Redundncia de dados causam problemas de integridade. Atualizaes e delees podem no ser
aplicadas de forma consistente para todas as cpias dos dados causando inconsistncias de dados.
Normalizao auxilia na identificao de Entidades, Relacionamentos e tabelas faltantes ou
ausentes.
CONCLUSO: Uma tabela est na 1FN se nenhum dos seus atributos tem domnio multivalorado.
OBJETIVO: Evitar que se tenha de reservar espaos para armazenar dados multivalorados, sendo que
o espao pode ser desperdiado em um registro e se insuficiente em outro.
UTILIZAO: Projetam-se os atributos com domnio multivalorado para fora da tabela, levando um
atributo (geralmente a chave da tabela original) como elo para refazer a ligao e recuperar o
contedo da tabela original. PKFK / PK
CONCLUSO: Uma tabela est na 2FN quando est na 1FN e seus atributos dependem
funcionalmente da totalidade da chave ou do atributo determinante. A 2FN aplica-se a tabelas onde a
chave (atributo determinante) composta por mais de um atributo
OBJETIVO: Evitar que se mantenham informaes sobre um conjunto que tem interseco com o
conjunto representado na tabela, mas possui existncia independente. Alm da maior ocupao de
espao, a redundncia aumenta a possibilidade de inconsistncia.
UTILIZAO: Projetam-se os atributos que dependem funcionalmente da parte da chave para fora da
tabela, levando parte da chave que determina como elo para refazer a ligao e recuperar o
contedo da tabela original. PKFK / PKFK
22
Administrao de Banco de Dados I
CONCLUSO: Uma tabela est na 3FN quando est na 2FN e no h dependncia funcional transitiva
entre seus atributos. Dependncia funcional transitiva a situao em que um atributo depende de
outro e este segundo depende de um terceiro.
UTILIZAO: Projetam-se os atributos que dependem transitivamente da chave para fora da tabela,
levando o seu determinante direto como elo para refazer a ligao e recuperar o contedo da tabela
original. Dados de outra tabela que no seja identificada pela PK cria uma nova tabela.
Pode-se normalizar durante a modelagem de dados. dito que uma tabela est normalizada
quando atende at a 3FN, porm se houver necessidade aplicar a 4FN e 5FN.
Uma entidade est na FNBC se e somente se todos os determinantes forem chaves candidatas.
Exemplo:
23
Administrao de Banco de Dados I
Exemplo:
No normalizado:
1 FN
2 FN
3 FN
24
Administrao de Banco de Dados I
DESNORMALIZAO
Desnormalizao significa que voc propositadamente no efetuou o design do banco de dados at
a 3 Forma Normal. Isto feito visando maximizar a performance ou para simplificar a manipulao
dos dados para o usurio final. Sempre que voc desnormalizar um banco de dados, voc deve
estar disposto a perder os benefcios ganhos atravs da 3 Forma Normal.
Nota: Voc deve iniciar a partir da 3 FN. Se o problema com performance continuar, volte para a 2 FN ou
1FN. Tenha em sua mente que quando voc desnormaliza um banco de dados, voc o faz para uma aplicao
especfica, por exemplo um Data Warehouse.
Performance
Um banco de dados na 3 FN pode requerer mais joins para processar queries que na 2 ou 1
FN. Estes joins adicionais podem ser dispendiosos em termos de CPU ou I/O de disco.
Tcnicas
Dados Duplicados Podem reduzir o nmero de joins requeridos para processar uma querie,
assim reduzindo o consumo de CPD e I/O de disco.
Dados Resumidos Melhoram o desempenho de uma querie por reduzir ou eliminar os passos
requeridos para a sumarizao dos dados.
Partio Horizontal a diviso de uma tabela em duas novas tabelas levando em considerao o
nmero de registros, assim reduzindo o nmero de linhas por tabela.
Partio Vertical a diviso de uma tabela em duas novas tabelas levando em considerao o
nmero de colunas, assim reduzindo o nmero de colunas por tabela.
25