Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas...

Post on 09-Aug-2020

0 views 0 download

Transcript of Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas...

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.