1、 《数据库原理》课程设计报告 题 目: 姓 名: 学 号: 专业班级: 指导老师: 年 月 日 摘 要 /*(300字左右,宋体,五号)课程设计内容摘要主要是对撰写过程中实践、实验、研究的内容、方法和得到的主要结果的完整概括。 关键词: /*(3 – 5个,各个词之
2、间用“;”分割,宋体,五号,黑色)*/ 目录 第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、 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
4、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 项目背景 学校每年都会采购和发放各种教材,但目前这些工作基本都由人工操作完成。但是为了配合老师上课的需要,教材发放的速度必须很快。因此,在教材发放的过程中,极易造成教材的损失。并且由于都是手工管理的方式,极易造成一些单据的损失。所以为了提高管理效率以及人力、物力的节省,利用计算
5、机及设计教材订购系统就不失为一种好方法。 1.2 项目定义 主要是针对大学生教材订购。完成学生对哪些教材需要数据的录入,以及对学生购书单数据和发货单数据的存储。 1.3 开发环境 运行环境:Mysql以及java程序 数据库:MYSQL 第2章 需求分析 2.1 需求分析的目标与任务 2.1.1 信息需求 用户需要输入自己想要的书籍以及数量。需要存储的是购书数量,购书者,采购者,采购数量。以及发货者和发货数量。 2.1.2 处理需求 用户需要完成什么处理功能,对处理的响应时间有什么要求。给出功能模块图,画在需求分析阶段成果中。 2.1.3 安全性和完整性要求 1
6、 安全性要求 安全性可先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性。 2) 完整性要求 系统完整性要求系统中数据的正确性以及相容性。可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。 2.2 需求分析阶段成果 2.2.1 XX系统的业务流程图 2.2.2 XX系统的功能模块图: 2.2.3 XX系统的数据字典 (a) 数据项:数据项是不可再分的数据单位,即数据的最小组成单位。例: 表1.1 数据项列表 数据项编
7、号 数据项名 数据项含义 与其它数据项的关系 存储结构 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
8、 书籍名 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
9、 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
10、 (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,BUYB
11、OOK_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_NAM
12、E, 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
13、 购书单 教师递交的购书单 教师 购书单审核模块 BOOK_NAME,IACKBOOK_NUMBER A2 领书单 系统生成的领书单 生成领单和生成领书单数据处理模块 书库发货人员 BOOK_NAM,TAKEBOOK_NUBER,TAKEBOOK_DATE A3 发货单 系统生成的发货单 生成发货单数据和发货单的处理模块 教材发行人员和教师 BOOK_NAME, SENDBOOK_DATE, T_NAME, SENDBOOK_NUMBER A4 缺书单 系统生成的缺书单 生成缺书单数据和缺书单处理模块 采购人员 BOOK_NAME,IACKBOOK
14、NUMBER A5 进货单 系统生成的进货单 生成进货单数据和进货单的处理模块 教材发行人员 WORKER_NAME,WORKER_ID, TELEPHONE A5 书籍信息 教材发行人员管理 教材发行人员 修改库存和书籍信息处理模块 BOOK_ID,BOOK_NAME, BOOK_PUBDATE, BOOK_WRITER, BOOK_PUB (d)数据存储:数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。它可以是手工文档或手工凭单,也可以是计算机文档。 数据存储 编号 名称 简述 组成 D1 购书表 存放购书数据的表格
15、 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)处理过程:处理过程
16、的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述该处理过程的说明性信息。 处理逻辑 编号 名称 输入数据流 处理 输出数据流 B1 审核购书单 购书单 对购书单进行处理看看有没有缺书 审核后的购书单 B2 生成领书单数据和领书单 购书单数据 通过查看购书单数据,生成领书单和领书单数据 领书单和领书单数据 B3 生成发货单数据和发货单 领书单数据 通过领书单数据给仓库,从而产生发货单数据和发货单 发货单和发货单数据 B4 与库存进行比较,从而生成缺书单数据和缺书单 审核后的购书单 购书单与库存进行比较,缺少某些书,从而形成缺书吧单
17、和缺书数据 缺书单和缺书单数据 B5 生成进货单数据和进货单 缺书单数据 通过缺书单数据可知缺少哪些书,从而产生要进哪些货 进书单和进书单数据 B6 修改库存和书籍信息 书籍信息 通过进书单、领书单和发货单,知道少了哪些书和进了哪些书,进行库存的修改 概念设计 2.3 概念设计的目标与任务 (1)设计分E-R图…; (2)生成初步E-R图…; (3)生成基本E-R图…; (4)生成全局E-R图…; 实体与属性间的两条准则:作为“属性”,不能再具有需要描述的性质。“属性”不能与其他实体具有联系。抽象出实体与属性,画出各子系统的分E-R图。然后采用逐步
18、集成的方式将各分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图转换成
19、关系模型、模型优化、数据库模式定义、用户子模式设计。 3.2 阶段结果 3.2.1 将E-R图转换为关系模型 递交(学号,数量,职工号) 订购(职工号,订购量,书籍编号,订购日期) 采购(编号1,采购量,书籍编号,采购日期) 发售(编号2,发售量,书籍编号,发售日期) 发货(编号3,发货量,书籍编号,发货日期) 学生(学号,姓名,院系,手机号) 老师(职工号,姓名,院系,手机号) 书籍(书籍编号,书籍名,作家,出版日期,出版社) 采购员(编号1,姓名,手机号) 发货员(编号3,姓名,手机号) 教材发行人员(编号2,姓名,手机号) 3.2.2 模型优化 递交(学
20、号,数量,职工号) 订购(职工号,订购量,书籍编号,订购日期) 采购(编号1,采购量,书籍编号,采购日期) 发售(编号2,发售量,书籍编号,发售日期) 发货(编号3,发货量,书籍编号,发货日期) 学生(学号,姓名,院系,手机号) 老师(职工号,姓名,院系,手机号) 书籍(书籍编号,书籍名,作家,出版日期,出版社) 采购员(编号1,姓名,手机号) 发货员(编号3,姓名,手机号) 教材发行人员(编号2,姓名,手机号) 3.2.3 数据库模式定义 递交信息表 列名 数据类型 可否为空 说明 S_ID VARCHAR(10) NOT NULL 学生学号 T
21、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
22、 采购人员编号 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 发售日期 发货信息表 列名 数据类型 可否为空
23、 说明 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)
24、 学生电话号码 教师信息表 列名 数据类型 可否为空 说明 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 VAR
25、CHAR(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 工作
26、人员编号 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) 作用(共性:提供数据保
27、密和安全保护机制) V-1 采购信息 便于查询采购员采购了那些书 V-2 订购信息 便于借阅历史信息的查询 V-3 发售信息表 便于查询教材发行人员发了书籍信息给 书籍发货人员 V-4 发货信息表 便于书籍发放人员发了的书籍信息 第4章 物理设计((235~238) 4.1 物理设计阶段的目标与任务 数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务: (1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构; (2) 对物理结构进行评价,评价的重点是时间和空间效率。 4.2 阶段结果
28、 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索引存储方法,所以在查找数据时,速度还是比
29、较快的。但是有时候更新表或者在现有表中插入某个属性之后,改动的范围就会牵涉到很大的范围,比较麻烦。所以适用范围还是比较窄的,数据存储量还是比较少的。采用聚簇存取方法,则能大大改善数据库系统。 第5章 数据库实施阶段 5.1 建立数据库、数据表、视图、索引 5.1.1 建立数据库 CREATE DATABASE bookdatabase 5.1.2 建立数据表 CREATE TABLE 递交信息表 CREATE TABLE 订购信息表 CREATE TABLE 采购信息表 CREATE TABLE 发售信息表 CREATE TABLE 发货信息表 CREAT
30、E 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 发货信息
31、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 采购员信息表 A
32、DD 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_P
33、K 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(WORKE
34、R_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 CONSTRAI
35、NT 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_F
36、K1 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 !!! 致力为企业和个人提供合同协议,策划案计划书,学习课件等等 打造全网一站式需求 欢迎您的下载,资料仅供参考






