科学生综合性实验报告
课程名称:数库系统原理
项目组长 学号
项目组员 学号
项目组员 学号
班 级 班
实验项目名称 服装租赁理系统数库设计
指导教师
开课学期 2012 2013 学年 第学期
完成时间 2013 年 X 月 X 日
目 录
1 需求分析 1
11 背景说明 1
12 系统目标系统边界 1
13 功需求分析 2
131 系统功描述 2
132 系统总体功图 5
133 业务流程描述 5
14 数需求业务规分析 6
141 数需求描述 6
142 数字典 8
143 业务规描述 10
144 数约束描述 11
2 概念设计 12
21 确定实体集属性 12
211 实体集分析 12
22 确定联系集属性 13
221 联系集分析 13
222 联系集属性数字典 17
23 概念模型(ER图) 18
3 逻辑设计 22
31 关系设计 22
33 约束说明 23
34 数处理 27
4 数库物理设计 27
41 确定数库存储结构 27
411索引存取方式采B+ 树索引方法 27
412聚簇存取方式 28
42 确定数库存取方法 28
421数存放位置 28
422数存储路径 28
5 数库应设计 29
51 数库脚 29
52 数库完整性设计 33
53 存储程设计 34
1 需求分析
根校园中现实生活中需选择越越普遍服装租赁作研究象更设计理系统需服装租赁系统进行市场需求描述分析背景目标功数需求等方面进行分析
11 背景说明
服装租赁市场块蛋糕现网络购物趋势发展势头迅猛网服装租赁市场开拓现发展中商家需抢占先机开拓网服装租赁市场抢占网交易市场份额
现生活电影电视剧演员学校文艺活动社团性质需种商业活动中文艺表演家遇面问题呢:天面试找套合适衣服啊公司年会找套合适晚礼服啊找合适演出服迎新晚会办办找合适动漫装动漫社维持啊
服装租赁实体店城市宣传少规模知道想找衣服跨越半城市距离定找想衣服会员累浪费时间
然现国许服装租赁公司然公司网页服装信息会网页显示网站提供网购物项目甚没显示服装价格没客户评供参考没服装参数输入关键字找想服装
现网购趋势发展迅猛国网购市场发展劲头充足传统方式正遭受击服装租赁行业潜力巨供应求网服装租赁市场表现出巨发展潜力国外出现高档服装出租市场市场前景十分
12 系统目标系统边界
(1)系统目标
系统致力公司服务更方便家生活娱乐面社会界士提供服装租赁会员通系统寻找想服装系统会员保留服装租赁记录免出现必重复选择服装提供参考系统允许会员租赁服装进行评价采取价租赁定价方式更透明直接系统会员找合适服装出发点实现服装租赁科学化系统化动化减少服装租赁花费时间成
(2)系统边界
会员订购服装方面考虑线支付支付宝模块考虑物流时间配送公司选择模块考虑采购服装模块考虑交易结束理员返定金模块
13 功需求分析
系统功分析作整系统中组组成部分必须重点分析设计模块系统功设计坏会整系统着决定性影响实际需求出发系统功进行分析
131 系统功描述
功需求分析描述服装租赁系统提供功服务包括会员信息理理员信息理服装基信息理服装类信息理订单信息理会员评价等模块
⑴会员信息理
提供会员注册修改查询统计基信息功会员基信息包括姓名性出生日期年龄电话号码邮箱密码会员等级注册日期
①注册基信息
会员通注册录入会员信息会员注册时求填写会员信息包括姓名性出生日期年龄电话号码邮箱密码会员等级注册日期系统动生成注册日期注册日期默认系统前日期注册时会员等级默认普通会员系统检测信息填写正确提示会员注册成功返回会员编号
②修改会员信息
会员信息发生变更需修改时会员需先原姓名密码登录修改密码电话号码址邮箱理员没权限修改会员基信息
③查询会员信息
会员理员均查询会员姓名出生日期年龄电话号码性址邮箱会员等级
⑵服装信息理
服装信息进行理服装信息提供增删改查统计功服装基信息包括服装编号款式名称价格租金服装类编号颜色数量
① 增加服装信息
基满足市场需求扩业务宽度需求理员需断增加新服装定义增加服装信息情况已服装类中增加新款式服装
已服装中增加新款式服装:增加服装编号款式名称价格租金颜色数量
②删服装信息
需时理员需删某服装里考虑情况:服装时适宜出租赁二服装已部分损坏制造商生产出租赁删该服装时定没需租赁该服装订单删服装时会服装服装基信息表中删
③修改已服装信息
服装数量修改:服装破损造成服装数量减少业务量增造成某服装数量增加会员违约造成服装数量减少
租金修改:前租金利业务发展时修改租金
修改服装编号价格分类颜色款式数量名称租金
④查询服装信息
查询服装会员理员根服装编号服装名称进行查询
⑤统计服装信息
理员根服装编号统计服装租赁情况
⑶订单理
会员订单进行查询修改增加取消操作理员订单进行删查询统计操作会员查历史订单理员查会员历史订单
①修改订单
1)发货前
需删某款服装时:会员修改租服装颜色款式数量实际需求时间租赁天数时间订单生成时间修改订单时时间默认前系统时间
需订单中服装进行删时:会员直接订单中删该服装
需增加租赁服装时:选择原订单中添加需租赁服装增加张新订单
2)发货
发货会员推迟送达时间提前送达时间修改联系电话
②查询订单
理员会员订单编号会员编号查询订单信息包括租服装基信息配送信息
③删订单
理员删会员已取消交易订单订单状态未完成已完成订单删
④历史订单
历史订单交易已完成订单服装已成功返订单显示历史租赁服装类编号编号分类颜色款式数量名称租金实际需求时间时间租赁天数
⑤统计订单
订单生成时间统计某时间段某时间点成交订单详情交易数量交易总额
订单发货时间统计订单中服装发货时间需求
订单返时间统计订单中服装否逾期未
⑥增加订单
会员租赁需求需增加张新订单订单中需注明需服装基信息包括订单编号服装类编号服装编号分类颜色款式数量名称租金实际需求时间租赁天数时间确认生成订单预定时间默认系统前时间
⑦取消订单
发货前会员取消已生成订单发货会员修改订单理员权取消会员已生成订单
⑷评价理
顾客出评价进行理
①提供会员商品评价功
舒适度价格服装卫生四方面进行评价注明评价时间
(1):偏偏合适
(2)价格:偏贵适中便宜
(3)服装卫生:满意般差
②提供理员会员评价回复功
理员会员已出评价做出适回复注明回复容回复时间
⑸服装类理
增加服装类:增加服装类编号服装类名称
删服装类:服装类中服装存服装类时删该服装类
⑹ 理员信息理
工作员理员身份注册填写基信息包括理员编号登录密码姓名性出生日期薪水住址电话邮箱系统检测信息填写正确提示理员注册成功返回理员编号理员行理员权限进行操作
理员数时理员查修改信息查询修改理员信息
132 系统总体功图
133 业务流程描述
14 数需求业务规分析
根校园中租赁服装验市场服装租赁情况调查解解系统需数需求应业务规约束
141 数需求描述
(1)会员表会员编号唯识需存储会员编号登录密码会员姓名出生年月性址邮编电话号码单位邮箱等说明:年龄出生日期直接计算出派生属性作存储属性
(2)理员理员编号唯识求记录理员编号理员姓名密码性出生年月薪水址电话号码邮箱等说明:年龄出生日期直接计算出派生属性作存储属性
(3)服装类服装类编号唯识需记录服装类编号服装类名称
服装类编号服装类名称应
(4)服装服装编号唯识求记录服装编号服装名称价格颜色数量租金等件衣服属服装类服装类中件服装
(5)订单表订单编号唯识求包括订单编号会员编号订单生成日期支付方式支付状态订单状态应收租金额实收租金额等订单生成日期会员提交订单时系统日期准
(6)订单明细订单编号服装编号唯识
(7)评价评价编号唯识求记录评价编号评价日期评价容回复日期回复容评价日期回复日期取系统前时间会员条留言条留言应会员中留言留会员编号理员条留言进行回复条回复应条留言回复留理员编号
(8)配送配送单号唯识包括配送单号订单编号配送日期收货配送址邮编电话配送状态等
142 数字典
属性集
含义
类型
域约束
实例
cusNo
会员编号
码
Char(9)允许空值
C1201001
code
密码
Char(12)少六位
3A5B678C
cusName
姓名
Varchar(20)允许空
刘玲
birthday
出生年月
Datement
19921025
sex
性
Char(2)取值范围:(男’女’)
女
address
址
Varchar(40)
江西省南昌市信息理学院
zipCode
邮编
Char(6)允许空
330032
telephone
电话
Char(13)数字字符加连字符’组成
13812345678
邮箱
Varchar(40)
12345678@qqcom
unit
单位
Varchar(40)允许空值
江西财学
range
会员等级
Varchar(20)取值范围:{黄金会员’铂金会员’钻石会员’普通会员’}
普通会员
图11 会员实体集数字典
属性集
含义
类型
域约束
实例
managerNo
理员编号
码
Char(10)允许空值
M201201001
code
密码
Char(12)少六位
Tx1101c2
managerName
理员姓名
Varchar(20)允许空
王强
sex
性
Char(2)取值范围:(男’女’)
男
birthday
出生年月
Datement
19870708
salary
薪水
Numeric
3500
address
址
Varchar(40)
江西省南昌市
telephone
电话
Char(13)数字字符加连字符’组成
13607081213
邮箱
Varchar(40)
765964768@qqcom
图12 理员实体集数字典
属性集
含义
类型
域约束
实例
orderNo
订单编号
码
Char(15)允许空值
B12003201201001
orderDate
订单生成日期
Datetime允许空值
20121213
payWay
支付方式
Char(8)取值范围:(线支付’货付款’)
线支付
payState
支付状态
Char(2)取值范围:(’否’)
orderState
订单状态
Char(40)取值范围:(未审核’已审核’已配送’已结束’)
已配送
shouldReceive
应收租金额
派生
服装订购联系集中统计
factReceive
实收租金额
派生
服装订购联系集中统计
图13 订单实体集数字典
属性集
含义
类型
域约束
实例
sendNo
配送单号
部分码
Char(8)允许空值
S2012001
orderNo
订单号
部分码
sendDate
配送日期
联系
Datetime配送单实体集配送公司间联系集配送联系属性
20121215
receiver
收货
Verchar(20)默认会员实体集cusName属性前值允许修改
刘玲
sendAddress
送货址
Verchar(40)默认会员实体集address属性前值允许修改
江西省南昌市信息理学院
zipCode
邮编
Char(6)默认会员实体集zipCode属性前值允许修改
330032
sendTel
联系电话
Char(13)默认会员实体集telephone属性前值允许修改
13812345678
sendState
配送状态
联系
Char(6)取值范围:{未发货’已发货’已送达’已返’}配送单实体集配送公司间联系集配送联系属性
已发货
图14 配送单实体集数字典
属性集
含义
类型
域约束
实例
classNo
服装类编号
码
Char(1)取值范围:{A’Z’26英文字母字母编号类}
A
className
服装类名称
Verchar(20)
女士礼服
图15 服装类实体集
属性集
含义
类型
域约束
实例
clothNo
服装编号
码
Char(12)
CL2012001001
clothName
服装名称
Verchar(50)
真丝长款晚礼服
price
价格
Numeric
800
color
颜色
Verchar(6)
红
size
Char(1)取值范围:{S’M’L’}
M
quantity
数量
Numeric
5
rent
租金
Numeric
58
图16 服装实体集
属性集
含义
类型
域约束
实例
evaNo
评价编号
码
Char(6)
E120101
evaDate
评级日期
Datetime
20121227
evaContent
评价容
Verchar(280)
衣服干净漂亮
replyDate
回复日期
Datetime
20121228
replyContent
回复容
Verchar(280)
谢谢您支持
图17评价实体集数字典
143 业务规描述
(1)会员注册时唯编号系统分配
(2)会员注册修改查询注册信息
(3)会员查询前订单历史订单订单中服装发货前修改订单发货修改联系方式
(4)服装信息修改增加删统计理员操作会员理员查询服装基信息
(5)理员进行统计基信息操作
(6)会员预订服装数量超数量
(7)颜色款式相服装唯编号
(8)会员租赁件服装进行评价件服装评价超2次
(9)条评价字数超140字
(10)服装订单形成
(11)服装成功租赁次租赁次数加
(12)会员查修改会员评价
(13)理员回复会员评价回复评价
(14)订单生成理员没发货前提出取消订单
(15)租金满59免邮
(16)区理员需确定快递公司达目般时间
(17)租赁天数服装发出天算起服装重新会员手中发回天结束
(18)计算总价方法:实际总价租金总价(menuSum)*会员折扣+邮费(免邮会员邮费0)
(19)特殊素会员应时租服装否承担相应法律责
144 数约束描述
系统数约束:
(1) 会员编号约束:字母C开头加7位数字组成流水号次增check约束check(CusNo like [C][09] [09] [09] [09] [09] [09] [09] ’)
(2) 理员编号约束:字母M开头加9位数字组成流水号次增check约束check(managerNo like [M][09] [09] [09] [09] [09] [09] [09] [09] [09]’)
(3)服装编号约束:字母CL开头加10位数字流水号次增check约束check(ClothNo like [C][L][09] [09] [09] [09] [09] [09] [09] [09] [09] [09]’)
(4)订单编号约束:字母B开头加14位数字流水号次增Check约束check(BookNo like [B][09] [09] [09] [09] [09] [09] [09] [09] [09] [09] [09] [09] [09] [09]’)
(5)会员信息表键CusNo会员编号唯
(6)会员信息表会员注册信息允许空
(7)服装信息表键ClothNo服装编号唯
(8)密码(Code)空值612位字母数字组成
(9)订单表键BookNo订单编号唯
(10)址(address)空值填写省份市(:江西省南昌市)直辖市(:海市)字数超20字
(11)电话号码(telephone)空值取值范围0000000000099999999999固定电话加区号输入
(12)性(sex)空值输入男女
(13)姓名(CusName)空值超20字
(14)服装(clothSize)空值输入SMLXL
(15) 配送单编号约束:字母S开头加7位数字组成流水号次增check约束check(sendNo like [S][09] [09] [09] [09] [09] [09] [09]’)
(16)服装类编号(classNo)约束:字母AZ26字母进行编号约束check(sendNo like [A]’)
(17)评价编号(evaNo)约束:字母E开头加12位数字组成流水号次增Check约束check(sendNo like[E] [09] [09] [09] [09] [09] [09] [09][ 09][ 09][ 09][ 09][ 09]’)
2 概念设计
概念设计中会确定实体集联系集属性出系统ER图分析
21 确定实体集属性
数库概念设计分步骤:根需求分析确定实体集联系集分析系统核心业务进步完善增加必联系集实体集定义完整ER图数字典
211 实体集分析
系统数需求描述中抽取出实体集属性进行描述
(1) 会员实体集(Customer):会员编号(CusNo)密码(code)姓名(CusName)出生年月(birthday)性(sex)住址(address)邮箱(email)电话(telephone)会员等级(range)
(2) 理员实体集(Manager):理员编号(managerNo)登录密码(passCode)姓名(managerName)性(sex)出生日期(birthday)薪水(salary)住址(address)电话(telephone)邮箱(email)
(3) 服装实体集(Clothes):服装编号(clothNo)服装名称(clothName)价格(price)颜色(color)(size)数量(quantity)租金(rent)
(4) 服装类实体集(Class):服装类编号(classNo)服装类名称(className)
(5) 配送单弱实体集send配送单号(sendNo)配送日期(sendDate)收货(receiver)送货址(sendAddress)邮政编码(zipCode)联系电话(sendTel)配送状态(sendState)
(6) 订单实体集orderMaster订单号(orderNo)订单生成时间(orderDate)总金额(orderSum)付款方式(payWay)订单状态(orderState)
(7) 评价实体集Evaluate:评价编号(evaNo)评价日期(evaDate)评价容(evaContent)回复日期(replyDate)回复容(replyDate)评价者回复者等信息通建立会员评价理员评价间联系解决
22 确定联系集属性
实体集间具联系联系集方式表达租赁联系集预订联系集审核实体集包含标识联系集服装配送联系集发布联系集回复联系集
221 联系集分析
实体集(联系集)间联系进行描述包括联系映射基数联系属性等
(1) 服装租赁联系集:服装实体集订单实体集间联系集描述属性:租赁数量(quantity)价格(price)租金(rent)
(2) 租赁联系集:订单实体集会员实体集间联系集没联系属性
(3) 审核联系集:订单实体集理员实体集间联系集没联系属性
(4) 配送联系集:订单实体集配送单弱实体集间联系集
配送联系集:配送单弱实体集服装实体集间联系集描述属性:配送日期(sendDate)配送状态(sendState)
(5) 发布联系集:会员实体集评价实体集间联系集属性:评价日期(evaDate)评价容(evaContent)
(6) 回复联系集:理员实体集评价实体集间联系集属性:回复日期(replyDate)回复容(replyContent)
(7) 属联系集:服装实体集服装类型实体集间联系集属性:服装类型编号(classNo)
(8) 参联系集:服装实体集订单明细弱实体集间联系没联系属性
(9) 组成联系集:订单订单明细弱实体集间联系没联系属性
根新分析进步建模数字典图21图28示
属性集
含义
类型
域约束
实例
cusNo
会员编号
码
Char(9)允许空值
C1201001
code
密码
Char(12)少六位
3A5B678C
cusName
姓名
Varchar(20)允许空
刘玲
birthday
出生年月
Datement
19921025
sex
性
Char(2)取值范围:(男’女’)
女
address
址
Varchar(40)
江西省南昌市信息理学院
zipCode
邮编
Char(6)允许空
330032
telephone
电话
Char(13)数字字符加连字符’组成
13812345678
邮箱
Varchar(40)
12345678@qqcom
unit
单位
Varchar(40)允许空值
江西财学
range
会员等级
Varchar(20)取值范围:{黄金会员’铂金会员’钻石会员’普通会员’}
普通会员
图21 会员
属性集
含义
类型
域约束
实例
managerNo
理员编号
码
Char(10)允许空值
M201201001
code
密码
Char(12)少六位
Tx1101c2
managerName
理员姓名
Varchar(20)允许空
王强
sex
性
Char(2)取值范围:(男’女’)
男
birthday
出生年月
Datement
19870708
salary
薪水
Numeric
3500
address
址
Varchar(40)
江西省南昌市
telephone
电话
Char(13)数字字符加连字符’组成
13607081213
邮箱
Varchar(40)
765964768@qqcom
图22 理员
属性集
含义
类型
域约束
实例
orderNo
订单编号
码
Char(15)允许空值
B12003201201001
orderDate
订单生成日期
Datetime允许空值
20121213
payWay
支付方式
Char(8)取值范围:(线支付’货付款’)
线支付
payState
支付状态
Char(2)取值范围:(’否’)
orderState
订单状态
Char(40)取值范围:(未审核’已审核’已配送’已结束’)
已配送
shouldReceive
应收租金额
派生
服装订购联系集中统计
factReceive
实收租金额
派生
服装订购联系集中统计
图23 订单
属性集
含义
类型
域约束
实例
sendNo
配送单号
码
Char(8)允许空值
S2012001
orderNo
订单号
码
Char(15)允许空值
B12003201201001
sendDate
配送日期
联系
Datetime配送单实体集配送公司间联系集配送联系属性
20121215
receiver
收货
Verchar(20)默认会员实体集cusName属性前值允许修改
刘玲
sendAddress
送货址
Verchar(40)默认会员实体集address属性前值允许修改
江西省南昌市信息理学院
zipCode
邮编
Char(6)默认会员实体集zipCode属性前值允许修改
330032
sendTel
联系电话
Char(13)默认会员实体集telephone属性前值允许修改
13812345678
sendState
配送状态
联系
Char(6)取值范围:{未发货’已发货’已送达’已返’}配送单实体集配送公司间联系集配送联系属性
已发货
图24 配送单
属性集
含义
类型
域约束
实例
classNo
服装类编号
码
Char(1)取值范围:{A’Z’26英文字母字母编号类}
A
className
服装类名称
Verchar(20)
女士礼服
图25 服装类
属性集
含义
类型
域约束
实例
clothNo
服装编号
码
Char(12)
CL2012001001
classNo
服装类编号
Char(1)取值范围:{A’Z’26英文字母字母编号类}
A
clothName
服装名称
Verchar(50)
真丝长款晚礼服
price
价格
Numeric
800
color
颜色
Verchar(6)
红
size
Char(1)取值范围:{S’M’L’}
M
quantity
数量
Numeric
5
rent
租金
Numeric
58
图26 服装
属性集
含义
类型
域约束
实例
evaNo
评价编号
码
Char(7)
E120101
cusNo
会员编号
Char(8)
C2012001
evaDate
评级日期
Datetime
20121227
evaContent
评价容
Verchar(280)
衣服干净漂亮
managerNo
理员编号
Char(10)
M201201001
replyDate
回复日期
Datetime
20121228
replyContent
回复容
Verchar(280)
谢谢您支持
图27 评价数字典
属性集
含义
类型
域约束
实例
orderNo
订单编号
码
Char(15)允许空值
B12003201201001
clothNo
服装编号
码
Char(12)
CL2012001001
quantity
数量
Numeric
1
rent
租金
Numeric
58
color
颜色
Verchar(6)
红
size
Char(1)取值范围:{S’M’L’}
M
图28 订单明细数字典
222 联系集属性数字典
属性名
含义
类
域约束
实例
Quantity
租赁数量
Numeric
Price
价格
Numeric
rent
租金
Numeric
图29编写服装租赁clothrent联系集数字典
属性名
含义
类
域约束
实例
sendDate
配送日期
Datetime
sendState
配送状态
Char(6)
图210 编写服装配送clothsend联系集数字典
属性名
含义
类
域约束
实例
evaDate
评价日期
Datetime
evaContent
评价容
Datetime
图211 编写评价evaluate联系集数字典
属性名
含义
类
域约束
实例
replyDate
回复日期
Datetime
replyContent
回复容
Datetime
图212编写回复reply联系集数字典
属性名
含义
类
域约束
实例
classno
服装类型编号
char(1)
图213 编写属belong联系集
23 概念模型(ER图)
图214 会员实体集ER图
图215 理员实体集ER图
图216 订单实体集ER图
图217 配送单实体集ER图
图218 服装类实体集ER图
图219 服装实体集ER图
图220 评价实体集ER图
图221 订单明细表实体集ER图
图222 整体集ER图
3 逻辑设计
次设计数模式SQL Server实现概念设计中ER图转换成SQL Sever支持关系数模型
31 关系设计
关系设计中实体集联系集转化合适关系模式进行关系优化果根ER图转化关系模式已符合3NF
311 实体集转化关系模式
1) Customer实体集转化关系模式:
Customer(cusNocodecusNameagebirthdaysexaddresszipCodetelephoneunitemail)
2) orderMaster实体集转化关系模式:orderrNocusNoorderDatepayWaypayStateorderStateshouldRecivefactRecive)
3) OrderDetail实体转化关系模式:
orderNoclothNoquantityrent)
5)Send实体转化关系模式:
Send(sendNoOrderNosendDatereciversendAddresszipCodesendTelsendState)
6) Class实体转化关系模式:
Class(classNoclassName)
7) Cloth实体转化关系模式:
Cloth(clothNoclothNameclassNopricecolorsizequantityrent )
8)Evaluate实体转化关系模式:
Evaluate(evaNoevaDateevaContentreplyDatereplyContent)
312联系集转化关系模式
1) Clothrent联系集: Clothrent(QuantityPricerent)
2)Creat联系集转化ClothSend:
ClothSend (sendDatesendState)
3)Combination联系集转化orderDetail:orderDetail(orderNoclothNoclothNorent)
4)Evaluate联系集:
Evaluate(evaDateevaContent)
5)回复Reply联系:
Reply(replyDatereplyContent)
6)Class联系集
Class(classNo)
33 约束说明
属性名称
数类型
属性描述
cusNo
Char(8)
会员编号
code
Char(12)
登陆密码
cusName
Varchar(20)
会员姓名
birthday
Datement
出生年月
age
numeric
年龄
sex
Char(2)
性
address
Varchar(20)
址
zipCode
Char(6)
邮编
telephone
Char(18)
电话号码
unit
Varchar(20)
单位
Varchar(40)
邮箱
图31 会员Customer表
属性名称
数类型
属性描述
managerNo
Char(10)
理员编号
code
Char(12)
密码
managerName
Varchar
理员姓名
sex
Char(2)
性
birthday
Datement
出生年月
salary
Numeric
薪水
address
Varchar(40)
址
telephone
Char(13)
电话号码
Varchar(40)
邮箱
图 32 理员Manager表
属性名称
数类型
属性描述
orderNo
Char(15)
订单编号
cusNo
Char(8)
会员编号
orderDate
Datement
订单生成日期
payWay
Char(8)
支付方式
payState
Char(2)
支付状态
orderState
Char(6)
订单状态
shouldRecive
numeric
应收租金额
factRecive
numeric
实收租金额
图33 订单表OrderMaster
属性名称
数类型
属性描述
orderNo
Char(15)
订单编号
clothNo
Char(12)
服装编号
quantity
Numeric
数量
rent
Numeric
租金
color
Char(6)
颜色
size
Char(2)
图34 订单明细表 OrderDetail
属性名称
数类型
属性描述
sendNo
Char(8)
配送单号
OrderNo
Char(15)
订单编号
sendDate
Datetime
配送日期
reciver
Varchar(20)
收货
sendAddress
Varchar(40)
配送址
zipCode
Char(6)
邮编
sendTel
Char(13)
电话
sendState
Char(6)
配送状态
图35 配送Send表
属性名称
数类型
属性描述
classNo
Char(1)
服装类编号
className
Varchar(20)
服装类名称
图36 服装类表
属性名称
数类型
属性描述
clothNo
Char(12)
服装编号
clothName
Varchar(50)
服装名称
classNo
Char(1)
服装类编号
price
Numeric
价格
color
Varchar(6)
颜色
size
Char(1)
quantity
Numeric
数量
rent
Numeric
租金
图37 服装Cloth表
属性名称
数类型
属性描述
evaNo
Char(6)
评价编号
cusNo
charI(8)
会员编号
evaDate
Datetime
评价日期
evaContent
Varchar(280)
评价容
managerNo
Char(10)
理员编号
replyDate
Datetime
回复日期
replyContent
Varchar(280)
回复容
图38 评价表
函数赖关系:
(1)服装表
函数赖集F1{服装编号 决定 (服装名称价格租金颜色数量租金)} ∈3NF
(2)服装类表
函数赖集F2{服装类编号 决定 (服装名称)} ∈3NF
(3)配送表
函数赖集F3{(配送单号订单号) 决定 (配送日期收货配送址邮编电话配送状态)} ∈3NF
(4)会员表
函数赖集F4{会员编号 决定(会员姓名密码出生年月性址邮编电话号码单位邮箱)} ∈3NF
(5)理员表
函数赖集F5{理员编号 决定(性理员姓名出生年月薪水址电话号码邮箱密码)} ∈3NF
(6)评价表
函数赖集F6{评价编号 决定(评价日期评价容回复日期回复容)} ∈3NF
(7)订单明细表
函数赖集F7{订单编号 决定(服装编号数量租金)} ∈3NF
(8)订单表
函数赖集F8{(订单编号会员编号)决定 (订单生成日期支付方式支付状态订单状态应收租金额实收租金额)} ∈3NF
34 数处理
结合实际情况系统功分析建立数处理程表413示
编号
功
处理说明
1
创建数库clothDB实体表
实体表包括会员表理员表服装类表等
2
创建存储程查询服装信息
服装编号服装名称等查询
3
修改服装租金
理员修改服装租金
4
统计某服装类中服装总数
统计服装类中服装总数
5
创建触发器动进行租金总额计算
动会员租赁服装进行价格统计
6
创建存储程实现会员编号动生成
创建触发器实现会员编号动生成
7
创建存储程统计会员查询某件服装时找出类服装中租赁次数排名前三服装顾客推荐
统计顾客搜索服装类中服装租赁次数排名前三服装实现气符合祖昂推荐
表9 数处理程
4 数库物理设计
逻辑设计基础关系模式存储方式数库存取结构进行物理优化
41 确定数库存储结构
提高数库数存取速度需设置合适存取方式采两类存取方式
411索引存取方式采B+ 树索引方法
(1)Customer表数量相中cusName(会员姓名) telephone(电话号码)等属性列Manager表managerName(理员姓名)managerNo(理员编号)等属性列Ordermaster表orderNo(订单编号)等属性常出现查询条件中表中列中建立索引
(2)Send表sendNo(配送编号)Class表classNo(服装类编号)Evaluate表 evaNo(评价编号)等属性列常出现链接操作链接条件中列建立B+树索引
(3)orderDetail表price(单价)rent(租金)Cloth表中price (单价)等属性列常查询表中建立索引
412聚簇存取方式
(1)特殊说明表外余表键默认建立聚簇索引
(2)订单表订单明细中数常查询数加快查询速度OrderMaster表rentOrderDetail表rent列建立聚簇索引
42 确定数库存取方法
提高系统整体性数库中数组织分文件分开进行存储
421数存放位置
数库中数组织primary文件进行存储
422数存储路径
(1)目前实验条件根实验需求数文件存储路径中
create database clothdb
on primary
( name'clothdb'
filename'C\mywork\clothdbmdf'
size5
maxsize20
filegrowth 1 )
log on
( name'clothlog'
Filename'C\mywork\clothdbmdf'
size2
maxsize8
filegrowth1)
Go
5 数库应设计
章中会完成数库脚基础创建存储程触发器完成统计工作完整性约束
51 数库脚
set nocount on
set dateformat ymd
use master
go
if not exists(select * from syslogins where name'user01')
exec sp_addlogin user01888888
go
*create database*
if exists(select *from sysdatabases where name'OrderDB')
drop database OrderDB
go
create database clothdb
on primary
( name'clothdb'
filename'C\mywork\clothdbmdf'
size5
maxsize20
filegrowth 1 )
log on
( name'carlog'
Filename'C\mywork\clothdbldf'
size2
maxsize8
filegrowth1)
Go
create database clothdb
on primary
( name'clothdb'
filename'C\mywork\clothdbmdf'
size5
maxsize20
filegrowth 1 )
log on
( name'carlog'
Filename'C\mywork\clothdbldf'
size2
maxsize8
filegrowth1)
Go
CREATE TABLE customer 会员表
(
cusNo char(8) not null *会员编号*
check(cusNo like '[C][09][09][09][09][09] [09] [09]')
cusName varchar(20) not null *会员姓名*
code Char(12) not null *密码*
rthday Datetime not null *出生年月*
sex char(2) not null *性*
address varchar(100) not null *址*
telephone char(11) not null *电话*
email char(40) not null *邮箱*
unit varchar(40) not null *单位*
cuslevel varchar(10) not null *会员等级*
bi
constraint customerPK primary key (cusNo)
)
go
create table class 服装类表
(
classNo char(1) not null *服装类编号*
check (classNo like '[A]')
className varchar(20) not null *服装类名称*
constraint classPK primary key (classNo)
)
Go
create table ordermaster 订单表
(
orderNo char(15) not null *订单编号*
check (orderNo like '[B][09][09][09][09][09][09][09][09][09][09][09][09][09][09]')
cusNo Char(8) not null *会员编号*
orderDate Datetime not null *订单生成日期*
payWay Char(8) not null *支付方式*
payState Char(2) not null *支付状态*
orderState Char(6) not null *订单状态*
shouldRecive numeric(52) not null *应收租金额*
factRecive numeric(52) not null *实收租金额*
constraint ordermasterPK primary key (orderNo)
constraint ordermasterFK1 foreign key(cusNo) references customer(cusNo)
)
Go
create table cloth 服装表
(
clothNo char(12) not null *服装编号*
check(clothNo like '[C][09][09][09][09][09][09][09][09][09][09][09]')
clothName Varchar(50) not null *服装名称*
price numeric(72) not null *价格*
classNo char(1) not null *服装类编号*
color char(6) not null *颜色*
size char(2) not null **
quantity numeric(72) not null *数量*
rent numeric(72) not null *租金*
constraint clothPK primary key (clothNo)
constraint clothFK1 foreign key(classNo) references class(classNo)
)
go
create table orderDetail 订单明细表
(
orderNo char(15) not null *订单编号*
clothNo Char(12) not null *服装编号*
check(clothNo like '[C][L][09][09][09][09][09] [09][09][09][09][09] [09]')
quantity numeric(72) not null *数量*
price numeric(72) not null *价格*
color char() not null *颜色*
size char(2) not null **
constraint orderDetailPK primary key clustered(orderNoclothNo)
constraint orderDetailFK1 foreign key(orderNo) references ordermaster(orderNo)
constraint orderDetailFK2 foreign key(clothNo ) references cloth(clothNo )
)
Go
create table manager 理员表
(
managerNo char(10) not null *理员编号*
check(managerNo like '[M][09][09][09][09][09][09][09][09][09]')
code char(12) not null *密码*
managerName varchar(20) not null *理员姓名*
sex char(2) not null *性*
birthday datetime not null *出生年月*
salary numeric(72) not null *薪水*
address varchar(100) not null *址*
telephone char(11) not null *电话号码*
email char(40) not null *邮箱*
constraint managerPK primary key (managerNo)
)
Go
CREATE TABLE Evaluate 评价表
(
evaNo char(7) not null *评价编号*
check(evaNo like '[E][09][09][09][09][09][09]')
cusNo char(9) not null *会员编号*
evaDate Datetime not null *评价日期*
evaContent Varchar(280) not null *评价容*
managerNo char(10) not null *理员编号*
replyDate Datetime not null *回复日期*
replyContent Varchar(280) not null *回复容*
constraint EvaluatePK primary key (evaNo)
)
go
CREATE TABLE Send 配送表
(
sendNo Char(8) not null *配送单号*
check(sendNo like '[S][09][09][09][09][09][09][09]')
OrderNo Char(15) not null *订单编号*
sendDate Datetime not null *配送日期*
reciver Varchar(20) not null *收货*
sendAddress Varchar(40) not null *配送址*
zipCode Char(6) not null *邮编*
sendTel Char(11) not null *电话*
sendState Char(6) not null *配送状态*
constraint SendPK primary key (sendNo)
constraint sendFK1 foreign key(orderNo) references orderMaster(orderNo)
)
Go
52 数库完整性设计
创建触发器果服装表中服装改变时订单明细表更改*(杨园)*
create trigger trigger
on orderDetail
for update
as
if update(quantity) or update(clothNo)
begin
declare @orderNo char(12)
declare cur_orderdetail scroll cursor for
select orderNoclothNo
from deleted
open cur_orderdetail
begin tran
fetch next from cur_orderdetail into @orderNo
while(@@fetch_status0)
begin
update order
set shouldRecieveshouldRecievedquantity*drent+iquantity*irent
from inserted ideleted d
where orderorderNoiorderNo and iorderNodorderNo
and orderorderNo@orderNo
fetch next from cur_orderdetail into @orderNo
end
commit tran
close cur_orderdetail
deallocate cur_orderdetail
end
53 存储程设计
创建存储程数库前台工作封装台处理缩短系统响应提高系统服务力特殊说明涉前台服务请求程均封装成台服务器存储程具体设计细节参见数库设计脚
(1)建立存储程实现服装租赁租金总价根订单明细表中数计算出*(杨园)*
create procedure p_rentsum
as
begin
declare @orderno char(15)
declare cur_rentsum scroll cursor for
select orderNo
from orderdetail
open cur_rentsum
fetch next from cur_rentsum into @orderno
while(@@fetch_status0)
begin
update order
set rentsumorderdetailquantity*orderdetailrent
from orderdetail a
where aorderNo@orderno
fetch next from cur_rentsum into @orderno
end
close cur_rentsum
deallocate cur_rentsum
end
(2)建立存储程实现会员编号动生成*(涂星)*
create procedure cusNo(@sYear char(4)@scusNo char(8) output)
as
begin
declare @cusNo char(8)@num int
declare @sNum char(3)
select @cusNomax(cusNo)
from customer
where cusNo like 'C'+@sYear+''
set @numisnull(convert(intright(@cusNo3))0)+1
if @num<10
set @sNum'00'+convert(char(1)@num)
else
if @num<100
set @sNum'0'+convert(char(2)@num)
else
set @sNumconvert(char(3)@num)
set @scusNo'E'+@sYear+@sNum
end
go
declare @scusNo char(8)
execute cusNo'2012'@scusNo output
select @scusNo 员工编号
(3)创建存储程会员查询某件服装时统计该服装属服装类中租赁次数排名前三服装顾客推荐*(涂星)*
create procedure chunchu (@classNo char(1))
as
begin
declare @clothNo char(12)@sum int
declare @text char(50)
declare cur_cloth cursor for
select top 3 clothNocount(*) from OrderDetail acloth b where aclothNobclothNo and bclassNo@classNo
group by aclothNo
order by count(*)
open cur_clothNo
fetch cur_clothNo into @clothNo@sum
while(@@fetch_status0)
begin
select @text@clothNo
print @clothNo
fetch cur_clothNo into @clothNo@sum
end
close cur_clothNo
deallocate cur_clothNo
end
(4)创建存储程服装名称查询服装信息*刚文杰*
create procedure cloth_name @name varchar(20)
as
select * from cloth
where cloth_fname+cloth_lname like '@name'
exec cloth_name '刘玲'
(5)设置带参数存储程统计某服装类中服装总数实验时统计M类服装中服装总数*刚文杰*
create procedure clothsum @classNo char(1)
as
begin
select count(clothNo) 该服装类中服装总数
from cloth
where classNo@classNo
end
go
execute clothsum @classNo'M'
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档