SQL数据库课程设计机票预订管理系统系统机票管理SQL数据库课程设计_第1页
SQL数据库课程设计机票预订管理系统系统机票管理SQL数据库课程设计_第2页
SQL数据库课程设计机票预订管理系统系统机票管理SQL数据库课程设计_第3页
SQL数据库课程设计机票预订管理系统系统机票管理SQL数据库课程设计_第4页
SQL数据库课程设计机票预订管理系统系统机票管理SQL数据库课程设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

长沙学院课程设计说明书题目机票预订管理系统系(部)计算机科学与技术系专业(班级)姓名学号指导教师起止日期课程设计任务书课程名称:数据库系统原理设计题目:机票预定管理系统1、某航空公司机票预订管理系统需要如下信息:航班:航班编号、出发地、目的地、出发时间、飞行时间、飞机型号等。飞机:飞机型号、座位数等。机票:航班编号、客户编号、价格、折扣、总座位数、已售票数等。客户:姓名、性别、联系电话、身份证号码等。业务员:工号、姓名、性别等。一架飞机能飞多趟航班,一趟航班只能由一架飞机飞。一趟航班将根据座位数目出售多张机票,一张机票只能登上一趟航班。一个客户可以购买多张机票,一张机票只能被购买一次。一个业务员可以同时对多个客户进行营销,一个客户可能是多个业务员的营销对象。2、系统功能的基本要求:按照一定条件查询、统计符合条件的航班、机票、客户信息等。例如航班剩余舱位数目、同一航线可选航班信息、客户购买历史等,能够模拟完成机票预订业务。(如果这里用存储过程完成,成绩会给高点)各阶段具体要求:1、需求分析阶段定义数据项的含义和取值定义目标系统的数据流2、概念结构设计阶段画出实体模型E-R图3、逻辑结构设计阶段将实体模型转化为关系模型给出每个关系的主关键字和函数依赖集分析你所设计的关系数据库模式是否属于3NF4、物理设计阶段确定所有字段的名称、类型、宽度、小数位数及完整性约束确定数据库及表的名称及其组成确定索引文件和索引关键字5、数据库安全及维护设计阶段设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)为了实现复杂的数据完整性约束,设计适当的触发器设计一个适合的数据库备份策略6、实施阶段要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。指导教师签名:日期:教研室主任签名:日期:系主任签名:日期:

长沙学院课程设计鉴定表姓名黄炫皓学号2010022506专业软件工程班级软件7班设计题目机票预订管理系统指导教师毛伟指导教师意见:评定等级:教师签名:日期:答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名:日期:系(部)意见:系主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;目录1、需求分析阶段 I2、概念结构设计阶段 I3、逻辑结构设计阶段 I4、物理设计阶段 I5、数据库安全及维护设计阶段 II6、实施阶段 II一、引言 21.1 编写目的 21.2 参考资料 2二、 需求规约 22.1业务描述 22.2需求分析 3三、 数据库环境说明 3四、 数据库的命名规则 34.1数据库对象命名规则 34.2数据项编码规则 4五、 逻辑设计 4六、 物理设计 56.1表汇总 56.2表 56.3存储过程的设计 8七、 安全性设计 117.1防止用户直接操作数据库的方法 117.2角色与权限 11八、 数据库管理与维护说明 12一、引言编写目的本文档是机票预订管理系统设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。参考资料资料名称作者文件编号、版本《数据库系统概论》王珊、萨师煊2006年5月第4版《数据库设计》袁伟森、肖振芬2011年12月第1版需求规约2.1业务描述数据库系统创建背景:随着因特网的出现,其自身所具有的开发性、全球性、低成本、高效率的特点,使得跨企业,跨地区,跨行业进行管理成为可能。全球信息系统发展到世界的各个角落、各个领域。通过企业间跨地区的合作,使得业务集成,可以降低成本,提高企业的竞争力。但是目前,随着航空运输业的快速发展,传统的人工售票模式不能满足新时期的航空客运发展的要求,约束了航空客运的发展,因此提出了网上飞机票预订信息系统。查询业务:根据客户提出的要求查询航班、机票、客户信息。订票业务:根据客户信息和客户所预定的航班信息产生机票预定信息。改订业务:修改客户所预定的机票信息。退订业务:删除掉客户的预订信息。数据库的资源需求:航班信息、飞机信息、机票信息、客户信息、业务员信息。数据库的设计约束:航班:航班编号、出发地、目的地、出发时间、飞行时间、飞机型号。飞机:飞机型号、座位数。机票:航班编号、座位编号、客户编号、价格、当前预售状态。客户:姓名、联系电话、客户编号。业务员:姓名、工号。2.2需求分析机票预定管理系统业务流程的内在联系:客户可以根据自己的需要来查询航线以及相应的航班信息和票务信息,以此来满足自己的出行要求。本系统有一定的检索功能,乘客可以根据需要,输入自己的查询条件,这样就可以得到满足条件的航线信息、航班信息,还可以对自己需要的机票进行预定。客户在预订之后如果出现什么情况可以进行机票改订和退订处理。在机票预订管理系统中,航班信息中的飞机型号依赖于飞机信息中的飞机型号;机票信息中的航班编号依赖于航班信息的航班编号、客户编号依赖于客户信息的客户编号。数据库环境说明数据库实例数据库系统数据库部署环境数据库设计工具数据库存放位置说明机票预订系统Sqlserver2008Windowsxp,或Windows2000以上pb,visio,rose存放位置,绝对路径/相对路径用于完成机票预订业务功能数据库的命名规则4.1数据库对象命名规则数据库对象命名规则备注表Table_功能描述字符串例如:Table_Fight航班表视图View_功能描述字符串例如:View_Fight航班视图存贮过程Proc_功能描述字符串例如:Proc_bookticket预定机票4.2数据项编码规则数据项命名规则数据类型长度范围备注航班编号市名缩写+航班序号定长字符串20位客户编号身份证号码定长字符串18位飞机编号飞机型号定长字符串20位逻辑设计创建与数据库相关的那部分实体关系图(ERD)。飞机飞机航班客户业务员预定飞行飞机型号飞行时间出发时间目的地飞机型号座位数航班编号出发地联系电话姓名客户编号机票信息姓名工号创建数据库系统的关系模型。航班(航班编号、出发地、目的地、出发时间、飞行时间、飞机型号)飞机(飞机型号、座位数)机票(航班编号、座位编号、客户编号、价格、当前预售状态)客户(姓名、联系电话、客户编号)业务员(姓名、工号)物理设计6.1表汇总表名功能说明表A存储航班信息表B存储飞机信息表C存储客户信息表D存储业务员信息表E存储机票信息6.2表表A:航班表表名Table_Flight数据库用户主键Flight_no其他排序字段(Flight_no,Start_place,End_place,Start_time,Air_time,Air_no)索引字段Flight_no序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Flight_nochar(20)高主键、航班编号2Start_placenvarchar(50)NN低出发地3End_placenvarchar(50)NN低目的地4Start_timedateNN低出发时间5Air_timedateNN低飞行时间6Air_nochar(20)NY高外键、飞机型号sql脚本CREATETABLETable_Flight(Flight_nochar(20)primarykey,Start_placenvarchar(50)notnull,End_placenvarchar(50)notnull,Start_timedatenotnull,Air_timedatenotnull,Air_nochar(20)uniquenotnull,CONSTRAINTPK_Table_Flight_Table_Airforeignkey(Air_no)referencesTable_Air(Air_no))CREATEINDEXindex_Flight_noONTable_Flight(Flight_no)表B:飞机表表名Table_Air数据库用户主键Air_no其他排序字段(Air_no,Air_seatnum)索引字段Air_no序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Air_nochar(20)高主键、飞机编号2Air_seatnumintNN低座位数sql脚本CREATETABLETable_Air(Air_nochar(20)primarykey,Air_seatnumintnotnull)CREATEINDEXindex_Air_noONTable_Air(Air_no)表C:客户表表名Table_Client数据库用户主键Client_id其他排序字段(Client_id,name,telephone)索引字段Client_id序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Client_idchar(18)高主键、身份证2Client_namenvarchar(30)NN中姓名3Client_telephonenvarchar(20)NY高电话号码sql脚本CREATETABLETable_Client(Client_idchar(18)primarykey,Client_namenvarchar(20)notnull,Client_telephonenvarchar(50)notnullunique)CREATEINDEXindex_Client_idONTable_Client(Client_id)表D:业务员表:表名Table_Emp数据库用户主键Emp_no其他排序字段(Emp_no,Emp_name)索引字段Emp_no序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Emp_nochar(20)高主键、员工编号2Emp_namenvarchar(30)NN中姓名sql脚本CREATETABLETable_Emp(Emp_nochar(20)primarykey,Emp_namenvarchar(30)notnull)CREATEINDEXindex_Emp_noONTable_Emp(Emp_no)表E:机票表表名Table_Ticket数据库用户主键Flight_no,Seat_no,Client_id其他排序字段(Flight_no,Seat_no,Client_id,Ticket_price,Ticket_status)索引字段Flight_no序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Flight_nochar(20)高主键、航班编号2Seat_noint高主键、座位编号3Client_idchar(18)高主键、客户编号4Ticket_priceintNN低机票价格5Ticket_statuschar(5)NN低机票状态sql脚本CREATETABLETable_Ticket(Flight_nochar(20),Seat_noint,Client_idchar(18),Ticket_priceintnotnull,Ticket_statuschar(5)notnull,primarykey(Flight_no,Seat_no,Client_id),CONSTRAINTPK_Table_Ticket_Table_Flightforeignkey(Flight_no)referencesTable_Flight(Flight_no),CONSTRAINTPK_Table_Ticket_Table_Clientforeignkey(Client_id)referencesTable_Client(Client_id))CREATEINDEXindex_Flight_noONTable_Flight(Flight_no)6.3存储过程的设计--创建存储过程管理客户信息--查询所有客户信息createprocedureProc_selectclientinfoasbeginselect*fromTable_Clientend--查询特定客户信息createprocedureProc_selectneedclientinfo@client_idchar(18)asbeginselect*fromTable_ClientwhereClient_id=@client_idend--修改客户信息createprocedureProc_updateclientinfo@client_idchar(18),@client_namenvarchar(20),@client_telephonenvarchar(50)asbeginupdateTable_ClientsetClient_name=@client_name,Client_telephone=@client_telephonewhere@client_id=Client_idend查询业务--查询航班信息createprocedureProc_selectflight@flight_nochar(20)asbeginselect*fromTable_Flightend--查询飞机信息createprocedureProc_selectair@air_nochar(20)asbeginselect*fromTable_Airend--查询客户信息createprocedureProc_selectneedclientinfo@client_idchar(18)asbeginselect*fromTable_Clientwhere@client_id=Client_idend--查询机票信息createprocedureProc_selectticket@flight_nochar(20)asbeginselect*fromTable_TicketwhereFlight_no=@flight_noend--查询航班剩余座位数createprocedureProc_selectremainseat@flight_nochar(20)asbeginselect(selecta.Air_seatnumfromTable_Flightf,Table_AirawhereFlight_no=@flight_noandf.Air_no=a.Air_no)-count(*)RemainseatfromTable_TicketwhereFlight_no=@flight_noend--根据客户的要求查询航班信息createprocedureProc_selectneedfilght@start_placenvarchar(50),@end_placenvarchar(50)asbeginselect*fromTable_FlightwhereStart_place=@start_placeandEnd_place=@end_placeend预订业务createprocedureProc_bookticket@flight_nochar(20),@seat_numint,@Client_idchar(18)asbegininsertintoTable_Ticketvalues(@flight_no,@seat_num,@Client_id,500,'已预售')end改订业务createprocedureProc_changeticket@flight_nochar(20),@client_idchar(18)asbeginupdateTable_TicketsetFlight_no=@flight_nowhereClient_id=@client_idandFlight_no=@flight_noend退订业务createprocedureProc_deleteticket@flight_nochar(20),@client_idchar(18)asbegindeletefromTable_TicketwhereClient_id=@client_idandFlight_no=@flight_noend整个操作过程--客户管理EXECProc_selectclientinfoEXECProc_selectneedclientinfo'kevin1'EXECProc_updateclientinfo,'kevin8',--查询EXECProc_selectflight'CS1122'EXECProc_selectair'A111'EXECProc_selectneedclientinfo'kevin1'EXECProc_selectticket'CS1122'EXECProc_selectremainseat'CS1122'EXECProc_selectneedfilght'长沙','北京'--预定EXECProc_bookticket'CS1122',1,--改订EXECProc_changeticket'CS1122',--退订EXECProc_deleteticket'CS1122',安全性设计7.1防止用户直接操作数据库的方法给用户设置权限:管理员具有对整个数据库的操作权限。业务员可访问客户信息表,对客户信息表可以修改,增加,删除。7.2角色与权限角色可以访问的表与列操作权限管理员航班表增、删、改、查飞机表增、删、改、查客户表增、删、改、查业务员表增、删、改、查机票信息表增、删、改、查客户客户表改、查机票信息表查航班表查飞机表查业务员航班表查客户表增、删、改、查飞机表查机票信息表查--创建登录账号createloginkevinwithpassword='123456'--创建业务员角色createroleyuan--可访问可、修改客户表,访问业务员表,机票表、航班表、飞机表:--授予权限grantselectonTable_Flighttoyuangrantselect,updateonTable_ClienttoyuangrantselectonTable_TickettoyuangrantselectonTable_AirtoyuangrantselectonTable_Emptoyuan--创建客户角色createroleclient--可访问可、修改客户表,访问机票表、航班表、飞机表:--授予权限grantselectonTable_Flighttoyuangrantselect,updateonTable_ClienttoyuangrantselectonTable_TickettoyuangrantselectonTable_Airtoyuan--创建管理员角色createroleadm--可进行所有操作:--授予权限grantselect,insert,delete,updateonTable_Flighttoyuangrantselect,insert,delete,updateonTable_Clienttoyuangrantselect,insert,delete,updateonTable_Tickettoyuangrantselect,insert,delete,updateonTable_Airtoyuangrantselect,insert,delete,updateonTable_Emptoyuan数据库管理与维护说明为了保证系统能够长

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论