1、网上书店系统 数据库课程设计 网上书店管理系统 的分析与设计 学生姓名: 学号: 指导教师: 专业班级:计科1101 学院:信息科学与工程学院 2014-6-131.需求分析 考察用户网上购书的行为,大致都是如下的模式:用户进入网上书店,浏览各种图书信息,或者根据自己感兴趣的类别、特定图书信息等来进行搜索、查询图书信息。普通用户可以查询图书,我们这个系统规定在线图书销售系统只允许会员执行购买图书的操作。会员在购买图书时,首先将选定的图书加入购物车,可以一次购买多本图书,每本图书的数量也可以不同。对购物车中的图书进行确认付款以后,生成正式订单,管理员可以根据会员购买生成的订单,为其进行发货处理。
2、管理员还可以对网上书店的图书进行增加、删除、更新等管理操作。对于网上书店系统中普通用户、会员和管理员的具体功能描述如下。 (1)普通用户 1)浏览图书、按类别查询图书、查看图书详细信息。 2)注册成为会员。 (2)会员 1)浏览图书、按类别查询图书、查看图书详细信息。 2)加入购物车、修改购物车、订购图书、生成订单、查看订单等。 3)查看、修改个人信息。 (3)管理员 1)浏览图书、按类别查询图书、查看图书详细信息,核查购买图书费用信息。 2)查看订单、处理订单进行发货处理等。 3)查看、修改个人信息。 4)更新图书信息,如新增、删除图书、更新库存量、商品名称、增加图书的属性列等。 从上述的功
3、能分析可以得出,网上书店系统中需要有会员、管理员、图书、订单等信息。对于会员,需要有会员的账号、密码、姓名、邮箱、电话、地址等属性,其中图书可以有折扣(如8折、7.5折),实际售价由定价乘以折扣,再除以10计算得出;对于一个订单,需记录会员的订购日期、管理员进行发货的发货日期、订购总价等属性,其中订购总价是由多种图书实际售价乘以订购数量累计计算得出的。 在线图书销售管理系统中图书销售基本规定如下:每个会员可以通过订购图书生成多个订单,每个订单仅属于一个会员;每个订单中可以包括多种图书商品,每种图书商品可以出现在多个订单中;在订单信息中,每种图书都有对应的订购数量。 为简便起见,在线图书销售管理
4、系统仅考虑会员、管理员、订单、图书之间的关系,至于实际中网上支付,商品评论等信息的处理,暂时略去,也不考虑普通用户,假设会员确定生成了订单以后是应经付款的,管理员可以对其进行发货处理等。2.概念结构设计 概念结构设计主要通过分析在线图书销售管理系统的基本需求,对需求分析结果中的信息进行分类组织,得到系统的实体、实体的属性、实体的键、实体之间的联系以及联系的类型,从而设计出系统的概念模型。下面介绍设计概念结构模型的具体步骤。2.1抽象出系统的实体 根据分析,在线图书销售管理系统的基本实体为:会员、管理员、订单、图书,而每个实体应该具有如下列基本属性,并标记逐渐,画出E-R图,如图1、图2、图3所
5、示。 会员:账号、密码、姓名、地址、邮箱、手机、管理员标识,其中账号是主键,管理员标识为0表示为普通会员,为1表示为管理员。 订单:订单号、订购日期、订单总价、发货日期,其中订单号是主键。 图书:ISBN、书名、作者、出版社、定价、折扣、图书类型、图书概况、库存数量,其中ISBN是主键。 图1 图2 图32.2设计分E-R图 在网上书店系统中,涉及3个实体,分别是会员、订单、图书,这3个实体之间存在联系。 会员通过订购图书生成一个订单,一个会员可以生成多个订单,每个订单只能属于一个会员,即会员预订单之间的联系是一对多的联系。 一个订单可以包含多种图书,一种图书也可以被多个订单包含,即每一种图书
6、可以出现在多个订单中,每个订单中对应的每种图书均有对应的订购数量,因此订单与图书之间的联系是多对多的联系。 由以上分析,将会员与订单之间的联系命名为订购,将管理员与订单之间的联系命名为下单,将订单与图书之间的联系命名为订单详情,得到各个局部E-R图。如图所示。 1 m n n2.3合并分E-R图,生成初步E-R图 会员与订单的关系为订购,管理员与订单的关系为下单。经过分析,得到会员、管理员与订单之间的联系可以合并为订购,那么,会员、管理员、订单和图书之间分别通过订购和订单详情这两个联系进行关联。因此,合并上述分E-R图、生成初步E-R图,如图所示。 1 n m n 2.4生成全局E-R图 将各
7、个实体的属性加入初步E-R图,形成全局E-R图,如图所示。 1 n n3.逻辑结构设计 在概念结构设计阶段得到E-R图之后,下一步是进行数据库的逻辑结构设计,根据转换规则将E-R图转换为关系模型,即将实体和联系转换为关系数据库的基本表,并标识各个表的主键。得到网上书店系统的关系模式如下: 会员(账号、密码、姓名、地址、邮箱、手机、管理员标识)为会员实体对应的关系模式,其中账号是会员关系的主键。订单(订单号、订购日期、订单总价、发货日期、账号)为订单实体和订购联系合并的关系模式,其中订单号是主键。会员的主键账号是订单关系的外键。 图书(ISBN、书名、作者、出版社、定价、折扣、图书类型、图书概况
8、、库存数量)为图书实体对应的关系模式,其中ISBN是图书实体的主键。 订单详情(订单号、ISBN、订购数量、发货状态)为“订单详情”联系对应的关系模式。因为订单详情是订单与图书之间的多对多联系,所以订单、图书的主属性以及订单详情联系本身的属性“订购数量”共同构成了订单详情关系模式的属性,其中(订单号、ISBN)的组合是主键,订单号、ISBN同时也是订单详情关系模式的外键。4 数据库物理设计与实施4.1 创建“网上书店系统”数据库 因为本系统是一个小型的网上书店系统,经过分析,建立数据库“网上书店系统”,其初始大小可以设为100MB,增长率设置为10%,并将数据文件和日志文件分别命名为“网上书店
9、系统_data”和“网上书店系统_log”,其存储路径选择“D:data”文件夹。4.2 建立和管理基本表4.2.1 建立基本表(1)建立会员表 会员(账号、密码、姓名、地址、邮箱、手机、管理员标识)为会员实体对应的关系模式,其中账号是会员关系的主键。会员表的属性信息属性数据类型是否为空/约束条件账号CHAR(20)主键密码CHAR(20)否姓名CHAR(10)否地址VAR CHAR(50)否邮箱VAR CHAR(30)可以为空手机CHAR(11)否管理员标识INT0或1本表的SQL语句如图所示:CREATE TABLE 会员( 账号CHAR(20) PRIMARY KEY, 密码CHAR(2
10、0) NOT NULL, 姓名CHAR(20) NOT NULL, 地址VARCHAR(50) NOT NULL, 邮箱VARCHAR(30), 手机CHAR(11) NOT NULL, 管理员标识INT NOT NULL CHECK (管理员标识IN(0,1)(2)建立订单表 订单(订单号、订购日期、订单总价、发货日期、账号)为订单实体和订购联系合并的关系模式,其中订单号是主键。会员的主键账号是订单关系的外键。订单基本表的属性信息属性列数据类型是否为空/约束条件订单号CHAR(10)主键订购日期DATETIME否订购总价MONEY可以为空,非空时发货日期DATETIME可以为空账号CHAR(
11、20)否本表的SQL语句如图所示:CREATE TABLE 订单( 订单号 CHAR(10) PRIMARY KEY, 订购日期 DATETIME NOT NULL, 订购总价 MONEY CHECK(订购总价=0), 发货日期 DATETIME, 账号 VARCHAR(20) NOT NULL(3)建立图书表 图书基本表的属性信息,如下表所示:图书基本表的属性信息属性列数据类型是否为空/约束条件ISBNCHAR(20)主键书名VAR CHAR(50)否作者CHAR(30)可以为空出版社CHAR(30)可以为空定价MONEY否、折扣FLOAT否、010图书类别CHAR(20)否图书概况VAR
12、CHAR(100)可以为空库存数量INT否、本表的SQL语句如图所示:CREATE TABLE 图书( ISBN CHAR(20) PRIMARY KEY, 书名 VARCHAR(50) NOT NULL, 作者 CHAR(30), 出版社 CHAR(30), 定价 MONEY NOT NULL CHECK(定价=0), 折扣 FLOAT NOT NULL CHECK(0=折扣 and 折扣=0)(4)建立订单详情表 订单详情(订单号、ISBN、订购数量、发货状态)为“订单详情”联系对应的关系模式。订单详情基本表的属性信息属性列数据类型是否为空/约束条件订单号CHAR(10)否、主属性ISBN
13、CHAR(20)否、主属性订购数量INT否、本表的SQL语句如图所示:CREATE TABLE 订单详情( 订单号 CHAR(10) NOT NULL, ISBN CHAR(20) NOT NULL, 订购数量 INT NOT NULL CHECK(订购数量=0) CONSTRAINT PK_订单详情 PRIMARY KEY(订单号,ISBN), FOREIGN KEY (订单号) REFERENCES 订单(订单号), FOREIGN KEY (ISBN) REFERENCES 图书(ISBN)4.2.2 管理基本表下面进行一些基本表的管理操作(1)向图书表中增加“页数”列,其数据类型是整型
14、。SQL语句:ALTER TABLE 图书 ADD 页数 INT (2)增加图书表中“页数”必须取大于0的约束条件SQL语句:ALTER TABLE 图书 ADD CHECK(页数0)(3)删除图书表中的“页数”列SQL语句:ALTER TABLE 图书 DROP COLUMN 页数4.3 建立和管理试图使用SQL语句建立试图的方法,生成一张“图书类别”为“计算机”的试图,将其命名为“计算机图书”。SQL语句:CREATE VIEW 计算机图书AS SELECT * FROM 图书WHERE 图书类别 = 计算机4.4 建立和管理索引用SQL语句建立索引的方法,为会员表中的姓名建立次索引。SQ
15、L语句:CREATE INDEX INDEX_姓名ON 会员(姓名)5.访问数据库 针对数据库的访问需求,事先利用insert语句向数据库中的基本表插入一批数据,四个表如下 : 图书表的实例数据 会员表的实例数据 订单表的实例数据 订单详情表的实例数据5.1 数据查询(1).查询会员张玲的信息: SQL语句如下:SELECT * FROM 会员WHERE 姓名 = 张玲(2).查询图书”中国通史(上下册)”的价格:SQL语句如下:SELECT 书名,定价,折扣 FROM 图书WHERE 书名 = 中国通史(上下册)(3).查询网上书店系统中每种图书的库存数量,并按照库存数量的由多到少进行排序。
16、 SQL语句如下:SELECT 书名,库存数量 FROM 图书ORDER BY 库存数量 DESC(4).查询”刘东光”订购的订单的情况 SQL语句如下:.SELECT 会员.姓名,订单.订单号,订单.订购日期,订单.订购总价,订单.发货日期FROM 会员,订单WHERE 会员.账号 = 订单.账号AND 姓名 = 刘东光5.2数据更新(1).书店价格调整,将”计算机”图书的“折扣”更新为折扣-1 SQL语句如下:UPDATE 图书SET 折扣 = 折扣-1WHERE 图书类别 = 计算机6.数据库维护6.1数据库备份 1)在“新建查询”窗口中输入下面的语句创建备份设备:SP_ADDUMPDE
17、VICE disk,网书书店系统_bak,D:网书书店系统_bakup 2)在“新建查询”窗口中述如下面的语句备份数据库:BACKUP DATABASE 网上书店系统 TO DISK=网书书店系统_bak6.2触发器 在订单表建立一个插入触发器,保证向订单表插入的“账号”在会员表中存在,如果没有该会员,那么将无法向订单表中插入订单的信息记录。 创建插入触发器的SQL语句如下:CREATE TRIGGER Insert_订单ON 订单FOR INSERTASIF (SELECT COUNT(*)FROM 会员,inserted WHERE 会员.账号=inserted.账号)=0BEGINPRINT没有该会员信息ROLLBACK TRANSACTIONEND
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1