banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. isolamento entre programas...

46
Banco de Dados Conceitos e Arquiteturas em BD Professor: Charles Leite

Upload: others

Post on 09-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

Banco de DadosConceitos e Arquiteturas em BD

Professor: Charles Leite

Page 2: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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?

Page 3: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 4: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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)

Page 5: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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)

Page 6: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 7: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 8: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

Esquemas de um BD

ESQUEMAS de um BD

Mas como descrever a estrutura de um BD, através de seus diversos MODELOS DE

DADOS?

Page 9: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 10: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

Considerando um modelo de dados qualquer, qual o esquema para esse BD?

Page 11: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas
Page 12: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas
Page 13: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 14: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

INSTÂNCIAS de ALUNO

ESTADO do BD

Page 15: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 16: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

Arquitetura de Três-Esquemas

ARQUITETURA DE TRÊS-ESQUEMAS

Para implementar essas características, foi definida uma arquitetura para os sistemas

de BD

Page 17: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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)

Page 18: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 19: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 20: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 21: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 22: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 23: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 24: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 25: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 26: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 27: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 28: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 29: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 30: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

O Ambiente de um Sistema de BD

SGBD (componentes)

Softwares de Sistema que interagem

Page 31: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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:

Page 32: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 33: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

Arquiteturas para SGBD

Arquiteturas Centralizadas

Arquiteturas Cliente/Servidor

Page 34: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 35: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 36: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 37: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 38: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 39: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 40: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 41: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 42: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 43: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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

Page 44: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

DÚVIDAS ...

Page 45: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

CERTEZA QUE NÃO TEM MAIS DÚVIDAS ?

Page 46: Banco de dadosfiles.professor-charles-ete.webnode.com/200000438... · 1. Isolamento entre programas e dados →Independência de dados e operação dos programas 2. Suporte a múltiplas

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.