1、 本科学生综合性实验报告课程名称:数据库系统原理拼车系统数据库设计项目组长 林翠涛 学号 0082667 班 级 B04 班 实验项目名称 拼车系统数据库设计 指导教师及职称 刘爱红 老师 开课学期 _ 2010 至 2011 学年 第 1 学期完成时间 _ 2010 年 12 月 31 日目 录 1 需求分析 .11.1 编写目的 .11.2 背景 .11.3 系统目标 .11.4 系统功能分析 .21.4.1 卖家基本信息管理 .21.4.2 路线基本信息管理 .21.4.3 商品基本信息管理 .31.4.4 拼车预订信息管理 .41.4.5 订单信息管理 .41.4.6 拼车评价信息管理
2、 .51.5 系统总体功能图 .51.6 数据需求及业务规则分析 .71.7 数据约束分析 .121.8 数据字典 .131.8.1 数据项与数据结构 .131.8.2 数据处理 .152 数据库概念设计 .192.1 定义实体集及属性 .192.2 定义联系集及属性 .192.3 E-R 模型设计 .202.3.1 实体 E-R 模型设计 .202.3.2 二元联系 E-R 模型设计 .212.3.3 三元联系 E-R 模型设计 .222.3.4 总 E-R 模型设计 .243 逻辑设计 .243.1 实体的转化为关系模式 .243.2 联系的转化为关系模式 .253.3 关系设计 .253
3、.3 函数关系依赖 .283.4 模式求精 .294 物理设计 .314.1 关系模式存储方式选择 .314.1.1 索引存取方式,主要采用 B+ 树索引方法 .314.1.2 聚簇存取方式 .324.2 数据库的存取结构 .324.2.1 数据的存放位置 .324.2.2 数据存储路径 .325 数据库脚本 .336 触发器与存储过程 .4301 需求分析需求分析将从编写目的、背景、系统目标系统功能分析、系统总体功能图、数据字典、数据需求及业务规则分析、实体和联系等方面进行分析,为概念设计提供依据。1.1 编写目的让该文档的使用成员成为拼车系统的开发人员及拼车系统具体组织管理人员。1.2 背
4、景拼车是指具有相同路线的人乘坐同一商品进行通勤及节假日出行,车费由乘客协议分摊的行为。市场经济,理性经济人假设条件下,任何一项事物的产生都有着一定的必然性,就“拼车”而言,其产生的原因大致可概括为六个方面:(1) 随着社会经济的发展,居民生活水平的提高,小汽车开始走进千家万户,这使得“拼车”成为了可能,即为“拼车”的出现提供了必要的物质基础;(2) 机动车保有(出行)成本的大幅攀升(如燃油、停车、维修保养等) ,迫使车主开始寻找成本分担方法;(3) 现有旅客运输的供给无法满足居民的出行需求(节假日期间尤为明显),那部分无法被满足的“过剩需求”必将转寻其他方式, “拼车”无疑是一种不错的选择;(
5、4) 居民个性化出行需求的增多(特别是年轻人) ,对现有的旅客运输也是一种无形的挑战;(5) 一些交通管理措施的实行,推动了“拼车”的产生,如,国外一些发达国家为缓解城市交通拥堵锁推行的“鼓励上下班合乘”的措施等;(6) 信息技术的飞速发展,特别是互联网的广泛普及,为“拼车”信息的发布、检索以及“拼车”条件的协商提供了中介平台,在百度上进行搜索,可以发现,几乎每个大城市都有自己的卖家(拼车)网, “拼”作为一种崭新的生活方式已逐渐被人们所接受。将上述六个方面的原因分为三类:第一,供给条件(原因(1) 、 (2) ) ;第二,需求条件(原因(3) 、 (4) 、 (5) ) ;第三,中介平台条件
6、(原因(6) ) 。从中可以看出,运输市场构成的三个要素已经完全具备, “拼车”的的产生已成为一种趋势。1.3 系统目标有车一族在网上发布出行信息(每天的出行、远途出行都可以) ,没车(或者有车,但不想开车)又顺路的人可以拼车,当然搭车的人需要付一定的金额。当拼车网的管理人员使用了拼车系统软件后,可以通过计算机完成以1下几方面的管理工作:拼车网注册卖家管理、路线信息管理、商品信息管理、成功拼车信息管理。拼车系统用户分为二类:(1)拼车网游客:只可以浏览拼车网开放的业务和信息,不可以进行网上拼车,也不为该类客户提供个性化服务,该类客户无需注册。(2)拼车网正式客户: 必须在拼车网注册,登录本拼车
7、网后,这类客户可以浏览拼车网的拼车信息,可以进行网上拼车,也可享受拼车网提供的个性化服务以及优惠服务等。1.4 系统功能分析拼车系统功能:卖家基本信息管理、路线基本信息管理、商品基本信息管理、拼车预订信息管理、订单信息管理、拼车评论信息管理、成功拼车信息管理。1.4.1 卖家基本信息管理提供卖家基本信息注册、注销、修改、查询以及统计功能。包括:(1)卖家基本信息录入:卖家通过注册录入基本信息,卖家注册时要求填写基本信息,包括姓名、性别、年龄、电话号码、所属区域、身份证号等信息。系统检测所有信息填写正确后提示客户注册成功,并返回卖家编号。(2)卖家基本信息修改:卖家基本信息注册错误或有所改变时可
8、以进行信息的修改。修改卖家姓名;修改卖家登陆密码;修改卖家出生年月;修改卖家电话号码;修改卖家性别;修改卖家所属区域;修改卖家身份证号;(3)卖家基本信息查询:根据不同的条件查询卖家基本信息。按卖家姓名查询卖家基本信息;按卖家编号查询卖家基本信息;按卖家电话号码查询卖家基本信息;按卖家所属区域查询卖家基本信息;按卖家年龄查询卖家基本信息;(4)卖家基本信息删除:卖家可以通过注销来删除基本信息。(5)卖家基本信息统计:可以按不同的条件统计卖家们使用本系统的情况。统计某一年龄的卖家人数;统计不同性别的卖家人数;统计某一地区的卖家人数;1.4.2 买家基本信息管理提供买家基本信息注册、注销、修改、查
9、询以及统计功能。包括:(1)买家基本信息录入:买家通过注册录入基本信息,买家注册时要求填写基本信息,包括姓名、性别、年龄、电话号码、所属区域、身份证号等信息。2系统检测所有信息填写正确后提示客户注册成功,并返回买家编号。(2)买家基本信息修改:买家基本信息注册错误或有所改变时可以进行信息的修改。修改买家姓名;修改买家登陆密码;修改买家出生年月;修改买家电话号码;修改买家性别;修改买家所属区域;修改买家身份证号;(3)买家基本信息查询:根据不同的条件查询买家基本信息。按买家姓名查询买家基本信息;按买家编号查询买家基本信息;按买家电话号码查询买家基本信息;按买家所属区域查询买家基本信息;按买家年龄
10、查询买家基本信息;(4)买家基本信息删除:买家可以通过注销来删除基本信息。(5)买家基本信息统计:可以按不同的条件统计买家们使用本系统的情况。统计某一年龄的买家人数;统计不同性别的买家人数;统计某一地区的买家人数;统计各年龄段的买家人数;1.4.3 商品基本信息管理提供商品基本信息增加、删除、修改、查询以及统计功能。包括:(1)商品基本信息增加:卖家可以增加商品基本信息,包括商品编号、商品类型、商品数量、商品名称、卖家编号、价格、发布时间等信息。系统检查所有信息填写正确后提示增加成功,返回商品编号。(2)商品基本信息修改:商品基本信息如果出错或者有所改变,可以对商品基本信息的具体内容进行修改。
11、修改商品编号;修改商品类型;修改商品数量;修改商品名称;修改卖家编号;修改车辆发布时间;修改商品价格;(3)商品基本信息查询:根据不同的条件查询商品基本信息。按商品编号查询商品基本信息;按商品类型查询商品基本信息;按商品数量查询商品基本信息;按商品名称查询商品基本信息;按卖家编号查询商品基本信息;按发布时间查询车辆基本信息;3按商品价格查询商品基本信息;(4)商品基本信息删除:可以删除商品编号、商品类型、商品数量、商品名称、卖家编号、发布时间、价格等所有信息。卖家在注销删除自己基本信息时也能把卖家增加的商品信息删除。(5)商品基本信息统计:系统可以根据不同的条件进行统计统计某一商品类型的商品数
12、;统计某一商品数量的商品数;统计某一商品名称的商品数;统计系统商品总数;统计某地区注册的商品数; 统计某一商品价格的商品数;1.4.4 拼车预订信息管理提供预订信息的增加、预订信息的查询、预订信息的修改、预订信息的删除、拼车座位预订、拼车座位退订。包括:(1)预订信息增加:卖家对路线与商品的确定能够产生一个预订信息供其他卖家的加入,预订信息需要增加预订编号、路线编号、商品编号、卖家编号、拼车费用、集合点、预订备注。(2)预订信息修改:对预订信息具体内容修改。更改路线编号;更改商品编号;修改拼车费用;修改集合点内容;修改预订备注内容;(3)预订信息查询:可以根据不同的条件查询预订信息。按商品商品
13、编号查询预订信息;按商品商品类型查询预订信息;按商品商品数量查询预订信息;按商品商品名称查询预订信息;按商品卖家编号查询预订信息;按路线编号查询预订信息;按路线出发地查询预订信息;按路线目的地查询预订信息;按预订编号查询预订信息;按商品使用费查询预订信息;(4)拼车座位预订:在预订期内卖家可以预定任意路线的一个或多个座位。(5)拼车座位退订:在预订期内卖家可以退订自己所预订过的任意路线的一个或多个座位。(6)预订信息统计:可以根据不同的条件进行预订信息统计。统计同一商品类型的预订信息数;统计同一商品数量的预订信息数;统计某一路线的预订信息数;统计某一出发地的预订信息数;统计某一目的地的预订信息
14、数;41.4.5 订单信息管理提供订单信息增加、修改、查询与统计功能。包括:(1)订单信息增加:当预订信息在预订期内人数达到商品商品数量,预订单将生成订单信息。如果预订期到了预订单还未凑足人数,将做如下考虑:如果商品商品数量为 5 人以下的,且实际参加人数少一个的预订信息将继续生成订单信息,且费用将按实际人数进行平摊。如果商品商品数量为 5 人以上的,且实际参加人数少于商品数量 20%内的将继续生成订单信息,且费用将按实际人数进行平摊。 (订单信息需要增加卖家编号、集合点、费用、订单备注等信息。 ) )(2)订单信息删除:如果订单信息生成后,由于过多的人数退出导致商品数量不能达到 60%的系统
15、自动删除订单信息。(3)订单信息查询:根据不同的条件查询。按商品商品编号查询订单信息;按商品商品类型查询订单信息;按商品商品数量查询订单信息;按商品商品名称查询订单信息;按商品卖家编号查询订单信息;按路线编号查询订单信息;按路线出发地查询订单信息;按路线目的地查询订单信息;按预订编号查询订单信息;按拼车费用查询订单信息;(4)订单信息统计:根据不同的条件统计。统计同一商品类型的订单信息数;统计同一商品数量的订单信息数;统计某一路线的订单信息数;统计某一出发地的订单信息数;统计某一目的地的订单信息数;1.4.6 拼车评价信息管理提供卖家对商品的评价、卖家对卖家的评价。包括:(1)卖家对商品的评价
16、:卖家们成功参加一次拼车,付款后,系统会提示自愿对此次拼车使用的商品进行评价。(2)卖家对卖家的评价:卖家们成功参加一次拼车,付款后,系统会提示自愿对此次拼车的其他卖家进行评价。1.5 系统总体功能图该系统总体功能图如图 1.1 所示。5拼车系统线路基本信息管理卖家基本信息管理商品基本信息管理拼车预订信息管理增加路线基本信息查询路线基本信息删除路线基本信息卖家注册基本信息查询卖家基本信息修改卖家基本信息注销卖家基本信息修改路线基本信息删除商品基本信息查询商品基本信息修改商品基本信息增加商品基本信息拼车座位退订拼车座位预订预订信息修改预订信息查询统计路线基本信息统计卖家基本信息统计商品基本信息预
17、订信息增加预订信息统计成功拼车信息统计6图 1.1 系统功能图1.6 数据需求及业务规则分析业务规则分析主要是分析系统中数据之间的约束以及数据库的范围界定,基于上述功能需求,通过进一步了解拼车系统需求及业务分析规则如下:(1) 卖家由卖家编号唯一标识,需要存储卖家的名字、性别、密码、注册日期、所属区域、电话、性别、姓名、身份证号、拼车经验等信息。其中所属区域只记录省份或市,员工的电话号码只有一个,拼车经验以参加过的拼车次数来统计。(2) 卖家只能查询自己的基本信息和参加同一拼车路线的其他卖家基本信息。(3) 统计有驾驶证的卖家人数,统计身份证号大于零的人数就是有驾驶证的卖家人数。(4) 卖家不
18、得修改预订信息。(5) 卖家在预订阶段可以预定任意预订信息的一个或多个座位。(6) 卖家在预订阶段可以退订自己所预订过的任意预订信息的一个或多个座位。(7) 预订拼车座位的总数不得超过使用商品的商品数量。(8) 订单信息增加,当预订信息在预订期内人数达到商品商品数量,预订单将生成订单信息。如果预订期到了预订单还未凑足人数,将做如下考虑:如果商品商品数量为 5 人以下的,且实际参加人数少一个的预订信息将继续生成订单信息,且费用将按实际人数进行平摊。如果商品商品数量为 5 人以上的,且实际参加人数少于商品数量 20%内的将继续生成订单信息。(9) 订单信息删除,如果订单信息生成后,由于过多的人数退
19、出导致收入不能达到 60%的系统自动删除订单信息。(10)拼车路线在出发的前一天,不能够预订到足够的人(商品商品数量为 5人以下的(包括 5 人) ,且实际参加人数少两个人以上的。商品商品数拼车评价信息管理订单信息管理卖家对商品评价卖家对卖家评价订单信息增加订单信息修改订单信息查询订单信息统计7量为 5 人以上的且实际参加人数少于商品数量的 20%以上的。 ) ,预定信息将自动失效,将不再预订,并把信息告知已经预订的卖家。(11)预订信息生成订单信息后,已经拼车的卖家原则上不允许退出,如果 有不可阻挡的因素非要退出的做如下处理: 如果卖家的退出还能满足生成订单信息的条件的将对退出的每一个座位进
20、行原来座位价 20%的惩罚;如果卖家的退出不能满足生成订单信息的条件的将对退出的每一个座位进行原来座位价 50%的惩罚;这些罚金如果拼车还能够继续进行,在拼车成功后将作为补偿全部给予商品提供者。(12)拼车路线在订单阶段,如果由于退出的座位太多,导致无法再拼车在进行下去的,订单信息将自动失效,且通知未退出的卖家。由于退出座位所收取的罚金将会被作为由于订单信息失效而导致未退出的卖家的补偿。(13)为了安全与舒适参加拼车的卖家最多只允许携带一个一米二以下的儿童同行。(14)由于个人原因在卖家中途下车的,依然按照订单的价格付款。1.7 数据约束分析(1)卖家编号约束:以字母 M 开头再加上 8 位数
21、字组成,按流水号一次增大。check 约束为 check(memNo like M0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9)。(2)商品编号约束:以字母 C 开头加上 8 位数字,按流水号一次增大。check约束为 check(carNo like C0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9)。(3)路线编号约束:以字母 R 开头再加上 8 位数字,按流水号一次增大。check 约束为 check(rouNo like R0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9)。(4)预订编号约束:以字母 B 开头再加上 8 位数字。按流水号一次增大。check 约束为 check(bookNo like B0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9)。(5)卖家信息表的主键是 memNo,每一个卖家编号都是唯一的。(6)卖家信息表中所有信息不允许为空。(7)商品信息表的主键是 carNo,每一个商品编号都是唯一的。(8)商品信息表中所有信息不允许为空。(9) 路线信息表的主键是 rouNo,每一个路线编号都是唯一的。(10) 路线信息表中所有信息不允许为空。(11)预订信息表的主键是 bookNo,每一个预订编号都是唯一的。