山东科技大学计算机数据库系统原理实践任务书.docx
- 文档编号:30280295
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:16
- 大小:22.83KB
山东科技大学计算机数据库系统原理实践任务书.docx
《山东科技大学计算机数据库系统原理实践任务书.docx》由会员分享,可在线阅读,更多相关《山东科技大学计算机数据库系统原理实践任务书.docx(16页珍藏版)》请在冰豆网上搜索。
山东科技大学计算机数据库系统原理实践任务书
数据库系统原理实践任务书
1软件功能学习部分(必做题)
完成下列1~2题,并在实践报告中叙述过程,可适当辅以插图(控制在A4三页篇幅以内)
1)练习sqlserver的两种完全备份方式:
数据和日志文件的脱机备份、系统的备份功能。
2)练习在新增的数据库上增加用户并配置权限的操作,通过用创建的用户登录数据库并且执行XX的SQL语句验证自己的权限配置是否成功。
2Sql练习部分(必做题)
2.1建表
1)假设某微博平台的数据库中有下列关系,请在DBMS中创建这些关系,包括主码和外码的说明,并写出指定关系的建表SQL语句:
用户【用户ID,姓名,性别,出生年份,所在城市】记录所有注册用户的基本信息,英文表名和字段名如下:
USER(UID整型,NAME字符串,SEX一位汉字,BYEAR整型,CITY字符串);
分类【分类ID,分类名称】记录微博平台中所有可能涉及的微博的类型,例如文学、艺术、军事等,英文表名和字段名如下:
LABEL(LID整型,LNAME字符串);
博文【博文ID,标题,用户ID,年,月,日,正文】记录每一篇微博的基本信息,英文表名和字段名如下:
MBLOG(BID整型,TITLE字符串,UID整型,PYEAR整型,PMONTH整型,PDAY整型,CONT字符串),
写出该关系的建表SQL语句;
博文标注【博文ID,分类ID】记录每一篇微博的作者给该微博贴上的分类标签,一篇微博可以涉及不止一种分类,英文表名和字段名如下:
B_L(BID整型,LID整型);
关注【用户ID,被关注用户ID】记录每位用户关注的其他用户,每位用户可关注多人,英文表名和字段名如下:
FOLLOW(UID整型,UIDFLED整型);
好友【用户ID,好友ID】记录每位用户的好友(可多个),英文表名和字段名如下:
FRIENDS(UID整型,FUID整型);
订阅【用户ID,订阅分类ID】记录用户订阅的每一种分类,英文表名和字段名如下:
SUB(UID整型,LID整型);
点赞【用户ID,博文ID】记录用户点赞的每一篇微博,英文表名和字段名如下:
THUMB(UID整型,BID整型),
写出该关系的建表SQL语句;
头条【年,月,日,博文ID,顺序号】记录每一天的热度排名前十的博文ID号以及该博文在热度前十名中的排名,英文表名和字段名如下:
TOPDAY(TYEAR整型,TMONTH整型,TDAY整型,BID整型,TNO整型)。
2)观察性实验
用户在订阅分类时是否一定要参考被参照关系的主码,并在实验报告中简述过程和结果。
3)数据准备
依据后续实验的要求,向上述表格中录入适当数量的实验数据,从而对相关的实验任务能够起到验证的作用。
2.2数据更新
1)分别用一条sql语句完成对博文表基本的增、删、改的操作;
2)批处理操作
将关注3号用户的用户信息插入到一个自定义的新表FANS_3中。
3)数据导入导出
通过查阅DBMS资料学习数据导入导出功能,并将任务2.1所建表格的数据导出到操作系统文件,然后再将这些文件的数据导入到相应空表。
在后续的上机实验环节,通过导入导出或者备份机制实现前次上机环节的数据恢复。
4)观察性实验
建立一个关系,但是不设置主码,然后向该关系中插入重复元组,然后观察在图形化交互界面中对已有数据进行删除和修改时所发生的现象。
5)触发器实验
编写一个触发器,用于实现对点赞表的完整性控制规则:
当插入或者被点赞博文时,如果博文作者就是点赞者本人,则拒绝执行。
2.3查询
请分别用一条SQL语句完成下列各个小题的需求:
1)查询“张三”用户关注的所有用户的ID号、姓名、性别、出生年份,所在城市,并且按照出生年份的降序排列,同一个年份的则按照用户ID号升序排列。
2)查找没有被任何人点赞的博文ID、标题以及发表者姓名,并将结果按照标题字符顺序排列。
3)查找2000年以后出生的武汉市用户发表的进入过头条的博文ID;
4)查找订阅了所有分类的用户ID;
5)查找出生年份小于1970年或者大于2010年的用户ID、出生年份、所在城市,要求where子句中只能有一个条件表达式;
6)统计每个城市的用户数;
7)统计每个城市的每个出生年份的用户数,并将结果按照城市的升序排列,同一个城市按照出生用户数的降序排列其相应的年份;
8)查找被点赞数超过10的博文ID号;
9)查找被2000年后出生的用户点赞数超过10的博文ID号;
10)查找被2000年后出生的用户点赞数超过10的每篇博文的进入头条的次数;
11)查找订阅了文学、艺术、哲学、音乐中至少一种分类的用户ID,要求不能使用嵌套查询,且where子句中最多只能包含两个条件;
12)查找标题中包含了“最多地铁站”和“_华中科技大学”两个词的博文基本信息;
13)查找所有相互关注的用户对的两个ID号,要求不能使用嵌套查询;
14)查找好友圈包含了5号用户好友圈的用户ID;
15)查找2019年4月20日每一篇头条博文的ID号、标题以及该博文的每一个分类ID,要求即使该博文没有任何分类ID也要输出其ID号、标题;
16)查找至少有3名共同好友的所有用户对的两个ID号。
17)创建视图:
查阅DBMS内部函数,创建一个显示当日热度排名前十的微博信息的视图,其中的属性包括:
博文ID、博文标题、发表者ID、发表者姓名、被点赞数。
2.4了解系统的查询性能分析功能(选做,各班指导教师可适当调整)
选择上述2.3任务中某些较为复杂的SQL语句,查看其执行之前系统给出的分析计划和实际的执行计划,记录观察的结果,并对其进行简单的分析。
2.5DBMS函数及存储过程和事务(选做,各班指导教师可适当调整)
1)编写一个依据用户ID号计算其发表的博文进入头条的累计天数的DBMS自定义函数,并利用其查询2000年后出生的上述头条累计天数达到100天的所有用户ID。
2)建立关系“点赞排行榜【博文ID,当天点赞人数】”,里面存储系统当天点赞数前十名的博文ID及其点赞人数,尝试编写一个DBMS的存储过程,通过该存储过程更新该表。
3)尝试在DBMS的交互式界面中验证事务机制的执行效果。
3数据库应用系统设计(必做)
自行选择所擅长的DBMS软件以及数据库应用系统(客户端程序或者网站)的程序开发工具,参考后面的题目例子,拟定一个自己感兴趣的数据库应用系统题目,完成该小型数据库应用系统的设计与实现工作。
主要内容包括:
需求调研与分析、总体设计、数据库设计、详细设计与实现、测试等环节的工作。
下列题目作为选题背景参考,也可依据这些题目拟定一个自己感兴趣的具有类似工作量和复杂程度的课题。
题目1:
电信收费管理系统
采用B/S或C/S模式实现一个电信收费管理系统软件。
实现电信套餐种类、用户信息、客服代表、收款员等信息的管理。
要求:
1)实现不同权限的浏览和更新。
2)实现用户扣、缴费情况及帐户余额的查询。
3)实现欠款用户使用状态的自动改变。
4)实现客服代表的业绩统计功能。
5)提供至少两种风格的查询报表。
题目2:
员工培训管理系统
采用B/S或C/S模式实现一个员工培训管理系统软件。
完成培训计划制定、培训导师安排、学员分批次注册、学员培训期间的考勤、考核与工资等信息的管理。
要求:
1)培训计划应包括一系列具有先后依赖关系的课程,且培训计划可更新。
2)实现不同权限的浏览和更新。
3)实现考勤、考核、计算工资的功能。
4)能够综合评价培训导师和学员的业绩。
5)实现员工培训不合格后的再次培训管理。
题目3:
汽车租借信息系统
采用B/S或C/S模式实现一个汽车租借信息系统。
完成用户、车辆、经手员工、租借情况、车辆损毁情况、交通违规罚款等信息的管理。
要求:
1)实现不同权限的浏览和更新。
2)能够根据车辆使用情况计算押金退还金额。
3)能查询客户的租借历史记录,并进行信誉度评价,进行会员制和非会员制的客户管理。
4)能够管理车辆报修信息;
5)能够生成租借公司的日、月、季度、年财务报表。
题目4:
医院管理系统
采用B/S或C/S模式实现一个医院管理系统。
完成药品、诊疗、医师、病人、病房等信息的管理。
要求:
1)提供面向公众的导医和收费标准明细查询的功能。
2)挂号、收费、诊疗人员等具有不同的查询和修改权限。
3)按照看病的基本流程(例如:
预约——挂号——门诊——检查——复诊——住院治疗——出院结算)进行信息管理。
4)提供病人收费汇总清单,提供各种药品或检查项目的使用情况汇总;
5)提供医院各部门财务报表及医院整体财务报表,并且分日明细表和月、年汇总表。
题目5:
田径运动会管理系统
采用B/S或C/S模式实现一个田径运动会管理系统。
完成参赛单位(国际比赛的单位为国家,国内比赛的单位为省份)、运动员、裁判、比赛项目、比赛成绩的信息管理。
要求:
1)提供不同权限的录入、查询界面;
2)比赛采用分组晋级制度,例如A组、B组、1/8、1/4、半决赛、决赛。
能够维护、查询赛事日程表;
3)能够查询每项比赛的世界记录、本赛事历史记录;
4)能够查询每次小组赛或者半决赛、决赛的运动员个人信息及上一轮成绩;
5)能够统计全能赛项的个人成绩和名次;
6)能够统计各参赛单位的整体情况。
题目6:
机票预定系统
1、系统功能的基本要求:
●每个航班信息的输入。
●每个航班的坐位信息的输入;
●当旅客进行机票预定时,输入旅客基本信息,系统为旅客安排航班,打印取票通知和帐单;
●旅客在飞机起飞前一天凭取票通知交款取票;
●旅客能够退订机票;
●能够查询每个航班的预定情况、计算航班的满座率。
2、数据库要求:
在数据库中至少应该包含下列数据表:
●航班信息表;
●航班坐位情况表;
●旅客订票信息表;
●取票通知表;
●帐单。
user_info(uid,name,total_cost)
createtableuser_info(
uidint,
namevarchar(16),
total_costdecimal(10,2),
PRIMARYKEY(uid),
INDEXidx_uid(uid)
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;
user_login(uid,token)
createtableuser_login(
ulidintAUTO_INCREMENT,
uidint,
tokenvarchar(63),
PRIMARYKEY(ulid),
INDEXidx_uid(uid),
INDEXidx_token(token)
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;
flight_info(fid,ftype,from,to,begin,end,food,sitenum)
createtableflight_info(
fidint,
ftypevarchar(63),
city_fromvarchar(63),
city_tovarchar(63),
time_begindatetime,
time_enddatetime,
foodbool,
sitenumintNOTNULL,
PRIMARYKEY(fid),
INDEXidx_fid(fid)
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;
user_book(book_uid,uid,fid,time,cost,extra)
createtableuser_book(
bookidint,
book_uidint,
uidint,
fidint,
timedatetime,
costdecimal(8,2),
extrevarchar(255),
PRIMARYKEY(bookid),
UNIQUE(uid,fid),
FOREIGNKEY(fid)REFERENCESflight_info(fid)ONDELETESETNULLONUPDATECASCADE,
INDEXidx_uid(uid,fid)
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;
flight_site(fid,uid,siteid)
createtableflight_site(
fsidintAUTO_INCREMENT,
fidint,
uidint,
siteidint,
UNIQUE(fid,uid,siteid),
PRIMARYKEY(fsid),
FOREIGNKEY(fid)REFERENCESflight_info(fid)ONDELETESETNULLONUPDATECASCADE,
FOREIGNKEY(uid)REFERENCESuser_info(uid)ONDELETESETNULLONUPDATECASCADE,
INDEXidx_fuid(fid,uid,siteid)
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;
take_ticket_info(id,uid,fid,time,offtime,extra,cancel)
createtabletake_ticket_info(
idintAUTO_INCREMENT,
uidint,
fidint,
timedatetime,
offtimedatetime,
extravarchar(255),
canceltinyint(4),
PRIMARYKEY(id),
FOREIGNKEY(uid)REFERENCESuser_info(uid)ONDELETESETNULLONUPDATECASCADE,
FOREIGNKEY(fid)REFERENCESflight_info(fid)ONDELETESETNULLONUPDATECASCADE,
INDEXidx_id(id),
INDEXidx_fuid(uid,fid),
UNIQUE(uid,fid)
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;
money_info(uid,fid,money_in,money_out,money,time,cancel)
createtablemoney_info(
miidintAUTO_INCREMENT,
uidint,
fidint,
money_indecimal(8,2),
money_outdecimal(8,2),
moneydecimal(8,2),
timedatetime,
canceltinyint(4),
UNIQUE(uid,fid),
PRIMARYKEY(miid),
FOREIGNKEY(uid)REFERENCESuser_info(uid)ONDELETESETNULLONUPDATECASCADE,
FOREIGNKEY(fid)REFERENCESflight_info(fid)ONDELETESETNULLONUPDATECASCADE,
INDEXidx_fuid(uid,fid)
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;
设计一个B/S或C/S模式的系统实现上述功能。
题目7:
工资管理系统
1、系统功能的基本要求:
●员工每个工种基本工资的设定
●加班津贴管理,根据加班时间和类型给予不同的加班津贴;
●按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;
●员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12;
●企业工资报表。
能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印;
2、数据库要求:
在数据库中至少应该包含下列数据表:
●员工考勤情况表;
●员工工种情况表,反映员工的工种、等级,基本工资等信息;
●员工津贴信息表,反映员工的加班时间,加班类别、加班天数、津贴情况等;
●员工基本信息表
●员工月工资表。
设计一个B/S或C/S模式的系统实现上述功能。
题目8:
网上销售系统
网上销售系统要求提供包括商品信息管理、查询、订购、销售等功能的网上交易平台,对客户和商店管理员应提供不同的操作界面和使用权限。
具体功能包括:
●商品信息管理:
商店可以对商品信息进行管理,包括商品的类别、名称、描述信息、售价、图片、折扣等。
●客户信息管理:
客户可以自助注册并管理自己的个人信息。
●商品查询:
客户可以通过多种方式查询并且挑选网上商店出售的商品,通过在网上填写并确认订单的方式来购买商品。
●订单查询:
客户可以管理自己的订单信息,查询订单的处理情况。
●订单处理:
商店可以对客户的订单信息、汇款单信息进行审核,以确定是否发货,并修改订单状态。
设计一个B/S模式的系统实现上述功能。
题目9:
仓储管理系统
实现一个仓库库存货品信息管理系统软件。
仓库的日常工作包括货品的入库和出库。
入库要由采购人员提供进货单,进货单经过审核人员审核验收后方能进行货品入库。
出库要由销售人员提供出货单,经过审核人员审核批准后才能提货。
当销售人员需要提货而货品的库存量不足时可先进行缺货登记,当有相应货品入库时,按缺货登记时间顺序处理出货请求。
要求:
●能实现库存货品信息的管理,货品的相关信息包括:
货品号、货品名、存放地、货品库存量、生产厂家等。
●实现进货单的填写、修改、审核和查询等功能。
●实现出货单的填写、修改、审核和查询等功能。
●实现缺货登记、查询和处理。
●根据不同用户身份提供不同的操作权限和界面。
设计一个B/S或C/S模式的系统实现上述功能。
题目10:
图书管理系统
假设图书馆的工作人员要处理下列日常工作:
●借书:
核实读者身份并检查是否存在下述情况:
⏹该读者借书的数额超标;
⏹该读者所借的书过期未还;
⏹该读者曾因借书过期被罚款而未交;
如不存在上述情况,则登记借书信息;
●还书:
检查所还图书是否损坏或过期,是则登记罚单信息并打印罚单,在交纳罚金前,不允许该读者继续借书。
若图书损坏,注销该图书信息,否则进行还书登记。
●罚款:
根据罚单收取罚金,同时取消该读者的借书限制。
●图书信息维护:
新书上架、旧书下架及图书信息查询。
●读者信息维护:
录入、注销、修改及查询读者信息。
此外,图书馆还应向读者提供下列基本功能:
●查询图书信息;
●查询自己的基本信息和借书记录;
●续借;
设计一个B/S或C/S模式的系统实现上述功能。
题目11:
超市收银系统
假设一家小型超市的收银台(前台)要完成下列日常工作:
●收银:
收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等信息,系统根据这些信息获取相应的价格信息并计算应收取的总金额。
完成收银后,记录交易信息,修改有关种类商品的剩余量以及该持卡顾客的消费情况。
●发卡:
顾客可交纳一定的费用(如50元)办理一张会员卡,以后在该商场购物可凭卡享受9折优惠。
如果一个未持卡顾客一次购物满1000元,可为其免费发放一张会员卡,每张卡的优惠期为一年,一年内消费达到一定金额的可继续享受下一年的优惠。
●款项盘存:
收银员下班或交接班前对本收银台中本班次收取的款额进行盘存,明确责任。
此外,还应提供下列后台功能:
●商品信息的录入、修改、删除和查询等。
●收银员身份及口令管理。
设计一个C/S模式的系统实现上述功能。
4撰写课程实践报告
在课设规定的时间内,撰写并完成课程实践报告。
实践报告由5章组成,依次对应下列内容:
1课程任务概述
简要陈述介绍本实践课程的各项任务要求。
2软件功能学习
阐述第1部分任务的完成过程。
3SQL练习
阐述第2部分的完成过程。
4应用系统设计
阐述第3部分的完成过程。
5课程总结
逐条概括、总结此次课程实践的主要工作,阐述此次课程实践的心得体会,展望此次课程实践的有待改进和完善的工作。
其中,第4章进一步分7个小节节,依次是:
4.1系统设计目标
4.2需求分析
4.3总体设计
4.4数据库设计
4.5详细设计与实现
4.6系统测试
4.7系统设计与实现总结
5提交书面报告和电子资料
以班为单位刻盘提交,每人一个压缩文件,文件名格式“班号_姓名_应用程序名.rar”,压缩文件内含1个文件(课程实践报告word版)和3个目录:
1)第2部分源代码;2)第3部分应用程序源代码;3)第3部分应用程序可执行文件、数据库文件、以及程序使用说明word文档。
6关于附录
实践报告要统一有附录,里面包含去除冗余之后第2部分、第3部分核心功能的源代码。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 山东 科技大学 计算机 数据库 系统 原理 实践 任务书