Buscar

201781_144321_Apostila+Alunos+BD1+P1 (1)

Prévia do material em texto

35.327 - BANCO DE DADOS I (Apostila 1)
Ciência da Computação Prof. Paulo Ricardo Rodegheri
Universidade Regional Integrada do Alto Uruguai e das
Missões - URI - Erechim
Sistemas de Gerência de Bancos de Dados
Histórico
SGBDs Comerciais
Bancos de Dados X Arquivos Convencionais
Arquitetura de um SGBD
Características e Vantagens do Uso
Conceitos Relevantes em BD
Modelos Lógicos de Bancos de Dados
Modelo em Rede, Hierárquico e Relacional
Introdução à abordagem Relacional
Conceitos Relevantes em BDs Relacionais
Evolução dos SGBDs
BIBLIOGRAFIA
 
Date, C.J., Introdução á sistemas de Bancos de Dados. Ed. Campus - 
1994.
Elmasri, R., Sistemas de Bancos de Dados – Fundamentos e Aplicações. 
Ed. LTC - 2005. 
Heuser, C.A. Banco de Dados - SGBD Relacional. Instituto de Informática
- UFRGS. 
Korth, E.F., Silberschatz, A., Sistemas de Bancos de Dados. Makron Books 
- 1995. 
AVALIAÇÃO
1) Prova Teórica
2) Prova Álgebra Relacional + Prova SQL (Prática) 
3) Prova SQL (Prática) 
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri 2
H I S T Ó R I C O
1945 Introdução da fita magnética (primeiro meio de armazenamento
Externo). 
1957 Primeiro computador comercial instalado.
1959 IBM introduz sistema Ramac, que permitiu acesso aleatório aos
dados.
1961 Primeiro SGBD - IDS da GE.
65-70 Vários SGBDs, IBM desenvolve IMS.
1970 Papers de T. Codd sobre modelo relacional.
1971 CODASYL DBTG - Proposta para modelo em redes.
1972 Primeira conferência em BD - SIGMOD (Special Interest Group on
Management of Data) da ACM (Association for Computing
Machinery). 
73-76 Diversos protótipos desenvolvidos por universidades ou centros de
pesquisas:
 System R - IBM
 INGRESS - Univ. Califórnia
 System 2000 - Univ. Austin
 Sócrate - Grenóble
 ADABAS - Tech. Univ. Darmstadt
1975 Primeira conferência VLDB (Very Large Data Base).
1976 Modelo Entidade-Relacionamento introduzido por Peter Chen.
1982 IFIP Cis Conference : 14 modelos semânticos comparados.
1983 Já havia mais de 100 implementações de SGBDs Relacionais.
1985 SQL standard (preliminar).
1986 Protótipos SGBDOOs, Banco de Dados Dedutivos, Banco de
Dados Extensíveis, Banco de Dados Inteligentes, etc.
1990 Primeiros produtos não convencionais.
1993 SQL3 
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri 3
ALGUNS BD COMERCIALMENTE DISPONÍVEIS
 RELACIONAIS
 DB2 IBM
 SQL/DS IBM
 INGRESS Relational Technology Inc.
 ORACLE Oracle Corp.
 Rdb/VMS DEC
 SQL Server Microsoft
 SYBASE Sybase Inc.
 MYSQL
 INTERBASE/FIREBIRD
POSTGRESQL
LISTA INVERTIDA
 MODEL 204 CCA
 ADABAS Software AG
 DATACOM/DB Applied Data Research
HIERÁRQUICO
 IMS IBM
 System 2000 Intel
 
REDE
 IDMS Cullinet
 DMS 1100 Sperry
 TOTAL Cincom Systems 
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri 4
CONCEITOS
• Um Banco de Dados é um conjunto de arquivos relacionados
entre si (Chu, 1983).
• Um Banco de Dados é uma coleção de dados operacionais
armazenados, sendo usados pelos sistemas de aplicação de uma
determinada organização (C.J. Date, 1985).
• Um Banco de Dados é uma coleção de dados relacionados
(Elmasri & Navathe, 1989).
• Um Banco de dados é um conjunto de dados armazenados, cujo
conteúdo informativo representa, a cada instante, o estado
atual de uma determinada aplicação (Laender, 1990).
• Um banco de dados “é uma coleção de dados inter-
relacionados, representando informações sobre um domínio
específico”, ou seja, sempre que for possível agrupar
informações que se relacionam e tratam de um mesmo assunto,
posso dizer que tenho um banco de dados. (KORTH,1994).
• Um depósito de um conjunto de arquivos de dados
computadorizados que oferece diversos recursos ao usuário,
possibilitando-lhe a realização de várias operações, incluindo
entre outras:
 Adição de novos arquivos (vazios) ao B.D.
 Inserção de novos dados nos arquivos existentes
 Recuperação de dados dos arquivos existentes
 Atualização e Eliminação dos dados nos arquivos
existentes
 Renovação permanente de arquivos existentes (vazios
ou não) do B.D.
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri 5
BANCO DE DADOS (BD)
Um Banco de dados é um modelo (representação) de uma determinada
realidade (aplicação).
O BD contém informações que circulam pela aplicação além de abstrações
de elementos da própria aplicação.
Ex. : Um BD para uma aplicação de vendas armazena informação sobre
pedidos pendentes como também dados dos vendedores.
Além de informações e abstrações dos elementos da realidade, o BD deve
também respeitar, a cada instante, as leis (regras, regulamentos, normas)
da aplicação.
Ex.: Um BD para uma aplicação de pessoal deve respeitar a CLT e não
permitir que um salário (nele armazenado) seja diminuído.
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri 6
Arquivos Convencionais X Banco de Dados
Ambiente Utilizando Arquivos:
Ambiente Utilizando Banco de Dados:
Arq. A
Aplic. 1
Arq. B Arq. B Arq. C Arq. D Arq. A Arq. G
Aplic. 2 Aplic. N....
SGBD
Aplic. 1 Aplic. 2 Aplic. N....
Esquema
Aplic. 3
Arquivos A e B são redundantes
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri 7
ARQUIVOS CONVENCIONAIS
Processamento de Dados SEM BD:
Registros permanentes são armazenados em Arquivos Convencionais e
aplicações acessam os arquivos.
Desvantagens desta forma de processamento:
 REDUNDÂNCIA NÃO CONTROLADA DE DADOS
Redundância não controlada ocorre quando o mesmo objeto da realidade é
múltiplas vezes representado na base de dados e não há gerência
automática da redundância.
Redundância leva a inconsistência dos dados (dados não representam
corretamente a realidade). 
 DIFICULDADE DE ACESSO
Dados são acessíveis apenas via programas.
Necessidades de informações eventuais (tomada de decisões) são
dificilmente atendidas.
 ESTRUTURA DE DADOS PROJETADA PARA ATENDER APLICAÇÕES
ESPECÍFICAS
Difícil acesso aos dados. Difícil integração entre aplicações que usem
dados projetados para outras aplicações.
 ACESSO CONCORRENTE DIFICULTADO
Mecanismos de acesso concorrente tem que ser implementados na
aplicação => Risco de Inconsistências.
 MECANISMOS DE RECUPERAÇÃO DE ERROS MANUAIS
A recuperação dos arquivos em caso de erros (software, interrupção de
processamento, falha no meio de armazenamento) tem que ser
implementada na aplicação.
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri 8
VERIFICAÇÃO DE RESTRIÇÕES DE INTEGRIDADE É DIFÍCIL
Restrições de Integridade são regras que devem ser obedecidas pela base
de dados para serem consideradas corretas (ex.: o curso em que o aluno
está inscrito deve estar na base de dados e ser ativo).
Restrições de Integridade devem ser verificadas por cada aplicação que
altera a base de dados.
Dados devem estar acessíveis para verificar Restrições de Integridade.
Abstração de dados:
Abstração é a habilidade de se concentrar nos aspectos essenciais de um
contexto qualquer, ignorando características menos importantes, ou seja, são
propriedades comuns de um conjunto de objetos, omitindo os detalhes. 
O sistema de banco de dados tem seu lado abstrato para o usuário, ou seja, para
o usuário que vai usar o banco de dados não importa qual unidade de
armazenamento, não importa seu tamanho, ou banco de dados onde vai ser
inserido seus dados, o importanteé que na hora que for preciso procurar ou
realizar uma consulta todos os dados estejam disponíveis. 
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri 9
ARQUITETURA PARA UM SBD
ESQUEMA CONCEITUAL
ESQUEMA INTERNO
......
Banco de Dados 
Armazenado
VISÃO 
EXTERNA
VISÃO 
EXTERNA
NÍVEL
EXTERNO
NÍVEL
CONCEITUAL
NÍVEL
INTERNO
USUÁRIOS FINAIS
Mapeamento Externo/Conceitual
Mapeamento Conceitual/Interno
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri
10
OS 3 NÍVEIS DA ARQUITETURA
A arquitetura divide-se em 3 níveis gerais:
 Nível Interno (FÍSICO): Descreve a estrutura de armazenamento físico
do BD. Descreve os detalhes completos sobre o armazenamento dos
dados e os caminhos de acesso ao BD (complexas estruturas de dados
de baixo nível).
 
 Nível Conceitual: Descreve quais dados estão armazenados de fato no
BD e as relações que existem entre eles. Neste nível o BD inteiro é
descrito em termos de um pequeno número de estruturas relativamente
simples (diagrama). 
 Nível Externo (Visões): É o mais próximo aos usuários. Relaciona-se
á forma como os dados são vistos pelos usuários individualmente.
Muitos usuários do sistema de BD não estão interessados em todas as
informações. Em vez disso, precisam de apenas uma "parte" do BD.
Os processos de transformação de solicitações e resultados são chamados
de mapeamentos (mappings).
SISTEMA DE GERÊNCIA DE BANCO DE DADOS (SGBD)
É o conjunto de programas (software) que permite a criação e manutenção
do BD.
O SGBD permite a definição, construção e manipulação do Banco de
Dados para diversas aplicações. 
DEFINIÇÃO DO BD: 
Especificação e descrição detalhada dos tipos de dados a serem
armazenados no Banco de Dados.
CONSTRUÇÃO DO BD:
Processo de carga inicial dos dados em um meio de armazenamento
controlado pelo SGBD.
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri
11
MANIPULAÇÃO DO BD:
Execução de operações de consulta e recuperação de dados específicos,
além de atualização de dados para refletir, no BD, as mudanças no mini-
mundo que está sendo modelado. A manipulação inclui, também, a
geração de relatórios a partir dos dados do BD.
CARACTERÍSTICAS DE UM SBD
 OFERECE UM AMBIENTE AUTO CONTIDO:
A base de dados contém além dos dados, uma descrição de que
informações podem ser armazenadas na base de dados, incluindo as
restrições de integridade.
O modelo de dados ou esquema da base de dados contém dados sobre os
dados (meta dados).
O esquema da base de dados é armazenado em uma parte do BD e é
chamado catálogo ou dicionário de dados.
Dicionário de Dados é ativo quando contém informações sobre os
programas que usam a base de dados.
 OFERECE ISOLAMENTO DAS APLICAÇÕES EM RELAÇÃO AOS
DADOS (INDEPENDÊNCIA DE DADOS)
As aplicações não contêm descrições de dados. Com isso a base de dados
pode ser alterada sem que as aplicações sejam afetadas.
 OFERECE ABSTRAÇÃO DE DADOS
Aplicações "vêem" dados de forma abstrata, independente de detalhes
físicos de implementação (fatores de bloco, localização no meio de
armazenamento, existência de índices e caminhos de acesso). Isto aumenta
a Independência de dados.
 OFERECE CONTROLE DE SEGURANÇA
Recuperação em caso de falhas.
 OFERECE CONTROLE DE ACESSO CONCORRENTE
 SUPORTA MÚLTIPLAS VISÕES DE DADOS
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri
12
Uma visão é uma parte da base de dados usada por um usuário ou classe
de usuários.
SGBD oferece dados virtuais e formatos particulares a diferentes visões.
LINGUAGENS ENVOLVIDAS EM UM SGBD
DDL - Data Definition Language
DML - Data Manipulation Language
(SGBDs modernos tendem a integrar a DDL e a DML em uma
linguagem só).
DCL - Data Control Language (Linguagem de Controle de Dados)
Controla os aspectos de autorização de dados e a utilização de licenças
por usuários. Os principais comandos são GRANT e REVOKE
DTL - Data Transaction Language (Linguagem de Transação de
Dados) Utilizado pelos desenvolvedores em transações. Os principais
comandos são COMMIT e ROLLBACK
Outras Linguagens:
Linguagens de 4ª Geração (4GL): Linguagens não procedurais para
escrever aplicações.
Geradores de telas/relatórios: Ambientes para construir transações e
emitir relatórios (normalmente integrado a 4GL).
Linguagens para usuário final: Linguagens simples para consulta.
(EIS : Executive Information System).
 Utilitários para a administração da base de dados: Programas de
"Backup" e reconstrução da base de dados. Programas para sintonia
da performance.
PROGRAMAS DE APLICAÇÃO
Realizam as funções da aplicação:
Ex.: cálculo das deduções e impostos, a partir da receita, dos custos
computados e da legislação em vigor.
Garantem as restrições de integridade (RI) que não podem ser
controladas pelo SGBD.
Implementam interfaces e relatórios específicos.
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri
13
Acessam o BD através do SGBD para consulta e atualização dos dados 
da aplicação.
INSTÂNCIAS e ESQUEMA
Os BDs mudam através do tempo á medida que as informações são
inseridas ou apagadas. A coleção de informações armazenadas no BD em um
determinado momento é chamada de INSTÂNCIA do BD.
O projeto geral do BD é chamado de Esquema de Banco de Dados.
Os esquemas não mudam com frequência.
POR QUE UTILIZAR BANCO DE DADOS?
As vantagens do uso de BD são mais significativas em ambientes
multiusuários. Há neste caso, outra vantagem dominante: O SISTEMA DE
BANCO DE DADOS PROPORCIONA Á EMPRESA O CONTROLE
CENTRALIZADO DE SEUS DADOS OPERACIONAIS.
O controle centralizado dos dados implica que numa empresa com um
sistema de B.D. exista uma pessoa identificável detendo a responsabilidade
central sobre os dados operacionais, é o Administrador de Banco de Dados
(DBA), que requer:
A) Alto grau de capacitação técnica;
B) Capacidade de entender e interpretar as necessidades da empresa em
nível de gerência executiva;
C) Posição dentro da empresa de alto nível gerencial.
Vantagens que resultam do controle centralizado:
 PODE REDUZIR REDUNDÂNCIA: Nos sistemas sem banco de dados,
cada aplicação possui seus próprios arquivos (propriedade dos dados). Este
fato costuma provocar uma redundância considerável nos dados armazenados
resultando em desperdício de espaço de armazenamento. Se por fortes razões
técnicas ou comerciais for necessária a redundância, esta deverá ser
cuidadosamente controlada - isto é, o SGBD deve ter conhecimento da
mesma, e assumir a responsabilidade de ‘propagar as atualizações’.
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri
14
 A INCONSISTÊNCIA PODE SER EVITADA: Consequência natural da
Redundância.
Diz-se que um banco de dados é inconsistente quando apresenta redundância
de dados e apenas uma parte destes dados é atualizado e a outra não. Com isto,
para um mesmo “fato” teremos duas informações diferentes armazenados em
locais distintos. É óbvio que um B.D. considerado inconsistente é capaz de
fornecer informações incorretas ao usuário.
Alternativamente, se a redundância não for removida, mas controlada
(tornando-se conhecida do SGBD), então ele nunca estará inconsistente,
assegurando que qualquer alteração feita em uma entrada seja automaticamente
aplicada na outra. Conhece-se este processo como PROPAGAÇÃO DE
ATUALIZAÇÃO. 
Deve-se observar, entretanto, que a maioria dos B.Ds comercialmente
disponíveis hoje, não são capazes de propagar automaticamente as
atualizações.
PODE COMPARTILHAR OS DADOS: Os dados podem ser
compartilhados tanto pelas aplicações existentes como por aquelas novas que
venham a ser criadas futuramente. Em outras palavras, as necessidades de
dados das novas aplicações podem ser satisfeitas sem a criaçãode quaisquer
dados adicionais armazenados.
 PODE REFORÇAR PADRÕES: O DBA, pelo controle central do B.D.,
pode assegurar que todos os padrões aplicáveis serão observados na
representação dos dados.
 PODE APLICAR RESTRIÇÕES DE SEGURANÇA: O DBA, detendo
toda a autoridade sobre os dados operacionais pode assegurar:
a) Que, os únicos meios de acesso ao B.D. sejam realizados através de
certos canais;
b) que os controles de segurança a adotar em caso de acesso a dados
especiais sejam por ele definidos. 
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri
15
 PODE MANTER INTEGRIDADE: Por integridade entende-se que os
dados do B.D. sejam corretos. A inconsistência entre duas entradas que
pretendam representar o mesmo “fato” é um exemplo de falta de integridade.
Este problema só poderá ocorrer se houver redundância nos dados
armazenados. Entretanto, mesmo sem redundância, o B.D. ainda poderá
conter uma informação incorreta. O controle centralizado do Banco de Dados
poderá evitar tais problemas.
 PODE EQUILIBRAR AS NECESSIDADES CONFLITANTES: O DBA,
tendo conhecimento das necessidades globais da empresa - em oposição ás
necessidades de um usuário individual - pode estruturar o sistema, a fim de
proporcionar um serviço geral que seja o “melhor para a empresa”.
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri
16
INDEPENDÊNCIA DE DADOS
Baseado nos três níveis de abstração, independência de dados é a
habilidade de modificar a definição de um esquema em um nível sem afetar a
definição de esquema num nível mais alto. Existem dois níveis de
independência de dados:
 Independência Física de Dados: é a habilidade de modificar o esquema
físico sem a necessidade de reescrever os programas aplicativos(ex.: Criação
de um novo índice). As modificações no nível físico são ocasionalmente
necessárias para melhorar o desempenho. É oferecida pelos produtos
modernos.
Independência Lógica de Dados: é a habilidade de modificar o esquema
conceitual ou lógico sem a necessidade de reescrever os programas
aplicativos. As modificações no nível conceitual são necessárias quando a
estrutura lógica do BD é alterada. É oferecida até um certo ponto pelos
produtos no mercado - em alguns casos re-compilação é requerida.
Em aplicações sem o uso de banco de dados, as aplicações dependem
dos dados, isto é, a maneira como os dados são organizados na memória
secundária e a forma de acesso a esses dados, são ditadas pelas necessidades da
aplicação. Além disso, o conhecimento da organização dos dados e a técnica
de acesso são embutidos na lógica e no código da aplicação. 
• Por exemplo, decide-se que por motivos de desempenho, um determinado
arquivo seja armazenado de forma indexada por um campo específico.
EX: O arquivo de FUNCIONÁRIO será armazenado de forma indexada
pelo campo CÓDIGO. A aplicação em questão estará informada que o
índice existe e também da sequência do arquivo como definida pelo
índice, e a estrutura interna da aplicação será montada em torno deste
conhecimento.
Dizemos que uma aplicação como esta DEPENDE DOS DADOS, porque
é impossível modificar a estrutura de armazenamento (como os dados são
fisicamente armazenados) ou a estratégia de acesso (como são acessados estes
dados) sem que a aplicação seja afetada significativamente.
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri
17
Por exemplo, não é possível substituir o arquivo indexado definido acima por
outra forma de organização qualquer, sem que houvesse necessidade de grandes
modificações na aplicação. As partes da aplicação que exigem alterações nesse
caso são precisamente aquelas que se comunicam com o software de gerência de
arquivo; as dificuldades envolvidas são praticamente irrelevantes para o
problema que a aplicação se destinava a resolver quando escrita - isto é, são
dificuldades introduzidas pela natureza da interface de gerência de arquivo.
Em um sistema de Banco de Dados, seria indesejável permitir que as
aplicações dependam dos dados, por duas razões principais:
Aplicações diferentes necessitarão de visões diferentes do mesmo dado.
O DBA deve ter autonomia para poder modificar a estrutura de
armazenamento ou a estratégia de acesso (ou ambos), atendendo ás
exigências de modificação, sem que haja a necessidade de mudar as
aplicações existentes.
Se as aplicações forem dependentes dos dados, as mudanças estruturais
(armazenamento e acesso) exigirão modificações correspondentes nos
programas, necessitando do trabalha de programadores, que poderiam dedicar-se
á criação de novos aplicativos.
Portanto, a provisão de independência é o maior objetivo dos sistemas de
Banco de Dados. A independência dos dados pode ser definida como a
imunidade das aplicações á estrutura de armazenamento e á estratégia de
acesso - isto é, as aplicações não dependem de qualquer estrutura de
armazenamento ou estratégia de acesso. 
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri
18
SISTEMA DE BANCO DE DADOS (SBD)
USUÁRIOS/PROGRAMADORES
DEFINIÇÃO DO BD
(METADADOS)
BANCO DE DADOS
ARMAZENADO
PROGRAMAS DE APLICAÇÕES / CONSULTAS
SOFTWARE DE ATENDIMENTO A
CONSULTAS E PROGRAMAS
SOFTWARE DE ACESSO A DADOS
ARMAZENADOS
SISTEMA DE BANCO 
DE DADOS
SGBD
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri
19
SISTEMAS DE BANCO DE DADOS (SBD)
 SBD X Sistema Tradicional de Arquivos
1) Diminui e controla a redundância dos dados, mantendo consistência
entre cópias.
2) Padroniza a definição e o acesso aos dados, através, respectivamente, da
DDL (Data Definition Language) e da DML (Data Manipulation
Language).
3) Assegura independência física dos dados: alterações em estruturas de
armazenamento (esquema físico) NÃO afetam programas de aplicação.
4) Garante independência lógica dos dados: modificações na definição dos
dados (esquema lógico), na maioria das vezes, não afetam os programas
de aplicação.
5) Mantém a consistência dos dados, mesmo em caso de falhas de hardware
ou software (SO, SGBD, Programas de aplicação).
6) Garantem a consistência dos dados em ambiente multi-usuário, onde
mais de um programa pode acessar, simultaneamente, os mesmos dados
(programas concorrentes).
7) Auxilia na manutenção das restrições de integridade da aplicação,
evitando que testes de consistência sejam repetidos em programas de
aplicação.
8) O SBD dá ao usuário uma visão abstrata dos dados, escondendo detalhes
da organização dos mesmos no meio de armazenamento.
9) O SGBD implementa três níveis de abstração:
Nível (esquema) Físico
Nível (esquema) conceitual / lógico
Nível (esquema) de visões
BANCO DE DADOS I - URI Erechim - Prof. Paulo Ricardo Rodegheri
20
SISTEMAS DE BANCO DE DADOS (SBD) 
O que se pode almejar com o uso de SBD?
1) Redundância controlada de dados.
2) Compartilhamento de dados por aplicações diversas.
3) Controle de autorização de acesso a dados.
4) Acesso a dados através de diferentes interfaces.
5) Modelagem de relacionamentos complexos entre dados.
6) Garantia de restrições de integridade da aplicação.
7) Garantia de consistência física dos dados.
8) Potencial para imposição de padrões (modelagem e programação).
9) Flexibilidade nas definições e manutenções dos dados.
10) Redução no tempo de desenvolvimento de aplicações.
D A D O S :
E um um banco de dados, os dados são PERSISTENTES, INTEGRADOS
e COMPARTILHADOS.
 
 PERSISTENTES: entende-se que esses dados ficam armazenados no
banco de dados e só podem ser removidos por uma requisição explícita ao
mesmo.
 INTEGRADOS : O B.D. pode ser imaginado como a unificação de
diversos arquivos de dados que, de outra forma, seriam distintos,
eliminando-se total ou parcialmente qualquer redundância entre os
mesmos.
 COMPARTILHADOS:Significa que as parcelas isoladas de dados
podem ser compartilhadas por diversos usuários num B.D., no sentido que
todos os usuário podem ter acesso á mesma parcela de dados e podem
usá-los com finalidades diferentes, podendo inclusive ter acesso aos
mesmos dados no “mesmo momento” (acesso concorrente). 
 21
0) Usuário submete a Consulta
1) Programa que implementa a transação ou o processador de consultas pede ao 
SGBD um Registro Lógico
2) SGBD pede ao SO a leitura dos esquemas
3) SO acessa os esquemas
4) Meta-dados são transferidos para a área do SGBD
5) SGBD consulta os meta-dados para saber como traduzir os comandos do usuário
6) SGBD emite comandos para que o SO leia os registros físicos necessários
7) SO acessa a base de dados
8) Registros físicos são transferidos para a área de E/S do SGBD
9) SGBD seleciona os dados necessários para formar os registros lógicos. Se 
necessário faz transformações, conversões e coloca na área do usuário
10) SGBD envia ao programa de aplic. um código sinalizando final de operação
11) Programa de aplicação exibe o resultado ao usuário (ou gera relatório).
SGBD
 ÁREAS DE E/S
0
11
1
S.O.
2 6
7
3
8
5
9
10
ESQUEMA DADOS
PROCESSAMENTO DE UMA CONSULTA
Fluxo de Dados
Fluxo de Controle
PROGRAMA DE
APLICAÇÃO
ÁREA LOCAL DO
PROGRAMA
4
 22
ESTRUTURA GERAL DO SISTEMA
Um sistema de BD é dividido em módulos que tratam de cada uma das
responsabilidades do sistema geral. Na maioria dos casos, o sistema operacional do
computador fornece apenas os serviços mais básicos, e o sistema de BD precisa ser
construído sobre essa base. Portanto, o projeto do sistema de BD precisa incluir
considerações sobre a interface entre o sistema de BD e o sistema operacional.
Os componentes funcionais de um sistema de BD incluem:
GERENCIADOR DE ARQUIVOS: Gerencia a alocação do espaço na
armazenagem do disco e as estruturas de dados usadas para representar a
informação armazenada no disco.
GERENCIADOR DE BANCO DE DADOS: Fornece a interface entre os
dados de baixo nível armazenados no disco e os programas aplicativos e
de consultas submetidos ao sistema.
PROCESSADOR DE CONSULTAS: Traduz comandos numa linguagem
de consulta para instruções de baixo nível que o gerenciador de BD pode
interpretar. Além disso, o processador de consultas tenta transformar uma
requisição do usuário em uma forma compatível e mais eficiente com
respeito ao BD, encontrando uma boa estratégia para executar consultas.
PRÉ-COMPILADOR DA DML: Converte comandos da DML embutidos
em um aplicativo para chamadas de procedimento normal na linguagem
hospedeira. O pré-compilador precisa interagir com o processador de
consultas para gerar o código apropriado.
Além disso, também são necessários os seguintes componentes:
Arquivos de Dados: Armazena o Banco de Dados propriamente dito.
Dicionário de Dados: Armazena os metadados sobre a estrutura do BD. O
dicionário de dados é usado com freqüência. Desta forma, deve-se dar
grande ênfase no desenvolvimento de um bom projeto e implementação
eficiente do dicionário.
Índices: Fornecem acesso rápido aos itens de dados guardando
determinados valores.
 23
E X E R C Í C I O S (1)
1) Compare: SBD X Sistema de arquivos convencionais.
2) Comente sobre os três níveis da arquitetura de um SGBD.
3) Defina:
 Redundância, Inconsistência, Integridade, Instância, DDL, DML, DCL,
DTL, 4GL, ADS, Independência de dados (lógica e física - dê exemplos de
cada).
4) O que significa dizer que os dados em um B.D. multiusuário são persistentes,
integrados e compartilhados? 
5 Comente a diferença entre BD, SBD e SGBD.
6) O que é e por que é importante o SGBD num SBD?
7) O que é e por que é importante o Esquema num BD?
8) Qual a diferença entre redundância de dados controlada e a não controlada?
9) Comente sobre Controle de Concorrência, Serialização e Mecanismos de
Bloqueio.
10) Comente sobre recuperação de falhas em Bancos de Dados.
 24
 RESTRIÇÕES DE INTEGRIDADE
As restrições de integridade fornecem meios para assegurar que mudanças
feitas no BD por usuários autorizados não resultem na perda da consistência dos
dados. Assim, as restrições de integridade resguardam o BD contra danos
acidentais.
Geralmente, uma restrição de integridade pode ser um predicado arbitrário
que é reaplica ao BD. No entanto, os predicados arbitrários podem ser custosos
para serem testados. Assim, geralmente limitamo-nos a restrições de integridade
que podem ser testadas com um custo adicional mínimo.
RESTRIÇÕES DE DOMÍNIO
Restrições de domínio especificam o conjunto de valores possíveis que
podem ser associados a um atributo.
Restrições de domínio é a forma mais elementar de restrições de integridade.
Elas são testadas facilmente pelo sistema cada vez que um novo item de dado é
inserido no BD.
 Cadeia de caracteres de comprimento fixo, Números em pontos fixos,
com precisão especificada pelo usuário, Inteiro, Inteiro pequeno, Número
de ponto flutuante, Ponto flutuante com dupla precisão, etc.
 Valores Vazios (not null). Existem situações nas quais a proibição de
valores vazios é desejável (chave primária em modelo relacional).
INTEGRIDADE REFERENCIAL
É quando desejamos assegurar que um valor que aparece em uma relação
para um dado conjunto de atributos apareça também em certo conjunto de
atributos em outra relação.
DEPENDÊNCIAS FUNCIONAIS
São restrições sobre o conjunto de relações válidas. Elas nos permitem
expressar fatos sobre a empresa, que são modeladas no BD (regras de
negócio).
 25
ASSERÇÕES
Uma asserção é um predicado expressando uma condição que desejamos
que o BD sempre satisfaça. Restrições de domínio, dependências funcionais
e restrições de integridade referencial são formas especiais de asserções.
Quando uma asserção é feita, o sistema testa sua validade. Se a asserção é
valida, então qualquer futura modificação no BD é permitida apenas se não
violar esta asserção. Este teste pode introduzir uma quantidade significativa
de sobrecarga se asserções complexas forem feitas.
GATILHOS (TRIGGERS)
Um gatilho é um comando executado automaticamente pelo sistema como
um efeito colateral de uma modificação no BD.
Para projetar um gatilho, precisamos:
➔Especificar as condições sob as quais o gatilho deve ser acionado.
➔Especificar as ações a serem tomadas quando o gatilho é executado.
MODELOS LÓGICOS DE SGBDs
Desde o final da década de 60 diversos SGBDs comerciais foram
construídos. Alguns tipos básicos de SGBDs estabeleceram-se na prática. 
MODELOS LÓGICOS BASEADOS EM REGISTROS
Modelos lógicos baseados em registros são usados nas descrições de dados
no nível conceitual e de visões. São usados para especificar a estrutura lógica geral
do BD e para fornecer uma descrição de alto nível da implementação.
São assim chamados porque o BD é estruturado em registros de formato fixo
de diversos tipos. Cada tipo de registro define um número fixo de campos (ou
atributos), e cada campo é usualmente de um tamanho fixo. 
O uso de registros com tamanho fixo simplifica o nível de implementação
física dos BDs.
 26
ABORDAGEM HIERÁRQUICA
SGBDs deste tipo foram importantes pelo fato da IBM ter um produto
chamado IMS, e que foi largamente utilizado durante a década de 70 e início da
década de 80. Não é mais comercializado. Os registros são organizados como
coleções de árvores. Ex. 
Exemplo de Banco de Dados Hierárquico
João Av. Sete Erechim Maria Rua Tuiti Erechim
José Rua Acre G. Vargas
505102 1200,00 104751 160,33
 102566 4700,00
103100 362,30
 27
ABORDAGEM EM REDE
Grande família de SGBDs baseada em um padrão ANSI.Originário do IDS.
Os dados no modelo rede são representados por coleções de registros, e os
relacionamentos entre os dados são representados por ligações que podem ser
vistas como ponteiros. Os registros no BD são organizados como coleções de
grafos arbitrários.
Exemplo de Banco de Dados em Rede
4700,00
1200,00505102
G. VargasRua Acre
Erechim
160,00104751
362,30103100ErechimRua TuiitiMaria
102566João Av. Sete
José
 28
ABORDAGEM RELACIONAL
Surgiu a partir de trabalhos teóricos de Codd (IBM) procurando um modelo
lógico independente de detalhes de implementação. Durante a década de 70 houve
muita pesquisa e construção de diversos protótipos. 
O modelo relacional representa dados e relacionamentos entre dados por um
conjunto de tabelas, cada uma tendo um número de colunas com nomes únicos. As
linhas são registros e as colunas são os campos.
Nome Rua Cidade Numero Cta
João Av. Sete Erechim 102566
Maria Rua Tuiuti Erechim 103100
Maria Rua Tuiuti Erechim 104751
José Rua Acre G. Vargas 104751
José Rua Acre G. Vargas 505102
Numero Cta Saldo
102566 4700,00
103100 362,30
104751 160,00
505102 1200,00
Exemplo de um Banco de Dados Relacional
Obs.: Modelo com anomalia de 3ª Forma Normal –
Repetição de itens de dados.
 29
ANÁLISE DA ABORDAGEM HIERÁRQUICA
Adequada somente para problemas hierárquicos
Em caso de problemas não hierárquicos cria:
Redundância de Dados.
Assimetrias indesejáveis na representação de dados e na
programação.
Anomalias nas instruções de modificação da base de dados.
ANÁLISE DA ABORDAGEM EM REDE
Não está restrita a problemas hierárquicos.
O programador tem que conhecer as ligações existentes na base de dados
(navegação explícita).
A independência de dados fica prejudicada, pois a criação / eliminação de
ligações implica em alterações dos programas.
ANÁLISE DA ABORDAGEM RELACIONAL
 Não está restrita a problemas hierárquicos.
 Não há ligações explícitas.
 Independência de dados aumenta, pois programas não são influenciados
pela existência ou não de caminhos de acesso.
 As referências entre registros são feitas através do VALOR armazenado
na tabela.
 30
SISTEMAS RELACIONAIS
A maioria dos sistemas de BD desenvolvidos nos últimos anos é
RELACIONAL. Também, quase todas as pesquisas atuais em Banco de Dados
baseiam-se também em conceitos relacionais.
A abordagem relacional representa a tendência dominante no mercado de
hoje e o “modelo relacional” é simplesmente o desenvolvimento mais importante
de toda a história do ramo de Banco de Dados.
O modelo relacional difere dos modelos de redes e hierárquico no fato de
que ele não usa ponteiros ou ligações. Em vez disso, o modelo relacional relaciona
registros a partir de valores que eles contêm. Esta liberação no uso de ponteiros
permite a definição de um fundamento matemático formal.
O QUE SIGNIFICA DIZER QUE UM SISTEMA É RELACIONAL?
Resumidamente, um sistema relacional é aquele, no qual:
1) Os dados são percebidos pelos usuários como tabelas
2) Os operadores á disposição do usuário, são operadores que geram novas tabelas
a partir das antigas. Por exemplo, uma solicitação de consulta parcial a dados de
uma tabela gerará uma nova tabela.
ESTRUTURA DE BDs RELACIONAIS
Uma linha em uma tabela representa um relacionamento entre um conjunto
de valores. Uma vez que uma tabela é uma coleção de tais relacionamentos, existe
uma correspondência íntima entre o conceito de tabela e o conceito matemático de
relação, a partir da qual o modelo de dados relacional tira seu nome.
Nome Rua Cidade Numero Cta
João Av. Sete Erechim 102566
Maria Rua Tuiuti Erechim 104751
José Rua Acre G. Vargas 104751
Uma linha de uma relação é uma tupla.
TUPLA
 31
Uma coluna de uma relação é um atributo.
Relação é um conjunto:
Não há ordenação de tuplas
A mesma tupla NÃO pode aparecer mais que uma vez
Não é conveniente referenciar aos elementos de uma tupla através de sua posição
- melhor é usar o nome (do atributo).
A idéia básica por traz da abordagem relacional é a de que os valores de
atributos são atômicos. Diz-se que a tabela esta na "primeira forma
normal" (1ª FN).
(Um domínio é atômico se os elementos do domínio são considerados unidades
indivisíveis).
Em determinadas áreas de aplicação pode ser conveniente admitir relações
não na primeira forma normal (non first normal form). Ex. Como representar
informações (padrão de preenchimento, posição relativa) sobre figuras
geométricas identificadas pelos seus vértices?
CONCEITOS EM BDs RELACIONAIS
CHAVE PRIMÁRIA: Coluna ou colunas cujos valores diferenciam uma linha
das demais para todos possíveis valores de uma tabela.
Normalmente exige-se que a chave seja mínima: retirando uma coluna da
chave, ela deixa de ser uma chave primária.
Não está ligado ao conceito de caminho de acesso: as linhas de uma tabela
podem ser acessadas por qualquer critério.
Outras chaves com a mesma propriedade são chamadas candidatas (ex: CIC
em uma tabela com dados de empregados que são identificados por um
código).
CHAVE ESTRANGEIRA: Coluna ou colunas de uma tabela, cujos valores
devem aparecer na chave primária de uma tabela (da mesma ou de outra).
RESTRIÇÕES DE INTEGRIDADE: É uma regra que deve ser obedecida em
todos os estados válidos da base de dados. Pode envolver uma ou mais linhas de
 32
uma ou mais tabelas (ex. Número de horas trabalhadas por semana na empresa
não pode exceder 50).
Integridade de Entidade:
O valor da chave primária NÃO pode ser vazio.
A chave primária serve como representante na base de dados de uma
entidade (se a chave primária for vazia, a linha não corresponde a
nenhuma entidade).
Integridade de Chave Primária: A chave primária tem que ser única.
Integridade Referencial: As chaves estrangeiras devem ser respeitadas.
Restrições de integridade Semânticas: Todas as demais regras que
devem ser obedecidas por todos os estados válidos da base de dados.
DDL para Abordagem Relacional: Deve permitir a especificação de no
mínimo:
A estrutura das tuplas de cada tabela (nome das colunas, respectivos domínios
e possibilidade de assumir valor vazio).
As restrições de integridade (chave primária, chaves candidatas, integridade
referencial, outras integridades semânticas).
 33
EVOLUÇÃO DOS SGBDs
Aplicações de BD Tradicionais  (informação armazenada e
acessada é textual ou numérica).
EVOLUÇÃO

BANCOS DE DADOS MULTIMÍDIA: Podem armazenar
figuras, videoclipes, sons, mensagens de voz.
GIS – Geographic Information Systems: Podem armazenar
analisar mapas, dados metereológicos e imagens de
satélites.
Data warehouse e OLAP (On-Line Analytical
Processing): São utilizados para extrair e analisar
informações úteis, a partir de grandes bancos de dados, para
a tomada de decisões.
Tecnologias de Sistemas de Tempo Real e de Bancos de
Dados Ativos: São utilizados no controle de processos
industriais e de produção.
Da mesma forma, técnicas de pesquisas de bancos de dados
vêm sendo aplicadas na WWW para aprimorar a busca de
informações que são necessárias para usuários que estejam
navegando pela Internet. 
 34
E X E R C Í C I O S (2)
1) Diferencie e caracterize os principais modelos lógicos de BD
baseados em registros.
2)Comente sobre os componentes funcionais em um BD.
3)O que é o Gerenciador de BD e quais as suas principais
tarefas? (comente cada uma delas).
4)Resumidamente, o que significa dizer que um Banco de dados
é relacional?
5)O que significa dizer que um domínio é atômico?
6)Conceitue: Chave Primária, Chave Candidata, Atributo,
Chave Estrangeira,Restrições de Integridade, Integridade de
Entidade.
 35
OPERAÇÕES RELACIONAIS BÁSICAS
Quando realizamos qualquer consulta em SQL (LINGUAGEM NÃO
PROCEDURAL), apenas escrevemos QUAIS os dados que queremos que
sejam recuperados e não definimos COMO estes dados deverão ser
recuperados. Na verdade, por trás de uma consulta SQL são realizadas,
frequentemente, diversas operações de álgebra relacional. 
Quando escrevemos uma consulta no formato:
select atributo1, atributo2, atributo3
 from tabela1, tabela2
where atributox = 'xxxxxxx' and
atributox = atributoy
para obter-se o resultado desejado o banco de dados realiza algumas
operações relacionais. Os operadores relacionais mais utilizados em um
consulta clássica são: 
 SELEÇÃO
 PROJEÇÃO
 PRODUTO CARTESIANO
SELEÇÃO: seleciona tuplas que satisfazem uma determinada condição.
O resultado é uma tabela que contém as linhas que obedecem a um
determinado critério.
PROJEÇÃO: A projeção tem como operando uma tabela. O resultado é
uma tabela que contém apenas as colunas selecionadas.
PRODUTO CARTESIANO: O produto cartesiano possui como operandos
duas tabelas (operação binária). O resultado é uma tabela cujas linhas são
a combinação das linhas das tabelas <tab>1 e <tab>2, tomando-se uma
linha da <tab>1 e concatenando-a com uma linha da <tab>2. Portanto, o
total de colunas do produto cartesiano é igual ao número de colunas da
primeira tabela mais o número de colunas da segunda tabela e o número
 36
de linhas é igual ao número de linhas da primeira tabela multiplicado pelo
número de linhas da segunda tabela.
Dado o seguinte modelo de dados:
CARGOS FUNCIONARIOS DEPTOS
cod_car (pk) cod_fun (pk) cod_dep (pk)
descri_car nome_fun descri_dep
dt_adm_fun
salario_fun
cod_car_fun (fk)
cod_dep_fun (fk)
Utilizando SQL, com a seguinte consulta:
select nome_fun, salario_fun, descri_dep
 from funcionarios, deptos
 where descri_dep = 'Informática' AND
 cod_dep_fun = cod_dep 
são realizadas as seguintes operações relacionais:
1. Produto cartesiano entre as tabelas funcionários e
deptos;
2. Seleção das linhas que satisfazem todos os critérios de
seleção (que estão na clausula where) sobre a tabela
resultante R – gerando a tabela R1;
3. Projeção das colunas (definidas pela clausula select)
sobre a tabela R1.
Supondo-se que a tabela funcionários tenha 1000 registros e a tabela
depto tenha 30 registros, a tabela resultante (R) do produto
CARGOS FUNCIONARIOS DEPTOS
 37
cartesiano teria 30.000 registros (ou tuplas) com a seguinte
formação:
FUNCIONARIOS (1000 linhas)
cod_fun nome_fun dt_adm_fun salario_fun cod_car_fun cod_dep_fun
0001 Jose silva 10/04/08 1200,00 005 012
….. ….. ….. ….. ….. …..
….. ….. ….. ….. ….. …..
1000 Maria Souza 16/01/09 850,00 023 001
DEPTOS (30 linhas)
cod_dep descri_dep
001 Gerencia
….. …..
009 Informática
….. …..
030 Vendas
RESULTANTE (R – 30.000 linhas)
cod_fun nome_fun dt_adm_fun salario_fun cod_car_fun cod_dep_fun cod_dep descri_dep
0001 Jose silva 10/04/08 1200,00 005 012 001 Gerencia
….. ….. ….. ….. ….. ….. ….. …..
….. ….. ….. ….. ….. ….. ….. …..
0001 Jose silva 10/04/08 1200,00 005 012 030 Vendas
….. ….. ….. ….. ….. ….. ….. …..
1000 Maria Souza 16/01/09 850,00 023 001 001 Gerencia
….. ….. ….. ….. ….. ….. ….. …..
1000 Maria Souza 16/01/09 850,00 023 001 030 Vendas
 38
Sobre a tabela R, faz-se a operação de Seleção, e tem-se como
resultado uma tabela (R1) com o número de linhas que satisfazem o
critério de seleção (where). Suponhamos que sejam
selecionadasapenas 20 linhas (que sejam dos funcionários do depto
de Informática). 
RESULTANTE (R1 – 20 linhas)
cod_fun nome_fun dt_adm_fun salario_fun cod_car_fun cod_dep_fun cod_dep descri_dep
….. ….. ….. ….. ….. 009 009 Informática
….. ….. ….. ….. ….. 009 009 Informática
….. ….. ….. ….. ….. 009 009 Informática
….. ….. ….. ….. ….. 009 009 Informática
….. ….. ….. ….. ….. 009 009 Informática
….. ….. ….. ….. ….. 009 009 Informática
….. ….. ….. ….. ….. 009 009 Informática
….. ….. ….. ….. ….. 009 009 Informática
Observe que todas as linhas selecionadas tem o atributo
descri_dep = Informática e o atributo cod_dep_fun = cod_dep.
Sobre a tabela R1, faz-se a operação de Projeção, isto é, seleciona-
se apenas as colunas definidas na clausula select (nome_fun,
salário_fun, descri_dep). A tabela final é exibida ao usuário (20
linhas).
nome_fun salario_fun descri_dep
….. ….. Informática
….. ….. Informática
….. ….. Informática
….. ….. Informática
….. ….. Informática
 39
….. ….. Informática
….. ….. Informática
….. ….. Informática
EXERCÍCIOS
Quais operações, sobre quais tabelas, e em que ordem são
realizadas para as seguintes consultas SQL:
1) select nome_fun, salario_fun, dt_adm_fun
 from funcionarios
 where cod_dep_fun = 30
2) select cod_fun, nome_fun, cod_dep_fun, descri_car
 from funcionarios, cargos
where descri_car = 'programador' and
 cod_car_fun = cod_car
3) select nome_fun, descri_dep, descri_car
 from funcionarios, deptos, cargos
where descri_car = 'analista de sistemas' and
 descri_dep = 'Tecnologia da Informação' and
 cod_car_fun = cod_car and
 cod_dep_fun = cod_dep

Continue navegando