Vous êtes sur la page 1sur 59

Curso Superior de Tecnologia em ADS

Aula 01
Introduo aos
Sistemas de Bancos de Dados
Modelagem de Dados e Projeto de Banco
de Dados
2
Apresentao
Professor
Eliezer Ribeiro Antunes Junior
eliezerraj@gmail.com

Formao Acadmica
Universidade So Francisco (Graduao)
Extenso em TI (FGV SP)
Especializao (UNICAMP)
MBA (FIPECAFI USP)


3
Contedo do Curso (1 Semestre)
3. Modelo Relacional
3.1. Esquemas de Banco de Dados Relacional
3.2. Restries de Integridade
3.2.1. Restrio de Unicidade de Chave
3.2.2. Restrio de Integridade da Entidade
3.2.3. Restrio de Integridade Referencial
4. Normalizao
4.1. Axiomas de Dependncia Funcional
4.2. Formas Normais
4.2.1. Primeira Forma Normal
4.2.2. Segunda Forma Normal
4.2.3. Terceira Forma Normal
4.2.4. BCNF
4.2.5. 4 FN e 5 FN (discusso)
5. Estudos de Caso
1. Introduo
1.1. Histrico e Evoluo dos Bancos de Dados
1.2. Modelos de Bancos de Dados existentes
1.3. Sistema Gerenciador de Banco de Dados
1.4. Sistema de Banco de Dados
1.5. Nveis de Viso
1.6. Independncia de Dados
1.7. Esquema e Instncias
2. Modelo Entidade Relacionamento
2.1. Conjunto de Entidades
2.2. Representao de Atributos
2.3. Conjunto de Relacionamentos
2.4. Chaves
2.5. Cardinalidade e Grau de Relacionamentos
2.6. Papel de Relacionamentos
2.7. Auto-Relacionamento
2.8. Modelo Entidade Relacionamento Estendido
2.8.1. Multiplicidade
2.8.2. Abstrao de Generalizao
2.8.3. Abstrao de Agregao
2.8.4. Modelo de Dados Semnticos
2.8.5. Abstraes no Projeto Conceitual de Banco de Dados
4
Introduo aos Sistemas de BD
Objetivo
Apresentar uma perspectiva histrica do surgimento dos
SGBD, sua importncia para as empresas e os principais
conceitos e caractersticas envolvidas na rea de Banco de
Dados.
Principais tpicos
Importncia dos Bancos de Dados
Uma perspectiva histrica
Arquivos versus SGBDs
Quando usar e quando no usar SGBD
Principais Caractersticas dos SGBDs
5
Introduo aos Sistemas de BD
Principais tpicos (continuao)
Arquitetura Three-schema
Modelagem de Dados
Modelos de Dados (Conceituais, Lgicos e Fsicos)
Matriz de Classificao de SGBDs
Sntese dos conceitos
Questes de Estudo
6
Conceito
O que um Banco de Dados ?

um conjunto organizado de dados com a funo de gerenciar
o seu acesso e a sua manuteno.

Ex: Dicionrio, Agenda Telefnica, Livro de Receitas e etc.

O que um SGBD/DBMS* (Sistema Gerenciador de
Banco de Dados) ?
um sistema (software) que armazena, modifica e recupera de
forma organizada os dados de um banco de dados.

7
Panorama Mundial
Crescimento de dados incontrolvel
Taxa de crescimento dos dados estruturados de 40% a 60%
Taxa de crescimento de dados no estruturados pode chegar a 80%


(
Gartner, IT Market Clock for Storage)
Ano 2011, 1.8 zettabytes (1 trilho de gigabytes)
Aumento de 6,2% em Storage (USD 300 Bilhes)
(Gartner)
Segundo a IDC at 2020, os departamentos de TI das companhias
tero um nmero de servidores 10 vezes maior e a quantidade de
informaes se multiplicar por 50.
8
Vantagens Bancos de Dados
Reduo na Redundncia de Informaes
Evitar a inconsistncia dos dados (integridade)
Compartilhar dados (Interfaceamento)
Reforar os padres
Aplicar restries de segurana (Dados e Infra)
Portabilidade
Escalonamento

9
Importncia dos Bancos de Dados
(Time to Market). A competitividade das empresas
depende de dados precisos e atualizados

Conforme a empresa cresce, aumenta a sua
dependncia por dados abundantes e complexos.

Assim, ferramentas de gerenciamento, extrao
rpida e precisa de informaes fundamental.
10
Uma perspectiva histrica
No incio da computao, programas tinham o nico
objetivo de armazenar e manipular dados.
Esses programas gravavam seus dados em disco,
segundo estruturas prprias.
Programas que no conhecessem a estrutura dos
dados no podiam utilizar os dados.
Estrutura dos
dados
Arquivo
11
Uma perspectiva histrica
Se vrios programas precisassem compartilhar os
dados de um mesmo arquivo, todos os programas
teriam que conhecer e manipular as mesmas
estruturas.
Estrutura dos
dados
Arquivo
Estrutura dos
dados
12
Uma perspectiva histrica
Se algum programa precisasse realizar alguma
mudana na estrutura de dados,
Todos os programas que acessam esse mesmo arquivo
tinham que ser alterados, mesmo que a alterao ocorresse
em dados no manipulados pelos programas.
Isso gerava um grande problema:
Garantir a unicidade das estruturas de dados entre os diversos
programas devido existncia de redundncias.
Memorizar:
Redundncia GERA Inconsistncias
13
Uma perspectiva histrica
Para evitar esse problema, colocou-se um sistema
intermedirio:
Que conhece a estrutura de dados do arquivo.
Fornece apenas dados que cada programa precisa.
Armazena adequadamente os dados de cada programa.
Arquivo
14
Uma perspectiva histrica
Agora, com esse sistema intermedirio:
Os programas "vero" apenas os dados que lhes interessam.
Os programas no precisam mais conhecer os detalhes de
como os dados esto gravados fisicamente.
Um programa no precisa mais ser modificado se a parte da
estrutura de dados que utiliza no for modificada.
As alteraes ficam concentradas nesse sistema intermedirio.
15
Uma perspectiva histrica
Com o tempo, esse sistema intermedirio passou a
gerenciar vrios arquivos.
A essa coleo de arquivos foi dado o nome de
Banco de Dados e o sistema intermedirio recebeu
o nome de Sistema Gerenciador de Banco de Dados
(SGBD).
Arquivo
Arquivo
Arquivo
S
G
B
D
Banco de Dados
16
Uma perspectiva histrica
O primeiro SGBD comercial surgiu em 1960.
Com o tempo, surgiram padres para descrever as
estruturas de dados: os modelos de dados.
A descrio do banco de dados, segundo um
modelo de dados chamada de esquema de dados
ou meta dados.
BD
Meta
Dados
SGBD
Dados
17
Uma perspectiva histrica
Hoje, um banco de dados:
uma coleo de dados coerente e logicamente relacionados
com algum significado associado.
projetado, construdo e populado com dados que atendem a
um propsito e audincia especficos.
Representa algum aspecto do mundo real, chamado de
minimundo.
Memorizar:
Modelar aquilo que se deseja guardar para depois recuperar!
Se ningum querer recuperar, ento para que modelar!
18
Arquivos versus SGBDs
Processamento tradicional
de Arquivos
SGBD
Vantagens do
SGBD
Definio dos dados parte do
cdigo de programas de aplicao
Meta Dados
eliminao de
redundncias
Dependncia entre aplicao e
dados
Independncia entre
aplicaes e dados
eliminao de
redundncias
facilidade de
manuteno
Representao de dados em nvel
fsico
Representao conceitual
atravs de dados e
programas
facilidade de
manuteno
Cada viso implementada por
mdulos especficos
Permite mltiplas vises
facilidade de
consultas
19
Uma perspectiva histrica
Quando usar SGBD Quando no Usar SGBD
Controle redundncia
Controle consistncia e
integridade
Acesso multiusurio
Compartilhamento de dados
Controle acesso e segurana
Controle de recuperao e
restaurao
Consultas eficientes

Dados e aplicaes simples e
estveis
Requisitos de tempo-real no
puderem ser atendidos

20
Abordagem de Implementao
Crditos: Flavio Almada de Frana
21
Abordagem de Implementao
Abordagem na Implementao de um Banco de Dados

Alto acoplamento (Regra de negcio no banco de dados)
Vantagens
Ciclo de desenvolvimento rpido (linguagem de baixo nvel)
Fcil diagnstico de problemas (ferramentas integradas)
Centralizao (fontes)
Alta portabilidade de dados
Fcil migrao de plataforma (Ex: Cliente/Servidor para JavaEE)
Desvantagens
Casamento com o fornecedor
Pouca espao para manobras.
Venda do produto (produto casado)

Baixo acoplamento (Regra de negcio no aplicativo)
Vantagens
Liberdade de fornecedor
Alta portabilidade entre bancos.
Desvantagens
Ciclo de desenvolvimento mais trabalhoso (linguagem de alto nvel)
Difcil diagnstico de problemas (fferramentas integradas))
Mo de obra qualificada
22
Principais Caractersticas dos
SGBDs
Apoio a mltiplas vises de dados
(nvel externo)
Capacidade de abstrao de dados
(nvel conceitual)
Capacidade de descrever a estrutura
de armazenamento fsico dos dados
(nvel interno)

Compartilhamento de dados e
processamento de transaes.
Arquitetura
Three-
schema
23
Arquitetura Three-schema
Usurios Finais
NVEL EXTERNO
NVEL INTERNO
Independncia Fsica de
Dados:

a capacidade de alterar
o esquema interno sem ter
que alterar o esquema
conceitual e externo.
Independncia Lgica
de Dados:

a capacidade de alterar
o esquema conceitual sem
ter que mudar os
esquemas externos ou
programas de aplicao. Esquema Conceitual
Viso Externa 1
...
Viso Externa n
Esquema Interno
BD
1
...
BD
n
NVEL CONCEITUAL
Mapeamento
Conceitual-Interno
Mapeamento
Conceitual-Externo
24
Esquema Conceitual
25
Esquema Fsico
26
Modelos de Dados
Existem modelos para diferentes nveis de
abstrao de representao de dados
modelos conceituais
modelos lgicos
modelos fsicos
Referem-se:
organizao dos arquivos de dados em disco
no so manipulados por usurios ou aplicaes que acessam o BD
decises de implementao so de cada SGBD
27
Modelos de Dados
Existem modelos para diferentes nveis de
abstrao de representao de dados
modelos conceituais
modelos lgicos
modelos fsicos
Referem-se:
organizao dos arquivos de dados em disco
no so manipulados por usurios ou aplicaes que acessam o BD
decises de implementao so de cada SGBD
28
Modelos de Dados
Redes
Hierrquico
Relacional
Entidade-Relacionamento
ER - Estendido
Objeto
Objeto Relacional
NoSQL
29
Modelos de Dados Conceituais
Representao com alto nvel de abstrao
modelam de forma mais natural os fatos do mundo real, suas
propriedades e seus relacionamentos
so independentes de BD
preocupam-se apenas com a semntica da aplicao
exemplo:
modelo entidade-relacionamento
30
Modelos de Dados Lgicos
Representa os dados em alguma estrutura (lgica)
de armazenamento de dados
tambm chamados de modelos de BD
dependente de BD
exemplos
modelo relacional (tabelas)
modelos hierrquico
31
Modelos de BD (Lgicos)
Apiam:
na especificao dos dados do modelo (DDL)
dados, seus domnios e restries
na especificao de como manipular os dados (DML)
32
Modelos de BD (Fsico)
Possuem foco na:
Indexao e estrutura de arquivos
Transaes e controle de concorrncia
Otimizao
Recuperao em casos de falhas
Mecanismos de proteo (segurana)
Partio e agrupamento de dados
33
Transaes
Uma transao define uma unidade de execuo
que pode acessar e atualizar vrios itens de dados.
Uma transao executa vrios comandos como se
fossem apenas um comando indivisvel (atmico).
Os vrios comandos so delimitados pelas
declaraes begin transaction e (commit ou
rollback):
begin transaction(x)
Update(a)
Delete(b)
Insert(c)
commit(x)
O SGBD considera este bloco
como um nico comando,
atmico e indivisvel
34
Transaes
Transaes terminadas com commit, em caso de
sucesso, efetivam todas as modificaes realizadas
dentro dela.
Transao terminadas com rollback, desfazem
todas as modificaes realizadas dentro dela.
O banco de dados ficar no mesmo estado que estava antes
do incio da transao.
O camando rollback pode ser chamado
explicitamente pelo programador ou pelo SGBD
quando ocorre algum erro.
35
Transaes
Ativa
Confirmando
Cancelando
Confirmada
Cancelada
commit
rollback
begin
transaction
36
Transaes
Um SGBD deve controlar a execuo concorrente
de transaes para assegurar que o estado do
banco de dados permanea consistente.
A seriao uma propriedade que garante que
independente da ordem dos acessos aos dados
feitos pelas transaes, o resultado final ser o
mesmo.

37
Transaes
Transao devem possuir um conjunto de
propriedades que normalmente referido como
propriedades ACID:
Atomicidade
Consistncia
Isolamento
Durabilidade
38
Transaes
Atomicidade
Garante que todas as operaes na transao sero
executadas ou nenhuma ser.
Isto evita que falha ocorridas, possam deixar o banco de dados
inconsistentes.
Consistncia
Possui dois aspectos: A consistncia do banco dados e a
consistncia da prpria transao.
Uma transao no deve violar as restries de integridade
definidas para o banco de dados.
39
Transaes
Isolamento
Significa que, mesmo no caso de transaes executadas
concorrentemente, o resultado final igual ao obtido com a
execuo isolada de cada uma delas.
A observncia desta propriedade das transaes pelos SGBDs
impede a ocorrncia dos problemas de acesso a dados.
Durabilidade
Significa que os resultados de uma transao, caso ela seja
concluda com sucesso, devem ser persistentes. Mesmo se
depois houver falha no sistema.
40
No Transacional (Inconsistente)
ERD Conta Corrente
Comandos no tempo
41
Transao (Commit)
ERD Conta Corrente
Comandos no tempo
42
Transao (Rollback)
ERD Conta Corrente
Comandos no tempo
43
Transao (Read Consistency)
ERD Conta Corrente
Comandos no tempo
44
Gerenciador de
Transaes
Escalonador
Gerenciador de
Recuperao
Gerenciador de
Memria
Cache
Memria
Primria
Log
SGBD
Transaes externas
Memria
Secundria
Index
BD
45
Arquitetura Banco de Dados
46
Leitura Consistente(Read Consistency)
47
Data Block (Storage)
48
Leitura Consistente(Read Consistency)
49
Matriz de Classificao de
SGBDs*
RELACIONAL
OBJETO-
RELACIONAL
SISTEMA DE
ARQUIVOS

LINGUAGEM DE
PERSISTNCIA


Dados Simples Dados Complexos
C
o
n
s
u
l
t
a
s

S
i
m
p
l
e
s


* Baseado no livro: Object Relational DBMS by Stonebraker and Moore, Morgan Kaufmann, 1996
C
o
n
s
u
l
t
a
s

C
o
m
p
l
e
x
a
s


50
O que existe?
Consultas Complexas x Dados Complexos
SGBDOO
http://www.objectdb.com/
http://pt.wikipedia.org/wiki/Db4o
http://www.versant.com/developer/
SGBDs no Classificados
http://www.intersystems.com/cache/index.html
http://www.prevayler.org/
SGBD Semi-estruturados
http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html

51
Sntese dos conceitos
Banco de dados (BD):
conjunto de dados integrados que por objetivo atender a uma
comunidade de usurios.
Modelo de dados:
descrio formal das estruturas de dados para representao
de um BD; com suas respectivas restries e linguagem para
criao e manipulao de dados.
Sistema Gerenciador de banco de dados (SGBD):
software que incorpora as funes de definio, recuperao e
alterao de dados em um BD.
52
Sntese dos conceitos
Modelagem de dados:
a ao de representar/abstrair dados do minimundo com o
objetivo de criar projetos conceituais e lgicos de um BD.
alguns autores incluem os projetos fsicos como parte da
modelagem de dados, pelo fato de que as otimizaes so
oriundas de anlises do comportamento dinmico do BD.
53
Sntese dos conceitos
Projeto conceitual BD:
ao que produz o esquema de dados abstratos que descreve
a estrutura de um BD de forma independente de um SGBD
(esquema conceitual).
Projeto lgico BD:
ao que produz o esquema lgico de dados que representa a
estrutura de dados de um BD em acordo com o modelo de
dados subjacente a um SGBD.
54
Sntese dos conceitos
Projeto fsico BD:
ao que produz o esquema fsico de dados a partir do
esquema de lgico de dados com a adio das estratgias de
otimizao para manipulao das estruturas de dados. As
estratgias de otimizao so dependentes dos fabricantes
dos SGBDs e de suas verses.
55
Questes de Estudo
1. Quando faz sentido utilizar um SGBD ao invs de
simplesmente utilizar o sistema de arquivos? Quando
no faz sentido utilizar um SGBD?
2. O que independncia lgica de dados e por que esse
conceito importante?
3. Explique as diferenas entre independncia lgica de
dados e independncia fsica de dados.
4. Explique as diferenas entre esquemas externos,
lgico e fsico. Como esses conceitos se relacionam
com os conceitos de independncia de dados?
5. Quais so as responsabilidades de um Projetista de
Banco de Dados e do DBA?
56
Questes de Estudo
6. O Sr. Juvenal Juvencio quer guardar informaes de
seus atletas (nome, endereo, quantidade de titulos ,
e momentos importantes). O volume de dados o forou
a decidir comprar um SGBD. Para economizar, ele quer
comprar um que tenha apenas as caractersticas
necessrias para executar uma aplicao stand-alone
em seu PC. O Sr. Juvenal no quer compartilhar essa
lista com ningum. Indique quais das seguintes
caractersticas de SGBDs o Sr. Juvenal necessita?
Justifique.
Segurana.
Controle de concorrncia.
Recuperao aps falhas.
Mecanismos de viso.
Linguagem de consulta.

57
Questes de Estudo
7. Descreva os passos de um projeto de BD.
8. Quais dos seguintes itens exercem papel importante
na representao de informaes do mundo real num
BD? Comente.
Linguagem de definio de dados.
Linguagem de manipulao de dados.
Cach.
Modelo de dados.
9. O que transao?
10. Por que o SGBD entrelaa as aes de diferentes
transaes, ao invs de execut-las seqencialmente?
58
Introduo aos Sistemas de
Bancos de Dados
Referncias Bibliogrficas
1. Elmasri, R.; Navathe, S. B. [Trad.]. Sistemas de bancos de dados.
Traduzido do original: FUNDAMENTALS OF DATABASE
SYSTEMS. So Paulo: Pearson(Addison Wesley), 2005. 724 p.
ISBN: 85-88639-17-3.
2. Korth, H.; Silberschatz, A. Sistemas de Bancos de Dados. 3a.
Edio, Makron Books, 1998.
3. Raghu Ramakrishnan e Johannes Gehrke, Database Management
Systems, Second Edition, McGraw-Hill, 2000.
4. Teorey, T.; Lightstone, S.; Nadeau, T. Projeto e modelagem de
bancos de dados. Editora Campus, 2007.
Referncias Web
1. Takai, O.K; Italiano, I.C.; Ferreira, J.E. Introduo a Banco de
Dados. Apostila disponvel no site:
http://www.ime.usp.br/~jef/apostila.pdf. (07/07/2005).
Curso Superior de Tecnologia em ADS
Prof. Osvaldo Kotaro Takai
otakai@gmail.com
Obrigado!