Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação...

Preview:

Citation preview

Programação com acesso a BD

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 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

Recommended