37
Programação com acesso a BD Prof.: Clayton Maciel Costa [email protected] 1

Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

Embed Size (px)

Citation preview

Page 1: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

Programação com acesso a BD

Prof.: Clayton Maciel Costa [email protected] 1

Page 2: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

Modelos de Dados, Esquemas e Instâncias

2

Page 3: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

• 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

Page 4: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

• 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

Page 5: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

• 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

Page 6: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

6

Modelos de Dados, Esquemas e Instâncias

Page 7: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

7

Modelos de Dados, Esquemas e Instâncias

Page 8: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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

Page 9: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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

Page 10: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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).

Page 11: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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.

Page 12: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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);

Page 13: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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

Page 14: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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

Page 15: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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

Page 16: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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

Page 17: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

17

Arquitetura de um Sistema de BD – Exemplo 2

Page 18: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

• 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

Page 19: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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

Page 20: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

20

Independência de Dados

Page 21: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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

Page 22: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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

Page 23: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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

Page 24: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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.

Page 25: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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.

Page 26: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

Interfaces do SGBD

26

Para usuários leigos: Aplicações desenvolvidas por analistas e programadores

Page 27: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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

Page 28: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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.

Page 29: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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.

Page 30: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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.

Page 31: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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

Page 32: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

• 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

Page 33: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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...

Page 34: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

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.

Page 35: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

35

Monousuário x Multiusuário

Classificação dos SGBDs

Page 36: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

Exemplo de um BD relacional

36

Page 37: Programação com acesso a BDclaytonmaciel/files/20111/bd/Aula 3 - Sistemas de... · Programação com acesso a BD Prof.: ... • Tabelas e descrição do banco de dados ... Ambientes

FIM

37