数据库详细设计说明书.doc_第1页
数据库详细设计说明书.doc_第2页
数据库详细设计说明书.doc_第3页
数据库详细设计说明书.doc_第4页
数据库详细设计说明书.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

修正&标记表文档变更历史日期作者版本变更描述2011-05-28舒睿V01数据库说明书创建2011-06-13舒睿V01.1数据库各表功能说明创建2011-06-20舒睿V02数据库各项细节功能完成审核结果审核人通过版本审核认职位日期文档属性项目描述文档名称功能说明书作者舒睿创建日期5/28/2011最后更新日期1.1 目的本文为图书馆管理课程设计SQL Server功能规范说明书。本说明书将:l 描述数据库设计的目的l 说明数据库设计中的主要组成部分l 说明数据库设计中各功能的实现1.2 内容本文档主要内容包括对数据库设计结构的总体描述,对数据库中各种对象的描述(包括对象的名称、对象的属性、对象和其他对象直接的关系)。本文档中包含对以下数据库内容的描述:l 数据表l 视图l 存储过程l 触发器l 约束在数据库主要对象之外,本文还将描述数据库安全性设置、数据库属性设置和数据库备份策略,为数据库管理员维护数据库安全稳定地运行提供参考。1.3 与其他项目的关联本项目的数据库设计与本项目(Web部分和Windows部分)功能密切相关。本案例项目的数据库将按照项目程序部分的功能需求而设计,数据库设计将配合设计案例的程序部分,以实现一个功能完备的真实环境内的应用。表1.4 表设计概述根据设计的系统功能,数据库将以图书信息为中心存储相关数据,配合 SQL Server 数据库系统中提供的数据管理,实现图书的借阅、归还、续借及系统设置等业务功能。数据库设计将以存储读者信息的读者表为基础,连接多张相关表以实现对以下关系的支持:l 读者借书记录l 读者还书记录l 读者续借记录l 读者罚款记录l 读者对图书的评价l 读者对图书和图书馆的建议及留言数据库系统主要的实体关系如图 01所示。图 011.5 读者用户信息表(ReaderInfo)概述读者用户信息表用于记录读者基本信息,并作为基础表与其他表连接。表定义读者用户信息表定义如表 01所示。表 01字段类型可否为空备注Usernamenvarchar(10)否IDint否Passwdchar(8)否Namenvarchar(10)可Sexchar(2)否Ageint可StuNumNumeric可PlaceStrandnvarchar(50)可PlaceClassnvarchar可ValidCardnvarchar(50)否BookCardnvarchar(10)可CreateTimedatetime可ExpiredTimedatetime可主键读者用户信息表的主键是读者用户信息表编号字段,类型为整型,设置自动增量。约束无索引主键用户信息ID具有自动创建的聚集索引。1.6 管理员用户信息表(UserInfo)概述管理员用户信息表用于记录系统管理员的各项资料。表中都记录了管理员的账号和密码,是各用户的详细记录。表定义管理员用户信息表定义如表 02所示。表 02字段类型可否为空备注IDNumeric不否Usernamenvarchar(10)不否Passwdchar(8)不否Typenvarchar(14)不否主键管理员用户信息表的主键是管理员用户ID号,类型为整型,设置自动增量。约束无其他约束。索引主键字段管理员编号具有自动创建的聚集索引。读者类别表(ReaderType)读者类别表用于记录读者信息,包括读者ID、名字等。读者类别表通过读者编号与借书表关联。表定义读者类别表定义如表 03所示。表 03字段类型可否为空备注IDint否Namenvarchar(10)否ReaderIDint 否Canborrowint 可缺勤扣除整型 可其他薪资整型 可主键读者类别表的主键是读者表ID字段,类型为整型,设置自动增量。约束无其他约束。索引主键字段薪资编号具有自动创建的聚集索引。图书信息表(BookInfo)图书信息表用于记录图书信息(图书名称、图书状态等),通过字段图书类别号与图书类别表关联。表定义图书信息表定义如表 04所示。表 04名称类型可否为空备注IDnvarchar(20) 否Namenvarchar(50)否Typeidint 可Statebinary 可Creattimedatetime否Pricemoney可Pressnvarchar(50) 否IsCancellationbinary可IDCancellationint可Notenvarchar(50)可Authornvarchar(10)可Pageint可主键图书信息表的主键是图书编号字段,类型为整型。约束图书信息表中的图书编号不可相同;图书信息表中的状态类型字段只能取“被借”、“续借”、“以还”。索引主键字段考勤编号具有自动创建的聚集索引。图书类别表(BookType) 图书类别表用于记录图书的类别。图书类别表中的基本信息包括:图书的类别、申请状态、借书开始的时间和借书归还的时间等。通过类别ID字段与员工表关联。表定义图书类别表定义如表 05所示。表 05字段类型可否为空备注Typeidint否Typenamenvarchar(50)否主键图书类别表的主键是Typeid字段,类型为整型,设置自动增量。约束请假开始时间应小于请假结束时间;申请状态字段的取值可以是:“已提交”、“已取消”、“已批准”、“已否决”。索引主键字段请假申请编号具有自动创建的聚集索引。1.7 图书库存表(BookStock)概述图书库存表用于图书总库存的记录。库存表中的基本信息包括:库存ID,图书ID。通过字段,图书ID与图书信息表关联。表定义图书库存表定义如表 06所示。表 06字段类型可否为空备注IDint否BookIDnvarchar(20)否主键图书库存表的主键是图书库存ID字段,类型为整型,不设置自动增量。索引主键字段加班申请编号具有自动创建的聚集索引。1.8 借书表(BookBorrowReturn)借书表用于保存借书状态信息。借书表中的基本信息包括:借书表ID标识号、图书编号、证件号、借书时间、还书时间等。通过图书ID编号与图书信息表关联。表定义借书表定义如表 07所示。表 07字段类型可否为空备注IDNumeric 否BookIDnvarchar(20)否CardIDNumeric 可BorrowTimedatetime 否ReturnTimedatetime 否IsReturnnvarchar(10)否主键借书表的主键是图书借书表ID字段,类型为整型,不设置自动增量。约束 还书时间要大于借书时间索引主键字段业绩评定编号具有自动创建的聚集索引。1.9 罚款表(BookFines)概述罚款表对超期或者丢失的书籍进行评定罚款以及记录。表BookFines中的基本信息包括:书籍ID、读者ID、罚款ID等。通过对书籍罚款的记录以及分类,可以清晰的看出书籍的情况。表定义罚款表定义如表 08所示。表 08字段类型可否为空备注IDNumeric 否ReaderIDint可BookIDnvarchar(20)否FinesTimedatetime可FinesAmountmoneyFinesTypenVarchar(10)FinesReasonnVarchar主键系统配置表的主键是罚款ID字段,类型为整型,设置自动增量。约束罚款类别只有三类,0,1,2各为丢失、超期、挂失索引主键字段具有自动创建的聚集索引。1.10 评价表(Evaluate)概述评价表用于保存读者对书籍看法的记录。评价表中的基本信息包括:评价ID、图书ID、书籍ID、评价等。表定义评价表定义如表 09所示。表 09字段类型可否为空备注IDint否BookIDint否ReaderIDnvarchar(20)否Evaluatenvarchar(50)主键评价表的主键是评价编号字段,类型为整型,设置自动增量。约束无其他约束。索引主键字段评价编号具有自动创建的聚集索引。1.11 借阅室表(LendRoom) 概述借阅室表用于将库存书籍分类出若干借阅室的记录。借阅室表的基本信息包括:借阅室编号,借阅室名称、和借阅书架的编号。表定义借阅室表定义如表 010所示。表 010字段类型可否为空备注IDint否Namenvarchar(10)否LendRoomBookIDnvarchar(20)主键借阅室表的主键是借阅室编号字段,类型为整型,设置自动增量。约束无其他约束。索引主键字段借阅室表编号具有自动创建的聚集索引。1.12 借阅室书籍表(LendRoomBook)概述借阅室书籍表用于记录借阅室书籍表类型。借阅室书籍表的基本信息包括:借阅室书籍ID和书籍ID、书籍状态、书籍总和。表定义借阅室书籍表定义如表 011所示。表 011字段类型可否为空备注IDnvarchar(20)否BookIDint否BookCountintBookStatebinary主键借阅室表的主键是借阅室书籍表编号字段,类型为整型,设置自动增量。约束无索引主键字段借阅室书籍表编号具有自动创建的聚集索引。1.13 图书证表(BookCard)概述图书证表用于记录图书证ID信息。图书证表的基本信息包括:图书证表编号、读者编号等。表定义图书证表定义如表 012所示。表 012字段类型可否为空备注IDNumeric 否ReaderIDint 否Borrowedint否主键图书证表的主键是图书证ID编号字段,类型是整型,设置自动增量。约束无。索引主键字段图书证表编号具有自动创建的聚集索引。1.14 留言表(Message)概述留言表用于记录读者对图书和图书馆相关的留言。留言表包含的主要内容有:留言表编号、读者编号。表定义留言表定义如表 013所示。表 013名称类型可否为空说明备注IDint 否业绩评定子项目编号ReaderIDnvarchar(20) 否业绩评定编号detailsnvarchar否项目内容主键留言表编号。约束无其他约束。索引主键字段留言表编号具有自动创建的聚集索引。1.15 系统设置表(SystemSet) 概述系统设置表用于系统各详细设置信息。系统设置表包含的主要内容有:用户权限设置、赔偿价格参照、公告、证件相关各信息和备份恢复等。表定义系统设置表定义如表 013所示。表 014名称类型可否为空说明备注IDint 否UserPermissionSetnvarchar(10) 否Overdatepointmoney否lostPricemoney可RenewTimedatetime可BackupSetdatetimeAnnouncenvarchar(50)CardReCostmoneyCardfillpricemoneyCardReTimedatetimeModifyPersonnvarchar(10)Modifytimedatetime主键系统设置表编号。约束无其他约束。索引主键字段系统设置表编号具有自动创建的聚集索引。1.16 各表SQL代码示例管理员用户信息表(UserInfo)create table UserInfo( ID Numeric identity(1001,1) not null, Username nvarchar(10) not null, Passwd char(8) not null, Type nvarchar(14) check(Type =图书管理员 or Type =系统管理员) not null, constraint pk_UserInfo_id primary key(ID) 读者用户信息表(ReaderInfo)(普通用户)create table ReaderInfo( Username nvarchar(10) not null, ID int not null, Passwd char(8) not null, Name nvarchar(10) not null, Sex char(2) check(Sex =男 or Sex =女)not null, Age int , StuNum Numeric , PlaceStrand nvarchar(50), PlaceClass nvarchar(50), ValidCard nvarchar(50), BookCard nvarchar(10), CreateTime datetime not null, ExpiredTime datetime not null, constraint pk_ReaderInfo_id primary key (ID)读者类别表(ReaderType)Create table ReaderType(ID int ,Name nvarchar(10),ReaderID int not null,Canborrow int,constraint pk_ReaderType_id primary key (ID)alter table ReaderType add constraint fk_ReaderType_ReaderInfo foreign key (ReaderID) references ReaderInfo (ID);*图书信息表(BookInfo)create table BookInfo( ID nvarchar(20) not null, Name nvarchar(50) , Typeid int, State binary , Creattime datetime , Price money , Press nvarchar(50) , IsCancellation binary , IDCancellation int , Note nvarchar(50) , Author nvarchar(10) , Page int , constraint pk_BookInfo_id primary key (ID)alter table BookInfo add constraint fk_BookInfo_BookType foreign key (Typeid) references BookType (Typeid);图书类别表(BookType)create table BookType( Typeid int , Typename nvarchar(50), constraint pk_BookType_id primary key(Typeid)图书库存表(BookStock)Create table BookStock( ID int , BookID nvarchar(20) not null,constraint pk_BookStock_id primary key (ID) alter table BookStock add constraint fk_BookStock_BookInfo foreign key (BookID) references BookInfo (ID);借书表(BookBorrow)create table BookBorrow( ID Numeric, BookID nvarchar(20), CardID Numeric, BorrowTime datetime, ReturnTime datetime, IsReturn nvarchar(10),constraint pk_BookBorrow_id primary key (ID)alter table BookBorrow add constraint fk_BookBorrow_BookInfo foreign key (BookID) references BookInfo (ID);罚款表(BookFines)create table BookFines( ID Numeric not null, ReaderID int not null, BookID nvarchar(20) not null, FinesTime datetime , FinesAmount money , FinesType nVarchar(10) , FinesReason nVarchar(50) ,constraint pk_BookFines_id primary key (ID)alter table BookFines add constraint fk_BookFines_ReaderInfo foreign key (ReaderID) references ReaderInfo (ID);alter table BookFines add constraint fk_BookFines_BookInfo foreign key (BookID) references BookInfo (ID);评价表(Evaluate)create table Evaluate( ID int not null, BookID int not null, ReaderID nvarchar(20) not null, Evaluate nvarchar(50),constraint pk_Evaluate_id primary key (ID) )alter table Evaluate add constraint fk_Evaluate_ReaderInfo foreign key (ReaderID) references ReaderInfo (ID);alter table Evaluate add constraint fk_Evaluate_BookInfo foreign key (BookID) references ReaderInfo (ID);借阅室表LendRoom( ID int , Name nvarchar(10), LendRoomBookID nvarchar(20) ,constraint pk_LendRoom_id primary key (ID)alter table LendRoom add constraint fk_LendRoom_LendRoomBook foreign key (BookID) references BookInfo (BookID);借阅室书籍表LendRoomBookCreate table LendRoomBook( ID nvarchar(20) not null, BookID int not null, BookCount int , BookState binary ,constraint pk_LendRoomBook_id primary key (ID)alter table LendRoomBook add constraint fk_LendRoomBook_BookInfo foreign key (BookID) references BookInfo (ID);图书证表BookCardCreate table BookCard( ID Numeric , ReaderID int not null, Borrowed int ,constraint pk_BookCard_id primary key (ID)alter table BookCard add constraint fk_BookCard_ReaderInfo foreign key (ReaderID) references ReaderInfo (ID);留言表Messagecreate table Msssage( ID int , ReaderID nvarchar(20) not null, details nvarchar(50) not null, constraint pk_Msssage_id primary key (ID)alter table Msssage add constraint fk_Msssage_ReaderInfo foreign key (ReaderID) references ReaderInfo (ID);系统设置表SystemSetCreate table SystemSet(ID intUserPermissionSet nvarchar(10)Overdatepoint moneylostPrice moneyRenewTime datetimeBackupSet datetimeAnnounce nvarchar(50)CardReCost moneyCardfillprice moneyCardReTime datetimeModifyPerson nvarchar(10)Modifytime datetime constraint pk_SystemSet_id primary key (ID) 视图1.17 系统设置表(SystemSet) 概述l 此视图通过左外连接员工和部门表得到了员工的详细信息,其中包括员工的基本信息、员工的部门信息和员工经理信息。l Web用户具有查看的权限。基表l BookInfol LendRoomBook视图包含字段l dbo.BookInfo.IDl dbo.BookInfo.Namel dbo.LendRoomBook.Timesl dbo.BookInfo.Typeidl dbo.BookInfo.Pricel dbo.BookInfo.Pressl dbo.BookInfo.Notel dbo.BookInfo.Authorl dbo.BookInfo.Statel dbo.BookInfo.Pagel dbo.BookInfo.Creattime代码示例:SELECT dbo.BookInfo.ID, dbo.BookInfo.Name, dbo.LendRoomBook.Times, dbo.BookInfo.Typeid, dbo.BookInfo.Price, dbo.BookInfo.Press, dbo.BookInfo.Note, dbo.BookInfo.Author, dbo.BookInfo.State, dbo.BookInfo.Page, dbo.BookInfo.CreattimeFROM dbo.BookInfo INNER JOIN dbo.LendRoomBook ON dbo.BookInfo.ID = dbo.LendRoomBook.BookID存储过程1.18 数据库备份概述l 系统备份到D盘USE LMS_xiliGO/* Object: StoredProcedure dbo.backup00 Script Date: 06/17/2011 08:53:13 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER proc dbo.backup00as BACKUP DATABASE LMS_xili TO DISK = d:dbBackTest.bak1.19 数据库还原l 系统从D盘备份中还原数据库USE LMS_xiliGO/* Object: StoredProcedure dbo.restore00 Script Date: 06/17/2011 08:53:22 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER proc dbo.restore00as restore DATABASE LMS_xili from DISK = d:dbBackTest.bak1.20 清空表l 清空bookborrowreturn这张表USE LMS_xiliGO/* Object: StoredProcedure dbo.sp_clearBookBorrowReturn Script Date: 06/17/2011 08:53:29 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER proc dbo.sp_clearBookBorrowReturnastruncate table BookBorrowReturn1.21 清空表l 清空BookInfo这张表USE LMS_xiliGO/* Object: StoredProcedure dbo.sp_clearBookInfo Script Date: 06/17/2011 08:53:35 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER proc dbo.sp_clearBookInfoastruncate table BookInfo1.22 清空表l 清空LendRoomBook这张表USE LMS_xiliGO/* Object: StoredProcedure dbo.sp_clearLend Script Date: 06/17/2011 08:53:44 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER proc dbo.sp_clearLendastruncate table LendRoomBook1.23 清空表l 清空ReaderInfo这张表USE LMS_xiliGO/* Object: StoredProcedure dbo.sp_clearReaderInfo Script Date: 06/17/2011 08:53:50 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER proc dbo.sp_clearReaderInfoastruncate table ReaderInfo触发器1.24 向公告表中插入数据则自动修改其字段状态概述 当向announce表中插入数据时,修改其另一字段状态为1触发器影响范围公告表USE LMS_xiliGO/* Object: Trigger dbo.an_update Script Date: 06/17/2011 08:54:41 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER trigger dbo.an_update on dbo.Announcefor insert as declare id intbeginselect id = id from inserted;update announce set pustate = 0 where id = id - 1 ;end1.25 借书表中插入数据则更新借书书架上书的状态概述 当向借书表中插入数据时,则表示书本被借,这时修改被借书书架上书籍的状态从0到1触发器影响范围BookBorrowReturn/LendroombookUSE LMS_xiliGO/* Object: Trigger dbo.aaa Script Date: 06/17/2011 08:55:14 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER trigger dbo.aaa on dbo.BookBorrowReturnfor insertASdeclare bookid numeric(18, 0) beginselect bookid = bookid from inserted;update Lendroombook set LendRoomBook.BookState = 1 where LendRoomBook.BookID =(select BookID from inserted);END1.26 还书表中插入数据则更新借书书架上书的状态概述 当向还书表中插入数据时,则表示书本已归还,这时修改被还书书架上书籍的状态从1到0触发器影响范围BookBorrowReturn/lendroombookUSE LMS_xiliGO/* Object: Trigger dbo.lrstate Script Date: 06/17/2011 08:55:22 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER trigger dbo.lrstate on dbo.BookBorrowReturnfor updateas declare bookid numeric(18, 0) beginselect bookid = bookid from inserted;update lendroombook set lendroombook.bookstate = 0where lendroombook.bookid=(select bookid from BookBorrowReturn where BookBorrowReturn.state = 0 and BookBorrowReturn.bookid=bookid) ;End1.27 还书表中插入数据则更新借书书架上书的状态概述 当向还书表中插入数据时,则表示书本已归还,这时修改被还书书架上书籍的状态从1到0触发器影响范围BookBorrowReturn/lendroombook USE LMS_xiliGO/* Object: Trigger dbo.lrstate1 Script Date: 06/17/2011 08:55:28 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER trigger dbo.lrstate1 on dbo.BookBorrowReturnfor updateas declare bookid numeric(18, 0) beginselect bookid = bookid from deleted;update lendroombook set lendroombook.bookstate = 0where lendroombook.bookid = bookid ;End1.28 还书表中插入数据则更借书证表的状态概述 当向还书表中插入数据时,则表示书本已归还,这时修改借书证被借触发器影响范围BookBorrowReturn/bookcardUSE LMS_xiliGO/* Object: Trigger dbo.xxx1 Script Date: 06/17/2011 08:55:34 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER trigger dbo.xxx1 on dbo.BookBorrowReturn for insertas declare cardid numeric(18, 0)beginselect cardid = cardid from inserted;update bookcard set bookcard.borrowed = bookcard.borrowed

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论