Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Índice ...
• Porque modelagem de
• Conceitos de Bancos de dados
Dados • Modelo de Entidades e
• Níveis de Abstração Relacionamentos
• SGBD X SGA • Extensões do MER
• Modelos de dados • Mapeamento MER para o
• Modelos Lógicos de Dados Modelo Relacional
2
... Índice ...
• Ferramenta CASE • Stored Procedure
• Modelo Relacional • Triggers
• Normalização • Integridade Referencial
• Álgebra relacional Declarativa
• Linguagem SQL • Integridade Referencial
• Catálogo Procedural
3
...CONCEITOS DE BANCO DE DADOS...
Dados Operacionais
Projetos Aloca Funcionários
Fornece Lota
4
... SGBD X SGA ...
Mundo real
MER
SGBDOO
Relacional
Rede
Hierárquico
SGBD Específico
SGA
Máquina
5
... MODELOS DE DADOS ...
Exemplos: Lógico
• Relacional
• Rede Físico
• Hierárquico
7
... MODELOS DE DADOS ...
Modelo Físico Mundo
Mundo
real
real
descreve as estruturas de dados
ao nível de armazenamento Conceitual
físico dos dados, definindo: Lógico
• Tipo e tamanho de dados
• Índices Físico
8
... MODELOS DE DADOS ...
Mundo
Mundo
Fase do Projeto de BD Modelo de Dados
real
real
Conceitual Semântico / MER
Relacional
Lógico Rede
Hierárquico
Físico Físico
9
... CLASSIFICAÇÃO DE BD ...
MER RELACIONAL REDE HIERÁRQUICO
10
POR QUE MODELAGEM DE DADOS ?...
°
°
SEXO °F
°M
14
... MER ...
• relacionamento - associação entre elementos de
conjuntos de entidades
• relacionamento binário - é um par ordenado
(e1, e2), onde e1 e e2 são respectivamente
elementos dos conjuntos das entidades E1 e E2
15
... MER ...
• conjunto de relacionamentos - grupo de
relacionamentos do mesmo tipo ;
no caso binário, conjunto de pares ordenados
c (a, d) onde: a ed D
• grau de um relacionamento - número de
conjuntos de entidades envolvidos no
relacionamento.
ex.: unário, binário, ternário, ...
16
... MER ...
• classe ou cardinalidade dos relacionamentos
razão entre as quantidades de entidades com
que cada conjunto participa do relacionamento
• exemplos de classes de relacionamentos:
– binários: 1 : 1 1:n m:n
– ternários: 1 : m : n m:n:p
17
... MER ...
PROJETOS
HOR-TRAB DT-ALOC
TRABALHA
ALOCA
FUNCIONÁRIOS DEPARTAMENTOS
GERENCIA
CHEFIA
DT-POSSE
18
... MER ...
• RELACIONAMENTO UNÁRIO OU RECURSIVO OU
AUTORELACIONAMENTO
PESSOAS PRODUTOS
1 1 M N
CASA COMPÕE
ESPOSA MARIDO
É-COMPOSTO É-COMPONENTE
PEDIDOS
20
... MER ...
• RELACIONAMENTO TERNÁRIO ...
PROFESSORES P-A-D ALUNOS
1 N
M
DISCIPLINAS
21
... MER
• RELACIONAMENTO QUATERNÁRIO
CDC CLIENTES NMC
N
CDS HOR-INI HOR-FIM CDA
NMS NMA
DT-INI Q DT-FIM
ENDEREÇO
o
LOGRADOURO o
o CEP
o o APTO
NOME o NUM
23
... EXTENSÕES DO MER ...
• parcialidade / totalidade
- nem todo funcionário gerencia um
departamento ( parcial)
- todo departamento é gerenciado por
um funcionário (total)
1 1
FUNCIONÁRIOS GERENCIA DEPARTAMENTOS
24
... EXTENSÕES DO MER ...
• RELACIONAMENTOS TOTAIS E PARCIAIS
N NOME
NOME DT-NASC MORA 1
PESSOAS CIDADES
N 1
NASCE POPULAÇÃO
1 1
CASA
25
... EXTENSÕES DO MER ...
• cardinalidade dos relacionamentos com
valores máximo e mínimo de entidades que
se associam
• chave - identifica entidades
( 0 , 40 ) (1,6)
ALUNOS CURSA DISCIPLINAS
26
... EXTENSÕES DO MER ...
Agregação / Decomposição
Turmas
Alunos m n Disciplinas
Cursa
27
... EXTENSÕES DO MER ...
AGREGAÇÃO - identificação de uma superentidade
a partir do relacionamento entre outras entidades
Consultas
Médicos Atende Pacientes
m n
29
... EXTENSÕES DO MER ...
• GENERALIZAÇÃO / ESPECIALIZAÇÃO
COD GENERALIZAÇÃO
ENDER CLIENTES
NOM
COD COD
PESSOAS PESSOAS
FÍSICAS JURÍDICAS
CGC
CPF SEXO EST-CIV MES-IN
CAPITAL
ESPECIALIZAÇÃO NR-MESES-EX
AS SUB-CATEGORIAS (SUB-TIPOS) HERDAM OS ATRIBUTOS
DA CATEGORIA (SUPERTIPO)
30
... EXTENSÕES DO MER ...
• hierarquia de generalização - uma categoria de
entidades C é uma generalização de um conjunto
de entidades S1, S2, ... , Sn, chamadas sub-
categorias de C, se cada conjunto de entidades Si
for um sub-conjunto de C e, cada instância de C
for uma instância de um e somente um dos
conjuntos de entidades S1, S2, ... , Sn
31
... EXTENSÕES DO MER ...
– GENERALIZAÇÃO - formação de superclasses a partir
de outras classes; é possível falar: ...é um...., ...é um
tipo de ..., ...é um subconjunto de ...
cod
Professores
nom
cod cod
classific Concursados Visitantes instituição
dt-concurs periodo
Concursado é um professor
32
... EXTENSÕES DO MER ...
- ESPECIALIZAÇÃO - identificação de subclasses a
partir de uma classe; cada subclassse tem
características adicionais
Especialização cod
Professores Generalização
nom
cod cod
classific Concursados Visitantes instituição
dt-concurs periodo
33
... EXTENSÕES DO MER ...
GEN / ESPEC Func
SÁ DÉ
ZÉ ED JÔ
Pedreiros
Engenheiros
SÁ DÉ
ZÉ ED JÔ
Um pedreiro “é-um” funcionário
O pedreiro SÁ é o funcionário SÁ
O pedreiro SÁ é a mesma entidade que o funcionário SÁ,
apenas está desempenhando um papel diferente
36
... EXTENSÕES DO MER ...
Eng. Secret.
GEN / ESPEC
37
... EXTENSÕES DO MER ...
Automóveis Caminhões
• Placa • Placa
• Marca • Marca
• Km • Km
• AnoFabricação • AnoFabricação
• Preço • Preço
• NrPassageiros • Tonelagem
• VelocidadeMáxima • NrEixos
40
... EXTENSÕES DO MER ...
Placa
Marca Km
Veículos
Preço AnoFabric
Automóveis Caminhões
MER 1 n
Aloca
Depa 1 Func
1
Gerencia
MERE 1 n
Aloca Func
Depa o
Gerentes
43
CHAVES ...
• chave primária - conjunto de atributos que
identificam uma única entidade ex.: MATF + NRD,
MAT, CDD ...
• chave candidata- conjunto de atributos que podem
ser chave primária ex.: MAT, RG, CDD, ...
CDDEP
DEPARTS FUNCS DEPENDS
SAL
CDD NMD MAT NMF SEX RG MATF NRD NMD
44
... CHAVES ...
45
... CHAVES ...
46
... CHAVES ...
47
... CHAVES
• como escolher a chave primária
– deve ser a menor possível
– valor não deve mudar ao longo da vida
da entidade
– não pode ser null (nem parcial, nem
totalmente)
48
MAPEAMENTO MER --> MR...
N 1
FUNCIONÁRIOS ALOCA PROJETOS
FUNCIONÁRIOS PROJETOS
1 : N
CHAVE PRIMÁRIA DO LADO 1 VAI PARA O LADO N
ATRIBUTOS DO RELACIONAMENTO VÃO PARA O LADO N
49
...MAPEAMENTO MER --> MR...
M N
ALUNOS DISCIPLINAS
CURSA
CDA NMA NOTA PERÍODO CDD NMD
ALUNOS DISCIPLINAS
AL-DI
CDA CDD
CDA NMA CDD NMD
NOTA PERÍODO
M : N
. QUEBRA RELACIONAMENTO M : N EM DOIS 1 : N
. ATRIBUTOS DO RELACIONAMENTO FICAM NA ENTIDADE
INTERMEDIÁRIA
. CHAVES PRIMÁRIAS DAS ENTIDADES FAZEM PARTE DA
CHAVE PRIMÁRIA DA ENTIDADE INTERMEDIÁRIA
50
...MAPEAMENTO MER --> MR...
MÉDICOS DIRIGE HOSPITAIS
1 1
CDM NMM CDH NMH
DT-POSSE
MÉDICOS HOSPITAIS
NOM CHEFE 1
FUNCIONÁRIOS CHEFIA
MAT
N
SUBORDINADO
FUNCIONÁRIOS
52
...MAPEAMENTO MER --> MR...
COD M
COMPONENTES
PEÇAS COMPÕE QTD
DES N
COMPOSTOS
CD-COMPONENTE
COD
DES
CD-COMPOSTO
53
...MAPEAMENTO MER --> MR...
1 1
GERENCIA
MAT NOM CDD DES
DT-POSSE
FUNCIONÁRIOS ALOCA DEPARTAMENTOS
N 1
DT-ALOC
1 N CURSA CURSOS
N M
CHEFIA
CDC NMC
54
...MAPEAMENTO MER --> MR...
DT-ALOC GERENCIA
MAT NOM DT-POSSE MAT-GER
CDD
FUNCIONÁRIOS DEPARTAMENTOS
MAT-CH ALOCA
CDD NMD
CURSA CURSOS
CHEFE SUBORDINADO
55
...MAPEAMENTO MER --> MR...
CB AR
1 1
A R B A B
CA AA AR CB AB CA AA CB AB
CA AR
1 N
A R B A B
CA AA AR CB AB CA AA CB AB
CA CB
M N
A R B A A-B B
CA AA AR CB AB CA AA AR CB AB
56
...MAPEAMENTO MER --> MR...
Relacionamento M X N se transforma em 2
relacionamentos 1 : N (1 nas pontas, N no meio)
57
...MAPEAMENTO MER --> MR...
CA AA CA AA
A A
1
1 1
B C B CA C CA
AB AC AB AC
58
...MAPEAMENTO MER --> MR...
CB CC
AR CA AR
M N
A R B A R B
CA AA CB AB CA AA CB AB
P
C C
CC AC CC AC
59
...MAPEAMENTO MER --> MR
CB AR
AR CA
M N
A R B A R B
CA AA CA AA CB AB
CB AB
P CA S CB
S
CC AS
AS Q
C CC C AC
CC AC
60
Ferramenta CASE ...
• Metodologia IDEF1X
– desenvolvida pela US Air Force
– usada por vários órgãos do governo
americano e em várias ferramentas CASE
– representa relacionamentos via chaves
compartilhadas
– usada por grandes empresas de diversas
áreas
61
... Ferramenta CASE ...
• Metodologia IDEF1X ...
– Trata chaves como o modelo relacional
– Chave primária (PK) do lado 1 vai para o lado N
• relacionamento identificador (linha cheia): chave
estrangeira fará parte da PK no lado N
• relacionamento não identificador (linha
pontilhada):
chave estrangeira não fará parte da chave
primária no lado N
62
... Ferramenta CASE
•Metodologia IDEF1X ...
Func Depe
mat mat (FK)
Depa cdd (FK) seq
cdd nom nomd
dsd sal sexd
sex dtnascd
dtnasc
FunPro
Proj
mat (FK)
cdp (FK) cdp
nmp
63
Modelo Relacional ...
• O modelo relacional foi proposto em um paper
clássico, por Ted Codd em 1970
• O modelo tem como base matemática a teoria
dos conjuntos e usa o conceito de relação
matemática que se assemelha a uma tabela
bidimensional
• O modelo relacional usa as operações da
Álgebra Relacional
64
... Modelo Relacional ...
• Os elos são implícitos
• O usuário vê o banco de dados como um
conjunto de relações (tabelas)
FUNCIONÁRIOS relação (tabela)
MAT NOME DEPART atributos
66
... Modelo Relacional ...
RELAÇÃO - subconjunto do produto cartesiano dos
domínios R D1 X D2 X ..... X Dn
Produto cartesiano dos domínios - 64 tuplas
Relação Func (mat, nom, dep) - 4 tuplas
67
... Modelo Relacional ...
UMA RELAÇÃO PODE SER REPRESENTADA SOB
A FORMA DE TABELA, ONDE:
- Cada coluna representa um atributo
70
... Modelo Relacional
Propriedades das relações
• Não pode haver tupla duplicada
• Não pode haver nome de atributo duplicado
• Não importa a ordem das tuplas na relação
• Não importa a ordem dos atributos na tupla
• Os valores dos atributos são atômicos
71
... Modelo Relacional ...
Restrições de integridade no modelo relacional - 1
Eliminação das redundâncias
nenhum atributo de uma entidade pode ser
colocado em outra tabela, a não ser que seja
uma chave estrangeira
72
... Modelo Relacional ...
Restrições de integridade no modelo relacional - 2
Integridade Referencial
a cada valor de chave estrangeira em uma
relação, deve corresponder igual valor de chave
primária em outra relação
Integridade de Entidade
nenhum atributo componente da chave primária
pode ser null (sem valor)
73
NORMALIZAÇÃO ...
CPF SAL
CPF NOME SAL
CPF MAT
CPF
76
... NORMALIZAÇÃO ...
77
... NORMALIZAÇÃO ...
• TAREFA ( MAT, NOM, NU-PROJ, NM-PROJ, HORAS-TRAB)
78
... NORMALIZAÇÃO ...
• a chave primária deve : -
identificar uma única tupla -
conter o mínimo de atributos
• após a escolha da chave, verificar : -
a chave pode ser simplificada pela retirada de
algum atributo?
- algum componente da chave tem valor indefinido?
79
... NORMALIZAÇÃO ...
• QUAIS AS CHAVES DAS RELAÇÕES ABAIXO ?
QT-VENDIDA,PREÇO-UNIT, VL-ITEM) 80
... NORMALIZAÇÃO ...
• 1FN-NÃO HÁ GRUPO DE ATRIBUTOS REPETIDOS
FUNC (MAT, NOM, ENDER, DT-NASC, DEPENDENTES
(NM-DEP, DT-NASC-DEP, PARENTESCO))
A relação não está em 1FN (RELAÇÃO NF2)
há n dependentes (grupos repetidos de
atributos ) por funcionário
Normalizando, teríamos:
FUNC ( MAT, NOM, ENDER, DT-NASC)
PR-UNIT Normalizando:
VL-ITEM IT-PED(NR-PED,NR-IT,QTD,VL-IT)
83
... NORMALIZAÇÃO ...
• BCFN – TODOS OS DETERMINANTES SÃO CHAVES
CANDIDATAS
PRODUTO (CD-PROD, DESCR, CD-ESTAB, FONE-ESTAB, QTD)
Determinantes: Chaves candidatas:
CD-PROD CD-PROD + CD-ESTAB
CD-ESTAB
CD-PROD + CD-ESTAB
Nem todo determinante é chave candidata, logo, a relação
PRODUTO não está em BCFN. Normalizando:
PROD (CD-PROD, DESCR)
ESTAB (CD-ESTAB, FONE-ESTAB)
PRO-EST(CD-PROD, CD-ESTAB, QTD)
BCFN mais simples que 3FN: não se refere a 3FN ou 2FN
84
... NORMALIZAÇÃO ...
• Exemplo de BCFN: Um professor ensina uma única disciplina;
Uma disciplina pode ser ensinada por mais de um professor;
Em cada disciplina, um aluno tem aulas com um só professor
• Alun Prof Disc Determinantes Ch.Candidatas
Zé Ara BD Prof Alun + Disc
Ed Gui SI Alun + Disc Alun + Prof
Zé Val SI Alun + Prof
Ed Ara BD
• Relação (Alun, Prof, Disc) está em 3FN, mas não em BCFN.
Normalizando, teríamos as relações abaixo, em BCFN:
P-D (Prof, Disc)
P-A (Prof, Alun)
85
... NORMALIZAÇÃO ...
94
... NORMALIZAÇÃO ...
• normalização x performance ...
- índices
a) chaves estrangeiras deveriam ser indexadas
- armazenamento de resumos
criar tabelas com resumos que sejam atualizadas por
processos batch ou mesmo on-line; pode ser via triggers
97
NORMALIZAÇÃO Ex NF 1
• NOTA-FISCAL(NR-CLI, NM-CLI, EN-CLI, NR-NF,
(CD-IT, DS-IT, QTD, PREÇO,VAL), TOT-NF, CD-
VENDEDOR, NM-VENDEDOR)
• FICARIA ARMAZENADA COMO:
NR-CLI NM-CLI EN-CLI NR-NF CD-IT DE-
IT 1206 SILVA RU X,20 468 126 PARAF
1206 SILVA RU X,20 468 130 PORCA 1206
SILVA RU X,20 476 140 ARRUEL 1300
MARIA RU Y,30 477 126 PARAF 1300
MARIA RU Y,30 477 130 PORCA
98
NORMALIZAÇÃO Ex NF 2
• ANOMALIAS
- INCLUSÃO – incluir novo item exige nota fiscal
- EXCLUSÃO DE UM REGISTRO - exige verificar existência do item mais
de uma vez para não perder os dados desse item com a exclusão
- ALTERAÇÃO - mudar endereço do cliente 1206 implica alterar vários
registros
99
NORMALIZAÇÃO Ex NF 3
• As anomalias existem por falta de independência de
dados: cliente misturado com nota fiscal, misturado
com produto, com vendedor.
NORMALIZANDO ....
CLIEN (NR-CLI, NM-CLI,EN-CLI)
NFIS (NR-NF, TOT-NF, NR-CLI,CD-VENDEDOR)
IT-NF(CD-IT, DS-IT, QTD, PREÇO,VAL,NR-NF)
VENDEDOR (CD-VENDEDOR, NM-VENDEDOR)
100
NORMALIZAÇÃO Ex NF 4
• IT-NF (CD-IT, DS-IT, QTD, PREÇO, VAL, NR-NF)
ANOMALIAS NA RELAÇÃO ACIMA:
INCLUSÃO - só inclui um item se houver venda
• NFIS (NR-NF,NR-CLI,TOT-NF,CD-VENDEDOR)
102
NORMALIZAÇÃO Ex NF 6
DER NR-NF NR-NF
EQUIVALENTE CD-VENDEDOR CD-IT
TOT-NF QTD
NR-CLI VAL
EN-CLI
NR-CLI NM-CLI
VEND ITENS
104
...Álgebra Relacional...
Operações
SELEÇÃO ()– seleciona as tuplas que
satisfazem a uma condição
107
...Álgebra Relacional...
Operações
Func mat nom cdd Depa cdd dsd
100 Zé V P Prod
110 Ed P V Vend
Func X Depa (Produto Cartesiano)
100 Zé V P Prod
100 Zé V V Vend
110 Ed P P Prod
110 Ed P V Vend
108
...Álgebra Relacional...
Operações
JUNÇÃO ()
a1, a2, b1 b1,b2 a1, a2, b1, b1, b2
a3, a4, b3 b3, b4 a3, a4, b3, b3, b4
a5, a6, b5 b5, b6 a5, a6, b5, b5, b6
b7, b8
A B AB
Junção exibe os atributos de junção, mesmo repetidos
109
...Álgebra Relacional...
Operações
Func mat nom dep Depa cdd dsd
100 Zé V P Prod
110 Ed P V Vend
Func dep cdd Depa (Junção)
100 Zé V P Prod
100 Zé V V Vend
110 Ed P P Prod
110 Ed P V Vend
110
...Álgebra Relacional...
Operações
THETA JOIN – junção que usa a condição de
join no formato <atribm operador atribn >
onde, operador pode ser < , > , , , , =
EQUIJOIN – junção que usa a igualdade como
operador na condição de join
NATURAL JOIN (*) – junção natural, idêntica à
equijoin, mas suprimindo o atributo repetido; a
definição desta operação exige que os atributos
usados na condição de join tenham nomes
iguais nas duas relações
111
...Álgebra Relacional...
Operações
Diferença entre o Produto Cartesiano e a Junção
a Junção apresenta no resultado apenas a
combinação das tuplas que satisfazem à
condição de junção, enquanto o Produto
Cartesiano exibe no resultado todas as
combinações de tupla
112
...Álgebra Relacional...
Operações
UNIÃO () – obtém as tuplas que estão
em uma ou nas duas relações
INTERSEÇÃO() – obtém apenas as
tuplas que estão nas duas relações
DIFERENÇA(-) – obtém as tuplas que
estão em apenas uma das relações
113
...Álgebra Relacional...
Operações
• As operações União, Interseção e Diferença só
podem ocorrer entre relações compatíveis de
união
• Duas relações são união-compatíveis se têm o
mesmo grau e cada par de atributos
correspondentes tem o mesmo domínio. Ex.:
CLIEN (cdc, nmc, fonec, ufc)
FORN (cdf, nmf, fonef, uff)
114
...Álgebra Relacional...
CLI (cdc, nmc, fone, uf) FOR (cdf, nmf, fone, uf)
uf = “PI” (CLI) uf = “PI” (FOR)
Obtém os clientes ou fornecedores do PI
nmc( uf = “PI” (CLI)) nmf( uf = “PI” (FOR))
Obtém os nomes dos clientes que são também
fornecedores, do PI
uf = “PI” (CLI) - uf = “PI” (FOR)
Obtém os que são clientes mas não fornecedores, do PI
115
...Álgebra Relacional
Operações
• As operações básicas são: Seleção, Projeção,
União, Diferença e Produto Cartesiano. As
demais podem ser definidas em função destas.
• A B (A B) – ((A – B) (B – A))
• A <cond> B <cond> (A X B)
116
Linguagem SQL ...
• Linguagem de Consulta Estruturada
• Linguagem comercial, declarativa, padrão
para acesso a bancos de dados relacionais
• Introduzida como linguagem de consulta
para o sistema R (inicialmente, SEQUEL)
• Trata conjuntos de tuplas (linhas)
• Álgebra Relacional é formal e procedural
117
... Linguagem SQL ...
• Uma consulta na Álgebra Relacional especifica uma
seqüência de operações (como fazer)
• Uma consulta SQL especifica o que obter, deixando
para o SGBDR as tarefas de otimização e decisão de
como fazer
• Versões:
SQL1 ou SQL-86
SQL2 ou SQL-92 – padrão em vigor atualmente
SQL3 – contendo conceitos de Orientação a Objeto
118
... Linguagem SQL ...
• Cria e manipula as estruturas de dados:
– TABLE - tabela real formada por linhas e
colunas
– INDEX - índice para otimizar o acesso às
linhas das tabelas
– VIEW - tabela virtual formada a partir de
outras tabelas (apenas a definição da visão é
armazenada em disco)
119
... Linguagem SQL ...
FUNC Mat Nom Sex Sal Dep Match
100 Zé M 200,00 Pro 300
200 Sá M 210,00 Pro 300
300 Ed M 300,00 Pro 500
400 Dé M 320,00 Ven 500
500 Di F 500,00 Adm
PK FK FK
Tabela
120
... Linguagem SQL ...
Índices - estruturas de dados que agilizam o
acesso às tuplas (linhas); podem ser:
• primário - campo de indexação é a chave
primária não permitindo campos repetidos
• secundário ou alternado - campos de indexação
são quaisquer atributos que não a chave primária
• clusterizado - a ordem das entradas no índice é a
mesma das linhas da tabela
121
... Linguagem SQL ...
Índice agiliza consulta e prejudica atualização
• Evitar muitos índices em tabela muito volátil
(alta taxa de inclusão / exclusão)
• Em tabela pouco volátil, muitos índices agilizam
acessos; desvantagem: maior consumo de disco
• Cuidado ao indexar coluna atualizada com muita
freqüência
• Grandes tabelas: recomendável criar os índices
após a carga dos dados
122
... Linguagem SQL ...
O que indexar ?
• Chave primária (checa unicidade)
• Chave estrangeira (usada em junções e na
integridade referencial)
• Chave secundária que seja argumento de
pesquisa freqüentemente feita
• Nome usado para consulta alfabética on-line
• Atributo fonetizado usado em pesquisa fonética
123
... Linguagem SQL ...
O que indexar ?
• Em tabela associativa, além do índice primário
composto, criar índice secundário (unique),
invertendo as chaves
• Indexar colunas usadas em consultas
freqüentes ou que classifiquem muitas linhas,
usando order by, group by ou distinct
124
... Linguagem SQL ...
O que não indexar ?
• Atributo com poucos valores (sexo = M / F)
• Atributo usado em consulta que recupera quase
todas as linhas (otimizador não usará o índice)
• Atributo com alto percentual de valores null
• Atributo com alto percentual de valores
duplicados (poucos valores; bom criar índice
composto)
125
... Linguagem SQL ...
Por que indexar?
• Aumentar performance das consultas
• Acelerar a execução das junções
• Aumentar a performance de execução de
cláusulas ORDER BY e GROUP BY
• Acelerar a verificação de restrições de
integridade
126
... Linguagem SQL ...
Por que não indexar?
• Aumenta o consumo de disco
• Gasta tempo para criar índice em tabela
com grande número de linhas
• Piora a performance de execução de
comandos de alteração de dados (Insert,
Update, Delete)
127
... Linguagem SQL ...
VISÃO
• é como se fosse uma janela que nos permite ver
um subconjunto de uma ou mais tabelas
• é uma tabela virtual derivada de uma ou mais
tabelas (não duplica os dados)
• Exemplos:
– Marajás – funcionários com salário muito alto
– Idosas – funcionárias com idade avançada
128
... Linguagem SQL ...
Possui comandos DDL, DML, DCL
• DDL - Linguagem de Definição de Dados
Create, Drop, Alter
• DML - Linguagem de Manipulação de Dados
Select, Insert, Update, Delete
• DCL - Linguagem de Controle de Dados
Commit, Rollback, Grant, Lock
129
... Linguagem SQL ...
DDL - Linguagem de Definição de Dados
• CREATE – cria objetos (table, index, view,
procedure, trigger) no banco de dados
• DROP – remove objetos (table, index, view,
procedure, trigger) do banco de dados
• ALTER – altera objetos (table, index, view,
procedure, trigger) do banco de dados
130
... Linguagem SQL ...
DML - Linguagem de Manipulação de Dados
Comandos
• Select – obtém linhas de uma tabela
• Insert – insere linhas numa tabela
• Update – atualiza linhas de uma tabela
• Delete – exclui linhas de uma tabela
131
... Linguagem SQL ...
DCL - Linguagem de Controle de Dados
Comandos
• Grant – concede privilégios de acesso a dados
para usuários
• Revoke – retira privilégios de usuários
• Commit – efetiva transações no banco de dados
• Rollback – desfaz transações no banco de
dados
• Lock – bloqueia acesso a itens do BD
132
Catálogo ...
• Um SBD armazena também outros dados
(metadados) que definem e descrevem os dados
que formam o BD
• Esses dados formam o que se chama catálogo ou
dicionário de dados do sistema
• O catálogo é usado pelo SGBD e também,
eventualmente, pelos usuários do BD quando
necessitam de informação sobre a estrutura dos
dados do BD
133
... Catálogo ...
• Sem usar BD, a definição da estrutura dos dados
deve ser colocada nos programas de aplicação
• O catálogo é um banco de dados com
informações sobre a estrutura dos dados que
formam o BD (independência de dados)
• O catálogo (BD) dos bancos relacionais é
acessado via SQL (mesma sintaxe)
134
... Catálogo ...
O Catálogo / Dicionário de Dados deve ter, no
mínimo, os conjuntos de entidades (tabelas):
• Tabelas (cdt, nmt, dst, coment, tptab)
• Colunas (cdt, cdc, nmc, nrpos, nrdec, tpdad,...
• Índices (cdt, cdi, nmi, tpi)
• Visões (cdt, dsquery)
• Chaves (cdt, cdch, tpch, cdt-ref)
• TiposDeDados (cdtd, nmtd)
135
Stored Procedure ...
• Programa formado por variáveis, comandos SQL e
comandos de controle de fluxo, armazenado no banco
de dados
• Pode ser executado manualmente ou chamado de um
programa de aplicação ou de outro procedimento
armazenado
• Reduz tráfego de dados na rede, além de melhorar a
performance de acesso aos dados
• Execução mais rápida que comandos SQL porque não
precisa ser pré-compilada e otimizada a cada execução
136
... Stored Procedure ...
• Facilita a manutenção, pois uma alteração em
stored procedure é feita só no servidor
• Aceita parâmetros de entrada e pode retornar
resultados, além de indicação de sucesso ou
causa da falha na execução
• Difere de função pois não retorna valor nem
pode ter seu nome usado numa expressão
137
Triggers ...
Trigger
• um tipo de procedimento armazenado no banco
de dados, que é executado quando uma tabela é
atualizada
• usado para:
– manter integridade referencial
– criar uma coluna a partir de outras
– replicar alterações em uma tabela
– atualizar outras tabelas quando uma tabela
sofre alteração
138
...Triggers ...
Por que usar Trigger?
• Regras de negócio ficam armazenadas no
banco de dados e são sempre executadas
não importando se a alteração foi promovida
por programa de aplicação ou por comando
SQL interativo
• Redução da complexidade de programas de
atualização
139
...Triggers ...
Por que não usar Trigger?
• Aumenta a complexidade do banco de
dados
• Uma atualização do banco de dados pode
provocar a execução de um trigger que
altera o banco de dados que provoca a
execução de outro trigger,... em cascata
140
Integridade Referencial Declarativa...
Depa - tabela “pai” Func - tabela “filho”
Depa (cdd, dsd) Func (mat, nom, dep)
• create table depa (cdd char(3) not null,
dsd char(20) primary key (cdd))
• create table func (mat integer not null,
nom char(30), dep char(3))
primary key (mat) foreign key (dep) references
depa on delete set null
• ao ser excluído um departamento, o campo dep
dos funcionários desse departamento ficará null
141
...Integridade Referencial Declarativa
142
...Integridade Referencial Procedural...
•Opção CASCADE via trigger
create trigger tDelDepa on Depa for DELETE as
begin
declare @errno int, @errmsg varchar(255)
delete Func from Func,deleted
where Func.dep = deleted.cdd
return
error:
raiserror @errno @errmsg
rollback transaction
end
go
143
Cursor ...
• A linguagem SQL manipula conjuntos de linhas,
enquanto que as linguagens comuns manipulam
registro (linha) a registro
• Uma consulta SQL (query) pode retornar zero
ou mais linhas
• Retornando várias linhas é necessário criar um
cursor para manipular uma linha de cada vez
144
... Cursor ...
• Um cursor pode ser visto como se fosse um
arquivo, logo pode ser tratado pelos comandos:
open, fetch, close.
• Um cursor pode ser pensado também como se
fosse um apontador que vai sendo deslocado
linha a linha, apontando-as
• Assemelha-se a um dedo que vai correndo
sobre as linhas de um texto, apontando-as
145