资源描述
《数据库原理》课程设计报告
题 目:
姓 名:
学 号:
专业班级:
指导老师:
年 月 日
摘 要
/*(300字左右,宋体,五号)课程设计内容摘要主要是对撰写过程中实践、实验、研究的内容、方法和得到的主要结果的完整概括。
关键词: /*(3 – 5个,各个词之间用“;”分割,宋体,五号,黑色)*/
目录
第1章 引言 3
1.1 项目背景 3
1.2 项目定义 3
1.3 开发环境 3
第2章 需求分析 4
2.1 需求分析的目标与任务 4
2.1.1 信息需求 4
2.1.2 处理需求 4
2.1.3 安全性和完整性要求 4
2.2 需求分析阶段成果 4
2.2.1 学校教材订书系统的业务流程图 4
2.2.2 学校教材订书系统系统的功能模块图: 4
2.2.3 学校教材订书系统系统的数据字典 5
第3章 概念设计 7
3.1 概念设计的目标与任务 7
3.2 阶段结果 7
3.2.1 属性与实体 7
3.2.2 各子系统与分E-R图 7
3.2.3 合并各分E-R图,得到总E-R图 7
第4章 逻辑设计 8
4.1 逻辑设计的任务和目标 8
4.2 阶段结果 8
4.2.1 将E-R图转换为关系模型 8
4.2.2 模型优化 9
4.2.3 数据库模式定义 9
4.2.4 用户子模式定义 9
第5章 物理设计 10
5.1 物理设计阶段的目标与任务 10
5.2 阶段结果: 10
5.2.1 存取方法设计 10
5.2.2 存储结构的设计 10
5.2.3 评价物理结构 10
第6章 数据库实施阶段 11
6.1 建立数据库、数据表、视图、索引 11
6.1.1 建立数据库 11
6.1.2 建立数据表 11
6.1.3 建立视图 11
6.1.4 建立索引 11
6.2 数据入库 11
第7章 系统调试和测试 12
第8章 设计心得 13
第9章 存在的问题及建议 14
第10章 参考文献 15
第11章 附录 16
第1章 引言
1.1 项目背景
学校每年都会采购和发放各种教材,但目前这些工作基本都由人工操作完成。但是为了配合老师上课的需要,教材发放的速度必须很快。因此,在教材发放的过程中,极易造成教材的损失。并且由于都是手工管理的方式,极易造成一些单据的损失。所以为了提高管理效率以及人力、物力的节省,利用计算机及设计教材订购系统就不失为一种好方法。
1.2 项目定义
主要是针对大学生教材订购。完成学生对哪些教材需要数据的录入,以及对学生购书单数据和发货单数据的存储。
1.3 开发环境
运行环境:Mysql以及java程序
数据库:MYSQL
第2章 需求分析
2.1 需求分析的目标与任务
2.1.1 信息需求
用户需要输入自己想要的书籍以及数量。需要存储的是购书数量,购书者,采购者,采购数量。以及发货者和发货数量。
2.1.2 处理需求
用户需要完成什么处理功能,对处理的响应时间有什么要求。给出功能模块图,画在需求分析阶段成果中。
2.1.3 安全性和完整性要求
1) 安全性要求
安全性可先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性。
2) 完整性要求
系统完整性要求系统中数据的正确性以及相容性。可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。
2.2 需求分析阶段成果
2.2.1 XX系统的业务流程图
2.2.2 XX系统的功能模块图:
2.2.3 XX系统的数据字典
(a) 数据项:数据项是不可再分的数据单位,即数据的最小组成单位。例:
表1.1 数据项列表
数据项编号
数据项名
数据项含义
与其它数据项的关系
存储结构
DI-1
S_ID
学号
VARCHAR(10)
DI-2
S_NAME
学生姓名
VARCHAR(20)
DI-3
TELEPHONE
电话号码
VARCHAR(2)
DI-4
TYPE
所在系
VARCHAR(20)
DI-5
T_ID
老师职工号
VARCHAR(10)
DI-6
T_NAME
老师姓名
VARCHAR(20)
DI-7
BOOK_ID
书籍编号
VARCHAR(10)
DI-8
BOOK_NAME
书籍名
VARCHAR(30)
DI-9
BOOK_PUBDATE
出版日期
DATETIME
DI-10
BOOK_WRITER
作者
VARCHAR(10)
DI-11
BOOK_PUB
出版社
VARCHAR(30)
DI-12
WORKER_ID
工作人员编号
VARCHAR(10)
DI-13
WORKER_NAME
工作人员姓名
VARCHAR(10)
DI-14
BUYBOOK_NUMBER
购书数量
INT
DI-15
BUYBOOKDATE
购书日期
DATETIME
DI-16
IACKBOOK_NUMBER
缺书数量
INT
DI-17
LAKEBOOK_DATE
提交缺书单日期
DATETIME
DI-18
INBOOK_DATE
进书日期
DATETIME
DI-19
INBOOK_NUMBER
进书数量
INT
DI-20
TAKEBOOK_NUBER
领书数量
INT
DI-21
TAKEBOOK_DATE
领书日期
DATETIME
DI-22
SENDBOOK_DATE
发货日期
DATETIME
DI-23
SENDBOOK_NUMBER
发货数量
INT
(b) 数据结构:数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据项和数据结构混合组成。例:
表1.2 数据结构列表
数据结
构编号
数据结构名
数据结构
含义
组成
DS-1
STUENTINFOR
学生信息
S_ID,S_NAME,TELEPHONE, TYPE
DS-2
BOOKINFOR
书籍信息
BOOK_ID, BOOK_NAME, BOOK_PUBDATE, BOOK_WRITER, BOOK_PUB
DS-3
BOOKBUYINFOR
购书单信息
BOOK_NAME,BUYBOOK_NUMBER,
BUYBOOKDATE
Ds-4
LACKBOOKIN
缺书单信息
BOOK_NAME,IACKBOOK_NUMBER, LAKEBOOK_DATE
Ds-5
PUBPEOINF
发行人员信息
WORKER_NAME, WORKER_ID, TELEPHONE
Ds-6
SENDINF
发货单信息
BOOK_NAME, SENDBOOK_DATE, T_NAME, SENDBOOK_NUMBER
Ds-7
BOOKWORKER
书库工作人员信息
WORKER_NAME, WORKER_ID, TELEPHONE
Ds-8
PURCHAR
采购人员信息
WORKER_NAME, WORKER_ID, TELEPHONE
Ds-9
TAKEBOOKINF
领书单信息
BOOK_NAME,TAKEBOOK_NUBER,TAKEBOOK_DATE
Ds-10
INBOOKINF
进书单信息
BOOK_NAME,INBOOK_NUMBER,INBOOK_DATE
DFD流程图
学校教材订购数据流程图
(c)数据流:数据流是数据结构在系统内传输的路径。
数据流
编号
名称
简述
来源
去向
组成
A1
购书单
教师递交的购书单
教师
购书单审核模块
BOOK_NAME,IACKBOOK_NUMBER
A2
领书单
系统生成的领书单
生成领单和生成领书单数据处理模块
书库发货人员
BOOK_NAM,TAKEBOOK_NUBER,TAKEBOOK_DATE
A3
发货单
系统生成的发货单
生成发货单数据和发货单的处理模块
教材发行人员和教师
BOOK_NAME, SENDBOOK_DATE, T_NAME, SENDBOOK_NUMBER
A4
缺书单
系统生成的缺书单
生成缺书单数据和缺书单处理模块
采购人员
BOOK_NAME,IACKBOOK_NUMBER
A5
进货单
系统生成的进货单
生成进货单数据和进货单的处理模块
教材发行人员
WORKER_NAME,WORKER_ID, TELEPHONE
A5
书籍信息
教材发行人员管理
教材发行人员
修改库存和书籍信息处理模块
BOOK_ID,BOOK_NAME, BOOK_PUBDATE, BOOK_WRITER, BOOK_PUB
(d)数据存储:数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。它可以是手工文档或手工凭单,也可以是计算机文档。
数据存储
编号
名称
简述
组成
D1
购书表
存放购书数据的表格
BOOK_NAME,BUYBOOK_NUMBER,
BUYBOOKDATE
D2
领书表
存放所要领书数据的表格
BOOK_NAME,TAKEBOOK_NUBER,TAKEBOOK_DATE
D3
发货表
存放要发放书籍信息的表格
BOOK_NAME, SENDBOOK_DATE, T_NAME, SENDBOOK_NUMBER
D4
缺书表
存放缺的书籍信息的表格
BOOK_NAME,IACKBOOK_NUMBER
D5
进货表
存放要进书籍信息的表格
BOOK_NAME,INBOOK_NUMBER,INBOOK_DATE
(e)处理过程:处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述该处理过程的说明性信息。
处理逻辑
编号
名称
输入数据流
处理
输出数据流
B1
审核购书单
购书单
对购书单进行处理看看有没有缺书
审核后的购书单
B2
生成领书单数据和领书单
购书单数据
通过查看购书单数据,生成领书单和领书单数据
领书单和领书单数据
B3
生成发货单数据和发货单
领书单数据
通过领书单数据给仓库,从而产生发货单数据和发货单
发货单和发货单数据
B4
与库存进行比较,从而生成缺书单数据和缺书单
审核后的购书单
购书单与库存进行比较,缺少某些书,从而形成缺书吧单和缺书数据
缺书单和缺书单数据
B5
生成进货单数据和进货单
缺书单数据
通过缺书单数据可知缺少哪些书,从而产生要进哪些货
进书单和进书单数据
B6
修改库存和书籍信息
书籍信息
通过进书单、领书单和发货单,知道少了哪些书和进了哪些书,进行库存的修改
概念设计
2.3 概念设计的目标与任务
(1)设计分E-R图…;
(2)生成初步E-R图…;
(3)生成基本E-R图…;
(4)生成全局E-R图…;
实体与属性间的两条准则:作为“属性”,不能再具有需要描述的性质。“属性”不能与其他实体具有联系。抽象出实体与属性,画出各子系统的分E-R图。然后采用逐步集成的方式将各分E-R图合并,消除不必要的冗余和冲突后就生成了基本E-R图3.5。
2.4 阶段结果
2.4.1 属性与实体
2.4.2 各子系统与分E-R图
销售子系统
订购子系统
2.4.3 合并各分E-R图,得到总E-R图
第3章 逻辑设计
3.1 逻辑设计的任务和目标
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计。
3.2 阶段结果
3.2.1 将E-R图转换为关系模型
递交(学号,数量,职工号)
订购(职工号,订购量,书籍编号,订购日期)
采购(编号1,采购量,书籍编号,采购日期)
发售(编号2,发售量,书籍编号,发售日期)
发货(编号3,发货量,书籍编号,发货日期)
学生(学号,姓名,院系,手机号)
老师(职工号,姓名,院系,手机号)
书籍(书籍编号,书籍名,作家,出版日期,出版社)
采购员(编号1,姓名,手机号)
发货员(编号3,姓名,手机号)
教材发行人员(编号2,姓名,手机号)
3.2.2 模型优化
递交(学号,数量,职工号)
订购(职工号,订购量,书籍编号,订购日期)
采购(编号1,采购量,书籍编号,采购日期)
发售(编号2,发售量,书籍编号,发售日期)
发货(编号3,发货量,书籍编号,发货日期)
学生(学号,姓名,院系,手机号)
老师(职工号,姓名,院系,手机号)
书籍(书籍编号,书籍名,作家,出版日期,出版社)
采购员(编号1,姓名,手机号)
发货员(编号3,姓名,手机号)
教材发行人员(编号2,姓名,手机号)
3.2.3 数据库模式定义
递交信息表
列名
数据类型
可否为空
说明
S_ID
VARCHAR(10)
NOT NULL
学生学号
T_ID
VARCHAR(10)
NOT NULL
学生姓名
BOOK_NUMBER
INT
每一位学生订购某种书数量
订购信息表
列名
数据类型
可否为空
说明
T_ID
VARCHAR(10)
NOT NULL
教师编号
BUYBOOK_NUMBER
INT
订购数量
BOOK_ID
VARCHAR(10)
NOT NULL
书籍编号
BUYBOOKDATE
DATETIME
订购日期
采购信息表
列名
数据类型
可否为空
说明
WORKER_ID
VARCHAR(10)
NOT NULL
采购人员编号
INBOOK_NUMBER
INT
采购量
BOOK_ID
VARCHAR(10)
NOT NULL
书籍编号
INBOOK_DATE
DATETIME
采购日期
发售信息表
列名
数据类型
可否为空
说明
WORKER_ID
VARCHAR(10)
NOT NULL
发售人员编号
TAKEBOOK_NUBER
INT
发售日期
BOOK_ID
VARCHAR(10)
NOT NULL
书籍编号
TAKEBOOK_DATE
DATETIME
发售日期
发货信息表
列名
数据类型
可否为空
说明
WORKER_ID
VARCHAR(10)
NOT NULL
发货人员编号
SENDBOOK_NUMBER
INT
发货量
BOOK_ID
VARCHAR(10)
NOT NULL
书籍编号
SENDBOOK_DATE
DATETIME
发货日期
学生信息表
列名
数据类型
可否为空
说明
S_ID
VARCHAR(10)
NOT NULL
学生学号
S_NAME
VARCHAR(20)
NOT NULL
学生姓名
TYPE
VARCHAR(20)
学生所在系
TELEPHONE
VARCHAR(2)
学生电话号码
教师信息表
列名
数据类型
可否为空
说明
T_ID
VARCHAR(10)
NOT NULL
教师职工编号
T_NAME
VARCHAR(20)
NOT NULL
教师姓名
TYPE
VARCHAR(20)
所在系
TELEPHONE
VARCHAR(2)
手机号
书籍信息表
列名
数据类型
可否为空
说明
BOOK_ID
VARCHAR(10)
NOT NULL
书籍编号
BOOK_NAME
VARCHAR(30)
NOT NULL
书籍名称
BOOK_WRITER
VARCHAR(10)
NOT NULL
作者
BOOK_PUBDATE
DATETIME
出版日期
BOOK_PUB
VARCHAR(30)
出版社
采购员信息表
列名
数据类型
可否为空
说明
WORKER_ID
VARCHAR(10)
NOT NULL
工作人员编号
WORKER_NAME
VARCHAR(20)
NOT NULL
工作人员姓名
TELEPHONE
VARCHAR(2)
电话号码
发货员信息表
列名
数据类型
可否为空
说明
WORKER_ID
VARCHAR(10)
NOT NULL
工作人员编号
WORKER_NAME
VARCHAR(20)
NOT NULL
工作人员姓名
TELEPHONE
VARCHAR(2)
电话号码
教材发行人员信息表
列名
数据类型
可否为空
说明
WORKER_ID
VARCHAR(10)
NOT NULL
工作人员编号
WORKER_NAME
VARCHAR(20)
NOT NULL
工作人员姓名
TELEPHONE
VARCHAR(2)
电话号码
3.2.4 用户子模式定义
例:
表4.2 用户子模式定义
编号
用户子模式(View)
作用(共性:提供数据保密和安全保护机制)
V-1
采购信息
便于查询采购员采购了那些书
V-2
订购信息
便于借阅历史信息的查询
V-3
发售信息表
便于查询教材发行人员发了书籍信息给
书籍发货人员
V-4
发货信息表
便于书籍发放人员发了的书籍信息
第4章 物理设计((235~238)
4.1 物理设计阶段的目标与任务
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2) 对物理结构进行评价,评价的重点是时间和空间效率。
4.2 阶段结果:
4.2.1 存取方法设计
递交信息表:S_ID,T_ID
订购信息表:T_ID,BOOK_ID
采购信息表:WORKER_ID,BOOK_ID
发售信息表:WORKER_ID,BOOK_ID
发货信息表:WORKER_ID,BOOK_ID
学生信息表:S_ID
教师信息表:T_ID
书籍信息表:BOOK_ID
采购员信息表:WORKER_ID
发货员信息表:WORKER_ID
教材发行人员信息表:WORKER_ID
4.2.2 存储结构的设计
采用hash索引存储方法
4.2.3 评价物理结构
因为是采用hash索引存储方法,所以在查找数据时,速度还是比较快的。但是有时候更新表或者在现有表中插入某个属性之后,改动的范围就会牵涉到很大的范围,比较麻烦。所以适用范围还是比较窄的,数据存储量还是比较少的。采用聚簇存取方法,则能大大改善数据库系统。
第5章 数据库实施阶段
5.1 建立数据库、数据表、视图、索引
5.1.1 建立数据库
CREATE DATABASE bookdatabase
5.1.2 建立数据表
CREATE TABLE 递交信息表
CREATE TABLE 订购信息表
CREATE TABLE 采购信息表
CREATE TABLE 发售信息表
CREATE TABLE 发货信息表
CREATE TABLE 学生信息表
CREATE TABLE 教师信息表
CREATE TABLE 书籍信息表
CREATE TABLE 采购员信息表
CREATE TABLE 发货员信息表
CREATE TABLE 教材发行人员信息表
5.1.3 建立视图
CREATE VIEW 订购信息 AS
SELECT T_ID,BOOK_ID,BUYBOOK_NUMBER
FROM 订购信息表;
CREATE VIEW 发售信息 AS
SELECT WORKER_ID,TAKEBOOK_NUMBER,BOOK_ID
FROM 发售信息表;
CREATE VIEW 发货信息 AS
SELECT WORKER_ID,SENDBOOK_NUMBER,BOOK_ID
FROM 发货信息表;
CREATE VIEW 采购信息 AS
SELECT WORKER_ID,INBOOK_NUMBER,BOOK_ID
FROM 采购信息表;
5.1.4 建立索引
ALTER TABLE 递交信息表 ADD CONSTRAINT DJ_PK PRIMARY KEY(S_ID,T_ID);
ALTER TABLE 书籍信息表 ADD CONSTRAINT SJ_PK PRIMARY KEY(BOOK_ID);
ALTER TABLE 采购员信息表 ADD CONSTRAINT CG_PK PRIMARY KEY(WORKER_ID);
ALTER TABLE 发货员信息表 ADD CONSTRAINT FH_PK PRIMARY KEY(WORKER_ID);
ALTER TABLE 订购信息表 ADD CONSTRAINT DG_PK PRIMARY KEY(T_ID,BOOK_ID);
ALTER TABLE 采购信息表 ADD CONSTRAINT CG1_PK PRIMARY KEY(WORKER_ID,BOOK_ID);
ALTER TABLE 发售信息表 ADD CONSTRAINT FS_PK PRIMARY KEY(WORKER_ID,BOOK_ID);
ALTER TABLE 发货信息表 ADD CONSTRAINT FH1_PK PRIMARY KEY(WORKER_ID,BOOK_ID);
ALTER TABLE 学生信息表 ADD CONSTRAINT XS_PK PRIMARY KEY(S_ID);
ALTER TABLE 教师信息表 ADD CONSTRAINT JS_PK PRIMARY KEY(T_ID);
ALTER TABLE 教材发行人员信息表 ADD CONSTRAINT JC_PK PRIMARY KEY(WORKER_ID);
ALTER TABLE 递交信息表 ADD CONSTRAINT FOREIGN KEY(S_ID) REFERENCES 学生信息表(S_ID);
ALTER TABLE 递交信息表 ADD CONSTRAINT DJ_FK2 FOREIGN KEY(T_ID) REFERENCES 教师信息表(T_ID);
ALTER TABLE 订购信息表 ADD CONSTRAINT DG_FK1 FOREIGN KEY(T_ID) REFERENCES 教师信息表(T_ID);
ALTER TABLE 订购信息表 ADD CONSTRAINT DG_FK2 FOREIGN KEY(BOOK_ID) REFERENCES 书籍信息表(BOOK_ID);
ALTER TABLE 采购信息表 ADD CONSTRAINT CG1_FK1 FOREIGN KEY(BOOK_ID) REFERENCES 书籍信息表(BOOK_ID);
ALTER TABLE 采购信息表 ADD CONSTRAINT CG1_FK2 FOREIGN KEY(WORKER_ID) REFERENCES 采购员信息表(WORKER_ID);
ALTER TABLE 发售信息表 ADD CONSTRAINT FS_FK1 FOREIGN KEY(BOOK_ID) REFERENCES 书籍信息表(BOOK_ID);
ALTER TABLE 发售信息表 ADD CONSTRAINT FS_FK2 FOREIGN KEY(WORKER_ID) REFERENCES 教材发行人员信息表(WORKER_ID);
ALTER TABLE 发货信息表 ADD CONSTRAINT FH1_FK1 FOREIGN KEY(BOOK_ID) REFERENCES 书籍信息表(BOOK_ID);
ALTER TABLE 发货信息表 ADD CONSTRAINT FH1_FK2 FOREIGN KEY(WORKER_ID) REFERENCES 采购员信息表(WORKER_ID);
5.2 数据入库
系统调试和测试
对XX系统进行测试,验证每个功能是否符合要求
第6章 设计心得
第7章 存在的问题及建议
第8章 参考文献
第9章 附录
THANKS !!!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考
展开阅读全文