图书管理数据库系统一、需求分析1.功能设计首先从需求出发构造数据库表,再由数据库表结合需求划分系统功能模块。这里把系统的层次划分为四个部分:图书维护、人员管理、图书借阅管理、信息查询。能实现以下功能:a)进行新书入库,对现有图书进行修改以及删除;b)实现对读者基本信息的查询及编辑管理;c)超期罚款;d)能够进行借阅信息的查询;2.处理对象读者信息:读者编号、姓名、性别、专业、年纪、密码、办证日期。管理员信息:管理员编号、姓名、性别、电话、密码、权限。图书信息:ISBN、图书名称、作者、出版社、单价、副本数、分类、出版日期、关键字、状态。借阅记录:ISBN、读者编号、图书名、作者、借阅日期、归还日期、应还日期、罚金。罚款信息:ISBN、读者编号、图书名、作者、借阅日期、归还日期、应还日期、罚金、处理状态、管理员编号。3.处理功能及要求a)能够存储一定数量的图书信息,能够进行相应的书籍数据操作和管理主要包括:1)图书信息的录入、删除及修改2)图书信息的多关键字检索查询3)图书的出借、归还及超期罚款或者丢失赔偿b)能够对一定数量的读者、管理员进行相应的信息操作,包括:1)读者信息的登记、删除及修改。2)管理员信息的增加、删除及修改。3)读者资料的统计与查询。c)能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。d)对查询、统计的结果能够列表显示。4.安全性和完整性要求a)安全性要求安全性通过视图机制,不同用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统及网络体系的安全性等方面。b)完整性要求系统完整性要求系统中数据的安全性及相容性。可通过建立主外键,使用check约束,或者通过使用触发器或者级联更新。5.数据字典读者信息:读者编号ReaderID、姓名ReaderName、性别ReaderSex、专业ReaderMajor、年纪ReaderAge、密码ReaderPassword、办证日期ReaderDate。管理员信息:管理员编号ManageID、姓名ManageName、性别ManageSex、电话ManagePhone、密码ManagePassword、权限ManageAuthority。图书信息:书籍编号BookID、图书索书号BookID、图书名称BookName、作者BookAuthor、出版社BookPrinter、单价BookPrice、副本数BookNum、分类BookType、出版日期BookDate、关键字BookKeyword、状态BookState。借阅状态:书籍编号BookID、读者编号ReaderID、图书名BookName、作者BookAuthor、借阅日期BorrowDate、应还日期ReturnDate借阅历史:书籍编号BookID、读者编号ReaderID,图书名BookName,作者BookAuthor,借阅日期BorrowDate、归还日期ReturnedDate罚款信息:书籍编号BookID、读者编号ReaderID、图书名BookName、作者BookAuthor、借阅日期BorrowDate、归还日期ReturnedDate、应还日期ReturnDate、罚金Fine、处理状态ManageStatus、管理员编号ManageID。二、概念结构设计1.任务与目标a)选择中层数据流为切入点,通常选择实际系统中的子系统;b)设计分E-R图,即各子模块的E-R图;c)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一;d)生成全局E-R图,通过消除冲突等方面。2.分-R图a)b)c)用户类型输入处理输出全部用户(总)用户类型判断用户类型无(总)账号,密码判断账号及密码正确性进入系统或显示错误信息(总)修改个人信息(用户名、密码等)修改个人信息修改结果信息(总)查询内容判断查询内容转至相应页面(总)查询书目检索关键字输出相应书目信息学生或老师(读)借阅或归还图书处理图书信息修改图书信息管理员(管)新建图书项(ISBN、书名、作者、出版社、价格、副本量、库存量等)处理图书信息新增图书项(管)删除图书项处理图书信息删除图书项(管)检索用户信息搜索相应信息用户信息(管)修改图书信息处理图书信息修改图书信息全部用户(全)反馈信息(建议、警告、问题询问、回答等)搜集反馈信息反馈给相应用户维护人员(维)搜索源代码调用源代码文件打开源代码文件全部用户(全)退出进行指令判断退出,返回登录页面3.基本E-R图4.E-R图的各实体的属性Reader(ReaderID,ReaderName,ReaderSex,ReaderMajor,ReaderAge,ReaderPassword,ReaderDate)Manager(ManageID,ManageName,ManageSex,ManagePhone,ManagePassword,ManageAuthority)Book(ISBN,BookID,BookName,BookAuthor,BookPrinter,BookPrice,BookNum,BookType,BookDate,BookKeyword,BookState)Borrow(BookID,ReaderID,BookName,BookAuthor,BorrowDate,ReturnDate)History(ISBN,ReaderID,BookName,BookAuthor,BorrowDate,ReturnedDate)Fine(ISBN,ReaderID,BookName,BookAuthor,BorrowDate,ReturnedDate,ReturnDate,Fine,ManageStatus,ManageID)三、逻辑结构设计1.将E-R图转化为关系模式实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合,具有相同码的关系模式可合并。管理员与图书之间的维护联系是1:n(一对多),读者与图书之间的借阅和归还联系方式则是n:m(多对多),这样要把它们之间的联系转化为独立的关系模式,读者与管理员之间的罚款与管理联系是m:n(多对多),将其联系也转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下:Reader:ReaderID,ReaderNameReaderPasswordReadTypeReaderSexReaderInfoBook:ISBNBookNameBookIDBookAuthorBookPublishBookPriceBookDateBookTypeBookKeywordBookStateBorrowRecord:BorrowIDReaderIDBookIDBookNameBookAuthorBorrowdateReturndateFineisBorrowingisRenewingFine:BookIDReaderIDBookNameBorrowIDBorrowdateReturndateFine2.模型优化关系模式Book,Reader,Manager不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是借阅关系模式、罚款关系模式(Borrow,History,Fine)中存在着一些数据冗余,现将三个关系模型进行合并,消除冗余,3.数据库模式定义表2.1图书信息表列名数据类型可否为空说明ISBNBookNameCharCharnotnullnotnullISBN图书的书名BookIDBigintnotnull索书号主码BookAuthorChar图书作者BookPublishChar图书出版社BookPriceDouble图书的单价BookDateDate出版日期BookTypeChar图书的分类BookKeywordChar图书的关键字BookStateCharnotnull图书状态表2.2读者信息表列名数据类型可否为空说明ReaderIDBigintnotnull读者编号主码ReaderNameCharnotnull读者名ReaderPasswordReadTypeCharCharnotnullnotnull读者密码读者类型ReaderSexChar读者性别ReaderInfoVarChar读者信息表2.3借阅信息表列名数据类型可否为空说明BorrowIDReaderIDBigIntBigIntnotnullnotnull借阅记录主码读者编号外码BookIDBigIntnotnull图书编号外码BookNameCharnotnull图书名BookAuthorChar作者BorrowdateDatenotnull借阅时间ReturndateDate归还时间FineDouble罚款金额isBorrowingisRenewingRealRealNotnullNotnull是否在借是否可续借表2.4图书基本信息视图列名数据类型可否为空说明BookIDCharnotnull图书的索书号BookNameCharnotnull图书的书名BookAuthorCharnotnull图书作者BookPublishCharnotnull图书出版社BookStateCharnotnull图书是否可借表2.5读者借阅信息视图列名数据类型可否为空说明BookIDCharnotnull图书编号BookNameCharnotnull图书名BorrowdateDatenotnull借阅时间ReturndateDate归还时间表2.6读者罚款信息视图列名数据类型可否为空说明BookIDBigIntnotnull图书编号BookNameReaderIDBorrowIDCharBigIntBigIntnotnullnotnullnotnull图书名读者编号借阅记录号BorrowdateDatenotnull借阅时间ReturndateDate归还时间FineDouble罚款金额