Você está na página 1de 8

PS GRADUAO DE TECNOLOGIA DA INFORMAO E

COMUNICAO APLICADA A SEGURANA PBLICA E DIREITOS


HUMANOS (SENASP)
UNIVERSIDADE FEDERAL DE SANTA CATARINA
Campus Ararangu
INTRODUO A BANCO DE DADOS
Prof. Alexandre Leopoldo Gonalves
TEMA
BANCO DE DADOS
GRUPO
Herbson Carvalho
Leandro Reis

1. Definio do objetivo geral do sistema:


Um sistema de banco de dados capaz de armazenar informaes sobre uma
variedade de produtos de uma empresa moveleira. Sendo que estes produtos possuem diversas
opes e caractersticas prprias.
2. Uma descrio mais detalhada do sistema visando prover as informaes
necessrias para a fase de modelagem:
Uma indstria moveleira produz mveis para banheiro. Devido a
caractersticas dos mveis eles possuem opes e detalhes particulares. Os mveis so
vendidos em conjuntos. Cada produto possui uma referncia. Cada produto pode ter mais de
uma modelo. Cada modelo possui seu valor prprio. Cada modelo pode ser composto por
mais de uma pea. Cada pea possui opes que podem ser escolhidas pelo cliente, como por
exemplo cor ou tipo da cuba. Essas opes so separadas em categorias, tipo de cuba, cor
principal, cor dos detalhes e outras. Cada pea possui suas opes disponveis. Nem todas as
opes so disponveis para todos os produtos. Exemplo: O produto referncia 1001, pode ser
vendido em 6 modelos diferentes: Conjunto de 100cm, Conjunto de 80cm, Balco de 100cm,
Balco de 80cm, Espelheira de 100cm, Espelheira de 80cm. Como exemplo escolhemos o
modelo de Conjunto 80cm, esse modelo composto por duas peas: Balco de 80cm e
Espelheira de 80cm. O balco possui como opes dois tipos de cuba: quadrada ou redonda e
tambm a cor principal: branca, preta, azul. A Espelheira possui como opes a presena de
luminria ou no, e tambm a cor principal: branca e preto.
A dificuldade da empresa est no momento em que os representantes
realizam os pedidos para a fbrica. Muitos pedidos chegam incompletos ou com opes que
no esto disponveis para aquela pea escolhida.
Cada produto tem uma referncia nica. O valor definido conforme o
modelo selecionado. Um modelo s pode fazer parte de um produto. Uma mesma pea pode
ser parte de mais de um modelo. As opes podem ser as mesmas para diversas peas. Para
acessar o sistema cada vendedor dever ter um usurio e senha. Cada usurio possui nveis de
permisses diferentes. Os clientes devem possuir cadastro onde conste ao menos Razo
Social, CNPJ, Endereo, Telefone e E-mail. Os pedidos devem estar vinculados a um
vendedor e um cliente.

3. Apresentao da modelagem conceitual :

4. Apresentao da modelagem lgica :

5. Apresentao dos scripts (comandos DDL) de criao do banco de dados obtidos


a partir do item 4 e comandos de preenchimento:
-- Gerao de Modelo fsico
-- Sql ANSI 2003 - brModelo.

CREATE TABLE Cliente (


IdCliente integer PRIMARY KEY,
Email text,
RazaoSocial text,
Telefone text,
CNPJ text,
Endereco text
);
CREATE TABLE Vendedor (
idVendedor text PRIMARY KEY,
Email text,
Nome text,
Telefone text,
senha text,
usuario text,

nivel integer
);
CREATE TABLE Produto (
NomeProduto text,
Referencia integer PRIMARY KEY
);
CREATE TABLE Pedido (
Numero integer PRIMARY KEY,
valorTotal text,
data text,
IdCliente integer,
idVendedor text,
FOREIGN KEY(IdCliente) REFERENCES Cliente (IdCliente),
FOREIGN KEY(idVendedor) REFERENCES Vendedor (idVendedor)
);
CREATE TABLE Permissoes (
nivel integer PRIMARY KEY,
descricao text
);
CREATE TABLE Modelo (
IdModelo text PRIMARY KEY,
NomeModelo text,
Valor text,
Referencia integer,
FOREIGN KEY(Referencia) REFERENCES Produto (Referencia)
);
CREATE TABLE ModeloPeca (
IdPeca text,
IdModelo text,
FOREIGN KEY(IdModelo) REFERENCES Modelo (IdModelo)
);
CREATE TABLE Categoria (
IdCategoria integer PRIMARY KEY,
NomeCategoria text
);
CREATE TABLE Peca (
IdPeca text PRIMARY KEY,
NomePeca text
);
CREATE TABLE itemPedido (
valorItem integer PRIMARY KEY,
IdItem text,
DescricaoItem text,
OpcoesEscolhidas text,
Referencia integer,
Numero integer,
FOREIGN KEY(Referencia) REFERENCES Produto (Referencia),
FOREIGN KEY(Numero) REFERENCES Pedido (Numero)

);
CREATE TABLE Opcao (
IdOpcao integer PRIMARY KEY,
NomeOpcao text,
IdCategoria integer,
FOREIGN KEY(IdCategoria) REFERENCES Categoria (IdCategoria)
);
CREATE TABLE PecaOpcao (
IdOpcao integer,
IdPeca text,
FOREIGN KEY(IdOpcao) REFERENCES Opcao (IdOpcao),
FOREIGN KEY(IdPeca) REFERENCES Peca (IdPeca)
);
ALTER TABLE Vendedor ADD FOREIGN KEY(nivel) REFERENCES Permissoes
(nivel);
ALTER TABLE ModeloPeca ADD FOREIGN KEY(IdPeca) REFERENCES Peca
(IdPeca);
INSERT INTO Produto VALUES ('Conjunto Ref 1001', '1001');
INSERT INTO Produto VALUES ('Conjunto Ref 2005', '2005');
INSERT INTO Produto VALUES ('Conjunto Ref 1050', '1050');
INSERT INTO Modelo
'1001');
INSERT INTO Modelo
'1001');
INSERT INTO Modelo
'1001');
INSERT INTO Modelo
'1001');
INSERT INTO Modelo
'1001');
INSERT INTO Modelo
'412,00', '1001');

VALUES ('1001.C80', 'Conjunto 80cm', '1200,00',


VALUES ('1001.B80', 'Balcao 80cm', '870,00',
VALUES ('1001.E80', 'Espelheira 80cm', '360,00',
VALUES ('1001.C100', 'Conjunto 100cm', '1400,00',
VALUES ('1001.B100', 'Balcao 100cm', '765,00',
VALUES ('1001.E100', 'Espelheira 100cm',

INSERT
INSERT
INSERT
INSERT

INTO
INTO
INTO
INTO

Peca
Peca
Peca
Peca

VALUES
VALUES
VALUES
VALUES

INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT

INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO

modelopeca
modelopeca
modelopeca
modelopeca
modelopeca
modelopeca
modelopeca
modelopeca

('B80', 'Balcao 80 cm');


('B100', 'Balcao 100 cm');
('E80', 'Espelheira 80 cm');
('E100', 'Espelheira 100 cm');
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES

('B80','1001.C80');
('E80','1001.C80');
('B80','1001.B80');
('E80','1001.E80');
('B100','1001.C100');
('E100','1001.C100');
('B100','1001.B100');
('E100','1001.E100');

INSERT INTO pecaopcao VALUES ('1','B80');


INSERT INTO pecaopcao VALUES ('3','B80');
INSERT INTO pecaopcao VALUES ('5','B80');

INSERT INTO pecaopcao VALUES ('6','E80');


INSERT INTO pecaopcao VALUES ('7','E80');

6. Elaborao de duas consultas envolvendo o conceito de juno e funes de


agregao. Deve ainda ser fornecida uma descrio do objetivo de cada consulta,
assim como, uma pequena amostra do resultado:
Exibindo todos os produtos cadastrados:
Comando:
SELECT * FROM Produto;
Resultado obtido:

Exibindo modelos do Produto referencia 1001:


Comando:
SELECT * FROM modelo WHERE referencia = '1001';
Resultado obtido:

Como exemplo escolhemos o modelo Conjunto 80cm (idmodelo =


1001.C80), agora iremos exibir somente as peas que compem este modelo:
Comando:
SELECT

FROM

peca

INNER

JOIN

modelopeca

ON

(peca.idpeca = modelopeca.idpeca) WHERE modelopeca.idmodelo


= '1001.C80';
Resultado obtido:

Agora iremos exibir as opes disponveis somente para essas peas:


Comando:
SELECT

FROM

opcao

INNER

JOIN

pecaopcao

ON

(opcao.idopcao = pecaopcao.idopcao) WHERE pecaopcao.idpeca


= 'B80' OR pecaopcao.idpeca = 'E80' ORDER BY idcategoria;
Resultado obtido:

Interesses relacionados