当前位置:首页 > 高校图书馆管理系统数据库设计
MID char(10) not null, primary key(BookID,ReaID),
foreign key(MID) references Maneger(MID)
)
6.1.3 建立视图
(1)用于查询图书基本信息的视图定义如下:
create view Bookview (索书号, 书名, 作者, 出版社, 图书状态) as
select BookNo,BookName,BookWriter,BookPublish,BookState from Book
(2)用于读者基本信息查询的视图定义如下:
create view Readerview (读者姓名,类型,学院,专业,办证日期) as
select ReaName,ReaType,ReaDep,ReaPref,ReaDate from Reader
(3)用于显示当前借阅基本信息的视图定义如下:
create view Borrowview (读者编号,书名,作者,借阅日期,到期日期) as
select ReaID,BookName,BookWriter,Outdate,YHdate from Borrow,Book
where Borrow.BookID=Book.BookID and Borrow.Indate is null
(4)用于借阅历史信息查询的视图定义如下:
create view Historyview (读者编号,书名,借阅日期,归还日期) as
select ReaID,BookName,Outdate,Indate from Borrow,Book
where Borrow.BookID=Book.BookID and Borrow.Indate is not null
(5)用于查询罚款信息的视图定义如下:
create view Fineview (读者编号,书名,借阅日期,归还日期,罚款,处理状态) as
select ReaID,BookName,Outdate,Indate,Fine,CLState from Borrow,Book
where Borrow.BookID=Book.BookID and Fine is not null
6.1.4 建立索引
create clustered index BookPublish on Book(BookPublish); create clustered index ReaDep on Reader(ReaDep);
-21-
6.1.5 建立触发器
1.当删除Reader表中某一读者基本信息时,触发Borrow表,删除相应的记录 create trigger Reader_delete on Reader for delete as
delete Borrow from deleted
where Borrow.ReaID=deleted.ReaID
2.当在中增加一条借阅记录时,使该图书的状态由“可借”变为“不可借” create trigger Borrow_insert1 on Borrow for insert as
declare @BookID char(9) select @BookID=BookID from inserted update Book
set BookState='不可借' where BookID=@BookID
6.2数据入库
系统包括图书基本信息管理、读者基本信息管理、管理员信息管理、借阅信息管理、
查询信息管理等四大功能模块,共有6张基本表,采用事先在Excel中录入数据,然后使用SQL Server 2000数据导入/导出向导功能,直接将数据导入到相应的基本表中。
6.3创建各个功能的存储过程
系统共创建了10个存储过程,具体列表如下:
表3.1 创建的存储过程列表:
编号
P-1 P-2 P-3 P-4
存储过程名称
Book_Insert Reader_Insert Maneger_Insert Borrow_Insert
定义
详见附录1-1 详见附录1-2 详见附录1-3 详见附录1-4
作用
在Book中插入一元组 在Reader中插入一元组 在Maneger中插入一元组 在Borrow中插入一元组
-22-
P-5 P-6 P-7 P-8 P-9 P-10
Delete_Book Delete_Reader Query_Reader_R Query_Reader_M Query_Book_Writer
Query_Book_Name_Publish
详见附录1-10 详见附录1-9 详见附录1-5 详见附录1-6 详见附录1-7 详见附录1-8
从Book中删除一元组 从Reader中删除一元组 读者在Reader中查询本人信息 管理员在Reader中查询全部读者 在Book,按作者查询
在Book中,按书名和出版社查询
(其它表的查询、修改、删除与以上各表的存储过程定义大致相同,这里不再具体列出)
7.系统调试和测试
对该图书管理系统进行测试,验证每个功能是否符合要求,具体的测试如下: (1)通过视图查看各个基本表和视图中的数据(见附录2) (2)检测各个存储过程的功能:(见附录2)
8.实习心得
1. 这次课程设计使我熟悉了系统设计的整体步骤。系统设计大体可分为需求分析、概念设计、逻辑设计、物理设计、数据库的实施及调试测试六大步骤。其中,让我感触最深的是需求分析阶段,在这个阶段,必须对所要设计的系统有总体的构思和了解,知道自己要做什么,要实现什么,并且要实际的进行相关的调查,不能凭想象或自己的了解,这样会在后续的工作中遇到很多的问题。
2. 这次课程设计加深了我对数据库系统概论相关知识和SQL SERVER相关功能的理解。例如对建立基本表、视图、索引、存储过程、触发器等,都比以前更加的熟练。并在解决遇到的各种问题的过程中,学到了很多新的知识。比如在导入\\导出数据时,由于外键约束的存在,经常会出现错误,这就要注意各个表导入的顺序问题。一般是先导入主键表,后导入外键表,这样可以避免很多的错误。
3. 我进一步掌握了相关的SQL语句方面的知识。不但纠正了以前的错误认识和理解,而且学会了建立存储过程和触发器。通过查阅资料,我还明白了存储过程是编译后放在服务器端的程序,它可以被别的模块调用,且不需要重新编译,这样就大大减轻了客户端的负担,且有效的提高了系统执行的效率。
4 . 当然,在实习的过程中也存在一些问题。由于需求分析阶段的工作完成的不是很充分,
在后面的设计过程中,前后时常会出现矛盾,不一致现象,因此要反复的修改前面的结果,导致整个工作进行的不是很顺利。
9.存在的问题及建议
1.我觉得在这次课程设计中,需求分析阶段是致关重要的,但由于同学们都是第一次做这
样的系统设计,都不是很熟悉需求分析的主要方法和主要任务,所以都很盲目,认为随
-23-
便从网上搜点相关的知识就可以了,但其实,这直接影响着后面的各个阶段的工作的进行。所以希望老师在实习前能给我们对需求分析阶段的工作进行一定的指导。 2.在实习过程中,虽然我们每个班都配备了两到三名指导老师,可各指导老师轮流上班,
当我们遇到问题时,有时在身边找不到老师,而浪费了一些宝贵的时间,或者是本班的指导老师在给别班的学生指导,所以也可能会耗费一定的等待时间。
3.但总的说来,这次实习的各个指导老师都是知识渊博,经验丰富,并且十分热情的,我
们请教的任何问题,老师都会耐心而认真的为我们解决,老师不但帮我们解决了问题,同时也教会了我们解决此类问题的方法,这对我们今后的学习是十分有益的。
-24-
共分享92篇相关文档