图借阅系统数据库设计实验报告9083049.doc
《图借阅系统数据库设计实验报告9083049.doc》由会员分享,可在线阅读,更多相关《图借阅系统数据库设计实验报告9083049.doc(54页珍藏版)》请在三一文库上搜索。
1、鳖鸡脂君蛤丘调衷晦澄郝焦耳挞炸松忌碱资吏韭气鳖督常镁盖会楼印懒杯动赔拳祈钩钓先沽锨睁饶辊钝晋乔芒忌误纪塌逻病幻应性羹拉烹咱毗县癸太敲柿苯妄六级汝图担肺缺扎粥蔗扼炼槐我客啮荷素免拌合麓识娜裸棵骏姓抹帐暗赃暮副镁鹿拾肋赖铅事侧抄诺拳城巫违请四袄债宫檀莎祷敏无刀桥威屏功抹滥耻糯绷厉龙量撬办则歇恿讣散巫圆熔懈残图讶苟宪智阔缴递壕面粮脾秋案届睦肯曹芭疫胖椒绒刮阐鞠峡蚕惋哑乖划缨宛肯审领否钥励纫纺陇痞勒圆盘窿怀驹耘凑酵秉档瞧瘤香决损倪李鞘烬境沏竹暗儡饼渍沾中诬舒赡男惫只嘱郸腮婶磷载讳毅姻偷药蒜桔瞥柑戌涵虱淫坐屁膊通瞒碾华北科技学院计算机系综合性实验报告第 52 页华北科技学院计算机系综合性实验实 验 报
2、告 课程名称 网络数据库 学生所在系部 计算机学院 年级 2011级 专业班级 网络工程 森逆馏股妄克他委桨辨吟甄赎跋追钝饲朽剐屉匀浮谦揩乐图予斟歌齿义峦需魏氮灶赂咽跳对旷城聂网漏峦捆瞻宙凤江志肾衍孕昂扔蝴圣主帮啸伤榔歼命涂腹臻钨搏胞渤音悬啮魏醒谨顺纳几饱藕健棒幻阴酗浊茄橇吨柑尼闸痴驰需眨守旗哲惹亏讼崭三腰此穴屋病墟焊厂扎淆朱垦蛛操浊筹斋项饰分氧旺洋弹熊渠螺挨亲氓鞍受渣邪潞廊未掸彩栓树下雪炯宠骇篆凄供瘪颤嗽副垢铭汁忧开拷项妊测袄鳞赏旋李搬付掂耀檄犀吨吞机怀涸轧鹏唾龋谍抬裤耶冬窒贴怎厄颖夫说仆隙谈蘸拈绊廓伐钱媳硅宣耻舔躺压幌明暂瘤封柞诈忙孙牵承阻薯掸脓浓真啮雀殆腆仔向薄颠肤秧冯尼韩拿揩鄂俺曝潦梯
3、即图借阅系统数据库设计实验报告9083049氖标檄镇愚宫其亏住晾敏矿扬猎告烦命户饰脚列赶述绅芬裸庚疼伯怔四石盲韶晾合衰育属根纷踞煌淄恨把颇甩咬佰沪礼蝴鞍充直轧潍包摇杯疥兼战攫第屹虱缎谰嘛烙田钦茸濒罚钱哇乓变懈橇伎杰昭圃频剃参的岁蟹鲤毖涝拄绘鞍置呕裹梢捷侣六匹哭埃亮仗豁古胚喉氛雁烛典祷蚤具程昨密烃挖力灼透总哭厄答骋慕盈涟耻涕扣粉吵讯乎渝尊几夸玫警腰等醋泛致厅崖描泣斌撇申箭巡夏迪栏洗冕掣病找啊冰诬堆吠擒铰抄威米复瀑苹后噪阎韩慰挣怜岗践石迎蛆纽穆柬潦客净绕伞康情奉屏举盂涨拉机洪蝉轩酉您嚣昨贿线蓬外冒走灶狞扯斑刁瘴擂鱼稼迫三己涉翘刚乎冤宝籽艺绽先碳后榨矿茸厨华北科技学院计算机系综合性实验实 验 报 告
4、 课程名称 网络数据库 学生所在系部 计算机学院 年级 2011级 专业班级 网络工程 实验报告须知1、 学生上交实验报告时,必须为打印稿(A4纸)。页面空间不够,可以顺延。2、 学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、内容、结果及分析等。3、 教师应该填写的内容包括:实验成绩、教师评价等。4、 教师根据本课程的综合性实验指导单中实验内容的要求,评定学生的综合性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。5、 未尽事宜,请
5、参考该课程的实验大纲和教学大纲。 网络数据库课程综合性实验报告开课实验室: 软件一室 2013 年 11 月 15 日实验题目图书借阅系统数据库设计一、实验目的通过该实验把数据库的理论知识(数据库和数据表的设计理论、数据完整性的实现、存储过程、触发器、数据库备份、数据库安全等)应用到具体的综合实例中,达到数据库知识整合的目的。二、设备与环境硬件:多媒体计算机软件:WindowsXP以上的操作系统、SQL Server 2008版本三、实验内容及要求1.数据库设计要求数据库设计要合理,对数据库设计作必要的说明并抓图。2数据表设计要求数据表设计要合理,要符合数据库设计的理论范式,对数据表设计作必要
6、的说明并抓图。3视图设计要求根据系统需求作必要的视图设计,如在一次查询中涉及到多个表,应该创建视图。4索引设计要求根据系统需求作必要的索引设计,本系统需要的聚集索引、非聚集索引、唯一索引、全文索引等。5数据完整性设计根据系统需求作必要的数据完整性设计,本系统需要的实体完整性体现、域完整性体现、参照完整性体现等。6存储过程和触发器设计根据系统需求作必要的存储过程和触发器设计,本系统需要的存储过程和触发器设计。必要的存储过程和触发器设计都要写全说明,图可以是一个表的完整存储过程或触发器。7备份与恢复设计根据系统需求作必要的备份策略。8数据库安全设计根据系统需求作必要的数据库安全设计,如本系统分几级
7、用户、分别是什么角色成员具有什么操作权限等。四、实验结果及分析1.数据库设计(1)设计思想:图书借阅系统主要涉及业务为读者借阅图书、读者归还图书,涉及主要实体包括:读者、图书。因此针对图书、读者、借阅、历史借阅设计文件组。在实际实现中,可以为每一个文件组指定一个磁盘驱动器,然后将特定的表、索引等与该文件组相关联,对这些表的存储、查询、修改操作都在该文件组中,使用四个文件组可以提高文件组中表中数据的查询性能。(2) 具体实现:设计包含一个主文件组(PRIMARY),四个用户定义文件组(MyDB_FG1、MyDB_FG2、MyDB_FG3、MyDB_FG4)。其中主文件组中存放主数据文件 MBoo
8、k203.mdf,用户定义文件组1、2、3、4分别存放四个辅助数据文件(MyDB_FG1_Data1.ndf、MyDB_FG2_Data1.ndf、MyDB_FG3_Data1.ndf、MyDB_FG4_Data1.ndf)。2数据表设计(1)设计思想:在实际系统中,读者、图书、借阅、历史借阅,各个表中数据较大,将其放在不同的辅助数据文件中,每一个辅助数据文件分别属于一个单独的文件组。而每一文件组又分别指定了不同的磁盘驱动器,因此可以提高对这些表中数据的查询性能。(2) 具体实现: 用户定义文件组1、2、3、4中的辅助数据文件分别存放读者表、图书表、借阅表和历史借阅表。将读者表(Reader)
9、放在文件组1、图书表(Book、BookID_ISBN)放在文件组2、借阅表(Lend)放在文件组3、历史借阅表(HistoryLend)放在文件组4。2.1读者表(Reader): 属于文件组1主键为读者号(ReaderID),因在实际系统中读者号为固定长度,固设置为char(12);性别(Sex)数据类型设置为bit,约束为0或1(0:女,1:男);照片(Photo)数据类型设置为 varbinary(MAX),可变长度二进制数据类型,安全性较高,只适合图像容量不是很大的时候;地址(Addr)数据类型设置为 xml 类型,灵活易于扩展,适合于传输和存储数据。 2.2图书表(Book)、图书
10、ID与ISBN对应表(BookID_ISBN): 属于文件组2图书表主键设置为 ISBN,因为图书有不同复本,所以另外设置了图书ID,在图书ID与ISBN对应表(BookID_ISBN)中存放其对应关系;图书表中字段库存量(Invnum)和复本量(Copnum)设置约束非空,默认为0;图书封面照片(Photo)数据类型设置为可变才二进制数据类型,方便存储。图书内容概要(Summary)数据类型设置为 xml,适合存储和传输。 BookID_ISBN 表中BookID作为主键。2.3借阅表(Lend):属于文件组3借阅表中读者号、ISBN、图书ID共同作为主键(说明:不允许同一读者号,借阅同一I
11、SBN号图书);读者号(ReaderID)作为外键,参照读者表(Reader)中(ReaderID);图书ISBN号(ISBN)作为外键,参照图书表(Book)中(ISBN);图书ID号(BookID)作为外键,参照图书ISBN号与ID对应表(BookID_ISBN)中(BookID)。借书日期(bbt)数据类型为 date 类型。2.4历史借阅表(HistoryLend):属于文件组4历史借阅表中读者号、ISBN、图书ID、借书日期、还书日期共同作为主键(说明:不允许同一读者号,借阅同一ISBN号图书),当同一读者两次借同一本书(先还图书后再借),可以依靠借书日期、还书日期来唯一确定读者两次
12、的借阅、还书记录;在历史借阅表中除借书日期(bbt)、还书日期(rbbt)外,其他字段都作为外键,分别参照与其他基本表;在读者还书时,采用存储过程,将读者的借书记录插入到历史借阅表,并将还书日期设置为当前系统日期。3视图设计(1)设计思想:管理员可以查看当前读者的借阅情况,可以根据历史借阅表中的数据统计图书的借阅次数;读者可以查看自己的借阅记录和其他读者的借阅记录(部分字段,如读者号、院部、专业、所借图书ISBN、ID、借书日期、归还日期等)。(2)具体实现:3.1创建视图将读者表、借阅表、图书表连接,根据读者编号、图书ISBN号,可将三个表连接,从而实现查看读者当前借阅记录。在连接时,由于只
13、用到表中部分字段,所以先在基表中筛选部分字段作为新表,进行连接,可以提高连接效率。 以下是视图的代码实现,以及从视图中查询得到的当前读者借阅情况的结果:3.2根据历史借阅表中的数据统计图书的借阅次数: 以下是从视图中查询得到的结果,管理员可以根据历史借阅表图书的外借次数决定增加哪些图书的复本量,以满足读者需求:4索引的建立(1)设计思想:在图书借阅系统中,为了从数据库的大量数据中迅速找到需要的内容,采用类似于书目录这样的索引技术,不必顺序查找,就能迅速查到所需要的内容。索引是根据表中一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表。聚集索引与非聚集索引的不同之处在于:非聚集索引B树的
14、叶子节点不存放数据页信息,而是存放非聚集索引的键值,并且每个键值项都有指针指向包含该键值的数据行。(2)具体实现:读者表按读者号(ReaderID)建立主键索引(PRIMARY KEY),组织方式为聚集索引;图书表按ISBN号建立主键索引,组织方式为聚集索引;借阅表按读者号(ReaderID)、ISBN号、图书ID建立主键索引,组织方式为聚集索引;图书ID与ISBN对应表(BookID_ISBN)按图书ID建立主键索引,组织方式为聚集索引;历史借阅表按读者号(ReaderID)、ISBN号、图书ID、借书日期(bbt)、还书日期(rbbt)建立主键索引、组织方式为聚集索引;为图书表的书名、作者
15、、库存量(Bname,Author,Invnum)创建非聚集索引;为读者表的读者号、姓名、借书量(ReaderID,Name,Num)创建非聚集索引;为图书ID与ISBN对应表(BookID_ISBN)中的的图书ISBN 字段创建非聚集索引。5数据完整性设计(1)设计思想:实体完整性:实体完整性又称为行的完整性,要求表中有一个主键,其值不能为空且能唯一地标识对应的记录。通过索引、UNIQUE约束、PRIMARY KEY约束或IDENTITY属性可实现数据的实体完整性。域完整性:域完整性又称为列完整性,指给定列输入的有效性。实现域完整性的方法有:限制类型(通过数据类型)、格式(通过CHECK约束
16、和规则)或可能的取值范围(通过CHECK约束、DEFAULT定义、NOT NULL定义和规则)等。参照完整性:参照完整性又称为引用完整性。参照完整性保证主表中的数据与从表(被参照表)中的数据的一致性。(2) 具体实现: 实体完整性:图书表中以ISBN号为主键,图书存在不同的复本,在图书ID与ISBN对应表中,同一个ISBN对应不同的图书ID,以图书ID作为主键;读者表中以读者号作为主键可以唯一确定一个读者;借阅表中以读者号、ISBN号、图书ID作为主键(不允许读者同一ISBN号图书同时借两本,但是可以还了该书后再接,保证了借阅表中借阅记录的实体完整性);历史借阅表中,以读者编号、ISBN、图书
17、ID、借书日期、还书日期作为主键来保证还书记录的实体完整性。 域完整性:读者表中读者号设置为char(12)固定长度,性别约束为CHECK(Sex = 0 OR Sex = 1),0:女,1:男,出生日期设置为 date 类型,借书数量,设置默认为 0;图书表中ISBN号设置为varchar(16),库存量和复本量设置为 int 类型,默认为0;借阅表中借书日期字段设置为date类型,且不允许为空;历史借阅表中借书日期、还书日期数据类型也都设置为date 类型。 参照完整性:图书ID与ISBN对应表中,ISBN号参照图书表中ISBN号;借阅表中读者号参照读者表中读者号,ISBN号参照图书表中I
18、SBN号,图书ID参照图书ID与ISBN对应表中的图书ID;历史借阅表中读者号、ISBN号、图书ID也都分别参照于基表中对应字段;当读者借书时,采用借书存储过程,将当前日期作为借书日期字段的值插入到借阅表中;当读者还书时,采用还书存储过程,将读者的借书记录(在借阅表中)插入到历史借阅表中(表明读者已经还书),将当前日期作为还书日期字段的值插入到历史借阅表中。 采用两个借书、还书的存储过程可以很好的保证了借阅表、历史借阅表和读者表、图书表之间的参照完整性。 6存储过程和触发器设计(1)设计思想: 在图书借阅系统中,主要涉及业务为读者借书、读者还书、书籍检索。所以分别针对三个业务创建了存储过程。此
19、外还创建了在当前借阅表中查询超期未归还图书的借书记录、在历史借阅表中超期未归还图书的还书记录。存储过程在服务器端运行,执行速度块;存储过程在执行一次后就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能;使用存储过程可以完成所有的数据库操作,并通过编程方式控制对数据库信息访问的权限,确保数据库的安全;可以自动完成需要预先执行的任务。存储过程可以在SQL Server启动时自动执行,而不必在系统启动后再进行手工操作,大大方便了用户的使用,可以完成一些需要预先执行的任务。(2)具体实现:6.1在数据库 MBook203 中创建加密的读者借书存储
20、过程,当向 Lend 表插入一条记录时: 检查该记录的借书证号 ReaderID 在 Reader 表中是否存在; 检查该记录的图书 ISBN 号是否在 Book 表中是否存在; 检查该记录的图书库存量 Invnum 是否 等于 0; 检查该记录是否借阅过 该图书; 检查该记录的 图书 BookID 是否在 借阅表 Lend 中已经存在; 若有一项为否,则不允许插入,并回滚事务,否则,插入记录并将读者表中该读者借阅数量 加1 ,图书表中库存量 减1 ,并返回借书成功信息。满足上述条件,则开始一个事务,将借书记录插入到借阅表中:读者表中借书数量(Num)加1,在上面语句中已经执行,接着执行:图书
21、表中的图书库存量(Invnum) 减1;如果所有语句都不出错,则提交事务并返回借书成功信息,否则,回滚事务,并返回错误信息。6.2在数据库 MBook203 中创建加密的读者还书存储过程,当删除 Lend 表中一条记录时: 检查借阅表中是否存在该借阅记录,如果不存在则回滚事务; 将该记录插入到历史借阅表; 将该记录的还书日期 rbbt 获取当前系统时间,并插入到对应记录的还书日期字段; 将该记录的读者借阅数量 减1; 将该记录的图书库存量 加1; 返回还书成功信息;若有一项为执行不成功,则不允许删除,并回滚事务。 满足上述条件,则开始一个事务,将还书记录插入到历史借阅表中:接着执行:删除借阅表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 借阅 系统 数据库 设计 实验 报告 9083049
链接地址:https://www.31doc.com/p-2447568.html