Conceitos e Arquitetura de Sistemas de Banco de Dados Luiz

Propaganda
Roteiro
Conceitos e Arquitetura de Sistemas de Banco
de Dados
Luiz Henrique de Campos Merschmann
Departamento de Computação
Universidade Federal de Ouro Preto
[email protected]
www.decom.ufop.br/luiz
BCC321 - Banco de Dados I
Ementa
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Conceitos básicos em sistemas de banco de dados.
Conceitos e arquitetura de sistemas de banco de dados.
Modelagem conceitual de dados.
Modelo Relacional: conceitos básicos e restrições de
integridade.
Linguagens: álgebra e cálculo relacional.
A linguagem SQL e o uso de APIs.
Projeto de banco de dados.
Normalização de banco de dados.
Noções de processamento de transações, concorrência e
recuperação de falhas.
Aspectos de implementação de banco de dados.
Posicionamento
Conceitos: Modelos de Dados, Esquemas e Instâncias
Arquitetura para os Sistemas de Banco de Dados
Linguagens de Banco de Dados e Interfaces
Módulos Componentes do SGBD
Arquiteturas Centralizada e Cliente/Servidor para os SGBDs
Conceitos e Arquiteturas de Sistemas de Banco
de Dados
Modelos de Dados, Esquemas e Instâncias
I
Modelos de dados: conjunto de conceitos que podem ser
usados 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 especicar como recuperar e
modicar a base de dados).
I
Esquema: descrição (textual ou gráca) da estrutura de um
banco de dados de acordo com um determinado modelo de
dados.
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 de
dados 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
Categorias de Modelos de Dados
I
Esquema:
I Denido durante o projeto do banco de dados.
I Armazenado no catálogo do banco de dados.
I Espera-se que
I
não seja alterado com frequência.
Estado do banco de dados:
I
I O SGBD é parcialmente responsável por assegurar que cada
estado do banco de dados seja
I
I
instância do banco de dados.
Inicialmente temos o estado vazio (sem nenhum dado).
A cada atualização de dados alteramos o estado do banco
de dados.
I Também conhecido como
I
Classicação de acordo com os tipos de conceitos utilizados:
válido.
I
Alto nível ou modelos de dados conceituais.
Modelos de dados representativos ou de implementação.
Baixo nível ou modelos de dados físicos.
Categorias de Modelos de Dados
Modelos de dados conceituais
I
I
I
I
Utilizam conceitos que descrevem os dados como os
usuários os percebem.
Conceitos: entidades, atributos e relacionamentos.
Independente de aspectos de implementação em um SGBD.
Exemplos:
Categorias de Modelos de Dados
Modelos de dados representativos (lógicos)
I
I
I
I Modelo relacional.
I Modelo entidade-relacionamento (ER).
I Modelo hierárquico.
I Modelo orientado a objetos (OO).
Categorias de Modelos de Dados
Oferecem conceitos para a descrição a estrutura de um
banco de dados da forma como será manipulado através do
SGBD.
Ocultam alguns detalhes de armazenamento de dados.
Exemplos:
I Modelo de rede.
Arquitetura para os Sistemas de Banco de Dados
Características importantes da abordagem com uso de BD:
I
I
Modelos de dados físicos
I
I
I
Utilizam conceitos que descrevem os detalhes de como os
dados estão sicamente armazemados.
Conceitos: formato dos registros, ordem dos registros e os
caminhos de acesso.
Independência de dados e programas;
Suporte a múltiplas visões de usuários;
Uso de catálogo.
Arquitetura proposta para realização e
visualização dessas características.
Arquitetura de Três-Esquemas (ANSI/SPARC)
I
I
Objetivo: separar as aplicações do usuário do banco de
dados físico.
Os esquemas são denidos por três níveis.
A Arquitetura Três-Esquemas
A Arquitetura Três-Esquemas
Nível externo
I Esquema externo ou
visão de usuário:
descreve a parte do BD
que um grupo de usuários tem interesse e oculta o restante do
banco desse grupo.
Nível conceitual
I Esquema conceitual: descreve a estrutura de todo o BD. Oculta
detalhes de armazenamento físico e se concentra na descrição de
entidades, tipos de dados, relacionamentos etc.
Nível interno
I Esquema interno: descreve a estrutura de armazenamento físico
do banco de dados.
I Utiliza um modelo de dados físico e descreve os detalhes
completos de armazenamento de dados e caminhos de acesso ao
banco de dados.
A Arquitetura Três-Esquemas
I
A maioria dos SGBDs não separa os três níveis
completamente:
Independência de Dados
I
I Alguns SGBDs incluem detalhes do nível físico no esquema
conceitual.
I Na maioria dos SGBDs os esquemas externos são
especicados com o mesmo modelo de dados que descreve a
informação no nível conceitual.
I
É a capacidade de mudar o esquema em um nível do
sistema de banco de dados sem que ocorram alterações do
esquema no próximo nível mais alto.
O SGBD usa software para realizar os mapeamentos entre
os 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 o
esquema externo ou os programas.
Exemplo: modicar o esquema conceitual para expandir o BD
(adicionando um item de dados).
Linguagens de Banco de Dados
O SGBD deve oferecer linguagens e interfaces apropriadas
para cada categoria de usuários
I
I Usada pelo DBA e projetistas para denir os esquemas.
I
Linguagem de Denição de Armazenamento
(Storage Denition Language SDL)
I Utilizada para especicar o esquema interno em SGBDs
onde uma clara separação é mantida entre os níveis
Independência Física de Dados
É a capacidade de mudar o esquema interno sem ter que alterar
o esquema conceitual.
Exemplo: criação de estruturas de acesso adicionais para
melhorar o desempenho da recuperação ou atualização de dados.
Linguagem de Denição de Dados (Data Denition
Language DDL)
conceitual e interno.
I
Linguagem de Denição de Visões (View Denition
Language VDL)
I Em uma verdadeira arquitetura três-esquemas: terceira
linguagem (VDL) para especicar as visões dos usuários e
seus mapeamentos para o esquema conceitual.
I Na maioria dos SGBDs a DDL é usada para denir os
esquemas conceitual e externo.
Linguagens de Banco de Dados
Continuação...
I
Linguagem de Manipulação de Dados (Data
Manipulation Language DML)
Linguagens de Banco de Dados
Continuação...
I
language ).
dos dados.
I DML = sublinguagem de dados.
I Tipos de DMLs:
I
I
Alto nível (ou não procedural ou declarativas): os
usuários especicam quais dados recuperar sem especicar
como obtê-los.
Nível baixo (ou procedural): requerem que o usuário
especique que dados são necessários e como obtê-los.
Se comandos DML forem embutidos em um programa de
linguagem de propósito geral:
I Linguagem de propósito geral = linguagem hospedeira (host
I Usada para recuperação, inserção, remoção e modicação
I
Se comandos DML (de alto nível) forem utilizados de
maneira isolada e interativa:
I DML = linguagem de consulta (query language ).
I
SQL = DDL + VDL + DML + comandos para
especicações das restrições.
Interfaces
I
Interfaces
Baseadas em Menus.
I
I Menus que guiam o usuário durante a formulação da
I
entendê-las.
I Se a interpretação da solicitação for bem sucedida, a
Baseadas em Formulários.
interface gera uma consulta de alto nível correspondendo à
solicitação da linguagem natural.
I Um formulário para cada grupo de usuário.
I O usuário pode preencher todos os campos do formulário de
I
entrada para inserir um novo dado.
Para Usuários Parametrizáveis.
I Usuários parametrizáveis: caixas de banco.
I O usuário pode preencher somente alguns campos e o
I Comandos são adaptados com o objetivo de minimizar o
SGBD recuperar os dados faltantes para os campos vazios.
I
Baseadas em Linguagem Natural.
I Aceitam solicitações escritas em diferentes idiomas e tentam
pesquisa.
I Ex.: menus suspensos (pull-down ).
Grácas (GUI).
número de teclas utilizadas para realizar cada solicitação.
I
I Formulário + menus.
I Interfaces utilizadas pelos DBAs para criação de contas,
I O usuário pode especicar uma consulta manipulando um
autorizações de acesso, ajuste de parâmetros etc.
formulário diagramático.
Módulos Componentes do SGBD
Para DBAs.
Utilitários do Sistema de Banco de Dados
Utilitários que auxiliam o DBA no gerenciamento do
sistema:
I
Carga (loading )
I
Backup
I Arquivos de dados
⇒
Banco de dados.
I Transferência de dados de um SGBD para outro.
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 arquivos
I Reorganizar um arquivo de BD buscando melhorar seu
desempenho.
Controla o acesso à
informação do SGBD
que está armazenada
no disco
I
Monitoramento deProcessa
desempenho
as definições
do
esquema
e
I Monitora o uso
do BD e fornece
estatísticas para o DBA.
armazena
suas
descrições no catálogo.
Arquiteturas Centralizada e Cliente/Servidor
Arquitetura Centralizada
para os SGBDs
Histórico
I
I
Antigamente: grandes computadores centrais (mainframes )
para processar todas as funções do SBD (programas de
aplicação e interface com usuários + funcionalidades do
SGBD). Os usuários acessavam o sistema via terminais que
não tinham poder de processamento.
Com o passar do tempo os SGBDs começam a explorar o
poder de processamento disponível do lado do usuário (PCs
e as estações de trabalho), gerando as arquiteturas SGBD
cliente-servidor.
Arquiteturas Cliente/Servidor para os SGBDs
Arquiteturas Cliente/Servidor de Duas Camadas
I
I
Lado do cliente: interface com os usuários e os programas
de aplicação.
Lado do servidor: SGBD.
Usuário
Dois tipos principais de arquiteturas de SGBD foram criados
utilizando-se os fundamentos da estrutura cliente/servidor:
I Arquiteturas Cliente/Servidor de Duas Camadas.
I Arquiteturas Cliente/Servidor de Três Camadas.
Programa
de
Aplicação
Driver do
SGBD
C
O
M
Computador Cliente
C
O
M
SGBD
S
O
Banco
de
Dados
Computador Servidor
COM = Software de Comunicação de Rede
SO = Sistema Operacional
I
I
I
O ODBC (Open Database Connectivity ) oferece uma API
(Interface para o Programa de Aplicação) pela qual os
programas de aplicação podem acessar o SGBD.
A maioria dos fornecedores de SGBD fornecem os drivers
ODBC para seus sistemas.
Um driver processa as solicitações ODBC e envia
instruções SQL para o SGBD.
Arquiteturas Cliente/Servidor de Três Camadas
I Possui uma camada intermediária entre o cliente e o servidor de
banco de dados.
I Servidor de Aplicações: armazena as regras de negócio (restrições
ou procedimentos para vericação e validação dos dados).
I Servidor de Aplicações: também pode incrementar a segurança
do BD checando as credenciais do cliente antes de enviar uma
solicitação ao servidor de BD.
FIM
Perguntas?
Download