banco de dados - professor baesse · •esquema: descrição (textual ou gráfica) da estrutura de...
TRANSCRIPT
Banco de Dados
Prof.: Clayton Maciel Costa [email protected] 1
Modelos de Dados, Esquemas e Instâncias
2
• 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 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 / 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)
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
Independência de Dados
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
Independência de Dados
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 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;
23
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 diagrama.
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 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
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 Objeto aplicativos
Arquivos de dados
índices 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
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.
35
Monousuário x Multiusuário
Classificação dos SGBDs
Exemplo de um BD relacional
36
FIM
37