第10章 图书管理系统数据库设计实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Y
是否 继续
N
结束
10.2.6数据库实施阶段
10.2.6.1 建立数据库、数据表、视图、索引
10.2.6.2 数据入库 10.2.6.3 创建各个功能的存储过程
10.2.6.1 建立数据库、数据表、视图、索引
(一) 建立数据库 create database Book; (二) 建立数据表
1) 读者类别信息表的建立: create table ReaderType( LBID char(5) primary key, LBName char(20) not null, LBnum char(5) not null, LBbqx char(4) not null, LBqx char(3) not null, ) 2) 管理员基本信息表的建立: create table Maneger( MID char(10) primary key, MName char(10) not null, MSex char(2), Mpwd char(8) not null, MAuth char(40) not null, MTeleph char(15), MAddre char(30), check(MSex ='男' or MSex ='女') )
各E-R图中联系的属性如下所示:
借阅信息:Borrow (BookID,ReaderID,BookName,BookWriter, Outdate,YHdate) 借阅历史:History(BookID,ReaderID,BookName, BookWriter, Outdate,Indate) 罚款信息:Fine(BookID,ReaderID,BookName, Outdate,Indate, Fine, CLState, MID)
第10章 图书管理系统数据库 设计实例
10.1 数据库设计原则及技巧 10.2 图书管理系统数据库设计实例
本章重点
理解数据库设计的基本原则 熟悉数据库设计的基本过程,并掌握各个 设计规则与方法。
能熟练的设计一个完整的数据库系统。
10.1 数据库设计原则及技巧
设计原则
规范命名 控制字段的引用 库表重复控制 并发控制 必要的讨论 数据小组的审核 数据小组的审核
查询
查询? 更新?
更新
查询读者信息表
更新读者信息表
N
是否 成功
Y 更新后的读者信息表
查询的结果 提示信息
YFra Baidu bibliotek
是否 继续
N
结束
(二) 图书基本信息的查询和更新模块
管理员发出更新图书的命令
读者发出查询信息
N
权限是 否有效 Y
查询图书信息表
更新图书信息表
N
是否 成功
Y 更新后的图书信息表
查询的结果 提示信息
删 除 无 效 用 户
修 改 用 户 信 息
借 阅 服 务
归 还 服 务
罚 款 服 务
图 书 查 询 服 务
个 人 信 息 查 询
10.2.5物理设计阶段
数据库的物理设计就是为逻辑数据模型选取 一个最合适应用要求的物理结构完成两大任务:
(1)确定数据库的物理结构,在关的过程,在这个阶段 中要系数据库中主要是存取方法和存储结构; (2)对物理结构进行评价,评价的重点是时间和空间效 率。
3) 图书馆室基本信息表的建立: create table Room( RoomNo char(5) primary key, RoomMID char(10) not null, Roomnum char(5), RoomAddre char(20), foreign key(RoomMID) references Maneger(MID), ) 4) 馆藏图书基本信息表的建立: create table Book( BookID char(9) primary key, BookNo char(20) not null, BookName char(50) not null, BookWriter char(30) not null, BookPublish char(20) not null, BookPrice char(7), BookDate datetime, BookClass char(20), BookMain char(200), BookPrim char(30), BookCopy char(5), BookState char(10) not null, BookRNo char(5) not null, foreign key(BookRNo) references Room(RoomNo),
HistoryView
BorrowView FineView
便于借阅历史信息的查询
用于当前借阅信息的查询 便于查询罚款信息
10.2.4.2 数据处理
图书管理系统
图书维护子系统
人员资源管理子系统
借还服务子系统
查询服务子系统
添 加 新 到 图 书
删 除 过 期 图 书
修 改 馆 藏 图 书
添 加 新 用 户
)
5) 读者基本信息表的建立: create table Reader( ReaID char(9) primary key, ReaName char(10) not null, ReaSex char(2) not null, ReaNo char(9) not null, ReaLBID char(5) not null, ReaType char(20), ReaDep char(20), ReaGrade char(5), ReaPref char(20), ReaDate Datetime, foreign key(ReaLBID) references ReaderType(LBID), check(ReaSex ='男' or ReaSex ='女') )
(a)从数据流程图10.5 、图10.6、图10.7抽象出的分E-R图:
(b)从数据流程图10.8可抽象为分E-R图:
(c)从数据流程图10.9抽象出的分E-R图:
(d)从数据流程图10.10抽象出的分E-R图:
(2)合并各分E-R图,消除属性冲突、命名冲突、结构冲突等三类冲 突,得到初步E-R图,再消除不必要冗余,得到的基本E-R图如下所示:
借阅信息:Borrow ( BookID,ReaderID,BookName,BookWriter,Outdate,Indate, YHdate,Fine,CLStaer,MID)
3. 数据库模式定义
根据分析,本数据库共创建如下6个表。参考课本
4. 用户子模式定义
编号 V V V V V 表10.7 用户子模式定义 用户子模式 作用 BookView ReaderView 便于查询和修改图书的基本信息 方便读者基本信息的查询、更新
10.2.5.1数据存储方面
为数据库中各基本表建立的索引如下:
1) 由于基本表Reader,Book的主码ReaID,BookID经常在查询条件和连 接操作的连接条件中出现,且它们的值唯一,在两个属性上建立唯一性 索引; 2) 由于基本表Reader的属性ReaDep,Book的属性BookPublish经常在查 询条件中出现在两个属性上建立聚簇索引;
6) 借阅基本信息表的建立: create table Borrow( BookID char(9), ReaID char(9), Outdate Datetime not null, YHdate Datetime not null, Indate Datetime, Fine char(5), CLState char(8), MID char(10) not null, primary key(BookID,ReaID), foreign key(MID) references Maneger(MID) )
2. 模型优化
关系模式Book,Reader,Room,ReaderType ,Maneger不存在非主属性对 主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是借 阅关系模式、借阅历史关系模式、罚款关系模式(Borrow,History,Fine) 中存在着一些数据冗余,现将三个关系模型进行合并,消除冗余,优化为:
数据库设计过程 需求分析阶段 概念分析阶段 逻辑设计阶段 物理设计阶段 数据库实施阶段
10.2.1数据库设计过程
需求分析阶段 概念结构设计阶段
逻辑结构设计阶段
物理结构设计阶段
实施阶段
运行与维护阶段
10.2.2需求分析阶段
需求阶段的目标及任务
处理对象 处理功能及要求
安全性和完整性要求
(3)各E-R图各实体的属性如下所示:
图书:Book(BookID, BookNo, BookName, BookWriter, BookPublish, BookPrice, BookDate, BookClass, BookMain, BookPrim, BookCopy, BookState,BookRN) 读者:Reader(ReaID, ReaName, ReaSex, ReaNo, ReaLBID, ReaType, ReaDep, ReaGrade, ReaPref, ReaDate) 管理员:Maneger(MID, MName, MSex, Mpwd, MAuth, MTeleph, MAddre) 馆室:Room(RoomNo,RoomMID,RoomNum,RoomAddre) 读者类别:ReaderTpye(LBID, LBName, LBnum, LBbqx, LBqx)
10.2.4逻辑设计阶段

10.2.4.1 数据组织
1.将E-R图转换为关系模型 一个m:n联系转换为一个关系模式 一个1:n联系可以转换为一个独立的关系模式 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
将其联系也转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下: 图书:Book(BookID, BookNo, BookName, BookWriter, BookPublish, BookPrice, BookDate,BookClass,BookMain,BookPrim,BookCopy,BookState,BookRNo) 读者:Reader(ReaID,ReaName,ReaSex,ReaNo,ReaLBID,ReaType, ReaDep, ReaGrade, ReaPref, ReaDate) 管理员: Maneger (MID,MName,MSex,Mpwd,MAuth,MTeleph,MAddre) 读者类别:ReaderTpye(LBID, LBName, LBnum, LBbqx, LBqx) 馆室: Room(RoomNo,RoomMID,RoomNum,RoomAddre) 借阅信息:Borrow(BookID,ReaderID,BookName,BookWriter, Outdate,YHdate) 借阅历史:History(BookID,ReaderID,BookName,BookWriter, Outdate,Indate,YHdate) 罚款信息:Fine (BookID,ReaderID,BookName,Outdate,Indate,Fine, CLState,MID)
安全性要求 完整性要求
建立数据业务流程及数据字典
10.2.3概念分析阶段

概念设计阶段主要是将需求分析阶段得到的 用户需求抽象为信息结构(概念模型)的过程, 它是整个数据库设计的关键。本图书管理系 统的主要任务及目标如下:
选择中层数据流为切入点,通常选择实际系统中的子 系统; 设计分E-R图,即各子模块的E-R图; 生成初步E-R图,通过合并方法,做到各子系统实体、 属性、联系统一; 生成全局E-R图,通过消除冲突等方面。
10.1 数据库设计原则及技巧
设计技巧
分类拆分数据量大的表 索引设计 数据操作的优化 数据库参数的调整 必要的工具 避免长事务 适当超前
10.2 图书管理系统数据库设计实例



10.2.1 10.2.2 10.2.3 10.2.4 10.2.5 10.2.6
3) 借阅信息基本表Borrow的一属性ReaID,BookID,经常在查询条件中 出现,考虑在其之上建立聚簇索引;
4) 罚款信息基本表Fine的一属性ReaID,BookID,经常在查询条件中出 现,考虑在其之上建立聚簇索引;
10.2.5.2系统功能模块
(一) 读者基本信息的查询和更新模块
管理查询或更新的命令
相关文档
最新文档