《sqlserver数据库综合实验报告格式.pdf》由会员分享,可在线阅读,更多相关《sqlserver数据库综合实验报告格式.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 华北科技学院计算机系综合性实验 实 验 报 告 课程名称 数据库原理与应用 实验学期 2009 至 2010 学年 第 一 学期 学生所在系部 管理系 年级 三年级 专业班级 商务 B071 班 学生姓名 李荣妹 学号 4121 任课教师 郭红 实验成绩 计算机系制 数据库原理与应用课程综合性实验报告 开课实验室:基础七 2009年 12 月 16 日 实验题目 数据库的设计及应用 一、实验目的 利用一种 DBMS 作为设计平台,理解并应用课程中关于数据库设计的相关理论,能按照数据库设计步骤完成完整的数据库设计,包括需求分析、概念设计、逻辑设计、物理设计和实施。同时能够正确应用各个阶段的典型
2、工具进行表示。二、设备与环境(1)硬件设备:PC 机一台(2)软件环境:安装 Windows 操作系统,安装数据库管理系统 SQL Server2000 或 2005 等。三、实验内容 人才信息管理系统 1、需求分析:(1)功能需求分析 图书馆中收藏的大量图书供读者借阅,其中图书分成不同的类别,如自然科学类、社会科学类等;借阅者可分为老师和学生。不同的借阅者最多可借书的数量和期限不同,如教师最多可借书 10 本,期限为 3 个月,学生最多可借 5 本,期限为 1 个月,无论是老师还是学生,借阅超期都要受到罚款处理。以上就是图书馆管理系统所要完成的主要功能。(2)信息需求分析。读者的基本信息 借
3、书证号、读者姓名、性别、读者类别、是否有超期 图书基本信息 图书编号、条形码号、书名、作者、出版社、出版日期、类别、借阅状态、借阅次数 借阅的信息 借出日期、归还日期 罚款的基本信息 罚款金额、超期天数、处罚日期 读者用户管理信息 用户名;密码:是有 6 个数字组成;记录用户最近一次登录的时间:年月日 2、概念分析:读者与其属性关系如图 1 所示,图书与其属性关系如图 2 所示。1.读者实体与其属性 读者 借书证号 姓名 是否有超期 读者类别 性别 2、图书实体与其属性 经分析,本系统涉及到的实体只有读者和图书,二者之间存在借阅和罚款的联系,据此刻画出系统的 E-R 图,如图 3 所示。3.图
4、书管理系统的 E-R 图 3、逻辑设计(1)、完成关系模式的转化 根据关系模式的转换规则可得到如下的关系模式,加下划线的属性为相应的主码。读者(借书证号,读者姓名,性别,读者类别,是否有超期)图书(条形码号,图书编号,书名,作者,出版社,出版日期,书的类别,借阅状态,借阅次数),其中属性“借阅状态”给出该图书是否在库的信息。借阅(借书证号,条形码号,借出日期,归还日期),主码为三个属性的组合,因为同一个读者可能重复借同一本书,只有加上借出日期才能区分出不同的借阅记录。罚款(借书证号,条形码号,处罚日期,超期天数,罚款天数,罚款金额),主码为三个属性的组合,理由同上。另外,为了保证系统安全的安全
5、性,采用了登录的措施,用户名和密码存放在密码表中。密码表(借书证号,密码)(2)、关系模式分析 用规范化理论对上述关系模式进行分析,除“罚款”关系外,其他 4 个关系模式中主键是本模式的唯一决定因素,所以这 4 个关系模式都属于 BCNF,在函数依赖的范畴内,规范化程度已达到最高。但是在“罚款”关系中,罚款金额=日罚款金额超期天数,所以超期天数 罚款金额,而(借书证号,条形码号,处罚日期)超期天数,所以(借书证号,条形码号,处罚日期)罚款金额,存在传递函数依赖,所以“罚款”关系属性 2NF,存在冗余现象。但根据实际情况,读者往往既关心超期天数,又关心罚款金额,所以“处罚金额”是必要的冗余。条形
6、码号 出版日期 借 阅 状态 借阅次数 作者 书名 图书编号 出版社 类别 图书 读者 图书 借出日期 归还日期 超期天数 出发日期 罚款金额 借阅 罚款 传递 m n p q (3)建表如下图:图书表的结构 读者表的结构 罚款表的结构 借阅表的结构 密码表的结构 输入数据:图书 读者 S 只学生,t 指老师,1 指没有超期,0 表示超期 借阅 罚款 密码:(4)、创建视图。以 sa 的身份登录数据库,创建视图 V1,V2,V3 create VIEW V1 create VIEW V2 create VIEW V3 AS AS AS select*from 图书 select*from 借阅
7、 select*from 罚款 建立视图 V5,查看在库的图书:create view V5 as select*from 图书 where 借阅状态=在库 建立已被借出去的图书视图 create view V6 as select*from 图书 where 借阅状态=出库 建立逾期未还的图书的学生视图:create view V7 as select*from 借阅 where datediff(day,convert(smalldatetime,借出日期),getdate()30 and 借书证号 in(select 借书证号 from 读者,借阅 Where 借阅.借书证号=读者.借书
8、证号 and 读者类别=s 四、物理设计和自定义完整性 建立索引:为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是表中建立索引的表项:图书表(图书编号,条形码号)读者(借书证号)借阅(借书证号,条形码号)罚款表(借书证号,条形码号)密码(借书证号)(2)建立触发器 a.对已有借书证的读者进行查询借书是否超期(这里归定 30 天):create trigger T1 on 读者 for insert as select 借阅.借书证号,读者.读者姓名,图书.图书编号,图书.书名,借阅.借出日期 from 读者,借阅,图书 where 读者.借书证号=借阅.借书证号 and 图
9、书.条形码号=借阅.条形码号 and 读者类别=s and Datediff(day,convert(smalldatetime,借出日期),getdate()=30 b.建立触发器 T2(还书时):create trigger T2 on 借阅 for insert as begin update 图书 set 借阅状态=在库 where 条形码号=(select 条形码号 from inserted)update 借阅 set 归还日期=getdate();update 读者 set 书数=书数-1 where 借书证号=(select 借书证号 from inserted)end c.建
10、立触发器 T3(借书书时):create trigger T3 on 借阅 for insert as begin update 图书 set 借阅状态=入库 where 条形码号=(select 条形码号 from inserted)update 借阅 set 借出日期=getdate();update 读者 set 书数=书数+1 where 借书证号=(select 借书证号 from inserted)end d.建立触发器 T4,实现超出借书数目时禁借(针对老师的):create trigger T4 on 读者 for insert as if(select 书数 from ins
11、erted where 读者类别=tand 书数10)begin print 该用户不能再借 rollback end e.建立触发器 T5,实现超出借书数目时禁借:create trigger T4 on 读者 for insert as if(select 书数 from 读者 where 读者类别=sand 书数5)begin print该用户不能再借 rollback end;五、设置权限 本图书馆系统中权限角色有:系统管理员 lrm,拥有所有的权限 图书管理员 lib 密码 lib,对图书的管理,包括增、删、改、查,借阅表和罚款表的管理,读者表的查询。读者用户 read,对密码表中自
12、己密码的更改,图书表的查询,借阅表的查询。用户在自己的权限下对表进行管理则可以进行,若超出权限范围则不可,如下图,是以 lib身份登录对读者表进行插入,则不行。四、实验结果及分析 结果如下:分析:通过实验,更进一步了解了数据库的设计与建立。数据库的设计过程包括需求分析,结构设计和物理设计。又分为概念结构设计,逻辑结构设计,物理结构设计。本次实验中的图书管理系统数据库设计,综合运用了数据库中的 select,insert,update,delete,语句,对记录进行了全面查询。同时,更完整的实现了数据库的实体完整性,参照完整性,和自定义完整性。该图书管理系统实现了系统管理员对系统数据库的管理,图书管理员对图书的添加,修改,借阅的基本管理,用户对自己信息的管理,和图书的基本查询,利用视图方便用户特定的需求,利用触发器 对数据进行安全有效的管理。教 师 评 价 评定项目 A B C D 评定项目 A B C D 需求分析清楚 完整性设计完善 概念结构符合需求 游标或存储过程的使用 逻辑结构设计合理 操作熟练 索引设计合理 文字流畅 安全性的设置 报告规范 其他:评价教师签名:年 月 日