View
4
Download
0
Category
Preview:
Citation preview
Banco de DadosConceitos e Arquiteturas em BD
Professor: Charles Leite
Modelos de Dados
Todas as áreas da Computação fazem uso de modelos
Em BD, podemos usar MODELOS DE DADOS para representação
Um MODELO é uma abstração de algo que se deseja representar
Ignora detalhes irrelevantes, concentrando apenas no que é importante para dada situação
Por exemplo, para os usuário de um BD, uma abstração seria ocultar os detalhes do armazenamento dos dados
Como representar uma realidade em um Banco de Dados? Como definir o MINIMUNDO de uma aplicação de BD?
Modelos de Dados
• Em um BD, um MODELO DE DADOS é usado paradescrever a sua estrutura, através de um conjunto deconceitos• Por exemplo, a estrutura de um BD pode definir os tipos de
dados, relacionamentos e restrições que dão suporte ao BD
• Um MODELO DE DADOS possui, também, uma série deoperações básicas para recuperação e atualização no BD
Modelos de Dados
Os modelos de dados são classificados de acordo com o seu propósito que, assim, definem seus conceitos para descrever o BD
Nesse sentido, temos três categorias de modelos de dados
• Modelos de Dados Conceituais (ou de alto nível)
• Modelos de Dados Representacionais (ou lógico, ou de implementação)
• Modelos de Dados Físicos (ou de baixo nível)
Modelos de Dados Conceituais• Possuem conceitos que descrevem os dados da forma mais próxima da
compreensão dos usuários• Por isso, são considerados modelos de alto nível
• Utilizam conceitos, como:• ENTIDADE→ Representa um objeto ou um conceito do mundo real, como:
• Um FUNCIONÀRIO ou um PROJETO
• ATRIBUTO → Corresponde a alguma propriedade que descreve uma entidade ourelacionamento, como:• O Nome ou o Salário de um FUNCIONÁRIO
• RELACIONAMENTO entre duas ou mais entidades → Mostra uma associação entre asmesmas, como:• A relação de trabalho (trabalha-em) de um FUNCIONÁRIO com um PROJETO
• Exemplos:• Entidade-Relacionamento (ER)
Modelos de Dados Lógicos• Possuem conceitos que descrevem os dados de forma
compreensível pelos usuários, mas não muito distante daforma como estarão organizados e armazenados numcomputador.
• Podem ser implementados diretamente num computador• Porém, ocultam detalhes de armazenamento dos dados
• São utilizados pelos SGBDs, dentre eles:• Modelo Relacional, Modelos Legados (Rede e Hierárquico),
Modelo Orientado a Objetos, Modelo Objeto-Relacional,Modelo baseado em XML
Modelos de Dados Físicos
• Possuem conceitos que descrevem os detalhes dearmazenamento dos dados, em arquivos, em umcomputador.• São significativos para os especialistas e não para os usuários
finais
• Entre os detalhes de armazenamento, estão:• Formato de registros, ordem do registros e caminhos de acesso
• Caminhos de acesso são estruturas que tornam eficiente a busca porregistros de um BD, como, por exemplo, os índices
Esquemas de um BD
ESQUEMAS de um BD
Mas como descrever a estrutura de um BD, através de seus diversos MODELOS DE
DADOS?
Esquemas de um BD• Descrições do BD, sendo definidas durante as diversas etapas do
PROJETO de um BD
• Não é alterado com frequência, em contraste com os dados• Exceto quando os requisitos da aplicação são alterados → Evolução do
Esquema
• Os modelos fazem uso de DIAGRAMAS para descrever seusesquemas• Cada objeto no esquema é chamado de CONSTRUTOR
• Por exemplo, ALUNO ou CURSO
• As descrições dos construtores do esquema e suas restrições sãochamadas de METADADOS e armazenadas no CATÁLOGO do SGBD
Considerando um modelo de dados qualquer, qual o esquema para esse BD?
Estado e Instâncias de um BD
• Os dados em um BD são alterados com frequência.
• Assim, o ESTADO de um BD ou INSTÂNTANEO (SNAPSHOT) refere-se aos dados presentes nesse BD, em determinado instante
• As INSTÂNCIAS estão associadas aos registros que os construtorespossuem em um determinado ESTADO do BD
• O SGBD assegura que cada ESTADO do BD seja um estado válido• Um estado que satisfaça a estrutura e as restrições definidas no esquema
INSTÂNCIAS de ALUNO
ESTADO do BD
Arquitetura de Três-Esquemas
• Relembrando, três características importantes do emprego daabordagem de BD:
1. Isolamento entre programas e dados → Independência de dados eoperação dos programas
2. Suporte a múltiplas visões (views) de usuários
3. Natureza auto-descritiva do sistema de BD → Uso de catálogo paraarmazenar a descrição do BD (esquema)
4. Compartilhamento de dados e processamento de transaçõesmultiusuários
Arquitetura de Três-Esquemas
ARQUITETURA DE TRÊS-ESQUEMAS
Para implementar essas características, foi definida uma arquitetura para os sistemas
de BD
Arquitetura de Três-Esquemas
• O objetivo dessa arquitetura é separar o usuário daaplicação do BD físico
• Nessa arquitetura, os esquemas são definidos em trêsníveis distintos:➢ Nível INTERNO
➢ Nível CONCEITUAL (LÒGICO)
➢ Nível EXTERNO ou de VISÕES (VIEWS)
Arquitetura de Três-Esquemas
• Possui um esquema interno quedescreve as estruturas dearmazenamento físico do BD
• Esse esquema usa um modelo físico,que descreve os detalhes doarmazenamento de dados e oscaminhos de acesso ao BD
Nível Interno
Arquitetura de Três-Esquemas
• Possui um esquema conceitual que descrevea estrutura do BD para os usuários
• O esquema conceitual se concentra nadescrição de entidades, tipos de dados,conexões, operações e restrições
• Geralmente, um modelo de dados lógico éusado para descrever o esquema conceitualquando o sistema de BD for implementado
Nível Conceitual
Arquitetura de Três-Esquemas
• Abrange os esquemas externos ou visõesdos usuários
• Cada esquema externo descreve a partedo BD que um dado grupo de usuários teminteresse, ocultando o restante do BD
• Cada esquema externo é implementadoatravés de um modelo de dados lógico
Nível Externo ou de Visão
Arquitetura de Três-Esquemas
Sep
araç
ão e
ntr
e o
usu
ário
e a
plic
ação
d
o b
anco
de
dad
os
físi
co
Arquitetura de Três-Esquemas
• O conceito de independência de dados pode ser definido como acapacidade de mudar o esquema de um nível do sistema de BDsem que alterações em outro nível sejam necessárias
• Assim, são definidos dois tipos de independência:• Independência lógica de dados → Capacidade de mudar o esquema
conceitual sem alterar o esquema externo ou os programas
• Independência física de dados → Capacidade de mudar o esquemainterno (físico) sem alterar o esquema conceitual e, consequentemente, oesquema externo
Linguagens para BD
• LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL – DataDefinition Language)• Usada para especificar o esquema conceitual
• LINGUAGEM DE DEFINIÇÃO DE ARMAZENAMENTO (SDL –Storage Definition Language)• Usada para especificar o esquema interno
Linguagens para BD
• LINGUAGEM DE DEFINIÇÃO DE VISÕES (VDL – ViewDefinition Language)• Utilizada para especificar as visões dos usuários e os seus
mapeamentos para o esquema conceitual
• LINGUAGEM DE MANIPULAÇÃO DE DADOS (DML – DataManipulation Language)• Usada pelos usuários para manipular o banco de dados,
realizando operações de recuperação, inserção, remoção emodificação
Linguagens para BD• Nos SGBDs atuais, uma única linguagem integrada e
abrangente é usada, com construções para as definiçõesdo esquema conceitual, das visões e da manipulação dedados.
• A definição do armazenamento é mantida separada
• Um exemplo desse tipo de linguagem é a linguagem relacionalde banco de dados SQL (Structured Query Language)• Combinação da DDL, VDL e DML, como também comandos para
especificação de restrições, evolução de esquema e outros recursos
Interfaces com o BD (SGBD)
• A manipulação das linguagens de BD, para usuáriosiniciantes ou casuais, requer um certo conhecimentotécnico
• Sendo assim, para esses grupos de usuários, existeminterfaces amigáveis para interação com o banco de dados
Interfaces com o BD (SGBD)
Interfaces baseadas em Menus para Clientes Web ou para Navegação
• Interfaces apresentadas ao usuário através de menus,escondendo a complexidade dos comandos dalinguagem de consulta
Interfaces baseada em Formulários
• Exibem formulários, onde os usuários podempreencher seus campos com dados de entrada ao BD
Interfaces com o BD (SGBD)
Interfaces Gráficas para os Usuários (GUI)
• Exibe um esquema para o usuário num formulário (e,muitas vezes, menus também) diagramático, ondeconsultas podem ser especificadas pela manipulaçãodos diagramas
Interfaces de Linguagem Natural
• Aceitam solicitações escritas em inglês ou em outralinguagem natural, sendo necessário um esquema e umdicionário com palavras importantes paraentendimento
Interfaces com o BD (SGBD)
Entrada e Saída de Voz
• O uso limitado da voz como entrada para uma consulta e como resposta para uma pergunta ou resultado de uma solicitação
Interfaces para Usuários Parametrizáveis
• Para essa classe de usuários (por exemplo, os caixas de um banco), um pequeno conjunto de operações, que são realizadas repetidamente, são projetadas e implementadas por analistas de sistemas e programadores, através de uma interface especial
Interfaces para o DBA (Administrador de Banco de Dados)
• Interfaces para comandos privilegiados (por exemplo, criação de contas, sistema de ajuste de parâmetros, mudança de esquemas e reorganização de estruturas de armazenamento), usados pelos DBAs
O Ambiente de um Sistema de BD
SGBD (componentes)
Softwares de Sistema que interagem
Instruções DDL
Comandos privilegiados
Consulta interativa Programas de
aplicação
Compilador DDL
Compilador de consulta Pré-compilador
Compilador de linguagem hospedeira
Otimizador de consulta Compilador
DMLTransações compiladas
Usuários: DBAs Usuários casuais Programadores de aplicação
Usuários paramétricos
Processador de BD em tempo de
execução
Gerenciador de dados
armazenadosSubsistemas de controle de
concorrência / backup / recuperação
Banco de dados armazenado
Comandos, consultas e transações do DBA
Catálogo do sistema /
dicionário de dados
Entrada / saída do banco de dadosExecução de consulta e transação:
Ambiente de um Sistema de BD (Módulos do SGBD)
• Na Figura anterior, os módulos do SGBD são divididos emduas partes:
• A parte superior refere-se aos diversos usuários, que interagemcom o ambiente de BD, e suas interfaces
• A parte inferior ilustra os detalhes internos do SGBD,responsáveis pelo armazenamento de dados e processamentode transações
Arquiteturas para SGBD
Arquiteturas Centralizadas
Arquiteturas Cliente/Servidor
Arquiteturas Centralizadas• Seguem as arquiteturas antigas, caracterizadas pelo uso de grandes
computadores centrais (mainframes) para processar todas asfunções do sistema.
• Os usuários acessam o sistema via terminais, que não possuempoder de processamento, oferecendo apenas possibilidades deexibição de dados
• Todos os processos são executados remotamente pelo computadorcentral
Arquiteturas Cliente/Servidor
• Cenário atual da computação• Substituição de computadores grandes e centralizados (mainframes) por
vários PCs e estações de trabalho (workstations), conectados via redes decomunicação a diversos servidores
• Com isso, as arquiteturas de SGBDs evoluíram de sistemasmonolíticos (bloco único) para sistemas modulares, com umaarquitetura cliente/servidor
Arquiteturas Cliente/Servidor(Duas Camadas)
• Numa estrutura de SGBD cliente/servidor, as funcionalidades dosistema são distribuídas entre dois tipos de módulos• O módulo cliente → Projetado para ser executado numa estação de
trabalho ou num PC• São processados, nesse módulo, os programas de aplicação e as interfaces de usuário
que acessam o BD
• Consequentemente, esse módulo trata da interação com os usuários, oferecendouma interface amigável, como formulários ou GUIs
• O módulo servidor → Trata de armazenamento de dados, acessos,pesquisas e outras funções
• Por isso, são chamadas de arquiteturas de duas camadas
Arquiteturas Cliente/Servidor(Três Camadas)
• Muitas aplicações para a Web usam uma arquitetura baseada emtrês camadas, que possui uma camada intermediária entre ocliente e o servidor de BD
• Essa camada é chamada servidor de aplicações ou servidor Web,dependendo da aplicação
• Esse servidor desempenha um papel intermediário armazenandoas regras de negócio (procedimentos ou restrições) que são usadaspara acessar os dados do servidor de BD• Pode também incrementar a segurança do BD, checando as credenciais do
cliente antes de enviar uma solicitação ao servidor de BD
Classificação dos SGBD
Vários critérios podem ser usados para classificar os SGBD, entre eles:
•Quanto ao número de usuários
•Quanto ao uso
•Quanto ao número de locais pelos quais o BDestá distribuído
•Quanto ao custo
•Quanto ao modelo de dados
Classificação dos SGBD
• Quanto ao número de usuários• Sistemas de usuário único suportam apenas um usuário por vez, sendo
mais usados em computadores pessoais
• Sistemas multiusuários, que incluem a maioria dos SGBDs, auxiliammúltiplos usuários simultaneamente
• Quanto ao uso• De uso geral ou especial
• SGBD especiais são projetados para atender a necessidades específicas de umaaplicação• Por exemplo, sistemas de reservas aéreas são desenvolvidos na categoria de sistemas de
processamento de transação on-line (OLTP – OnLine Transaction Processing), para darsuporte a um grande número de transações simultâneas sem causar atrasos excessivos
Classificação dos SGBD
• Quanto ao número de locais pelos quais o BD está distribuído• Centralizado, quando o BD e o SGBD são armazenados num único site,
embora possa suportar vários usuários
• Distribuído pode ter o BD e o SGBD distribuídos em vários sites,conectados por uma rede
• Quanto ao custo• Critério de difícil classificação
• SGBD de código aberto (MySQL e PostgreSQL), com suporte defornecedores por serviços adicionais• Disponíveis em versões gratuitas para testes
• Versões pessoais, com mais funcionalidades, que podem custar menos de US$ 100
Classificação dos SGBD
• Quanto ao modelo de dados• Considerado o principal critério para classificação, os SGBD
pode ser baseados nos seguintes modelos:• Relacional
• De Objetos
• Objeto Relacional
• Legados• De Rede
• Hierárquico
• XML
Classificação dos SGBD• Quanto ao modelo de dados
• Modelo Relacional• Principal modelo de dados utilizado na maioria dos SGBDs comerciais
• Representa um BD como uma coleção de tabelas, onde cada uma é armazenada num arquivo separado
• Usa uma linguagem de consulta de alto nível, SQL
• Suporte à definição de visões (views) de usuários
• Objeto• Define um BD em termos de objetos, suas propriedades (atributos) e
comportamentos (operações)
• Objetos com mesma estrutura e comportamento são agrupados em classes, organizadas em hierarquias
• As operações de cada classe são especificadas em termos de métodos
Classificação dos SGBD• Quanto ao modelo de dados
• Objeto Relacional• São BD Relacionais com seus modelos estendidos para incorporar os conceitos de BD
de Objetos
• Legados• De Rede → Representa os dados como tipos de registros interligados, formando uma
rede
• Hierárquico → Representa os dados como estruturas de árvores hierárquicas
• XML (eXtensible Markup Language)• Considerado o padrão para troca de dados na Internet, também usa estruturas de
árvores hierárquicas
• Combina conceitos de BD com os de modelos de representação de documentos
DÚVIDAS ...
CERTEZA QUE NÃO TEM MAIS DÚVIDAS ?
Referências
• ELMASRI, Ramez; NAVATHE, Shamkant. Sistemasde banco de dados. Capítulo 2, páginas 19-36. 6ªedição. São Paulo: Pearson Addison Wesley, 2011.
Recommended