Sistemas de Banco de Dados

Propaganda
Programação com acesso a BD
Prof.: Clayton Maciel Costa
[email protected]
1
Modelos de Dados, Esquemas e
Instâncias
2
Modelos de Dados, Esquemas e
Instâncias
• Modelo de dados: Conjunto de conceitos descrevem a estrutura
de um BD:
• Abstração de dados;
• Estrutura = tipos de dados + relacionamentos + restrições
(+operações => recuperação e atualização).
• Esquema: Descrição (textual ou gráfica) da estrutura de um BD
de acordo com um determinado modelo de dados;
• Instância: Conjunto de dados armazenados no BD em um
determinado instante de tempo.
3
Modelos de Dados, Esquemas e
Instâncias
• Por exemplo:
Modelo 2
Modelo 1
≠
Detalhes que não interessam
a estes usuários não aparecem
4
Modelos de Dados, Esquemas e
Instâncias
• Estrutura de um banco de dados:
B
A
N
C
O
D
E
D
A
D
O
S
5
Modelos de Dados, Esquemas e
Instâncias
6
Modelos de Dados, Esquemas e
Instâncias
7
Modelos de Dados, Esquemas e
Instâncias
• Esquema do BD:
• Armazenado no catálogo;
• Mudanças muito menos frequentes.
• Estado do BD:
• Dados do banco em qualquer ponto do tempo;
• Inicialmente vazio;
• Muda frequentemente;
• Validade parcialmente garantida pelo SGBD.
8
Modelos de Dados, Esquemas e
Instâncias
Instâncias :
Alterações :
Nos dados
A todo momento
Estado:
Vazio
Diagrama
de Esquema
Novas Versões
Populado / Carregado
101001001001010
101010010010010
100111101010101
001001010101010
9
Categorias de Modelo de Dados
MODELOS CONCEITUAIS (Alto Nível)
• Descrevem a estrutura de um BD de uma forma mais
próxima da percepção dos usuários;
• Independente de aspectos de implementação;
• Conceitos: entidades, atributos, relacionamentos;
• Exemplos:
• Modelo entidade-relacionamento (ER);
• Modelo orientado a objetos (OO).
10
Categorias de Modelo de Dados
MODELOS REPRESENTACIONAIS (Nível Intermediário)
• Descrevem a estrutura de um BD da forma como será
manipulado através de SGBD;
• Mais dependente das estruturas físicas de
armazenamento de dados;
• Exemplos:
• Modelo relacional;
• Modelo de rede (CODASYL);
• Modelo hierárquico.
11
Categorias de Modelo de Dados
MODELOS FÍSICOS (Baixo Nível)
• Descrevem como os dados são fisicamente
armazenados;
• Conceitos: formatos dos registros, ordenamento dos
registros, caminhos de acesso (eficiência);
12
Arquitetura de um Sistema de BD
• Características do enfoque de BD:
• Isolamento de programas e dados;
• Suporte de visões múltiplas de usuários;
• Catálogo para armazenar a descrição (esquema) do
BD.
• Arquitetura de três níveis:
• Mantém independência de dados e programas;
• Suporta múltiplas visões.
13
Arquitetura de um Sistema de BD
• Esquema Interno:
• Descreve como os dados estão fisicamente armazenados;
• Exemplo:
• Organização de arquivo:
• seqüencial-indexado, hashing, seqüencial, heap.
• Alocação em disco:
• Contígua, lista encadeada, lista encadeada utilizando índice.
• Tipo de registro:
• Fixo, variável.
• Esquema Conceitual:
• Descreve quais dados estão armazenados no banco de dados;
• Descreve os relacionamentos entre os dados armazenados.
• Esquema Externo:
• Descreve parte do banco de dados;
• Simplificar a visão do usuário;
• “Ver” só o que interessa;
• Segurança.
14
Arquitetura de um Sistema de BD
Esquema
Externo 1
Esquema
Externo 2
Esquema
Externo n
Esquema
Externo
Esquema Conceitual
Esquema
Conceitual
Esquema
Interno (Físico)
Esquema Interno
(Banco de Dados armazenado)
15
Arquitetura de um Sistema de BD –
Exemplo 1
Esquema conceitual:
• Estudantes (eid: string, nome: string, login: string, idade: integer,
gpa:real);
• Cursos (cid: string, cnome:string, creditos:integer);
• Matricula (eid:string, cid:string, nota:string).
Esquema Físico:
• Relações guardadas como arquivos desordenados;
• Índices na primeira colunas de estudantes.
Esquema externo (Visão):
• Info_Curso(cid:string, horário:string).
16
Arquitetura de um Sistema de BD –
Exemplo 2
17
Independência de Dados
• Capacidade de se alterar o esquema em um
determinado nível sem alterar o esquema (ou
esquemas) do nível imediatamente mais alto.
• VANTAGEM:
• Imunidade dos programas em relação a mudanças na
estrutura do banco de dados;
• Um dos maiores benefícios de usar SGBD.
18
Independência de Dados
Habilidade de modificar
o esquema físico sem
causar redefinição dos
programas de aplicação
Modificações são
necessárias para
melhorar desempenho
Habilidade de modificar
o esquema lógico sem
causar redefinição dos
programas de aplicação
Modificações são
necessárias quando a
estrutura lógica da
base é alterada
19
Independência de Dados
20
Linguagens de Banco de Dados
• Finalidade:
• garantir a especificação do esquema de um banco de dados;
• permitir consultas e atualizações sobre o banco de dados.
• Componentes:
• DDL - Data Definition Language:
• Utilizada para especificar o esquema de um BD;
• Expressões da DDL:
• Interpretadas (compilados) gerando a especificação de um conjunto de tabelas;
• A especificação das tabelas é armazenada no catálogo do banco de dados.
• Exemplo (SQL):
create table Empregado
(matr integer not null,
nome varchar(35),
salario real,
primary key(matr));
21
Linguagens de Banco de Dados
• Componentes (cont.)
• DML - Data Manipulation Language:
• Utilizada para permitir:
DML
Procedural
- requer a especificação de quais dados
• Consultas sobre um BD
• Exemplo (SQL)
devem ser acessados e como devem ser
select nome
acessados
Não procedural
from Empregado
- requer somente a especificação de quais
where salario > 7000
dados devem ser acessados
• Inserções em uma tabela
• Exemplo (SQL)
insert into Empregado values(123, “Bárbara”, 5000.00)
• Remoções em uma tabela
• Exemplo (SQL)
delete from Empregado
where matr=14
• Atualizar valores de atributos de uma tabela
• Exemplo (SQL)
update Empregado set salário=salário*1.15
where salário<1500.00
22
Linguagens de Banco de Dados
• Componentes (cont.)
• VDL – View Definition Language:
• Utilizada para criar visões de usuários
• Exemplo (SQL):
Create View Info_Renda_Emp as
Select nome, salario From Empregado;
23
Interfaces do SGBD
Baseadas em menus: Apresenta
uma lista de menus que
conduzem através da formulação
de uma solicitação.
Baseadas em formulários: Os
usuários podem preencher as
entradas do formulário.
24
Interfaces do SGBD
Interfaces gráficas: Exibe um
esquema para o usuário na
forma de diagramas. A consulta
é construída manipulando o
diagrama.
25
Interfaces do SGBD
Para usuários leigos: Aplicações desenvolvidas por
analistas e programadores
26
Interfaces do SGBD
Para o DBA: Ambiente onde o
DBA pode colocar em prática
todos os detalhes técnicos
definidos nos modelos, usando
comandos ou opções do
software
27
Módulos Componentes do SGBD
SGBD
Processador de Consultas + Sistema de Armazenamento
Processador de Consultas
Compilador DML
• Analisa sintaticamente e semanticamente comandos DML
expressos em uma linguagem de consulta (ex. SQL);
• Traduz estes comandos para uma das formas de representação
interna de consultas (ex. álgebra relacional).
Pré-Compilador DML
• Traduz comandos DML em chamadas a procedimentos (rotinas) na
linguagem hospedeira.
Interpretador DDL
• Interpreta comandos DDL e os armazena no catálogo:
• Tabelas e descrição do banco de dados  Esquema
Mecanismo de Consultas
• Responsável pela otimização e geração de planos de execução de
consultas.
28
Módulos Componentes do SGBD
SGBD
Sistema de Armazenamento
Gerenciador de Transações
• Controle de concorrência;
• Recuperação do banco de dados após falhas.
Gerenciador de Buffer
• Responsável para recuperar objetos em disco e carregá-los na
memória principal em forma de páginas;
• SGBD possui uma área de buffer em memória principal.
Gerenciador de Arquivo (File System)
Responsável pelo armazenamento físico em disco;
Gerencia a alocação de espaço em disco.
29
Módulos Componentes do SGBD
BD
Arquivos de dados + Índices + Catálogo
Arquivos de dados
• Armazena os dados.
Índices
• Estruturas de índices para os arquivos de dados.
Catálogo
• Armazena esquema do banco de dados (meta-dados):
• Nomes das tabelas;
• Atributos de cada tabela;
• Definição de índice para uma tabela, etc…
• Armazena informações estatísticas:
• Exemplo:
• Cardinalidade de uma tabela.
• Utilizadas na otimização de consultas.
30
Módulos Componentes do SGBD
Programadores
Usuário experiente
Programa Aplicativo
Consulta
Pre-compilador
DML
Compilador
DML
DBA/Projetista
Esquema
Interpretador
DDL
Mecanismo
de Consultas
Gerenciador
de Buffer
Gerenciador
de Transações
Gerenciador
de Arquivo
Código Objeto
aplicativos
índices
Arquivos
de dados
Processador
de Consultas
Sistema de
Armazenamento
SGBD
Catálogo
BD
SBD31
Utilitários do Sistema de Banco de
Dados
• Carga (loading)
• Arquivos dados  Banco de Dados.
• Cópia de segurança (backup)
• Para restaurar em caso de falhas.
• (Re-)Organização de arquivos
• Melhorar o desempenho.
• Monitoramento do desempenho
• Fornece estatísticas para o DBA: informações sobre
desempenho  reorganização
32
Ferramentas, Ambientes de Aplicações e
Facilidades de Comunicações
Ferramentas: SQL Power Architect, DbDesigner , PowerDesigner, etc...
Ambientes de desenvolvimento: NetBeans, Delphi, etc...
Software de comunicação: Utiliza os recursos disponíveis na rede.
33
Classificação dos SGBDs
• Quanto ao modelo de dados adotado:
•
•
•
•
•
De rede;
Hierárquicos;
Relacionais;
Orientados a objetos;
Objeto-relacionais.
• Quanto ao número de usuários suportados:
• Monousuários;
• Multiusuários.
• Quanto à localização dos dados:
• Centralizados;
• Distribuídos.
34
Classificação dos SGBDs
Monousuário
x
Multiusuário
35
Exemplo de um BD relacional
36
FIM
37
Download