Como parte do meu Currículo Profissional, elaborei este projeto para Sistemas de Gerenciamento de Banco de Dados (DBMS) - COMP 213. Este projeto contém tanto a parte teórica quanto a implementação em SQL. Se você gostou do repo, dê uma estrela nele.
Microsoft SQL Server
- Descrição
- Estrutura básica
- Diagrama de Entidade Relação (EER)
- Esquema de banco de dados relacional
- Implementação
- Criando Tabelas
- Inserindo Dados
- Consultas
O Sistema de gerenciamento de banco de dados de comércio eletrônico (EC-DBMS) é um sistema projetado para armazenar, processar, recuperar e analisar informações relacionadas à administração e gerenciamento de atividades de vendas feitas por um cliente on-line sentado em casa. Este projeto visa manter todas as informações pertencentes aos clientes, fornecedores, produtos e suas categorias, pedidos e correios. Ele permite que os fornecedores configurem lojas online, os clientes naveguem pelas lojas e um administrador do sistema aprove e rejeite solicitações de novas lojas e mantenha listas de categorias de lojas. O sistema gerencia os itens da loja e também ajuda os clientes a comprá-los online sem precisar se deslocar fisicamente à loja. O sistema de compras online utilizará a internet como único meio de venda de bens, produtos e serviços aos seus consumidores. O site mostrará todos os produtos de forma categorizada. Os clientes podem pesquisar qualquer produto por seu preço, outros detalhes e podem solicitar o produto usando sua conta registrada. O cliente deve pagar o valor do pedido no momento da entrega.
2.1 Relational Database Schema
3.1 Criando Tabelas
O script completo está disponível na Database & Table Creationpasta.
create database ecommerce;
use ecommerce;
-- criar tabela client
create table clients(
idClient int auto_increment primary key,
Fname varchar(10),
Minit char(3),
Lname varchar(20),
CPF char(11) not null ,
Address varchar(30),
constraint unique_cpf_client unique (CPF)
);
-- criar tabela produto
-- size = dimenção do produto
create table product(
idProduct int auto_increment primary key,
Pname varchar(10) not null,
classification_kids bool default false,
category enum('Eletrônico','Vestimenta','Brinquedos','Alimentos','Móveis') not null,
avaliação float default 0,
size varchar(10),
constraint unique_cpf_client unique (CPF)
);
-- para ser continuado no desafio termine de implementar a tabela e crie a conexão com as tabelas necessárias
-- além disso, reflita essa modificação no diagrama de esquema relacional
-- criar constraints relacionadas ao pagamento
create table payments(
idclient int,
idPayment int,
typePayment enum('Boleto','Cartão','Dois cartões'),
limitAvailable float,
primary key(idClient, id_payment)
);
-- criar tabela pedido
create table orders(
idOrder int auto_increment primary key,
idOrderCliente int,
orderStatus enum('Cancelado','Comfirmado','Em processamento') default 'Em processamento',
orderDescription varchar(255),
sendValue float default 10,
paymentCash bool default false,
idPayment ....
constraint fk_ordes_client foreign key (idOrderClient) references clients(idClient)
);
-- criar tabela estoque
create table productStorage(
idProdStorage int auto_increment primary key,
storageLocation varchar(255),
quantity int default 0
);
-- criar tabela fornecedor
create table supplier(
idSupplier int auto_increment primary key,
SocialName varchar(255) not null,
CNPJ char(15) not null,
contact varchar(11) not null,
constraint unique_supplier unique (CNPJ)
);
-- criar tabela vendedor
create table supplier(
idSupplier int auto_increment primary key,
SocialName varchar(255) not null,
CNPJ char(15) not null,
contact varchar(11) not null,
constraint unique_supplier unique (CNPJ)
);
3.2 Inserindo Dados
Os scripts completos estão disponíveis na Data Insertionpasta.
Obs: Todas as informações são falsas e geradas para demonstração do projeto.
use OnlineShopping;
Insert Into Category Values ('Android Smart TV Box/Air Mouse');
Insert Into City Values ('Karachi');
Insert Into Orders Values ('1','2011-01-27','1','318','77425889862');
Insert Into Product Values ('Air Mouse C120 for Android and Smart TV','1');
Insert Into Province Values ('Punjab');
Insert Into Review Values ('4','Great Product Slow delivery. Such slow much wow','1','1');
Os scripts completos estão disponíveis na Queries
pasta.
select CategoryName
from Category
where CategoryID in
(select Distinct CategoryID
from Product
where ProductID in
(select ProductID
from VendorProduct
where VendorID='3'));
select sum(DATEDIFF ( year , customer.DOB , getdate() ))/Count(customerid) as "Average Age"
from Customer
Sinta-se à vontade para bifurcar o repositório e contribuir com este projeto..