Anda di halaman 1dari 11

Thiago Hernandes de Souza

SQL Avanado e Teoria Relacional


Copyright Editora Cincia Moderna Ltda., 2013
Todos os direitos para a lngua portuguesa reservados pela EDITORA CINCIA
MODERNA LTDA.
De acordo com a Lei 9.610, de 19/2/1998, nenhuma parte deste livro poder ser
reproduzida, transmitida e gravada, por qualquer meio eletrnico, mecnico, por
fotocpia e outros, sem a prvia autorizao, por escrito, da Editora.
Editor: Paulo Andr P. Marques
Produo Editorial: Aline Vieira Marques
Assistente Editorial: Lorena Fernandes
Capa: Carlos Arthur Candal
Diagramao: Tatiana Neves
Copidesque: Eveline Vieira Machado
Vrias Marcas Registradas aparecem no decorrer deste livro. Mais do que
simplesmente listar esses nomes e informar quem possui seus direitos de
explorao, ou ainda imprimir os logotipos das mesmas, o editor declara estar
utilizando tais nomes apenas para fins editoriais, em benefcio exclusivo do dono da
Marca Registrada, sem inteno de infringir as regras de sua utilizao. Qualquer
semelhana em nomes prprios e acontecimentos ser mera coincidncia.

FICHA CATALOGRFICA

SOUZA, Thiago Hernandes de.


SQL Avanado e Teoria Relacional
Rio de Janeiro: Editora Cincia Moderna Ltda., 2013.

1. Programao de Computador Programas e Dados 2. Cincia da


Computao
I Ttulo
ISBN: 978-85-399-0428-0

Editora Cincia Moderna Ltda.


R. Alice Figueiredo, 46 Riachuelo
Rio de Janeiro, RJ Brasil CEP: 20.950-150
Tel: (21) 2201-6662/ Fax: (21) 2201-6896
E-MAIL: LCM@LCM.COM.BR
WWW.LCM.COM.BR

CDD 005
004

05/13

Introduo

Nos dias atuais, uma das preocupaes de programadores o aprendizado de


novas tendncias tecnolgicas para rea de TI (Tecnologia da Informao). Muitos
desses se deparam constantemente com reciclagens, especializaes e foco em
linguagens que possam trabalhar fornecendo informaes para o banco de dados
corporativo em que desenvolve incumbncias.
Essa uma realidade! No obstante, uma parte da TI que tem sido pouco
explorada e enfocada para um resultado mais profissional e que flexibilize a
implementao a qualquer momento de uma aplicao o banco de dados.
Um banco de dados, juntamente com suas teorias de otimizao e
normalizao, na verdade esto em segundo plano, tendo como objetivo principal o
desenvolvimento de trabalhos demandados e a grande ansiedade em coloc-los para
funcionar.
Com isso, bancos de dados mais complexos e que requeiram um maior fluxo
de dados e constantes processamentos de procedimentos armazenados e instrues
para atualizao ou correo acabam se tornando: instveis, lentos e duvidosos
para certas empresas. Alm de propcios aos famosos travamentos e reinicializao
do SGBD.
Mesmo assim, pelo desconhecimento e at mesmo pela pouca nfase na
Teoria Relacional, servidores esto cada vez mais sendo escolhidos pela
escalabilidade vertical. Esta, que trabalha com mquinas cada vez mais potentes
e que, mesmo assim, ao no conseguir atender a demandas, so trocados e
configurados constantemente para manuteno operacional com o objetivo de
rapidez e confiabilidade parcial.
A Teoria Relacional, aliada escalabilidade horizontal, tende a reduzir gastos
com grandes e potentes servidores, devido caracterstica de distribuir processamentos,
demandas e demais tarefas pertinentes a um sistema de computador.

IV

SQL Avanado e Teoria Relacional

Contudo, no basta! Se os mandamentos de Codd e as Formas Normais(FN)


no forem estabelecidos corretamente e pr-dispostos a receber adaptaes e
implementaes futuras, o grande responsvel em manter, armazenar e disponibilizar
os dados para estatsticas e consultas empresariais, o banco de dados, no vai passar de
um sofrimento e dor de cabea para uma corporao, tendo que conviver com
momentos de pico e, consequentemente, a famosa lentido de sistemas.

Sumrio

Sumrio

Captulo 1
SQL (Structured Query Language) e Teoria Relacional ........................................... 1
Captulo 2
Valor e Varivel .............................................................................................................. 3
Captulo 3
Caractersticas do Emprego do Banco de Dados .................................................... 5
Captulo 4
Linguagens do Banco de Dados ................................................................................. 7
Captulo 5
Interfaces do SGBD ...................................................................................................... 9
Captulo 6
Ambiente dos Sistemas de Banco de Dados ......................................................... 11
6.1 Mdulos Componentes do SGBD ......................................................................... 11

Captulo 7
Utilitrios do Sistema do Banco de Dados ............................................................. 13
Captulo 8
Arquiteturas para SGBD............................................................................................. 15

VI

SQL Avanado e Teoria Relacional

Captulo 9
Projeto de Banco de Dados e afim com o modelo relacional ............................. 17
Captulo 1
0
10
Modelo Entidade-Relacionamento ........................................................................... 19
10.1 Generalizao ....................................................................................................... 19
10.2 Especializao ...................................................................................................... 20
10.3 Relacionamentos ................................................................................................. 20
10.4 Condicionalidade .................................................................................................. 20
10.5 Expresso do Relacionamento .......................................................................... 21

Captulo 11
Relacionamentos Especiais ...................................................................................... 23
11.1 Relacionamentos entre Mltiplas Entidades .................................................. 23
11.2 Modelo Lgico Relacional .................................................................................. 23
11.2.1 Principais Vantagens da Abordagem Relacional ................................ 24

Captulo 1
2
12
Regras de Codd ........................................................................................................... 25
12.1 Chaves e ndices .................................................................................................. 26
12.2 Regras de Integridade no Modelo Relacional ................................................. 27

Captulo 1
3
13
Derivao do Modelo E-R para o Modelo Relacional ............................................ 29
13.1 Converso do Modelo Conceitual no Modelo Lgico Relacional ................. 29
13.2 Generalizaes ..................................................................................................... 31
13.3 Normalizao ........................................................................................................ 31
13.4 Sentido de Cima para Baixo (TOP-DOWN) ....................................................... 31
13.5 Sentido de Baixo para Cima (BOTTON-UP) ...................................................... 31

Sumrio

VII

Captulo 1
4
14
Anomalias .................................................................................................................... 33
Captulo15
Primeira Forma Normal (1FN) .................................................................................. 35
15.1 Variao Temporal e a Necessidade de Histrico .......................................... 35
15.2 Dependncia Funcional ...................................................................................... 36
15.3 Dependncia Funcional Total (Completa) e Parcial ....................................... 36
15.4 Dependncia Funcional Transitiva .................................................................... 37

Captulo 1
6
16
Segunda Forma Normal (2FN) .................................................................................. 39
Captulo 1
7
17
Terceira Forma Normal (3FN) ................................................................................... 41
Captulo 1
8
18
Clusulas SQL .............................................................................................................. 43
18.1 Operadores Lgicos ............................................................................................. 43
18.2 Operadores Relacionais ...................................................................................... 44
18.3 Funes de Agregao ........................................................................................ 44
18.4 Sistemas de Banco de Dados que usam SQL ................................................. 44

Captulo 19
Praticando com SQL ................................................................................................... 47
19.1 Criao das Entidades/Tabelas do Banco de Dados ..................................... 51
19.2 Realizando INSERTs nas Tabelas ...................................................................... 55
19.3 Trabalhando com SELECT ................................................................................... 66
19.4 Trabalhando com JOINs ...................................................................................... 67
19.5 SUBSELECTs .......................................................................................................... 72

VIII

SQL Avanado e Teoria Relacional

19.6 Funes de Agregao ......................................................................................... 74


19.7 Operador Relacional LIKE ................................................................................... 77
19.8 >, <, >=, <= e BETWEEN ..................................................................................... 79
19.9 GROUP BY, ORDER BY e HAVING ....................................................................... 80
19.10 WHERE ................................................................................................................ 85
19.11 Processamento Condicional com CASE ......................................................... 86
19.12 Encapsulamento ................................................................................................ 87

Captulo 20
Aprofundando no SQL ................................................................................................ 89
Captulo 2
1
21
Otimizao ................................................................................................................... 97
21.1 Erros Comuns na Definio das Entidades ...................................................... 98
21.2 Chaves Primrias Compostas ............................................................................ 99
21.3 UPDATE e DELETE .............................................................................................. 100
21.4 Integridade Relacional Referencial ................................................................. 101
21.5 Campos Calculados ........................................................................................... 102

Captulo 22
Permisses para os Usurios.................................................................................. 107
22.1 Permisso para Todos os Objetos do Banco de Dados academicosqlavancado .. 107
22.2 Excluindo as Permisses para Todos os Objetos do Banco de Dados
academicosqlavancado ........................................................................................... 108
22.3 Permisso por Tabelas ...................................................................................... 108
22.4 Excluindo a Permisso por Tabelas ................................................................ 109

Captulo 23
Praticando um Pouco Mais .................................................................................... 111
23.1 Exercitando as Instrues SQL com o Banco estoqueentradassaidas ...... 118

Sumrio

IX

23.2 Consideraes Finais da Performance com o SQL ...................................... 121


23.2.1 Aperfeioando a definio de QUERIES (QUERY) .............................. 123
23.2.2 Dicas para a normalizao das entidades e a integridade dos
dados ..................................................................................................................... 124

Captulo 2
4
24
Prtica Final Avanada - Banco de Dados Normalizado para uma Empresa de
nibus .........................................................................................................................127
24.1 Diagrama E-R (Entidade-Relacionamento) Conceitual ................................ 127
24.2 Criando o Banco de Dados ............................................................................... 129
24.2.1 Tabelas ..................................................................................................... 133
24.2.2 Indexes ..................................................................................................... 142
24.2.3 Triggers ..................................................................................................... 144
24.2.4 Functions .................................................................................................. 146
24.2.5 Views ......................................................................................................... 147
24.2.6 Procedures ............................................................................................... 149

Captulo

SQL (Structured Query Language)


e Teoria Relacional

A teoria relacional geralmente incrompreendida por diversos programadores de banco de dados ou DBAs (Database Administrators). Com isso, a grande maioria dos profissionais da rea de banco de dados no sabe o quanto importante a
compreenso desse tpico.
Na verdade, o que muitos profissionais de TI (Tecnologia da Informao) no
sabem que o modelo relacional o fundamento para a criao de qualquer banco
de dados bem estruturado e de alta disponibilidade. Ou seja, o alicerce para o bom
uso da linguagem SQL em qualquer cenrio ou metamodelo de dados.
Toda parte relacional envolve consistentemente os registros, a diferena entre a
relao de valores e a relao de variveis, a importncia de nomes de atributos e as
regras cruciais para a integridade de constraints.
Constraint um fator elementar que tem como principal objetivo referenciar
as entidades.