Bancos de Dados - Introdução
Melissa Lemos
[email protected]
1
Tópicos
„ Evolução dos Sistemas de Informação
„ Esquemas
„ Modelos
„
„
Conceitual
Lógico
„ Características de SGBDs
2
Evolução
tempo
Programas e dados
na mesma memória
Código e dados compondo um
único objeto.
Programa com
dados
armazenados
3
1
Evolução
tempo
Sistemas de
Programa
Arquivo
Arquivos
Surgimento do Disco.
Código e dados armazenados de forma distinta.
Dados organizados como coleções de itens relacionados, compondo
arquivos.
Código com rotinas para gerência de dados (localização, recuperação e
Armazenamento de dados
Programa com
dados
armazenados
Programas e dados
na mesma memória
4
Evolução
tempo
Sistemas de
Bancos de Dados
Programa
SGBD
Arquivo
Independência dos programas em relação aos dados armazenados
SGBD possui todas as funções necessárias para localização e manipulação
dos dados
Sistemas de
Arquivos
Programas e dados
na mesma memória
Programa
Arquivo
Programa com
dados
armazenados
5
Sistemas de BDs x Sistemas de
Arquivos
„ Separação entre programas e dados
„ Suporte para múltipla visões de usuário
„ Compartilhamento de dados e
processamento multi-usuário de transações
„ Armazenamento no BD da sua própria
descrição ou esquema
„ Controle para não haver redundância de
dados
6
2
Bancos de Dados e SGBDs
O que é um banco de dados?
É uma coleção de dados fortemente
estruturados acompanhados de um conjunto de
mecanismos de controle, acesso e
manipulação.
Tal conjunto é o Sistema Gerenciador de Banco
de Dados (SGBD)
7
Aplicações típicas
„ Sistema de reserva de passagens aéreas
„ Controle de transações bancárias
„ Dados coorporativos
„ Imagens de satélites
„ Genoma
8
Requisitos para Bancos de
Dados
9
3
Requisitos para Bancos de Dados
„ Facilidade de uso
modelagem do BD deve refletir a realidade do
usuário
„ acesso aos dados deve ser feito de forma
simples
„ interfaces baseadas em modelo de dados de
alto nível
„
„
„
linguagem de definição de dados de alto nível
linguagem de consulta de alto nível
10
Requisitos para Bancos de Dados
„ Correção
os dados armazenados no BD devem refletir
um estado correto da realidade modelada
„ implementação automática de classes de
restrições de integridade
„ triggers
„
11
Requisitos para Bancos de Dados
„ Facilidade de manutenção
alterações na forma de armazenamento dos
dados ou na modelagem do BD devem afetar
as aplicações o mínimo possível
„ especificação do BD em 3 níveis
„
12
4
Requisitos para Bancos de Dados
„ Confiabilidade
atualizações submetidas pelos usuários não
devem ser perdidas
„ atualizações não devem interferir umas com
as outras
„ ACID transactions (atomicidade-consistênciaintegridade-durabilidade)
„
„
„
controle de concorrência
subsistema de recuperação
13
Requisitos para Bancos de Dados
„ Segurança
o acesso aos dados deve ser controlado de
acordo com os direitos definidos para cada
usuário
„ definição de níveis de autorização
„ controle de acesso
„
14
Requisitos para Bancos de Dados
„ Desempenho
o tempo de acesso aos dados deve ser
compatível com a complexidade da consulta
„ otimização de consultas
„
„
„
métodos de acesso e de armazenamento
eficientes
gerência eficiente do buffer pool
15
5
Especificação de
Bancos de Dados
16
Especificação de Bancos de Dados
„ Esquema do BD:
„ descrição da organização dos dados no banco
e dos critérios de correção para os dados
„ relativamente estável ao longo do tempo
„ Estado do BD:
„ conjunto de dados armazenados, em um particular
instante, de acordo com a organização definida no
esquema
„ varia de acordo com as atualizações submetidas pelos
usuários
„ Estado consistente do BD:
„
estado do BD satisfazendo aos critérios de correção
definidos no esquema
17
Esquemas
„ Objetivo: Separar o BD físico das aplicações
do usuário por meio de 3 diferentes níveis
de esquemas
Externo
Externo
Conceitual
Físico
18
6
Esquema Físico
„ Especificação das estruturas de
armazenamento do BD, ou seja, como o BD
está armazenado
19
Esquema Conceitual
„ Especificação da organização conceitual do
BD, ou seja, o quê o BD armazena
„ Descreve a estrutura do BD completo sob
ponto de vista do usuário
„ Esconde detalhes de armazenamento
„ Concentra-se na descrição das entidades,
atributos, relacionamentos, operações de
usuários e restrições sobre os dados
20
Esquema Externo
„ Especificação da organização conceitual do
BD, vista por um grupo de usuários
„ Visões de usuários
„ Descreve as partes do BD que são do
interesse de um grupo de usuários,
escondendo dos demais
21
7
Vantagens da Especificação em Níveis
Externo
Externo
Facilidade de manutenção
Conceitual
„ Independência física
(dos dados):
Físico
„ separação entre
esquema interno e
esquema conceitual
permite modificar
as estruturas de
armazenamento
sem impactar as
aplicações
„ Independência lógica
(dos dados):
„ separação entre
esquema externo e
esquema conceitual
permite modificar
a organização conceitual
com impacto mínimo nas
aplicações
(construídas sobre os
esquemas externos)
22
Modelos de Dados
„ O modelo de dados define a
forma de especificar:
„ esquema conceitual e
„ esquemas externos,
„ ou seja:
„ organização conceitual do BD
„ critérios de correção para os
dados
„ mapeamentos entre
esquemas externos e
conceituais
Externo
Externo
Conceitual
Físico
23
Modelos de Dados
„ A representação dos esquemas em cada
nível é feita através de diferentes modelos de
dados.
„ Esquemas conceitual e externo
Modelo conceitual
„ Mais próximos dos usuários finais
„ Modelo lógico
„ Nível intermediário
„ Conceitos que podem ser entendidos por
usuários finais, mas não tão distantes da
forma como os dados são armazenados
„
24
8
Esquema e Modelos
ESQUEMA
Externo
MODELO
Externo
Modelo Conceitual
Modelo Lógico
Conceitual
Físico
Modelo Físico
25
Esquema e Modelos
ESQUEMA
MODELO
Modelo Conceitual
• Modelo E-R (entidade-relacionamento)
Externo
Modelo Lógico/ Implementação
• Modelo em Rede
• Modelo Hierárquico
• Modelo Relacional
• Modelo Orientado a Objeto
• Modelo Relacional-Objeto
• Modelo Semi-estruturado
Externo
Conceitual
Físico
Modelo Físico
26
Modelo Conceitual - MER
Aluno
n
Matr
m
Turma
n
Modelo Entidade-Relacionamento:
l
ƒ alunos estão matriculados em turmas
ƒ professores são responsáveis por turmas
ƒ um aluno pode estar matriculado em uma ou
mais turmas
ƒ uma turma pode ter mais de um aluno
ƒ toda turma tem um, e apenas um,
professor responsável
ƒ um professor pode ser responsável por
mais de uma turma
Resp
1
Prof
27
9
Modelo Lógico - Rede
„ Os dados são representados por um conjunto de
registros (como em Pascal) e as relações entre os
registros são representados por links, as quais
podem ser vistas pelos ponteiros.
„ Os registros são organizados no BD por um conjunto
arbitrário de grafos.
João
9810001
Maria
9810002
Turma ED1 sala512 3a,5a, 17h
Turma BD1 sala212 3a,5a, 19h
28
Modelo Lógico - Hierárquico
„ Dados e relações são registros e links, mas os registros são
organizados como árvores.
„ Mais restrito que o de rede, pois não permite que um registro
esteja envolvido, como filho, em mais de um relacionamento.
„ Relacionamento muitos para muitos não é representado de
forma natural.
João
BD1 sala212
3a,5a, 19h
9810001
ED1 sala512
Maria
3a,5a, 17h
9810002
ED1 sala512
3a,5a, 17h
29
Modelo Lógico - Relacional
„ Dados e relações organizados em
tabelas
„ Mapeamento 1-1
„
„
„
„
„
Aluno
Aluno[matr-aluno,nome,depto]
Prof[matr-prof,nome,depto]
Turma[codigo,sala,horario]
Matr[matr-aluno,codigo]
Resp[codigo,matr-prof]M
„ Mapeamento Otimizado
„
„
„
„
Aluno[matr-aluno,nome,depto]
Prof[matr-prof,nome,depto]
Turma[codigo,sala,horario,matr-prof]
Matr[matr-aluno,codigo]
n
Matr
m
Turma
n
l
Resp
1
Prof
30
10
Modelo Lógico - Relacional
„ Exemplo
„
„
„
Aluno[matr-aluno,nome]
Turma[codigo,sala,horario]
Matr[matr-aluno,codigo]
Aluno
matr-aluno
Matr
João
9810001
matr-aluno
Maria
9810002
9810001
nome
9810002
Turma
codigo sala
horario
BD1
sala212
3a,5a, 19h
ED1
sala512
3a,5a, 17h
codigo
BD1
ED1
9810001
ED1
31
Modelo Lógico - OO
Class Pessoa { string matricula;
string nome;
string depto}
Class Aluno isa Pessoa
Aluno
n
Matr
m
Turma
Class Prof isa Pessoa
Class Turma { string codigo;
string sala;
string horario
Prof responsavel}
n
l
Resp
1
Class Matr { Aluno aluno;
Turma turma}
Prof
32
Sistema de Gerência de
Bancos de Dados
33
11
Características de SGBDs
„ Além dos modelos de dados, os SGBDs
podem ser caracterizados por suas
funcionalidades.
34
Aplicações
Consulta
DML
Esquema
DDL
DML
Processador de
Consultas
Gerenciador
de
Transações
Subsist. de
recuperação
Gerenciador
do buffer pool
Controle de
concorrência
Gerenciador
de arquivos
Índices
Arquivos
de dados
Gerenciador
de
Memória
Dicionário
de dados
35
Arquivos de Dados
„ Persistência
„ Armazenamento dos objetos do banco de dados,
que vão sofrendo modificações com o tempo
36
12
Dicionário de Dados
„ Armazena os metadados relativos à estrutura
do banco de dados.
37
Índices
„ Proporcionam acesso rápido aos dados
38
Processador de Consultas
„ Definição e manipulação de dados
„ Funções oferecidas pelas linguagens
„ DDL
„ processa os
comandos de
descrição das
estruturas do
esquema, e a
armazena em
dicionário de dados
„ DML
„ Realizar consultas e
atualizações,
inserções e remoções
„ SQL é a linguagem típica de SGBD relacional que
engloba uma LDD e uma LMD.
39
13
Gerenciador de Transações/
Subsistema de Recuperação
„ Recuperação de dados
„ Garantir que falhas durante o processamento
de transações não sejam propagadas aos
objetos persistentes.
Os objetos armazenados devem sobreviver a
falhas das transações e mesmo algumas
falhas de hardware
„ Mecanismo de recuperação/ recovery
„
40
Gerenciador de Transações/ Controle
de Concorrência de Transações
„ Garante que transações concorrentes serão
executadas sem conflitos em seus
procedimentos.
„ Técnicas de controle de concorrência
41
Gerenciador de Memória/ Gerenciador
de Arquivos
„ Gerencia a alocação de espaço no
armazenamento em disco e as estruturas de
dados usadas para representar estas
informações armazenadas em disco
42
14
Gerenciador de Memória/ Gerenciador
de Buffer
„ Responsável pela intermediação de dados do
disco para a memória principal e pela
decisão de quais dados colocar em memória
cache
43
Gerenciador de Autorizações e
Integridade
„ Mantém o BD em estado consistente,
satisfazendo algumas condições, chamadas
de restrições de integridade.
„ Implementa mecanismos de segurança de
acesso para consulta, remoção, atualização
e inserção de dados
„
Comandos de concessão e revogação (grant
e revoke) de acesso a usuários individuais ou
grupos de usuários
44
Desempenho
„ O SGBD deve executar as funções de forma
eficaz e eficiente
Estruturas de dados
Métodos de acesso
„ Técnicas de otimização
„
„
45
15
Carga, Descarga, Cópia, Restauração
„ Facilidades para
Carregar e descarregar o banco de dados ou
parte deles
„ Fazer cópia de segurança = backup
„ Restaurar o banco de dados a partir do
backup
„
46
Usuários de SGBDs
„ Administrador de Bancos de Dados
„
(DBA - Database Administrator)
„ Desenvolvedores
„
Programador de aplicações
„ Usuário comum
47
Comentários Finais
„ Dúvidas?
48
16
Download

Módulo 1