《数据库系统概论》课程设计报告图书管理系统设计

上传人:pu****.1 文档编号:557421911 上传时间:2023-11-03 格式:DOC 页数:7 大小:363.51KB
返回 下载 相关 举报
《数据库系统概论》课程设计报告图书管理系统设计_第1页
第1页 / 共7页
《数据库系统概论》课程设计报告图书管理系统设计_第2页
第2页 / 共7页
《数据库系统概论》课程设计报告图书管理系统设计_第3页
第3页 / 共7页
《数据库系统概论》课程设计报告图书管理系统设计_第4页
第4页 / 共7页
《数据库系统概论》课程设计报告图书管理系统设计_第5页
第5页 / 共7页
点击查看更多>>
资源描述

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

1、信息技术学院数据库概论课程设计报告专 业: 班 级: 姓 名: 学 号: 设计题目: 指导教师: 2009年 12 月 28 日图书管理系统设计一、系统设计的目的和意义 对该系统开发设计的重要性和必要性进行论述。通过完成从用户需求分析、概念结构设计,逻辑结构设计等一系列的数据库设计到上机编程、调试和应用等全过程,进一步理解和掌握教材中的相关内容。二、系统需求分析1、 学生学生的操作流程如图B.1所示。2、 管理员管理员可完成书籍和学生的增加、删除和修改以及对学生借阅、续借、归还的确认,其操作流程如图B.2所示。要求:画出系统功能模块图后,并对各个模块进行解释。三、概念结构设计数据库需要表述的信

2、息有以下几种:1、 图书信息2、 学生信息3、 管理员信息4、 学生预定图书信息5、 学生借阅归还图书信息可以用E/R模型表述该模型的设计,E/R图如图B.3所示。四、逻辑结构设计通过E/R模型到关系模型的转化,可以得到如下关系模式:1、 Book(BookID,Title,Author,Publisher,Pyear,Language)2、 Student(ID,Name,Dept)3、 Assistent(ID,Name)4、 BBook(BookID,StdID,BDate)5、 RBook(BookID,StdID,RDate)6、 Lend(StdID,AstID,BookID,LD

3、ate)7、 Return(StdID,AstID,BookID,RDate)说明1、 书号是图书的键码,每本书有惟一的书号,一个学生可同时借阅多本书。一个管理员可处理多个同学的借阅等事宜。2、 一般情况下,学生、管理员和图书之间的联系为1:1:n,借书关系Lend作为连接关系,其键码为n端实体集的键码,即书号为借书关系的键码。这反映了如果还书时也把当初的借书记录删除,则书号就能惟一识别一个元组。如果还书时不同时删除借书记录,则意味着同一本书前后可借给不同的学生,于是学生、管理员和图书之间的联系变为m:1:n,这时借书关系的键码为书号和学号的组合。如果在不删除借书记录的情况下,同一学生再次借同

4、一本书,这时,学生、管理员和图书之间的联系变为m:p:n,于是,借书关系的键码为书号、学号和管理员号的组合。但这里有一个隐含的信息,即同一学生前后两次借同一本书所遇到的管理员不同,而这种不同可能仅仅是“日期”不同。因此,借书日期成了必不可少的成分,也就是说,在这种情况下,属性全集才是借书关系的键码。总之,借书关系的键码与图书管理模式有关,读者可按照自己的理解确定键码,并编写相应的事务处理流程。其他关系也有类似之处。3、 要知道图书当前的状态,是在图书馆存放,还是被借阅等,需要在Book的模式中增加对应项用以表示图书当前的状态。比如我们增加State,并且约定取值和状态的对应关系如下:1) 在图

5、书馆中并且没有被预定2) 在图书馆中并且已被除数预定3) 被借出并且没能被预定4) 被借出并且已被预定五、物理结构设计为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引。下面是各表中建立索引的表项: Book(BookID) Student(ID)六、系统实现(一)用sql实现设计1、 建立Book表CREATE TABLE Book(BookID varchar(20) PRIMARY KEY,Title varchar(50) NOT NULL,Author varchar(50),Publisher varchar(50),Pyear char(4),Language c

6、har(1) DEFAULT c,State char(1) DEFAULT 0);2、 建立Student表CREATE TABLE Student(ID varchar(6) PRIMARY KEY,Name varchar(20) NOT NULL,Dept varchar(20) NOT NULL);3、 建立Assistent表CREATE TABLE Assistent(ID varchar(6) PRIMARY KEY,Name varchar(20) NOT NULL,);4、 建立BBook表CREATE TABLE BBook(BID varchar(20) NOT NUL

7、L,StdID varchar(6) NOT NULL,BDate datetime NOT NULL,CONSTRAINT FK_BBOOK_BID FOREIGN KEY(BID) REFERENCES Book(BookID),CONSTRAINT FK_BBOOK_StdID FOREIGN KEY(StdID) REFERENCES Student(ID));5、 建立RBook表CREATE TABLE RBook(BookID varchar(20)NOT NULL,StdID varchar(6) NOT NULL,RDate datetime NOT NULL,CONSTRA

8、INT FK_RBOOK_BookID FOREIGN KEY(BookID) REFERENCES Book(BookID),CONSTRAINT FK_RBOOK_StdID FOREIGN KEY(StdID) REFERENCES Student(ID));6、 建立Lend表CREATE TABLE Lend(StdID varchar(6) NOT NULL,AstID varchar(6) NOT NULL,BookID varchar(20)NOT NULL,LDate datetime NOT NULL,CONSTRAINT FK_LEND_StdID FOREIGN KEY

9、(StdID) REFERENCES Student(ID),CONSTRAINT FK_LEND_AstID FOREIGN KEY(AstID) REFERENCES Assistent(ID),CONSTRAINT FK_LEND_BookID FOREIGN KEY(BookID) REFERENCES Book(BookID));7、 建立Return表CREATE TABLE Return(StdID varchar(6) NOT NULL,AstID varchar(6) NOT NULL,BookID varchar(20)NOT NULL,RDate datetime NOT

10、 NULL,CONSTRAINT FK_RETURN_StdID FOREIGN KEY(StdID) REFERENCES Student(ID),CONSTRAINT FK_ RETURN _AstID FOREIGN KEY(AstID) REFERENCES Assistent(ID),CONSTRAINT FK_ RETURN _BookID FOREIGN KEY(BookID) REFERENCES Book(BookID));8、 管理员操作1) 增加学生:INSERT INTO Student(ID, Name, Dept) VALUES(#StdNo, #Name, #De

11、pt);2) 删除学生:DELETE FROM Student WHERE(ID=#ID);3) 修改学生信息:UPDATE Student SET Name=#Name, Dept=#Dept WHERE(ID=#ID);4) 增加书籍:INSERT INTO Book(BookID, Title, Author, Publisher, Pyear, Language) VALUES(#BookID, #Title, #Author, #Publisher, #Pyear, #Language);5) 删除书籍:DELETE FROM Book WHERE(BookID=#BookID);6

12、) 修改书籍信息:UPDATE Book SET Title=#Title, Author =#Author, Publisher =#Publisher, Pyear =#Pyear, Language =#Language WHERE(BookID=#BookID);7) 学生借阅图书:BEGIN TRANSACTIONINSERT INTO Lend(StdID, AstID, BookID, LDate)VALUES(#StdID, #AstID, #BookID, #LDate);UPDATE BOOK SET State=2 WHERE BookID=#BookIDCOMMIT;8

13、) 学生归还图书:BEGIN TRANSACTIONINSERT INTO Return(StdID, AstID, BookID, RDate)VALUES(#StdID, #AstID, #BookID, #RDate);UPDATE BOOK SET State=0 WHERE BookID=#BookIDCOMMIT;9、 学生操作1) 预定图书:CREATE PROC Book_Book BookID varchar(20),StdID char(6), BDate datetimeASDECLARE TransName VARCHAR(20)SELECT TransName=Boo

14、k_BookBEGIN TRANSACTION TransNameDECLARE booked int, book_state_before char(1), book_state_after char(1)SELECT booked=count(*) FROM BBook WHERE BID=BookIDIF booked0 ROLLBACK TRANSACTION TransNameELSE BEGIN SELECT book_state_before=state FROM Book WHERE BookID=BookIDIF book_state_before=0 SELECT book_state_after=1ELSE IF book_state_before=2 SELECT book

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

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