图书管理系统数据库概述

上传人:碎****木 文档编号:229367422 上传时间:2021-12-25 格式:DOCX 页数:8 大小:112.88KB
返回 下载 相关 举报
图书管理系统数据库概述_第1页
第1页 / 共8页
图书管理系统数据库概述_第2页
第2页 / 共8页
图书管理系统数据库概述_第3页
第3页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《图书管理系统数据库概述》由会员分享,可在线阅读,更多相关《图书管理系统数据库概述(8页珍藏版)》请在金锄头文库上搜索。

1、xxxx 学院计算机系综合性实验实 验 报 告课程名称数据库系统概述实验学期2010至2011学年 第一学期学生所在系部计算机年级专业班级学生姓名xxx学号zzzzzzzzzzzzzzz任课教师xxz实验成绩计算机系制数据库系统概述课程综合性实验报告开课实验室:年 月 日- 7 -实验题目一、实验目的图书管理系统数据库设计利用一种 DBMS 作为设计平台,理解并应用课程中关于数据库设计的相关理论,能按照数据库设计步骤完成完整的数据库设计,包括需求分析、概念设计、逻辑设计、物理设计和实施。同时能 够正确应用各个阶段的典型工具进行表示。二、设备与环境(1) 硬件设备:PC 机一台(2) 软件环境:

2、安装Windows 操作系统,安装数据库管理系统SQL Server2000 等。三、实验内容1. 系统概述1.1 需求分析:图书管理系统是一种基于集中统一规划的数据库管理新模式。在对图书,读者的管理,其实是对图书、读者数据的管理。本系统所完成的功能是图书馆管理人员可以管理读者对于图书的借阅情况、图书的购入、借出、归还等;以及查询某位读者或者某本图书的信息。1.2 概念设计1.3 逻辑设计系统中对应的逻辑关系如下:描述图书信息的属性有:图书编码(Bno),书名(Bname),作者(Bauthor),定价(Bprice),类别(Bclass),出版单位(Bpublish),版次(Border),

3、内容简介(Bsynopsis)描述读者信息的属性有:读者编号(Rno),姓名(Rname),性别(Rsex),所在部门(Rdep)描述图书借阅信息的属性有:图书编码(Bno),图书状态(Bstate),读者编号(Rno),借阅日期(Borrdate)为了查询方便,这里建立两个存储过程,即:存储过程_作者出书信息和存储过程_作者借阅信息。并且建立了视图:图书借阅信息视图(view_jyinfo),其中的属性包括:书名,读者编号,姓名, 所在部门, 图书编码, 借阅日期( Book_info.Bname, Read_info.Rno, Read_info.Rname,Read_info.Rdep,

4、 Borr_info.Bno, Borr_info.Borrdate)图1.4 物理设计图书编码(Bno),读者编码(Rno)为主码。系统会自动创建它们的索引。除了系统自动建立的索引,这里还建立了两个个索引,并且这里设计的索引都是非聚集索引,因为聚集索引具有完全独立于数据 行的结构,不会影响数据表中记录的实际存储顺序,而且它比聚集索引需要较少的存储空间,但检 索效率比聚集索引低。对于聚集索引,每个表只能有一个。而非聚集索引,可以在同一个表中建立 多个,但是最多也不能创建超过 249 个。以下是两个索引及代码:-图书基本信息表(出版单位,作者)create unique nonclustered

5、 index index_publisherandauthor on Book_info(Bpublish,Bauthor)-读者基本信息表(所在部门,姓名)create unique nonclustered index index_depandRname on Read_info(Rdep,Rname)2. 登录控制标准登录和混合登录用户管理系统角色权限细分学生1 借书一般借书续借管理员1.图书入库图书入库图书分类2.添加学生(给学办理图书证)第一次办理补办系统员1.图书入库图书入库图书分类2.添加学生(给学办理图书证)第一次办理补办3添加管理员添加,修改,删除(离职后清除她的记录)备注管

6、理员和系统员有借书权限(1.为学生办理借书 2.为自己办理借书)混合登录当用户登录时判断用户所对应的role_id,0 为普通用户,登陆后可查看图书,也可查看自己所借阅的信息1 为管理员,登陆后查看用户信息,并对用户进行一系列操作,还可查看图书并对图书进行一系列操作10 为系统管理员,登陆后可进行各种操作角色CREATE TABLE roles (role_id int(11) NOT NULL COMMENT 角色 id,role_name char(255) NOT NULL COMMENT 色角名称) ENGINE=InnoDB DEFAULT CHARSET=utf8;Roles 表的

7、作用:可以创建多个角色,给这些角色赋予不同权限52 数据完整性:参照完整性、实体完整性、自定义完整性(包括触发器)在设计过程中,设计了一个计算借阅总册数的函数。use Bkman gocreate function fun_读者借阅册数(Rno as char(12)returns int begindeclare 总册数 as int select 总册数 = count(Bno) from Borr_infowhere Rno = Rno return 总册数end go3. 触发器当管理员对系统中的图书借阅表进行数据的插入操作时,就会触发触发器。代码:if exists(select n

8、ame from sysobjects where name = 触 发器_图书信息表_插入 and type= TR)drop trigger 触发器_图书信息表_插入gocreate trigger 触发器_图书信息表_插入 on Borr_info for insertas beginprint触发器开始执行 declare 提示 char(30)set 提示 = 你成功插入了一条新记录! print 提示end go数据库的安全设计:1. 不同用户操作数据库权限不同普通用户只能对自己的信息进行查询,修改,不可以删除。而管理员可以对普通用户进行管理,并且可以对图书信息以及借阅信息进行管理

9、,即增加,删除, 修改,查询操作和对用户的授权。2. 视图增加视图可以增加数据库的安全,因为它可以隐藏数据,如果设置查看视图的时间,那样安全性会更高,因为可以让用户在指定的时间内无法查看。通过对视图的修改,分类,方便管理的同时增加数据库的安全性。3. 数据加密通过对数据的加密,可以增加数据库的安全性。四、实验结果及分析对本数据库进行查询操作来检验结果,实验结果图如下:1. 存储过程:存储过程_作者出书信息存储过程_借阅信息2. 视图3. 触发器insert into borr_infovalues(100008,借阅,jsj29,2010-8-19)结果如图:4. 函数用下面这段代码检验结果:

10、use Bkman goselect distinct Rdep,Rname,Rsex,借阅总册数 = dbo.fun_读者借阅册数(Borr_info.Rno) from Read_info,Borr_infowhere Read_info.Rno = Borr_info.Rno执行结果如下图:6问题与不足问题:触发器与约束之间的区别?约束和触发器在特殊情况下各有优势。 触发器的主要好处在于它们可以包含使用Transact-SQL代码的复杂处理逻辑。因此,触发器可以支持约束的所有功能;但它在所给出的功能上并不总是最好的方法。实体完整性总应在最低级别上通过索引进行强制,这些索引或是 PRIMA

11、RY KEY和 UNIQUE约束的一部分,或是在约束之外独立创建的。假设功能可 以满足应用程序的功能需求, 域完整性应通过 CHECK约束进行强制,而引用完整性 (RI)则应通过 FOREIGNKEY约束进行强制。在约束所支持的功能无法满足应用程序的功能要求时,触发器就极为有用。在使用触发器插入数据的时候,要注意与约束之间的问题。通过这次实验,对于数据库有了更深的了解。当然,越了解的同时也就越能发现自己的不足之处,有很多地方都有待提高。评定项目ABCD评定项目ABCD教需求分析清楚师概念结构符合评价需求完整性设计完善 游标和存储过程的使用逻辑结构设计操作熟练合理索引设计合理文字流畅有完全性的设报告规范置其他:评价教师签名:年 月 日

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号