a arte das bases de dados

28
Carlos Pampulim Caldeira A arte das Bases de Dados Com exemplos de aplicação para Oracle e SQL Server EDIÇÕES SÍLABO BASES DE DADOS

Upload: vannhi

Post on 07-Jan-2017

220 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: A Arte das Bases de Dados

C a r l o s P a m p u l i m C a l d e i r a

A arte das

Basesde

DadosCom exemplos de aplicação

para Oracle e SQL Server

EDIÇÕES S ÍLABO

BA

SE

SD

ED

AD

OS

A a

rte

da

s

O planeamento é a mãe de todo o sucesso.

Uma ideia tão simples que se expressa numa única linha, mas que no entanto não é

habitualmente levada a sério.

Ao longo de cerca de um quarto de século dedicado ao ensino e investigação de

matérias associadas com o mundo das bases de dados relacionais, tenho-me deparado

com inúmeras situações em que a pressa e o desleixo na conceptualização destes

sistemas têm conduzido a produtos imaturos, pouco rigorosos, e imediatamente desac-

tualizados desde o seu primeiro dia de funcionamento.

Os resultados provocados nas organizações por esses maus produtos variam entre

dois extremos: o completo desinteresse pelo conceito de «base de dados» até ao colapso

organizativo e económico da entidade que encomendou uma base de dados e recebeu

uma tulha de dados.

O «fazer» uma base de dados é mais do que construir meia dúzia de tabelas num

modo com a esperança de que a velocidade de desenvolvimento daí resultante

consiga impressionar o utilizador final; a construção de uma base de dados é um

processo sujeito a normas analíticas e técnicas precisas e bem conhecidas que devem

ser seguidas em determinada ordem, desde a etapa de conceptualização até à fase de

construção física da base de dados.

Assim como um cirurgião ortopedista segue um determinado procedimento para

reparar uma fractura num osso, também o especialista em base de dados tem que

obedecer a uma conduta tecnológica de modo a obter um produto final válido tecnica-

mente, e que devolva à organização um valor acrescentado.

O segredo no sucesso no desenvolvimento de Sistemas de Informação em geral e,

em particular em Base de Dados Relacionais, é assim a organização.

O conteúdo deste livro destina-se a «meros mortais» como sejam, por exemplo,

gestores ou investigadores e estudantes nas mais variadas áreas da ciência e tecnologia.

Os temas são apresentados de uma forma simples, sem a complexidade desnecessária

habitual em certos livros de informática, nem a superficialidade existente noutros.

ad hoc

Carlos Pampulim Caldeira é Professor Auxiliar no Departamento de Informática da Universi-

dade de Évora (www.di.uevora.pt/~ccaldeira), tem um Doutoramento em Sistemas de Infor-

mação pela Universidade Técnica de Lisboa, é membro da ,

da e do .

É pioneiro na utilização de sistemas de bases de dados em Portugal, desenvolveu e coordena

diversas disciplinas nas áreas das bases de dados, e .

Desenvolve desde 2000 investigação na área da Ecologia da Informação. Coordenou o desen-

volvimento de vários projectos de bases de dados na Administração Pública e em empresas

privadas.

Association for Computing Machinery

European Association of Software Science and Tecnology Independent Oracle Users Group

data warehousing business intelligence

7897

2618

6274

9ISB

N 9

78-9

72-6

18-6

27-4

A arte das

Basesde

Dados

398

Page 2: A Arte das Bases de Dados
Page 3: A Arte das Bases de Dados

A Arte das Bases de Dados

Com exemplos de aplicação para Oracle e SQL Server

O Fundamental sobre Bases de Dados

Desenho do Modelo de Dados

Desenvolvimento da Aplicação

Exploração da Informação

A Ecologia da Informação

Administração

CARLOS PAMPULIM CALDEIRA

EDIÇÕES SÍLABO

Page 4: A Arte das Bases de Dados

É expressamente proibido reproduzir, no todo ou em parte, sob qualquer

forma ou meio, NOMEADAMENTE FOTOCÓPIA, esta obra. As transgressões

serão passíveis das penalizações previstas na legislação em vigor.

Visite a Sílabo na rede

www.si labo.pt

Editor: Manuel Robalo

FICHA TÉCNICA:

Título: A Arte das Bases de Dados Autor: Carlos Pampulim Caldeira © Edições Sílabo, Lda. Capa: Pedro Mota

1ª Edição, 1ª Impressão – Lisboa, Julho de 2011. 1ª Edição, 2ª Impressão – Lisboa, Janeiro de 2015. Impressão e acabamentos: Europress, Lda. Depósito Legal: 329842/11 ISBN: 978-972-618-627-4

EDIÇÕES SÍLABO, LDA.

R. Cidade de Manchester, 2 1170-100 Lisboa Tel.: 218130345 Fax: 218166719 e-mail: [email protected] www.silabo.pt

Page 5: A Arte das Bases de Dados

Índice

ÍNDICE DE FIGURAS E QUADROS 11

CONVENÇÕES USADAS NESTE MANUAL 15

PREFÁCIO 17

Parte 1

Introdução às bases de dados

1. Introdução 21 1.1. Os sistemas de bases de dados 23

1.1.1. Breve historial 23 1.1.2. O que é uma base de dados relacional? 25 1.1.3. Vantagens (e desvantagens) dos sistemas de base de dados 26

2. Descrição dos elementos de uma base de dados 29 2.1. A tabela 29 2.2. A chave primária 31 2.3. A integridade da informação 34 2.4. Regras de integridade da informação 35

2.4.1. A regra do NOT NULL 36 2.4.2. Integridade da tabela 37 2.4.3. Regra da unicidade 40 2.4.4. A integridade referencial 42 2.4.5. A restrição CHECK 53 2.4.6. A restrição ASSERTION 61 2.4.7. A definição de domínios 63 2.4.8. Alteração de restrições 64 2.4.9. Triggers 66

Page 6: A Arte das Bases de Dados

Parte 2

Os sistemas de bases de dados

3. Arquitectura de um sistema de base de dados 75 3.1. Constituição da base de dados 75 3.2. Estruturas lógicas de armazenamento 75

3.2.1. Base de dados e instância 76 3.2.2. Oracle: estruturas lógicas de armazenamento 78 3.2.3. SQL Server: estruturas lógicas de armazenamento 81

z

3.3. Estruturas e desenho físico da base de dados 84 3.3.1. Tabelas 84 3.3.2. Tabelas temporárias 85

3.4. Desenho físico da base de dados 86 3.4.1. Objectivos e limitações 86 3.4.2. Estruturas de arquivos 88

3.5. Caminho de acesso aos dados 93 3.5.1. Joins 93 3.5.2. Join: mecanismo de acesso aos dados 103

3.6. Varrimento das tabelas 103 3.7. Acesso pelos índices 104

3.7.1. Acesso por índice clustered 109

3.8. Os índices e a ordenação dos dados 110 3.8.1. Order By 111 3.8.2. Distinct 111 3.8.3. Group By 112

3.9. A não utilização de índices 113 3.10. Reescrita de queries 113

3.10.1. Optimização com base no custo de acesso 117

3.11. Algumas regras para a optimização de scripts de SQL 118 3.11.1. Exemplo de aplicação de tabelas temporárias 120

4. SQL 123 4.1. Manipulação de dados 123 4.2. Definição da estrutura 124

4.2.1. Criação de tabelas 124 4.2.2. Restrições intra-relacionais 125 4.2.3. Restrições inter-relacionais 125 4.2.4. Alteração de objectos da base de dados 126

Page 7: A Arte das Bases de Dados

4.3. Queries – Teoria geral 126 4.4. A pesquisa de dados 128

4.4.1. Elementos básicos da cláusula SELECT 128 4.4.2. Pesquisa de dados sujeita a condições 129 4.4.3. Outros comandos de SQL 133

4.5. Introdução de dados 134 4.6. Remoção de dados 134 4.7. Alteração de dados 134 4.8. A utilização especializada de funções de agregação 135

5. O desenho da base de dados 137 5.1. Os sistemas simples 138 5.2. Os sistemas complexos 140

5.2.1. A semântica 141

5.3. Desenho do modelo de dados 142 5.3.1. Conceptualização de modelos de dados 145

5.4. Recolhas dos conceitos e especificações 147 5.5. O modelo de dados relacional 148 5.6. Domínios 150 5.7. Relações 154

5.7.1. Atributos 156

5.8. Construção da base de dados 157 5.8.1. Ligações entre as tabelas 159

Parte 3

Modelação de dados e ecologia da informação

6. Normalização do modelo de dados 163 6.1. Noções básicas 163 6.2. Dependências funcionais 165 6.3. Descrição do processo de normalização 167

6.3.1. Etapas da normalização 167 6.3.2. Primeira forma normal 168 6.3.3. Segunda forma normal 169 6.3.4. Terceira forma normal 172

Page 8: A Arte das Bases de Dados

7. A ecologia da informação 177 7.1. Qual a razão da mensagem limitada dos modelos clássicos? 179 7.2. Descrição do método 180

7.2.1. O que é um conceito? 181

7.3. A ecologia da informação 181 7.4. O carácter único da informação 183

7.4.1. A mutação genética da informação 184

7.5. A construção do nicho da informação 184 7.5.1. A quantificação da informação 185 7.5.2. Qual é a forma correcta de calcular o conteúdo informativo

de um conceito? 187

Parte 4

Administração de base de dados

8. Pontos fundamentais em administração de bases de dados 191 8.1. A criação e manutenção de views 193

8.1.1. Views 193

8.2. Armazenamento de dados em views 195 8.3. Views e dependências entre objectos 195 8.4. Para que são utilizadas as views 195

8.4.1. Alteração de dados através de views 196 8.4.2. Regras para views com suporte em joins 198

8.5. Vistas em linha (Inline views) 198 8.6. Vistas materializadas 199

8.6.1. A actualização de vistas materializadas 200

8.7. Criação de vistas materializadas 200 8.8. A gestão de utilizadores em bases de dados 201 8.9. A linguagem DCL 203 8.10. Tipos de privilégios 204

8.10.1. Privilégios de sistema 204 8.10.2. Privilégios sobre objectos 205

8.11. A autenticação de utilizadores 206 8.12. Tipo de autorizações 207

8.12.1. Os privilégios em tabelas e views 207

Page 9: A Arte das Bases de Dados

8.13. Os níveis de acesso aos dados 207 8.14. Planeamento da gestão de utilizadores 208

8.14.1. Matriz de autoridade de nível 1 208 8.14.2. Matriz de autoridade de nível 2 209

8.15. Gestão dos níveis de acesso 210 8.15.1. Consola da linha de comandos 211 8.15.2. Aplicações gráficas 213 8.15.3. Disponibilização das autorizações 213

8.16. Gestão de alterações na base de dados 214

Parte 5

Glossário de funções de SQL 219

ÍNDICE REMISSIVO 251

Page 10: A Arte das Bases de Dados
Page 11: A Arte das Bases de Dados

Índice de figuras e quadros

■ FIGURAS

Figura 1-1. A evolução no processamento de dados 23 Figura 2-1. Algumas linhas da tabela Aluno 29 Figura 2-2. Interface gráfica para criar uma tabela em SQL Server 30 Figura 2-3. Tabela com chave primária baseada em ID’s 32 Figura 2-4. A chave primária da tabela Funcionário 33 Figura 2-5. O mesmo funcionário com duas chaves primárias distintas 33 Figura 2-6. Opção de not null em SQL Server 36 Figura 2-7. Como criar uma chave primária numa interface gráfica 38 Figura 2-8. Identificação de um campo chave primária 38 Figura 2-9. Valor repetido na coluna que é chave primária 39 Figura 2-10. Valor repetido na coluna Denominação na presença de um índice único 41 Figura 2-11. Gestão de índices em SQL Server 42 Figura 2-12. Ver chave primária e índices únicos em Oracle 42 Figura 2-13. Ver as chaves estrangeiras na tabela Disciplina no Curso em Oracle 45 Figura 2-14. Ver as chaves estrangeiras na tabela Disciplina no Curso em SQL Server 45 Figura 2-15. Diagrama representando três tabelas associadas por duas regras

de integridade referencial (em SQL Server) 46 Figura 2-16. Primeiro passo no processo de criação gráfica

da integridade referencial (SQL Server) 47 Figura 2-17. Segundo passo no processo de criação gráfica

da integridade referencial (SQL Server) 47 Figura 2-18. Tabelas curso e disciplina com linhas de dados 48 Figura 2-19. Erro em chave estrangeira (SQL Server) 49 Figura 2-20. Opções da chave estrangeira em Oracle 52 Figura 2-21. Opções da chave estrangeira em SQL Server 52 Figura 2-22. Ver restrição check sobre a coluna sexo em SQL Server 56 Figura 2-23. Ver restrição check sobre a coluna sexo em Oracle 56

Page 12: A Arte das Bases de Dados

Figura 2-24. Erro na entrada de dados no campo Número devido a um check ao nível dessa coluna 58

Figura 2-25. Check sobre datas na tabela «disciplina no curso» 61 Figura 2-26. Tabelas para a asserção de controlo de regências em disciplinas. 62 Figura 2-27. Os triggers e a sua relação com os comandos DML 67 Figura 3-1. Exemplo de uma tabela de uma base de dados 76 Figura 3-2. Estruturas lógicas de armazenamento 79 Figura 3-3. Diferenças entre as lógicas de armazenamento de dados

do Oracle e SQL Server 82 Figura 3-4: Estrutura de uma b-tree com três níveis 89 Figura 3-5. Estrutura B-tree típica 89 Figura 3-6. Exemplo de funcionamento de um join 93 Figura 3-7. As tabelas curso e disciplina no curso no processo de join 94 Figura 3-8. Tabelas utilizadas para a análise de joins 94 Figura 3-9. Resultado de inner join 95 Figura 3-10. Denominação absoluta de uma coluna 96 Figura 3-11. Denominação ambígua de uma coluna num join 97 Figura 3-12. A utilização de aliases num join 97 Figura 3-13. A utilização de aliases em colunas 98 Figura 3-14. Diagrama de Venn com disciplinas atribuídas a cursos 98 Figura 3-15. Conjunto resultante de outer join 99 Figura 3-16. Diagrama de Venn para left outer join 100 Figura 3-17. Output produzido por um right outer join 101 Figura 3-18. Diagrama de Venn para full outer join 102 Figura 3-19. Resultado de full outer join 102 Figura 3-20. Análise exacta das folhas de um índice 106 Figura 3-21. Elemento de primeira ordem num índice 106 Figura 3-22. Análise sequencial das folhas de um índice 107 Figura 3-23. Criação de índices independentes 108 Figura 3-24. Descrição da tabela Funcionário 111 Figura 3-25. Distinct aplicado às colunas Cidade e Categoria 112 Figura 3-26 – Resultado de Group By 112 Figura 5-1. Praxis clássica para a construção de uma base de dados 143 Figura 5-2. Exemplo de uma generalização no modelo E-R. 144 Figura 5-3. Processo de desenho duma base de dados 147 Figura 5-4. Posição do modelo de dados no trabalho de construção

de uma base de dados 149 Figura 5-5. Esquema da relação «Aluno» 155

Page 13: A Arte das Bases de Dados

Figura 5-6. Diagrama do modelo de dados sobre alunos e disciplinas 156 Figura 5-7. Esquema de uma base de dados 157 Figura 5-8. Criação da tabela inscrição na disciplina 158 Figura 6-1. O papel da normalização no suporte ao desenho de bases de dados 163 Figura 6-2. As dependências funcionais na relação «ESPÉCIE» 166 Figura 6-3. Relação entre as diferentes formas normais 167 Figura 8-1. Matriz de responsabilidades num sistema de base de dados 191 Figura 8-2. Exemplo de matriz de autoridade de nível 1 para uma base

de dados de pequena dimensão 209 Figura 8-3. Matriz de autoridade de nível 2 209 Figura 8-4. Separador de folha de cálculo como elemento organizativo

das autorizações numa base de dados 210 Figura 8-5. Associação entre um papel da base de dados

e os utilizadores reais em SQL Server 214 Figura 8-6. Método na gestão de alterações 215 Figura 8-7. Hierarquia de objectos numa base de dados 216

■ QUADROS

Quadro 2-1. Tipos de dados genéricos em sistemas de base de dados 31 Quadro 3-1. Coluna com valores de A a E e respectivos valores de mapa de bits 91 Quadro 3-2. Tabela Funcionário da Universidade com 6 linhas 92 Quadro 3-3. Índice bitmap para a coluna Categoria 92 Quadro 5-1. Índice de preços no consumidor em Janeiro de 2008 150 Quadro 5-2. Quadro com a operação binária equivalência material 154 Quadro 6-1. Dependências funcionais entre dois atributos 166 Quadro 6-2. Tabela com dados sobre veículos 168 Quadro 6-3. Relação «Veículo» na primeira forma normal 169 Quadro 6-4. Relação «Concessionário» 170 Quadro 6-5. Relação «Veículo» na segunda forma normal 171 Quadro 6-6. Relação «Abastecimento» 172 Quadro 6-7: Relação «Combustível» 173 Quadro 6-8. Relação «Custo de Combustível» 173 Quadro 8-1. Lista de privilégios para tabelas 207 Quadro 8-2. Planeamento de autorizações a nível das tabelas 208

Page 14: A Arte das Bases de Dados
Page 15: A Arte das Bases de Dados

Convenções usadas neste manual

Comandos em SQL SELECT Letra maiúscula

Nome dos objectos da base de dados

aluno Letra minúscula

Aspas «Nome do Aluno» Denominação completa dos objectos da base de dados

Parêntesis recto [NOT NULL] Cláusula opcional

Chavetas {ON | OFF} Deve introduzir-se obrigatoriamente uma das condições separadas pelo «|». As chavetas e o «|» não são para incluir no comando

Itálico n Parâmetro que se destina a ser substituído por um valor

Page 16: A Arte das Bases de Dados
Page 17: A Arte das Bases de Dados

Prefácio

O planeamento é a mãe de todo o sucesso.

Uma ideia tão simples que se expressa numa única linha, mas que no entanto

não é habitualmente levada a sério.

Ao longo de cerca de um quarto de século dedicado ao ensino e investigação de

matérias associadas com o mundo das bases de dados relacionais, tenho-me depa-

rado com inúmeras situações em que a pressa e o desleixo na conceptualização

destes sistemas têm conduzido a produtos imaturos e com pouco rigor técnico.

Os resultados provocados nas organizações por esses maus produtos variam

entre dois extremos: o completo desinteresse pelo conceito de «base de dados» até

ao colapso organizativo e económico da entidade que encomendou uma base de

dados e recebeu uma tulha1 de dados.

O «fazer» uma base de dados é mais do que construir meia dúzia de tabelas

num modo ad hoc com a esperança de que a velocidade de desenvolvimento daí

resultante consiga impressionar o utilizador final; a construção de uma base de

dados é um processo sujeito a normas analíticas e técnicas precisas e bem conheci-

das que devem ser seguidas em determinada ordem, desde a etapa de conceptuali-

zação até à fase de construção física da base de dados.

Assim como um cirurgião ortopedista segue um determinado procedimento para

reparar uma fractura num osso, também o especialista em base de dados tem que

obedecer a uma conduta tecnológica de modo a obter um produto final válido tecni-

camente, e que devolva à organização um valor acrescentado.

O segredo no sucesso no desenvolvimento de Sistemas de Informação em geral

e, em particular em Base de Dados Relacionais, é assim a organização.

O conteúdo deste livro destina-se a «meros mortais» como sejam, por exemplo,

gestores ou investigadores e estudantes nas mais variadas áreas da ciência e tec-

nologia. Os temas são apresentados de uma forma simples, sem a complexidade

(1) Casa ou compartimento onde se depositam ou guardam cereais em grão. Dicionário Priberam da

Língua Portuguesa.

Page 18: A Arte das Bases de Dados

desnecessária habitual em certos livros de informática, nem o desleixo contextual

existente noutros.

Aliás, a grande questão que se coloca é mesmo essa: É possível falar de bases

de dados de uma forma simples mas ao mesmo tempo eficaz? Eu penso que sim e

desafio quem tiver interessado a ler este livro para poder tirar as suas próprias con-

clusões.

Apesar de os exemplos de aplicação deste livro focarem essencialmente os dois

softwares de gestão de bases de dados mais utilizados actualmente, o Oracle e o

SQL Server, as soluções aqui apresentadas são tecnicamente sólidas e prontas a

aplicar a diferentes casos da vida real, e são adaptáveis a todos os sistemas de

gestão de bases de dados, comerciais ou open source.

Finalmente, uma breve explicação sobre o título do livro, A Arte das Bases de

Dados, tal como, por exemplo, na área da engenharia civil se desenham e cons-

troem estruturas que se denominam obras de arte, então similarmente também no

campo dos sistemas de informação pode considerar-se a análise, desenho e cons-

trução de bases de dados como obras de arte de tipo especial. Especiais porque, ao

contrário de um aqueduto, não se vêm e têm um determinado grau de virtualidade

pois «residem» num computador.

Page 19: A Arte das Bases de Dados

Parte 1

Introdução às bases de dados

Page 20: A Arte das Bases de Dados
Page 21: A Arte das Bases de Dados

1. Introdução

As bases de dados estão omnipresentes na nossa vida quotidiana. Interagimos com elas quando vamos ao Multibanco, escolhemos produtos num supermercado ou marcamos uma consulta no médico. São igualmente frequentes as notícias sobre elas nos meios de comunicação social, embora nem sempre pelas melhores razões; são frequentes as queixas das organizações e dos utilizadores sobre sistemas desajustados da realidade ou com baixos níveis de usabilidade. Em diversas organi-zações chave da nossa sociedade as bases de dados são, assim, mais conhecidas pelas suas deficiências, do que pelos benefícios que podem trazer ao funcionamento dessas mesmas organizações.

O principal motivo pelo qual muitas bases de dados não se ajustam ao sistema que pretendem representar é, sem sombra de dúvida, a falta de uma interacção a priori com os utilizadores finais (gestores, dirigentes e outros utilizadores) que con-duz a arquitecturas de bases de dados deficientes e, consequentemente, com pouca utilidade organizacional.

Do mesmo modo que um arquitecto ou engenheiro civil projecta com todo o cui-dado e detalhe uma obra, apresentando esquiços, desenhos finais, planos de por-menor e cadernos de encargos, também o arquitecto de base de dados tem que seguir um procedimento normalizado que assegure a qualidade do produto final.

Se no planeamento e construção de um edifício se omitir, ou desleixar, alguma etapa obrigatória corre-se o risco de a construção ruir; em bases de dados é a mesma coisa: uma aplicação sem modelo de dados bem definido, ou sem entrevis-tas aos utilizadores ou sem planos de pormenor é uma aplicação sujeita ao fracasso técnico e, bastante mais grave, podendo provocar graves prejuízos económicos e financeiros na organização.

Uma base de dados relacional é, deste modo, um tipo especial de sistema de informação que além de exigir um grande planeamento no seu desenho e posterior transformação num conjunto de tabelas, obriga ainda a grandes conhecimentos para sua gestão diária.

Uma base de dados relacional é uma grande colecção de dados integrados num sistema de informação altamente estruturado. As bases de dados são construídas de acordo com o modelo de dados relacional. Os sistemas de gestão de bases de dados relacionais (SGBDR) são as aplicações comerciais ou open source sobre as quais podem ser desenvolvidas bases de dados na forma como os utilizadores normais as enten-dem. Os SGBDR incluem, por exemplo, além das estruturas de dados, os procedimen-tos de acesso aos dados e a meta informação sobre esses mesmos dados.

Uma base de dados é um ser vivo que faz parte de um ecossistema em que o produto final é a transformação de dados em informação. Como todos os seres

Page 22: A Arte das Bases de Dados

22 A A R T E D A S B A S E S D E D A D O S

vivos, uma base de dados é uma entidade complexa pois além da sua própria fisio-logia e morfologia tem ainda muitas trocas de informação e de metadados com os outros componentes do ecossistema de que faz parte.

O desenho de bases de dados é uma tarefa potencialmente acessível a qualquer

interessado em bases de dados, não é preciso ser um iluminado para poder dese-

nhar uma base de dados.

Este manual está dividido em quatro grandes partes:

1. Na primeira parte apresentam-se tópicos introdutórios à ciência das bases de

dados: definições básicas, descrição dos seus elementos primários (as tabe-

las), e explicação das regras de integridade da informação (chave primária,

integridade referencial, restrições check, asserções e triggers;

2. Na segunda secção analisam-se as arquitecturas lógica e física das bases de

dados, a forma do desenho físico da base de dados e os caminhos de acesso

aos dados. Esta parte inclui ainda um pequeno guia sobre a linguagem de

interrogação de dados SQL;

3. Na terceira parte observam-se as regras fundamentais para a normalização

da informação e, ainda, um capítulo especial que apresenta os fundamentos

de uma nova ciência denominada de Ecologia da Informação;

4. Na última parte apresentam-se diversos temas relacionados com a adminis-

tração de bases de dados: funções do administrador de bases de dados

(DBA), criação de views e gestão de utilizadores.

Um sistema de bases de dados é um conjunto de aplicações e mecanismos que

asseguram o bom funcionamento das bases de dados. As etapas clássicas na cons-

trução de um sistema informático deste tipo podem resumir-se de acordo com os

seguintes pontos:

• Planeamento da base de dados;

• Recolha de requerimentos e desenho conceptual da base de dados;

• Desenho lógico da base de dados;

• Desenvolvimento e construção física da base de dados;

• Manutenção e gestão do sistema de bases de dados, incluindo a instalação,

conversão e migração;

• Formação e treino dos utilizadores finais da base de dados.

Este manual debruça-se sobre os quatro primeiros pontos, fornecendo os ele-

mentos fundamentais que permitem o acesso às principais funções de planeamento,

desenho e desenvolvimento de bases de dados relacionais.

Page 23: A Arte das Bases de Dados

I N T R O D U Ç Ã O À S B A S E S D E D A D O S 23

Também demonstrarei que o planeamento e desenvolvimento de uma base de

dados pode ser realizada por pessoas normais desde que sigam um conjunto de

normas apropriadas.

Se partirmos do princípio de que a Arquitectura é uma arte associada a princípios

científicos e técnicos, então por analogia podemos considerar que a construção de

bases de dados é também um fenómeno artístico na medida em que sem a imagina-

ção necessária o produto final é um mamarracho1 sem utilidade.

Este livro tem como destinatários todos aqueles que querem compreender

melhor o funcionamento interno de uma base dados; os que querem conhecer aquilo

que está por detrás dos dados que se alinham em linhas e colunas nas tão bem

conhecidas tabelas. Hoje em dia a utilização das bases de dados relacionais é um

fenómeno transversal nos sistemas informáticos pelo que todos os seus utilizadores,

sejam eles profissionais de informática, gestores, professores, investigadores ou

estudantes, ganharão muito com a leitura deste manual.

1.1. Os sistemas de bases de dados

1.1.1. Breve historial

A evolução do processamento de dados pode ser vista da seguinte forma (Figura 1-1):

Figura 1-1. A evolução no processamento de dados

Funções clássicasisoladas

Processamentosobre ficheiros

Independência entredados e programas

Tempo

Processamentobásico de dados

Gestãode ficheiros

Basede dados

(1) Sinónimos: monte de lixo; má arquitectura.

Page 24: A Arte das Bases de Dados

24 A A R T E D A S B A S E S D E D A D O S

O processamento básico (ficheiros elementares, anos 1950/60) caracterizou-se

por trabalhos isolados de programação; cada programa tinha os seus ficheiros. A

manipulação dos dados estava reduzida às funções mais simples: ordenação, clas-

sificação, e realização de somatórios. O software pouco mais fazia do que o

input/output sobre o mecanismo de armazenamento, normalmente numa banda

magnética. Qualquer alteração à forma como os dados deveriam estar armazena-

dos, implicava modificações nos programas, a sua recompilação e teste. A alteração

num dado (como por exemplo um novo produto de limpeza) conduzia à criação dum

novo ficheiro. O antigo continuava a existir e assim sucessivamente. A grande maio-

ria dos ficheiros era utilizada numa só aplicação. Havia, portanto, um alto nível de

redundância, com os mesmos dados multiplicados por um número indeterminado de

ficheiros.

No período áureo da utilização de aplicações de gestão de ficheiros (anos

1960/70), os procedimentos isolados de programação foram integrados em funções.

Começaram a aparecer os primeiros casos de partilha de ficheiros entre programas

diferentes. Ainda não era possível o acesso aos campos, só aos registos no seu

todo. Por esta altura deram-se os primeiros passos, no sentido de isolar as aplica-

ções dos efeitos perversos das alterações de hardware. Tal como no caso anterior

também aqui os ficheiros eram, de uma forma geral, desenvolvidos com um único

propósito. Desenvolvia-se, por exemplo, um conjunto de {ficheiros + programas}

para o processamento de salários, e outro conjunto com as características dos fun-

cionários. Muita da informação estava repetida e era incoerente entre os ficheiros,

tendo que haver vários programas com finalidades praticamente idênticas.

No início da década de 1980 surgiram os sistemas de gestão de base de dados

que tinham a originalidade de gerirem os dados independentemente dos programas.

As tabelas das bases de dados podem ser alteradas sem que isso obrigue à recom-

pilação de todos os programas. A noção de modelo de dados tornou-se essencial

para o desenvolvimento de bases de dados. Aos dados passaram a ser aplicados

dois níveis de independência, a lógica e a física. A independência lógica significa

que a estrutura lógica dos dados pode ser alterada sem consequências a nível de

todos os programas. Por exemplo: adicionar novos campos a uma tabela, ou criar

uma nova tabela. A independência física verifica-se quando a organização física dos

dados pode ser alterada sem que isso acarrete uma modificação global na estrutura

lógica dos dados e nos programas. Por exemplo: adicionar uma nova chave a uma

tabela, ou distribuir a base de dados por dois ou mais computadores. A independên-

cia lógica é a mais difícil de atingir dado que os programas são altamente depen-

dentes da estrutura lógica.

Page 25: A Arte das Bases de Dados

I N T R O D U Ç Ã O À S B A S E S D E D A D O S 25

1.1.2. O que é uma base de dados relacional?

A expressão base de dados está intimamente associada à noção de «uma colec-

ção de informação». De um ponto de vista mais teórico pode-se afirmar que uma

base de dados é um conjunto estruturado de informação. Uma base de dados é uma

colecção de dados formalmente definida, informatizada, partilhável e sujeita a um

controlo central.

Uma base de dados é uma colecção de dados interrelacionados com múltiplas

utilizações. Uma base de dados relacional (daqui para diante a expressão base de

dados é usada como sinónimo de base de dados relacional) é um sistema de gestão

de informação relativamente complexo.

Dado que a base de dados é a componente central do sistema, uma boa técnica

de desenho é crucial para a eficácia do sistema.

Se a função duma base de dados fosse simplesmente a de armazenar dados, a

sua organização seria relativamente simples. A complexidade estrutural das bases

de dados resulta do facto de que ela deve também mostrar as relações que existem

entre os dados e as regras de funcionamento do sistema.

Uma base de dados é composta por um conjunto de tabelas e associações entre

as tabelas. A associação entre os dados é o ponto forte dos sistemas relacionais. As

tabelas são formadas por linhas e colunas onde figuram os dados. Numa base de

dados relacional os dados estão todos representados como valores nas colunas das

tabelas.

Neste tipo de aplicação os dados e os programas estão completamente separa-

dos. Já o mesmo não se passa, por exemplo, nas folhas de cálculo em que os dados

e procedimentos estão frequentemente misturados.

Os sistemas de gestão de bases de dados relacionais (SGBDR) são aplicações

informáticas complexas, mas essenciais em muitas áreas científicas, nomeadamente

na área das ciências Socio-Económicas, onde grandes quantidades de informação

necessitam de ser combinadas, ou exploradas, de diversas formas nem todas fáceis

de prever.

Uma vantagem importante da tabela resulta do facto duma tabela poder ter mais

do que uma finalidade e dos seus dados poderem ser vistos com diferentes formas e

formatos, ao contrário de um ficheiro que tem um formato fixo.

Um sistema de ficheiros clássicos tem os seguintes inconvenientes:

• Redundância e inconsistência na informação. A mesma informação aparece

por vezes duplicada devido à forma desorganizada de criar ficheiros e progra-

mas. Veja-se, por exemplo, o caso em que a composição de um medicamento

Page 26: A Arte das Bases de Dados

26 A A R T E D A S B A S E S D E D A D O S

pode estar registada simultaneamente nos ficheiros «Analgésicos» e «Analgé-

sicos para o aparelho locomotor». Esta redundância é uma fonte potencial de

inconsistência nos dados. A inconsistência pode verificar-se, por exemplo,

quando a composição do analgésico A é modificada, e essa alteração só é

feita no ficheiro «Analgésicos para o aparelho locomotor». Como os dados

entre os dois ficheiros são agora incongruentes qualquer cruzamento de

informação que se queira fazer é apenas uma mera conjectura: tanto pode dar

um resultado válido como inválido.

• Dificuldade em aceder à informação. Nos ficheiros não é fácil obter-se a

informação que se quer, não só porque não se sabe onde está, bem como é

preciso programar para colocar os dados à disposição dos utilizadores. É um

processo fortemente dependente de pessoal especializado e no qual os

utilizadores não se revêem, porque não têm qualquer tipo de autonomia no

manuseio dos dados.

• Dados isolados. Em consequência da distribuição dos dados em múltiplos

ficheiros, a mesma informação pode estar com formatos diferentes em cada

um deles. Isto torna particularmente difícil a programação de aplicações.

• Integridade da informação. Os valores que os dados podem assumir estão

normalmente sujeitos a certos tipos de restrições de integridade como por

exemplo: uma unidade curricular não pode ter «-2» de duração semanal; ou

não se deve atribuir mais de 10 ECTS a uma unidade curricular normal. Num

ficheiro esta regra só pode ser assegurada através de linhas de código

suplementares em cada um dos programas que aceda àqueles dados. Se em

vez de uma, forem três ou quatro regras, então a dificuldade para conseguir

manter a integridade dos dados aumenta exponencialmente.

1.1.3. Vantagens (e desvantagens) dos sistemas de base de dados

As principais vantagens dum SGBDR, face a um vulgar sistema de ficheiros, são:

• Resposta rápida aos pedidos de informação. Como os dados estão integra-

dos numa única estrutura (a base de dados) a resposta a questões complexas

processa-se mais velozmente.

• Acesso múltiplo. O software de gestão de base de dados permite que os

dados sejam acedidos de diversíssimas maneiras. Nomeadamente, os dados

podem ser visualizados através de pesquisas sobre qualquer um dos campos da

tabela.

Page 27: A Arte das Bases de Dados

I N T R O D U Ç Ã O À S B A S E S D E D A D O S 27

• Flexibilidade. Em consequência da independência entre dados e programas,

qualquer alteração num desses elementos não implica modificações drásticas

no outro.

• Integridade da informação. Dada a absoluta exigência de não permitir a

redundância, as modificações de dados são feitas num só sítio, evitando-se

assim possíveis conflitos entre diferentes versões da mesma informação.

• Melhor gestão da informação. Em consequência da localização central dos

dados, sabe-se sempre como e onde está a informação.

A principal, e mais significativa, desvantagem dos sistemas de gestão de base de

dados é o seu custo, não tanto em termos de preço do software de base, mas fun-

damentalmente em despesas de desenvolvimento e de manutenção. É um tipo de

software altamente sofisticado que requer, para o seu desenho, desenvolvimento e

manutenção pessoal com formação adequada.

Os custos resultantes duma má conceptualização são enormes. A construção

duma base de dados deficiente tem consequências nefastas numa organização.

Tanto em custos directos, como em termos psicológicos, ficando na memória da

organização uma animosidade contra as «geniais» inovações tecnológicas.

Page 28: A Arte das Bases de Dados

C a r l o s P a m p u l i m C a l d e i r a

A arte das

Basesde

DadosCom exemplos de aplicação

para Oracle e SQL Server

EDIÇÕES S ÍLABO

BA

SE

SD

ED

AD

OS

A a

rte

da

s

O planeamento é a mãe de todo o sucesso.

Uma ideia tão simples que se expressa numa única linha, mas que no entanto não é

habitualmente levada a sério.

Ao longo de cerca de um quarto de século dedicado ao ensino e investigação de

matérias associadas com o mundo das bases de dados relacionais, tenho-me deparado

com inúmeras situações em que a pressa e o desleixo na conceptualização destes

sistemas têm conduzido a produtos imaturos, pouco rigorosos, e imediatamente desac-

tualizados desde o seu primeiro dia de funcionamento.

Os resultados provocados nas organizações por esses maus produtos variam entre

dois extremos: o completo desinteresse pelo conceito de «base de dados» até ao colapso

organizativo e económico da entidade que encomendou uma base de dados e recebeu

uma tulha de dados.

O «fazer» uma base de dados é mais do que construir meia dúzia de tabelas num

modo com a esperança de que a velocidade de desenvolvimento daí resultante

consiga impressionar o utilizador final; a construção de uma base de dados é um

processo sujeito a normas analíticas e técnicas precisas e bem conhecidas que devem

ser seguidas em determinada ordem, desde a etapa de conceptualização até à fase de

construção física da base de dados.

Assim como um cirurgião ortopedista segue um determinado procedimento para

reparar uma fractura num osso, também o especialista em base de dados tem que

obedecer a uma conduta tecnológica de modo a obter um produto final válido tecnica-

mente, e que devolva à organização um valor acrescentado.

O segredo no sucesso no desenvolvimento de Sistemas de Informação em geral e,

em particular em Base de Dados Relacionais, é assim a organização.

O conteúdo deste livro destina-se a «meros mortais» como sejam, por exemplo,

gestores ou investigadores e estudantes nas mais variadas áreas da ciência e tecnologia.

Os temas são apresentados de uma forma simples, sem a complexidade desnecessária

habitual em certos livros de informática, nem a superficialidade existente noutros.

ad hoc

Carlos Pampulim Caldeira é Professor Auxiliar no Departamento de Informática da Universi-

dade de Évora (www.di.uevora.pt/~ccaldeira), tem um Doutoramento em Sistemas de Infor-

mação pela Universidade Técnica de Lisboa, é membro da ,

da e do .

É pioneiro na utilização de sistemas de bases de dados em Portugal, desenvolveu e coordena

diversas disciplinas nas áreas das bases de dados, e .

Desenvolve desde 2000 investigação na área da Ecologia da Informação. Coordenou o desen-

volvimento de vários projectos de bases de dados na Administração Pública e em empresas

privadas.

Association for Computing Machinery

European Association of Software Science and Tecnology Independent Oracle Users Group

data warehousing business intelligence

7897

2618

6274

9ISB

N 9

78-9

72-6

18-6

27-4

A arte das

Basesde

Dados

398