《数据库课程设计-图书管理系统(15页).docx》由会员分享,可在线阅读,更多相关《数据库课程设计-图书管理系统(15页).docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-数据库课程设计-图书管理系统-第 14 页数据库应用技术大作业目录1.选题32.题目概述33需求分析33.1功能需求33.2.数据需求43.3数据安全与约束63.4数据流图73.5运行原型84概要设计94.1实体及联系94.2 E-R图95逻辑结构设计115.1数据库模型115.2数据库模型函数依赖集146程序设计157其他考虑157.1建立索引157.2触发器、存储过程、事务167.3复杂查询的SQL语句168运行环境描述188.1选择语言188.2选择数据库191.选题题目:图书管理系统2.题目概述校园图书馆在为师生提供图书资料查询、借阅服务时,面对大量书籍信息、读者信息以及两者间相互联
2、系产生的借书信息和还书信息,人工记录的方法效率低,并且错误率较高,不利于图书馆对书籍和读者借阅的管理。因此需要对书籍信息、读者信息、借还信息进行有效管理,并及时了解各个环节中信息的变更,便于数据的管理。3需求分析3.1功能需求(1)读者信息管理浏览读者信息;增加读者信息:读者区分教师、学生,增加新的读者信息并办理借阅卡;修改读者信息:对借书证进行挂失、注销等操作,当读者有未还图书时,不允许注销;(2)图书信息管理增加新图书信息:对新购的图书进行登记;提供图书查询:对图书的编号、书名、作者、出版社等关键字进行搜索;图书信息修改:对图书的数量、分类、馆藏等资料进行修改;(3)图书借阅、归还管理读者
3、借书:每本图书有一定的借阅期限,所借阅的数量不能超过允许数量的最大值;读者还书:对丢失、逾期、损坏的图书进行记录并进行罚款处理;(4)图书馆管理者信息管理对管理者信息进行数据的添加、修改、删除操作;查询浏览当前数据库中管理者信息;(5)数据信息综合查询读者可以根据借书证号对自己的借阅情况进行查询;(6)数据的整理统计对不同读者的借阅情况进行统计;对每种图书在一段时间的借阅次数进行统计。3.2.数据需求根据系统和用户的具体需求,对需要记录的信息进行分类,需记录的信息如下:(1) 读者信息数据:读者信息数据借阅证号(不超过10位数字)姓名(不超过5个汉字)院系(不超过20个汉字)专业性别持有数量(
4、不超过3个汉字)读者类别(分为老师、学生两种)(2) 图书信息数据:图书信息数据图书编号(不超过20位数)ISBN号(不超过30位数)图书名称文种(不超过10个汉字)作者(不超过5个汉字)出版社(不超过20个汉字)出版日期价格关键字馆藏册数流通册数是否在馆(3) 借阅信息数据:借阅信息数据借阅证号(不超过10位数字)图书编号(不超过20位数)图书名作者借阅日期应归还日期实际归还日期能否续借罚金(4) 管理者信息数据:管理者信息数据管理者编号(不超过10位数字)姓名(不超过5个汉字)性别住址电话对应密码对应权限3.3数据安全与约束(1)数据库的完整性:保证数据库中数据的正确性和相容性,防止合法用
5、户使用数据库时向数据库加入不和语义的数据,要对输入到数据库的数据进行审核和约束。可通过建立主键、外键,使用check约束、触发器或者联机更新进行控制。(2)数据库具有可伸缩性:对数据库结构的设计应充分考虑发展和移植的需要,需要具有良好的拓展性、伸缩性和适度冗余(3)数据库的安全性:保护数据库中数据的安全,防止非法用户使用数据库或合法用户非法使用数据库造成的数据泄露、数据更改、数据破坏等行为。可以通过视图控制机制,不同的用户只能访问系统授权的视图,再通过设置权限级别区别对待不同操作者对数据库的操作。结合图书管理系统,数据的安全与约束如下:(1) 图书“是否在馆”“流通册数”动作修改,不能管理员后
6、台进行输入,要在图书“借阅”或者“归还”后,自动修改;(2) 借阅信息数据表中的“借阅日期”“应还日期”“实际归还日期”不能管理员后台图书管理输入,只能根据系统实际时间进行记录。3.4数据流图3.5运行原型4概要设计4.1实体及联系读者(借阅证号,姓名,院系,专业,性别,持有数量,读者类型)图书(图书编号,ISBN号,图书名称,文种,作者,出版社,出版日期,价格,关键字,馆藏册数,是否在馆)借阅管理(图书编号,借阅证号,姓名,图书名,作者,借阅日期,应归还日期,实际归还日期,能否续借,罚金)管理员(管理者编号,姓名,行呗,住址,电话,对应密码,对应权限)4.2 E-R图(1)读者信息实体的E-
7、R图(2)图书信息实体的E-R图(3)借阅信息实体的E-R图(4)管理者信息实体的E-R图(5)实体与属性关系E-R图5逻辑结构设计5.1数据库模型(1)读者信息表字段名称数据类型可否为空是否为关键字说明readerIDVarchar(10)not null(主键)是借阅证号readernameVarchar(10)not null否读者姓名departmentVarchar(20)not null否读者院系MajorVarchar(20)not null否专业readersexVarchar(2)not null否性别Numberintnull否持有数量readertypeVarchar(1
8、0)not null否读者类别(2)图书信息表字段名称数据类型可否为空是否为关键字说明bookIDVarchar(20)not null(主键)是图书编号ISBNchar(10)not null否ISBN号booknameVarchar(20)not null否图书名称BooktypeVarchar(10)not null否图书文种bookauthorVarchar(10)not null否图书作者PublishVarchar(20)not null否出版社publishdatadatatimenot null否出版日期PriceVarchar(6)not null否价格KeywordsVar
9、char(10)not null否关键字havenumberintnot null否馆藏册数outnumberintnot null否流通册数Statuschar(10)not null否是否在馆(3)借阅信息表字段名称数据类型可否为空是否为关键字说明readerIDVarchar(20)not null(主键)是借阅证号readernameVarchar(10)not null否读者姓名bookIDVarchar(20)not null否图书编号BooknameVarchar(20)not null否图书名称BookauthorVarchar(10)not null否作者Borrowdata
10、Datatimenot null否借阅日期ReturntimeDatatimenot null否应归还日期FacttimeDatatimenot null否实际归还日期GoonVarchar(10)not null否能否续借FeeFloatnot null否罚金(4)管理员信息表字段名称数据类型可否为空是否为关键字说明adminIDVarchar(12)not null(主键)是管理者编号AdminnameVarchar(10)not null否姓名AdminsexVarchar(2)not null否性别AddressVarchar(20)not null否住址PhoneVarchar(12
11、)not null否电话PasswordVarchar(20)not null否对应密码PowerVarchar(20)not null否对应权限5.2数据库模型函数依赖集如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R为第三范式模式。满足第三范式(3NF)必须先满足第二范式(2NF)。第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。所以满足第三范式后,借阅管理这个表修改成如下:修改前:借阅管理(图书编号,借阅证号,姓名,图书名称,作者,借阅日期,应归还日期,实际归还日期,能否续借,罚金)修改后:借阅管理(图书编号,借阅证号,借阅日期,应归
12、还日期,实际归还日期,能否续借,罚金)6程序设计7其他考虑7.1建立索引为了提高在表中搜索元组的速度,在实际实现的时候基于各表主键建立索引,建立索引的表项如下:(1) 读者信息表(借阅卡号)(2) 图书信息表(图书名称,图书的编号)(3) 管理员信息表(管理员编号)(4) 图书借阅信息表(借阅卡号,图书编号,图书名称)7.2触发器、存储过程、事务7.3复杂查询的SQL语句建立各表SQL语句(1)create table读者信息(readerID varchar(10) not null primary key,Readernamevarchar(10) not null,Departmentv
13、archar(20) not null,Majorvarchar(20) not null,Readersexvarchar(2) not null,Numberint,Readertypevarchar(10), not null)(2)create table图书信息(bookID varchar(20) not null primary key,ISBN char(10) not null,booknamevarchar(20) not null,booktypevarchar(10) not null,bookauthorvarchar(10) not null,Publish var
14、char(20)not null,Publishdata datatime not null,Price vatchar(6) not null,keywordsvarchar(10), not null,havenumber int not null,outnumber int not null,status char(10) not null)(3)create table借阅信息(bookID varchar(20) not null primary key,ReaderIDvarchar(20) not null,bookauthorvarchar(10) not null,borro
15、wdatadatatime not null,returntimedatatime not null,facttimedatatime not null,Goonvarchar(10) not null,Fee float )(4)create table管理员信息(adminID varchar(12) not null primary key,adminname varchar(10) not null,adminsexvarchar(2) not null,address varchar(20) not null,phone varchar(12) not null,passwordva
16、rchar(20) not null,powervarchar(20) not null)定义视图(1)读者表视图CREATE VIEW读者视图ASSELECT *FROM读者(2)图书表视图CREATE VIEW图书视图ASSELECT *FROM图书8运行环境描述8.1选择语言程序开发语言选择C#。因为C#语言是一种现代的、面向对象的语言,它简化了C+语言在类、命名空间、方法重载和异常处理等方面的操作,并摒弃了C+的复杂性,实现了在编程过程中更易使用,更少出错。8.2选择数据库数据库建议采用SQLServer2005及以上版本。因为SQL数据库具有强壮的事务处理功能,采用各种方法保证数据的完整性,除此之外,支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言,SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构,对于广大的用户、开发人员来说,SQLServer数据库是一个能够满足使用需求,出众的数据库平台。