图书管理系统数据库设计说明书.docx
《图书管理系统数据库设计说明书.docx》由会员分享,可在线阅读,更多相关《图书管理系统数据库设计说明书.docx(17页珍藏版)》请在冰豆网上搜索。
图书管理系统数据库设计说明书
数据库设计说明书
文档标识:
LMS_07
当前版本:
1.0
当前状态:
草稿
发布日期:
发布
修改历史
日期
版本
作者
修改内容
评审号
变更控制号
2011-11-24
1.0
1引言
编写目的
●本文档主要详细描述了图书管理系统的整个数据库设计,便于开发人员与维护人员的工作,是系统升级的重要参考资料。
背景
●待开发的数据库:
librarymanagement
●开发数据库的软禁系统:
MySQL5.1
客户端连接工具:
NavicatforMySQL
●软件开发项目的任务提出者:
朱微
●软件开发的用户:
厦门理工学院的学生
●数据库负责人员:
卢苑玲
定义
LSMLibraryManagerSystem:
图书管理系统;
●数据选项约束表:
用于为其他数据表中的字符型字段提供限定的选项。
●实体表:
用户实际使用的客观表格.
●计算表:
数据来自于对其他一个或多个实体表的计算结果
参考资料
●本项目的《图书管理系统的用户需求说明书》。
●本项目的《图书管理系统的系统需求说明书》
2外部设计
标识符
数据库标示符:
librarymanagement
用户名:
root
密码:
权限:
全部
有效时间:
开发阶段
说明:
系统正式发布后,可能更改数据库用户/密码。
使用它的程序
应用程序的名称:
MySQl,NavicatforMySQL,MyEclipse
约定
所有数据项都用英语单词或单词的部分表示。
每个表都有唯一标示这段id及主键
字符集采用UTF-8,请注意字符的转换。
支持软件
数据设计编辑工具“NavicatforMySQL”。
数据库自带工具(cmd环境)“MySQLCommandLineClient”
管理员工具:
NavicatforMySQL
查询浏览工具:
NavicatforMySQL
命令行工具:
mysql
开发客户端:
NavicatforMySQL
3结构设计
系统数据分布
本系统在校内网及外网使用,所有数据都放在学校的web服务器上
根据我校图书管理的要求,通过对图书管理工作过程的内容和数据流程分析,设计如下面的主要数据项和数据结构:
(1)图书基本信息:
包括编号,图书类别编号,图书编号,作者,书名,出版社,价格,页码,总数,翻译者
(2)借还基本信息:
包括编号,借还编号,借书时间,归还时间,借还情况,读者编号
(3)图书馆基本信息:
包括编号,名称,馆长,电话,地址,邮箱,图书馆网址,建馆时间,基本信息
(4)图书类型基本信息:
包括编号,类型名称,可借阅天数
(5)参数设置基本信息:
包括编号,办证费,有效日期
(6)人员基本信息:
包括编号,人员编号,用户名,密码
(7)读者基本信息:
包括编号,读者编号,姓名,性别,类型编号,职业,生日,证件类型,证件号码,电话,邮箱,管理员,备注
(8)读者类型基本信息:
包括编号,类型名称,可借阅数量
(9)用户基本信息:
包括编号,用户名,密码,真实姓名,权限
概念结构设
根据上面的做的数据项和数据结构和它们之间的关系,设计规划出来的实体有:
系统登陆和首页,系统设置,读者管理,图书管理,图书借还,系统查询,更改口令,退出系统。
各个实体的属性通过实体属性图表示如下面这些图所示。
数据概括分为八部分
(1)图书基本信息的E-R图如下图所示:
图书信息表E-R图
(2)借还基本信息的E-R图如下图所示:
借还信息表E-R图
(3)图书馆基本信息的E-R图如下图所示:
图书馆信息表E-R图
(4)图书类型基本信息的E-R图如下图所示:
图书类型表E-R图
(5)参数设置基本的E-R图如下图所示:
参数设置表E-R图
(6)人员基本信息的E-R图如下图所示:
人员信息表E-R图
(7)读者基本信息的E-R图如下图所示:
读者信息表E-R图
(8)读者类型基本信息的E-R图如下图所示:
读者类型表E-R图
(9)用户基本信息的E-R图如下图所示:
用户信息表E-R图
逻辑结构设计
逻辑结构设计的任务是把概念结构设计阶段设计好的E-R图转换成与选用的DBMS产品所支持的数据模型相符合的逻辑结构。
E-R图转换为关系数据模型所要解决的问题是如何将实体和实体间的联系转换成关系模式,如何确定这些关系模式的属性和码。
数据库中两实体间1:
n联系转换为一个与n端对应的关系模式合并的关系模式的方法是将联系的属性与1端的码加入n端作为属性,主码为n端实体的主码。
(1)图书基本信息由E-R图转换成的关系数据模式有:
Book_info图书基本信息表
列名
数据类型
可否为空
说明
id
INT(10)
NOTNULL
编号(主键)
Type_id
INT(10)
NULL
类型编号
Book_id
Varchar(11)
NOTNULL
图书编号
Author
Varchar(21)
NULL
作者
Book_name
Varchar(50)
NOTNULL
图书名称
Publishing
Varchar(50)
NULL
出版社
Price
Float
NOTNULL
价格
Page
Int(10)
NOTNULL
页码
Quantity
Int(10)
NULL
总数
Translator
Varchar(20)
NOTNULL
翻译者
(2)借还基本信息由E-R图转换成的关系数据模式有:
Borrow借还基本信息表
列名
数据类型
可否为空
说明
id
Int(10)
NOTNULL
编号(主键)
bid
Int(10)
NOTNULL
借书编号
Borrow_time
Date
NOTNULL
借书时间
Return_time
int(11)
NOTNULL
还书时间
State
int(11)
NOTNULL
借还情况
Rid
Int(10)
NOTNULL
还书编号
(3)图书馆基本信息由E-R图转换成的关系数据模式有:
Library_info图书管理基本信息表
列名
数据类型
可否为空
说明
id
Int(10)
NOTNULL
编号(主键)
Lib_name
varchar(30)
NOTNULL
图书馆名称
Lib_manager
varchar(20)
NOTNULL
馆长
Telphone
int(10)
NULL
电话
Address
varchar(40)
NULL
地址
E-mail
varchar(50)
Null
邮箱
Lib_web
varchar(50)
Null
图书馆网址
Lib_build
Date
NOTNULL
建馆时间
Lib_info
Text
Null
备注
(4))图书类型信息由E-R图转换成的关系数据模式有:
Library_type图书类型信息表
列名
数据类型
可否为空
说明
id
Int(10)
NOTNULL
编号(主键)
Type_name
varchar(50)
NOTNULL
专业名称
Days
Int(10)
NOTNULL
借阅时间
(5)参数设置基本信息由E-R图转换成的关系数据模式有:
Parameter参数设置信息表
列名
数据类型
可否为空
说明
id
Int(10)
NOTNULL
编号(主键)
Cost
Folat
defaultNULL
办证费
effdate
Int(10)
NOTNULL
有效日期
(6)人员基本信息由E-R图转换成的关系数据模式有:
person_table人员基本信息表
列名
数据类型
可否为空
说明
id
Int(10)
NOTNULL
编号(主键)
pid
Int(10)
NOTNULL
人员编号
Username
varchar(20)
NOTNULL
用户名
Password
varchar(32))
NOTNULL
密码
(7)读者基本信息由E-R图转换成的关系数据模式有:
Reaer_info读者基本信息表
列名
数据类型
可否为空
说明
id
int(10)
NOTNULL
编号(主键)
Reader_id
varchar(11)
NOTNULL
读者编号
Reader_name
varchar(20)
NOTNULL
读者名称
Sex
int(10)
NOTNULL
性别
Type_id
int(10)
NULL
类型编号
Profession
varchar(10)
NOTNULL
职业
Birthday
Date
NULL
生日
Card
varchar(10)
NOTNULL
证件类型
Card_number
varchar(30)
NOTNULL
证件号码
Tel
varchar(30)
NULL
电话
E-mail
varchar(30)
NULL
邮箱
Manager
varchar(10)
NULL
管理员
Info
Text
NULL
备注
(8)读者类型信息由E-R图转换成的关系数据模式有:
Reader_type读者类型信息表
列名
数据类型
可否为空
说明
id
Int(10)
NOTNULL
编号(主键)
Type_name
varchar(20)
NotNULL
类型名称
Quantity
Int(10)
NOTNULL
总数
(9)用户基本信息由E-R图转换成的关系数据模式有:
user_info用户基本信息表
列名
数据类型
可否为空
说明
id
Int(10)
NOTNULL
编号(主键)
Usernam
varchar(45)
NOTNULL
名称
Password
varchar(45)
NOTNULL
密码
Realname
varchar(45)
NULL
真实姓名
Authority
varchar(200)
NULL
权限
物理结构设计
各个表之间的代码实现如下:
(1)图书基本信息:
book_info
CREATETABLE`book_info`(
`id`int(10)unsignedNOTNULLAUTO_INCREMENT,
`Type_id`int(10)unsignedDEFAULTNULLCOMMENT'关联图书类型',
`Book_id`varchar(11)NOTNULLCOMMENT'条形码',
`Author`varchar(21)CHARACTERSETutf8DEFAULTNULLCOMMENT'作者',
`Book_name`varchar(50)CHARACTERSETutf8NOTNULLCOMMENT'书名',
`Publishing`varchar(50)CHARACTERSETutf8DEFAULTNULL,
`Price`floatunsignedNOTNULLCOMMENT'价格',
`Page`int(10)unsignedNOTNULLCOMMENT'页码',
`Quantity`int(10)unsignedDEFAULTNULLCOMMENT'关联读者类型的id',
`Translator`varchar(20)CHARACTERSETutf8DEFAULTNULLCOMMENT'译者',
PRIMARYKEY(`id`),
KEY`FK_book_info_1`(`Type_id`),
CONSTRAINT`FK_book_info_1`FOREIGNKEY(`Type_id`)REFERENCES`library_type`(`id`)
)ENGINE=InnoDBAUTO_INCREMENT=12DEFAULTCHARSET=latin1COMMENT='图书信息';
(2)借还基本信息表:
borrow
CREATETABLE`borrow`(
`id`int(10)unsignedNOTNULLAUTO_INCREMENT,
`Bid`int(10)unsignedDEFAULTNULLCOMMENT'关联图书表的id',
`Borrow_time`dateNOTNULL,
`Return_time`dateNOTNULL,
`State`int(10)unsignedNOTNULL,
`Rid`int(10)unsignedNOTNULLCOMMENT'关联读者信息表的',
PRIMARYKEY(`id`),
KEY`FK_borrow_1`(`Bid`),
KEY`FK_borrow_2`(`Rid`),
CONSTRAINT`FK_borrow_1`FOREIGNKEY(`Bid`)REFERENCES`book_info`(`id`),
CONSTRAINT`FK_borrow_2`FOREIGNKEY(`Rid`)REFERENCES`reader_info`(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
(3)图书馆基本信息表:
library_info
CREATETABLE`library_info`(
`id`int(10)unsignedNOTNULLAUTO_INCREMENT,
`Lib_name`varchar(30)CHARACTERSETutf8NOTNULL,
`Lib_manager`varchar(20)CHARACTERSETutf8NOTNULL,
`Telphone`int(10)unsignedDEFAULTNULL,
`Address`varchar(40)CHARACTERSETutf8NOTNULL,
`E-mail`varchar(50)CHARACTERSETutf8DEFAULTNULL,
`Lib_web`varchar(30)CHARACTERSETutf8DEFAULTNULL,
`Lib_build`dateNOTNULL,
`Lib_info`textCHARACTERSETutf8,
PRIMARYKEY(`id`)
)ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=latin1;
(4)图书类型基本信息表:
library_type
CREATETABLE`library_type`(
`id`int(10)unsignedNOTNULLAUTO_INCREMENT,
`Type_name`varchar(50)CHARACTERSETutf8NOTNULLCOMMENT'图书类型',
`Days`int(10)unsignedNOTNULLCOMMENT'可借天数',
PRIMARYKEY(`id`)
)ENGINE=InnoDBAUTO_INCREMENT=5DEFAULTCHARSET=latin1COMMENT='图书类型'
(5)参数设置基本信息表:
parameter
CREATETABLE`parameter`(
`id`int(10)NOTNULLDEFAULT'0',
`cost`floatNOTNULL,
`effdate`int(10)NOTNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=gbk;
(6)人员基本信息表:
person_table
CREATETABLE`person_table`(
`id`int(10)unsignedNOTNULLAUTO_INCREMENT,
`Pid`int(10)unsignedNOTNULL,
`Username`varchar(20)CHARACTERSETutf8NOTNULL,
`Password`varchar(32)CHARACTERSETutf8NOTNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDBAUTO_INCREMENT=8DEFAULTCHARSET=latin1;
(7)读者基本信息表:
reader_info
CREATETABLE`reader_info`(
`id`int(10)unsignedNOTNULLAUTO_INCREMENTCOMMENT'动自编号',
`Reader_id`varchar(11)NOTNULLCOMMENT'条形码',
`Reader_name`varchar(20)CHARACTERSETutf8NOTNULLCOMMENT'名',
`Sex`int(10)unsignedNOTNULLDEFAULT'1'COMMENT'性别',
`Type_id`int(10)unsignedDEFAULTNULLCOMMENT'关联读者类型',
`Profession`varchar(10)CHARACTERSETutf8DEFAULTNULLCOMMENT'业职',
`Birthday`dateDEFAULTNULL,
`Card`varchar(10)CHARACTERSETutf8NOTNULLCOMMENT'证件类型',
`Card_number`varchar(30)CHARACTERSETutf8NOTNULLCOMMENT'证件号码',
`Tel`varchar(30)CHARACTERSETutf8DEFAULTNULLCOMMENT'话电',
`E-mail`varchar(30)CHARACTERSETutf8DEFAULTNULL,
`Manager`varchar(10)CHARACTERSETutf8DEFAULTNULL,
`Info`textCHARACTERSETutf8COMMENT'注备',
PRIMARYKEY(`id`),
KEY`FK_reader_info_1`(`Type_id`),
CONSTRAINT`FK_reader_info_1`FOREIGNKEY(`Type_id`)REFERENCES`reader_type`(`id`)
)ENGINE=InnoDBAUTO_INCREMENT=14DEFAULTCHARSET=latin1;
(8)读者类型基本信息表:
`reader_type`
CREATETABLE`reader_type`(
`id`int(10)unsignedNOTNULLAUTO_INCREMENT,
`Type_name`varchar(20)CHARACTERSETgbkNOTNULL,
`Quantity`int(10)unsignedNOTNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDBAUTO_INCREMENT=7DEFAULTCHARSET=latin1;
(9)用户基本信息表:
user_info
CREATETABLE`user_info`(
`id`int(10)unsignedNOTNULLAUTO_INCREMENT,
`Username`varchar(45)NOTNULL,
`Password`varchar(45)NOTNULL,
`Realname`varchar(45)DEFAULTNULL,
`Authority`varchar(200)DEFAULTNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDBAUTO_INCREMENT=4DEFAULTCHARSET=utf8;
●访问数据的方式方法:
mysql。
4安全保密设计
我们采用登入区分不同的管理员。
不同的管理员存储在不同的表中,而且每个管理员都要自己的密码权限,只有最终管理员可以修改别人的权限。
5数据库实现
数据库建立
采用MysQL建立数据库及各表,使用NavicatforMySQL来运行librarymanagement.sql这个数据库。
数据库初始化
数据库初始化的方法采用的是数据库反转的方式,利用代码以及librarymanagement.sql文件进行反转运行以及初始化。
参数设置
将数据库的字符编码设置为UTF-8,在建立数据库是也要使用UTF-8编码