Você está na página 1de 70

Banco de dados I

Contedo Programtico
Conceitos bsicos
Modelo entidade relacionamento
Normalizao
Bibliografia
HEUSER, Carlos A. Projeto de Bancos de Dados. Sagra, 1998. (Livro-
texto)
MACHADO, Felipe Nery R. & ABREU, Maurcio. Projeto de Banco de
Dados. Editora rica, So Paulo, 1995.
Conceitos bsicos Conceitos bsicos
Dado: Dado:
Um fato, alguma coisa sobre a qual uma inferncia
baseada.
Informao:
Dado interpretado como um valor, inferncia
li d realizada
Definio genrica de Banco de Dados (BD):
C l d d d l i d Coleo de dados relacionados.
Conceitos bsicos (cont ) Conceitos bsicos (cont.)
Propriedades implcitas de umBD: Propriedades implcitas de um BD:
Representa aspectos do mundo real;
Possui um grau de interao com eventos do mundo g
real;
Possui um pblico ativamente interessado em seu
contedo contedo.
Aplicaes de banco de dados Aplicaes de banco de dados
Bancrias: saque, depsito. Bancrias: saque, depsito.
Bibliotecas: catlogo, usurios.
Indstria: vendas produo compras Indstria: vendas, produo, compras
Recursos Humanos: funcionrios, salrios.
Supermercado: inventrio estoque Supermercado: inventrio, estoque.
Implementao da informtica Implementao da informtica
Emgeral, as empresas implementam Em geral, as empresas implementam
gradativamente a automao de suas funes.
Implementao da informtica Implementao da informtica
Por exemplo, vejamos o caso de uma indstria, Por exemplo, vejamos o caso de uma indstria,
que possua as funes abaixo:
Vendas.
Produo.
Compras.
Onde ficam os dados de produto?
Sistemas isolados
D d ilh d - Dados no compartilhados
Produo Vendas
Compras
Arquivos produo
produtos
...
Arquivos vendas
Arquivos compras
produtos
...
produtos
...
p
produtos produtos
Redundncia de dados Redundncia de dados
Ummesmo dado ocorre mltiplas vezes Um mesmo dado ocorre mltiplas vezes
em locais diferenciados em um sistema
computacional computacional.
I i t i d d d Inconsistncia de dados.
Como evitar redundncias no
l d controladas
Compartilhamento de dados. Compartilhamento de dados.
Cada informao armazenada uma nica vez.
Utilize o conceito de banco de dados Utilize o conceito de banco de dados.
Banco de Dados Banco de Dados
Conjunto de arquivos integrados que atendema Conjunto de arquivos integrados que atendem a
um conjunto de aplicaes.
Produo Vendas Compras
Banco de Dados
produtos
...
Banco de dados - conseqncias Banco de dados conseqncias
Compartilhamento de dados temreflexos na Compartilhamento de dados tem reflexos na
estrutura do software
Estrutura interna dos arquivos passa a ser mais
complexa.
Devem atender s necessidades dos diferentes
sistemas sistemas.
Soluo
Usar sistema de gerncia de banco de dados Usar sistema de gerncia de banco de dados.
Incio da programao de
li aplicaes
Programa continha todas as operaes Programa continha todas as operaes
Interface de usurio.
Transformaes de dados e clculos.
Operaes de armazenamento de dados.
Tarefas de comunicao com outras sistemas e
programas.
Evoluo da programao Evoluo da programao
Foramidentificadas funcionalidades comuns: Foram identificadas funcionalidades comuns:
Exibio dos dados na interface.
Gerenciadores de interface de usurio.
Comunicao com processos remotos.
Gerenciadores de comunicao.
Manuteno de grandes repositrios compartilhados Manuteno de grandes repositrios compartilhados
de dados.
Utilizao de Sistemas de Gerncia de Banco De Dados
(SGBDs).
Sistema Gerenciador de Banco de
D d (SGBD) Dados (SGBD)
Software que incorpora as funes de definio, Software que incorpora as funes de definio,
recuperao e alterao de dados em um banco
de dados.
Facilita a criao e a manuteno de um BD.
Manuteno de aplicaes torna-se mais simples.
Produtividade de desenvolvimento de aplicaes
aumenta.
E l O l DB2 I SQL S Exemplos: Oracle, DB2, Ingres, SQL Server,
PostgreSQL, MySQL,Informix.
Funcionalidade tpica de umSGBD Funcionalidade tpica de um SGBD
Definir banco de dados: especificar os tipos, as Definir banco de dados: especificar os tipos, as
estruturas e as restries para os dados a
serem armazenados.
Construir banco de dados: implementar o
armazenamento dos dados em questo em
meio controlado pelo SGBD.
Manipular banco de dados: estabelecer funes
d d b i para acesso aos dados no banco tais como:
incluso, consulta, alterao.
Outras funcionalidades Outras funcionalidades
Gerenciamento do acesso concorrente por p
vrios usurios mantendo todos os dados
vlidos e consistentes.
A t i d h Acesso concorrente necessrio para o desempenho
Acessos concorrentes no controlados podem levar a
inconsistncias
Exemplo: Duas pessoas lendo um saldo e atualizando-o ao
mesmo tempo
Proteo e segurana, prevenindo acessos no
autorizados.
Sistema de Banco de Dados Sistema de Banco de Dados
Sistema de banco de dados: O SGBDjunto aos Sistema de banco de dados: O SGBD junto aos
dados propriamente ditos. Algumas vezes,
inclui-se aqui as aplicaes.
Banco de Dados simplificado Banco de Dados simplificado
Usurios/Desenvolvedores
Programas das Aplicaes/Consultas
SGBD
Software para processar as
consultas/programas
SGBD
s
Software para acessar os dados
armazenados
SISTEMA
DE
Metadados
BANCO
DADOS
Arquivos de Dados
Viso geral da
estrutura do
sistema de
banco de dados
Fonte SILBERSCHATZ, KORTH &
SUDARSHAN (1999, p. 18)
COMO ORGANIZAR OS DADOS COMO ORGANIZAR OS DADOS
EM UM BANCO DE DADOS?
Modelar Modelar...
O que significa modelar? O que significa modelar?
preciso modelar?
Como devemos modelar? Como devemos modelar?
Por que devemos modelar?
Para que serve o modelo aps gerado? Para que serve o modelo aps gerado?
O que deve ser representado no modelo?
Modelagemde Dados Modelagem de Dados
Estudo das informaes existentes em um Estudo das informaes existentes em um
contexto sob observao para a construo de
um modelo de representao e entendimento de
tal contexto.
(Machado, 2004)
Passos na Modelagemde dados Passos na Modelagem de dados
Observar os elementos de umambiente. Observar os elementos de um ambiente.
Elaborar conceitos sobre estes elementos.
Caracteriz-los Caracteriz-los
Abstrair caractersticas.
Reuni los emconjuntos que os denominem Reuni-los em conjuntos que os denominem.
Represent-los.
Defini los Defini-los.
Manipul-los.
Papel do objeto observado Papel do objeto observado
Objeto Objeto
Qualquer coisa, pessoa, ambiente, conceito.
Objeto observado: Objeto observado:
Ponto de partida para qualquer projeto de
modelagem, seja ele real ou imaginrio.
A atividade mais complexa na modelagem a
compatibilizao entre as caractersticas
b d d id ( d l d ) observadas e as reproduzidas (modeladas).
Como observar?
O que devemos buscar? O que devemos buscar?
Analogias [1] Analogias [1]
Pintura de Modelos
Vivos
Modelagem de
Sistemas Vivos
Cada pessoa tem
caractersticas
Sistemas
Cada ambiente com o
qual nos depararmos caractersticas
prprias tais como
altura, peso, feies,
qual nos depararmos
ter suas
particularidades. p
contornos, apesar de
seguirem todas o
d
p
mesmo padro
esttico.
Analogias [2] Analogias [2]
Pintura de Modelos
Vivos
Modelagem de
Sistemas Vivos
Algumas pessoas
possuem
Sistemas
O ambiente pode
apresentar algumas possuem
caractersticas tais
como cicatrizes e
apresentar algumas
anomalias, defeitos e
tomar decises:
manchas que podem
prejudicar a esttica
d d t fi l (
Reproduzi-los
fielmente?
C i i l ?
do produto final (a
pintura).
Corrigi-los?
Analogias [4] Analogias [4]
Pintura de Modelos
Vivos
Modelagem de
Sistemas Vivos
Cada pintor na sala
tem um ponto de vista
Sistemas
Diferentes pontos de
vista de um mesmo p
diferente, pois esto
em diferentes
posies de
ambiente pode nos
ser apresentado.
Podemexistir ento posies de
observao. O
resultado final para
Podem existir ento
diferentes modelos,
todavia todos devero p
cada um, apesar de
coerente, diferente
para cada umdeles
preservar a mesma
essncia do
ambiente para cada um deles. ambiente.
Analogias [3] Analogias [3]
Pintura de Modelos
Vivos
Modelagem de
Sistemas Vivos
Pessoas que posam,
se cansamem
Sistemas
Se o trabalho de
modelagemfor se cansam em
determinadas
posturas e alteram
modelagem for
demorado o ambiente
modelado pode se p
suas posies.
p
alterar.
Algumas consideraes Algumas consideraes ...
1. Devemos considerar padres e experincias 1. Devemos considerar padres e experincias
anteriores de modelagens, respeitando e
observando sempre as novas particularidades
observadas.
2. O posicionamento quanto a estratgia sobre
qualidade e defeitos deve ser feito com a
orientao do interessado no modelo a ser
gerado Mant los? Corrigi los? Suprimi los? gerado. Mant-los? Corrigi-los? Suprimi-los?
...
3. Verificar se as mudanas no objeto ..ou 3. Verificar se as mudanas no objeto ..ou
ambiente so significativas para o resultado
final e tomar a deciso: desprezar mudanas?
Reiniciar a modelagem?
4. Para uma viso completa dos detalhes, duas
estratgias:
Agrupar pontos de vista diferentes durante os
trabalhos de modelagem trabalhos de modelagem.
Contar com mais de uma representao, em
diferentes nveis, para poder transmitir melhor todos p p
os conceitos captados.
Modelo
Modelo a representao abstrata e simplificada
Modelo
Modelo a representao abstrata e simplificada
de um sistema real com a qual se pode explicar
ou testar o seu comportamento, em seu todo ou
em partes.
(Cougo, 1997)
Modelos de Dados Modelos de Dados
Modelos de dados so conjunto de conceitos Modelos de dados so conjunto de conceitos
que descrevem a estrutura lgica e fsica de um
banco de dados.
Estrutura a forma como estes dados esto
agrupados , como se relacionam e quais so as
restries que podem recair sobre eles.
Premissas Premissas
Aorganizao dos dados devemser realizada A organizao dos dados devem ser realizada
da forma mais prxima da maneira como so
vistos e manipulados pelas pessoas no mundo
real
Todos os objetos que compem um
determinado contexto e requeridos pela
aplicao e pelo banco de dados devem estar
precisamente representados no modelo de precisamente representados no modelo de
dados.
Objetivos de ummodelo de dados Objetivos de um modelo de dados
Representar um ambiente observado. p
Servir de instrumento para comunicao.
Favorecer o processo de verificao e p
validao.
Capturar aspectos de relacionamento entre os
bj t b d objetos observados.
Servir como referencial para a gerao de
estruturas de dados estruturas de dados.
Estabelecer conceitos nicos a partir de vises
diversas.
Modelo de dados - contedo Modelo de dados contedo
No exemplo da indstria: No exemplo da indstria:
O modelo de dados informa:
Como so armazenadas as informaes sobre produtos.
Para cada produto, so armazenados seu cdigo, preo e
descrio.
O modelo de dados no informa: O modelo de dados no informa:
Quais os produtos que esto armazenados no banco de
dados.
Esquema de banco de dados Esquema de banco de dados
Para construir ummodelo de dados usa-se: Para construir um modelo de dados usa se:
Linguagem de modelagem de dados
Textual
Grfica
Um modelo de dados pode ser apresentado de
vrias formas (texto figura ) vrias formas (texto, figura,...)
Cada apresentao do modelo recebe a
denominao de esquema de banco de dados denominao de esquema de banco de dados.
Modelo de Dados - nveis de
b abstrao
Mundo
Real Real
Estrutura interna de
Arquivos, tabelas,
Descrio
Informal
Estrutura de Dados
Como visto pelo usurio
Modelo de Dados - nveis de
b abstrao
Modelo conceitual.
Modelo lgico.
a

o
Modelo lgico.
A
b
s
t
r
a
Modelo fsico.
A
Abstrair Abstrair...
O que abstrao? O que abstrao?
Abstrao o o ato de separar
processo mental em
que extramos dos
dados as
p
mentalmente um ou
mais elementos de
uma totalidade dados as
propriedades que
julgamos essenciais
uma totalidade
complexa (coisa,
representao, fato), j g
para caracteriz-los
em determinado
contexto
p , ),
os quais s
mentalmente podem
subsistir fora dessa contexto. subsistir fora dessa
totalidade. (cf.:
Aurlio)
Modelo conceitual Modelo conceitual
Representa conceitos prximos a como a Representa conceitos prximos a como a
grande maioria dos usurios percebem os
dados.
Capta e retrata a realidade de uma organizao,
processo de negcio, setor, repartio,
departamento, etc.
Independente da abordagem do banco de
d d ili d d i d SGBD dados que ser utilizado e do tipo de SGBD.
Modelo conceitual Modelo conceitual
Registra g
Estrutura dos dados como podem aparecer no banco
de dados.
N i t No registra
Como estes dados esto armazenados a nvel de
SGBD.
No se preocupa com o modo como sero realizadas as
operaes de consultas e manuteno dos dados nele
apresentados.
Foco:
Entendimento e representao de uma realidade, de
umcontexto um contexto.
Modelo conceitual Modelo conceitual
Representa conceitos prximos a como a Representa conceitos prximos a como a
grande maioria dos usurios percebem os
dados.
Independente de tipo de SGBD.
Registra g
Estrutura dos dados podem aparecer no banco de
dados.
No registra
Como estes dados esto armazenados a nvel de
SGBD SGBD.
Modelo Entidade-Relacionamento Modelo Entidade Relacionamento
Modela o mundo realcomo uma coleo de Modela o mundo real como uma coleo de
entidades e relacionamentos
Entidade: uma coisa ou objeto no mundo real que
distinguvel dos outros objetos.
Descrito por um conjunto de atributos.
Relacionamento: uma associao entre vrias Relacionamento: uma associao entre vrias
entidades
Tcnica mais difundida de modelagem Tcnica mais difundida de modelagem
conceitual.
Modelo Entidade Relacionamento Modelo Entidade Relacionamento
Modelo conceitual representado atravs de Modelo conceitual representado atravs de
diagrama entidade-relacionamento (DER):
saldo
nro-conta
cidade
cd-
cliente
nome
Cl i t
Co n t a
Movimen-
rua
Cl i en t e
Co n t a
tao
Modelo lgico Modelo lgico
Temseu incio aps a criao do modelo Tem seu incio aps a criao do modelo
conceitual.
Nvel de abstrao visto pelo usurio do SGBD. p
Viso do Designer:
A representao da informao de acordo com os p
termos da tecnologia utilizada (relacional, hierrquica,
rede ou orientada a objetos) para manipul-los.
Modelo lgico Modelo lgico
Descreve as estruturas do banco de dados no Descreve as estruturas do banco de dados no
formato permitido pela abordagem da
tecnologia.
No considera, ainda, nenhuma caracterstica
de um SGBD especfico.
Exemplos de Modelo lgico
l i l relacional
Grfico: Grfico:
Textual:
cliente( cod cliente nome rua cidade) cliente( cod-cliente, nome, rua, cidade).
conta(nro-conta, saldo).
cliente-conta(cod-cliente, nro-conta). cliente conta(cod cliente, nro conta).
Modelo Fsico Modelo Fsico
Contm detalhes de armazenamento interno de
informaes.
Viso do Construtor:
D d d d d Descreve como os dados podem ser armazenados em um
meio fsico.
Detalhes que
No tm influencia sobre a programao de aplicaes no
SGBD
Influenciam a performance da aplicaes p p
Usados por profissionais que fazem sintonia de
performance em banco de dados
Exemplo de modelo fsico Exemplo de modelo fsico
Grfico: Grfico:
Linguagens
Linguagem de Definio de Dados
(DDL)
Utilizada por projetistas para definir
esquemas lgicos de BD.
Linguagem de Manipulao de
Dados (DML)
Utilizada por programadores e usurios
sofisticados para acessar o BD.
Linguagens
Linguagem de Desenvolvimento de
Aplicaes
Linguagem declarativa.
Linguagem procedural ou algortmica ou
sequencial (C, Cobol, etc.), ou orientada a
eventos (Windows).
Linguagem Orientada a Objetos
Linguagem para Usurios Finais
Gerador de relatrios.
Linguagem declarativa.
Modelo fsico emDDL - SQL Modelo fsico em DDL SQL
CREATE TABLE Cli t (
SQL Structured Query Language
DDL Data Definition Language
CREATE TABLE Cliente (
cod-cliente INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
nome VARCHAR(45) NOT NULL,
rua VARCHAR(20) NULL,
cidade VARCHAR(15)) NULL,
PRIMARY KEY(cod-cliente)
);
CREATE TABLE Cliente-Conta (
cod-cliente INTEGER UNSIGNED NOT NULL,
nro-conta INTEGER UNSIGNED NOT NULL,
PRIMARY KEY(cod-cliente, nro-conta),
FOREIGN KEY (cod-cliente) references Cliente,
FOREIGN KEY (nro-conta) references Conta
);
CREATE TABLE Conta (
nro-conta INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
saldo FLOAT NULL,
PRIMARY KEY(nro-conta)
);
Modelo conceitual como modelo de
organizao g
Constatao:
Umarquivo Um arquivo
em
computador
contm
informaes
sobre um
conjunto de
objetos ou
entidades da
organizao
que
atendida pelo
sistema em
computador computador.
Idia fundamental do projeto de
banco de dados
Atravs da identificao das entidades
que tero informaes representadas q p
no banco de dados, possvel
identificar os arquivos que comporo o
banco de dados banco de dados
Modelo conceitual tem dupla
iinterpretao
Modelo da organizao Modelo da organizao
Define as entidades da organizao que tem
informaes armazenadas no banco de dados.
Modelo do banco de dados
Define que arquivos (tabelas) faro parte do banco
d d d de dados.
Projeto de banco de dados Projeto de banco de dados
Duas fases: Duas fases:
1. Modelagem conceitual
2. Projeto lgico j g
Adequado para a construo de um novo
banco de dados.
Caso j exista um banco de dados ou um
conjunto de arquivos convencionais usar
reengenharia.
Um Banco de Dados deve:
Ter uma boa representao do mundo real
Eliminar redundncia
Estabelecer independncia dos programas
de aplicao
Manter segurana e confidencialidade
Ter um bom desempenho em relao a
aplicaes
Proporcionar facilidade de consultas
Revisando...
Comparativo
O que se espera de um
SGBD?
Revisando...
Permitir usurios criarem seus BDs e
especificarem seus esquemas
Permitir consultas e atualizaes
Suportar o armazenamento de grandes
quantidades de dados de forma segura
Controlar o acesso de muitos usurios
ao mesmo tempo
Arquitetura de um SGBD
Processador
de Consultas
Gerenc. de
Armazenamento
Gerenc. de
Transaes
Dados
Metadados
Modificaes
no Esquema
Consultas
Alteraes
Revisando...
Funcionalidades dos
SGBDs
Controle de redundncia
Compartilhamento de dados
Concorrncia
Reconstruo
Acesso Controlado
Funcionalidades dos
SGBDs
Segurana
Restries de integridade
Gerncia de armazenamento de dados
Pessoas Envolvidas
DBA (Administrador de Banco de
Dados)
Definio do esquema
Autoriza os acessos ao BD.
Coordena e monitora o uso do
SGBD.
Especificao de regras de integridade
Pessoas Envolvidas
Projetista de BD
Projeta os Esquemas Conceitual,
Externo e Lgico do BD.
Analista de Sistemas
Especifica programas que acessam o BD
(programas de aplicao ou aplicativos).
Programador de Aplicaes
Implementa aplicativos.
Pessoas Envolvidas
Usurios Finais
Casuais: utilizam esporadicamente o SGBD,
utilizando menus, formulrios, etc.
Usurios Paramtricos: utilizam freqentemente
o SGBD, fornecendo parmetros para a
execuo de aplicativos.
Usurios Sofisticados: programam suas prprias
consultas, utilizando linguagens declarativas, de
nvel muito alto
Quando no usar BDs?
O banco de dados e as aplicaes so
simples, bem definidas e no se espera
mudanas no projeto;
a necessidade de processamento em tempo
real de certas aplicaes, que so
terrivelmente prejudicadas pela sobrecarga
causada pelo uso de um SGBD;
no haver mltiplo acesso ao banco de
dados.
"As pessoas que vencem neste mundo so as que
procuram as circunstncias de que precisam e,
quando no as encontram, as criam.
(Bernard Shaw)
Por hoje s....