Você está na página 1de 45

Banco de Dados I

Introduo
O que um banco de dados?
Algumas definies
[Chu, 1985]
Um banco de dados um conjunto de arquivos
relacionados entre si
[Date, 2000]
Um banco de dados uma coleo de dados
operacionais armazenados usados pelas
aplicaes de uma determinada organizao
Algumas definies
[Elmasri & Navathe, 2000]
Um banco de dados uma coleo de dados
relacionados
Representando algum aspecto do mundo real (mini-
mundo ou universo de discurso)
Logicamente coerente, com algum significado
Projetado, construdo e gerado (povoado) para uma
aplicao especfica
Termos Tpicos
Um sistema de gerncia de banco de dados
(SGBD) um conjunto de programas que
permite a criar e manter um banco de
dados
Um banco de dados juntamente com o
SGBD que o gerncia constitui um sistema
de banco de dados
Termos Tpicos
Dados - fatos que podem ser armazenados
ex:nomes, telefones, endereos
Base de dados - coleo de dados
interelacionados logicamente, ex: agenda de
telefones, ficha de clientes
Aplicaes dos SGBD
Exemplo de um Banco de Dados
Mini-mundo: parte de uma universidade
Algumas entidades:
o Alunos
o Disciplinas
o Departamentos
Alguns relacionamentos:
o Disciplinas so oferecidas por Departamentos
o Alunos esto matriculados em Disciplinas
Caractersticas da Abordagem de BD
Auto-descrio dos dados
Isolamento entre programas e dados:
abstrao de dados
Suporte a mltiplas vises dos dados
Compartilhamento de dados e processa-
mento de transaes concorrentes
Usurios em um Ambiente de BD
Administradores de Banco de Dados
(DBA)
Banco de dados
Recurso principal
SGBD e os software relacionados
Recurso secundrio
DBA o responsvel
Por autorizar o acesso ao banco de dados,
coordenar e monitorar seu uso e adquirir recursos
de software e hardware conforme a necessidade
Por resolver problemas como falha na
segurana e demora no tempo de resposta do
sistema.
Atribuies do DBA
Definir o esquema conceitual
Definir o esquema interno
Contato com os usurios
Definir restries de segurana e integridade
Monitorar o desempenho e responder a
requisitos de mudanas.
Definir normas de descarga e recarga
Usurios em um Ambiente de BD
Administrador de Dados
- a pessoa que toma as decises estratgicas e de
normas com relao aos dados da empresa.
Administrador do Banco de dados
- a pessoa que fornece o suporte tcnico
necessrio para implementar essas decises).
Assim, o DBA responsvel pelo controle geral do sistema
em um nvel tcnico.
Projetistas de Banco de Dados (ADs)
Responsveis por identificar os dados a
serem armazenados ...
E escolher estruturas apropriadas para
representar esses dados.
Para isso ...
Precisa se comunicar com todos os potenciais
usurios a fim de entender suas necessidades e
criar um projeto que as atenda.
Definem vises!
Atribuies do AD
Decidir quais informaes devem ser mantidas
no banco de dados;
Identificar as entidades de interesse para a empresa e
identificar as informaes a serem registradas sobre
essas entidades (Projeto Lgico)
Padronizam os nomes dos objetos criados no
BD;
Gerenciam e auxiliam na definio das regras de
Projeto Conceitual integridade;
Controlam a existncia de informaes
redundantes;
Trabalham de forma corporativa nos modelos de
dados da organizao;
Usurios finais
Pessoas cujas funes exigem acesso ao BD
para consulta, atualizaes e gerao de
relatrios.
So divididos em:
Casuais
Iniciantes ou paramtricos
Sofisticados
Isolados
Analista de Sistemas e programadores
Analistas de sistemas: Identificam as
necessidades dos usurios finais,
especialmente os iniciantes e paramtricos, e
definem as especificaes das transaes
padro que atendam a elas.
Programadores: implementam essas
especificaes como programas; depois
testam, depuram, documentam e mantm
essas transaes programadas.
Trabalhadores dos bastidores
Trabalham para manter o ambiente do
Sistema de Banco de Dados.
Projetistas e implementadores de Sistemas
de SGBDs
Desenvolvedores de ferramentas
Operadores e pessoal de manuteno
(Suporte)
Vantagens da Utilizao de um SGBD
Controle de redundncia dos dados
Controle de acesso (segurana)
Armazenamento persistente dos dados
Existncia de mltiplas interfaces para os usurios
Representao de relacionamentos complexos entre
os dados
Manuteno de restries de integridade
Recuperao de falhas
Backup e recuperao
Outras implicaes
Potencial para garantir padres
Tempo reduzido para desenvolvimento de
aplicaes
Flexibilidade
Disponibilidade de informaes atualizadas
Economia de escala
Algumas ferramentas
Sistemas comerciais
IBM DB2
Oracle
Microsoft SQL Server
Informix
Sybase
Gratuitos
MySQL
PostgreSQL
Firebird
Problemas do Sistema de Arquivos
1 - Redundncia e inconsistncia dos dados
2 - Dificuldade de acesso a dados
3 - Isolamento de Dados
4 - Problema de Atomicidade
5 - Anomalias de acesso concorrente
6 - Problema de Segurana
Quando no usar um SGBD?
Alto investimento inicial em hardware,
software e treinamento
A generalidade que um SGBD oferece para a
definio de processamento de dados
Esforo adicional para oferecer funes de
segurana, controle de concorrncia,
recuperao e integridade.
aconselhado usar arquivos
Aplicaes de dados simples e bem definidas,
para as quais no se espera muitas
mudanas
Requisitos rigorosos de tempo real, para
alguns programas de aplicao, que no
podem ser atendidos devido as operaes
extras executadas pelo SGBD
Sistemas embarcados com capacidade de
armazenamento limitada, onde um SGBD
no seria apropriado.
Nenhum acesso de mltiplos usurios.
Modelo de dados,
esquemas e
instncias
Objetivos de um SGBDs
Prover um ambiente que seja conveniente e
eficiente para recuperar e armazenar
informaes de Bancos de Dados
Eliminar ou Reduzir
Redundncia e inconsistncia de dados
Dificuldade no acesso aos dados
Problemas de integridade e atomicidade
Isolamento dos dados
Anomalias de acesso concorrente
Problemas de segurana
Objetivos de um SGBDs
Abstrao de dados
Retirar da viso do usurio final informaes
a respeito da forma fsica de armazenamento
dos dados.
Simplifica a interao do usurio com o
Sistema Se refere a supresso de detalhes
da organizao e armazenamento dos
dados.
Viso dos dados
SGBD deve fornecer ao usurio uma viso
abstrata dos dados, ocultando detalhes de
como os dados so armazenados e mantidos
Nveis de Abstrao
Fsico: o mais baixo, descreve como os dados esto
realmente armazenados (complexo e de baixo nvel)
Lgico: descreve quais dados esto armazenados e a
relao entre eles (estruturas simples, ocultando
complexidade real)
Viso: (view) o mais alto, descreve apenas parte do
banco de dados (as relevantes para um usurio)
Nveis de Abstrao
Modelo de Dados
Coleo de ferramentas conceituais para
descrever:
Dados
Relaes entre dados
Restries de consistncia
Um modelo de dados oferece uma maneira
de descrever o projeto de um banco de dados
em nvel fsico, lgico e de viso
Esquema
Descrio (textual ou grfica) da estrutura de
um banco de dados de acordo com um
determinado modelo de dados
Exemplo: O banco de dados consiste nas
informaes sobre um conjunto de clientes e
contas e na relao entre eles
Esquema
Instncia
Conjunto de dados armazenados em um banco
de dados em um determinado instante de
tempo
Anlogo ao valor de uma varivel
Instncia
Relao entre Modelo de Dados,
Esquema e Instncia
Modelo de Dados, Esquema e Instncia
Estado do Banco (instncia)
o Dados do banco em qualquer ponto do tempo
o Inicialmente vazio
o Muda frequentemente
o Validade parcialmente garantida pelo SGBD
Esquema do Banco
o Armazenado no catlogo
o Mudanas muito menos frequentes
Tipos de Modelos de Dados
Modelos conceituais
Utilizados para se descrever a estrutura de um banco
de dados de uma forma mais prxima da percepo
dos usurios (independente de aspectos de
implementao)
Ex. Conceitos: entidades, atributos, relacionamentos
Exemplos:
o Modelo entidade-relacionamento (ER)
o Modelo funcional
o Modelo orientado a objetos (OO)
Tipos de Modelos de Dados
Modelos representacionais (lgicos)
Utilizados para se descrever a estrutura de um banco
de dados da forma como ser manipulado atravs de
SGBD (mais dependente das estruturas fsicas de
armazenamento de dados)
Exemplos:
o Modelo relacional
o Modelo de rede
o Modelo hierrquico
Tipos de Modelos de Dados
Modelos fsicos
Utilizados para descrever como os dados sao
fisicamente armazenados
Modelo Relacional
Usa uma coleo de tabelas para representar
dados e a relao entre eles
Cada linha da tabela corresponde a um
registro
Cada coluna da tabela representa um
atributo
o sistema mais usado, a grande maioria
dos SGBDs baseada nele
Modelo Relacional
Exemplo de dados tabulares no modelo
relacional
Banco de Dados Relacional
Modelo de
Entidade/Relacionamento
Baseado em uma percepo do mundo real
Coleo de objetos bsicos (entidades) e
suas relaes
Muito usado no projeto de banco de dados