Programação com acesso a BD
Prof.: Clayton Maciel Costa
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.
Modelos de Dados, Esquemas e
Instâncias
•
Por exemplo:
Modelos de Dados, Esquemas e
Instâncias
4
Detalhes que não interessam a estes usuários não aparecem
Modelo 1
Modelo 2
• Estrutura de um banco de dados: 5 B A N C O D E D A D O S
Modelos de Dados, Esquemas e
Instâncias
6
Modelos de Dados, Esquemas e
Instâncias
7
Modelos de Dados, Esquemas e
Instâncias
8
•
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.
Modelos de Dados, Esquemas e
Instâncias
9
Nos dados
A todo momento
Diagrama
de Esquema
Novas Versões
Alterações :
Instâncias :
Estado:
Vazio 101001001001010 101010010010010 100111101010101 001001010101010 Populado / CarregadoModelos de Dados, Esquemas e
Instâncias
Categorias de Modelo de Dados
10
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);
Categorias de Modelo de Dados
11
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);
Categorias de Modelo de Dados
12
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);
13
•
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.
14
•
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.
15 Esquema Externo 1 Esquema Externo 2 Esquema Externo n Esquema Conceitual Esquema Interno
(Banco de Dados armazenado)
Esquema Conceitual Esquema Interno (Físico) Esquema Externo
Arquitetura de um Sistema de BD
16
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).
Arquitetura de um Sistema de BD –
Exemplo 1
17
Arquitetura de um Sistema de BD –
Exemplo 2
•
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
19
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
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,
Linguagens de Banco de Dados
•
Componentes (cont.)
•
DML - Data Manipulation Language:
• Utilizada para permitir:
• Consultas sobre um BD
• Exemplo (SQL)
select nome from Empregado where salario > 7000
• 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 DML
Procedural
- requer a especificação de quais dados devem ser acessados e como devem ser acessados
Não procedural
- requer somente a especificação de quais dados devem ser acessados
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;
Interfaces do SGBD
24
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.
Interfaces do SGBD
25
Interfaces gráficas:
Exibe um
esquema para o usuário na
forma de diagramas. A consulta
é construída manipulando o
Interfaces do SGBD
26
Para usuários leigos:
Aplicações desenvolvidas por
analistas e programadores
Interfaces do SGBD
27
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
Módulos Componentes do SGBD
28
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.
Módulos Componentes do SGBD
29SGBD
Sistema de ArmazenamentoGerenciador 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.
Módulos Componentes do SGBD
30
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.
Módulos Componentes do SGBD
31 Esquema Consulta Programa Aplicativo Gerenciador de Transações Mecanismo de Consultas Gerenciador de Buffer Gerenciador de Arquivo Compilador DML Pre-compilador DML Sistema de Armazenamento Processador de Consultas SGBD SBD Código Objetoaplicativos índices Arquivos de dados Catálogo BD
DBA/Projetista Usuário experiente
Programadores
Interpretador DDL
•
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
Utilitários do Sistema de Banco de
Dados
Ferramentas, Ambientes de Aplicações e
Facilidades de Comunicações
33
Software de comunicação
: Utiliza os recursos disponíveis na rede.
Ferramentas
: SQL Power Architect, DbDesigner , PowerDesigner, etc...
Classificação dos SGBDs
34
•
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;
35