文档内容
修正&标记表
文档变更历史
日期 作者 版本 变更描述
2011-05-28 舒睿 V01 数据库说明书创建
2011-06-13 舒睿 V01.1 数据库各表功能说明创建
2011-06-20 舒睿 V02 数据库各项细节功能完成
审核结果
审核人 通过版本 审核认职位 日期
文档属性
项目 描述
文档名称 功能说明书
作者 舒睿
创建日期 5/28/2011
最后更新日期
1.1目的
本文为图书馆管理课程设计SQL Server功能规范说明书。本说明书将:
描述数据库设计的目的
说明数据库设计中的主要组成部分
说明数据库设计中各功能的实现
1.2内容
本文档主要内容包括对数据库设计结构的总体描述,对数据库中各种对象的描述(包括
对象的名称、对象的属性、对象和其他对象直接的关系)。本文档中包含对以下数据库内容的
描述:
数据表
视图
存储过程
触发器
约束
在数据库主要对象之外,本文还将描述数据库安全性设置、数据库属性设置和数据库备
份策略,为数据库管理员维护数据库安全稳定地运行提供参考。1.3与其他项目的关联
本项目的数据库设计与本项目(Web部分和Windows部分)功能密切相关。本案例项目
的数据库将按照项目程序部分的功能需求而设计,数据库设计将配合设计案例的程序部分,
以实现一个功能完备的真实环境内的应用。
表
1.4表设计概述
根据设计的系统功能,数据库将以图书信息为中心存储相关数据,配合 SQL Server 数
据库系统中提供的数据管理,实现图书的借阅、归还、续借及系统设置等业务功能。
数据库设计将以存储读者信息的读者表为基础,连接多张相关表以实现对以下关系的
支持:
读者借书记录
读者还书记录
读者续借记录
读者罚款记录
读者对图书的评价
读者对图书和图书馆的建议及留言
数据库系统主要的实体关系如图 0-1所示。图 0-11.5读者用户信息表(ReaderInfo)
概述
读者用户信息表用于记录读者基本信息,并作为基础表与其他表连接。
表定义
读者用户信息表定义如表 0-1所示。
表 0-1
字段 类型 可否为空 备注
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)
概述
管理员用户信息表用于记录系统管理员的各项资料。表中都记录了管理员的账号和密
码,是各用户的详细记录。。
表定义
管理员用户信息表定义如表 0-2所示。
表 0-2
字段 类型 可否为空 备注
ID Numeric 不否
Username nvarchar(10) 不否
Passwd char(8) 不否
Type nvarchar(14) 不否
主键
管理员用户信息表的主键是管理员用户ID号,类型为整型,设置自动增量。
约束
无其他约束。
索引
主键字段管理员编号具有自动创建的聚集索引。读者类别表(ReaderType)
读者类别表用于记录读者信息,包括读者ID、名字等。读者类别表通过读者编号与借书
表关联。
表定义
读者类别表定义如表 0-3所示。
表 0-3
字段 类型 可否为空 备注
ID int 否
Name nvarchar(10) 否
ReaderID int 否
Canborrow int 可
缺勤扣除 整型 可
其他薪资 整型 可
主键
读者类别表的主键是读者表ID字段,类型为整型,设置自动增量。
约束
无其他约束。
索引
主键字段薪资编号具有自动创建的聚集索引。
图书信息表(BookInfo)
图书信息表用于记录图书信息(图书名称、图书状态等),通过字段图书类别号与图书类
别表关联。表定义
图书信息表定义如表 0-4所示。
表 0-4
名称 类型 可否为空 备注
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字段与员工表关联。表定义
图书类别表定义如表 0-5所示。
表 0-5
字段 类型 可否为空 备注
Typeid int 否
Typename nvarchar(50) 否
主键
图书类别表的主键是Typeid字段,类型为整型,设置自动增量。
约束
请假开始时间应小于请假结束时间;申请状态字段的取值可以是:“已提交”、“已取
消”、“已批准”、“已否决”。
索引
主键字段请假申请编号具有自动创建的聚集索引。
1.7图书库存表(BookStock)
概述
图书库存表用于图书总库存的记录。库存表中的基本信息包括:库存ID,图书ID。通过
字段,图书ID与图书信息表关联。
表定义
图书库存表定义如表 0-6所示。
表 0-6
字段 类型 可否为空 备注ID int 否
BookID nvarchar(20) 否
主键
图书库存表的主键是图书库存ID字段,类型为整型,不设置自动增量。
索引
主键字段加班申请编号具有自动创建的聚集索引。
1.8借书表(BookBorrowReturn)
借书表用于保存借书状态信息。借书表中的基本信息包括:借书表ID标识号、图书编号、
证件号、借书时间、还书时间等。通过图书ID编号与图书信息表关联。
表定义
借书表定义如所示。
表 0-7
字段 类型 可否为空 备注
ID Numeric 否
BookID nvarchar(20) 否
CardID Numeric 可
BorrowTime datetime 否
ReturnTime datetime 否
IsReturn nvarchar(10) 否
主键
借书表的主键是图书借书表ID字段,类型为整型,不设置自动增量。
约束
还书时间要大于借书时间索引
主键字段业绩评定编号具有自动创建的聚集索引。
1.9罚款表(BookFines)
概述
罚款表对超期或者丢失的书籍进行评定罚款以及记录。表BookFines中的基本信息包括:
书籍ID、读者ID、罚款ID等。通过对书籍罚款的记录以及分类,可以清晰的看出书籍的情况。
表定义
罚款表定义如表 0-8所示。
表 0-8
字段 类型 可否为空 备注
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、评价等。
表定义
评价表定义如表 0-9所示。
表 0-9
字段 类型 可否为空 备注
ID int 否
BookID int 否
ReaderID nvarchar(20) 否
Evaluate nvarchar(50)
主键
评价表的主键是评价编号字段,类型为整型,设置自动增量。
约束
无其他约束。
索引
主键字段评价编号具有自动创建的聚集索引。1.11 借阅室表(LendRoom)
概述
借阅室表用于将库存书籍分类出若干借阅室的记录。借阅室表的基本信息包括:借阅室
编号,借阅室名称、和借阅书架的编号。
表定义
借阅室表定义如表 0-10所示。
表 0-10
字段 类型 可否为空 备注
ID int 否
Name nvarchar(10) 否
LendRoomBookID nvarchar(20)
主键
借阅室表的主键是借阅室编号字段,类型为整型,设置自动增量。
约束
无其他约束。
索引
主键字段借阅室表编号具有自动创建的聚集索引。1.12 借阅室书籍表(LendRoomBook)
概述
借阅室书籍表用于记录借阅室书籍表类型。借阅室书籍表的基本信息包括:借阅室书籍
ID和书籍ID、书籍状态、书籍总和。
表定义
借阅室书籍表定义如表 0-11所示。
表 0-11
字段 类型 可否为空 备注
ID nvarchar(20) 否
BookID int 否
BookCount int
BookState binary
主键
借阅室表的主键是借阅室书籍表编号字段,类型为整型,设置自动增量。。
约束
无
索引
主键字段借阅室书籍表编号具有自动创建的聚集索引。1.13 图书证表(BookCard)
概述
图书证表用于记录图书证ID信息。图书证表的基本信息包括:图书证表编号、读者编号
等。
表定义
图书证表定义如表 0-12所示。
表 0-12
字段 类型 可否为空 备注
ID Numeric 否
ReaderID int 否
Borrowed int 否
主键
图书证表的主键是图书证ID编号字段,类型是整型,设置自动增量。
约束
无。
索引
主键字段图书证表编号具有自动创建的聚集索引。1.14 留言表(Message)
概述
留言表用于记录读者对图书和图书馆相关的留言。留言表包含的主要内容有:留言表编
号、读者编号。
表定义
留言表定义如表 0-13所示。
表 0-13
名称 类型 可否为空 说明 备注
ID int 否 业绩评定子项目
编号
ReaderID nvarchar(20) 否 业绩评定编号
details nvarchar 否 项目内容
主键
留言表编号。
约束
无其他约束。
索引
主键字段留言表编号具有自动创建的聚集索引。1.15 系统设置表(SystemSet)
概述
系统设置表用于系统各详细设置信息。系统设置表包含的主要内容有:用户权限设置、
赔偿价格参照、公告、证件相关各信息和备份恢复等。
表定义
系统设置表定义如表 0-13所示。
表 0-14
名称 类型 可否为空 说明 备注
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 Evaluateadd 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)
概述
此视图通过左外连接员工和部门表得到了员工的详细信息,其中包括员工的基本信息、
员工的部门信息和员工经理信息。
Web用户具有查看的权限。
基表
BookInfo
LendRoomBook
视图包含字段
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
代码示例:
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 数据库备份
概述
系统备份到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 数据库还原
系统从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 清空表
清空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 清空表
清空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 清空表
清空LendRoomBook这张表
USE [LMS_xili]
GO
/****** Object: StoredProcedure [dbo].[sp_clearLend] Script Date: 06/17/2011 08:53:44
******/
SET ANSI_NULLS ONGO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[sp_clearLend]
as
truncate table LendRoomBook
1.23 清空表
清空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);
END1.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].[lrstate1] Script Date: 06/17/2011 08:55:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[lrstate1] on [dbo].[BookBorrowReturn]
for update
as
declare @bookid numeric(18, 0)
begin
select @bookid = bookid from deleted;
update lendroombook set lendroombook.bookstate = 0
where lendroombook.bookid = @bookid ;
End
1.28 还书表中插入数据则更借书证表的状态
概述
当向还书表中插入数据时,则表示书本已归还,这时修改借书证被借
触发器影响范围
BookBorrowReturn/bookcard
USE [LMS_xili]
GO
/****** Object: Trigger [dbo].[xxx1] Script Date: 06/17/2011 08:55:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[xxx1] on [dbo].[BookBorrowReturn]
for insertas
declare @cardid numeric(18, 0)
begin
select @cardid = cardid from inserted;
update bookcard set bookcard.borrowed = bookcard.borrowed + 1 where id = @cardid;
end
1.29 借书表中插入数据则更新书籍表中书籍状态
概述
当向借书表中插入数据时,则表示书本已借出,这时修改书籍信息中书籍的状态为1表示被
借
触发器影响范围
LendRoomBook/bookinfo
USE [LMS_xili]
GO
/****** Object: Trigger [dbo].[lraddbook] Script Date: 06/17/2011 08:56:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[lraddbook] on [dbo].[LendRoomBook]
for insert
as
declare @bookid numeric(18, 0)
begin
select @bookid = bookid from inserted;
update bookinfo set bookinfo.state = 1 where bookinfo.id=@bookid;
End1.30 借书室书籍表中更新数据则更新借书室书籍表书籍时
间字段借阅时间增加
概述
当对借书室书籍表做更新时,则表示书本续借,这时修改借阅室书籍表书籍的借阅时间点+1
表示被续借
触发器影响范围
LendRoomBook
USE [LMS_xili]
GO
/****** Object: Trigger [dbo].[lrtime] Script Date: 06/17/2011 08:56:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[lrtime] on [dbo].[LendRoomBook]
for update
as
declare @bookid numeric(18, 0)
begin
select @bookid = bookid from inserted;
update lendroombook set lendroombook.times =( lendroombook.times + 1)
where lendroombook.bookstate=1 and lendroombook.bookid=@bookid
End
数据库安全性
1.31 概述
基于项目特点,教学案例项目的安全控制主要由程序代码控制。SQL Server 端不特殊地设定安全设置和检查。项目的用户身份验证、用户授权管理都由应用程序代码实现。
1.32 数据库验证方式
应用程序端连接数据库时使用的数据库验证方式为SQL Server验证。数据库连接串将
使用CAPICOM技术加密存储在系统配置文件中。
数据库管理和设置
1.33 概述
本节内容与数据库功能无关,将从教学案例系统的数据库运行角度出发,对本数据库的
属性设置和备份恢复策略提出指导性说明。
1.34 数据库备份恢复策略
数据库的大小和数据修改的频率决定了采用何种数据库备份恢复策略。如果数据库较
小或修改的频度非常低,则可以只实施完全数据库备份,不过此时要定期清理数据库的事务
日志,防止数据库的事务日志被填满。其他情况则需要使用差异备份。该课程设计涉及的数
据库规模较小,建议每周做一次完全备份,中间间隔两天做一次差异备份。
1.35 数据库运行日常维护
SQL Server 的一个优势就是对日常维护的要求比较低,但为了追求更高的可用性和安
全性,建议每周做备份,同时注意将备份放在不同的备份媒体中,如多个硬盘。