Banco de Dados
Conceitos
Ricardo Oliveira
Introdução
O que é um Banco de Dados?
É uma coleção de dados relacionados e
armazenados em algum dispositivo
Propriedades
Um BD é uma coleção de dados com algum
significado inerente
Um BD é projetado, construído e “povoado” com
dados para um específico propósito
Introdução
O que é um SGBD?
Sistema Gerente de Banco de Dados
É um conjunto de dados associado a um conjunto
de programas para acesso a esses dados
O conjunto de dados é o Banco de Dados
Contém informações sobre uma empresa em
particular
Em inglês: DBMS – Database Management
Introdução
Objetivo de um SGBD
Proporcionar um ambiente convincente e eficiente
para a recuperação e armazenamento das informações do banco de dados
Sistemas de BD são projetados para gerir
grandes volumes de informações
Define-se
Estruturas de armazenamento
Introdução
O que um sistema de BD deve garantir
Segurança das informações armazenadas contra
eventuais problemas
Impedir tentativas de acesso não autorizadas Evitar a ocorrência de resultados anômalos nas
Sistemas de Arquivos
Antes dos SGBDs
Informações armazenadas diretamente em
diferentes arquivos
Várias aplicações construídas por diferentes
programadores realizando acesso aos dados
Novas aplicações e novos arquivos sendo criados
a cada necessidade que surja
Problemas de Sistemas de
Arquivos
Inconsistência e redundância de dados
Informações podem ser repetidas em diferentes
arquivos
As cópias dos dados podem divergir ao longo do
tempo
Dificuldade de acesso aos dados
A solicitação de determinada relação de dados
não prevista no sistema implica em uma das duas
Separar os dados manualmente
Problemas de Sistemas de
Arquivos
Isolamento de dados
Os vários arquivos de dados podem estar em
formatos diferentes
Isso dificulta a construção de aplicações
Problemas de integridade
Os valores armazenados devem obedecer certas
restrições para manutenção de consistência
Programadores põem essas restrições no código
das aplicações
Problemas de Sistemas de
Arquivos
Problemas de atomicidade
Determinadas operações devem acontecer em
conjunto
A não realização de uma das operações implica
na não realização de nenhuma delas Operação atômica
Exemplo: transferência bancária
Em caso de falha, deve-se garantir que o banco
volte ao estado anterior da realização das operações
Problemas de Sistemas de
Arquivos
Anomalias no acesso concorrente
Muitos sistemas devem permitir atualizações
simultâneas dos dados para melhorar o desempenho
A interação entre atualizações concorrentes pode
gerar inconsistência de dados Exemplo: múltiplos saques
Como os dados podem sofrer acessos de
diferentes programas, supervisionar isso é tarefa difícil
Problemas de Sistemas de
Arquivos
Problemas de segurança
Nem todos os usuários estão autorizados a
acessar todos os dados
Cada funcionário que usa o sistema deve ter
acesso somente à parte dos dados que compete à sua função na empresa
Difícil de garantir em um sistema de arquivos
Essas dificuldades provocaram o surgimento
Visão de Dados
Um SGBD é uma coleção de arquivos e programas
inter-relacionados
Proporciona ao usuário uma visão abstrata dos
dados
Oculta do usuário detalhes sobre a forma de armazenamento e de manutenção dos dados
Há três níveis de abstração Nível físico
Descreve como os dados estão de fato armazenados Estruturas de dados complexas de nível baixo são
Níveis de Abstração
Nível Lógico
Descreve quais os dados que estão armazenados no banco e os inter-relacionamentos entre eles
O banco de dados como um todo é descrito em um número relativamente pequeno de estruturas simples
A implementação dessas estruturas pode envolver
estruturas complexas no nível físico, mas o usuário não precisa conhecer isso
É uma abstração para administradores do banco de dados que precisam decidir quais informações deve pertencer ao banco
Níveis de Abstração
Nível de visão
Mais alto nível de abstração
Descreve apenas parte do banco de dados
O nível lógico, apesar de simplificado, pode permanecer com alguma complexidade devido ao tamanho dos bancos de dados
Muitos dos usuários não precisam conhecer todas as informações
O nível de visão separa apenas a parte que interessa O sistema pode proporcionar diversas visões do mesmo
Instâncias e Esquemas
O conjunto de informações contidas em um BD, em
um dado momento, é chamado instância
O projeto geral do BD é chamado esquema Analogia com linguagens de programação
A definição dos tipos de dados é o esquema
O conteúdo de uma variável de um desses tipos em dado instante é a instância
Em geral, os SGBDs dão suporte a um esquema
Modelos de Dados
Um conjunto de ferramentas conceituais
usadas para a descrição de dados,
relacionamentos entre dados semântica de
dados e regras de consistência
Três diferentes grupos
Modelos lógicos com base em objetos Modelos lógicos com base em registros Modelos físicos
Modelos de Dados
Modelos lógicos com base em objetos
Usados na descrição dos dados no nível lógico e
de visões. Exemplos
Modelo Entidade Relacionamento – MER
Tem por base a percepção do mundo real
Facilita o projeto de um BD através da modelagem de
entidades e relacionamentos
Modelo Orientado a Objetos – OO
Se fundamenta em um conjunto de objetos Dados e métodos
Modelos de Dados
Modelos lógicos com base em registros
Voltados para o entendimento dos registros dos
dados
O banco de dados é estruturado por meio de
registros de formato fixo, simplificando a
implementação do banco de dados no nível físico
Modelo Hierárquico Modelo de Redes Modelo Relacional
Modelos de Dados
Modelo Hierárquico e Modelo de Redes
caíram em desuso
O Modelo Relacional usa um conjunto de
tabelas para representar tanto os dados
como a relação entre eles
Exemplo: suponha o BD de uma empresa
Empregado (matricula, nome, salario,
departamento)
Modelos de Dados
Modelos de Dados
Modelo Físico de Dados
Captam os aspectos de implementação do
sistema de bancos de dados
Dois mais conhecidos são o modelo unificado
(unifying model) e o modelo de partição de memória (frame-memory model)
Linguagens de Banco de
Dados
Linguagem de Definição de Dados – DDL
Define um conjunto de tabelas que constituem um
arquivo especial chamado Dicionário de Dados ou Diretório de Dados
Um dicionário de dados é um arquivo de
metadados, isto é, dados a respeito dos dados
Linguagem de Manipulação de Dados – DML
Inserção, recuperação, remoção e modificação
Evolução dos SGBDs
Até 1960: Sistema de Arquivos integrados
Ex.: ISAM, VSAM
Final da década de 60: Modelo Hierárquico
Ex.: IMS(IBM)
70 e início de 80: Modelo de Redes (CODASYL)
Ex. : IDMS, DMS-II(Unisys)
Meados dos anos 80: Modelo Relacional (Codd)
Evolução dos SGBDs
Final dos anos 80: Modelo Orientado a
Objetos e Relacional Estendido
(Objeto-Relacional)
Ex.: OO: Vbase, O2, Orion, Gemstone, Jasmine,
ObjectStore
OR: Postgres, Illustra/Informix Universal Server,
Oracle, DB2
Anos 90: BDs inteligentes e Cliente-Servidor,
BD para Web, BD multimídia, BD espacial,
temporal, ativo, dedutivo, etc.
Usuários do SGBD
DBA – Administrador do Banco de Dados
Definição do esquema
Definição da estrutura de armazenamento e
métodos de acesso
Concessões de autorização de acesso
Especificação de restrições de integridade Controle das estratégias de recuperação
Usuários do SGBD
Projetista de BD
Projeta os Esquemas Lógico e Externo do BD
Analista de Sistemas
Especifica programas que acessam o BD
(programas de aplicação ou aplicativos)
Programador de Aplicações
Usuários do SGBD
Usuários Finais
Casuais: utilizam esporadicamente o SGBD
utilizando as aplicações desenvolvidas para acesso aos dados
Usuários Paramétricos: utilizam freqüentemente o
SGBD, fornecendo parâmetros para a execução de consultas
Usuários Sofisticados: programam suas próprias