数据库应用技术课程设计之商城管理系统

数据库应用技术课程设计之商城管理系统

前言

现如今社会,互联网技术快速发展,网上购物市场逐渐火爆,已经成为了一种生活消费趋势,但是很多商家不方便对消费市场的需求进行调查分析,并且对自己所卖的商品不能及时地了解销售相关信息。同时,当购物者需要买自己所需的商品时,需要浪费很多的财力和物力。在中国电商行业飞速发展的今天,通过互联网人们就可以快速获取、发布和传递信息。进行商城管理系统的开发可以为购物者与商家提供更多的便利,网上购物弥补了传统购物的一些局限性,开发商城购物系统对于商家来说,商家利用商城管理系统就能轻松地管理大量的商品,并且可以通过该系统查看各种商品的销售状况信息,通过查看比对各种数据能够及时地知道那种商品正在热卖以及那些商品正处于冷清的转态,从而可以在运营上进行调整。

一、数据库设计

1 需求分析

1.1需求分析的目标

(1)了解商城管理的基本内容。
(2)综合的理解商城各管理人员的需求。
(3)了解商城管理的基本业务流程。
(4)了解商城人工模式与信息系统的工作概况,以及它们之间的区别。
(5)通过调查和与商城的管理人员的交流,了解用户对商城管理系统的业务要求,安全性和完整性要求。

1.2需求分析的任务

1.2.1 处理要求

某电商平台需要开发一套商城管理系统。为了收集数据库需要的信息,设计人员与系统使用人员通过交谈、填写调查等方式进行了系统的需求调研,得出系统需要实现的功能有:用户可以通过该系统查看所有商品的相关信息,包括商品编号、商品名称、商品库存、商品所属店铺编号、商品价格,然后选择购买的商品(一个用户可以购买多个商品,一个商品可以由多个用户购买)。用户也可以通过该系统查看相关商品的所属的信息,包括类目编号、类目名称(一个商品只能属于一种属性,一种属性可以包含多个商品)。商家可以通过该系统查看购买商品的用户信息,包括用户编号、用户名、注册时间、用户等级。在下单后,商家可以通过通过该系统录入用户的购买记录信息,用户可以通过该系统查看自己的购买信息记录。

1.2.2 处理功能

商品信息管理
(1)可以对商品信息进行维护,进行增删改的操作。
(2)可以通过商品,查看销售信息等。
(3)可以查看所有商品信息
类目信息管理
(1)可以查看所有商品的类别以及该商城所有的类目信息。
(2)可以对类目信息进行维护,进行增删改的操作。
(3)可以查询不同类目下的商品信息
购买信息管理
(1)根据销售记录可以查看用户的信息与商品信息
(2)可以查看所有销售记录信息。
(3)可以对销售信息进行维护,进行增删改的操作。
用户信息管理
(1)可以查询用户的购买记录
(2)可以查看所有用户信息
(3)可以对用户信息进行维护,进行增删改的操作。

1.2.3处理对象

商城管理系统处理的对象是用户的信息管理、用户的购买信息管理、商品的信息管理
商城管理系统处理对象涉及以下几个方面信息:
用户的基本信息:用户编号,用户姓名,注册时间,用户等级。
商品的基本信息:商品编号,商品名称,商品类目编号,商品类目名称,商品库存,商品所属店铺编号,商品价格。
销售信息:用户编号,商品编号,下单时间,购买数量。

1.3 数据流图

在这里插入图片描述

1.4 数据字典

1.4.1 数据项

在这里插入图片描述

1.4.2 数据结构

在这里插入图片描述

1.4.3数据流

在这里插入图片描述

1.4.4 数据存储

在这里插入图片描述

1.4.5 处理过程

在这里插入图片描述

2 概念结构设计

2.1 概念设计的任务和目标

(1)选择底层数据流为切入点,通常选择实际系统的子系统。
(2)设计分E-R图,及各个子模块的E-R图。
(3)生成初步的E-R图,通过合并方法,做到各子系统实体、属性、联系统一。
(4)生成全局E-R图,通过消除冲突等方面。

2.2实体之间联系

通过分析,得到该系统中的实体以及实体之间的联系

在这里插入图片描述

2.3 实体的属性
通过分析,得到该系统中的实体以及实体的属性

在这里插入图片描述

2.4 E-R图
通过分析,得到该系统中的E-R图
在这里插入图片描述

3逻辑结构设计

3.1 E-R图向关系模型的转换

商品实体与类目实体之间的联系是一对一,而商品实体与用户实体之间的联系是多对多,则需要转换为一个关系模式。
此为商品实体对应的关系模式。
••商品表(商品编号 ,商品名称,商品库存,店铺编号,商品价格,商品类目编号)
此为类目实体对应的关系模式。
•类目表(类目编号 ,类目名)
此为用户实体对应的关系模式。对应的关系模式。
•用户表(用户编号 ,用户名,注册时间,用户等级)
此为联系“购买”对应的关系模式。
•销售记录表(商品编号,用户编号 ,下单时间,数目)

3.2设计表结构

商品表、类目表、用户表、销售记录表对应的表结构如下图所示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4物理结构设计

4.1 关系模式存取方法的选择

存取方法是选择快速存取的数据库中数据的技术,数据管理系统一般提供多种存取方法,常用的存取方法为索引方法和聚簇方法。考虑到商城管理系统并不需要处理大量的数据,也不需要进行建立聚簇,并且聚簇存取方法开销相当大,同时根据实际应用要求确定对关系的某些属性建立索引,或者建立唯一索引和组合索引,所以,商城管理系统使用索引存取方法。

4.2确定数据库的存储结构

目前很多计算机有很多磁盘或者磁盘阵列,因此可以将表和索引放在不同的磁盘上,在查询时,由于磁盘驱动并行工作,可以提高物理I/O读写的效率。也可以将比较大的表分方在两个磁盘上,加快存取的速度,这在多用户环境下特别有效。还可以将日志文件与数据库对象(表、索引等)放不同的磁盘上,以改进系统的性能。根据实际应用要求,商城关系系统只需要进行基本的数据操作,所以,将数据库对象(表、索引等)放在同一个磁盘中即可。

4.3评价物理结构

数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案。评价物理数据库的方法完全可以依赖所选用的关系数据库管理系统,主要从各种方案的存储空间、存储时间和维护代价入手,选择最优的物理结构。通过需求分析的结果得知,商城管理系统由于各方面的功能需求较少以及数据库对象较少,一般普通的物理结构即可满足用户的需求。

5数据库实施

5.1 创建数据库

创建“商城管理系统”数据库“szh”,创建数据库时要求检测是否存在“szh”数据库,如果存在,则先删除再创建。

drop database if exists szh ;
create database szh;  

5.2 创建数据表

创建表时需要考虑各表之间的参照关系,先创建主表后创建从表,创建时需要检测数据库中是否存在同名的表,如果存在,则先删除再创建。

5.2.1创建商品表(goods)
drop table if exists goods;   
#如果goods表存在,则删除  
create table goods  
(   gid int(11), gname varchar(20), cid int(11),
price float,  
num int(11) default 0,     #num 默认值为0  
sid int(11) not null,      #sid 非空  
primary key(gid),      #gid为goods表的主键  
unique index u_gname(gname)   
    #在gname字段上建立唯一索引  
 );  
5.2.2 创建类目表(category)
drop table if exists category; 
#如果类目表(category)存在,则删除  
create table category  
( cid int(11) primary key,   #cid 为category的主键  
cname varchar(20)  
 );  
5.2.3 创建用户表(users)
drop table if exists users; 
#如果用户表(users)存在,则删除  
create table users  
( uid int(11) primary key,       #uid 为user表的主键  
  uname varchar(20) unique,      #uname 唯一  
  eg_time date default '2021-11-11',  
  #注册的默认时间为‘2021-11-11’  
  grade varchar(20)  );  
5.2.4 创建商品销售表(scales)
create table sales  
( gid int(11), uid int(11),  
  ord_id date,  
  num int(11) default 1,  #num默认值为1  
  primary key(gid, uid)  # gid, uid 为sales的复合主键  
);  

5.3 创建约束

该创建约束只针对与外键约束,其他约束在创建表的过程中已经添加了约束。
商品表(goods)中商品类目编号(cid)为外键
goods表中的cid字段参照了category表中的cid字段,goods表为从表,category表为主表

alter table goods add constraint fk_goods_category 
foreign key(cid) references category(cid);  

销售记录表(sales)中商品编号(gid),用户编号(uid)为均外键
sales表中的gid字段参照了goods表中的gid字段,sales表为从表,goods表为主表

alter table sales add constraint fk_sales_goods 
foreign key(gid) references goods(gid); 

sales表中的uid字段参照了users表中的uid字段,sales表为从表,users表为主表

 alter table sales add constraint fk_sales_users 
foreign key(uid) references users(uid);  

5.4建立视图

该系统需要建立两个视图,分别为当用户或者商城管理人员想要查询店铺号为2号的商品数目以及商城管理人员想要查询订单时间早于‘2021-12-23’的所有订单的信息,两个视图分别命名为szh_shop 与 szh_sales。
创建szh_shop视图

create view szh_shop
 as
 select count(*) as 商品数目 from goods
 where sid = 2; 

创建szh_sales视图

create view szh_sales
as
select * from sales
where ord_id < '2021-12-23';

5.5建立存储过程

该系统需要建立两个存储过程,分别为实现根据类目编号、商品价格最小值与最大值查询价格位于最小值与最大值之间且属于此类目的产品信息,以及实现根据类目编号返回此类目商品的平均价格。分别命名为szh_p 与 szh_p1。
创建szh_p存储过程

delimiter //
create procedure szh_p(in in_cid int(11), 
in in_minPrice float, in in_maxPrice float)
begin
select * from goods
where cid = in_cid and price 
between in_minPrice and in_maxPrice;
end // 
delimiter ;

创建szh_p1存储过程

delimiter //
create procedure szh_p1(in in_cid int(11),
out out_avgPrice float)
begin
select avg(price) into out_avgPrice from goods
where cid = in_cid;
end //
delimiter ;

5.6建立触发器

该系统需要建立两个触发器,分别为实现当删除商品类目表中的某个商品类别时,将商品表中商品类目编号cid设置为NULL,以及当删除某个用户时,商品销售记录表自动删除该用户的销售信息。分别命名为szh_tri 与 szh_tri1。
创建szh_tri触发器

delimiter //
create trigger szh_tri before delete on category 
for each row
begin 
update goods
set cid = null;
end //
delimiter ;

创建szh_tri触发器

delimiter //
create trigger szh_tri1 before delete on users
for each row
begin 
delete from sales
where uid = old.uid;
end//
delimiter ;

5.7 数据表数据的插入

完成数据表中数据填充,商品表需插入二十一条信息、类目表需插入七条信息、用户需插入二十一条信息、商品销售记录表需插入二十一条。为了保证主外键的约束关系,建议先查入主表中的数据,再插入子表中的数据。

5.7.1 向category表中插入数据
 insert into category  
 values( 1, '蔬菜'),  
       ( 2, '水果'),  
       ( 3, '食品'),  
       ( 4, '饮料'),  
       ( 5, '电器'),  
       ( 6, '图书'),  
       ( 7, '服装');  
5.7.2 向goods表中插入数据
 insert into goods  
 values  
  (101, '青菜', 1, 3, 110, 1),(102, '白菜', 1, 4, 120, 1),(103, '花菜', 1, 5, 130, 1),  
     (104, '香蕉', 2, 3, 140, 2),(105, '苹果', 2, 4, 150, 2),(106, '西瓜', 2, 15, 160, 2),  
    (107, '面包', 3, 3, 170, 3),(108, '辣条', 3, 5, 180, 3),(109, '薯片', 3, 10, 190, 3),  
    (110, '可乐', 4, 4, 100, 4),(111, '芬达', 4, 4, 110, 4),(112, '雪碧', 4, 8, 120, 4),  
     (113, '手机', 5, 2000, 103, 5),(114, '电脑', 5, 5000, 104, 5),(115, '电视机', 5, 4000, 103, 5),  
    (116, '算法入门', 6, 40, 106, 6),(117, '星火英语', 6, 35, 106, 6),(118, '数据库技术', 6, 55, 106, 6),  
     (119, '连衣裙', 7, 180, 109, 7),(120, '帽子', 7, 20, 109, 7),(121, '毛衣', 7, 100, 109, 7) ;  
5.7.3 向users表中插入数据
insert into users  
values  
     (1001,'张1','2021-11-11','一星'),(1002,'张2','2020-11-11','二星'),(1003,'张3','2019-11-11','三星'),  
     (1004,'李1','2021-11-11','一星'),(1005,'李2','2020-11-11','二星'),(1006,'李3','2019-11-11','三星'),  
     (1007,'王1','2021-11-11','一星'),(1008,'王2','2018-11-11','一钻'),(1009,'王3','2016-11-11','三钻'),  
     (1010,'尚1','2018-11-11','一钻'),(1012,'尚2','2017-11-11','二钻'),(1013,'尚3','2016-11-11','三钻'),  
     (1014,'方1','2021-11-11','一星'),(1015,'方2','2020-11-11','二星'),(1016,'方3','2019-11-11','三星'),  
     (1017,'熊1','2020-11-11','二星'),(1018,'熊2','2020-11-11','二星'),(1019,'熊3','2019-11-11','三星'),  
     (1011,'贺11','2021-11-11','一星'),(1020,'程20','2017-11-11','二钻'),(1021,'杨21','2019-11-11','三星');  
5.7.4 向sales表中插入数据
  insert into sales  
   values  
    (101,1002,'2021-12-01',10),(101,1001,'2021-12-11',20),(102,1001,'2021-12-21',30),  
     (103,1012,'2021-12-16',10),(104,1011,'2021-12-15',23),(107,1013,'2021-12-11',30),  
     (108,1021,'2021-12-13',60),(109,1021,'2021-12-11',20),(109,1020,'2021-12-22',10),  
     (111,1018,'2021-12-12',20),(111,1019,'2021-12-07',12),(113,1015,'2021-12-06',10),  
    (114,1017,'2021-12-09',10),(116,1011,'2021-12-11',20),(118,1004,'2021-12-21',30),  
     (119,1002,'2021-12-01',10),(104,1021,'2021-12-13',20),(120,1018,'2021-12-23',30),  
     (121,1012,'2021-12-07',10),(121,1003,'2021-12-21',20),(112,1013,'2021-12-13',30); 

二、实验操作

1 数据的增加操作

1.1新增一条类目信息

#在category表中增加一条 cid = 8, cname 为 '玩具’ 的信息
insert into category values(8,'玩具');

2 数据的删除操作

2.1删除指定编号的某款产品

#删除商品编号为101的商品信息
#存在外键约束,先打开约束,进行删除,后关闭约束。
#或者先删除sales表中 gid 为101 的 销售记录
delete from goods where gid = 101;

2.2 删除名称包含某些字的产品

#删除包含“香”字的商品信息
#存在外键约束,先打开约束,进行删除,后关闭约束。
#或者先删除sales表中 gname含有“香”的 销售记录
delete from goods where gname like '%香%';

2.3 删除等级为一星的用户

#在users表中删除grade为'一星'的用户信息
#存在外键约束,先打开约束,进行删除,后关闭约束。
#或者先删除sales表中用户等级为一星的销售记录delete from users where grade='一星';

3 数据修改操作

3.1将产品标题中包含某字的产品的库存增加100

#将goods表中商品名称包含‘菜’字的信息库存增加100
update goods set num = num + 100 
where gname like '%菜%';

3.2修改用户名中包含某字的用户等级为一钻

#修改用户表中用户名中包含‘张’的用户等级为一钻
update users set grade='一钻' 
where uname like '%张%';

3.3 修改商品表中某个编号商品的库存和价格

#修改商品表中商品编号为102商品的库存和价格,将库存改为100,价格改为10
update goods set num = 100 , price = 10 
where gid = 102;

4 数据的查询操作

4.1查询类目表中的所有数据

#查询类目表中的所有数据
select *from category;

4.2查询用户表中不同的用户等级

#查询用户表中不同的用户等级
select distinct grade from users;

4.3查询商品表中的商品名称,库存和价格

#查询商品表中的商品名称,库存和价格
select gname,num,price from goods;

4.4查询订单时间早于某个时间的所有订单

#查询订单时间早于'2021-12-11'的所有订单信息
select * from sales where ord_id < '2021-12-11';

4.5查询库存在某个范围之间的所有商品

#查询库存在100 到 200 之间的所有商品
select gname from goods 
where num >= 100 and num <= 200;

4.6查询价格大于某个值并且标题中包含某个字的所有商品

#查询价格大于 1000 并且商品名称中包含‘电’的所有商品
select gname from goods 
where price > 1000 and gname like '%电%';

4.7查询用户等级为一星,两星和一钻的所有用户

#查询用户等级为一星,两星和一钻的所有用户
select uname  from users
where grade in('一星','两星','一钻');

4.8查询所有商品信息并按照库存倒序排列

#查询所有商品信息并按照库存倒序排列
select * from goods order by num desc;

4.9查询产品标题中包含某个字所有商品信息并按照产品价格升序排列

#查询商品名称中包含‘电’的所有商品信息并按照商品价格升序排列
select * from goods 
where gname like '%电%' order by price asc;

4.10查询商品表中商品总数

#查询商品表中商品总数
select count(*) as 商品总数  from goods;

4.11查询用户表中用户等级为某个级别的用户的数目

#查询用户表中用户等级为'二星'的用户的数目
select count(*) from users where grade = '二星';

4.12查询下单时间在某个时间之前的所有订单商品数量

#查询下单时间在某‘2021-12-11’之前的所有订单商品数量
select sum(num) as 商品数量 from sales where ord_id < '2021-12-11';

4.13查询商品表中各个分类下商品的数目字段别名分别为商品类目商品数量

#查询商品表中各个分类下商品的数目,字段别名分别为商品类目与商品数量
#使用group by根据cid分组
select cid as 商品类目,count(gid) as 商品数量 
from goods group by cid;

4.14查询用户表中各个等级下用户的数量字段别名分别为用户等级用户数量

#查询用户表中各个等级下用户的数量,字段别名分别为用户等级、用户数量
#根据grade分组,使用count函数统计用户数量
select grade as 用户等级,count(uid) as 用户数量
from users
group by grade;

4.15查询库存最多的商品数量

#查询库存最多的商品数量,使用max函数
select max(num) as 商品数量最大值 from goods ;

4.16查询注册时间最早的用户

#查询注册时间最早的用户
select uname as 注册最早的用户 from users
where eg_time in (select min(eg_time) from users);

4.17查询所有商品的平均价格

#查询所有商品的平均价格
select avg(price) as 平均价格 from goods;

4.18查询某个店铺中的商品数目

#查询店铺1中的商品数目
select count(*) as 商品数目 from goods where sid = 1;

4.19查找商品表中比魔方价格高的商品

#查找商品表中比辣条价格高的商品。
select gname as 商品 from goods
where price > (select price from goods
where gname = '辣条');

4.20查找今年7月份消费金额大于1000元并且至少购买了两种商品的用户

#先通过三表连接,后对uid进行分组,查询里面购买商品数目大于等于且消费金额大于1000
select uname
from users join sales on users.uid=sales.uid join goods
on sales.gid=goods.gid
where year(ord_id)=2021 and month(ord_id)=7
group by users.uid
having count(distinct cid)>=2 
and sum(sales.num * price)>1000;

创建视图

5.1查询某个店铺中的商品数目

#根据查询店铺2中的商品数目要求,创建视图命名为szh_shop
 create view szh_shop
 as
 select count(*) as 商品数目 from goods
 where sid = 2; 

5.2 查询订单时间早于某个时间的所有订单

#根据查询订单时间早于‘2021-12-23’的所有订单的信息的要求,创建视图命名为szh_sales
create view szh_sales
as
select * from sales
where ord_id < '2021-12-23';

6 存储过程操作

6.1 创建一个存储过程,实现根据类目编号、商品价格最小值与最大值查询价格位于最小值与最大值之间且属于此类目的产品信息

#创建一个存储过程,实现根据类目编号、商品价格最小值与最大值查询价格位于最小值与最大值之间且属于此类目的产品信息。
delimiter //
create procedure szh_p(in in_cid int(11), 
in in_minPrice float, in in_maxPrice float)
begin
select * from goods
where cid = in_cid and price 
between in_minPrice and in_maxPrice;
end // 
delimiter ;

6.2创建一个存储过程,实现根据类目编号返回此类目商品的平均价格

#实现根据类目编号返回此类目商品的平均价格,创建一个存储过程命名为szh_p1
delimiter //
create procedure szh_p1(in in_cid int(11),
out out_avgPrice float)
begin
select avg(price) into out_avgPrice from goods
where cid = in_cid;
end //
delimiter ;

7 触发器操作

7.1 在“商品管理”数据库中创建一个触发器,要求实现如下功能:当删除商品类目表中的某个商品类别时,将商品表中商品类目编号cid设置为NULL

#实现当删除商品类目表中的某个商品类别时,将商品表中商品类目编号cid设置为NULL,创建触发器szh_tri
#使用before,在删除操作之前,先设置为null
delimiter //
create trigger szh_tri before delete on category 
for each row
begin 
update goods
set goods.cid = null
where cid = old.cid;
end //
delimiter ;

7.2在“商品管理”数据库中创建一个触发器,要求实现如下功能:当删除某个用户时,商品销售记录表自动删除该用户的销售信息

#实现当删除某个用户时,商品销售记录表自动删除该用户的销售信息,创建触发器szh_tri1
使用before,在删除操作之前,先删除
delimiter //
create trigger szh_tri1 before delete on users
for each row
begin 
delete from sales
where sales.uid = old.uid;
end//
delimiter ;

8 事务操作

8.1设置数据库为可重复读,并通过对会员表的插入、删除或更新操作验证。

开启两个会话,并将数据库设置为可重复读

set session transaction isolation level repeatable read;
8.1.1插入操作验证

第一步:开启两个会话,分别为会话1,2,并在会话1,2中都开启事务

start transaction; 

第二步:查询两个终端中user表的初始信息
会话1:

select *from users;
会话2:
select *from users;

第三步:在会话1中插入一条信息,“uid为1022,uname为姚1,eg_time为2020-11-11,grade为二星”。但不提交事务。

insert into users values
(1022, '姚1', '2020-11-11', '二星');

第四步:在会话2中查询user表的信息

 select *from users;

发现会话2中user表的信息并未改变
第五步:在会话1中提交事务

commit;

第六步:在会话2中查询user表的信息

select *from users;

发现会话2中的user表的信息还是未改变
第七步:在会话2中提交事务

commit;

第八步:分别在会话1,2中查询user表的信息

select *from users;

发现会话1,2中的users表信息都增加了一条插入的信息

8.1.2 删除操作验证

第一步:开启两个会话,分别为会话1,2,并在会话1,2中都开启事务

start transaction; 

第二步:查询两个终端中user表的初始信息
会话1:

 select *from users;
会话2:
select *from users;

第三步:在会话1中删除一条信息,“uid为1022”。但不提交事务。

delete from users where uid = 1022;

第四步:在会话2中查询user表的信息

select *from users;

发现会话2中user表的信息并未改变
第五步:在会话1中提交事务

commit;

第六步:在会话2中查询user表的信息

select *from users;

发现会话2中的user表的信息还是未改变
第七步:在会话2中提交事务

commit;

第八步:分别在会话1,2中查询user表的信息

select *from users;

发现会话1,2中的users表信息都删除了一条uid为1022的用户信息

8.1.3 更新操作验证

第一步:开启两个会话,分别为会话1,2,并在会话1,2中都开启事务

start transaction; 

第二步:查询两个终端中user表中uid为1001的grade初始信息
会话1:

select grade from users where uid = 1001;
会话2:
select grade from users where uid = 1001;

第三步:在会话1中将uid为1001的grade修改为“一星”。但不提交事务。

update users set grade = '一星' where uid = 1001;

第四步:在会话2中查询uid为1001的grade信息

select grade from users where uid =1001;

发现会话2中user表的信息并未改变
第五步:在会话1中提交事务

commit;

第六步:在会话2中查询uid为1001的grade的信息

select grade from users where uid =1001;

发现会话2中的user表的信息还是未改变
第七步:在会话2中提交事务

commit;

第八步:分别在会话1,2中查询user表的信息

select grade from users where uid =1001;

发现会话1,2中的uid为1001的grade都变为了‘一星’

9 用户管理操作

9.1创建两个新用户,并授权查询szh数据库users表格权限

创建用户
创建用户1,命名为szh_user1

create user 'szh1_user1'@'localhost'identified 
by 'Weak';

创建用户2,命名为szh_user2

create user 'szh_user2'@'localhost'identified 
by 'Weak';

授权

grant select on szh.users to'szh_user1'@'localhost';
grant select on szh.users to'szh_user2'@'localhost';

9.2使用Delete语句删除所创建的其中一个用户

delete from mysql.users 
where host='localhost' and user='szh_user1’;

三、心得体会

在我看来,数据库应用技术课程设计主要的目标是利用课程中学到数据知识和技术较好的去开发设计出数据库应用系统,去解决各行各业信息化处理的要求。通过本次的课程设计,可以巩固我们对数据库基本原理和基础理论的理解,掌握数据库应用系统设计开发的基本方法,进一步提高我们的综合运用所学知识的能力。
本次课程设计定题为设计商城管理系统,起初,我并没有着急着手去写程序,而是进行去考虑系统概述、系统设计的任务和目标、系统的需求分析、系统业务流程分析、数据流程分析、逻辑结构分析、物理结构分析。当这些都准备好了之后,开始根据系统的任务与目标进行创建数据库、数据表、约束、触发器、存储过程、视图等。之后进行往创建好的数据库中插入大量的数据,起初我是一条语句一条语句的导入,使用的是终端窗口进行导入,花费了大量时间,使用可视化界面程序在插入大量数据时就突显了很大的优势,比如navicat。后来意识到可视化界面程序的优势,在后面的实验操作环节使用navicat进行单步执行,查看实验结果与理论结果进行比对。验证数据库设计是否复合科学性与正确性。
在设计的数据库的过程中,我深深的感受到了语义理解的重要性,可能一个语义的理解就会导致数据库实现与理想结果完全不一样的结果,比如,“商品数目”与“商品数量”的区别,前者时商品的种类数,后者时商品的个数值,并且与同学、老师交流确定语义含义。一个字的差别,但需要我们设计人员考虑实际中的含义。很多事情并不是想象的那么简单,它涉及到各种实体、属性、数据流程、数据处理等。由于自己对数据流图与数据字典分析比较陌生,在进行后面的数据库设计有时无法继续,感觉像是被前面做的图限制了。物理结构设计基本没怎么碰到问题,先添加一些安全设置:主键约束、default定义、非空约束等,最后在做索引部分,对一些比较经常使用的搜索列,外键上建立索引,这样可以明显加快检索速度。
一个星期时间非常快就过去了,这一个星期不敢说自己有多大进步,获得了多少知识,但起码了解了数据库设计的过程,虽然说自己之前也学习过数据库管理系统等相关课程,但没有亲身经历过相关设计工作细节,本次课程设计提供了一个很好的机会。通过本次的课程设计,我学习并应用了SQL语句,对数据库创建、修改、删除等方法有了一定的了解,通过导入表和删除表、更改表熟悉了对表的操作,为了建立一个关系数据库信息管理系统,必须的经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统实施等过程,为毕业设计打下了基础。
感谢指导老师对我的细心教导和帮助,我能顺利完成本次课程设计,离不开老师的指导,在此表示忠心的感谢。

  • 35
    点赞
  • 180
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,您想知道关于社区住户信息管理系统数据库应用课程设计。以下是一个可能的设计: 1. 系统需求分析: 首先,需要进行社区住户信息管理系统的需求分析,包括系统的功能、数据结构、业务流程等方面。具体来说,需要确定以下内容: - 系统的用户类型:管理员、住户等 - 系统的功能模块:信息管理、业务处理、数据分析等 - 数据结构:住户信息、房屋信息、缴费信息等 - 业务流程:住户入住、缴费、报修等 2. 数据库设计: 在确定系统需求后,需要进行数据库设计。具体来说,需要设计以下内容: - 数据库模型:E-R图、数据字典等 - 数据库表结构:住户表、房屋表、缴费表等 - 数据库关系:一对多、多对多等 - 数据库操作:增、删、改、查等 3. 系统实现: 在数据库设计完成后,需要进行系统实现,包括如下步骤: - 系统架构设计:前后端分离、服务端架构等 - 开发环境搭建:数据库环境、开发工具等 - 系统编码实现:根据需求进行编码实现 - 系统测试:进行单元测试、集成测试等 4. 系统部署: 在系统开发测试完成后,需要进行系统部署,包括如下步骤: - 服务器环境搭建:服务器硬件、系统环境等 - 系统发布:将系统部署到服务器上 - 系统维护:对系统进行监控、维护、升级等 以上是一个可能的课程设计方案,具体实现过程中可能还有其他需要注意的问题,需要根据具体情况进行分析和解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

稚皓君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值