收藏 分销(赏)

软件开发文档:数据库详细设计说明书.docx

上传人:唯嘉 文档编号:9952114 上传时间:2025-04-14 格式:DOCX 页数:29 大小:113.87KB
下载 相关 举报
软件开发文档:数据库详细设计说明书.docx_第1页
第1页 / 共29页
软件开发文档:数据库详细设计说明书.docx_第2页
第2页 / 共29页
点击查看更多>>
资源描述
修正&标记表 文档变更历史 日期 作者 版本 变更描述 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所示。 图 01 1.5 读者用户信息表(ReaderInfo) 概述 读者用户信息表用于记录读者基本信息,并作为基础表与其他表连接。 表定义 读者用户信息表定义如表 01所示。 表 01 字段 类型 可否为空 备注 Username nvarchar(10) 否 ID int 否 Passwd char(8) 否 Name nvarchar(10) 可 Sex char(2) 否 Age int 可 StuNum Numeric 可 PlaceStrand nvarchar(50) 可 PlaceClass nvarchar 可 ValidCard nvarchar(50) 否 BookCard nvarchar(10) 可 CreateTime datetime 可 ExpiredTime datetime 可 主键 读者用户信息表的主键是读者用户信息表编号字段,类型为整型,设置自动增量。 。 约束 无 索引 主键用户信息ID具有自动创建的聚集索引。 1.6 管理员用户信息表(UserInfo) 概述 管理员用户信息表用于记录系统管理员的各项资料。表中都记录了管理员的账号和密码,是各用户的详细记录。。 表定义 管理员用户信息表定义如表 02所示。 表 02 字段 类型 可否为空 备注 ID Numeric 不否 Username nvarchar(10) 不否 Passwd char(8) 不否 Type nvarchar(14) 不否 主键 管理员用户信息表的主键是管理员用户ID号,类型为整型,设置自动增量。 约束 无其他约束。 索引 主键字段管理员编号具有自动创建的聚集索引。 读者类别表(ReaderType) 读者类别表用于记录读者信息,包括读者ID、名字等。读者类别表通过读者编号与借书表关联。 表定义 读者类别表定义如表 03所示。 表 03 字段 类型 可否为空 备注 ID int 否 Name nvarchar(10) 否 ReaderID int 否 Canborrow int 可 缺勤扣除 整型 可 其他薪资 整型 可 主键 读者类别表的主键是读者表ID字段,类型为整型,设置自动增量。 约束 无其他约束。 索引 主键字段薪资编号具有自动创建的聚集索引。 图书信息表(BookInfo) 图书信息表用于记录图书信息(图书名称、图书状态等),通过字段图书类别号与图书类别表关联。 表定义 图书信息表定义如表 04所示。 表 04 名称 类型 可否为空 备注 ID nvarchar(20) 否 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 可 主键 图书信息表的主键是图书编号字段,类型为整型。 约束 图书信息表中的图书编号不可相同;图书信息表中的状态类型字段只能取“被借”、“续借”、“以还”。 索引 主键字段考勤编号具有自动创建的聚集索引。 图书类别表(BookType) 图书类别表用于记录图书的类别。图书类别表中的基本信息包括:图书的类别、申请状态、借书开始的时间和借书归还的时间等。通过类别ID字段与员工表关联。 表定义 图书类别表定义如表 05所示。 表 05 字段 类型 可否为空 备注 Typeid int 否 Typename nvarchar(50) 否 主键 图书类别表的主键是Typeid字段,类型为整型,设置自动增量。 约束 请假开始时间应小于请假结束时间;申请状态字段的取值可以是:“已提交”、“已取消”、“已批准”、“已否决”。 索引 主键字段请假申请编号具有自动创建的聚集索引。 1.7 图书库存表(BookStock) 概述 图书库存表用于图书总库存的记录。库存表中的基本信息包括:库存ID,图书ID。通过字段,图书ID与图书信息表关联。 表定义 图书库存表定义如表 06所示。 表 06 字段 类型 可否为空 备注 ID int 否 BookID nvarchar(20) 否 主键 图书库存表的主键是图书库存ID字段,类型为整型,不设置自动增量。 索引 主键字段加班申请编号具有自动创建的聚集索引。 1.8 借书表(BookBorrowReturn) 借书表用于保存借书状态信息。借书表中的基本信息包括:借书表ID标识号、图书编号、证件号、借书时间、还书时间等。通过图书ID编号与图书信息表关联。 表定义 借书表定义如 表 07所示。 表 07 字段 类型 可否为空 备注 ID Numeric 否 BookID nvarchar(20) 否 CardID Numeric 可 BorrowTime datetime 否 ReturnTime datetime 否 IsReturn nvarchar(10) 否 主键 借书表的主键是图书借书表ID字段,类型为整型,不设置自动增量。 约束 还书时间要大于借书时间 索引 主键字段业绩评定编号具有自动创建的聚集索引。 1.9 罚款表(BookFines) 概述 罚款表对超期或者丢失的书籍进行评定罚款以及记录。表BookFines中的基本信息包括:书籍ID、读者ID、罚款ID等。通过对书籍罚款的记录以及分类,可以清晰的看出书籍的情况。 表定义 罚款表定义如表 08所示。 表 08 字段 类型 可否为空 备注 ID Numeric 否 ReaderID int 可 BookID nvarchar(20) 否 FinesTime datetime 可 FinesAmount money FinesType nVarchar(10) FinesReason nVarchar 主键 系统配置表的主键是罚款ID字段,类型为整型,设置自动增量。 约束 罚款类别只有三类,0,1,2各为丢失、超期、挂失 索引 主键字段具有自动创建的聚集索引。 1.10 评价表(Evaluate) 概述 评价表用于保存读者对书籍看法的记录。评价表中的基本信息包括:评价ID、图书ID、书籍ID、评价等。 表定义 评价表定义如表 09所示。 表 09 字段 类型 可否为空 备注 ID int 否 BookID int 否 ReaderID nvarchar(20) 否 Evaluate nvarchar(50) 主键 评价表的主键是评价编号字段,类型为整型,设置自动增量。 约束 无其他约束。 索引 主键字段评价编号具有自动创建的聚集索引。 1.11 借阅室表(LendRoom) 概述 借阅室表用于将库存书籍分类出若干借阅室的记录。借阅室表的基本信息包括:借阅室编号,借阅室名称、和借阅书架的编号。 表定义 借阅室表定义如表 010所示。 表 010 字段 类型 可否为空 备注 ID int 否 Name nvarchar(10) 否 LendRoomBookID nvarchar(20) 主键 借阅室表的主键是借阅室编号字段,类型为整型,设置自动增量。 约束 无其他约束。 索引 主键字段借阅室表编号具有自动创建的聚集索引。 1.12 借阅室书籍表(LendRoomBook) 概述 借阅室书籍表用于记录借阅室书籍表类型。借阅室书籍表的基本信息包括:借阅室书籍ID和书籍ID、书籍状态、书籍总和。 表定义 借阅室书籍表定义如表 011所示。 表 011 字段 类型 可否为空 备注 ID nvarchar(20) 否 BookID int 否 BookCount int BookState binary 主键 借阅室表的主键是借阅室书籍表编号字段,类型为整型,设置自动增量。。 约束 无 索引 主键字段借阅室书籍表编号具有自动创建的聚集索引。 1.13 图书证表(BookCard) 概述 图书证表用于记录图书证ID信息。图书证表的基本信息包括:图书证表编号、读者编号等。 表定义 图书证表定义如表 012所示。 表 012 字段 类型 可否为空 备注 ID Numeric 否 ReaderID int 否 Borrowed int 否 主键 图书证表的主键是图书证ID编号字段,类型是整型,设置自动增量。 约束 无。 索引 主键字段图书证表编号具有自动创建的聚集索引。 1.14 留言表(Message) 概述 留言表用于记录读者对图书和图书馆相关的留言。留言表包含的主要内容有:留言表编号、读者编号。 表定义 留言表定义如表 013所示。 表 013 名称 类型 可否为空 说明 备注 ID int 否 业绩评定子项目编号 ReaderID nvarchar(20) 否 业绩评定编号 details nvarchar 否 项目内容 主键 留言表编号。 约束 无其他约束。 索引 主键字段留言表编号具有自动创建的聚集索引。 1.15 系统设置表(SystemSet) 概述 系统设置表用于系统各详细设置信息。系统设置表包含的主要内容有:用户权限设置、赔偿价格参照、公告、证件相关各信息和备份恢复等。 表定义 系统设置表定义如表 013所示。 表 014 名称 类型 可否为空 说明 备注 ID int 否 UserPermissionSet nvarchar(10) 否 Overdatepoint money 否 lostPrice money 可 RenewTime datetime 可 BackupSet datetime Announce nvarchar(50) CardReCost money Cardfillprice money CardReTime datetime ModifyPerson nvarchar(10) Modifytime datetime 主键 系统设置表编号。 约束 无其他约束。 索引 主键字段系统设置表编号具有自动创建的聚集索引。 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); 借阅室书籍表LendRoomBook Create 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); 图书证表BookCard Create 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); 留言表Message create 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); 系统设置表SystemSet Create table SystemSet ( ID int UserPermissionSet nvarchar(10) Overdatepoint money lostPrice money RenewTime datetime BackupSet datetime Announce nvarchar(50) CardReCost money Cardfillprice money CardReTime datetime ModifyPerson nvarchar(10) Modifytime datetime constraint pk_SystemSet_id primary key (ID) ) 视图 1.17 系统设置表(SystemSet) 概述 l 此视图通过左外连接员工和部门表得到了员工的详细信息,其中包括员工的基本信息、员工的部门信息和员工经理信息。 l Web用户具有查看的权限。 基表 l BookInfo l LendRoomBook 视图包含字段 l dbo.BookInfo.ID l dbo.BookInfo.Name l dbo.LendRoomBook.Times l dbo.BookInfo.Typeid l dbo.BookInfo.Price l dbo.BookInfo.Press l dbo.BookInfo.Note l dbo.BookInfo.Author l dbo.BookInfo.State l dbo.BookInfo.Page l 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.Creattime FROM dbo.BookInfo INNER JOIN dbo.LendRoomBook ON dbo.BookInfo.ID = dbo.LendRoomBook.BookID 存储过程 1.18 数据库备份 概述 l 系统备份到D盘 USE [LMS_xili] GO /****** Object: StoredProcedure [dbo].[backup00] Script Date: 06/17/2011 08:53:13 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[backup00] as BACKUP DATABASE LMS_xili TO DISK = 'd:\dbBackTest.bak' 1.19 数据库还原 l 系统从D盘备份中还原数据库 USE [LMS_xili] GO /****** Object: StoredProcedure [dbo].[restore00] Script Date: 06/17/2011 08:53:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[restore00] as restore DATABASE LMS_xili from DISK = 'd:\dbBackTest.bak' 1.20 清空表 l 清空bookborrowreturn这张表 USE [LMS_xili] GO /****** Object: StoredProcedure [dbo].[sp_clearBookBorrowReturn] Script Date: 06/17/2011 08:53:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[sp_clearBookBorrowReturn] as truncate table BookBorrowReturn 1.21 清空表 l 清空BookInfo这张表 USE [LMS_xili] GO /****** Object: StoredProcedure [dbo].[sp_clearBookInfo] Script Date: 06/17/2011 08:53:35 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[sp_clearBookInfo] as truncate table BookInfo 1.22 清空表 l 清空LendRoomBook这张表 USE [LMS_xili] GO /****** Object: StoredProcedure [dbo].[sp_clearLend] Script Date: 06/17/2011 08:53:44 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[sp_clearLend] as truncate table LendRoomBook 1.23 清空表 l 清空ReaderInfo这张表 USE [LMS_xili] GO /****** Object: StoredProcedure [dbo].[sp_clearReaderInfo] Script Date: 06/17/2011 08:53:50 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[sp_clearReaderInfo] as truncate table ReaderInfo 触发器 1.24 向公告表中插入数据则自动修改其字段状态 概述 当向announce表中插入数据时,修改其另一字段状态为1 触发器影响范围 公告表 USE [LMS_xili] GO /****** Object: Trigger [dbo].[an_update] Script Date: 06/17/2011 08:54:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER trigger [dbo].[an_update] on [dbo].[Announce] for insert as declare @id int begin select @id = id from inserted; update announce set pustate = 0 where id = @id - 1 ; end 1.25 借书表中插入数据则更新借书书架上书的状态 概述 当向借书表中插入数据时,则表示书本被借,这时修改被借书书架上书籍的状态从0到1 触发器影响范围 BookBorrowReturn/Lendroombook USE [LMS_xili] GO /****** Object: Trigger [dbo].[aaa] Script Date: 06/17/2011 08:55:14 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER trigger [dbo].[aaa] on [dbo].[BookBorrowReturn] for insert AS declare @bookid numeric(18, 0) begin select @bookid = bookid from inserted; update Lendroombook set LendRoomBook.BookState = 1 where LendRoomBook.BookID = (select BookID from inserted); END 1.26 还书表中插入数据则更新借书书架上书的状态 概述 当向还书表中插入数据时,则表示书本已归还,这时修改被还书书架上书籍的状态从1到0 触发器影响范围 BookBorrowReturn/lendroombook USE [LMS_xili] GO /****** Object: Trigger [dbo].[lrstate] Script Date: 06/17/2011 08:55:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER trigger [dbo].[lrstate] on [dbo].[BookBorrowReturn] for update as declare @bookid numeric(18, 0) begin select @bookid = bookid from inserted; update lendroombook set lendroombook.bookstate = 0 where lendroombook.bookid=(select bookid from BookBorrowReturn where BookBorrowReturn.state = 0 and BookBorrowReturn.bookid=@bookid) ; End 1.27 还书表中插入数据则更新借书书架上书的状态 概述 当向还书表中插入数据时,则表示书本已归还,这时修改被还书书架上书籍的状态从1到0 触发器影响范围 BookBorrowReturn/lendroombook USE [LMS_xili] GO /****** Object: Trigger [dbo].[l
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 软件工程

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服