SGBD v3
SGBD v3
SGBD v3
Modelagem e Projeto de
Banco de Dados
e
Sistemas de Gerenciamento de
Banco de Dados
Considerações
Muito obrigado,
-3-
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Apresentação
Este curso tem como objetivo, oferecer uma noção geral sobre a construção
de sistemas de banco de dados. Para isto, é necessário estudar modelos
para a construção de projetos lógicos de bancos de dados, modelos para a
construção de projetos físicos de banco de dados, técnicas de controle de
dependência de dados e métodos de consultas.
-5-
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
-6-
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Capítulo 1
-7-
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
-8-
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Auto Informação
-9-
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Programas de
Aplicação/Consulta
Software para
processar a
manipulação
Software para
acesso aos
dados
Meta-Dados Dados
Figura 1
Abstração de Dados
Usuários
- 10 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Usuários Finais
- 11 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Controle de Redundância
Toda vez que for necessário atualizar um arquivo de um grupo, então todos
os grupos devem ser atualizados para manter a integridade dos dados no
ambiente como um todo;
Compartilhamento de Dados
Um banco de dados pode incluir uma variedade de dados que estão inter-
relacionados de várias formas. Um SGBD deve fornecer recursos para se
representar uma grande variedade de relacionamentos entre os dados, bem
como, recuperar e atualizar os dados de maneira prática e eficiente.
Tolerância a falhas
- 12 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Modelos de Dados
- Modelo de dados conceitual (alto nível), que fornece uma visão mais
próxima do modo como os usuários visualizam os dados realmente
(Entidades e relacionamentos);
- 13 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- Modelo de dados físico (baixo nível), que fornece uma visão mais
detalhada do modo como os dados estão realmente armazenados no
computador (Tabelas, índices, chaves, arquivos físicos, memória, etc.).
Transformação do Modelo
ERA em tabelas Conceitual
Modelo
Físico
Figura 2
Esquemas e Instâncias
- 14 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Usuários
Finais
Mapeamento
Esquema conceitual externo
Nível conceitual
Conceitual
Mapeamento
Nível interno Esquema
conceitual interno
Interno
Figura 3
Independência de Dados
- 15 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Pré-compilador da Compilador da
Processador da
linguagem de linguagem de
Consultas
manipulação de dados Definição de Dados
Código objeto
Gerenciador de
dos programas
Bancos de Dados
de aplicação
SGBD
Gerenciador de
Arquivos Arquivos
de dados Dicionário
de dados
Memória
de disco
Figura 4
- 16 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Modelo Hierárquico
Cardiologia
Divisão do Hospital
2 Júlio
Figura 5
Modelo de Rede
- 17 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Suporta o tipo de manipulação (DML) que trata um registro por vez, com
linguagens de propósito geral (COBOL) chamada de linguagem HOST.
Paciente
Endereço
CPF Nome
Rua Cidade CEP
Medicado por
Médico
Nome Divisão
Figura 6
Outras classificações
- 18 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Entidades e Atributos
Entidade (0,n)
Atributo multi-valorado (telefone)
Figura 7
- 19 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
código CPF
(1,n) (1,n)
Produto Venda Cliente
descrição nome
data da venda
Figura 8
Grau de um Relacionamento
Senha
CRM CPF
(0,1)
(1,n) (1,n)
Médico Consulta Paciente
Figura 9
- 20 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Senha
(1,1)
Liberação
(0,1)
CRM CPF
(1,n) (1,n)
Médico Consulta Paciente
Figura 10
código CPF
(1,n) (1,1)
Depto Empregado
descrição nome
Figura 11
- 21 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
supervisor
(1,n)
Funcionário Chefia
(1,1)
supervisionado
Figura 12
(0,1)
Pessoa Casada
(0,1)
Figura 13
É necessária
(1,n)
Disciplina Pré-Req
(1,n)
Necessita
Figura 14
É componente
(0,1)
Peça Compõe
(0,n)
É composta
Figura 15
Cobertura
- 22 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Pessoa
(T,E)
Física Jurídica
Figura 16
Funcionários
(P,E)
RH INFO
Figura 17
Profissional
de Cinema
(P,S)
Diretor Ator
Figura 18
Cargo
(T,S)
Empregado Chefe
Figura 19
- 23 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
código Matrícula
(1,n) (1,n)
Disciplina Cursa Aluno
descrição nome
Figura 20
(0,1) (1,1)
Empregado Gerencia Depto
Figura 21
(1,n) (1,n)
Empregado Trabalha Projeto
Figura 22
- 24 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Alguns TIPOS ENTIDADE podem não ter um atributo chave por si só. Isto
implica que não poderemos distinguir algumas entidades por que as
combinações dos valores de seus atributos podem ser idênticas. Estes
TIPOS ENTIDADE são chamados entidades fracas. As entidades deste tipo
precisam estar relacionadas com uma entidade pertencente ao TIPO
ENTIDADE proprietária. Este relacionamento é chamado de relacionamento
identificador.
Matrícula Nome
(0,1) (1,1)
Titular Venda Dependente
Nome Nascimento
Figura 23
Figura 24
- 25 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Atributo chave
(RG)
Tipo
Relacionamento
Identificador
Atributo derivado
(dígito verificador)
Figura 25
- 26 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
O Modelo Relacional
O modelo relacional foi criado por CODD em 1970 (Edgar Frank Cood,
recentemente falecido – 18 de abril de 2003, mais informações podem ser
obtidas no site IBM) com a finalidade de representar os dados como uma
coleção de relações, onde cada relação é representada por uma tabela, ou
falando de uma forma mais direta, um arquivo. Porém, um arquivo é mais
restrito que uma tabela. Toda tabela pode ser considerada um arquivo,
porém, nem todo arquivo pode ser considerado uma tabela.
Quando uma relação é pensada como uma tabela de valores, cada linha
nesta tabela representa uma coleção de dados relacionados. Estes valores
podem ser interpretados como fatos descrevendo uma instância de uma
entidade ou de um relacionamento. O nome da tabela e das colunas desta
tabela são utilizados para facilitar a interpretação dos valores armazenados
em cada linha da tabela. Todos os valores em uma coluna são
necessariamente do mesmo tipo.
SGBD
DATABASE 1
DATABASE 2
Coluna, Atributo
ou Propriedade
Figura 26
- 27 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Por exemplo:
Por exemplo, o conjunto: (RA, Nome, Endereço) é uma super chave para
estudante, porém, não é uma chave, pois se tirarmos o campo Endereço
continuaremos a ter uma super chave. Já o conjunto (Nome da Revista,
Volume, No da Revista) é uma super chave e uma chave, pois qualquer
um dos atributos que retirarmos, deixaremos de ter uma super chave, ou
seja, (Nome da Revista, Volume) não identifica uma única tupla.
Em outras palavras, uma super chave é uma chave composta formada por
mais de um atributo.
Quando uma relação possui mais que uma chave (não confundir com chave
composta) - como, por exemplo, RG e CIC para empregados - cada uma
destas chaves são chamadas de chaves candidatas. Uma destas chaves
candidatas deve ser escolhida como chave primária.
- 28 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Matrícula
Nome
Empregados Telefone
CPF
Figura 27
b) Para cada entidade fraca com entidade proprietária é criada uma tabela
no modelo Relacional, incluindo todos os atributos desta entidade fraca.
Para cada atributo composto são inseridos apenas os componentes
simples de cada um. A chave primária desta relação será composta pela
chave parcial da entidade fraca mais a chave da entidade proprietária;
Matrícula Número
Nome
(0,n) (1,1)
Telefone Empregados Dependentes
CPF
Nome
Figura 28
- 29 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Apólice Matrícula
Nome
Seguro de (1,1) (0,1)
Empregados Telefone
Saúde
CPF
Data opção
Figura 29
Número Matrícula
Nome
(1,n) (1,1)
Níveis Empregados Telefone
Salariais
CPF
Valor
Figura 30
- 30 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
número Matrícula
Nome
(0,n) (0,n)
Projetos Alocação Empregados
CPF
descrição
Figura 31
f) Para cada atributo multivalorado A1, cria-se uma tabela T1, contendo o
atributo multivalorado A1, mais o atributo chave C da tabela que
representa a entidade ou relacionamento que contém A1; a chave
primária de T1 será composta por A1 mais C; se A1 for composto, então
a tabela T1 deverá conter todos os atributos de A1;
Matrícula
Nome
Empregados telefone (0,n)
CPF
Figura 32
g) Para cada relacionamento n-ário, n > 2, cria-se uma tabela T1, contendo
todos os atributos do relacionamento; a chave primária de T1 será
composta pelos atributos chaves das entidades participantes do
relacionamento;
Placa CPF
(0,n) (0,n)
Caminhão Direções Motorista
(0,n)
Nome Nome
Numero
Trajetos Rodovia
Sentido
Figura 33
TB=MOTORISTA(CPF, Nome)
- 31 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
TB=CAMINHÃO(Placa, Nome)
TB=TRAJETOS(Numero, Rodovia, Sentido)
TB=DIRECOES(CPF, Placa, Número)
FK=DIRECOES(CPF) Æ MOTORISTAS(CPF)
FK=DIRECOES(Placa) Æ CAMINHÕES(Placa)
FK=DIRECOES(Número) Æ TRAJETOS(Número)
E E EF
1 N N N
E E E E E E
ou
E E
mv
E
c
E
7o Passo - Relacionamento
n-ário
E E
ou E E
Figura 34
- 32 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Exercícios
Aula inicial
- 33 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 34 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Aula Inicial
Departamento
DRH
Funcionário
Material
Projeto
Dependente
Figura 35
- 35 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
III) Problemas:
- 36 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Exercícios
Mini Mundos
- 37 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 38 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Mini mundo 1
Todos os imóveis são comprados pela imobiliária para então, serem colocados a
venda.
- relação de todos os imóveis disponíveis para venda, contendo para cada um:
Endereço, Bairro, Área (m2), descrição, proprietário antigo (o atual é a
administradora) e o preço mínimo para a venda;
- relação de todos os imóveis vendidos, por bairro, contendo para cada um:
Bairro, proprietário antigo, proprietário novo, preço de venda (ao proprietário
novo) e preço de compra (peal imobiliária);
- relação dos proprietários que compraram mais de um imóvel na imobiliária
(nome , CPF, endereço e telefone);relação dos proprietários que venderam mais
de um imóvel para a imobiliária (nome e telefone).
- 39 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Mini mundo 2
Todo aparelho vendido possui garantia de 1 ano, a partir da data de venda. Isto
significa que qualquer troca só poderá ser realizada dentro deste período, mesmo
que já tenha havido trocas em função desta compra.
Qualquer cliente pode realizar uma troca, mesmo que não tenha sido o comprador.
Os aparelhos defeituosos são devolvidos para a fábrica e não mais retornam para a
loja.
- 40 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Mini mundo 3
Requisitos de informação:
- 41 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Mini mundo 4
- 42 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Uma mesma ação pode ser posta a venda por um mesmo cliente em
diversas ordens durante o pregão, desde que o saldo permita. Da mesma
forma que uma mesma ordem pode ser negociada em vários lotes que
somados não ultrapassem a quantidade da ordem. Com isso a mesma
ordem pode acabar sendo negociada aos poucos por várias corretoras e ou
pela mesma várias vezes.
- 43 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Mini mundo 6
Cada médico cadastrado, possui mais de uma especialidade que segue o padrão da
AMB: código com 8 dígitos e descrição com 100 caracteres e só podem estar
vinculados a, no máximo, 4 Hospitais.
- 44 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Mini mundo 7
- 45 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Mini mundo 8
- 46 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Mini mundo 9
- 47 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Mini mundo 10
Uma empresa deseja fazer um “bolão de apostas“ centre seus funcionários, com
base na Copa do Mundo de Futebol.
As apostas serão feitas pela Internet e o valor depositado em uma conta corrente
definida pelo funcionário que gerenciará o “bolão”.
“O apostador joga várias cartelas que contém palpites individuais sobre o placar
dos jogos que se realizam entre dois times”
Requisitos de informação:
- 48 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Mini mundo 11
As gravadoras são identificadas pelo CGC, razão social, endereço, uma pessoa de
contato e um WEB SITE e são responsáveis pela produção de vários CDs.
Os CDs recebem uma classificação que determina sua categoria (ROCK, POP, MPB,
CLÁSSICA, SERTANEJO, PAGODE etc....). Esta categoria define inclusive, o maior e
o menor preço para comercialização. São registradas também, as seguintes
informações para cada CD: nome, preço, data de lançamento e a quantidade de
indicações.
- 49 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 50 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Capítulo 2
Dependência Funcional,
Normalização e
Engenharia Reversa
- 51 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 52 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Dependência Funcional
Departamento Æ #Funcionário ?
#Funcionário Æ Departamento ?
Nome_próprio Æ #Funcionário ?
Não, pois podem existir funcionários com o mesmo nome. Podem haver
múltiplos valores de #Funcionário para o mesmo Nome_próprio.
#Funcionário Æ Apelido ?
Observação Importante:
- 53 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Não, porque para cada papelaria há tantos valores para Preço quantos os
artigos vendidos nessa papelaria.
Normalização
Formas Normais
Uma relação está na 1a. forma normal (1FN) quando os domínios de todos
os atributos consistem apenas em valores atômicos e não existem
subgrupos de atributos repetidos.
- 54 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Exemplo:
Esta relação pode ser considerada como estando na 1a. Forma Normal ?
- 55 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Para passar para a 1FN, temos que dividir a tabela em duas, eliminando os
grupos repetidos:
Funcionário
Funcionário X Função
- 56 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Uma relação está na 2a. forma normal (2FN) quando estiver na 1FN e,
todos os atributos que não pertencem à chave dependem de toda a chave
(e não de um subconjunto da chave).
Exemplo:
Não se pode inserir a ficha de um fornecedor sem que tenha fornecido pelo
menos uma peça. Este campo nunca poderia ficar em branco, uma vez que
faz parte da chave.
- 57 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Dependência Funcional
Um atributo ou um conjunto de atributos B, de um registro R, é
funcionalmente dependente de um atributo, ou conjunto de atributos, A, do
registro R se para cada instância de A em R é encontrada uma única
instância de B.
Para o registro estar na 2FN, todas as dependências da chave têm que ser
totais. Reparemos que apenas o atributo Preço é totalmente dependente de
toda a chave. Sendo assim, há necessidade de dividir o registro em dois:
Fornecedor
- 58 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Peça/Fornecedor
3ª Forma Normal
Assim, uma tabela que esteja na 2FN pode apresentar ainda um certo tipo
de anomalia, de tal forma que possa existir um conjunto de atributos não
chave, mas que são chave para um outro conjunto de atributos. Esta
situação ocorre quando existem dependências transitivas. Uma tabela está
na 3FN se não há dependências entre atributos não chave.
A B C
A B
B C
- 59 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Exemplo:
Empregado
Projeto
- 60 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
As anomalias que podem ocorrer quando uma relação não está na 3FN são:
Vantagens/Desvantagens da Normalização
- Vantagens
- Estruturas de dados mais estáveis
- Elimina a redundância
- Obtém-se um modelo de dados mais natural e mais simples
- Evitam-se os efeitos laterais da alteração
- Evitam-se os efeitos laterais da inserção
- Evitam-se os efeitos laterais da remoção
- Desvantagens
- Favorece a proliferação do no. de tabelas
- Favorece a fragmentação exagerada
- Perigoso de seguir cegamente
Uma relação está na forma normal de Boyce Codd (FNBC) quando todo o
determinante da relação for uma chave candidata. A FNBC corresponde a
um grau de normalização mais elevado do que a 3FN e é necessária
quando:
- 61 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Chaves candidatas:
Seminário, Estudante
Estudante, Instrutor
- 62 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Observações importante
Normalização NÃO é um processo com finalidade restritiva, mas sim
de caráter organizacional.
Estratégias de Normalização
Desenvolver
Relação
Universal
Determinar todas
as Dependências
Funcionais
NÃO
Decompor a
relação em duas
Figura 36
- 63 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
#Produto
Preço
#Fornecedor
Figura 37
#Produto, #Fornecedor Æ Preço
Existências
Q_Alerta
Tipo
#Produto
Preço
#Fornecedor
Local
Telefone
Figura 38
Não está na FNBC porque existem determinantes que não são chave (Tipo)
- 64 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Tipo
Relação_01
Q_Alerta
Tipo
Figura 39
Chave candidata e determinante: TIPO
Relação_02
Existências
#Produto
Tipo
Figura 40
Chave candidata e determinante: #PRODUTO
Relação_03
Local
#Fornecedor
Telefone
Figura 41
Chave candidata e determinante: #FORNECEDOR
Relação_04
#Produto
Preço
#Fornecedor
Figura 42
Chave candidata e determinante: #PRODUTO, #FORNECEDOR
R2 (Tipo, Q_Alerta)
R3 (#Produto, Existências, Tipo)
R4 (#Fornecedor, Morada, Telefone)
R5 (#Produto, #Fornecedor, Preço)
- 65 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 66 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Exercícios
Normalização
- 67 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 68 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Normalização 1
- 69 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Normalização 2
Legenda:
- prop = proprietário
- IMV = imóvel
- cid = cidade
- est = estado
- benfs = conjunto de benefícios
- vlr = valor
- 70 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Normalização 3
Normalização 4
Normalização 5
Normalização 6
G={
{A, B} Æ C
{B, D} Æ {E, F}
{A, D} Æ {G, H}
AÆI
HÆJ
}.
- 71 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Normalização 7
- 72 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Normalização 8
- 73 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Normalização 9
DISCIPLINA(COD_DISC, DESC_DISC)
ALUNO_DISCIPLINA(COD_ALUNO, COD_DISC)
- 74 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Normalização 10
Associados
- Os TITULARES são vinculados aos PLANOS de saúde.
- Os DEPENDENTES são ligados aos TITULARES e possuem um GRAU de
parentesco
- 75 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Normalização 11
Clientes
- Os CLIENTES são associados a determinadas CLASSES.
- As CONTAS correntes pertencem aos CLIENTES e existem em um
determinado BANCO.
- 76 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Normalização 12
PD (COD_PD, DES_PD)
DEPARTAMENTO(SIG_DEP, DES_DEP)
PD (COD_PD, DES_PD)
- 77 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 78 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Exercícios
Engenharia Reversa
- 79 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 80 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Capítulo 3
Álgebra Relacional
- 81 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 82 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
A Álgebra Relacional
cod_d desc_d
DEPTO
(1,n)
POSSUI
supervisionado cod_p des_p local
RG
(1,1) (1,1)
(0,n) (0,n)
POSSUI EMPREGADO Trabalha Projeto
(1,n) (0,n)
nome
supervisor salario
POSSUI
(1,1)
nome
nasc
Dependente relacao
sexo
Figura 43
MODELO LÓGICO
- 83 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
EMPREGADO
RG NOME SALARIO COD_D RG_SUP
1 Rodrigo 1.000,00 1 6
2 Renato 1.500,00 3 2
3 Fernanda 2.500,00 2 3
4 Roberta 1.000,00 1 6
5 Flávia 500,00 3 2
6 Vera 3.000,00 1 6
7 Leonardo 1.000,00 1 6
8 Carla 500,00 3 2
9 Camilo 1.200,00 2 3
10 Lúcio 1.200,00 2 3
11 Cleôncio 5.000,00 - 11
DEPENDENTES
RG NOME NASC SEXO RELAÇÃO
1 Bruna 01/01/1987 F Filho(a)
1 Júlia 04/10/1960 F Esposa(o)
3 José 03/05/1991 M Filho(a)
4 João 10/10/1990 M Filho(a)
5 Verônica 15/08/1980 F Filho(a)
PROJETO
COD_P DESC_P LOCAL
1 FINANC SP
2 CONTAB RJ
3 SAUDE MG
4 ESTOQUE ES
DEPTO
COD_D DESC_D
1 Análise
2 Programação
3 Operação
TRABALHA
RG COD_P
1 1
2 2
3 3
4 3
5 2
6 1
7 3
8 2
9 1
10 1
1 2
6 3
5 1
7 2
- 84 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
A Operação Select
σ condição_de_seleção (nome_da_relação)
And E
Or Ou
Not Negação
Exemplos:
EMPREGADO
RG NOME SALARIO COD_D RG_SUP
1 Rodrigo 1.000,00 1 6
4 Roberta 1.000,00 1 6
5 Flávia 500,00 3 2
7 Leonardo 1.000,00 1 6
8 Carla 500,00 3 2
9 Camilo 1.200,00 2 3
10 Lúcio 1.200,00 2 3
DEPENDENTES
RG NOME NASC SEXO RELAÇÃO
1 Bruna 01/01/1987 F Filho(a)
5 Verônica 15/08/1980 F Filho(a)
- 85 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
A Operação Project
π lista_de_atributos (nome_da_relação)
DEPENDENTES
NOME NASC
Bruna 01/01/1987
Júlia 04/10/1960
José 03/05/1991
João 10/10/1990
Verônica 15/08/1980
Seqüencialidade de Operações
EMPREGADO
NOME SALARIO COD_D
Renato 1.500,00 3
Fernanda 2.500,00 2
Vera 3.000,00 1
Cleôncio 5.000,00 -
- 86 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Operações Matemáticas
EMPREGADO
RG NOME SALARIO COD_D RG_SUP
3 Fernanda 2.500,00 2 3
9 Camilo 1.200,00 2 3
10 Lúcio 1.200,00 2 3
EMPREGADO
RG_SUP
3
- 87 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
CONSULTA09 = π rg (CONSULTA07)
EMPREGADO
RG
3
9
10
EMPREGADO
RG
3
3
9
10
CONSULTA11 = π rg (TRABALHA)
TRABALHA
RG
1
2
3
4
5
6
7
8
9
10
EMPREGADO
RG
3
9
10
- 88 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
EMPREGADO
RG
3
9
10
CONSULTA14 = π rg (TRABALHA)
TRABALHA
RG
1
2
3
4
5
6
7
8
9
10
CONSULTA15 = π rg (EMPREGADO)
EMPREGADO
RG
1
2
3
4
5
6
7
8
9
10
11
- 89 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
CONSULTA16
RG
11
Produto Cartesiano
CONSULTA17
COD_D DESC_D COD_P DESC_P
1 Análise 1 Financ
1 Análise 2 Contab
1 Análise 3 Saude
1 Análise 4 Estoque
2 Programação 1 Financ
2 Programação 2 Contab
2 Programação 3 Saude
2 Programação 4 Estoque
3 Operação 1 Financ
3 Operação 2 Contab
3 Operação 3 Saude
3 Operação 4 Estoque
- 90 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Operação Junção
R x [condição_de_ junção] S
Vamos refazer as consultas 18 e 19.
CONSULTA19
T.RG P.COD_P
1 1
6 1
9 1
10 1
5 1
- 91 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 92 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Capítulo 4
- 93 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 94 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
O comando CREATE TABLE permite ao usuário criar uma nova tabela (ou
relação). Para cada atributo da relação é definido um nome, um tipo,
máscara e algumas restrições.
- 95 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Este processo não é assim tão simples pois, como vemos neste caso, a
exclusão da tabela EMPREGADO implica na alteração do projeto físico de
diversas tabelas. Isto acaba implicando na construção de uma nova base de
dados.
- 96 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
SELECT nome, rg
FROM EMPREGADO
WHERE cod_d = 2;
EMPREGADO
NOME RG
Fernanda 3
Camilo 9
Lucio 10
EMPREGADO
NOME RG
Fernanda 3
DEPTO
COD_D DESC_D
1 Análise
2 Programação
- 97 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
em álgebra relacional:
EMPREGADO
RG NOME NOME_SUP
1 Rodrigo Vera
2 Renato Renato
3 Fernanda Fernanda
4 Roberta Vera
5 Flávia Renato
6 Vera Vera
7 Leonardo Vera
8 Carla Renato
9 Camilo Fernanda
10 Lúcio Fernanda
11 Cleôncio Cleôncio
SELECT *
FROM empregado;
Sem DISTINCT
SELECT cod_d
FROM empregado;
EMPREGADO
COD_D
1
3
2
1
3
1
1
3
2
2
-
- 98 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Com DISTINCT
EMPREGADO
COD_D
1
2
2
EMPREGADO
NOME RG COD_D
Rodrigo 1 1
Flávia 5 3
Vera 6 1
Camilo 9 2
Lúcio 10 2
EMPREGADO
Nome RG COD_D
Camilo 9 2
Carla 8 3
Cleôncio 11 -
Fernanda 3 2
Flávia 5 3
Leonardo 7 1
Lúcio 10 2
Renato 2 3
Roberta 4 1
Rodrigo 1 1
Vera 6 1
- 99 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
UPDATE <tabela>
SET <coluna> = <expressão>
WHERE <condição>
- 100 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 101 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 102 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Banco de Dados
VENDAS
- 103 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 104 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
UF
end_c cidade CEP num_p
PE
(0,n) (0,n)
(1,1) (1,1)
FAZ PEDIDO PREENCHE
(0,n)
POSSUI
(1,1) (0,n)
ITENS
REQUISITA PRODUTO VU
PEDIDO
Figura 44
CLIENTE
COD_C NOME_C END_C CIDADE CEP UF CPF_CGC IE
720 Ana Rua Dez 19 Niteroi 25352-131 RJ 111111111111-11 54654
870 Flávio Av P Vargas 10 S.Paulo 15546-464 SP 222222222222-22 32132
110 Jorge Rua Caiapo 13 Curitiba 30000-311 SP 333333333333-33 8979
222 Lucia Rua Itabira 123 B.Hor. 54654-812 MG 444444444444-44
830 Pedro Av Paulista 1235 São Paulo 98610-132 SP 555555555555-55 5646
130 Edmard Rua da Prai s/n Salvador 12144-568 BA 666666666666-66 8987
410 Rudolf Largo da Lapa 27 R.de Jan. 23546-876 RJ 777777777777-77 218
20 Beth Av Climério 45 São Paulo 45665-455 SP 888888888888-88 21325
157 Livio Tv Moraes c/3 Londrina 12345-874 PR 999999999999-99 23121
180 Susana Av Baira Mar 200 Belém 98511-321 PA 010101010101-01
260 Renato Rua Mendes 56 Niteroi 12131-545 RJ 020202020202-02 21544
290 Ari Rua Meireles 98 S.Paulo 32012-112 SP 030303030303-03 184879
390 Jose Rua da Igreja 14 Uberaba 54645-477 MG 040404040404-04 189410
234 Paulo Av Rio Branco 1 Brasília 26448-253 DF 050505050505-05 21213
- 105 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
VENDEDOR
COD_V NOME_V SALARIO COMISSAO
209 Jose 1.800,00 C
111 Carlos 2.490,00 A
123 João Sinval 2.780,00 C
240 Antonio 900,00 C
720 Felipe 4.600,00 A
213 Jonas 2.300,00 A
101 João Silva 2.300,00 C
310 Josias 870,00 C
250 Bonifácio 2.930,00 B
PRODUTO
COD_P DESC_P UNIDADE VU
25 Queijo Kg 0,97
31 Chocolate Bar 0,87
78 Vinho L 2,00
22 Linho M 0,11
30 Açúcar Sac 0,30
53 Linha M 1,80
13 Ouro G 0,18
45 Madeira M 0,25
87 Cano M 1,98
77 Papel Res 1,05
PEDIDO
NUM_P PE COD_C COD_C
121 20 410 209
97 20 720 101
101 15 720 101
137 20 720 720
148 20 720 101
189 15 870 213
104 30 110 101
203 30 830 250
98 20 410 209
143 30 20 111
105 15 180 240
111 20 260 240
103 20 60 11
91 20 260 11
138 20 260 11
108 15 290 310
119 30 390 250
127 10 410 11
- 106 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
ITENS PEDIDO
NUM_P COD_P QTD
121 25 10
121 31 35
97 77 20
101 31 9
101 78 18
101 13 5
98 77 5
148 45 5
148 31 8
148 25 7
148 78 10
104 53 30
203 31 32
189 78 6
143 31 45
143 78 20
105 78 10
111 78 10
103 53 70
91 77 37
138 22 40
138 77 10
138 53 35
108 13 18
119 77 17
119 13 40
119 22 6
119 53 10
137 13 43
189 5 8
SELECT *
FROM Vendedor
- 107 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
SELECT *
FROM Produto
WHERE desc_p = ‘PREGO’
Operadores
Operadores Relacionais
= Igual
<> ou != Diferente
< Menor que
> Maior que
<= Menor ou igual
>= Maior ou igual
SELECT nome_c
FROM cliente
WHERE cidade = ‘RIO DE JANEIRO’
Operadores Lógicos
AND E
OR Ou
NOT Negação
SELECT desc_p
FROM produto
WHERE unidade = ‘M’ and VU = 1.05
SELECT num_p
FROM pedido
WHERE NOT pe = 15
- 108 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
SELECT *
FROM pedido p
WHERE NOT EXISTS ( SELECT v.cod_v
FROM vendedor v
WHERE v.cod_v = p.cod_v )
Operadores IN e NOT IN
SELECT nome_v
FROM vendedor
WHERE comissao IN (‘A’, ‘B’)
Obs.: atuam apenas sobre os campos do tipo caracter e pode ser utilizado
com os caracteres “%”, na substituição de palavras ou o “_”, substituindo
um caracter.
SELECT *
FROM cliente
WHERE IE IS NULL
- 109 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
SELECT desc_p, VU
FROM produto
WHERE unidade = ‘M’
ORDER BY 2 ASC
- SUM (Somatório)
SELECT SUM(qtd)
FROM item_pedido
WHERE cod_p = 78
- AVG (Média)
SELECT AVG(salario)
FROM vendedor
- COUNT
SELECT COUNT(*)
FROM vendedor
WHERE salario > 2500.00
Eliminando as informações repetidas – DISTINCT
SELECT DISTINCT unidade
FROM produto
- 110 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 111 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 112 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Adicionando registros
INSERT INTO produto
VALUES (108,’Kg’,’PARAFUSO’,1.25)
Atualizando um registro
UPDATE produto
SET VU = VU * 1.25
WHERE unidade = ‘Kg’
Excluindo um registro
DELETE
FROM vendedor
WHERE comissao IS NULL
DELETE
FROM pedido p
WHERE NOT EXISTS (SELECT cod_v
FROM vendedor
WHERE cod_v = p.cod_v )
- 113 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Tabelas envolvidas
Produto Cartesiano
- 114 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Problema proposto
Desejo saber o nome dos funcionários e a descrição dos projetos nos quais
trabalham
NOM_F DESC_P
Jose Projeto 1
Jose Projeto 2
Maria Projeto 1
João Projeto 2
Problema proposto
FUNCIONÁRIO DEPARTAMENTO
COD_F NOM_F SAL_F COD_D COD_D DES_D
F1 Jose 5.000,00 D1 D1 DRH
F2 Maria 2.500,00 D3 D2 ENG
F3 João 1.500,00 D3 D3 INFO
F4 Carla 2.700,00 D3
F5 Sergio 6.000,00 D2
F6 Antônio 1.500,00 D1
F7 Vera 2.500,00 D3
F9 Leo 600,00 D1
F10 Edu 1.200,00 D1
D1 DRH 1.500,00
D1 DRH 600,00
D1 DRH 1.200,00
3 3.300,00
D2 ENG 5.000,00
D2 ENG 6.000,00
2 11.000,00
D3 INFO 2.500,00
D3 INFO 1.500,00
D3 INFO 2.700,00
D3 INFO 2.500,00
4 9.200,00
- 115 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
SELECT d.cod_d,
d.des_d,
count(d.doc_d) qtd,
sum(f.sal_f) soma
FROM Funcionario F, Departamento D
WHERE d.cod_d = f.cod_d
GROUP BY d.cod_d, d.des_d
ORDER BY d.cod_d
- 116 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Exercícios
SQL
- 117 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 118 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
SQL 1
DEPARTAMENTO
(1,n)
POSSUI
COD_P DES_P
(1,1) QH
COD_F
(1,1) (0,n)
FUNCIONÁRIO TRABALHA PROJETO
NOM_F SAL_F
(1,n)
POSSUI
(1,1)
SEQ_DEP NOM_DEP
DEPENDENTE
Figura 45
- 119 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 120 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
SQL 2
CGC
ESCOLA
RAZÃO
(1,n)
POSSUI
(1,1)
MAT
PROFESSOR NOME
SAL
(1,n)
LECIONA
Requer
COD
(1,n)
MAT
(1,n) (1,n)
CURSA DISCIPLINAS CURSA ALUNO NOME
EMAIL
É requerida DES
Figura 46
- 121 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 122 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
SQL 3
COD_PAC
(1,n) (1,n) (1,n)
ESPECIALIZAÇÃO MÉDICO CONSULTA PACIENTE NOM_PAC
TEL_PAC
(1,n) (1,n)
SEQ_CS UF_CS
END_CS CEP_CS HOR_VIS
Figura 47
- 123 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 124 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
SQL 4
COD_ROT
ROTA DES_ROT
(1,n)
PERCORRE
(1,1)
DESTINO
DT_PAR_VO
(1,n)
COD_AV SIGLA_AE
(1,n)
MARCA_AV AVIÃO VOO AEROPORTO PAIS_AE
EMPRESA_AV ESTADO_AE
(1,n)
DT_CHE_VO
ORIGEM
(1,1)
FAZ
(1,n)
MAT_PI
PILOTO NOME_PI
Figura 48
- 125 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 126 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Capítulo 5
Views
Stored Procedures e
Triggers
- 127 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 128 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Views - Visões
Figura 49
Na guia Tables (ou Views, caso você já tenha criado alguma visão e queira
que ela faça parte desta que está sendo criada), selecione a tabela (ou
visão) a ser adicionada, e então clique Add. Caso você queira remover
- 129 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Para agrupar por alguma coluna, clique com o botão direito na coluna (na
seção da grade) e selecione Group By.
Na coluna Or... entre com qualquer critério adicional para especificar quais
linhas a serem retornadas.
Para criar uma visão através de SQL, use o comando CREATE VIEW. Esse
comando tem a seguinte sintaxe:
- 130 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Para criar uma visão você deve estar posicionado no banco de dados onde a
visão será criada ou então especificá-lo através da cláusula USES.
Você pode também criar uma visão que calcula valores usando colunas das
tabelas, ou usando GROUP BY e funções agregadas, na declaração SELECT.
- 131 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Para alterar uma visão, você pode usar tanto o Enterprise Manager quanto o
comando SQL, ALTER VIEW.
sp_helptext VisaoFornecProduto
Você pode executar um comando UPDATE em uma visão. Se ela foi baseada
em uma única tabela, isso não provoca grandes problemas.
- 132 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
O SQL Server 7.0 mantém planos de execução para todos os comandos SQL
na cache de procedimentos, não apenas planos de execução de
procedimentos armazenados. Ele então usa um algoritmo eficiente para
comparação de novos comandos Transact-SQL com os comandos Transact-
SQL de planos de execução existentes. Se o SQL Server 7.0 determinar que
um novo comando Transact-SQL é o mesmo que um comando Transact-SQL
de um plano de execução existente, ele reutiliza o plano. Isso reduz o
ganho relativo de desempenho, na pré compilação de procedimentos
armazenados, já que estende a reutilização de planos de execução para
todos os comandos SQL.
- 133 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Note que os parâmetros são sempre declarados com @, logo após o nome
do procedimento. Um procedimento pode ter zero ou mais parâmetros.
Declara-se o nome do procedimento, e a seguir o tipo de dados do
parâmetro.
BuscaCliente 'an'
Isso permite passar os parâmetros (se mais de um) fora da ordem em que
eles foram definidos no procedimento.
- 134 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
EXEC nome_servidor.nome_banco_de_dados..nome_procedimento
Note que quando você usa um comando SELECT, o resultado pode ser
colocado numa variável, como @contagem acima. Esse resultado não
aparece no resultado do SELECT. Essa é também a única forma de alterar
uma variável (você não pode escrever '@variável = valor' diretamente).
- 135 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Figura 50
Nessa tela você deve dar o nome que desejar ao procedimento, substituindo
o texto em preto [PROCEDURE NAME] pelo nome que você quer dar ao
procedimento armazenado sendo criado.
Triggers - Gatilhos
- 136 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Exemplo de gatilhos
Para utilizar gatilhos, vamos criar antes algumas tabelas que serão usadas
como exemplo. A tabela "NotaFiscal" conterá os cabeçalhos de notas fiscais.
Vamos usar gatilhos para duas finalidades: primeiro, quando for excluída
uma nota fiscal, todos os seus itens serão excluídos automaticamente.
Depois, quando for incluído um item, a coluna 'ValorTotal' será atualizada,
na tabela 'NotaFiscal'.
Criando gatilhos
- 137 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Ele atualiza a nota fiscal relacionada com o item que está sendo inserido
(para isso verifica where NumeroNota=(select NumeroNota from inserted)).
Um gatilho para exclusão pode consultar deleted para saber quais as linhas
excluídas.
Vamos criar um gatilho, na tabela NotaFiscal para, quando a nota fiscal for
excluída, todos os seus itens de nota relacionados, na tabela
ItemNotaFiscal, sejam excluídos em cascata. Execute o seguinte:
- 138 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Um gatilho pode ser criado para uma tabela para múltiplas operações nessa
tabela. Por exemplo, para criar um gatilho usado em INSERT, UPDATE e
DELETE, usa-se uma sintaxe, como:
Outros comandos
- 139 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 140 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Capítulo 6
ORACLE
SQL SERVER
ACCESS
- 141 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 142 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Capítulo em desenvolvimento
Oracle
SQL SERVER
Access
- 143 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 144 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Trabalhos
Trabalhos
- Acompanhamento de Processos
- Solicitação de Serviços
- Sistema de Estoque
- 145 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 146 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
A empresa DataVenia pode ser acionada ou estar acionando uma pessoa física/jurídica, que
são chamadas de PARTE. As PARTES possuem as seguintes informações: código, nome,
endereço, telefone, física/jurídica (F ou J), email.
Em cada filial da empresa, são registradas as seguintes informações: sigla da uf, nome do
gerente, telefone e email.
Cada Tipo de Ação possui as seguintes informações: código do tipo da ação e descrição.
Observações:
a) somente são cadastradas informações necessárias;
b) um PROCESSO pode ter várias PARTES envolvidas e a PARTE pode se envolver em vários
processos;
c) os status possíveis de um PROCESSO são fixos e nunca mudarão cujos códigos
previstos são os seguinte códigos:
- 147 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Observações:
a) somente são cadastradas informações necessárias;
b) uma SOLICITAÇÃO está alocada a somente um SISTEMA;
c) uma SOLICITAÇÃO normalmente é emitida, recebida e executada por usuários distintos e
eventualmente recebida e executada pelos mesmos usuários ;
d) os USUÁRIOS, os SISTEMAS, os TIPOS DE SERVIÇO e TIPOS DE STATUS, são criados e
mantidos por funcionários da empresa CPEDE EUFAÇO
e) Solicitações anteriores a três anos e com a situação F, podem ser copiadas para uma
tabela de expurgo e devem ser eliminadas.
- 148 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
a) Lista de REQUISIÇÕES não atendidas e seus ITENS, para que o funcionário do setor
possa efetuar o atendimento;
b) Relatório contendo a quantidade de MATERIAIS movimentados, por DEPARTAMENTO;
c) Relatório com os MATERIAS que precisam ser repostos. Este materiais são identificados
quando o saldo atual fica menor ou igual ao ponto de compra;
d) MATERIAIS que estão abaixo do estoque mínimo;
e) DEPARTAMENTOS, a quantidade de itens consumidos e a soma de suas quantidades em
um determinado período de atendimento
- 149 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
O restaurante “SUN RISE ALL” necessita automatizar algumas de suas atividades. Desta
forma, solicitou a elaboração de um sistema que controlasse:
Exemplo de um pedido:
Número 4756 do cliente “Fulano de Tal” constituído de 3 saladas mistas e 2 frangos
grelhados.
O sistema deve registrar para cada prato, os ingredientes que o compõe e as respectivas
quantidades, bem como o preço unitário (que é definido pelo gerente). Um determinado tipo
bolo, por exemplo, utiliza ½ litro de leite, 4 xícaras de açúcar etc... Os ingredientes
possuem: CÓDIGO, DESCRIÇÃO, SALDO_EM_ESTOQUE e PREÇO MÉDIO (que é recalculado a
cada compra. Veja Exercício 1)
É necessário que seja gerado um relatório com cada encomenda contendo, dados do cliente
(NOME, ENDEREÇO e TELEFONE), os pratos solicitados (CÓDIGO, DESCRIÇÃO,
QUANTIDADES, PREÇOS UNITÁRIOS e TOTAIS).
Os fornecedores também devem ser cadastrados nas bases de dados mantidas pelo sistema
registrando: CGC, RAZÃO SOCIAL, TELEFONE e EMAIL.
Exercício 2: Elabore uma STORED PROCEDURE que identifique clientes que já tenha
solicitado mais de 10 pedidos, qualificando-os como aptos a obterem descontos.
- 150 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Bibliografia recomendada
Bibliografia complementar
- 151 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 152 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Respostas
- Aula Inicial
- Mini mundos
- Engenharia Reversa
- Exercícios de SQL
- Trabalhos
- 153 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 154 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Departamento
Código
Descrição DRH
Funcionário
Matrícula
Nome
Pedido
Alocação Data pedido
Horas
Lista Quantidade
Trabalhadas
Nome
Nascimento
Código
Código
Descrição Dependente Descrição
Material
Projeto
Figura 51
Código Descrição
D1 DRH
D2 Contabilidade
D3 Informática
D4 Marketing
M atríc ula Nom e Depto
F1 Jos e D1
F2 Joaquim D2
F3 M aria D3
F4 F lávia D2
F5 A ri D1
Matrícula Projeto F6 F átim a D2 Matrícula Código Data Qtd
F1 P1 F1 M2 01/12/2002 5
F2 P1 F3 M1 07/01/1900 4
F3 P2 F2 M3 08/01/1900 1
F4 P3 F1 M1 13/01/2002 2
F5 P3 F1 M5 27/10/1999 3
F6 P4 Matrícula Nome Nascimento F4 M4 19/08/2002 3
F1 Leonardo 01/02/1990
F2 Leonardo 01/03/1991
F2 Julia 12/04/2002
F2 Maria 15/07/1997
Código Descrição
Código Descrição F6 Jose 25/08/1988
M1 Lápis
P1 Finanças F6 Julia 12/04/2002
M2 Caneta
P2 Contábil M3 Borracha
P3 Plano de Saúde M4 Envelope
P4 Cálculo Estrutural M5 Cola
Figura 52
- 155 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Modelo Lógico
Modelo Físico
- 156 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 157 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 158 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
preço data
COMPRA
(0,n) (0,n)
endereço nome
CPF
bairro (1,1)
IMÓVEL PROPRIETÁRIO endereço
descrição
Preço Data
Figura 53
(0,n)
DEFEITUOSO
série nome
data
(0,1)
endereço
modelo
APARELHO TROCA CLIENTE
marca
(0,1)
defeito
SUBSTITUTO
(0,1) (0,n)
COMPRA
Data
Figura 54
- 159 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
nome número
assentos
(4,10) (1,1)
GRAÇOM RESPONSABILIDADE MESA
avaliação
data
(1,n) (1,n)
ATENDIMENTO
(1,n)
hora_ini hora_fim
número
PRATO nome
preço
Figura 55
matricula
EMPREGADO
(T,S)
MÉDICO ENFERMEIRA
ATENDIMENTO RESPONSABILIDADE
VÍNCULO
(0,n) (1,n)
(1,n)
nome seguro
inicio fim código
social
(1,n) (1,1)
PESSOA INTERNAÇÃO HOSPITAL
Figura 56
- 160 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
dt/h saldo
código nome código desc
(1,n) (1,n)
CLIENTE DETEM AÇÃO
(0,n)
EMITE
(1,1)
seq
ORDEM DE
VENDA qtd
(1,n)
preço
NEGOCIA lote
qtd (1,n)
CGC
CORRETORA
nome
Figura 57
- 161 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
HOSPITAL REMÉDIOS
(1,n) (0,n)
eMail telefone pa
(1,3)
ATENDIMENTO RECEITUÁRIO
(1,4) (0,n)
inicio status
codigo nome h_inicio h_fim codigo
(1,n) (1,n) (1,n)
ESPECIALISTA MÉDICO CONSULTA CLIENTE
(1,n) data
email
telefone celular bip endereço CPF nome
(1,3)
ESPECIALIDADE
codigo descricao
Figura 58
COMPRADOR
qtd
(1,n)
data
COMPRA
É composta
(1,n) codigo
(0,n)
COMPOSIÇÃO PEÇA
saldo
(0,n)
minimo
(1,n) status
É componente
POSSUI
(1,1)
VALORES
data preço
Figura 59
- 162 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
agrupa
numero (0,n)
CONTA AGRUPAMENTO
CONTÁBIL
descrição (1,1)
(1,n)
agrupada
POSUI
valor descrição
Figura 60
DEPARTAMENTO
(1,1) (1,n)
telefone (0,n)
(1,3) (P,E)
(1,n) (1,n)
bonus data
(1,1) (1,n)
ini
codigo
data
MATERIAL
HORA EXTRA descrição
TÓXICO
Figura 61
- 163 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
codigo numero
(1,n) (1,1)
nome APOSTADOR Aposta CARTELA pontos
email valida
(1,64)
palpite2
PALPITE palpite2
pontos
mandante
(1,n)
(3,7)
numero numero
(2,2)
nome TIME Participa JOGO gols_1
imagem gols_2
(3,7)
mandatário conferido
Figura 62
PRE_CD LAN_CD
(1,n)
END_GRA CON_GRA MAP_CAT MEP_CAT
FAIXA NUM_FAX
(1,n)
COD_MUS
MUSICA NOM_MUS
DUR_MUS
(1,n)
CRIA
(1,n)
COD_AUT
AUTOR NOM_AUT
Figura 63
- 164 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Normalização 8
(1,n) (1,n)
Cliente Pedido Vendedor
cgc_cli ie_cli
(1,n)
Possui
cod_prod desc_prod
qtd_prod
(1,1)
(1,1) (1,n)
Item Possui Produto
Normalização 9
cod nome cod desc
tel (1,n)
(1,1) (1,n)
Aluno Compõe Turma
(1,n)
nasc
Aluno
Disciplina
(1,n)
Disciplina
cod desc
Figura 65
Normalização 10
(1,1) (1,n)
Titular Tem Plano
(1,n)
cod des
(1,1)
(1,1) (1,n)
Dependente define Grau
seq nom
Figura 66
- 165 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Normalização 11
(1,1) (1,n)
Cliente Pertence Classe
(1,n)
cod des
(1,1)
(1,1) (1,n)
Contas Possui Banco
num saldo
Figura 67
Normalização 12
Figura 68
SIG_DEP DES_DEP
DEPARTAMENTO
(1,n)
(1,n) (1,n)
FUNCIONÁRIO FOLHA PD
MAT_FUN NOM_FUN
- 166 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Respostas do SQL 1
2)
a) SELECT F.NOM_F, T.COD_P
FROM Funcionario F, Trabalha T
WHERE F.COD_F = P.COD_F
ORDER BY F.COD_F
- 167 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
OU
- 168 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Respostas do SQL 2
2)
a) SELECT E.CGC, E.RAZAO, P.NOM
FROM Escola E, Professor P
WHERE E.CGC = P.CGC
b) SELECT A.NOME, D.DES
FROM Aluno A, Disciplinas D , Cursa C
WHERE A.MAT = C.MAT
AND C.COD = D.COD
c) SELECT A.NOM
FROM Aluno A
WHERE A.EMAIL IS NULL
d) SELECT P.NOME, P.SAL * 1.25
FROM Professor P
e) SELECT D1.DES, D2.DES
FROM Disciplinas D1, Pre-Req P, Disciplinas D2
WHERE D1.COD = P.COD
AND P.COD_R = D2.COD
f) SELECT E.RAZÃO, COUNT(P.MAT) AS QTD_PROF
FROM Professor P, Escola E
WHERE E.CGC = P.CGC
GROUP BY E.RAZAO
g) SELECT P.NOME
FROM Professor P
WHERE SAL > 1000
ORDER BY SAL DESCENDING
h) SELECT P.NOME, D.DES
FROM Professor P, Leciona L, Disciplina D
WHERE P.MAT = L.MAT
AND L.COD = D.COD
i) SELECT A.NOME
FROM Aluno A, Cursa C
WHERE NOT EXISTS (SELECT *
FROM Cursa C
WHERE A.MAT = C.MAT )
j) SELECT P.NOME, D.DES
FROM Professor P, Leciona L, Disciplina D
WHERE P.MAT = L.MAT
AND L.COD = D.COD
AND D.DES LIKE “%DADOS%”
k) SELECT A.NOME, A.NASC
FROM Aluno A
WHERE A.NASC BETWEEN “01/01/75” AND “31/12/80”
- 169 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Respostas do SQL 3
1)
MEDICO ( CRM_MED, NOM_MED )
2)
a) SELECT M.CRM_MED, M.NOM_MED, COUNT(C.CRM.MED) AS QTD
FROM MEDICO M, CONSULTA C
WHERE M.CRM_MED = C.CRM_MED
AND C.DAT_COM BETWEEN ‘01/10/2000’ AND ‘12/12/2000’
GROUP BY M.CRM_MED, M.NOM_MED
b) SELECT P.NOM_PAC, M.NOM_MED
FROM PACIENTE P, MÉDICO M, ESPECIALIDADE E, ESPECIALIZAÇÃO ES, CONSULTA C
WHERE P.COD_PAC = C.COD_PAC
AND C.CMR_MED = M.CRM_MED
AND M.CRM_MED = ES.CRM_MED
AND ES.COD_ESP = E.COD_ESP
AND E.DES_ESP = ‘GINECOLOGIA’
e) SELECT F.COD_FIS
FROM FISCAIS F
WHERE NOT EXISTS ( SELECT *
FROM VISITAS V
WHERE V.MAT_FIS = F.MAT_FIS )
f) SELECT E.COD_ESP, E.DES_ESP
FROM ESPECIALIDADES E
WHERE NOT EXISTS (SELECT *
FROM ESPECIALIZAÇÃO ES
WHERE ES.COD_ESP = E.COD_ESP)
- 170 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
FROM CONSULTA C
WHERE C.CRM_MED = M.CRM_MED
GROUP BY M.CRM_MED
HAVING COUNT(C.CRM_MED) > 300)
- 171 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Respostas do SQL 4
1)
ROTA ( COD_RO, DES_RO)
2)
- 172 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Modelo Conceitual
codigo
(1,n)
descricao
ACIONA
POSSUI TIPO ACAO
(1,n)
originado (1,n) número
comarca (1,1)
(1,1) vara
A/R
MOTIVA PROCESSO
status sigla
(1,1) telefone
(1,n)
(0,n) gerente
origina
POSSUI FILIAL email
POSSUI (1,n)
(1,1) data_acomp
data_alerta
observação
ACOMPANHAMENTO
Figura 69
Modelo Lógico
- 173 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- Criação do DATABASE
CREATE DATABASE Processo
ON
PRIMARY (NAME=Processo_data,
FILENAME='c:\mssql7\data\processo.mdf',
SIZE=10MB,
MAXSIZE=15MB,
FILEGROUTH=25%)
LOG ON
(NAME=Teste_log,
FILENAME='c:\mssql7\data\processo.ldf',
SIZE=4MB,
MAXSIZE=6MB,
FILEGROUTH=2MB)
- 174 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 175 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- Eliminando as TABELAS
(Primeiro elimina-se os CONSTRAINTS)
ALTER TABLE Processo DROP CONSTRAINT FK_Processo_TipoAcao
ALTER TABLE Processo DROP CONSTRAINT FK_Processo_Uf
ALTER TABLE ProcessoParte DROP CONSTRAINT FK_ProcessoParte_Parte
ALTER TABLE Acompanhamento DROP CONSTRAINT FK_Acompanhamento_Processo
ALTER TABLE ProcessoParte DROP CONSTRAINT FK_ProcessoParte_Processo
- 176 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- Inserindo informações
Tabela : TIPOACAO
INSERT INTO TipoAcao VALUES (1,'Acoes Trabalhistas')
INSERT INTO TipoAcao VALUES (2,'Acoes da Vara de Familia')
INSERT INTO TipoAcao VALUES (3,'Acoes contra o INSS')
INSERT INTO TipoAcao VALUES (4,'Acoes Criminais')
INSERT INTO TipoAcao VALUES (5,'Acoes contra a Tele X')
INSERT INTO TipoAcao VALUES (6,'Acoes contra o Ponto Quente')
INSERT INTO TipoAcao VALUES (7,'Acoes contra o Bando do Breziu')
Tabela : GERENCIA
INSERT INTO Gerencia VALUES ('AC','Almir','33333333','ac@site.com.br')
INSERT INTO Gerencia VALUES ('AL','Alfredo','33333333','al@site.com.br')
INSERT INTO Gerencia VALUES ('AM','Jair','33333333','am@site.com.br')
INSERT INTO Gerencia VALUES ('AP','Raul','33333333','am@site.com.br')
INSERT INTO Gerencia VALUES ('BA','Wander','44444444','ba@site.com.br')
INSERT INTO Gerencia VALUES ('CE','Jose Carlos','55555555','ce@site.com.br')
INSERT INTO Gerencia VALUES ('DF','Jaqueline','66666666','df@site.com.br')
INSERT INTO Gerencia VALUES ('ES','Leia','77777777','es@site.com.br')
INSERT INTO Gerencia VALUES ('GO','Maria da Graça','88888888','go@site.com.br')
INSERT INTO Gerencia VALUES ('MA','Eva','999999999','ma@site.com.br')
INSERT INTO Gerencia VALUES ('MT','Mauro','10101010','mt@site.com.br')
INSERT INTO Gerencia VALUES ('MS','Tania Silene','12121212','ms@site.com.br')
INSERT INTO Gerencia VALUES ('MG','Reginaldo','13131313','mg@site.com.br')
INSERT INTO Gerencia VALUES ('PA','Roosevelt','14141414','pa@site.com.br')
INSERT INTO Gerencia VALUES ('PB','Maria Ana','15151515','pb@site.com.br')
INSERT INTO Gerencia VALUES ('PR','Mauro Pereira','16161616','pr@site.com.br')
INSERT INTO Gerencia VALUES ('PE','Sergio','17171717','pe@site.com.br')
INSERT INTO Gerencia VALUES ('PI','Raimundo','18181818','pi@site.com.br')
INSERT INTO Gerencia VALUES ('RJ','Carlos H','19191919','rj@site.com.br')
INSERT INTO Gerencia VALUES ('RN','Pedro Paulo','20202020','rn@site.com.br')
INSERT INTO Gerencia VALUES ('RS','Roberto','21212121','rs@site.com.br')
INSERT INTO Gerencia VALUES ('RO','Aluizio','23232323','ro@site.com.br')
INSERT INTO Gerencia VALUES ('RR','Rosinaldo','24242424','rr@site.com.br')
INSERT INTO Gerencia VALUES ('SC','Julio Cesar','25252525','sc@site.com.br')
INSERT INTO Gerencia VALUES ('SE','Gildelia','26262626','se@site.com.br')
INSERT INTO Gerencia VALUES ('TO','Ivan','27272727','to@site.com.br')
Tabela : PARTE
INSERT INTO Parte VALUES (1,'Santos Rosendo')
INSERT INTO Parte VALUES (2,'Jose Geraldo Junior')
INSERT INTO Parte VALUES (3,'Jose Jorge da Silva')
INSERT INTO Parte VALUES (4,'Alan Camargo Silva')
INSERT INTO Parte VALUES (5,'Tatiana Mendonça Meneses')
INSERT INTO Parte VALUES (6,'Sidnei Barbieri Math Jr')
INSERT INTO Parte VALUES (7,'Misael Augusto Araujo')
INSERT INTO Parte VALUES (8,'Leonardo Lima Oliveira')
INSERT INTO Parte VALUES (9,'Carlos Roberto M Soares')
INSERT INTO Parte VALUES (10,'Claudio Silva Soares')
INSERT INTO Parte VALUES (11,'Katiucia Helena Rosa')
INSERT INTO Parte VALUES (12,'Wallace da Silva')
INSERT INTO Parte VALUES (13,'Roberto de Deus Leal')
INSERT INTO Parte VALUES (14,'Milton Souza Santos')
INSERT INTO Parte VALUES (15,'Michel Firmino Souza')
Tabela : PROCESSO
INSERT INTO Processo VALUES (1,'Comarca 1','11111111',1,10000.00,'Objeto do
processo','RJ','EA','','09/26/2001','','Texto da observacao')
- 177 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Tabela : PROCESSOPARTE
INSERT INTO ProcessoParte VALUES (1,1)
INSERT INTO ProcessoParte VALUES (2,2)
INSERT INTO ProcessoParte VALUES (3,4)
INSERT INTO ProcessoParte VALUES (3,5)
INSERT INTO ProcessoParte VALUES (3,6)
INSERT INTO ProcessoParte VALUES (4,6)
INSERT INTO ProcessoParte VALUES (5,6)
INSERT INTO ProcessoParte VALUES (5,9)
INSERT INTO ProcessoParte VALUES (6,10)
INSERT INTO ProcessoParte VALUES (7,10)
INSERT INTO ProcessoParte VALUES (7,11)
INSERT INTO ProcessoParte VALUES (7,11)
Tabela : ACOMPANHAMENTO
INSERT INTO Acompanhamento VALUES (1,'09/26/2001','10/10/2001','Entrada no FORUM')
INSERT INTO Acompanhamento VALUES (2,'09/26/2001','10/10/2001','Entrada no FORUM')
INSERT INTO Acompanhamento VALUES (3,'09/26/2001','10/10/2001','Entrada no FORUM')
INSERT INTO Acompanhamento VALUES (4,'09/26/2001','10/10/2001','Entrada no FORUM')
INSERT INTO Acompanhamento VALUES (5,'09/26/2001','10/10/2001','Entrada no FORUM')
INSERT INTO Acompanhamento VALUES (6,'09/26/2001','10/10/2001','Entrada no FORUM')
INSERT INTO Acompanhamento VALUES (7,'09/26/2001','10/10/2001','Entrada no FORUM')
INSERT INTO Acompanhamento VALUES (1,'10/10/2001','11/10/2001',’1o acompanhamento')
INSERT INTO Acompanhamento VALUES (2,'10/10/2001','11/09/2001',’1o Acompanhamento')
INSERT INTO Acompanhamento VALUES (3,'10/10/2001','10/20/2001',’1o Acompanhamento')
INSERT INTO Acompanhamento VALUES (3,'10/20/2001','11/10/2001',’2o Acompanhamento')
INSERT INTO Acompanhamento VALUES (3,'11/10/2001','12/10/2001',’3o Acompanhamento')
INSERT INTO Acompanhamento VALUES (4,'10/10/2001','10/15/2001',’1o Acompanhamento')
INSERT INTO Acompanhamento VALUES (4,'10/15/2001','',’2o Acompanhamento')
INSERT INTO Acompanhamento VALUES (4,'10/20/2001','10/30/2001',’3o Acompanhamento')
- 178 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- Extraindo Informações
PARTES COM MAIS DE UM PROCESSO
select pp.parte, pa.nome, count(pp.processo) #processos
from processoparte pp, parte pa
where pp.parte = pa.parte
group by pp.parte, pa.nome
having count(pp.processo) > 1
- 179 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Modelo Conceitual
usu_mat
Usuários usu_nom
(T,S)
Tipos de
Sistema Status
sis_des
Serviço
sta_des
ts_cod ts_des
Figura 70
Modelo Lógico
- 180 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- Criação do DATABASE
CREATE DATABASE Solicitacao
ON
PRIMARY (NAME=Solicitacao_data,
FILENAME='c:\mssql7\data\solicitacao.mdf',
SIZE=10MB,
MAXSIZE=15MB,
FILEGROUTH=25%)
LOG ON
(NAME=Teste_log,
FILENAME='c:\mssql7\data\solicitacao.ldf',
SIZE=4MB,
MAXSIZE=6MB,
FILEGROUTH=2MB)
- 181 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- Eliminando as TABELAS
(Primeiro elimina-se os CONSTRAINTS)
ALTER TABLE Solicitacao DROP CONSTRAINT FK_Solicitacao_Sistema
ALTER TABLE Solicitacao DROP CONSTRAINT FK_Solicitacao_Status
ALTER TABLE Solicitacao DROP CONSTRAINT FK_Solicitacao_TipoServico
ALTER TABLE Solicitacao DROP CONSTRAINT FK_Solicitacao_UsuarioE
ALTER TABLE Solicitacao DROP CONSTRAINT FK_Solicitacao_UsuarioR
ALTER TABLE Solicitacao DROP CONSTRAINT FK_Solicitacao_UsuarioS
- Inserindo informações
Tabela : SISTEMA
INSERT INTO Sistema VALUES (1,'Faturamento')
INSERT INTO Sistema VALUES (2,'Estoque')
INSERT INTO Sistema VALUES (3,'Contabilidade')
INSERT INTO Sistema VALUES (4,'Folha de Pag')
INSERT INTO Sistema VALUES (5,'Lib. Senha')
INSERT INTO Sistema VALUES (6,'Tb Financeiras')
INSERT INTO Sistema VALUES (7,'Ativo')
INSERT INTO Sistema VALUES (8,'Cobranca')
INSERT INTO Sistema VALUES (9,'Emprestimo')
INSERT INTO Sistema VALUES (10,'Protocolo')
INSERT INTO Sistema VALUES (11,'Renda Fixa')
INSERT INTO Sistema VALUES (12,'Compas')
- 182 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Tabela : STATUS
INSERT INTO Status VALUES (1,'Nao recebida')
INSERT INTO Status VALUES (2,'Recebida')
INSERT INTO Status VALUES (3,'Alocada')
INSERT INTO Status VALUES (4,'Encerrada')
INSERT INTO Status VALUES (5,'Pendente')
INSERT INTO Status VALUES (6,'Cancelada')
INSERT INTO Status VALUES (7,'Fechada')
Tabela : USUARIO
INSERT INTO Usuario VALUES (1,'Santos')
INSERT INTO Usuario VALUES (2,'Jose')
INSERT INTO Usuario VALUES (3,'Jose')
INSERT INTO Usuario VALUES (4,'Alan')
INSERT INTO Usuario VALUES (5,'Tatiana')
INSERT INTO Usuario VALUES (6,'Sidnei')
INSERT INTO Usuario VALUES (7,'Misael')
INSERT INTO Usuario VALUES (8,'Leonardo')
INSERT INTO Usuario VALUES (9,'Carlos')
INSERT INTO Usuario VALUES (10,'Claudio')
INSERT INTO Usuario VALUES (11,'Katiucia')
INSERT INTO Usuario VALUES (12,'Wallace')
INSERT INTO Usuario VALUES (13,'Roberto')
INSERT INTO Usuario VALUES (14,'Milton')
INSERT INTO Usuario VALUES (15,'Michel')
Tabela : SOLICITACAO
INSERT INTO Solicitacao VALUES (1,'09/26/2001',10,1,1,1,2,3,1)
INSERT INTO Solicitacao VALUES (2,'09/25/2001',11,1,2,2,2,4,2)
INSERT INTO Solicitacao VALUES (3,'09/24/2001',15,2,3,3,2,5,3)
INSERT INTO Solicitacao VALUES (4,'09/23/2001',16,3,1,4,2,6,4)
INSERT INTO Solicitacao VALUES (5,'09/22/2001',17,4,2,1,2,7,1)
INSERT INTO Solicitacao VALUES (6,'09/21/2001',12,5,3,2,2,8,2)
INSERT INTO Solicitacao VALUES (7,'09/20/2001',13,7,1,3,2,9,2)
INSERT INTO Solicitacao VALUES (8,'09/19/2001',11,1,2,4,2,10,3)
INSERT INTO Solicitacao VALUES (9,'09/18/2001',19,1,3,1,2,11,3)
INSERT INTO Solicitacao VALUES (10,'09/17/2001',20,3,1,2,2,12,3)
INSERT INTO Solicitacao VALUES (11,'09/16/2001',12,1,2,3,2,1,4)
INSERT INTO Solicitacao VALUES (12,'09/15/2001',13,2,3,4,2,5,2)
INSERT INTO Solicitacao VALUES (13,'09/14/2001',15,4,4,1,2,4,1)
INSERT INTO Solicitacao VALUES (14,'09/13/2001',10,5,1,2,2,6,1)
INSERT INTO Solicitacao VALUES (15,'09/12/2001',11,4,2,3,2,7,1)
INSERT INTO Solicitacao VALUES (16,'09/11/2001',13,1,3,4,2,4,1)
INSERT INTO Solicitacao VALUES (17,'09/10/2001',14,1,4,1,2,7,2)
INSERT INTO Solicitacao VALUES (18,'09/09/2001',22,1,5,3,2,4,2)
- 183 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- Extraindo informações
NOME DO SOLICITANTE E AS SOLICITAÇÕES EM ABERTO, POR SOLICITANTE
select usu_nom, sol_num
from usuario u, solicitacao s
where u.usu_mat = s.sol_mat
and sta_cod = 3
order by usu_nom
- 184 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Modelo Conceitual
cod_c
CATEGORIA
des_c
(1,n)
Contém
(1,1)
UNIDADE DE
ARMAZENAMENTO
Contém Faz
(1,n) cod_m des_m (1,1)
(1,n)
qtd_sol
(1,1)
num_rm
Possui MATERIAL (1,n)
ITENS (1,n) RM emi_rm
atend_rm
Movimenta
data_mov qtd_mov
(1,1)
(0,1) (1,1)
Requer MOVIMENTO Possui
(1,1) (1,n)
TIPO DE cod_t
JUSTIFICATIVA des
MOVIMENTO des_t
Figura 71
Modelo Lógico
- MATERIAL ( cod_c, cod_s, cod_m, des_m, min, pc, atu, vu, cod_u )
- 185 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- Criação do DATABASE
CREATE DATABASE Estoque
ON
PRIMARY (NAME=Estoque_data,
FILENAME='c:\mssql7\data\estoque.mdf',
SIZE=10MB,
MAXSIZE=15MB,
FILEGROUTH=25%)
LOG ON
(NAME=Teste_log,
FILENAME='c:\mssql7\data\estoque.ldf',
SIZE=4MB,
MAXSIZE=6MB,
FILEGROUTH=2MB)
CREATE TABLE RM (
COD_D int not null
CONSTRAINT FK_RM_DEPTO FOREIGN KEY REFERENCES DEPARTAMENTO (COD_D),
NUM_RM int not null
CONSTRAINT PK_RM PRIMARY KEY NONCLUSTERED (COD_D, NUM_RM),
EMI_RM smalldatetime not null,
ATEND_RM smalldatetime not null
) ON PRIMARY
- 186 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
CREATE TABLE RM (
COD_D int not null,
NUM_RM int not null,
EMI_RM smalldatetime not null,
ATEND_RM smalldatetime not null
) ON PRIMARY
- 187 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
) ON PRIMARY
- Eliminando as TABELAS
(Primeiro elimina-se os CONSTRAINTS)
ALTER TABLE SUBCATEGORIA DROP CONSTRAINT FK_SUB_CAT
ALTER TABLE MOVIMENTO DROP CONSTRAINT FK_MAT_SUB
ALTER TABLE MOVIMENTO DROP CONSTRAINT FK_MAT_UNI
ALTER TABLE RM WITH DROP CONSTRAINT FK_RM_DEPTO
ALTER TABLE ITENS_RM DROP CONSTRAINT FK_ITE_RM
ALTER TABLE ITENS_RM DROP CONSTRAINT FK_ITE_MAT
ALTER TABLE MOVIMENTO DROP CONSTRAINT FK_MOV_RM
ALTER TABLE MOVIMENTO DROP CONSTRAINT FK_MOV_MAT
ALTER TABLE MOVIMENTO DROP CONSTRAINT FK_MOV_TIPO
ALTER TABLE JUSTIFICATIVA DROP CONSTRAINT FK_JUS_RM
ALTER TABLE JUSTIFICATIVA DROP CONSTRAINT FK_JUS_MAT
- 188 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- 189 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
- Inserindo informações
Tabela : CATEGORIA
INSERT INTO CATEGORIA VALUES (1,’MATERIAL DE ESCRITORIO’)
INSERT INTO CATEGORIA VALUES (2,’MATERIAL DE LIMPEZA’)
INSERT INTO CATEGORIA VALUES (3,’MATERIAL DE COZINHA’)
INSERT INTO CATEGORIA VALUES (4,’FORMULÁRIOS’)
INSERT INTO CATEGORIA VALUES (5,’MATERIAIS ESPECIAIS’)
Tabela : SUBCATEGORIA
INSERT INTO SUBCATEGORIA VALUES (1, 1, ‘CONSUMO ROTINEIRO’)
INSERT INTO SUBCATEGORIA VALUES (1, 2, ‘CONSUMO EM REUNIÕES’)
INSERT INTO SUBCATEGORIA VALUES (1, 3, ‘CONSUMO ESPECIAL’)
INSERT INTO SUBCATEGORIA VALUES (2, 1, ‘LIQUIDOS’)
INSERT INTO SUBCATEGORIA VALUES (2, 2, ‘RESISTENTES’)
INSERT INTO SUBCATEGORIA VALUES (3, 1, ‘LIQUIDOS’)
INSERT INTO SUBCATEGORIA VALUES (3, 2, ‘SOLIDOS’)
INSERT INTO SUBCATEGORIA VALUES (4, 1, ‘CADASTRO’)
INSERT INTO SUBCATEGORIA VALUES (4, 2, ‘SOLICITACOES’)
INSERT INTO SUBCATEGORIA VALUES (5, 1, ‘PARA EVENTOS EXTERNOS’)
INSERT INTO SUBCATEGORIA VALUES (5, 2, ‘PARA EVENTOS INTERNOS’)
INSERT INTO SUBCATEGORIA VALUES (5, 3, ‘PARA A PRESIDÊNCIA’)
Tabela : UNIDADE
INSERT INTO UNIDADE VALUES (1,’LITRO’)
INSERT INTO UNIDADE VALUES (2,’PACOTE’)
INSERT INTO UNIDADE VALUES (3,’CAIXA’)
INSERT INTO UNIDADE VALUES (4,’FRASCO’)
INSERT INTO UNIDADE VALUES (5,’UNIDADE’)
INSERT INTO UNIDADE VALUES (6,’FOLHA’)
INSERT INTO UNIDADE VALUES (7,’RESMA’)
INSERT INTO UNIDADE VALUES (8,’ENVELOPE’)
INSERT INTO UNIDADE VALUES (9,’GRAMA’)
INSERT INTO UNIDADE VALUES (10,’METRO’)
Tabela : MATERIAL
INSERT INTO MATERIAL VALUES (1,1,1,’MATERIAL 111’,10,5,15,10.50,1)
INSERT INTO MATERIAL VALUES (1,2,1,’MATERIAL 121’,11,6,16,10.44,2)
INSERT INTO MATERIAL VALUES (1,1,2,’MATERIAL 112’,12,7,17,10.11,3)
INSERT INTO MATERIAL VALUES (2,1,1,’MATERIAL 211’,13,8,18,10.12,4)
INSERT INTO MATERIAL VALUES (2,1,2,’MATERIAL 212’,10,9,10,11.00,5)
INSERT INTO MATERIAL VALUES (2,2,1,’MATERIAL 221’,11,8,9,12.00,6)
INSERT INTO MATERIAL VALUES (3,1,1,’MATERIAL 311’,12,7,9,13.00,7)
INSERT INTO MATERIAL VALUES (3,1,2,’MATERIAL 312’,13,6,8,14.00,1)
INSERT INTO MATERIAL VALUES (3,2,1,’MATERIAL 321’,10,5,7,14.50,1)
INSERT INTO MATERIAL VALUES (3,2,2,’MATERIAL 322’,11,4,6,12.20,1)
INSERT INTO MATERIAL VALUES (4,1,1,’MATERIAL 411’,12,5,5,12.00,2)
INSERT INTO MATERIAL VALUES (4,1,2,’MATERIAL 412’,13,6,4,11.00,3)
INSERT INTO MATERIAL VALUES (4,2,1,’MATERIAL 421’,10,7,14,12.00,1)
INSERT INTO MATERIAL VALUES (4,2,2,’MATERIAL 422’,11,8,15,11.00,4)
INSERT INTO MATERIAL VALUES (5,3,1,’MATERIAL 531’,12,9,16,13.00,1)
INSERT INTO MATERIAL VALUES (5,3,2,’MATERIAL 532’,13,8,11,14.50,5)
Tabela : DEPARTAMENTO
INSERT INTO DEPARTAMENTO VALUES (1,’RECURSOS HUMANOS’)
INSERT INTO DEPARTAMENTO VALUES (2,’CONTABILIDADE’)
INSERT INTO DEPARTAMENTO VALUES (3,’FINANCEIRO’)
INSERT INTO DEPARTAMENTO VALUES (4,’ATENDIMENTO’)
INSERT INTO DEPARTAMENTO VALUES (5,’INFORMATICA’)
INSERT INTO DEPARTAMENTO VALUES (6,’ADMINISTRACAO’)
INSERT INTO DEPARTAMENTO VALUES (7,’PRESIDENCIA’)
INSERT INTO DEPARTAMENTO VALUES (8,’SUPORTE’)
INSERT INTO DEPARTAMENTO VALUES (9,’COMPRAS’)
INSERT INTO DEPARTAMENTO VALUES (10,’CADASTRO’)
Tabela : RM
INSERT INTO RM VALUES (1, 1, ‘11/01/2002’, null)
INSERT INTO RM VALUES (4, 2, ‘10/06/2002’, null)
INSERT INTO RM VALUES (6, 3, ‘16/02/2002’, null)
INSERT INTO RM VALUES (7, 4, ‘13/08/2002’, null)
INSERT INTO RM VALUES (5, 5, ‘1/06/2002’, null)
- 190 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Tabela : ITENS_RM
INSERT INTO ITENS_RM VALUES (1, 1, 111, 5)
INSERT INTO ITENS_RM VALUES (1, 1, 121, 3)
INSERT INTO ITENS_RM VALUES (4, 2, 312, 3)
INSERT INTO ITENS_RM VALUES (4, 2, 311, 4)
INSERT INTO ITENS_RM VALUES (6, 3, 111, 3)
INSERT INTO ITENS_RM VALUES (6, 3, 112, 2)
INSERT INTO ITENS_RM VALUES (6, 3, 121, 3)
INSERT INTO ITENS_RM VALUES (7, 4, 411, 3)
INSERT INTO ITENS_RM VALUES (7, 4, 412, 3)
INSERT INTO ITENS_RM VALUES (5, 5, 532, 4)
Tabela : TIPOMOV
INSERT INTO TIPOMOV VALUES (1, ‘ACERTO A CREDITO’)
INSERT INTO TIPOMOV VALUES (2, ‘ACERTO A DEBITO’)
INSERT INTO TIPOMOV VALUES (3, ‘SAIDA DE MATERIAL’)
INSERT INTO TIPOMOV VALUES (4, ‘ENTRADA DE MATERIAL’)
Tabela : MOVIMENTO
INSERT INTO MOVIMENTO VALUES (1, 1, 111, 5, ‘13/01/2002’, 3)
INSERT INTO MOVIMENTO VALUES (1, 1, 121, 3, ‘13/01/2002’, 3)
INSERT INTO MOVIMENTO VALUES (4, 2, 312, 3, ‘13/01/2002’, 3)
INSERT INTO MOVIMENTO VALUES (4, 2, 311, 4, ‘13/01/2002’, 3)
Tabela : JUSTIFICATIVA
INSERT INTO JUSTIFICATIVA VALUES (1, 1, 111, ‘PEDIDO ESPECIAL’)
- 191 -
UVA - Universidade Veiga de Almeida
Modelagem e Projeto de Bancos de Dados
Sistemas de Gerenciamento de Banco de Dados
Trabalho – Restaurante
Modelo Conceitual
COD_C
CLIENTE NOME_C
ENDEREÇO_C
(1,n)
DESCONTO_C
QTD_SOL REQUISIÇÃO
(1,1)
COD_P
(0,n) (1,n) NUM_PE
DESC_P PRATO SOLICITAÇÃO PEDIDO
UNIT_P DATA_PE
(1,n)
QTD_COM COMPOSIÇÃO
(1,n)
COD_I CGC_F
(0,n) (1,n)
DESC_I INGREDIENTE FORNECE FORNECEDOR RAZ_F
SALDO_I TEL_F
(1,n)
PR_MEDIO_I EMAIL_F
(1,1)
EMITE
NUM_NF
NOTA FISCAL
DATA_NF
(0,n) (1,n)
ATENDE CONTÉM
(1,1) (1,1)
SEQ
ITEN NF QTD
PR_UNIT
Modelo lógico
- 192 -