Você está na página 1de 145

BANCO DE DADOS

Prof. Esp. Nivaldo Cardoso


4º Bloco do Curso de Tecnologia em Redes
de Computadores – CET

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

Produtos Fornecedores Departamentos

4
... SGBD X SGA ...
Mundo real
MER
SGBDOO
Relacional
Rede
Hierárquico
SGBD Específico
SGA
Máquina
5
... MODELOS DE DADOS ...

Modelo Conceitual Mundo


Mundo
real
real
descreve dados num nível de
abstração muito próximo ao Conceitual
mundo real Lógico
Exemplos:
• Modelo Semântico Físico
• MER
6
... MODELOS DE DADOS ...
Modelo Lógico Mundo
Mundo
descreve dados ao nível de real
real
registro bem próximo da
implementação física. Conceitual

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

{ENTIDADES} {TABELAS} {GRAFOS} {ÁRVORES}

ENTIDADE LINHA REGISTRO SEGMENTO

RELACION. IMPLÍCITO EXPLÍCITO EXPLÍCITO


PARES COLS. PONTEIRO PONTEIRO

ATRIBUTO COLUNA CAMPO CAMPO

10
POR QUE MODELAGEM DE DADOS ?...

• com o crescente uso de sgbd’s , em face da


necessidade de aplicações cada vez mais
complexas, é inevitável esta abordagem
• os relacionamentos representam a obtenção
de respostas a certas necessidades de
informação por parte do usuário
11
...POR QUE MODELAGEM DE DADOS ?
• modelo prévio de dados é um
excelente instrumento de documentação
do mundo real, em tempo de entrevista
• levanta e documenta a parte mais estável
de uma aplicação: os dados
• execelente ferramenta gráfica de projeto
conceitual de bd
12
MODELO DE ENTIDADES E RELACIONAMENTOS (MER) ...

• proposto por Peter S. Chen - 1976


• entidade
-algo sobre o que se armazena dados
-representação abstrata de algo do mundo real
ex.: aluno, cliente, nota fiscal, ...
• conjunto de entidades - grupo de entidades
com características semelhantes ex.: alunos,
clientes, notas fiscais,...
13
... MER ...
ATRIBUTOS
• são características de entidades ou de
relacionamentos
• são funções que levam um ponto do conjunto de
entidades ou de relacionamentos a um ponto de
um conjunto de valores ° 100
FUNCIONÁRIOS MATRÍCULA ° 200

°
°
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

ALUNOS CURSA DISCIPLINAS

MAT NOM NOTA PERÍODO COD DES

15
... MER ...
• conjunto de relacionamentos - grupo de
relacionamentos do mesmo tipo ;
no caso binário, conjunto de pares ordenados
c (a, d) onde: a ed  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

PAPEL DA ENTIDADE NO RELACIONAMENTO


19
... MER ...
• RELACIONAMENTO TERNÁRIO
ITENS P-R-I REQUISIÇÕES
M N

PEDIDOS

- A UM ITEM E UM PEDIDO CORREPONDEM N REQUISIÇÕES

- A UMA REQUISIÇÃO E UM PEDIDO CORRESPONDEM M ITENS

- A UMA REQUISIÇÃO E UM ITEM CORRESPONDEM P PEDIDOS

20
... MER ...
• RELACIONAMENTO TERNÁRIO ...
PROFESSORES P-A-D ALUNOS
1 N
M

DISCIPLINAS

- UM ALUNO CURSA UMA DISCIPLINA COM UM PROFESSOR

- UM PROFESSOR MINISTRA UMA DISCIPLINA PARA N ALUNOS

- UM PROFESSOR MINISTRA PARA UM ALUNO M DISCIPLINAS

21
... MER
• RELACIONAMENTO QUATERNÁRIO
CDC CLIENTES NMC

N
CDS HOR-INI HOR-FIM CDA

SISTEMAS EXECUTA ATIVIDADES


M P

NMS NMA
DT-INI Q DT-FIM

MAT FUNCIONÁRIOS NMF


22
EXTENSÕES DO MER ...
• atributos compostos - formados por mais de um
atributo
• atributos multivalorados - levam uma entidade a
mais de um ponto do conjunto de valores
oo FONES
CLIENTES

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

MAT NOM NOTA PERÍODO COD DES

26
... EXTENSÕES DO MER ...
Agregação / Decomposição
Turmas
Alunos m n Disciplinas
Cursa

Aluno “é-parte” Disciplina “é-parte”


da Turma Ensina da Turma

Professores Não há herança

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

Médico “é-parte” Paciente “é-parte”


Faz da Consulta
da Consulta

Exames Não há herança


28
... EXTENSÕES DO MER ...
• agregação - abstração que permite:
- tratar relacionamentos como entidades de nível
mais alto
- modelar um relacionamento entre uma entidade e
um relacionamento (este geralmente 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

Engenh Secretar Gerentes Mensalist Comission


1 1
nr-crea toq.p.hora sal-mes vlc
Gerencia Emite
3 Espec de Func:
Engehn/Secretar
1 n
Gerentes
Mensalist/Comission Projetos N.Fiscais
34
... EXTENSÕES DO MER ...
GEN / ESPEC Funcionários
ZÉ SÁ ED DÉ DI JÔ
Pedreiros
Engenheiros

SÁ DÉ
ZÉ ED JÔ

Um engenheiro “é-um” funcionário


ZÉ, engenheiro, é o funcionário ZÉ
O engenheiro ZÉ é a mesma entidade que o funcionário ZÉ,
apenas está desempenhando um papel diferente
35
... EXTENSÕES DO MER ...
GEN / ESPEC Funcionários
ZÉ SÁ ED DÉ DI 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 ...

Especialização pode ser Total (T), Parcial (P),


Exclusiva (E) ou com Interseção (I)
Pessoas Pessoas (P,I)
(T, E)
Nomeados Concursados
Homens Mulheres (P,E)

Eng. Secret.
GEN / ESPEC
37
... EXTENSÕES DO MER ...

É importante modelar especialização quando:


• Certos atributos aplicam-se somente a algumas e
não a todas as entidades(objetos) da superclasse;
uma subclasse é um conjunto de entidades ao qual
estes atributos se aplicam
• Alguns relacionamentos podem envolver apenas as
entidades da subclasse(apenas os comissionistas
emitem nota fiscal)
38
... EXTENSÕES DO MER ...
É importante modelar especialização quando:...
• há acréscimo de clareza e semântica ao
modelo
• há um certo número de atributos particulares
de uma ou mais subclasses
• alguns relacionamentos envolvem apenas
elementos de uma subclasse
39
... 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

Placa NrPassag VelMax Placa NrEixos Tonelagem

O relacionamento (1:1) entre objetos da superclasse e de


uma subclasse é do tipo “é-um” (caminhão é um veículo)
41
... EXTENSÕES DO MER ...

MER 1 n
Aloca

Depa 1 Func
1
Gerencia

MERE 1 n
Aloca Func

Depa (P) especializ


1 1
Gerencia Gerentes
42
... EXTENSÕES DO MER

MERE Aloca Func


1 n
especialização
Depa (P)
1 1
Gerencia Gerentes
MR o 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 ...

chave secundária ou alternada - conjunto de


atributos que identificam um grupo de entidades
ex.: SAL, SEX, ...
CDDEP
DEPARTS FUNCS DEPENDS
SAL
CDD NMD MAT NMF SEX RG MATF NRD NMD

45
... CHAVES ...

•chave estrangeira - conjunto de atributos que são


chave primária em outro conjunto de entidades
ex.:CDDEP, MATF , ...
CDDEP
DEPARTS FUNCS DEPENDS
SAL
CDD NMD MAT NMF SEX RG MATF NRD NMD

46
... CHAVES ...

• chave externa ou surrogate key - número sequencial


sem qualquer semântica, introduzido para ser chave
primária de um conjunto de entidades ex.:NRD,
MAT, ...
CDDEP
DEPARTS FUNCS DEPENDS
SAL
CDD NMD MAT NMF SEX RG MATF NRD NMD

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

MAT NOM CDP NMP


DT-ALOC
DT-ALOC

FUNCIONÁRIOS PROJETOS

MAT NOM CDP CDP NMP

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

CDM NMM CDH NMH CDM


1 : 1 DT-POSSE
ATRIBUTOS DO RELACIONAMENTO VÃO PARA A ENTIDADE
QUE TEM PARTICIPAÇÃO TOTAL NO RELACIONAMENTO
CHAVE PRIMÁRIA DA ENTIDADE DO LADO PARCIAL VAI
PARA ENTIDADE QUE PARTICIPA TOTALMENTE
51
...MAPEAMENTO MER --> MR...

NOM CHEFE 1

FUNCIONÁRIOS CHEFIA

MAT
N
SUBORDINADO

FUNCIONÁRIOS

MAT NOM MATCHEFE

52
...MAPEAMENTO MER --> MR...
COD M
COMPONENTES
PEÇAS COMPÕE QTD

DES N
COMPOSTOS
CD-COMPONENTE
COD

PEÇAS QTD COMPÕE

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

MAT CDC DT-CUR CDC NMC

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)

FUNCIONÁRIOS LOTAÇÕES DEPARTAMENTOS

MAT NOM MAT CDD DAT CDD NMD

100 ARI 100 ADM JAN / 80 VEN VENDAS


200 ANA 100 VEN MAR / 85 PRO PRODUÇÃO
300 EVA 200 VEN OUT / 86 ADM ADMINISTRAÇÃO
300 PRO MAR / 90

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

100 ANA VEN tuplas (linhas)


200 EDU PRO
300 ARI ADM
400 EVA O&M valor de atributo
domínios
65
... Modelo Relacional ...
• Domínio – conjunto de valores atômicos. Ex.:
- conjunto de nomes dos funcionários
- conjunto de códigos de departamentos
- conjunto de valores para sexo: M ou F
• Esquema de uma relação: R (a1, a2, .....,an) Ex.:
Func (mat, nom, sal, sex, depart)
• Grau de uma relação – número de atributos da
tupla da relação. Grau da relação acima = 5

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

100 ANA ADM


200 EVA O&M
300 ARI PRO
400 EDU VEN

MATRÍCULAS NOMES DEPARTAMENTOS

67
... Modelo Relacional ...
UMA RELAÇÃO PODE SER REPRESENTADA SOB
A FORMA DE TABELA, ONDE:
- Cada coluna representa um atributo

- Cada linha representa uma ocorrência de:


* UMA
ENTIDADE * UM
RELACIONAMENTO
- Linha (tupla) é um conjunto de atributos
68
... Modelo Relacional ...
UMA RELAÇÃO PODE SER REPRESENTADA SOB A
FORMA DE TABELA, ONDE: ...
- DOMÍNIO - conjunto de valores do atributo

- GRAU DE UMA RELAÇÃO - número de atributos da tupla da


relação
- CHAVE PRIMÁRIA - um ou mais atributos que identificam
uma única linha (tupla)
- EX.: ALUNO (MAT, NOM, DT-NASC, SEXO)
69
... Modelo Relacional ...
Esquema relacional
Func (mat, nom, sal, sex, dtNasc, cdd, match)
Depa (cdd, dsd, orcamento)
Depe (mat, seq, nomd, sexd, parentesco)
Proj (cdp, dsp)
FunPro (mat, cdp, horasTrab)
Curso (cdc, dsc, cargaHoraria)
FunCurs (mat, cdc, datc, nota)

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 ...

• Simplificação de relações a fim de que os


algoritmos de atualização de dados sejam mais
simples e mais claros
• Como sub-produto: ELIMINAÇÃO DA
REDUNDÂNCIA DE DADOS
• Resultado das pesquisas de E. F.CODD
74
... NORMALIZAÇÃO ...
• a matrícula de um funcionário determina
funcionalmente o nome bem como o salário
do funcionário
MATRÍCULA NOME
MATRÍCULA SALÁRIO
Se A determina funcionalmente B, então
B depende funcionalmente de A, logo:
NOME DEPENDE FUNCIONALMENTE DE
MATRÍCULA
75
... NORMALIZAÇÃO ...
• DEPENDÊNCIA FUNCIONAL
FUNC ( MAT, NOME, SAL, CPF)
MAT
MAT NOME
MAT SAL
MAT CPF NOME

CPF SAL
CPF NOME SAL
CPF MAT
CPF

76
... NORMALIZAÇÃO ...

• DEPENDÊNCIA FUNCIONAL COMPLETA


um conjunto de atributos B de R é
completamente dependente funcionalmente de
outro conjunto de atributos A de R, se B
depende funcionalmente de A, como um todo

77
... NORMALIZAÇÃO ...
• TAREFA ( MAT, NOM, NU-PROJ, NM-PROJ, HORAS-TRAB)

MAT, NU-PROJ HORAS-TRAB


MAT NOM

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 ?

PEDIDO (NR-PED, NR-CLIENTE, DT-PED, VL-PED)

HIST-ALUNO (MAT,NOM,CD-DISCIPLINA,NOTA, PERIODO)

VENDA (NR-PED, NR-CLI, NR-VENDEDOR, CD-ITEM,

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)

DEPEN (MAT, SEQ, NM-DEP, DT-NASCD,PARENTESCO)


81
... NORMALIZAÇÃO ...
• 2FN - A RELAÇÃO ESTÁ EM 1FN
- OS ATRIBUTOS NÃO-CHAVE
DEPENDEM
FUNCIONALMENTE
ESTOQ(CD-ITEM, NM-ITEM, ESTAB,DA CHAVE TODA
FONE-ESTAB, QTD)
CD-ITEM ESTOQ não está em 2FN: nm-item
e fone-estab não dependem da
NM-ITEM
chave toda. Normalizando:
ESTAB ITEM (CD-ITEM, NM-ITEM)
FONE-ESTAB
ESTA (ESTAB, FONE-ESTAB)
QTD ESTO (CD-ITEM, ESTAB, QTD)
82
... NORMALIZAÇÃO ...
• 3FN - A RELAÇÃO ESTÁ EM 2FN
- OS ATRIBUTOS NÃO-CHAVE SÃO
INDEPENDENTES ENTRE SI
ITEM-PED (NR-PED, NR-ITEM, QTD, PR-UNIT, VL-ITEM)

NR-PED ITEM-PED NÃO ESTÁ EM 3FN :

NR-ITEM VL-ITEM DEPENDE DE PR-UNIT


E DE QTD QUE NÃO SÃO CHAVE
QTD

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 ...

• Relação não BCFN  2 relações BCFN

Alun Prof Disc Prof Disc Prof Alun


Zé Ara BD Ara BD Ara Zé
Ed Gui SI Gui SI Ara Ed
Zé Val SI Val SI Gui Ed
Ed Ara BD Val Zé

Determinante é um atributo que determina funcionalmente


outro atributo
86
... NORMALIZAÇÃO ...
• 4FN – RELAÇÃO ESTÁ EM 3FN
– RELAÇÃO NÃO PODE CONTER DOIS OU MAIS
“FATOS MULTIVALORADOS INDEPENDENTES”
RELATIVOS A UMA ENTIDADE

Prof Disc Estab Prof


A BDisc Estab Prof Disc Estab
C
Ara BD UFC Ara BD ? Ara BD UFC
Ara BD UNI Ara SI ? Ara BD UEC
Ara SI UEC Ara ? UFC Ara BD UNI
Val CC UNI Ara ? UNI Ara SI UFC
Val BD UEC Ara ? UEC Ara SI UEC
Ara SI UNI

Prof ensina quais discs?


Prof ensina em que estabs? B e C representariam A
87
... NORMALIZAÇÃO ...
• 4FN – RELAÇÃO ESTÁ EM 3FN
– RELAÇÃO NÃO PODE CONTER DOIS OU MAIS
“FATOS MULTIVALORADOS INDEPENDENTES”
RELATIVOS A UMA ENTIDADE
PDE (Prof, Disc, Estab)
Profs Estabs PE Profs PD
PDE
Estabs Discs
Discs “Fatos Independentes”
“Fatos Dependentes” Ara ensina BD
Ara ensina BD na UFC Ara ensina na UFC
88
... NORMALIZAÇÃO ...
• Caso se deseje saber apenas:
Que disciplinas ensina o professor P? e
Em que estabelecimentos ensina o professor P?
A relação PDE (Prof, Disc, Estab) não está em
4FN porque há dois fatos multivalorados
independentes acerca da entidade Prof.
Normalizando:
P-D (Prof, Disc)
P-E (Prof, Estab)
89
... NORMALIZAÇÃO ...
•4FN – RELAÇÃO ESTÁ EM 3FN
– RELAÇÃO NÃO PODE CONTER DOIS OU MAIS
“FATOS MULTIVALORADOS INDEPENDENTES”
RELATIVOS A UMA ENTIDADE

Prof Disc Estab Prof Disc Prof Estab


Ara BD UFC Ara BD Ara UFC
Ara BD UNI Ara SI Ara UNI
Ara SI UEC Val CC Ara UEC
Val CC UNI Val BD Val UNI
Val BD UEC Val UEC
--Não em 4 FN--- ----- Relações em 4 FN ------
90
... NORMALIZAÇÃO ...
5FN – RELAÇÃO ESTÁ EM 4FN
– O CONTEÚDO DE INFORMAÇÃO DA RELAÇÃO NÃO
PODE SER RECONSTRUÍDO A PARTIR DE VÁRIAS
RELAÇÕES DE MENOR GRAU QUE TENHAM CHAVES
DIFERENTES - Se um prof. ensina uma disciplina e em
Prof Disc Estab
um estabelecimento onde é ensinada
Ara BD UFC esta disciplina,então o prof. ministra
Ara APS UECE esta disciplina neste estabelecimento
Ara APS UFC - A relação ao lado está em 4FN (há 2
Ara BD UECE fatos multivalorados dependentes)
Val BD UECE - A relação não está em 5FN (dá para
reconstruir o conteúdo de informação
a partir de relações de menor grau) 91
... NORMALIZAÇÃO ...
Prof Disc EstabA relação ao lado, embora em 4FN, não
está em 5FN porque dá para
Ara BD UFC reconstruir o conteúdo de informação a
Ara APS UECE partir das relações de menor grau abaixo
Ara APS UFC (Há
Ara BD UECE uma linha nas relações abaixo para Ara
Val BD UECE ensina BD e duas linhas ao lado)

Prof Disc Prof Estab Estab Disc


Ara BD Ara UFC UFC BD
Ara APS Ara UECE UFC APS
Val BD Val UECE UECE BD
UECE APS
92
... NORMALIZAÇÃO ...
Prof Disc EstabA relação ao lado, embora em 4FN, não está
em 5FN porque dá para reconstruir o
Ara BD UFC conteúdo de informação a partir das 3
Ara APS UECE relações de menor grau
Ara APS UFC Val ensina BD; há BD na UFC; vê-
Ara BD UECE se que Val não ensina BD na UFC na
Val BD UECE relação Prof X Estab

Prof Disc Prof Estab Estab Disc


Ara BD Ara UFC UFC BD
Ara APS Ara UECE UFC APS
Val BD Val UECE UECE BD
UECE APS
93
... NORMALIZAÇÃO ...
• normalização x performance -
ideal do ponto de vista de performance:
todos os dados em um único registro

- ideal do ponto de vista de simplicidade:


várias relações em 5FN
• como melhorar a performance em bd`s relacionais
- criar índice (evita
varrer tabela) - armazenar resumos

94
... NORMALIZAÇÃO ...
• normalização x performance ...
- índices
a) chaves estrangeiras deveriam ser indexadas

it-vendidos(nr-venda, nr-linha,cd-it, qtd, preço)

criando-se índice para cd-it na relação acima,


obtém-se melhor tempo de resposta para a
consulta:
“qual o valor vendido do item x?”
95
... NORMALIZAÇÃO ...
• normalização x performance ...
- índices
b) criar índices para atributos que possam
ser usados como argumento de pesquisas que exijam
respostas rápidas
vendas(nr-venda, nr-cli, dt-venda)
criando-se índice para dt-venda na relação vendas,
obtém-se resposta rápida para a consulta:
“quanto foi vendido na data x?”
96
... NORMALIZAÇÃO ...
• normalização x performance ...
- índices
c) criar um índice único para cada chave primária

- 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

ALTERAÇÃO - alterar descrição de um item, altera


vários registros
EXCLUSÃO - excluir único registro que contém um
item perde dados desse item
ALÉM DISSO, DS-IT DEPENDE FUNCIONALMENTE
APENAS DE PARTE DA CHAVE. LOGO ....
101
NORMALIZAÇÃO Ex NF 5
• ITENS (CD-IT, DS-IT, PREÇO)

• IT-NF (NR-NF, CD-IT, QTD, VAL)

• CLIEN(NR-CLI, NM-CLI, EN-CLI)

• VEND (CD-VENDEDOR, NM-VENDEDOR)

• 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

CLIEN NFIS IT-NF

EN-CLI
NR-CLI NM-CLI

VEND ITENS

CD-VENDEDOR NM-VENDEDOR CD-IT DS-IT


103
Álgebra Relacional...
• As operações que manipulam os dados no
modelo relacional formam a Álgebra Relacional
• As operações da Álgebra Relacional produzem
sempre uma relação como resultado
• Operações da Álgebra Relacional:
Seleção, Projeção, Produto Cartesiano ,Junção,
União, Interseção, Diferença

104
...Álgebra Relacional...
Operações
SELEÇÃO ()– seleciona as tuplas que
satisfazem a uma condição

sal=300 (Func) – seleciona os Funcionários de


salário igual a 300
sal=300 and cdd=‘P’ (Func) – seleciona os que
ganham 300 no departamento de produção 105
...Álgebra Relacional...
Operações
PROJEÇÃO () – seleciona colunas

 nom, sal, cdd (Func) – obtém nome, salário e


código do departamento dos funcionários
 mat, nom (Func) – obtém matrícula e nome
dos funcionários
106
...Álgebra Relacional...
Operações
PRODUTO CARTESIANO ()
a1, a2, a3b1,b2 a1, a2, a3, b1, b2
a4, a5, a6b3, b4 a1, a2, a3, b3, b4
b5, b6 a1, a2, a3, b5, b6
a4, a5, a6, b1, b2
a4, a5, a6, b3, b4
a4, a5, a6, b5, b6
A B A X B

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 AB
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

As opções para ON DELETE


• SET NULL - torna null o valor da chave
estrangeira correspondente ao valor da chave
primária da “linha pai” excluída
• CASCADE - exclui as “linhas filho”
correspondentes à “linha pai” excluída
• RESTRICT - não exclui a “linha pai” se houver
“linha filho” correspondente

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

Você também pode gostar