• 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
3
• Por exemplo:
Modelos de Dados, Esquemas e
Instâncias
4
Detalhes que não interessama estes usuários não aparecem
Modelo 1
Modelo 2
≠
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 dadosA todo momento
Diagrama de Esquema
Novas Versões
Alterações :
Instâncias :
Estado:
Vazio
101001001001010101010010010010100111101010101001001010101010
Populado / Carregado
Modelos 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);
• Modelo orientado a objetos (OO).
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);
• Modelo hierárquico.
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.
Arquitetura de um Sistema de BD
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.
Arquitetura de um Sistema de BD
15
Esquema Externo 1
Esquema Externo 2
Esquema Externo n
Esquema Conceitual
Esquema Interno(Banco de Dados armazenado)
EsquemaConceitual
EsquemaInterno (Físico)
EsquemaExterno
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
• 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
19
Independência de Dados
Habilidade de modificaro esquema físicosem
causar redefinição dos programas de aplicação
Modificações sãonecessárias para
melhorar desempenho
Habilidade de modificaro esquema lógico semcausar redefinição dos programas de aplicação
Modificações sãonecessárias quando aestrutura lógica da
base é alterada
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:
• Consultas sobre um BD• Exemplo (SQL)
select nomefrom Empregadowhere 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 Empregadowhere matr=14
• Atualizar valores de atributos de uma tabela• Exemplo (SQL)
update Empregado set salário=salário*1.15where salário<1500.00
22
DMLDMLProcedural
- 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;
23
Interfaces do SGBD
24
Baseadas em menus: Apresentauma lista de menus que conduzem através da formulaçãode uma solicitação.
Baseadas em formulários: Osusuários podem preencher asentradas 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 diagrama.
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 software
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
29
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.
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.
• Utilizadas na otimização de consultas.
Módulos Componentes do SGBD
31
EsquemaConsultaPrograma Aplicativo
Gerenciador de Transações
Mecanismo de Consultas
Gerenciador de Buffer
Gerenciador de Arquivo
Compilador DML
Pre-compilador DML
Sistema de Armazenamento
Processadorde Consultas
SGBD
SBD
Código Objetoaplicativos
Arquivosde dados
índices Catálogo BD
DBA/ProjetistaUsuário experienteProgramadores
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
32
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...
Ambientes de desenvolvimento: NetBeans, Delphi, 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;
• Distribuídos.