8
I I I I I I I

de Dados Conceitos e Arquiteturas de Sistemas de … · instruções SQL para o SGBD. Arquiteturas Cliente/Servidor de rês Camadas I Possui uma camada intermediária entre o cliente

  • Upload
    vunhan

  • View
    226

  • Download
    0

Embed Size (px)

Citation preview

Conceitos e Arquitetura de Sistemas de Banco

de Dados

Luiz Henrique de Campos MerschmannDepartamento de Computação

Universidade Federal de Ouro Preto

[email protected]/luiz

Roteiro

Posicionamento

Conceitos: Modelos de Dados, Esquemas e Instâncias

Arquitetura para os Sistemas de Banco de DadosLinguagens de Banco de Dados e InterfacesMódulos Componentes do SGBDArquiteturas Centralizada e Cliente/Servidor para os SGBDs

BCC321 - Banco de Dados I

Ementa

1. Conceitos básicos em sistemas de banco de dados.

2. Conceitos e arquitetura de sistemas de banco de dados.

3. Modelagem conceitual de dados.

4. Modelo Relacional: conceitos básicos e restrições deintegridade.

5. Linguagens: álgebra e cálculo relacional.

6. A linguagem SQL e o uso de APIs.

7. Projeto de banco de dados.

8. Normalização de banco de dados.

9. Noções de processamento de transações, concorrência erecuperação de falhas.

10. Aspectos de implementação de banco de dados.

Conceitos e Arquiteturas de Sistemas de Bancode Dados

Modelos de Dados, Esquemas e Instâncias

I Modelos de dados: conjunto de conceitos que podem serusados para descrever a estrutura de um banco de dados.

I Permitem a abstração dos dados.I Estrutura de um banco de dados: tipos de dados,

relacionamentos e restrições pertinentes aos dados (+conjunto de operações para especi�car como recuperar emodi�car a base de dados).

I Esquema: descrição (textual ou grá�ca) da estrutura de umbanco de dados de acordo com um determinado modelo dedados.

I Construtor do esquema: cada objeto do esquema.I Diagrama esquemático: ilustração que mostra alguns

aspectos do esquema.

I Instância: conjunto de dados armazenados em um banco dedados em um determinado instante de tempo.

Diagrama Esquemático de um Banco de Dados Instância do Banco de um Dados

Esquemas e Instâncias

I Esquema:I De�nido durante o projeto do banco de dados.I Armazenado no catálogo do banco de dados.I Espera-se que não seja alterado com frequência.

I Estado do banco de dados:I Também conhecido como instância do banco de dados.I Inicialmente temos o estado vazio (sem nenhum dado).I A cada atualização de dados alteramos o estado do banco

de dados.I O SGBD é parcialmente responsável por assegurar que cada

estado do banco de dados seja válido.

Categorias de Modelos de Dados

Classi�cação de acordo com os tipos de conceitos utilizados:

I Alto nível ou modelos de dados conceituais.

I Modelos de dados representativos ou de implementação.

I Baixo nível ou modelos de dados físicos.

Categorias de Modelos de Dados

Modelos de dados conceituais

I Utilizam conceitos que descrevem os dados como osusuários os percebem.

I Conceitos: entidades, atributos e relacionamentos.

I Independente de aspectos de implementação em um SGBD.I Exemplos:

I Modelo entidade-relacionamento (ER).I Modelo orientado a objetos (OO).

Categorias de Modelos de Dados

Modelos de dados representativos (lógicos)

I Oferecem conceitos para a descrição a estrutura de umbanco de dados da forma como será manipulado através doSGBD.

I Ocultam alguns detalhes de armazenamento de dados.I Exemplos:

I Modelo relacional.I Modelo hierárquico.I Modelo de rede.

Categorias de Modelos de Dados

Modelos de dados físicos

I Utilizam conceitos que descrevem os detalhes de como osdados estão �sicamente armazemados.

I Conceitos: formato dos registros, ordem dos registros e oscaminhos de acesso.

Arquitetura para os Sistemas de Banco de Dados

Características importantes da abordagem com uso de BD:

I Independência de dados e programas;

I Suporte a múltiplas visões de usuários;

I Uso de catálogo.

Arquitetura proposta para realização evisualização dessas características.

Arquitetura de Três-Esquemas (ANSI/SPARC)

I Objetivo: separar as aplicações do usuário do banco dedados físico.

I Os esquemas são de�nidos por três níveis.

A Arquitetura Três-EsquemasNível externo

I Esquema externo ou visão de usuário: descreve a parte do BDque um grupo de usuários tem interesse e oculta o restante dobanco desse grupo.

Nível conceitual

I Esquema conceitual: descreve a estrutura de todo o BD. Ocultadetalhes de armazenamento físico e se concentra na descrição deentidades, tipos de dados, relacionamentos etc.

Nível interno

I Esquema interno: descreve a estrutura de armazenamento físicodo banco de dados.

I Utiliza um modelo de dados físico e descreve os detalhescompletos de armazenamento de dados e caminhos de acesso aobanco de dados.

A Arquitetura Três-Esquemas

A Arquitetura Três-Esquemas

I A maioria dos SGBDs não separa os três níveiscompletamente:

I Alguns SGBDs incluem detalhes do nível físico no esquemaconceitual.

I Na maioria dos SGBDs os esquemas externos sãoespeci�cados com o mesmo modelo de dados que descreve ainformação no nível conceitual.

Independência de Dados

I É a capacidade de mudar o esquema em um nível dosistema de banco de dados sem que ocorram alterações doesquema no próximo nível mais alto.

I O SGBD usa software para realizar os mapeamentos entreos níveis.

Independência de Dados

Tipos de independência de dados:

Independência de Dados Lógica

É a capacidade de alterar o esquema conceitual sem mudar oesquema externo ou os programas.Exemplo: modi�car o esquema conceitual para expandir o BD(adicionando um item de dados).

Independência Física de Dados

É a capacidade de mudar o esquema interno sem ter que alteraro esquema conceitual.Exemplo: criação de estruturas de acesso adicionais paramelhorar o desempenho da recuperação ou atualização de dados.

Linguagens de Banco de Dados

O SGBD deve oferecer linguagens e interfaces apropriadaspara cada categoria de usuários

I Linguagem de De�nição de Dados (Data De�nitionLanguage � DDL)

I Usada pelo DBA e projetistas para de�nir os esquemas.

I Linguagem de De�nição de Armazenamento(Storage De�nition Language � SDL)

I Utilizada para especi�car o esquema interno em SGBDsonde uma clara separação é mantida entre os níveisconceitual e interno.

I Linguagem de De�nição de Visões (View De�nitionLanguage � VDL)

I Em uma verdadeira arquitetura três-esquemas: terceiralinguagem (VDL) para especi�car as visões dos usuários eseus mapeamentos para o esquema conceitual.

I Na maioria dos SGBDs a DDL é usada para de�nir osesquemas conceitual e externo.

Linguagens de Banco de Dados

Continuação...

I Linguagem de Manipulação de Dados (DataManipulation Language � DML)

I Usada para recuperação, inserção, remoção e modi�caçãodos dados.

I Tipos de DMLs:I Alto nível (ou não procedural ou declarativas): os

usuários especi�cam quais dados recuperar sem especi�carcomo obtê-los.

I Nível baixo (ou procedural): requerem que o usuárioespeci�que que dados são necessários e como obtê-los.

Linguagens de Banco de Dados

Continuação...

I Se comandos DML forem embutidos em um programa delinguagem de propósito geral:

I Linguagem de propósito geral = linguagem hospedeira (hostlanguage).

I DML = sublinguagem de dados.

I Se comandos DML (de alto nível) forem utilizados demaneira isolada e interativa:

I DML = linguagem de consulta (query language).

I SQL = DDL + VDL + DML + comandos paraespeci�cações das restrições.

Interfaces

I Baseadas em Menus.I Menus que guiam o usuário durante a formulação da

pesquisa.I Ex.: menus suspensos (pull-down).

I Baseadas em Formulários.I Um formulário para cada grupo de usuário.I O usuário pode preencher todos os campos do formulário de

entrada para inserir um novo dado.I O usuário pode preencher somente alguns campos e o

SGBD recuperar os dados faltantes para os campos vazios.

I Grá�cas (GUI).I Formulário + menus.I O usuário pode especi�car uma consulta manipulando um

formulário diagramático.

Interfaces

I Baseadas em Linguagem Natural.I Aceitam solicitações escritas em diferentes idiomas e tentam

�entendê-las�.I Se a interpretação da solicitação for bem sucedida, a

interface gera uma consulta de alto nível correspondendo àsolicitação da linguagem natural.

I Para Usuários Parametrizáveis.I Usuários parametrizáveis: caixas de banco.I Comandos são adaptados com o objetivo de minimizar o

número de teclas utilizadas para realizar cada solicitação.

I Para DBAs.I Interfaces utilizadas pelos DBAs para criação de contas,

autorizações de acesso, ajuste de parâmetros etc.

Módulos Componentes do SGBD

Controla o acesso à informação do SGBD que está armazenada

no disco

Processa as definições do esquema e armazena suas descrições no catálogo.

Recebe os comandos para recuperação ou

atualização e os executa no banco de dados.

Analisa a sintaxe e compila a consulta criando um código

de acesso ao BD.

Compila os comandos DML, gerando códigos

para acesso ao BD.

Utilitários do Sistema de Banco de Dados

Utilitários que auxiliam o DBA no gerenciamento dosistema:

I Carga (loading)I Arquivos de dados ⇒ Banco de dados.I Transferência de dados de um SGBD para outro.

I Backup

I Para descarregar todo o BD em uma �ta.I A cópia backup pode ser usada para restaurar o BD em

casos de falhas.

I Reorganização de arquivosI Reorganizar um arquivo de BD buscando melhorar seu

desempenho.

I Monitoramento de desempenhoI Monitora o uso do BD e fornece estatísticas para o DBA.

Arquiteturas Centralizada e Cliente/Servidorpara os SGBDs

Histórico

I Antigamente: grandes computadores centrais (mainframes)para processar todas as funções do SBD (programas deaplicação e interface com usuários + funcionalidades doSGBD). Os usuários acessavam o sistema via terminais quenão tinham poder de processamento.

I Com o passar do tempo os SGBDs começam a explorar opoder de processamento disponível do lado do usuário (PCse as estações de trabalho), gerando as arquiteturas SGBDcliente-servidor.

Arquitetura Centralizada

Arquiteturas Cliente/Servidor para os SGBDs

Dois tipos principais de arquiteturas de SGBD foram criadosutilizando-se os fundamentos da estrutura cliente/servidor:

I Arquiteturas Cliente/Servidor de Duas Camadas.

I Arquiteturas Cliente/Servidor de Três Camadas.

Arquiteturas Cliente/Servidor de Duas Camadas

I Lado do cliente: interface com os usuários e os programasde aplicação.

I Lado do servidor: SGBD.

Programa de

AplicaçãoUsuário Driver do

SGBD

COM

SGBDSO

COM

Bancode

Dados

Computador Cliente Computador Servidor

COM = Software de Comunicação de RedeSO = Sistema Operacional

I O ODBC (Open Database Connectivity) oferece uma API(Interface para o Programa de Aplicação) pela qual osprogramas de aplicação podem acessar o SGBD.

I A maioria dos fornecedores de SGBD fornecem os driversODBC para seus sistemas.

I Um driver processa as solicitações ODBC e enviainstruções SQL para o SGBD.

Arquiteturas Cliente/Servidor de Três Camadas

I Possui uma camada intermediária entre o cliente e o servidor debanco de dados.

I Servidor de Aplicações: armazena as regras de negócio (restriçõesou procedimentos para veri�cação e validação dos dados).

I Servidor de Aplicações: também pode incrementar a segurançado BD checando as credenciais do cliente antes de enviar umasolicitação ao servidor de BD.

Perguntas?

FIM