Você está na página 1de 67

Sistemas De Banco De Dados 7th

Edition Ramez Elmasri


Visit to download the full and correct content document:
https://ebookmass.com/product/sistemas-de-banco-de-dados-7th-edition-ramez-elma
sri/
SISTEMAS DE
BANCO DE DADOS

ELMASRI • NAVATHE

'P Pearson
QUER SEP MAIS LIVRE?
Aprenda a Pesquisar e Fazer Ebooks | Armazene arquivos de forma segura

APRENDA A FAZER EBOOKS HTTPS://ODYSEE.COM


Seja a partir de Livro ou PDF escaneado Plataforma descentralizada para
Construa PDF pesquisável ou Epub Reprodução e Hospedagem de arquivos
Qualidade Profissional Garantida por BlockChain

Rápido e Eficiente Prática como Youtube


Descentralizada e resiliente como torrent
t.me/AnonLivros Facilitadora de transações financeiras como Bitcoin

Acervo em Português HTTPS://LIBGEN.IS


Mais de 70 mil ebooks no Telegram HTTPSy/Z-LIB.ORG
t.me/PolemicBooks
Portais de Ebooks e artigos científicos
Mais de 2 milhões de documentos
Mais de 2 mil cursos em vídeo
t.me/oAcervoCursos

Cursos via streaming no Telegram


t.me/LivreSaber

CONTRA A PROPRIEDADE INTELECTUAL

A fundamentação Teórica em favor do Conhecimento Livre

https://www.mises.org.br/Ebook.aspx?id=29

t.me/AnonLivros
SISTEMAS DE
BANCO DE DADOS
SISTEMAS DE
BANCO DE DADOS
7s edição

Ramez Elmasri
Departamento de Ciência da Computação e Engenharia
Universidade do Texas em Arlington

Shamkant B. Navathe
Faculdade de Computação
Georgia Institute of Technology

Tradução
Daniel Vieira

Revisão técnica
Enzo Seraphim
Thatyana F. Piola Seraphim
Professores Doutores Associados do Instituto de
Engenharia de Sistemas e Tecnologias da Informação -
Universidade Federal de Itajubá

Pearson
e 2016. 20] 1.2007 In Ramez Elmasri and Shamkant B. Navalhe
£2019 by Pcjbími Education do Brasil lida.
Iodos os direitos rescnados. Nenhuma parte desta publicação poderá ser reproduzida
ou transmitida de qualquer iimxJooci por qualquer outro meio, eletrônico ou mecânico. íik IiiíikIo
fbtocõpra. gravação ou qualquer outro tipo de sistema de armazenamento e transmissão de
informação, sem présii .mtorizaçáo por escrito da Pearson Education do Brasil

VlCE-PRESlDE.X'TE DL EDUCAÇÃO Juliano Costa


GlREME DL PROD11OS Alexandre Mattioli
SuPERMSOfLA DE PRODUÇÃO EDITORIAL Silvana Afonso
COORDENADOR DE PRODUÇÃO EDITORIAL Jean Xavier
Editora de texto Sabrina Levensteinas
E1MIOR.AS ASSISTEX I ES Karina Ono e Mariana Rodrigues
EsiAGlÁRK) Rodrigo Orsi
Preparação Rcnala Siqueira Campos
Revisão Maria Aiko
Capa Natália Gaio «sobre o projeto original de Micha Pawlitzki/lcna.Corbis)
DlACRAMAÇÃO E PROJETO CRÃFICO Casa de Idéias

Dados Internacionais de Catalogação na Publicação (CIP)


(Câmara Brasileira do Livro. SP. Brasil)

Elmasri. Ramez
S ste~as de oanco de dados • Ramez Elmasri. Snamleant B
Navatne; tradução Daniel Vieira; revisão técn<a F-vo Seraphim,
TFatyana de Faria Pioã Seraphim. — 7. ed — São Paulo : Pearson
Education do Brasi. 2018.

Titulo ongral: Fundamentals of database systems


ISBN 978-85-430-2500-1

1 Banco de dados I Navathe. Shamkant B IL Seracbirr. Enzo. HL


Seraphim. Thatyara de Fana P«da. IV Título.

18-16099 CDDO05.7S

índice para catálogo sistemático:


1. Ba-co ce daces . Sstemas . Processamento de daces 035.75
2. Barco de cados . Fursdsmentcs : Prccessaniento de cacos 035.75

IoIanda Rodrigues Bode - Bibüotecâria - CRB-8/10014

2018
Direitos excliisixos cedidos à
Pearson Education do Brasil Ltda..
nina empresa do gnipo Pearson Education
Avenida Santa Marina. 1195
CEP 05056-001 - São Paulo - SP - Brasil
Fone: 11 2178-8609 e 11 2178-8655
pea rsonti niversidadesia pea rson .com
Para Amalia e para Ramy, Riyad, Katrina e Thomas
R.E.

Para minha esposa Aruna por seu amor, apoio e compreensão,


e para Rohan, Maya e Ayush, por trazer tanta alegria às nossas vidas
S.B.N.
Prefácio

Este livro é uma introdução aos conceitos fundamentais necessários para projetar,
usar e implementar sistemas de banco de dados e aplicações de banco de dados.
Nossa apresentação enfatiza os fundamentos da modelagem e projeto de banco
de dados, as linguagens e modelos fornecidos pelos sistemas de gerenciamento de
banco de dados e as técnicas de implementação do sistema de banco de dados. O
propósito do livro é que ele seja usado como um livro-texto para um curso de um
ou dois semestres sobre sistemas de banco de dados nos níveis técnico, graduação
ou pós-graduação, e como um livro de referência. Nosso objetivo é oferecer uma
apresentação profunda c atualizada dos aspectos mais importantes dos sistemas e
aplicações de banco de dados, bem como das tecnologias relacionadas. Consideramos
que os leitores estejam acostumados aos conceitos elementares de programação e
estruturação de dados, e que tenham tido algum contato com os fundamentos de
organização de computadores.

Novidades nesta edição


Os recursos-chave a seguir foram acrescentados na sétima edição:

■ Uma reorganização da ordem dos capítulos (baseada em um estudo feito pelos


professores que utilizam o livro); porém, o livro ainda está organizado de modo
que o professor individual possa decidir entre seguir a nova ordenação ou escolher
uma ordenação diferente (por exemplo, seguir a ordem dos capítulos da sexta
edição) ao apresentar o material.
■ Há dois capítulos novos sobre os avanços recentes em sistemas de banco de dados
e processamento big data; um capítulo novo (Capítulo 24) aborda uma introdu­
ção à classe mais nova de sistemas de banco dc dados, conhecidos como bancos
VIII Sistemas de banco de dados

de dados NOSQL, e o outro capítulo novo (Capítulo 25) aborda as tecnologias


para processamento de big data, incluindo MapReduce e Hadoop.
■ O capítulo sobre processamento e otimização de consulta foi expandido e reor­
ganizado em dois capítulos; o Capítulo 18 é focado nas estratégias e algoritmos
para processamento de consulta, enquanto o Capítulo 19 aborda as técnicas de
otimização de consulta.
■ Um segundo exemplo do banco de dados UNIVERSIDADE foi acrescentado aos
primeiros capítulos (capítulos 3 a 8), além do nosso exemplo de banco de dados
EMPRESA, das edições anteriores.
■ Muitos dos capítulos individuais foram atualizados de várias formas, para incluir
técnicas e métodos mais recentes; em vez de discutir essas melhorias aqui, vamos
descrevê-las mais adiante neste prefácio, quando discutirmos sobre a organização
da sétima edição.
A seguir, estão os principais recursos do livro:
■ Uma organização autocontida e flexível, que pode ser ajustada às necessidades
individuais; em particular, os capítulos podem ser usados em diferentes ordens,
dependendo da preferência do professor.
■ Um diagrama de dependência (mostrado mais adiante neste prefácio) para indicar
quais capítulos dependem de capítulos anteriores; isso poderá orientar o professor
que queira ajustar a ordem de apresentação dos capítulos.
■ A Sala Virtual inclui uma coleção de suplementos, incluindo um rico conjunto
de materiais para professores e alunos, como slides do PowerPoint, figuras do
texto e um guia do professor com soluções.

Organização e conteúdo da sétima edição


Há algumas mudanças organizacionais na sétima edição, bem como melhorias
nos capítulos individuais. O livro agora é dividido em doze partes, da seguinte forma:

■ /\ Parte 1 (capítulos 1 e 2) descreve os conceitos introdutórios básicos, necessá­


rios para uma boa compreensão dos modelos, sistemas e linguagens de banco de
dados. Os capítulos 1 e 2 apresentam bancos de dados, usuários típicos e conceitos
de SGBD, terminologia e arquitetura, bem como uma discussão do progresso das
tecnologias de banco de dados com o passar do tempo e uma breve história dos
modelos de dados. Esses capítulos têm sido usados para introduzir algumas das
novas tecnologias, como sistemas NOSQL.
■ Parte 2 (capítulos 3 e 4) inclui a apresentação sobre modelagem de entidade-re-
lacionamento e projeto de banco de dados; contudo, é importante observar que
os professores podem utilizar os capítulos sobre o modelo relacionai (capítulos
5 a 8) antes dos capítulos 3 e 4 se esta for sua ordem de apresentação preferida
para o material do curso. No Capítulo 3, apresentamos os conceitos do modelo
Entidade-Rclacionamento (ER) e dos diagramas ER, usando-os para ilustrar o
projeto conceituai do banco de dados. O Capítulo 4 mostra como o modelo ER
básico pode ser estendido a fim de incorporar outros conceitos de modelagem, como
subclasses, especialização, generalização, tipos (categorias) de união e herança,
levando ao modelo de dados Enhanced-ER (EER) e aos diagramas EER. A notação
para os diagramas de classe da UML também é apresentada nos Capítulos 7 e 8
como um modelo alternativo e notação diagramática para os diagramas ER/EER.
■ A Parte 3 (capítulos 5 a 9) inclui uma apresentação detalhada sobre os bancos de
dados relacionais e SQL, com material novo nos capítulos sobre SQL, abordando
algumas construções SQL que não estavam na edição anterior O Capítulo 5 descreve
Prefácio IX

o modelo relacionai básico, suas restrições de integridade e operações de atualização.


O Capítulo 6 descreve algumas das partes básicas do padrão SQL para bancos de
dados relacionais, incluindo definição de dados, operações de modificação de dados
e consultas SQL simples. O Capítulo 7 apresenta consultas SQL mais complexas,
bem como os conceitos SQL de gatilhos, asserções, visões e modificação de esquema.
O Capítulo 8 descreve as operações formais da álgebra relacionai e introduz o
cálculo relacionai. O material sobre SQL (capítulos 6 e 7) é apresentado antes da
nossa apresentação sobre álgebra relacionai e cálculo, no Capítulo 8, para permitir
que os professores iniciem projetos SQL mais no começo do curso, se desejarem (é
possível abordar o Capítulo 8 antes dos capítulos 6 e 7 se o professor preferir essa
ordem). O capítulo final da Parte 3, Capítulo 9, aborda o mapeamento ER e EER-
-relacional, algoritmos que podem ser usados para projetar um esquema de banco
de dados relacionai a partir de um esquema conceituai ER/EER.
■ A Parte 4 (capítulos 10 e 11) são os capítulos referentes às técnicas de progra­
mação de banco de dados; esses capítulos podem ser designados como materiais
de leitura e aumentados com materiais na linguagem de programação específica
usada no curso para projetos de programação (grande parte dessa documentação
pode ser facilmente encontrada na web). O Capítulo 10 aborda tópicos tradicio­
nais de programação SQL, como SQL embutida, SQL dinâmica, ODBC, SQLJ,
JDBC e SQL/CLI. O Capítulo 11 apresenta a programação de banco de dados
na web, usando a linguagem de script PHP em nossos exemplos, e inclui material
novo que discute tecnologias Java para a programação de banco de dados da web.
■ A Parte 5 (capítulos 12 e 13) aborda o material atualizado sobre bancos de dados
objeto-relacional e orientados a objeto (Capítulo 12) e XML (Capítulo 13); ambos
os capítulos agora incluem uma apresentação explicando como o padrão SQL
incorpora conceitos de objeto e de XML nas versões mais recentes do padrão SQL.
O Capítulo 12 primeiro introduz os conceitos para bancos de dados de objeto
e depois mostra como eles foram incorporados no padrão SQL para adicionar
recursos de objeto a sistemas de banco de dados relacionais. Em seguida, ele aborda
o padrão de modelo de objeto ODMG e sua definição de objeto e linguagens
de consulta. O Capítulo 13 aborda o modelo e as linguagens XML (extensible
Markup Language) e discute como a XML está relacionada aos sistemas de banco
de dados. Ele apresenta conceitos c linguagens XML e compara o modelo XML
com os modelos tradicionais de banco de dados. Mostramos também como os
dados podem ser convertidos entre a XML e representações relacionais, e os
comandos SQL para extrair documentos XML de tabelas relacionais.
■ A Parte 6 (capítulos 14 e 15) são os capítulos de normalização e teoria do projeto
relacionai (passamos todos os aspectos formais dos algoritmos de normalização
para o Capítulo 15). O Capítulo 14 define as dependências funcionais e as formas
normais baseadas em dependências funcionais. O Capítulo 14 também desenvolve
uma abordagem de normalização intuitiva passo a passo e inclui as definições de
dependências multivaloradas e dependências de junção. O Capítulo 15 aborda
a teoria da normalização e os formalismos, teorias e algoritmos desenvolvidos
para o projeto de banco de dados relacionai por meio da normalização, incluindo
os algoritmos de decomposição relacionais e os algoritmos de síntese relacionai.
■ A Parte 7 (capítulos 16 e 17) contém os capítulos sobre organizações de arquivo
em disco (Capítulo 16) e indexação de arquivos de banco de dados (Capítulo
17). O Capítulo 16 descreve os principais métodos de organização de arquivos
de registros em disco, incluindo arquivos ordenados (classificados), desordenados
(heap) e de hash; nele, são abordadas as técnicas de hashing estático e dinâmico.
O Capítulo 16 foi atualizado para incluir material sobre estratégias de gerencia­
mento de buffer para SGBDs, além de uma visão geral dos novos dispositivos de
X Sistemas de banco de dados

armazenamento e padrões para arquivos e arquiteturas de armazenamento moder­


nas. O Capítulo 17 descreve as técnicas de indexação para arquivos, incluindo
estruturas de dados em B-trees e B’-trees e arquivos de grade, e foi atualizado
com novos exemplos e uma discussão avançada sobre indexação, incluindo como
escolher índices apropriados e a criação de índices durante o projeto físico.
■ /\ Parte 8 (capítulos 18 e 19) inclui os capítulos sobre algoritmos de processa­
mento de consulta (Capítulo 18) e técnicas de otimização (Capítulo 19); esses
dois capítulos foram atualizados e reorganizados a partir de um único capítulo,
nas edições anteriores, que incluía os dois tópicos; eles também incluem algumas
técnicas mais recentes utilizadas em SGBDs comerciais. O Capítulo 18 apresenta
algoritmos para a pesquisa de registros em arquivos de disco e para a junção de
registros a partir de dois arquivos (tabelas), além de outras operações relacionais.
O Capítulo 18 também possui material novo, incluindo uma discussão sobre
operações de semijunção (semi-join) e antijunção (anti-join), com exemplos de
como elas são usadas no processamento de consultas, bem como uma discussão
das técnicas para estimativa de seletividade. O Capítulo 19 aborda as técnicas
para otimização de consulta usando a estimativa de custo e regras heurísticas;
ele inclui material novo sobre otimização de subconsulta aninhada, uso de his-
togramas, otimização física e métodos de ordenação de junção e otimização de
consultas típicas em data warehouses.
■ A Parte 9 (capítulos 20,21 e 22) aborda os conceitos de processamento de tran­
sação; controle de concorrência; e recuperação do banco de dados contra falhas.
Esses capítulos foram atualizados para incluir algumas das técnicas mais recentes
utilizadas em alguns SGBDs comerciais e open source. O Capítulo 20 apresenta
as técnicas necessárias para os sistemas de processamento de transação e define
os conceitos de facilidade de recuperação e serialização de escalonamentos; ele
contém uma nova seção sobre políticas de substituição de buffer para SGBDs e
uma nova discussão sobre o conceito de isolamento de snapshot. O Capítulo 21
oferece uma visão geral de diversos tipos de protocolos de controle de concor­
rência, com foco no bloqueio em duas fases. Também discutimos as técnicas de
ordenação de timestamp e controle de concorrência otimista, além do bloqueio de
detalhamento múltiplo. O Capítulo 21 inclui uma nova apresentação dos métodos
de controle de concorrência baseados no conceito de isolamento de snapshot.
Por fim, o Capítulo 22 focaliza os protocolos de recuperação de banco de dados
e oferece uma visão geral dos conceitos e técnicas usados na recuperação.
■ A Parte 10 (capítulos 23,24 e 25) inclui o capítulo sobre bancos de dados distri­
buídos (Capítulo 23) e mais dois capítulos novos sobre sistemas de armazenamento
NOSQL para big data (Capítulo 24) e tecnologias big data baseadas em Hadoop
e .MapReduce (Capítulo 25). O Capítulo 23 oferece uma introdução aos concei­
tos de bancos de dados distribuídos, incluindo disponibilidade e escalabilidade,
replicação e fragmentação de dados, manutenção de consistência de dados entre
as réplicas e muitos outros conceitos e técnicas relacionadas. No Capítulo 24, os
sistemas NOSQL são divididos em quatro categorias gerais, com um sistema de
exemplo utilizado em cada categoria; também discutimos e comparamos modelos
de dados, operações e estratégias de rcplicação/distribuição/escalabilidade de cada
tipo de sistema NOSQL. No Capítulo 25, introduzimos o modelo de programação
MapReduce para o processamento distribuído de big data,e depois apresentamos
o sistema Hadoop e o HDFS (Hadoop Distributed File System), além das interfaces
de alto nível Pig e Hive e da arquitetura YARN.
■ A Parte 11 (capítulos de 26 a 29) é intitulada “Modelos, sistemas e aplicações
de bancos de dados avançados”, e inclui o seguinte material: o Capítulo 26
introduz vários modelos de dados avançados, incluindo bancos de dados ativos
Prefácio XI

e triggers (Seção 26.1), bancos de dados temporais (Seção 26.2), bancos de dados
espaciais (Seção 26.3), bancos de dados multimídia (Seção 26.4) e bancos de
dados dedutivos (Seção 26.5). O Capítulo 27 discute técnicas de recuperação
de informações (RI) e pesquisa na web, incluindo tópicos como RI e pesquisa
baseada em palavra-chave, comparação de BI) com RI, modelos de recuperação,
avaliação de busca e algoritmos de ranqueamento (ranking). O Capítulo 28 é
uma introdução à mineração de dados (data mining), que inclui uma visão geral
dc diversos métodos de mineração de dados, como mineração por regra dc asso­
ciação, agrupamento, classificação e descoberta de padrão sequencial. O Capítulo
29 é uma visão geral do data warehousing, incluindo tópicos como modelos e
operações de data warehousing e o processo de criação de um data warehouse.
■ A Parte 12 (Capítulo 30) inclui apenas um capítulo sobre segurança de banco de
dados, que traz uma discussão sobre comandos SQL para o controle de acesso
discricionário (GRANT, REVOKE), além dos níveis de segurança obrigatórios e
modelos para a inclusão do controle de acesso obrigatório nos bancos de dados
relacionais, com uma discussão sobre ameaças, como os ataques de injeção de SQL
e outras técnicas e métodos relacionados à segurança e à privacidade dos dados.

O Apêndice A oferece uma série de notações diagramáticas alternativas para


exibir um esquema ER ou EER conceituai. Estas podem ser usadas em substituição à
notação que usamos, se o professor preferia O Apêndice B oferece alguns parâmetros
físicos importantes dos discos. O Apêndice C contém uma visão geral da linguagem
de consulta gráfica QBE.

Orientações para o uso deste livro


Existem muitas maneiras diferentes de ministrar um curso dc banco de dados.
Os capítulos das partes 1 a 7 podem ser usados em um curso introdutório sobre
sistemas de banco dc dados, na ordem em que aparecem ou na ordem preferida dc
cada professor. Capítulos c seções selecionadas podem ser omitidos, e o professor
pode acrescentar outros capítulos do restante do livro, dependendo da ênfase do
curso. Ao final da seção inicial dc muitos dos capítulos do livro, listamos seções
que podem ser omitidas sempre que se desejar uma discussão menos detalhada do
assunto. Sugerimos incluir até o Capítulo 15 em um curso introdutório de banco
de dados e incluir panes selecionadas de outros capítulos, dependendo da base dos
alunos e da cobertura desejada. Para uma ênfase cm técnicas dc implementação de
sistemas, os capítulos das partes 7,8 e 9 devem ser usados cm substituição a alguns
dos capítulos anteriores.
Os capítulos 3 e 4, que abordam a modelagem conceituai usando os modelos
ER e EER, são importantes para um bom conhecimento conceituai dos bancos dc
dados. Porém, eles podem ser parcialmentc abordados, abordados mais adiante em
um curso ou até mesmo omitidos, se a ênfase for sobre a implementação do SGBD.
Os capítulos 16 e 17, sobre organização de arquivos e indexação, também podem ser
abordados mais cedo, mais tarde ou ainda omitidos, se a ênfase for sobre modelos
de banco de dados e linguagens. Para alunos que concluíram um curso sobre orga­
nização de arquivos, partes desses capítulos podem ser indicadas como material de
leitura ou alguns exercícios podem ser passados como revisão para esses conceitos.
Se a ênfase de um curso for no projeto de banco de dados, o professor deverá
abordar os capítulos 3 e 4 mais cedo, seguidos pela apresentação dos bancos de
dados relacionais. Um curso sobre o ciclo de vida completo do projeto e implemen­
tação dc bancos dc dados incluiría o projeto conceituai (capítulos 3 e 4), bancos dc
dados relacionais (capítulos 5, 6 e 7), mapeamento do modelo dc dados (Capítulo
XII Sistemas de banco de dados

9), normalização (Capítulo 14) e implementação de programas de aplicação com


SQL (Capítulo 10). O Capítulo 11 também deverá ser incluído se a ênfase for na
programação e nas aplicações de banco de dados na web. A documentação adicional
sobre linguagens de programação e SGBDRs específicos seria necessária. O livro foi
escrito de modo que fosse possível abordar tópicos em várias sequências. O gráfico
de dependência dos capítulos, a seguir, mostra as principais dependências entre os
capítulos. Conforme o diagrama ilustra, é possível começar com vários tópicos
diferentes após os dois capítulos introdutórios. Embora o gráfico possa parecer
complexo, é importante observar que, se os capítulos forem usados na ordem, as
dependências não serão perdidas. O gráfico pode ser consultado por aqueles que
desejam usar uma ordem de apresentação alternativa.
Para um curso de um semestre baseado neste livro, capítulos selecionados podem
ser atribuídos como material de leitura. O livro também pode ser usado para uma
sequência de cursos em dois semestres. O primeiro curso. Introdução ao Projeto e
Sistemas de Bancos de Dados., em nível de aluno de segundo ano, técnico ou gradua­
ção, pode abranger a maioria dos capítulos de 1 a 15. O segundo curso. Modelos e
Técnicas de Implementação de Bancos de Dados, no nível de aluno de graduação ou
pós-graduação, pode abranger a maioria dos capítulos de 16 a 30. A sequência de
dois semestres também pode ser elaborada de várias outras maneiras, dependendo
da preferência de cada professor

1,2
Introdução

3,4
Modelos
ER, EER Modelo 6,7
SQL
Álgebra
relacionai

Z 16,17 10,11
' 9 Organização de Programação
EReERR çarquivo, indexação de BD e web
para relacionai

28,29
20,21,22
Mineração de dados.
Transações, CC.
Warehousing
recuperação

30
14,15 23,24, 25 Segurança
FD, DMV, BDD, NOSQL de BD
normalização Big Data

18,19
Processamento de
consulta, otimização
Agradecimentos
*

É um grande prazer reconhecer o auxílio e as contribuições de muitos indivíduos


para este projeto. Primeiro, gostaríamos de agradecer ao nosso editor. Matt Goldstein,
por sua orientação, encorajamento e apoio. Gostaríamos de agradecer o excelente
trabalho de Rose Kernan pela gerência de produção, Patricia Daly por uma revisão
completa do livro, Martha McMaster por sua diligência na revisão das páginas, e
Scott Disanno, editor-chefe da equipe de produção. Também queremos agradecer a
Kelsey loanes, da Pearson, por sua ajuda constante no projeto, e aos revisores Michael
Doherty, Deborah Dunn, Imad Rahal, Karen Davis, Gilliean Lee, Leo Mark, Monisha
Pulimood, Hassan Reza, Susan Vrbsky, Li Da Xu, Weining Zhang e Vincent Oria.
Ramez Elmasri gostaria de agradecer a Kulsawasd Jitkajornwanich, Vivek Sharma
e Surya Swaminathan por sua ajuda na preparação de parte do material do Capítulo
24. Sham Navathe gostaria de agradecer aos seguintes profissionais, que ajudaram
na análise crítica e na revisão de diversos tópicos: Dan Forsythe e Satish Damle,
pela discussão sobre sistemas de armazenamento; Rafi Ahmed, pela reorganização
detalhada do material sobre processamento e otimização de consulta; Harish Butani,
Balaji Palanisamy e Prajakta Kalmegh, por sua ajuda com o material sobre Hadoop
e tecnologia MapReduce; Vic Ghorpadey e Nenad Jukic, pela revisão do material
sobre data warehousing; e, por fim, Frank Rietta, pelas técnicas mais recentes em
segurança de banco de dados, Kunal Malhotra, por diversas discussões, e Saurav
Sahay, pelos avanços nos sistemas de recuperação de informação.
Gostaríamos de repetir nossos agradecimentos àqueles que revisaram e contribuí­
ram de alguma maneira para as edições anteriores de Sistemas de Banco de Dados.
■ Primeira edição. Alan Apt (editor), Don Batory,Scott Downing, Dennis Heimbinger,
Julia Hodges, Yannis loannidis, Jim Larson, Per-Ake Larson, Dennis McLeod,
Rahul Patel, Nicholas Roussopoulos, David Stemple, Michael Stonebrakeg Frank
Tompa e Kyu-Young Whang.
■ Segunda edição. Dan Joraanstad (editor), Rafi Ahmed, Antonio Albano, David
Beech, Jose Blakeley, Panos Chrysanthis, Suzanne Dietrich, Vic Ghorpadey, Goetz
Graefe, Eric Hanson, Junguk L. Kim, Roger King, Vram Kouramajian, Vijay

* Equipe da 7a edição original, em inglês.


XIV Sistemas de banco de dados

Kumar, John Lowther, San jay Manchanda,Toshimi Minoura, Inderpal Mumick,


Ed Omiecinski, Girish Pathak, Raghu Ramakrishnan, Ed Robertson, Eugene
Sheng, David Stotts, Marianne Winslett e Stan Zdonick.
■ Terceira edição. Maite Suarez-Rivas e Katherine Harutunian (editores); Suzanne
Dietrich, Ed Omiecinski, Rafi Ahmed, François Bancilhon, Jose Blakeley, Rick Cartel),
Ann Chervenak, David W. Embley, *Henn A. Edinger, Leonidas Fegaras, Dan Forsyth,
Farshad Fotouhi, Michael Franklin, Sreejith Gopinath, Goetz Craefe, Richard Hull,
Sushil Jajodia, Ramesh K. Kame, Harish Kotbagi, Vijay Kumar,Tarcisio Lima, Ramon
A. Mata-Toledo, Jack McCaw, Dennis McLeod, Rokia Missaoui, Magdi Morsi, M.
Narayanaswarny, Carlos Ordonez, Joan Peckham, Betty Salzberg, Ming-Chien Shan,
J unping Sun, Rajshekhar Sunderraman, Aravindan Veerasamy e Emilia E. Villareal.
■ Quarta edição. Maite Suarez-Rivas, Katherine Harutunian, Daniel Rausch e
Juliet Silveri (editores); Phil Bernhard, Zhengxin Chen, Jan Chomicki, Hakan
Ferhatosmanoglu, Len Fisk, William Hankley, Ali R. Hurson, Vijay Kumar,
Peretz Shoval, Jason T. L. Wang (revisores); Ed Omiecinski (que contribuiu para
o Capítulo 27). Os colaboradores da Universidade do Texas em Arlington são
Jack Fu, Hyoil Han, Babak Hojabri, Charley Li, Ande Swathi e Steven Wu; os
colaboradores da Georgia Tech são Weimin Feng, Dan Forsythe, Angshuman
Guin, Abrar Ul-Haque, Bin Liu, Ying Liu, Wanxia Xie e Waigen Yee.
■ Quinta edição. Marr Goldstein e Katherine Harutunian (editores); Michelle Brown,
Gillian Hall, Part}- Xlahtani, Maite Suarez-Rivas, Bethany Tidd e Joyce Cosentino
Wells (da Addison-Wesley); Hani Abu-Salem, Jamal R. Alsabbagh, Ramzi Bualuan,
Soon Chung, Sumali Conlon, Hasan Davulcu, James Geller, Le Gruenwald, Larifur
Khan, Herman Lam, Byung S. Lee, Donald Sanderson, Jamil Saquer, Costas
Tsatsoulis e Jack C. Wileden (revisores); Raj Sunderraman (que contribuiu com os
projetos de laboratório); Salman Azar (que contribuiu com alguns exercícios novos);
Gaurav Bhatia, Fariborz Farahmand, Ying Liu, Ed Omiecinski, Nalini Polavarapu,
Liora Sahar, Saurav Sahay e Wanxia Xie (da Georgia Tech).
■ Sexta edição. Matt Goldstein (editor); Gillian Hall (gerente de produção); Rebecca
Greenberg (revisora de texto); Jeff Holcomb, Marilyn Lloyd, Margaret Waples
e Chelsea Bell (da Pearson); Rafi Ahmed, Venu Dasigi, Neha Deodhar, Fariborz
Farahmand, Hariprasad Kumai; Leo Mark, Ed Omiecinski, Balaji Palanisamy,
Nalini Polavarapu, Parimala R. Pranesh, Bharath Rengarajan, Liora Sahar, Saurav
Sahay, Narsi Srinivasan e Wanxia Xie.
Por ultimo, mas não menos importante, gostaríamos de agradecer pelo apoio,
encorajamento e paciência de nossas famílias.
R.E.
S.B.N.
Sumário

Prefácio................ .VII

Sobre os autores XXV

PARTE 1 Introdução aos bancos de dados


Capítulo 1 Bancos de dados e usuários de banco de dados.................................................3
1.1 Introdução............................................................................................................................ 4
1.2 Um exemplo......................................................................................................................... 7
1.3 Características da abordagem de banco de dados......................................................................... 9
1.4 Atores em cena.................................................................................................................... 14
1.5 Trabalhadores dos bastidores.................................................................................................. 15
1.6 Vantagens de usar a abordagem de SGBD..................................................................................16
1.7 Uma breve história das aplicações de banco de dados.................................................................. 22
1.8 Quando não usar um SGBD ....................................................................................................25
1.9 Resumo.............................................................................................................................. 26
Perguntas de revisão................................................................................................................... 26
Exercícios..................................................................................................................................27
Bibliografia selecionada............................................................................................................... 27
Capítulo 2 Conceitos e arquitetura do sistema de banco de dados.............................. 29
2.1 Modelos de dados, esquemas e instâncias................................................................................. 30
2.2 Arquitetura de três esquemas e independência de dados............................................................... 33
2.3 Linguagens e interfaces do banco de dados................................................................................ 36
2.4 O ambiente do sistema de banco de dados ................................................................................ 39
2.5 Arquiteturas centralizadas e diente/servidor para SGBDs ............................................................. 43
2.6 Classificação dos sistemas gerenciadores de banco de dados ........................................................ 47
2.7 Resumo.............................................................................................................................. 50
Perguntas de revisão................................................................................................................... 51
XVI Sistemas de banco de dados

Exerdcios.................................................................................................................................. 52
Bibliografia selecionada............................................................................................................... 52

PARTE 2 Modelagem conceituai e projeto de banco de dados


Capítulo 3 Modelagem de dados usando o modelo
Entidade-Relacionamento (ER)..................................................................................55
3.1 Usando modelos de dados conceituais de alto nível para o projeto do banco de dados ....................... 56
32 Exemplo de aplicação de banco de dados..................................................................................58
3.3 Tipos de entidade, conjuntos de entidades, atributos e chaves........................................................ 59
3.4 Tipos e conjuntos de relacionamentos, papéis e restrições estruturais...............................................66
3.5 Tipos de entidade fraca.......................................................................................................... 72
3.6 Refinando o projeto ER para o banco de dados EMPRESA............................................................. 73
3.7 Diagramas ER, convenções de nomes e questões de projeto .......................................................... 74
3.8 Exemplo de outra notação: diagramas de ciasses UML ................................................................. 79
3.9 Tipos de relacionamento de grau maior que dois......................................................................... 81
3.10 Outro exemplo: um banco de dados UNIVERSIDADE.................................................................. 84
3.11 Resumo............................................................................................................................. 87
Perguntas de revisão................................................................................................................... 88
Exercícios..................................................................................................................................88
Exerácios de laboratório..............................................................................................................94
Bibliografia selecionada............................................................................................................... 95
Capítulo 4 O modelo Entidade-Relacionamento Estendido (EER)................................... 97
4.1 Subclasses» superclasses e herança........................................................................................... 98
42 Especialização e generalização............................................................................................... 100
4.3 Restrições e caracteristicas das hierarquias de especialização e generalização................................... 102
4.4 Modelagem dos tipos UNIAO usando categorias....................................................................... 108
4.5 Um exemplo de esquema UNIVERSIDADE de EER, opções de projeto e definições formais.................. 110
4.6 Exemplo de outra notação: representando especialização e generalização em diagramas
de classes em UML.............................................................................................................. 114
4.7 Conceitos de abstração de dados» representação do conhecimento e ontologia................................. 116
4.8 Resumo............................................................................................................................. 121
Perguntas de revisão................................................................................................................. 122
Exerdcios................................................................................................................................ 123
Exerdcios de laboratório............................................................................................................ 129
Bibliografia selecionada.............................................................................................................. 131

PARTE 3 Modelo de dados relacionai e SQL


Capítulo 5 O modelo de dados relacionai e as restrições em bancos de dados
relacionais........................................................................................................................ 135
5.1 Conceitos do modelo relacionai........................................................................................... 136
52 Restrições em modelo reladonal e esquemas de bancos de dados reladonais................................... 142
5.3 Operações de atualização, transações e tratamento de violações de restrição................................... 150
5.4 Resumo............................................................................................................................. 153
Perguntas de revisão................................................................................................................. 154
Exerdcios................................................................................................................................ 155
Bibliografia selecionada.............................................................................................................. 158
Capitulo 6 SQL básica........................................................................................................................ 159
6.1 Definições e tipos de dados em SQL........................................................................................ 161
6.2 Especificando restrições em SQL............................................................................................. 166
6.3 Consultas de recuperação básicas em SQL................................................................................ 169
6.4 Instruções INSERT, DELETE e UPDATE em SQL ........................................................................... 180
6.5 Recursos adicionais da SQL .................................................................................................. 183
6.6 Resumo............................................................................................................................. 184
Sumário XVII

Perguntas de revisão................................................................................................................. 184


Exercícios................................................................................................................................ 184
Bibliografia selecionada..............................................................................................................187
Capítulo 7 Mais SQL: consultas complexas, triggers, views e modificação de
esquema...........................................................................................................................189
7.1 Consultas de recuperação SQL mais complexas......................................................................... 189
7.2 Especificando restrições como asserções e ações como gatilho (triggers) ........................................206
7.3 Visões (views) — tabelas virtuais em SQL................................................................................ 209
7.4 Instruções de alteração de esquema em SQL............................................................................ 213
7.5 Resumo............................................................................................................................. 215
Perguntas de revisão................................................................................................................. 216
Exercidos................................................................................................................................ 217
Bibliografia selecionada..............................................................................................................218
Capítulo 8 Álgebra e cálculo relacionai....................................................................................219
8.1 Operações relacionais unárias: SELEÇÃO e PROJEÇÃO................................................................. 221
8.2 Operações de álgebra relacionai com base na teoria dos conjuntas ...............................................226
8.3 Operações relacionais binárias: JUNÇÃO e DIVISÃO.................................................................... 229
8.4 Outras operações relacionais................................................................................................ 238
8.5 Exemplos de consultas na álgebra relacionai............................................................................ 243
8.6 O cálculo relacionai de tupla ................................................................................................ 246
8.7 O cálculo relacionai de domínio............................................................................................. 254
8.8 Resumo............................................................................................................................. 256
Perguntas de revisão................................................................................................................. 257
Exercícios................................................................................................................................ 258
Exercidos de laboratório............................................................................................................ 262
Bibliografia seledonada..............................................................................................................263
Capítulo 9 Projeto de banco de dados relacionai por mapeamento ER e EER
para relacionai..............................................................................................................265
9.1 Projeto de banco de dados reladonal usando o mapeamento ER para relacionai .............................. 266
9.2 Mapeando construções do modelo EER para relações................................................................. 273
9.3 Resumo............................................................................................................................. 278
Pergunta de revisão................................................................................................................... 278
Exercícios................................................................................................................................ 278
Exercícios de laboratório............................................................................................................ 279
Bibliografia seledonada ............................................................................................................ 280

PARTE 4 Técnicas de programação de banco de dados


Capítulo 10 Introdução às técnicas de programação SQL................................................ 283
10.1 Programação de banco de dados: técnicas e problemas ............................................................ 284
102 SQL embutida, SQL dinâmica e SQU .....................................................................................287
10.3 Programação de banco de dados com chamadas de função e bibliotecas de dasses: SQL/CLI e JDBC .. 299
10.4 Procedimentos armazenados de banco de dados e SQUPSM ..................................................... 308
10.5 Comparando as três técnicas............................................................................................... 311
10.6 Resumo........................................................................................................................... 311
Perguntas de revisão................................................................................................................. 312
Exercidos................................................................................................................................ 312
Bibliografia seledonada..............................................................................................................313
Capítulo 11 Programação de banco de dados web usando PHP................................... 315
11.1 Um exemplo simples em PHP............................................................................................... 316
112 Visão geral dos recursos básicos da PHP .............................................................................. 318
11.3 Visão geral da programação de banco de dados em PHP............................................................ 324
11.4 Panorama das tecnologias Java para programação web com banco de dados................................. 328
XVIII Sistemas de banco de dados

11.5 Resumo......................................................................................................................... 329


Perguntas de revisão................................................................................................................. 329
Exerdcios................................................................................................................................ 330
Bibliografia selecionada..............................................................................................................330

PARTE 5 Objeto, objeto-relacional e XML: conceitos, modelos,


linguagens e padrões
Capítulo 12 Bancos de dados de objeto e objeto-relacional........................................... 333
12.1 Visão geral dos concertos de banco de dados de objeto........................................................... 335
122 Extensões do banco de dados de objeto para SQL.................................................................... 347
12.3 0 modelo de objeto ODMG e a Object Definition Language (ODL) .............................................. 353
12.4 Projeto conceituai de banco de dados de objeto ...................................................................... 368
12.5 A linguagem de consulta de objeto (OQL — Object Query Language)........................................... 371
12.6 Visão geral de binding da linguagem C++ no padrão ODMG ..................................................... 378
12.7 Resumo........................................................................................................................... 380
Perguntas de revisão................................................................................................................. 381
Exerdcios................................................................................................................................ 382
Bibliografia selecionada.............................................................................................................. 382
Capítulo 13 XML: extensible Markup Language.......................................................... 385
13.1 Dados estruturados, semiestruturados e não estruturados.......................................................... 386
132 Modelo de dados hierárquico (em árvore) da XML.................................................................... 390
133 Documentos XML, DTD e esquema XML..................................................................................392
13.4 Armazenando e extraindo documentos XML de bancos de dados.................................................. 399
13.5 Linguagens XML............................................................................................................... 400
13.6 Extraindo documentos XML de bancos de dados relacionais.......................................................404
13.7 XML/SQL funções SQL para a criação de dados XML.................................................................409
13.8 Resumo........................................................................................................................... 411
Perguntas de revisão................................................................................................................. 411
Exerdcios................................................................................................................................ 412
Bibliografia selecionada..............................................................................................................412

PARTE 6 Teoria e normalização de projeto de banco de dados


Capítulo 14 Fundamentos de dependências funcionais e normalização para
bancos de dados relacionais....................................................... 415
14.1 Diretrizes de projeto informais para esquemas de relação.......................................................... 417
14.2 Dependências funcionais ................................................................................................. 426
14.3 Formas normais baseadas em chaves primárias....................................................................... 429
14.4 Definições gerais da segunda e da terceira formas normais........................................................ 438
14.5 Forma Normal de Boyce-Codd ............................................................................................. 440
14.6 Dependência multivalorada e quarta forma normal.................................................................. 443
14.7 Dependências de junção e quinta forma normal ...................................................................... 446
14.8 Resumo........................................................................................................................... 447
Perguntas de revisão................................................................................................................. 448
Exerdcios................................................................................................................................ 449
Exerdcio de laboratório..............................................................................................................453
Bibliografia selecionada..............................................................................................................453
Capitulo 15 Algoritmos de projeto de banco de dados relacionai e demais
dependências....................................................................................455
15.1 Outros tópicos em dependêndas fundonais: regras de inferência, equivalência e cobertura mínima... 456
152 Propriedades de decomposições reladonais............................................................................ 463
15.3 Algoritmos para projeto de esquema de banco de dados relacionai.............................................. 468
15.4 Sobre NULLs, tuplas suspensas e projetosreladonais alternativos................................................. 472
Sumário XIX

15.5 Discussão adicional sobre dependências multivaloradas e 4FN................................................... 477


15.6 Outras dependências e formas normais..................................................................................479
15.7 Resumo........................................................................................................................... 482
Perguntas de revisão................................................................................................................. 483
Exercícios................................................................................................................................ 483
Exercício de laboratório..............................................................................................................484
Bibliografia selecionada..............................................................................................................485

PARTE 7 Estruturas de arquivo, hashing, indexação e projeto físico de


banco de dados
Capítulo 16 Armazenamento de disco, fundamentos de estruturas de arquivo,
hashing e arquiteturas de armazenamento modernas.... 489
16.1 Introdução........................................................................................................................490
162 Dispositivos de armazenamento secundários...........................................................................494
16.3 Buffering de blocos............................................................................................................ 503
16.4 Gravando registros de arquivo no disco..................................................................................506
16.5 Operações em arquivos ..................................................................................................... 510
16.6 Arquivos de registros desordenados (arquivos de heap)............................................................. 513
16.7 Arquivos de registros ordenados (arquivos dassificados)............................................................ 514
16.8 Técnicas de hashing .......................................................................................................... 517
16.9 Outras organizações de arquivo primárias.............................................................................. 526
16.10 Paralelizando o acesso de disco usando tecnologia RAID.......................................................... 527
16.11 Arquiteturas de armazenamento modernas...........................................................................531
16.12 Resumo......................................................................................................................... 535
Perguntas de revisão................................................................................................................. 537
Exercidos................................................................................................................................ 538
Bibliografia seledonada..............................................................................................................541
Capítulo 17 Estruturas de indexação para arquivos e projeto físico de banco
de dados..............................................................................................543
17.1 Tipos de índices ordenados de único nível .............................................................................. 544
172 índices multiniveis............................................................................................................ 554
17.3 índices multiniveis dinâmicos usando B-trees e B’-trees............................................................ 557
17.4 índices em múltiplas chaves................................................................................................ 569
17.5 Outras tipos de índices....................................................................................................... 572
17.6 Algumas questões gerais referentes à indexação...................................................................... 576
17.7 Projeto fisico em bancos de dados reladonais......................................................................... 581
17.8 Resumo........................................................................................................................... 584
Perguntas de revisão................................................................................................................. 585
Exercícios................................................................................................................................ 585
Bibliografia seledonada..............................................................................................................588

PARTE 8 Processamento e otimização de consulta


Capítulo 18 Estratégias para processamento de consulta................................................ 593
18.1 Traduzindo consultas SQL para álgebra relacionai e outros operadores......................................... 595
182 Algoritmos para ordenação externa...................................................................................... 598
18.3 Algoritmos para a operação SELECT...................................................................................... 600
18.4 Implementando a operação JOIN.......................................................................................... 605
18.5 Algoritmos para operações PROJEÇÃO e de conjunto................................................................. 612
18.6 Implementando operações de agregação e diferentes tipos de JOINs............................................. 614
18.7 Combinando operações usando pipelining.............................................................................. 616
18.8 Algoritmos paralelos para processamento de consulta............................................................... 618
18.9 Resumo........................................................................................................................... 622
Perguntas de revisão................................................................................................................. 623
XX Sistemas de banco de dados

Exerdcios................................................................................................................................ 624
Bibliografia selecionada..............................................................................................................624
Capítulo 19 Otimização deconsulta........................................................................................... 625
19.1 Árvores de consulta e heuristica para otimização de consulta.......................................................626
192 Escolha de planos de execução de consulta............................................................................ 634
19.3 Usando seletividades na otimização baseada em custo............................................................. 642
19.4 Funções de custo para a operação SELEÇÃO............................................................................ 645
19.5 Funções de custo para a operação JUNÇÃO............................................................................ 648
19.6 Exemplo para ilustrar a otimização de consulta baseada em custo................................................ 657
19.7 Outras questões relacionadas ã otimização de consulta............................................................. 659
19.8 Exemplo de otimização de consulta em data warehouses............................................................ 661
19.9 Visão geral da otimização da consulta na Oracle...................................................................... 663
19.10 Otimização de consulta semântica...................................................................................... 667
19.11 Resumo......................................................................................................................... 667
Perguntas de revisão................................................................................................................. 668
Exerdcios................................................................................................................................ 669
Bibliografia selecionada..............................................................................................................669

PARTE 9 Processamento de transações, controle de concorrência e


recuperação
Capítulo 20 Introdução aos conceitos e teoria de processamento de
transações......................................................................................................................673
20.1 Introdução ao processamento de transações...........................................................................674
20.2 Conceitos de transação e sistema ........................................................................................ 680
20.3 Propriedades desejáveis das transações................................................................................. 684
20.4 Caracterizando schedules com base na facilidade de recuperação................................................ 685
20.5 Caracterizando schedules com base na facilidade de serialização................................................ 689
20.6 Suporte para transação em SQL........................................................................................... 697
20.7 Resumo........................................................................................................................... 699
Perguntas de revisão................................................................................................................. 700
Exerdcios................................................................................................................................ 701
Bibliografia selecionada.............................................................................................................. 702
Capitulo 21 Técnicas de controle de concorrência................................................................703
21.1 Técnicas de bloqueio em duas fases para controle de concorrénda...............................................704
212 Controle de concorrência baseado na ordenação de rótulo de tempo (timestamp)............................ 713
21.3 Técnicas de controle de concorrência multiversão .................................................................... 716
21.4 Técnicas de validação (otimista) e controle de concorrénda por isolamento de snapshot.................... 718
21.5 Granularidade dos itens de dados e bloqueio de granularidade múltipla........................................ 721
21.6 Usando bloqueios para controle de concorrência em indices....................................................... 724
21.7 Outras questões de controle de conconência........................................................................... 725
21.8 Resumo........................................................................................................................... 727
Perguntas de revisão................................................................................................................. 728
Exerdcios................................................................................................................................ 729
Bibliografia selecionada.............................................................................................................. 729
Capítulo 22 Técnicas de recuperação de banco de dados.................................................731
22.1 Conceitos de recuperação.................................................................................................... 732
222 Recuperação NO-UNDO/REDO baseada em atualização adiada................................................... 738
22.3 Técnicas de recuperação baseadas em atualização imediata....................................................... 741
22.4 Paginação de sombra......................................................................................................... 742
22.5 O algoritmo de recuperação ARIES........................................................................................ 743
22.6 Recuperação em sistemas de múltiplos bancos de dados............................................................ 747
22.7 Backup e recuperação de banco de dados contra falhas catastróficas........................................... 748
22.8 Resumo........................................................................................................................... 748
Sumário XXI

Perguntas de revisão................................................................................................................. 749


Exercícios................................................................................................................................ 750
Bibliografia selecionada..............................................................................................................752

PARTE 10 Bancos de dados distribuídos, sistemas NOSQL e Big Data


Capítulo 23 Bancos de dados distribuídos............................................................................... 757
23.1 Conceitos de banco de dados cfistribuído................................................................................ 758
232 Técnicas de fragmentação, replicação e alocação de dados para projeto de banco de dados
distribuído........................................................................................................................ 762
23.3 Visão geral do controle de concorrência e recuperação em bancos de dados distrbuídos.................. 769
23.4 Visão geral do gerenciamento de transação em bancos de dados distribuídos ............................... 772
23.5 Processamento e otimização de consulta em bancos de dados distribuídos ................................... 774
23.6 Tipos de sistemas de bancos de dados distribuídos .................................................................. 779
23.7 Arquiteturas de banco de dados distribuídas...........................................................................782
23.8 Gerenciamento de catálogo distribuído..................................................................................787
23.9 Resumo........................................................................................................................... 788
Perguntas de revisão................................................................................................................. 789
Exercícios................................................................................................................................ 790
Bibliografia selecionada..............................................................................................................792
Capítulo 24 Bancos de dados NOSQL e sistemas de armazenamento Big Data .. 795
24.1 Introdução aos sistemas NOSQL........................................................................................... 796
242 0 teorema CAP................................................................................................................. 800
24.3 Sistemas NOSQL baseados em documentos e MongoDB............................................................ 801
24.4 Armazenamentos chave-valor em NOSQL .............................................................................. 806
24.5 Sistemas NOSQL baseados em coluna ou em largura de coluna ................................................ 810
24.6 Bancos de dados de grafos NOSQL e Neo4j............................................................................ 814
24.7 Resumo........................................................................................................................... 818
Perguntas de revisão................................................................................................................. 819
Bibliografia selecionada..............................................................................................................820
Capítulo 25 Tecnologias Big Data baseadas em MapReduce e Hadoop.......................821
25.1 0 que é Big Data? ............................................................................................................ 823
252 Introdução a MapReduce e Hadoop...................................................................................... 826
25.3 Hadoop Distributed Rle System (HDFS) ..................................................................................830
25.4 MapReduce: detalhes adicionais .......................................................................................... 835
25.5 Hadoop v2, também chamado YARN .....................................................................................844
25.6 Discussão geral................................................................................................................. 851
25.7 Resumo........................................................................................................................... 859
Perguntas de revisão................................................................................................................. 860
Bibliografia selecionada..............................................................................................................861

PARTE 11 Modelos, sistemas e aplicações de bancos de dados


avançados
Capítulo 26 Modelos de dados avançados: introdução a bancos de dados
ativos, temporais, espaciais, multimídia e dedutivos.......867
26.1 Conceitos de banco de dados ativo e triggers...........................................................................868
262 Conceitos de banco de dados temporal................................................................................... 878
26.3 Conceitos de banco de dados espacial................................................................................... 890
26.4 Conceitos de banco de dados multimídia................................................................................ 897
26.5 Introdução aos bancos de dados dedutivos.............................................................................. 901
26.6 Resumo........................................................................................................................... 913
Perguntas de revisão................................................................................................................. 914
Exercícios...............................................................................................................................915
Bibliografia selecionada..............................................................................................................918
XXII Sistemas de banco de dados

Capítulo 27 Introdução à recuperação de informações e busca na web.................. 921


27.1 Conceitos de recuperação de informações (Ri)......................................................................... 922
272 Modelos de recuperação..................................................................................................... 930
27.3 Tipos de consdtas em sistemas de RI.....................................................................................934
27.4 Pré-processamento de textos............................................................................................... 936
27.5 Indexação invertida............................................................................................................ 939
27.6 Medidas de avaliação de relevância da pesquisa...................................................................... 942
27.7 Pesquisa e análise na web.................................................................................................. 945
27.8 Tendêndas na recuperação de informações.............................................................................. 954
27.9 Resumo........................................................................................................................... 960
Perguntas de revisão................................................................................................................. 960
Bibliografia selecionada..............................................................................................................962
Capitulo 28 Conceitos de mineração de dados.....................................................................965
28.1 Visão geral da tecnologia de mineração de dados...................................................................... 966
28.2 Regras de assodação......................................................................................................... 969
28.3 Classificação.................................................................................................................... 979
28.4 Agrupamento.................................................................................................................... 982
28.5 Abordagens para outros problemas de mineração de dados........................................................ 984
28.6 Aplicações de mineração de dados........................................................................................ 987
28.7 Ferramentas comerdais de mineração de dados....................................................................... 988
28.8 Resumo........................................................................................................................... 990
Perguntas de revisão................................................................................................................. 990
Exerdcios................................................................................................................................ 991
Bibliografia selecionada..............................................................................................................992
Capítulo 29 Visão geral de data warehousing e OLAP........................................................ 995
29.1 Introdução, definições e terminologia.....................................................................................996
292 Características dos data warehouses...................................................................................... 997
29.3 Modelagem de dados para data warehouses...........................................................................998
29.4 Criando um data warehouse............................................................................................... 1003
29.5 Fundonalidade típica de um data warehouse......................................................................... 1006
29.6 Data warehouses versus visões............................................................................................1007
29.7 Dificuldades de implementação de data warehouses............................................................... 1008
29.8 Resumo.......................................................................................................................... 1009
Perguntas de revisão............................................................................................................... 1010
Bibliografia selecionada............................................................................................................ 1011

PARTE 12 Tópicos adicionais de banco de dados: segurança


Capitulo 30 Segurança de banco de dados.......................................................................... 1015
30.1 Introdução a questões de segurança de banco de dados.......................................................... 1016
302 Controle de acesso discricionário baseado na concessão e revogação de privilégios....................... 1022
30.3 Controle de acesso obrigatório e controle de acesso baseado em papel para segurança multinivel... 1027
30.4 Injeção de SQL................................................................................................................. 1035
30.5 Introdução à segurança do banco de dados estatístico............................................................. 1037
30.6 Introdução ao controle de fluxo.......................................................................................... 1039
30.7 Criptografia e infraestruturas de chave pública........................................................................1041
30.8 Questões de privacidade e preservação..................................................................................1044
30.9 Desafios da segurança do banco de dados............................................................................. 1045
30.10 Segurança baseada em rótulo no Oracle.............................................................................. 1046
30.11 Resumo........................................................................................................................ 1049
Perguntas de revisão................................................................................................................1050
Exerdcios...............................................................................................................................1051
Bibliografia selecionada............................................................................................................ 1051
Sumário XXIII

Apêndice A Notações diagramáticas alternativas para modelos ER..........................1053

Apêndice B Parâmetros de discos............................................................................................ 1057

Apêndice C Visão geral da linguagem QBE.......................................................................... 1061


C1 Recuperações básicas em QBE............................................................................................. 1061
C2 Agriçamento, agregação e modificação de banco de dados em QBE............................................ 1065
Bibliografia..........................................................................................................................................1069

índice remissive.................................................................................................................................. 1097


Sobre os autores

Ramez Elmasri é professor e presidente associado do Departamento de Ciência


da Computação e Engenharia da Universidade do Texas em Arlington. Ele tem
mais de 140 publicações de pesquisa indicadas e supervisionou 16 estudantes de
doutorado e mais de 100 estudantes de mestrado. Sua pesquisa cobriu muitas áreas
de gerenciamento de banco de dados e big data, incluindo modelagem conceituai e
integração de dados, linguagens de consulta e técnicas de indexação, bancos de dados
temporais e espaço-temporais, bancos de dados bioinformáticos, coleta de dados
de redes de sensores e mineração/análise de dados temporais e espaço-temporais.
Elmasri trabalhou como consultor em várias empresas, incluindo Digital, Honeywell,
Hewlett-Packard e Action Technologies, além de prestar consultoria sobre patentes
em empresas de advocacia. Foi presidente de programa na International Conference
on Conceptual Modeling (conferência ER) em 1993 e vice-presidente de programa
na IEEE International Conference on Dara Engineering em 1994. Ele participou
do comitê diretor da conferência ER e esteve nos comitês de programa de muitas
conferências. Ele ofereceu vários tutoriais nas conferências VLDB, ICDE e ER.
Também foi coautor do livro “Operating Systems: A Spiral Approach” (McGraw-
-Hill, 2009) com Gil Carrick e David Levine. Elmasri recebeu o Prêmio de Excelência
em Ensino da UTA College of Engineering em 1999. É bacharel em Engenharia pela
Alexandria University e possui mestrado e doutorado em Ciência da Computação
pela Stanford University.
Shamkant B. Navathe é professor e fundador do grupo de pesquisa em banco de
dados da Faculdade de Computação do Georgia Institute of Technology, em Atlanta.
Ele trabalhou com a IBM e a Siemens em suas divisões de pesquisa e foi consultor
de várias empresas, incluindo Digital, Computer Corporation of America, Hewlett
Packard, Equifax e Persistent Systems. Ele foi copresidente geral da Conferência
Internacional VLDB (Very Large Data Base) em 1996 em Bombaim, na índia. Ele
também foi copresidente de programa da Conferência Internacional ACM SIGMOD
XXVI Sistemas de banco de dados

em 1985 e copresidente geral do IFIP WG 2.6 Dara Semantics Workshop em 1995.


Ele trabalhou na f undação VLDB e esteve nos comitês diretores de várias conferên­
cias. Navathe foi editor associado de vários periódicos, incluindo ACM Computing
Surveys e IEEE Transactions on Knowledge and Data Engineering. Também foi
coauror do livro “Conceptual Design: An Entity Relationship Approach” (Addison
Wesley, 1992) com Carlo Batini e Stefano Ceri. Navathe é membro da Association
for Computing Machinery (ACM) e recebeu o prêmio TCDE Computer Science,
Engineering and Education Impact do IEEE cm 2015. Navathe possui doutorado
pela Universidade de Michigan e tem mais de 150 publicações indicadas em perió­
dicos e conferências.

Site de apoio do tixro


Na Sala Virtual deste livro (<sv.pcarson.com.br>), professores e estu­
dantes podem acessar os seguintes materiais adicionais:

Para professores:
Esse material é de uso exclusivo para professores e
■ Apresentações em PowerPoint.
está protegido por senha. Para ter acesso a ele, os
■ Banco de imagens (em inglês). professores que adoram o livro devem entrar em con­

■ Manual de soluções (em inglês). tato com seu representante Pearson ou enviar e-mail
para professoraluno.atendimento@pearson.com.

Para estudantes:
■ Xlanual de laboratório (em inglês).
PARTE 1
Introdução aos
bancos de dados
Bancos de dados e
usuários de banco de dados

ancos de dados e sistemas de banco de dados são um componente essencial

B da vida na sociedade moderna; a maioria de nós encontra diariamente diver­


sas atividades que envolvem alguma interação com um banco de dados. Por
exemplo, quando vamos ao banco para depositar ou retirar fundos, quando fazemos
uma reserva de hotel ou de voo, quando acessamos o catálogo de uma biblioteca
para buscar um livro ou quando compramos algo on-line — como um livro, um
brinquedo ou um computador —, essas atividades provavelmente envolverão alguém
ou algum programa de computador que acessa um banco de dados. Até mesmo a
compra de produtos cm um supermercado em geral atualiza automaticamente o
banco de dados que mantém o controle de estoque dos itens.
Essas interações são exemplos do que podemos chamar de aplicações de banco de
dados tradicionais, em que a maior parte da informação armazenada e acessada é textual
ou numérica. Nos últimos anos, os avanços na tecnologia levaram a novas e interessantes
aplicações dos sistemas de banco de dados. A proliferação de websites de redes sociais,
como Facebook, Twitter e Flickr, dentre muitos outros, exigiu a criação de bancos de
dados imensos, que armazenam dados não tradicionais, como postagens, tuítes, imagens
e clipes de vídeos. Novos tipos de sistemas de banco de dados, geralmente chamados de
sistemas de armazenamento big data, ou sistemas NOSQL, foram criados para gerenciar
dados para aplicações de mídia social. Esses tipos de sistemas também são usados por
empresas como Google, Amazon c Yahoo, para administrar os dados exigidos em seus
mecanismos de busca na web, assim como para oferecer armazenamento em nuvem, em
que os usuários recebem capacidade de armazenamento na web para gerenciar todos os
tipos de dados, incluindo documentos, programas, imagens, vídeos e e-mails. O Capítulo
24 oferecerá uma visão geral desses novos tipos de sistemas de banco de dados.
Agora mencionaremos algumas outras aplicações dos bancos de dados. A grande
disponibilidade de tecnologia de foto e vídeo em telefones celulares e outros dispo­
sitivos tomou possível armazenar imagens, clipes de áudio e streams de vídeo de
4 Sistemas de banco de dados

forma digital. Esses tipos de arquivos estão se tornando um componente importante


dos bancos dc dados dc multimídia. Os sistemas dc informações geográficas (GIS —
Geographic Information Systems) podem armazenar e analisar mapas, dados de clima
e imagens de satélite. Sistemas de data warehousing c processamento analítico on-line
(OLAP— On-Line Analytical Processing) são usados em muitas empresas para extrair
e analisar informações comerciais úteis a partir dc bancos dc dados muito grandes,
para ajudar na tomada dc decisão. A tecnologia dc tempo real e banco dc dados ativo
é usada para controlar processos industriais c dc manufatura. Além disso, técnicas dc
pesquisa de banco de dados estão sendo aplicadas à World Wide Web para melhorar
a busca por informações necessárias feita pelos usuários que utilizam a internet.
No entanto, para entender os fundamentos da tecnologia de banco de dados,
devemos começar das aplicações básicas dc banco de dados tradicional. Na Seção
1.1, começamos definindo um banco de dados, e a seguir explicamos outros ter­
mos básicos. Na Seção 1.2, oferecemos um simples exemplo de banco de dados
UNIVERSIDADE para ilustrar nossa discussão. A Seção 1.3 descreve algumas das
principais características dos sistemas de banco de dados, e as seções 1.4 e 1.5 clas­
sificam os tipos de pessoas cujas funções envolvem o uso e a interação com sistemas
dc banco dc dados. As seções 1.6,1.7 c 1.8 ofcrcccm uma discussão mais profunda
sobre as diversas capacidades oferecidas pelos sistemas dc banco de dados e discutem
algumas aplicações típicas. A Seção 1.9 resume o capítulo.
O leitor interessado em uma introdução rápida aos sistemas de banco dc dados
pode estudar as seções 1.1a 1.5, depois pular ou folhear as seções 1.6 a 1.8 c seguir
para o Capítulo 2.

1.1 Introdução
Os bancos dc dados e sua tecnologia tem um impacto importante sobre o uso
cada vez maior dos computadores. E correto afirmar que os bancos de dados desem­
penham um papel crítico em quase todas as áreas nas quais os computadores são
usados, incluindo comércio tradicional, comércio eletrônico, mídias sociais, enge­
nharia, medicina, genérica, direito, educação e biblioteconomia. O termo banco de
dados (do original database) é tão utilizado que precisamos começar definindo o
que é um banco dc dados. Nossa definição inicial é bastante genérica.
Um banco de dados é uma coleção de dados1 relacionados. Com dados queremos
dizer fatos conhecidos que podem ser registrados e que possuem significado implí­
cito. Por exemplo, considere os nomes, números de telefone e endereços das pessoas
que você conhece. Atualmente, esses dados costumam ser armazenados em telefones
celulares, que possuem seu próprio software de banco dc dados simples. Eles também
podem ser registrados cm uma agenda indexada ou armazenados cm um disco rígido,
usando um computador pessoal e um software como Microsoft Access ou Excel. Essa
coleção de dados relacionados, com um significado implícito, é um banco de dados.
Essa definição de banco de dados é muito genérica; por exemplo, podemos considerar
a coleção de palavras que compõem esta página dc texto como dados relacionados c,
portanto, constitui um banco de dados. Porém, o uso comum do termo banco de dados
normalmente é mais restrito. Um banco de dados tem as seguintes propriedades implícitas:

■ Um banco de dados representa algum aspecto do mundo real, às vezes chamado


de minimundo ou dc universo dc discurso. As mudanças no minimundo são
refletidas no banco dc dados.

1 O livro original utiliza a palavra data no singular c no plural, pois isso c comum na literatura dc
banco de dados; o contexto determinará se ela está no singular ou no plural. (Em inglês padrão, data é
usado para o plural e datum, para o singular.)
Capítulo 1 Bancos de dados e usuários de banco de dados 5

■ Um banco de dados é uma coleção logicamente coerente de dados com algum


significado inerente. Uma variedade aleatória de dados não pode ser corretamente
chamada de banco de dados.
■ Um banco de dados é projetado, montado e preenchido com dados para uma
finalidade específica. Ele tem um grupo intencionado de usuários e algumas
aplicações previamente concebidas nas quais esses usuários estão interessados.

Em outras palavras, um banco de dados tem alguma fonte da qual os dados são
derivados, algum grau de interação com eventos no mundo real e uma audiência
que está ativamente interessada cm seu conteúdo. Os usuários finais de um banco de
dados podem realizar transações comerciais (por exemplo, um cliente compra uma
câmera) ou podem acontecer eventos (por exemplo, uma funcionária tem um filho)
que fazem com que a informação no banco de dados mude. Para que um banco de
dados seja preciso e confiável o tempo todo, ele precisa ser um reflexo verdadeiro
desse minimundo que representa; portanto, as mudanças precisam ser refletidas no
banco de dados o mais rápido possível.
Um banco de dados pode ter qualquer tamanho e complexidade. Por exemplo, a lista
de nomes e endereços referenciados anteriormente pode consistir em apenas algumas
centenas de registros, cada um com uma estrutura simples. Por outro lado, o catálogo com­
putadorizado de uma grande biblioteca pode conter meio milhão de entradas organizadas
sob diferentes categorias — por sobrenome do autor principal, por assunto, por título do
livro—com cada categoria organizada alfabeticamente. Um banco de dados de tamanho
e complexidade ainda maiores podería ser mantido por uma empresa de rede social, como
o Facebook, que tem mais de um bilhão de usuários. O banco de dados precisa manter
informações sobre quais usuários estão relacionados a outros como amigos, as postagens
de cada usuário, quais usuários poderão ver cada postagem e uma quantidade imensa
de outros tipos de informações necessárias para a operação correta de seu website. Para
esses sites, é preciso haver uma grande quantidade de bancos de dados para acompanhar
as informações, em constante mudança, exigidas pelo site de rede social.
Um exemplo de um grande banco de dados comercial é o Amazon.com. Ele
contém dados de mais de 60 milhões de usuários ativos e milhões de livros, CDs,
vídeos, DVDs, jogos, produtos eletrônicos, roupas e outros itens. O banco de dados
ocupa mais de 42 terabytes (um terabyte equivale a IO12 bytes de armazenamento)
e é armazenado em centenas de computadores (denominados servidores). Milhões
de visitantes acessam o Amazon.com diariamente e utilizam o banco de dados para
fazer compras. O banco de dados é continuamente atualizado à medida que novos
livros e outros itens são acrescentados ao estoque e as quantidades em estoque são
atualizadas à medida que as compras são feitas.
Um banco de dados pode ser gerado e mantido manualmente, ou pode ser compu­
tadorizado. Por exemplo, um catálogo de cartão de biblioteca é um banco de dados que
pode ser criado e mantido manualmente. Um banco de dados computadorizado pode
ser criado e mantido por um grupo de programas de aplicação, escritos especifica mente
para essa tarefa, ou por um sistema de gerenciamento de banco de dados. Neste livro,
naturalmente, vamos tratar apenas dos bancos de dados computadorizados.
Um sistema de gerenciamento de banco de dados (SGBD) é um sistema compu­
tadorizado que permite que os usuários criem e mantenham um banco de dados. O
SGBD é um sistema de software de uso geral que facilita o processo de definição,
construção, manipulação e compartilhamento de bancos de dados entre diversos
usuários e aplicações. A definição de um banco de dados envolve especificar os tipos
de dados, as estruturas e restrições dos dados a serem armazenados. A definição
ou informação descritiva do banco de dados também é armazenada pelo SGBD na
forma de um catálogo ou dicionário, chamado de metadados. A construção do banco
de dados é o processo de armazenar os dados em algum meio de armazenamento
6 Sistemas de banco de dados

controlado pelo SGBD. A manipulação de um banco de dados inclui funções como


consulta, para recuperar dados específicos, atualização, para refletir mudanças no
minimundo, e geração de relatórios a partir dos dados. O compartilhamento per­
mite que vários usuários e programas acessem o banco de dados simultaneamente.
Um programa de aplicação acessa o banco de dados enviando consultas ou
solicitações para dados ao SGBD. Uma consulta2 normalmente faz com que alguns
dados sejam recuperados; uma transação pode fazer com que alguns dados sejam
lidos e alguns sejam gravados no banco de dados.
Outras funções importantes fornecidas pelo SGBD incluem proteção do banco
de dados e sua manutenção por um longo período de tempo. A proteção inclui pro­
teção do sistema contra defeitos (ou falhas) de hardware ou software e proteção de
segurança contra acesso não autorizado ou malicioso. Um grande banco de dados
típico pode ter um ciclo de vida de muitos anos, de modo que o SGBD precisa ser
capaz de manter o sistema de banco de dados, permitindo que ele evolua à medida
que os requisitos mudam com o tempo.
Não é absolutamente necessário usar software de SGBD de uso geral para implemen­
tar um banco de dados computadorizado. Poderiamos escrever nosso próprio conjunto
de programas para criar e manter o banco de dados, com efeito criando nosso próprio
software de SGBD de uso especial para uma aplicação específica, como reservas de voos.
De qualquer forma — se usarmos um SGBD de uso geral ou não —, normalmente temos
de implementar uma quantidade considerável de software complexo. De fato, a maioria
dos SGBDs e constituída de sistemas de software muito complexos.
Para completar nossas definições iniciais, chamaremos a união do banco de dados
com o software de SGBD de sistema de banco de dados. A Figura 1.1 ilustra alguns
dos conceitos que discutimos até aqui.

Usuários/programadores

Figura 1.1 Diagrama


simplificado de um
ambiente de sistema de
banco de dados.

- O termo consulta (em inglês query), que originalmente significa uma pergunta ou uma pesquisa, é usado
livremente para todos os tipos de interações com bancos de dados, incluindo a modificação dos dados.
Capítulo 1 Bancos de dados e usuários de banco de dados 7

1.2 Um exemplo
Vamos considerar um exemplo simples ao qual a maioria dos leitores pode estar
acostumada: um bancode dados UNIVERSIDADE,para manter informações referentes
a alunos, disciplinas e notas em um ambiente universitário. A Figura 1.2 mostra
a estrutura do banco de dados e alguns exemplos de registros de dados. O banco
de dados está organizado como cinco arquivos, cada um armazenando registros

ALUNO
Figura 1.2 Exemplo de um
Nome Numero aluno Tipo aluno Curso
banco de dados que armazena
Silva 17 1 CC informações de aluno e
disciplina.
Braga 8 2 cc

DISCIPLINA

Nome disciplina Numero disciplina Créditos Departamento

Introdução à dênda
CC1310 4 CC
da computação

Estruturas de dados CC3320 4 CC

Matemática discreta MAT2410 3 MAT

Banco de dados CC3380 3 CC

TURMA

ldentificador_turma Numero_disciplina Semestre Ano Professor

85 MAT2410 Segundo 07 Kleber

92 CC1310 Segundo 07 Anderson

102 CC3320 Primeiro 08 Carlos

112 MAT2410 Segundo 08 Chang

119 CC1310 Segundo 08 Anderson

135 CC3380 Segundo 08 Santos

REGISTRO.NOTA

Numero aluno Identificador turma Nota

17 112 B

17 119 C

8 85 A

8 92 A

8 102 B

8 135 A

PRE REQUISITO

Numero disciplina Numero pre_requisito

CC3380 CC3320

CC3380 MAT2410

CC3320 CC1310
8 Sistemas de banco de dados

de dados do mesmo tipo.3 O arquivo ALUNO armazena dados sobre cada aluno, o
arquivo DISCIPLINA armazena dados sobre cada disciplina, o arquivo TURMA arma­
zena dados sobre cada turma de uma disciplina, o arquivo REGISTRO_NOTA armazena
as notas que os alunos recebem nas várias turmas que eles concluíram, e o arquivo
PRE_REQUISITO armazena os pré-requisitos de cada disciplina.
Para definir esse banco de dados, precisamos especificar a estrutura dos registros
de cada arquivo, especificando os diferentes tipos de elementos de dados a serem
armazenados em cada registro. Na Figura 1.2, cada registro de ALUNO inclui dados
para representar Nome, Numero_aluno, Tipo_aluno (como novato ou ‘1’, segundo
ano ou ‘2*, e assim por diante) e Curso (como matemática ou ‘MAT e ciência da
computação ou ‘CC’); cada registro de DISCIPLINA inclui dados para representar
Nome_disciplina, Numero_disciplina, Créditos e Departamento (o departamento que
oferece a disciplina), e assim por diante. Também precisamos especificar um tipo
de dado para cada elemento de dado dentro de um registro. Por exemplo, pode­
mos especificar que o Nome de ALUNO é uma sequência de caracteres alfabéticos;
Numero.aluno de ALUNO é um inteiro, e Nota de REGISTRO_NOTA é um único carac-
tere de um conjunto {‘A’, ‘B’, ‘C’, ‘D’, ‘F, ‘I’}. Também podemos usar um esquema
de codificação para representar os valores de um item de dados. Por exemplo, na
Figura 1.2, representamos o Tipo_aluno de um ALUNO como 1 para novato, 2 para
segundo ano, 3 para júnior, 4 para sênior e 5 para aluno formado.
Para construir o banco de dados UNIVERSIDADE, armazenamos dados para repre­
sentar cada aluno, disciplina, turma, registro de nota e pré-requisito como um registro
no arquivo apropriado. Observe que os registros nos diversos arquivos podem estar
relacionados. Por exemplo, o registro para Silva no arquivo ALUNO está relacionado a
dois registros no arquivo REGISTRO_NOTA, que especificam as notas de Silva em duas
turmas. De modo semelhante, cada registro no arquivo PRE_REQUISITO relaciona-se
a dois registros de disciplina: um representando a disciplina e o outro representando
o pré-requisito. A maioria dos bancos de dados de tamanho médio e grande inclui
muitos tipos de registros e possui muitos relacionamentos entre os registros.
A manipulação do banco de dados envolve consulta e atualização. Alguns exem­
plos de consultas são os seguintes:

■ Recuperar o histórico — uma lista de todas as disciplinas c notas — de ‘Silva’.


■ Listar os nomes dos alunos que realizaram a disciplina “Banco de dados” ofere­
cida no segundo semestre de 2008 e suas notas nessa turma.
■ Listar os pré-requisitos da disciplina ‘Banco de dados’.

Alguns exemplos de atualizações incluem os seguintes:


■ Alterar o tipo de aluno de ‘Silva’ para segundo ano.
■ Criar outra turma para a disciplina ‘Banco de dados’ para este semestre.
■ Entrar com uma nota ‘A’ para ‘Silva’ na disciplina ‘Banco de dados’ do último
semestre.
Essas consultas e atualizações informais precisam ser especificadas exatamente
na linguagem de consulta do SGBD antes que possam ser processadas.
Nesse estágio, é útil descrever o banco de dados como uma parte de uma tarefa
maior conhecida como sistema de informação dentro de qualquer organização. O
departamento de Tecnologia da Informação (TI) dentro de uma empresa projeta e
mantém um sistema de informações que consiste de vários computadores, sistemas
de armazenamento, software de aplicação e bancos de dados. O projeto de uma

3 Usamos o termo arquiix) informalmente aqui. Em um nível conceituai, um arquiio é uma coleção de
registros que podem ou não estar ordenados.
Capítulo 1 Bancos de dados e usuários de banco de dados 9

nova aplicação para um banco de dados existente ou o projeto de um novo banco


de dados começa com uma fase chamada especificação e análise de requisitos.
Esses requisitos são documentados com detalhes e transformados em um projeto
conceituai, que pode ser representado e manipulado com o uso de algumas ferra­
mentas computadorizadas, de modo que possa ser facilmente mantido, modificado
e transformado em uma implementação de banco de dados. (Apresentaremos um
modelo chamado modelo Entidade-Relacionamento, no Capítulo 3, que é usado
para essa finalidade.) O projeto é então traduzido para um projeto lógico, que
pode ser expresso em um modelo de dados implementado em um SGBD comercial.
(Diversos tipos de SGBDs serão discutidos no decorrer do texto, com ênfase nos
SGBDs relacionais, nos capítulos 5 a 9.)
O estágio final é o projeto físico, durante o qual outras especificações são for­
necidas para armazenar e acessar o banco de dados. O projeto de banco de dados é
implementado, preenchido com dados reais e mantido continuamente para refletir
o estado do minimundo.

1.3 Características da abordagem de banco de dados


Diversas características distinguem a abordagem de banco de dados da técnica
muito mais antiga de escrever programas customizados para acessar os dados
armazenados em arquivos. No processamento de arquivo tradicional, cada usuá­
rio define e implementa os arquivos necessários para uma aplicação de software
específica como parte da programação da aplicação. Por exemplo, um usuário, o
departamento de registro acadêmico, pode manter arquivos sobre os alunos e suas
noras. Os programas para imprimir o histórico do aluno e entrar com novas noras
são implementados como parte da aplicação. Um segundo usuário, o departamento
de finanças, pode registrar as mensalidades dos alunos e seus pagamentos. Embora
os dois usuários estejam interessados cm dados sobre os alunos, cada usuário
mantém arquivos separados — e programas para manipular esses arquivos —,
pois cada um requer algum dado não disponível nos arquivos do outro usuário.
Essa redundância na definição e no armazenamento de dados resulta em espaço
de armazenamento desperdiçado e em esforços redundantes para manter os dados
comuns atualizados.
Na abordagem de banco de dados, um único repositório mantém dados que são
definidos uma vez e depois acessados por vários usuários, repetidamente, por meio
de consultas, transações e programas de aplicação. As principais características da
abordagem de banco de dados versus a abordagem de processamento de arquivos
sâo as seguintes:
■ Natureza de autodescrição de um sistema de banco de dados.
■ Isolamento entre programas e dados, e abstração de dados.
■ Suporte de múltiplas visões dos dados.
■ Compartilhamento de dados e processamento de transação multiusuário.

Descrevemos cada uma dessas características em uma seção separada. Discutiremos


características adicionais dos sistemas de banco de dados nas seções 1.6 a 1.8.

1.3.1 Natureza de autodescrição de um sistema de banco de dados


Uma característica fundamental da abordagem de banco de dados é que o sis­
tema contém não apenas o próprio banco de dados, mas também uma definição ou
descrição completa de sua estrutura e suas restrições. Essa definição é armazenada
no catálogo do SGBD, que contém informações como a estrutura de cada arquivo,
10 Sistemas de banco de dados

o ripo e o formato de armazenamento de cada item de dados e diversas restrições


sobre os dados. A informação armazenada no catálogo é chamada de metadados, e
descreve a estrutura do banco de dados principal (Figura 1.1). É importante obser­
var que alguns tipos mais novos de sistemas de banco de dados, conhecidos como
sistemas NOSQL, não exigem metadados. Em vez disso, os dados são armazenados
como dados autodescritivos, que incluem os nomes dos itens de dados e os valores
de dados, juntos em uma única estrutura (veja no Capítulo 24).
O catálogo é usado pelo software de SGBD c também pelos usuários do banco de
dados que precisam de informações sobre a estrutura do banco de dados. Um pacote
de software de SGBD de uso geral não é escrito para uma aplicação de banco de dados
específica. Portanto, ele precisa consultar o catálogo para conhecer a estrutura dos
arquivos em um banco de dados específico, como o tipo e o formato dos dados que
acessará. O software de SGBD precisa trabalhar de forma satisfatória com qualquer
quantidade de aplicações de banco de dados — por exemplo, um banco de dados de
universidade, de uma instituição bancária ou corporativo —, desde que a definição
do banco de dados esteja armazenada no catálogo.
No processamento de arquivos tradicional, a definição de dados normalmente
faz parte dos próprios programas dc aplicação. Logo, esses programas são restritos
a trabalhar com apenas um banco de dados específico, cuja estrutura é declarada
nos programas de aplicação. Por exemplo, um programa de aplicação escrito em
C++ pode ter declarações de estrutura ou classe. Enquanto o software de processa­
mento de arquivos pode acessar apenas bancos dc dados específicos, o software de
SGBD pode acessar diversos bancos dc dados extraindo c usando as definições do
catálogo de banco de dados.
Para o exemplo mostrado na Figura 1.2, o catálogo do SGBD armazenará as
definições de rodos os arquivos mostrados. A Figura 1.3 mostra alguns exemplos de
entradas em um catálogo de banco de dados. Sempre que é feira uma solicitação para
acessar, digamos, o Nome de um registro dc ALUNO, o software de SGBD acessa o
catálogo para determinar a estrutura do arquivo ALUNO c a posição e o tamanho do
item de dados Nome dentro do registro de ALUNO. Ao contrário, em uma aplicação
típica de processamento de arquivo, a estrutura de arquivo e, no caso extremo, o
local exato do Nome dentro dc um registro de ALUNO já são codificados dentro de
cada programa que acessa esse item de dados.

1.3.2 Isolamento entre programas e dados, e abstração de dados


No processamento de arquivos tradicional, a estrutura dos arquivos de dados
está embutida nos programas de aplicação, de modo que quaisquer mudanças na
estrutura de um arquivo podem exigir mudar todos os programas que acessam esse
arquivo. Ao contrário, os programas dc acesso ao SGBD não exigem essas mudanças
na maioria dos casos. A estrutura dos arquivos dc dados é armazenada no catálogo
do SGBD separadamente dos programas de acesso. Chamamos essa propriedade de
independência de dados do programa.
Por exemplo, um programa de acesso a arquivo pode ser escrito de modo que
possa acessar apenas registros de ALUNO com a estrutura mostrada na Figura 1.4.
Se quisermos acrescentar outro dado a cada registro dc ALUNO, digamos Data.nas-
cimento, esse programa não funcionará mais c precisará ser alterado. Ao contrário,
em um ambiente de SGBD, só precisamos mudar a descrição dos registros de ALUNO
no catálogo (Figura 1.3) para refletir a inclusão do novo item de dados Data_nas-
cimento; nenhum programa é alterado. Da próxima vez que o programa de SGBD
consultar o catálogo, a nova estrutura dos registros dc ALUNO será acessada c usada.
Capítulo 1 Bancos de dados e usuários de banco de dados 11

RELAÇÕES
Figura 1.3 Exemplo de um
Nome_relacao Numero_colunas
catálogo para o banco de
ALUNO 4 dados na Figura 1.2.

DISCIPLINA 4

TURMA 5

REGISTRO-NOTA 3

PRE_REQUISITO 2

COLUNAS

Nomecoluna Tipo de dado Pertence_a_relacao

Nome Caractere (30) ALUNO

Numero.aluno Caractere (4) ALUNO

Tipo_aluno Inteiro (1) ALUNO

Curso Ti po_ curso ALUNO

Nome disdplina Caractere (10) DISCIPLINA

Numero-disciplina XXXXNNNN DISCIPLINA

Numero pre requisito XXXXNNNN PRE_REQUISITO

Nota: Tipo_curso é definido como um tipo enumerado com todas as matérias conheddas.
XXXXNNNN é usado para definir um tipo com quatro caracteres alfanuméricos seguidos por quatro dígitos.

Em alguns tipos de sistemas de banco de dados, como sistemas orientados a


objeto e objeto-relacional (ver Capítulo 12), os usuários podem definir operações
sobre dados como parte das definições do banco de dados. Uma operação (tam­
bém chamada de função ou método) é especificada em duas partes. A interface (ou
assinatura) de uma operação inclui o nome da operação e os tipos de dados de seus
argumentos (ou parâmetros). A implementação (ou método) da operação é especi­
ficada separadamente e pode ser alterada sem afetar a interface. Os programas de
aplicação do usuário podem operar sobre os dados invocando essas operações por
meio de seus nomes e argumentos, independentemente de como as operações são
implementadas. Isso pode ser chamado de independência de operação do programa.
A característica que permite a independência de dados do programa e a
independência da operação do programa é chamada de abstração de dados. Um
SGBD oferece aos usuários uma representação conceituai de dados que não inclui
muitos dos detalhes de como os dados são armazenados ou como as operações
são implementadas. Informa Imente, um modelo de dados é um tipo de abstração
de dados usado para oferecer essa representação conceituai. O modelo de dados
usa conceitos lógicos, como objetos, suas propriedades e seus inter-relaciona-
mentos, que os usuários podem entender mais rapidamente que os conceitos de
armazenamento no computador. Logo, o modelo de dados oculta os detalhes
de armazenamento e implementação que não são do interesse da maioria dos
usuários de banco de dados.
Por exemplo, examinando as figuras 1.2 e 1.3, a implementação interna do
arquivo ALUNO pode ser definida por seu tamanho de registro — o número de
12 Sistemas de banco de dados

caracteres (bytes) em cada registro — e cada item de dados pode ser especificado
pelo byte inicial dentro de um registro e seu tamanho em bytes. O registro de
ALUNO, assim, seria representado como mostra a Figura 1.4. Mas um usuário de
banco de dados típico nâo está preocupado com o local de cada item de dados
dentro de um registro ou seu tamanho; em vez disso, o usuário se preocupa que,
quando for feita uma referência ao Nome do ALUNO, o valor correto seja retor­
nado. Uma representação conceituai dos registros de ALUNO aparece na Figura 1.2.
Muitos outros detalhes da organização do armazenamento do arquivo — como
os caminhos de acesso especificados em um arquivo — podem ser ocultados dos
usuários do banco de dados pelo SGBD; discutiremos detalhes de armazenamento
nos capítulos 16 e 17.
Na abordagem de banco de dados, a estrutura e organização detalhadas de cada
arquivo são armazenadas no catálogo. Os usuários do banco de dados e os programas
de aplicação se referem à representação conceituai dos arquivos, e o SGBD extrai os
detalhes do armazenamento do arquivo do catálogo quando estes são necessários
pelos módulos de acesso a arquivo do SGBD. Muitos modelos de dados podem ser
usados para oferecer essa abstração de dados aos usuários do banco de dados. Uma
parte significativa deste livro é dedicada à apresentação dos vários modelos de dados
e os conceitos que eles utilizam para abstrair a representação dos dados.
Nos bancos de dados orientado a objeto e objeto-relacional, o processo de abs­
tração inclui não apenas a estrutura dos dados, mas também as operações sobre os
dados. Essas operações oferecem uma abstração das atividades do minimundo nor-
mahnente entendidas pelos usuários. Por exemplo, uma operação CALCULA_MEDIA
pode ser aplicada ao objeto ALUNO para calcular a média das notas. Essas operações
podem ser chamadas pelas consultas do usuário ou por programas de aplicação sem
ter de saber os detalhes de como as operações são implementadas.

Figura 1.4 Formato de


Nome do item de dados Posição inicial no registro Tamanho em caracteres (bytes)
armazenamento interno para
um registro de ALUNO, com Nome 1 30
base no catálogo do banco de
Numero_aluno 31 4
dados da Figura 1.3.
Tipo_aluno 35 1

Curso 36 4

1.3.3 Suporte para múltiplas visões dos dados


Um banco de dados normalmente tem muitos usuários, cada um podendo exigir
uma perspectiva ou visão diferente. Uma visão (ou view) pode ser um subconjunto
do banco de dados ou conter dados virtuais derivados dos arquivos do banco de
dados, mas que não estão armazenados explicitamenre. Alguns usuários não preci­
sam saber se os dados a que se referem estão armazenados ou são derivados. Um
SGBD multiusuário, cujos usuários têm uma série de aplicações distintas, precisa
oferecer facilidades para definir múltiplas visões. Por exemplo, um usuário do
banco de dados da Figura 1.2 pode estar interessado apenas em acessar e imprimir
o histórico de cada aluno; a visão para esse usuário aparece na Figura 1.5(a). Um
segundo usuário, que está interessado apenas em verificar se os alunos possuem
todos os pré-requisitos de cada disciplina para a qual se inscreveram, pode exigir a
visão mostrada na Figura 1.5(b).
Capítulo 1 Bancos de dados e usuários de banco de dados 13

HISTORICO
a)

Historico.aluno

Nome_aluno
Numerodisciplina Nota Semestre Ano ldentificador_turma

CC1310 C Segundo 08 119


Silva
MAT2410 B Segundo 08 112

MAT2410 A Segundo 07 85

CC1310 A Segundo 07 92
Braga
CC3320 B Primeiro 08 102

CC3380 A Segundo 08 135

Figura 1.5 Duas visões


PRE_REQUISITO_DISCIPLINA derivadas do banco de

b) dados da Figura 1.2. (a) A


visão HISTORICO. (b) A visão
Nome.disdplina Numero_disciplina Pre_requisitos
PRE_REQUISITO_DISCIPUNA.
CC3320
Banco de dados CC3380
MAT2410

Estrutura de dados CC3320 CC1310

1.3.4 Compartilhamento de dados e processamento de transação


multiusuário
Um SGBD multiusuário, como o nome sugere, precisa permitir que múltiplos
usuários acessem o banco de dados ao mesmo tempo. Isso é essencial para que dados
de várias aplicações sejam integrados e mantidos em um único banco de dados. O
SGBD precisa incluir software de controle de concorrência, a fim de garantir que
vários usuários tentando atualizar os mesmos dados façam isso de maneira contro­
lada, de modo que o resultado das atualizações seja correto. Por exemplo, quando
vários agentes de reserva tentam atribuir um assento a um voo de uma companhia
aérea, o SGBD precisa garantir que cada assento só possa ser acessado por um
agente de cada vez, para que seja reservado para um único passageiro. Esses tipos
de aplicações geralmente sào chamados de aplicações de processamento de transa­
ção on-line (OLTP — On-Line Transaction Processing). Um papel fundamental do
software dc SGBD multiusuário c garantir que as transações concorrentes operem
dc modo correto e eficiente.
O conceito de uma transação tem se tornado fundamental para muitas aplicações
dc banco de dados. Uma transação é um programa em execução ou processo que inclui
um ou mais acessos ao banco dc dados, como a leitura ou a atualização dos registros.
Cada transação deverá executar um acesso ao banco dc dados, sendo logicamente
correta para ser executada em sua totalidade, sem interferência de outras transações.
O SGBD precisa impor diversas propriedades da transação. A propriedade de isola­
mento garante que cada transação pareça executar isoladamente das outras transações,
embora centenas de transações possam estar sendo executadas simultaneamente. A
propriedade de atomicidadc garante que todas as operações cm uma transação sejam
executadas ou nenhuma seja. Discutimos sobre transações com detalhes na Parte 9.
14 Sistemas de banco de dados

As características anteriores sào importantes na distinção entre um SGBD e o


software tradicional de processamento de arquivos. Na Seção 1.6, discutiremos recur­
sos adicionais que caracterizam um SGBD. Primeiro, porém, categorizamos os dife­
rentes tipos de pessoas que trabalham em um ambiente de sistema de banco de dados.

1.4 Atores em cena


Para um pequeno banco de dados pessoal, como a lista de endereços discutida na
Seção 1.1, uma pessoa normalmente define, constrói e manipula o banco de dados,
e não existe compartilhamento. Porém, em grandes organizações, muitas pessoas
estão envolvidas no projeto, uso e manutenção de um grande banco de dados, com
centenas ou milhares de usuários. Nesta seção, identificamos as pessoas cujas fun­
ções envolvem o uso cotidiano de um grande banco de dados; nós os chamamos de
atores em cena. Na Seção 1.5, consideraremos as pessoas que podem ser chamadas
de trabalhadores dos bastidores — aqueles que trabalham para manter o ambiente
do sistema de banco de dados, mas que não estão ativamente interessados em seu
conteúdo como parte de seu trabalho cotidiano.

1.4.1 Administradores de banco de dados


Em qualquer organização na qual muitas pessoas utilizam os mesmos recursos,
há uma necessidade de um administrador principal supervisionar e gerenciar esses
recursos. Em um ambiente de banco de dados, o recurso principal é o próprio banco
de dados, e o recurso secundário é o SGBD e o software relacionado. A adminis­
tração desses recursos é de responsabilidade do administrador de banco de dados
(DBA — database administrator). O DBA é responsável por autorizar o acesso ao
banco de dados, coordenar e monitorar seu uso e adquirir recursos de software e
hardware conforme a necessidade. Também é responsável por problemas como falhas
na segurança e demora no tempo de resposta do sistema. Em grandes organizações,
ele é auxiliado por uma equipe que executa essas funções.

1.4.2 Projetistas de banco de dados


Os projetistas de banco de dados são responsáveis por identificar os dados a serem
armazenados e escolher estruturas apropriadas para representar e armazenar esses
dados. Essas tarefas são realizadas principalmente antes que o banco de dados seja
realmente implementado e preenchido. É responsabilidade dos projetistas se comuni­
carem com todos os usuários do banco de dados em potencial a fim de entender seus
requisitos e criar um projeto que os atenda. Em muitos casos, os projetistas estão na
equipe do DBA e podem receber outras responsabilidades após o projeto do banco
de dados estar concluído. Os projetistas normalmente interagem com cada grupo
de usuários em potencial e desenvolvem visões do banco de dados que cumprem os
requisitos de dados e processamento desses grupos. Cada visão é então analisada
e integrada às visões de outros grupos de usuários. O projeto de banco de dados
final precisa ser capaz de dar suporte aos requisitos de todos os grupos de usuários.

1.4.3 Usuários finais


Os usuários finais são pessoas cujas funções exigem acesso ao banco de dados
para consulta, atualização e geração de relatórios; o banco de dados existe princi­
palmente para seu uso. Existem várias categorias de usuários finais:
Capítulo 1 Bancos de dados e usuários de banco de dados 15

■ Usuários finais casuais ocasionalmente acessam o banco de dados, mas podem


precisar de diferentes informações a cada vez. Eles utilizam uma interface de
consulta sofisticada para especificar suas solicitações e normalmente são gerentes
de nível intermediário ou alto, ou outros usuários ocasionais.
■ Usuários finais iniciantes ou paramctricos compõem uma grande parte dos usuá­
rios finais. Sua função principal gira cm torno de consultar c atualizar o banco
de dados constantemente, usando tipos padrão de consultas e atualizações —
chamadas transações programadas — que foram cuidadosamcntc programadas
e restadas. Muitas dessas tarefas estão disponíveis hoje em dia em aplicações
móveis usadas com dispositivos móveis. As tarefas que esses usuários realizam
são variadas. Alguns exemplos são:
■ Clientes e caixas de banco verificam saldos de conta e realizam saques e depósitos.
■ Agentes de reserva ou clientes de companhias aéreas, hotéis c locadoras de auto­
móveis verificam a disponibilidade de determinada solicitação c fazem reservas.
■ Funcionários nas estações de recebimento de transportadoras inserem identi­
ficações de pacotes por códigos de barra e informações descritivas por meio
de botões para atualizar um banco de dados central de pacotes recebidos e
em trânsito.
■ Usuários de redes sociais postam e leem itens nos websites das redes sociais.
■ Usuários finais sofisticados incluem engenheiros, cientistas, analistas de negócios e
outros que estão profundamente familiarizados com as facilidades do SGBD a fim de
implementar suas próprias aplicações, que atenderão aos seus requisitos complexos.
■ Usuários isolados mantêm bancos de dados pessoais usando pacotes de progra­
mas prontos, que oferecem interfaces de fácil utilização, com base em menus ou
cm gráficos. Um exemplo é o usuário de um pacote dc software financeiro, que
armazena uma série de dados financeiros pessoais.
Um SGBD típico oferece diversas facilidades para acessar um banco de dados.
Usuários finais comuns precisam aprender muito pouco sobre as facilidades ofe­
recidas pelo SGBD; eles simplesmente precisam entender as interfaces do usuário
das aplicações móveis ou das transações-padrão projetadas e implementadas para
seu uso. Os usuários casuais aprendem apenas algumas facilidades que podem usar
repetidamente. Usuários sofisticados tentam aprender a maioria das facilidades do
SGBD a fim dc satisfazer seus requisitos complexos. Usuários isolados normalmcntc
se tomam especialistas no uso dc um pacote dc software específico.

1.4.4 Analistas de sistemas e programadores de aplicações


(engenheiros de software)
Analistas dc sistemas determinam os requisitos dos usuários finais, especialmente
os usuários comuns e paramétricos, e desenvolvem especificações para transa­
ções programadas que cumpram esses requisitos. Os programadores de aplicações
implementam essas especificações como programas; depois eles testam, depuram,
documentam e mantêm essas transações programadas. Esses analistas e programa­
dores — também conhecidos como desenvolvedores dc software ou engenheiros dc
software — deverão estar familiarizados com toda a gama dc capacidades fornecidas
pelo SGBD para realizarem suas tarefas.

1.5 Trabalhadores dos bastidores


Além daqueles que projetam, usam c administram um banco de dados, outros
estão associados ao projeto, desenvolvimento c operação do software do SGBD c do
16 Sistemas de banco de dados

ambiente de sistema. Essas pessoas normalmente nào estão interessadas no conteúdo


do banco de dados em si. Vamos chamá-las de trabalhadores dos bastidores, e neles
se incluem as seguintes categorias:
■ Projetistas e implementadores de sistema de SGBD projetam e implementam os
módulos e interfaces do SGBD como um pacote de software. Um SGBD é um
sistema de software muito complexo, que consiste em muitos componentes, ou
módulos, incluindo módulos para implementação do catálogo, processamento da
linguagem de consulta, processamento de interface, acesso e buffering de dados,
controle de concorrência e tratamento de recuperação e segurança de dados. O
SGBD precisa realizar a interface com outro software de sistemas, como o sistema
operacional, e compiladores para diversas linguagens de programação.
■ Desenvolvedores de ferramentas projetam e implementam ferramentas — os
pacotes de software que facilitam a modelagem e o projeto do banco de dados, o
projeto do sistema de banco de dados e a melhoria do desempenho. Ferramentas
são pacotes opcionais que, em geral, são adquiridos separadamente. Elas incluem
pacotes para projeto de banco de dados, monitoramento de desempenho, lingua­
gem natural ou interfaces gráficas, protótipo, simulação e geração de dados de
teste. Em muitos casos, fornecedores de software independentes desenvolvem e
comercializam essas ferramentas.
■ Operadores e pessoal de manutenção (pessoal de administração de sistemas)
são responsáveis pela execução e manutenção real do ambiente de hardware e
software para o sistema de banco dc dados.

Embora essas categorias de trabalhadores dos bastidores sejam instrumento


para disponibilizar o sistema aos usuários finais, eles normalmente não utilizam o
conteúdo do banco de dados para fins pessoais.

1.6 Vantagens de usar a abordagem de SGBD


Nesta seção, discutimos algumas das vantagens e as capacidades que um bom
SGBD deve possuir. Essas capacidades estão além das quatro principais caracterís­
ticas discutidas na Seção 1.3. O DBA precisa utilizá-las para realizar uma série de
objetivos relacionados ao projeto, à administração e ao uso de um grande banco
de dados multiusuário.

1.6.1 Controlando a redundância


No desenvolvimento de software tradicional, utilizando processamento de arqui­
vos, cada grupo de usuários mantém seus próprios arquivos para tratar de suas
aplicações dc processamento dc dados. Por exemplo, considere o exemplo do banco
de dados UNIVERSIDADE da Seção 1.2; aqui, dois grupos de usuários podem ser o
pessoal do registro acadêmico e o departamento financeiro. Na técnica tradicional,
cada grupo mantém, independentemente, os arquivos sobre os alunos. O depar­
tamento financeiro mantém dados sobre o registro c as informações dc cobrança
relacionadas, enquanto o departamento dc registro acadêmico acompanha os cursos
e as notas dos alunos. Outros grupos podem duplicar ainda mais alguns ou todos
os dados em seus próprios arquivos.
Essa redundância em armazenar os mesmos dados várias vezes ocasiona vários
problemas. Primeiro, é preciso realizar uma única atualização lógica — como a
entrada de dados sobre um novo aluno — várias vezes: uma para cada arquivo em
que os dados do aluno são registrados. Isso ocasiona uma duplicação de esforço.
Another random document with
no related content on Scribd:
AMERICAN POLITICS.
BOOK II.
POLITICAL PLATFORMS.

THE FIRST POLITICAL PLATFORM ENUNCIATED IN THE


UNITED STATES TO COMMAND GENERAL ATTENTION WAS
DRAWN BY MR. MADISON IN 1798, WHOSE OBJECT WAS TO
PRONOUNCE THE ALIEN AND SEDITION LAWS
UNCONSTITUTIONAL, AND TO DEFINE THE RIGHTS OF
THE STATES.
Virginia Resolutions of 1798.

Pronouncing the Alien and Sedition Laws to be unconstitutional,


and Defining the rights of the States.—Drawn by Mr. Madison.

In the Virginia House of Delegates,


Friday, Dec. 21, 1798.

Resolved, That the General Assembly of Virginia doth


unequivocally express a firm resolution to maintain and defend the
Constitution of the United States, and the constitution of this state,
against every aggression either foreign or domestic; and that they
will support the government of the United States in all measures
warranted by the former.
That this Assembly most solemnly declares a warm attachment to
the Union of the states, to maintain which it pledges its powers; and,
that for this end, it is their duty to watch over and oppose every
infraction of those principles which constitute the only basis of that
Union, because a faithful observance of them can alone secure its
existence and the public happiness.
That this Assembly doth explicitly and peremptorily declare, that it
views the powers of the federal government, as resulting from the
compact to which the states are parties, as limited by the plain sense
and intention of the instrument constituting that compact, as no
farther valid than they are authorized by the grants enumerated in
that compact; and that in case of a deliberate, palpable, and
dangerous exercise of other powers, not granted by the said compact,
the states, who are parties thereto, have the right, and are in duty
bound, to interpose, for arresting the progress of the evil, and for
maintaining within their respective limits the authorities, rights, and
liberties appertaining to them.
That the General Assembly doth also express its deep regret, that a
spirit has, in sundry instances, been manifested by the federal
government, to enlarge its powers by forced constructions of the
constitutional charter which defines them; and, that indications have
appeared of a design to expound certain general phrases (which,
having been copied from the very limited grant of powers in the
former Articles of Confederation, were the less liable to be
misconstrued) so as to destroy the meaning and effect of the
particular enumeration which necessarily explains, and limits the
general phrases, and so as to consolidate the states by degrees into
one sovereignty, the obvious tendency and inevitable result of which
would be, to transform the present republican system of the United
States into an absolute, or at best, a mixed monarchy.
That the General Assembly doth particularly protest against the
palpable and alarming infractions of the Constitution, in the two late
cases of the “Alien and Sedition Acts,” passed at the last session of
Congress; the first of which exercises a power nowhere delegated to
the federal government, and which, by uniting legislative and judicial
powers to those of executive, subverts the general principles of free
government, as well as the particular organization and positive
provisions of the Federal Constitution; and the other of which acts
exercises, in like manner, a power not delegated by the Constitution,
out on the contrary, expressly and positively forbidden by one of the
amendments thereto; a power which, more than any other, ought to
produce universal alarm, because it is levelled against the right of
freely examining public characters and measures, and of free
communication among the people thereon, which has ever been
justly deemed the only effectual guardian of every other right.
That this state having by its Convention, which ratified the Federal
Constitution, expressly declared, that among other essential rights,
“the liberty of conscience and the press cannot be cancelled,
abridged, restrained, or modified by any authority of the United
States,” and from its extreme anxiety to guard these rights from
every possible attack of sophistry and ambition, having with other
states recommended an amendment for that purpose, which
amendment was, in due time, annexed to the Constitution, it would
mark a reproachful inconsistency, and criminal degeneracy, if an
indifference were now shown to the most palpable violation of one of
the rights, thus declared and secured; and to the establishment of a
precedent which may be fatal to the other.
That the good people of this commonwealth, having ever felt, and
continuing to feel the most sincere affection for their brethren of the
other states; the truest anxiety for establishing and perpetuating the
Union of all: and the most scrupulous fidelity to that Constitution,
which is the pledge of mutual friendship, and the instrument of
mutual happiness; the General Assembly doth solemnly appeal to the
like dispositions in the other States, in confidence that they will
concur with this commonwealth, in declaring, as it does hereby
declare, that the acts aforesaid are unconstitutional; and, that the
necessary and proper measures will be taken by each for co-
operating with this state, in maintaining unimpaired the authorities,
rights, and liberties, reserved to the states, respectively, or to the
people.
That the governor be desired to transmit a copy of the foregoing
resolutions to the executive authority of each of the other states, with
a request that the same may be communicated to the legislature
thereof; and that a copy be furnished to each of the Senators and
Representatives representing this state in the Congress of the United
States.

Attest, John Stewart.

1798, December 24th. Agreed to by the Senate.

H. Brooke.

A true copy from the original deposited in the office of the General
Assembly.

John Stewart, Keeper of Rolls.

Extracts from the Address to the People, which accompanied the


foregoing resolutions:—
Fellow-Citizens: Unwilling to shrink from our representative responsibility,
conscious of the purity of our motives, but acknowledging your right to supervise
our conduct, we invite your serious attention to the emergency which dictated the
subjoined resolutions. Whilst we disdain to alarm you by ill-founded jealousies, we
recommend an investigation, guided by the coolness of wisdom, and a decision
bottomed on firmness but tempered with moderation.
It would be perfidious in those intrusted with the guardianship of the state
sovereignty, and acting under the solemn obligation of the following oath: “I do
swear, that I will support the Constitution of the United States,” not to warn you of
encroachments, which, though clothed with the pretext of necessity, or disguised
by arguments of expediency, may yet establish precedents, which may ultimately
devote a generous and unsuspicious people to all the consequences of usurped
power.
Encroachments, springing from a government whose organization cannot be
maintained without the co-operation of the states, furnish the strongest
incitements upon the state legislatures to watchfulness, and impose upon them the
strongest obligation to preserve unimpaired the line of partition.
The acquiescence of the states under infractions of the federal compact, would
either beget a speedy consolidation, by precipitating the state governments into
impotency and contempt; or prepare the way for a revolution, by a repetition of
these infractions, until the people are aroused to appear in the majesty of their
strength. It is to avoid these calamities, that we exhibit to the people the
momentous question, whether the Constitution of the United States shall yield to a
construction which defies every restraint and overwhelms the best hopes of
republicanism.
Exhortations to disregard domestic usurpations until foreign danger shall have
passed, is an artifice which may be for ever used; because the possessors of power,
who are the advocates for its extension, can ever create national embarrassments,
to be successively employed to soothe the people into sleep, whilst that power is
swelling silently, secretly, and fatally. Of the same character are insinuations of a
foreign influence, which seize upon a laudable enthusiasm against danger from
abroad, and distort it by an unnatural application, so as to blind your eyes against
danger at home.
The sedition act presents a scene which was never expected by the early friends
of the Constitution. It was then admitted that the state sovereignties were only
diminished by powers specifically enumerated, or necessary to carry the specified
powers into effect. Now federal authority is deduced from implication, and from
the existence of state law it is inferred that Congress possesses a similar power of
legislation; whence Congress will be endowed with a power of legislation in all
cases whatsoever, and the states will be stript of every right reserved by the
concurrent claims of a paramount legislature.
The sedition act is the offspring of these tremendous pretensions, which inflict a
death wound on the sovereignty of these states.
For the honor of American understanding, we will not believe that the people
have been allured into the adoption of the Constitution by an affectation of
defining powers, whilst the preamble would admit a construction which would
erect the will of Congress into a power paramount in all cases, and therefore
limited in none. On the contrary, it is evident that the objects for which the
Constitution was formed were deemed attainable only by a particular enumeration
and specification of each power granted to the federal government; reserving all
others to the people, or to the states. And yet it is in vain we search for any
specified power, embracing the right of legislation against the freedom of the press.
Had the states been despoiled of their sovereignty by the generality of the
preamble, and had the federal government been endowed with whatever they
should judge to be instrumental towards union, justice, tranquillity, common
defence, general welfare, and the preservation of liberty nothing could have been
more frivolous than an enumeration of powers.
All the preceding arguments rising from a deficiency of constitutional power in
Congress, apply to the alien act, and this act is liable to other objections peculiar to
itself. If a suspicion that aliens are dangerous constitute the justification of that
power exercised over them by Congress, then a similar suspicion will justify the
exercise of a similar power over natives. Because there is nothing in the
Constitution distinguishing between the power of a state to permit the residence of
natives and aliens. It is therefore a right originally possessed, and never
surrendered by the respective states, and which is rendered dear and valuable to
Virginia, because it is assailed through the bosom of the Constitution, and because
her peculiar situation renders the easy admission of artisans and laborers an
interest of vast importance.
But this bill contains other features, still more alarming and dangerous. It
dispenses with the trial by jury; it violates the judicial system; it confounds
legislative, executive, and judicial powers; it punishes without trial; and it bestows
upon the President despotic power over a numerous class of men. Are such
measures consistent with our constitutional principles? And will an accumulation
of power so extensive in the hands of the executive, over aliens, secure to natives
the blessings of republican liberty?
If measures can mould governments, and if an uncontrolled power of
construction is surrendered to those who administer them, their progress may be
easily foreseen and their end easily foretold. A lover of monarchy, who opens the
treasures of corruption, by distributing emolument among devoted partisans, may
at the same time be approaching his object, and deluding the people with
professions of republicanism. He may confound monarchy and republicanism, by
the art of definition. He may varnish over the dexterity which ambition never fails
to display, with the pliancy of language, the seduction of expediency, or the
prejudices of the times. And he may come at length to avow that so extensive a
territory as that of the United States can only be governed by the energies of
monarchy; that it cannot be defended, except by standing armies; and that it
cannot be united, except by consolidation.
Measures have already been adopted which may lead to these consequences.
They consist:
In fiscal systems and arrangements, which keep a host of commercial and
wealthy individuals, embodied and obedient to the mandates of the treasury.
In armies and navies, which will, on the one hand, enlist the tendency of man to
pay homage to his fellow-creature who can feed or honor him; and on the other,
employ the principle of fear, by punishing imaginary insurrections, under the
pretext of preventive justice.
In swarms of officers, civil and military, who can inculcate political tenets
tending to consolidation and monarchy, both by indulgences and severities; and
can act as spies over the free exercise of human reason.
In restraining the freedom of the press, and investing the executive with
legislative, executive, and judicial powers, over a numerous body of men.
And, that we may shorten the catalogue, in establishing by successive precedents
such a mode of construing the Constitution as will rapidly remove every restraint
upon federal power.
Let history be consulted; let the man of experience reflect; nay, let the artificers
of monarchy be asked what farther materials they can need for building up their
favorite system?
These are solemn, but painful truths; and yet we recommend it to you not to
forget the possibility of danger from without, although danger threatens us from
within. Usurpation is indeed dreadful, but against foreign invasion, if that should
happen, let us rise with hearts and hands united, and repel the attack with the zeal
of freemen, who will strengthen their title to examine and correct domestic
measures by having defended their country against foreign aggression.
Pledged as we are, fellow-citizens, to these sacred engagements, we yet humbly
and fervently implore the Almighty Disposer of events to avert from our land war
and usurpation, the scourges of mankind; to permit our fields to be cultivated in
peace; to instill into nations the love of friendly intercourse; to suffer our youth to
be educated in virtue; and to preserve our morality from the pollution invariably
incident to habits of war; to prevent the laborer and husbandman from being
harassed by taxes and imposts; to remove from ambition the means of disturbing
the commonwealth; to annihilate all pretexts for power afforded by war; to
maintain the Constitution; and to bless our nation with tranquillity, under whose
benign influence we may reach the summit of happiness and glory, to which we are
destined by Nature and Nature’s God.

Attest, John Stewart, C.H.D.

1799, Jan. 23. Agreed to by the Senate.

H. Brooke, C.S.

A true copy from the original, deposited in the office of the General Assembly.
John Stewart, Keeper of Rolls.
Answers of the several State Legislatures.

State of Delaware.—In the House of Representatives, Feb. 1,


1799. Resolved, By the Senate and House of Representatives of the
state of Delaware, in General Assembly met, that they consider the
resolutions from the state of Virginia as a very unjustifiable
interference with the general government and constituted authorities
of the United States, and of dangerous tendency, and therefore not fit
subject for the further consideration of the General Assembly.
Isaac Davis, Speaker of the Senate.
Stephen Lewis, Speaker of the H. of R’s. Test—

John Fisher, C.S.


John Caldwell, C.H.R.

State of Rhode Island and Providence Plantations.—In


General Assembly, February, A. D. 1799. Certain resolutions of the
Legislature of Virginia, passed on 21st of December last, being
communicated to this Assembly,
1. Resolved, That in the opinion of this legislature, the second
section of third article of the Constitution of the United States in
these words, to wit: The judicial power shall extend to all cases
arising under the laws of the United States, vests in the federal
courts, exclusively, and in the Supreme Court of the United States
ultimately, the authority of deciding on the constitutionality of any
act or law of the Congress of the United States.
2. Resolved, That for any state legislature to assume that authority,
would be,
1st. Blending together legislative and judicial powers.
2d. Hazarding an interruption of the peace of the states by civil
discord, in case of a diversity of opinions among the state
legislatures; each state having, in that case, no resort for vindicating
its own opinions, but to the strength of its own arm.
3d. Submitting most important questions of law to less competent
tribunals; and
4th. An infraction of the Constitution of the United States,
expressed in plain terms.
3. Resolved, That although for the above reasons, this legislature,
in their public capacity, do not feel themselves authorized to consider
and decide on the constitutionality of the sedition and alien laws (so
called); yet they are called upon by the exigency of this occasion, to
declare, that in their private opinions, these laws are within the
powers delegated to Congress, and promotive of the welfare of the
United States.
4. Resolved, That the governor communicate these resolutions to
the supreme executive of the state of Virginia, and at the same time
express to him that this legislature cannot contemplate, without
extreme concern and regret, the many evil and fatal consequences
which may flow from the very unwarrantable resolutions aforesaid,
of the legislature of Virginia, passed on the twenty-first day of
December last.

A true copy. Samuel Eddy, Sec.

Commonwealth of Massachusetts.—In Senate, Feb. 9, 1799. The


legislature of Massachusetts having taken into serious consideration
the resolutions of the State of Virginia, passed the 21st day of
December last, and communicated by his excellency the governor,
relative to certain supposed infractions of the Constitution of the
United States, by the government thereof, and being convinced that
the Federal Constitution is calculated to promote the happiness,
prosperity, and safety of the people of these United States, and to
maintain that union of the several states, so essential to the welfare
of the whole; and being bound by solemn oath to support and defend
that Constitution, feel it unnecessary to make any professions of
their attachment to it, or of their firm determination to support it
against every aggression, foreign or domestic.
But they deem it their duty solemnly to declare, that while they
hold sacred the principle, that consent of the people is the only pure
source of just and legitimate power, they cannot admit the right of
the state legislatures to denounce the administration of that
government to which the people themselves, by a solemn compact,
have exclusively committed their national concerns: That, although a
liberal and enlightened vigilance among the people is always to be
cherished, yet an unreasonable jealousy of the men of their choice,
and a recurrence to measures of extremity, upon groundless or trivial
pretexts, have a strong tendency to destroy all rational liberty at
home, and to deprive the United States of the most essential
advantages in their relations abroad: That this legislature are
persuaded that the decision of all cases in law and equity, arising
under the Constitution of the United States, and the construction of
all laws made in pursuance thereof, are exclusively vested by the
people in the judicial courts of the United States.
That the people in that solemn compact, which is declared to be
the supreme law of the land, have not constituted the state
legislatures the judges of the acts or measures of the federal
government, but have confided to them the power of proposing such
amendments of the Constitution, as shall appear to them necessary
to the interests, or conformable to the wishes of the people whom
they represent.
That by this construction of the Constitution, an amicable and
dispassionate remedy is pointed out for any evil which experience
may prove to exist, and the peace and prosperity of the United States
may be preserved without interruption.
But, should the respectable state of Virginia persist in the
assumption of the right to declare the acts of the national
government unconstitutional, and should she oppose successfully
her force and will to those of the nation, the Constitution would be
reduced to a mere cipher, to the form and pageantry of authority,
without the energy of power. Every act of the federal government
which thwarted the views or checked the ambitious projects of a
particular state, or of its leading and influential members, would be
the object of opposition and of remonstrance; while the people,
convulsed and confused by the conflict between two hostile
jurisdictions, enjoying the protection of neither, would be wearied
into a submission to some bold leader, who would establish himself
on the ruins of both.
The legislature of Massachusetts, although they do not themselves
claim the right, nor admit the authority of any of the state
governments, to decide upon the constitutionality of the acts of the
federal government, still, lest their silence should be construed into
disapprobation, or at best into a doubt of the constitutionality of the
acts referred to by the State of Virginia; and, as the General Assembly
of Virginia has called for an expression of their sentiments, do
explicitly declare, that they consider the acts of Congress, commonly
called “the alien and sedition acts,” not only constitutional, but
expedient and necessary: That the former act respects a description
of persons whose rights were not particularly contemplated in the
Constitution of the United States, who are entitled only to a
temporary protection, while they yield a temporary allegiance; a
protection which ought to be withdrawn whenever they become
“dangerous to the public safety,” or are found guilty of “treasonable
machination” against the government: That Congress having been
especially intrusted by the people with the general defence of the
nation, had not only the right, but were bound to protect it against
internal as well as external foes. That the United States, at the time of
passing the act concerning aliens, were threatened with actual
invasion, had been driven by the unjust and ambitious conduct of the
French government into warlike preparations, expensive and
burthensome, and had then, within the bosom of the country,
thousands of aliens, who, we doubt not, were ready to co-operate in
any external attack.
It cannot be seriously believed, that the United States should have
waited till the poignard had in fact been plunged. The removal of
aliens is the usual preliminary of hostility, and is justified by the
invariable usages of nations. Actual hostility had unhappily long
been experienced, and a formal declaration of it the government had
reason daily to expect. The law, therefore, was just and salutary, and
no officer could, with so much propriety, be intrusted with the
execution of it, as the one in whom the Constitution has reposed the
executive power of the United States.
The sedition act, so called, is, in the opinion of this legislature,
equally defensible. The General Assembly of Virginia, in their resolve
under consideration, observe, that when that state by its convention
ratified the Federal Constitution, it expressly declared, “That, among
other essential rights, the liberty of conscience and of the press
cannot be cancelled, abridged, restrained, or modified by any
authority of the United States,” and from its extreme anxiety to
guard these rights from every possible attack of sophistry or
ambition, with other states, recommend an amendment for that
purpose: which amendment was, in due time, annexed to the
Constitution; but they did not surely expect that the proceedings of
their state convention were to explain the amendment adopted by
the Union. The words of that amendment, on this subject, are,
“Congress shall make no law abridging the freedom of speech or of
the press.”
The act complained of is no abridgment of the freedom of either.
The genuine liberty of speech and the press, is the liberty to utter and
publish the truth; but the constitutional right of the citizen to utter
and publish the truth, is not to be confounded with the licentiousness
in speaking and writing, that is only employed in propagating
falsehood and slander. This freedom of the press has been explicitly
secured by most, if not all, the state constitutions; and of this
provision there has been generally but one construction among
enlightened men; that it is a security for the rational use and not the
abuse of the press; of which the courts of law, the juries, and people
will judge; this right is not infringed, but confirmed and established
by the late act of Congress.
By the Constitution, the legislative, executive, and judicial
departments of government are ordained and established; and
general enumerated powers vested in them respectively, including
those which are prohibited to the several states. Certain powers are
granted in general terms by the people to their general government,
for the purposes of their safety and protection. The government is
not only empowered, but it is made their duty to repel invasions and
suppress insurrections; to guaranty to the several states a republican
form of government; to protect each state against invasion, and,
when applied to, against domestic violence; to hear and decide all
cases in law and equity, arising under the Constitution, and under
any treaty or law made in pursuance thereof; and all cases of
admiralty and maritime jurisdiction, and relating to the law of
nations. Whenever, therefore, it becomes necessary to effect any of
the objects designated, it is perfectly consonant to all just rules of
construction, to infer, that the usual means and powers necessary to
the attainment of that object, are also granted: But the Constitution
has left no occasion to resort to implication for these powers; it has
made an express grant of them, in the 8th section of the first article,
which ordains, “That Congress shall have power to make all laws
which shall be necessary and proper for carrying into execution the
foregoing powers, and all other powers vested by the Constitution in
the government of the United States or in any department or officer
thereof.”
This Constitution has established a Supreme Court of the United
States, but has made no provisions for its protection, even against
such improper conduct in its presence, as might disturb its
proceedings, unless expressed in the section before recited. But as no
statute has been passed on this subject, this protection is, and has
been for nine years past, uniformly found in the application of the
principles and usages of the common law. The same protection may
unquestionably be afforded by a statute passed in virtue of the
before-mentioned section, as necessary and proper, for carrying into
execution the powers vested in that department. A construction of
the different parts of the Constitution, perfectly just and fair, will, on
analogous principles, extend protection and security against the
offences in question, to the other departments of government, in
discharge of their respective trusts.
The President of the United States is bound by his oath “to
preserve, protect, and defend the Constitution,” and it is expressly
made his duty, “to take care that the laws be faithfully executed;” but
this would be impracticable by any created being, if there could be no
legal restraint of those scandalous misrepresentations of his
measures and motives, which directly tend to rob him of the public
confidence. And equally impotent would be every other public
officer, if thus left to the mercy of the seditious.
It is holden to be a truth most clear, that the important trusts
before enumerated cannot be discharged by the government to which
they are committed, without the power to restrain seditious practices
and unlawful combinations against itself, and to protect the officers
thereof from abusive misrepresentations. Had the Constitution
withheld this power, it would have made the government responsible
for the effects without any control over the causes which naturally
produce them, and would have essentially failed of answering the
great ends for which the people of the United States declare, in the
first clause of that instrument, that they establish the same, viz: “To
form a more perfect union, establish justice, insure domestic
tranquillity, provide for the common defence, promote the general
warfare, and secure the blessings of liberty to ourselves and
posterity.”
Seditious practices and unlawful combinations against the federal
government, or any officer thereof, in the performance of his duty, as
well as licentiousness of speech and of the press, were punishable on
the principles of common law in the courts of the United States,
before the act in question was passed. This act then is an
amelioration of that law in favor of the party accused, as it mitigates
the punishment which that authorizes, and admits of any
investigation of public men and measures which is regulated by
truth. It is not intended to protect men in office, only as they are
agents of the people. Its object is to afford legal security to public
offices and trusts created for the safety and happiness of the people,
and therefore the security derived from it is for the benefit of the
people, and is their right.
The construction of the Constitution and of the existing law of the
land, as well as the act complained of, the legislature of
Massachusetts most deliberately and firmly believe results from a
just and full view of the several parts of the Constitution: and they
consider that act to be wise and necessary, as an audacious and
unprincipled spirit of falsehood and abuse had been too long
unremittingly exerted for the purpose of perverting public opinion,
and threatened to undermine and destroy the whole fabric of
government.
The legislature further declare, that in the foregoing sentiments
they have expressed the general opinion of their constituents, who
have not only acquiesced without complaint in those particular
measures of the federal government, but have given their explicit
approbation by re-electing those men who voted for the adoption of
them. Nor is it apprehended, that the citizens of this state will be
accused of supineness or of an indifference to their constitutional
rights; for while, on the one hand, they regard with due vigilance the
conduct of the government, on the other, their freedom, safety and
happiness require, that they should defend that government and its
constitutional measures against the open or insidious attacks of any
foe, whether foreign or domestic.
And, lastly, that the legislature of Massachusetts feel a strong
conviction, that the several United States are connected by a
common interest which ought to render their union indissoluble, and
that this state will always co-operate with its confederate states in
rendering that union productive of mutual security, freedom, and
happiness.
Sent down for concurrence.

Samuel Philips, President.

In the House of Representatives, Feb. 13, 1799.


Read and concurred.

Edward H. Robbins, Speaker.

A true copy. Attest,

John Avery, Secretary.

State of New York.—In Senate, March 5, 1799.—Whereas, the


people of the United States have established for themselves a free
and independent national government: And whereas it is essential to
the existence of every government, that it have authority to defend
and preserve its constitutional powers inviolate, inasmuch as every
infringement thereof tends to its subversion: And whereas the
judicial power extends expressly to all cases of law and equity arising
under the Constitution and the laws of the United States whereby the
interference of the legislatures of the particular states in those cases
is manifestly excluded: And whereas our peace, prosperity, and
happiness, eminently depend on the preservation of the Union, in
order to which, a reasonable confidence in the constituted
authorities and chosen representatives of the people is
indispensable: And whereas every measure calculated to weaken that
confidence has a tendency to destroy the usefulness of our public
functionaries, and to excite jealousies equally hostile to rational
liberty, and the principles of a good republican government: And
whereas the Senate, not perceiving that the rights of the particular
states have been violated, nor any unconstitutional powers assumed
by the general government, cannot forbear to express the anxiety and
regret with which they observe the inflammatory and pernicious
sentiments and doctrines which are contained in the resolutions of
the legislatures of Virginia and Kentucky—sentiments and doctrines,
no less repugnant to the Constitution of the United States, and the
principles of their union, than destructive to the Federal government
and unjust to those whom the people have elected to administer it:
wherefore, Resolved, That while the Senate feel themselves
constrained to bear unequivocal testimony against such sentiments
and doctrines, they deem it a duty no less indispensable, explicitly to
declare their incompetency, as a branch of the legislature of this
state, to supervise the acts of the general government.
Resolved, That his Excellency, the Governor, be, and he is hereby
requested to transmit a copy of the foregoing resolution to the
executives of the states of Virginia and Kentucky, to the end that the
same may be communicated to the legislatures thereof.
A true copy.

Abm. B. Baucker, Clerk.

State of Connecticut.—At a General Assembly of the state of


Connecticut, holden at Hartford, in the said state, on the second
Thursday of May, Anno Domini 1799, his excellency the governor
having communicated to this assembly sundry resolutions of the
legislature of Virginia, adopted in December, 1798, which relate to
the measures of the general government; and the said resolutions
having been considered, it is
Resolved, That this Assembly views with deep regret, and explicitly
disavows, the principles contained in the aforesaid resolutions; and
particularly the opposition to the “Alien and Sedition Acts”—acts
which the Constitution authorized; which the exigency of the country
rendered necessary; which the constituted authorities have enacted,
and which merit the entire approbation of this Assembly. They,
therefore, decidedly refuse to concur with the legislature of Virginia,
in promoting any of the objects attempted in the aforesaid
resolutions.
And it is further resolved, That his excellency the governor be
requested to transmit a copy of the foregoing resolution to the
governor of Virginia, that it may be communicated to the legislature
of that state.
Passed in the House of Representatives unanimously.

Attest, John C. Smith, Clerk.

Concurred, unanimously, in the upper House.

Teste, Sam. Wyllys, Sec’y.

State of New Hampshire.—In the House of Representatives, June


14, 1799.—The committee to take into consideration the resolutions
of the General Assembly of Virginia, dated December 21, 1798; also
certain resolutions of the legislature of Kentucky, of the 10th of
November, 1798; report as follows:—
The legislature of New Hampshire, having taken into
consideration certain resolutions of the General Assembly of
Virginia, dated December 21, 1798; also certain resolutions of the
legislature of Kentucky, of the 10th of November, 1798,—
Resolved, That the legislature of New Hampshire unequivocally
express a firm resolution to maintain and defend the Constitution of
the United States, and the constitution of this state, against every
aggression, either foreign or domestic, and that they will support the
government of the United States in all measures warranted by the
former.
That the state legislatures are not the proper tribunals to
determine the constitutionality of the laws of the general
government; that the duty of such decision is properly and
exclusively confided to the judicial department.
That if the legislature of New Hampshire, for mere speculative
purposes, were to express an opinion on the acts of the general
government, commonly called “the Alien and Sedition Bills,” that
opinion would unreservedly be, that those acts are constitutional
and, in the present critical situation of our country, highly expedient.
That the constitutionality and expediency of the acts aforesaid
have been very ably advocated and clearly demonstrated by many
citizens of the United States, more especially by the minority of the
General Assembly of Virginia. The legislature of New Hampshire,
therefore, deem it unnecessary, by any train of arguments, to attempt
further illustration of the propositions, the truth of which, it is
confidently believed, at this day, is very generally seen and
acknowledged.
Which report, being read and considered, was unanimously
received and accepted, one hundred and thirty-seven members being
present.
Sent up for concurrence.

John Prentice, Speaker.

In Senate, same day, read and concurred in unanimously.

Amos Shepard, President.

Approved June 15, 1799.

J. T. Gilman, Governor.

A true copy.

Attest, Joseph Pearson, Sec’y.

State of Vermont.—In the House of Representatives, October 30,


A. D. 1799.—The House proceeded to take under their consideration
the resolutions of the General Assembly of Virginia, relative to
certain measures of the general government, transmitted to the
legislature of this state for their consideration; whereupon,
Resolved, that the General Assembly of the state of Vermont do
highly disapprove of the resolutions of the General Assembly of the
state of Virginia, as being unconstitutional in their nature and

Você também pode gostar