数据库原理实验三 数据库综合设计实验 实验报告

数据库 专栏收录该内容
6 篇文章 1 订阅
                                 实验三 数据库系统设计综合实验
1、实验目的
   通过实验,使学生掌握数据库系统设计和开发的一般方法,能够设计并实现简单的数据库系统。
2、实验要求
   熟悉实验室实验环境,掌握实验预备知识,了解实验中故障排除的基本方法。实验中根据实验要求完成
相应的任务,并独立完成实验报告。
3、实验内容
   设计的数据库系统可从以下题目中选择,但不限定于以下题目,可自由选择。要求独立完成下列系统所需的
数据库的需求分析、概念结构设计、逻辑结构设计、物理结构设计;任选自己熟悉的数据库管理系统完成
数据库的搭建。
4、系统题目参考:
(1)学生成绩管理系统
(2)网上书城系统
(3)进销存系统
(4)酒店客房管理系统
(5)图书馆管理系统



我的选题:同校学生互助问答平台的设计与实现
说明:实验三的实验报告分成两个文档,但放在同一个Word文档中:
1、需求分析规格说明书
2、详细设计文档
                                     需求分析规格说明书

项目名称 <同校学生互助问答平台的设计与实现>
文档类别 <说明>
文档编号 <128>
版 本 <V1.0>
密 级 <秘密>
二〇二〇年六月二十一日

目录
0、修订历史记录……………………………………………………………………………4
1、导言………………………………………………………………………………………4
1.1、编写目的………………………………………………………………………………4
1.2、背景……………………………………………………………………………………5
1.3、项目范围………………………………………………………………………………5
1.4、参考资料………………………………………………………………………………5
2、产品……………………………………….………………………………………………5
2.1、产品前景………………………………………………………………………………5
2.2、产品功能………………………………………………………………………………6
2.3、运行环境………………………………………………………………………….……6
3、功能性需求…………………………………………………………………………….…6
3.1、系统功能需求…………………………………………………………………………6
3.2、用例图…………………………………………………………………………………7
3.3、用例列表………………………………………………………………………………8
4、性能……………………………………………………………………………….……10
4.1、性能需求………………………………………………………………………………10

在这里插入图片描述

1、导言

1.1、	编写目的
一、
    该文档首先给出项目的整体结构和功能结构概貌,试图从总体架构上给出整个系统的轮廓。同时对功能
需求、性能需求进行详细的描述。便于用户、开发人员进行理解和交流, 反映出用户问题的结构,可以作为
软件开发工作的基础和依据以及确认测试和验收的依据。
二、
本文档面向的预期读者对象:
1、项目经理:项目经理可以根据该文档了解预期产品的功能,并据此进行系统设计、项目管理。
2、设计员:对需求进行分析,并设计出系统,包括数据库的设计。
3、程序员:了解系统功能,编写《用户手册》。
4、测试员:根据本文档编写测试用例,并对软件产品进行功能性测试和非功能性测试。
5、用户:了解预期产品的功能和性能,并与分析人员一起对整个需求进行讨论和协商。 
在阅读本文档时,首先要了解产品的功能概貌,然后可以根据自身的需要对每一功能进行适当的了解。
1.2、	背景
1、网上论坛是一种供人们进行交流的网络空间。它不受时间和空间的约束,论坛用户可以发表自己的观点,
大家一起探讨某个问题。实现用户与用户间的交流,利用网络经济而又快捷地与外界进行各种信息沟通,取得
更有用的信息资源。目前,网上论坛已不是新事物,许许多多的别具特色的论坛在网络上随处可见。
2、对当代学生而言,刷论坛更是家常便饭。虎扑,知乎,小红书等论坛都可见他们的身影。男生热衷于篮球、
球鞋等论坛。女生沉迷于美妆美食服饰等论坛。对于他们而言,在论坛上交流比面对面的交流显得更自在。这
是当代学生的现状。因此本项目将开发一个互助问答平台,以便学生们线上交流分享经验。
1.3、	项目范围
该项目要求实现客户前端和管理后端。
1)客户端主要功能模块:1、个人登录及个人信息资料修改
              2、搜索、浏览信息
              3、提问与回答
              4、纠错与删除、举报
5、退出登录
客户端用户为游客的话只有搜索、浏览问答信息和申请下载某文件的功能。

2)管理端主要功能模块:1、登录及团队信息资料修改
              2、搜索、浏览信息
              3、管理用户及其问答(警告违规用户与删除违规信息等)
              4、退出登录
1.4、参考资料
[1] 韩万江、姜立新.《软件工程案例教程》软件项目开发实践第3版,
Software Engineering A Case Study Approach ,书号978-7-111-50163-3  机械工业出版社
[2] 张宇波、王善勤.《基于Java EE的校园问答系统的设计与实现别》,
文章编号:1671-5993(2014)03-0046-06,[
Online]Available: https://www.doc88.com/p-5179507306223.html (Sep,2014)
[3]骑着飞机打乌鸦小组.《师生问答平台网站需求规格说明书》,
 [Online]Available:https://www.cnblogs.com/pirigg/p/10838686.html(May 8,2019)

2、产品

2.1、产品前景
    伴随着移动互联网的逐步成熟,问答平台的竞争也日益激烈,它们为众多网名搭建了一个强大的信息获取
交流平台,因此问答平台也越来越受人们关注,比较有影响力的有百度知道、知乎、果壳及若帮等。编者也
经常去这些平台上帮助网友回答一些关于互联网和心理健康等方面的问题,同事也经常在这些平台上去寻找
自己需要的知识。
    因此,开发一个同校学生互助问答平台挺现实的,在这个平台上学生们可以有针对性的提问或者分享自己
的经验,即使没有百度知道的回答那么多元化,没有知乎的答案相对专业化,但在校生在互助问答平台上可以
更加有专一性地寻找自己需要的问题的答案或者发出关于校园内自己不懂的问题,相信可以很快得到其他用户
的帮助。网络信息流通突破了时间和空间的限制,满足了学生快节奏生活、提高工作效率、更加深入了解校园
文化、通过互联网自主学习的需要,同时,实现校园信息资源共享也起着重要作用,也对专业内涵建设具有
良好的促进作用。
2.2、产品功能
为了满足学生日常问答的需要,本项目计划阶段完成如下三个核心功能:
1、在校生的搜索、浏览、提问、回答、删除问答功能
2、纠错功能,发现有错误的问题或者回答,可直接向用户本身发送纠错信息,同时也可接收别人发来的
纠错信息。
3、举报功能,如果提问的话题敏感、不合理,用户可以向管理员举报,管理员收到举报信息后对内容进行
审核。
【说明】本项目实现的主要功能也已在导言部分的项目范围中详细写出了。
2.3、	运行环境
服务器配置如下
操作系统:Windows XP及以上
CPU:Intel i5酷睿双核及以上
内存:8G及以上
硬盘空间:100G以上
软件配置如下:
开发工具:MyEclipse
数据库:SQL Server
Web服务器:Tomcat
3、功能性需求
3.1、系统功能需求:
1、在校生:可凭借学号和初始密码进行登录平台,可以查看个人资料,搜搜问答信息,提可以发表自己的问题
,可以回答其他人的问题,删除自己曾发布的问答信息,举报违规用户,纠错,退出平台等。
2、管理员:可凭借管理员账号登录平台,查看管理账号信息、搜索问题,删除别人发布的不当内容的信息,
警告违规用户,处理游客申请,退出平台等。
3、游客:不允许注册,但可搜索、浏览问答信息,并可申请下载需要的文件。

3.2、用例图
1)在校生用例图
在这里插入图片描述
2)管理员用例图
在这里插入图片描述
3)游客用例图
在这里插入图片描述
3.3、用例列表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、性能

4.1、性能需求
在这里插入图片描述
在这里插入图片描述

①按照规定的格式输入,否则系统提示错误并要求重新输入。
②搜索的时候所有包含关键字的记录保证全部搜索到。
③程序响应时间在人的感觉和视觉范围内,长时间无响应应提示用户刷新。
④每个问题可以有多个用户回答,并且得到相应的处理。
⑤能够适应迭代开发。
⑥平台的界面要求如下:
1)页面内容:各类问答信息内容准确,行文格式统一、规范、明确,菜单设置和布局合理,传递的信息准确并
具有时效性。
2)导航结构:页面具有明确的导航提示,且便于理解,方便用户使用。
3)技术环境:页面大小适当,能用各种常用浏览器以不同分辨率浏览,无错误链接和空链接。
4)艺术风格:界面、版面形象清新悦目、布局合理、字号大小适宜、字体选择合理,前后一致,美观大方,
  色彩和谐自然,与内容相协调。
⑦响应时间需求:
    当用户登录时,平台应该及时地进行反应,反应的时间在3秒以内,平台应能检测出各种非正常情况,如与
设备的通信中断,无法连接数据库服务器等,避免出现长时间等待甚至无响应。
⑧可靠性需求
    平台应保证在7*24小时内不宕机,保证1000人以上可以同时在客户端登录,平台正常运行,正确提示相关
内容。
⑨可扩展性要求
    平台设计要求能够体现扩展性要求,以适应将来功能扩展的需求。
⑩系统安全性需求:
    平台有严格的权限管理功能,各功能模块需相应的权限方能使用(如在校生、管理员、游客具有不同的
    权限),平台能够防止各类误操作可能造成的数据丢失、破坏。防止用户非法获取网页以及内容。



                                      详细设计文档

目录
1、概念结构设计………………………………………………………13
1.1、实体属性图………………………………………………………13
1.2、绘制E-R图…………………………………….…………………18
2、逻辑结构设计………………………………………………………19
2.1、数据库表…………………………………………………………19
2.2、数据库表间关系…………………………………………………23
3、物理结构设计………………………………………………………25
3.1、定义及步骤………………………………………………………25
3.2、设计………………………………………………………………26

1、概念结构设计

1.1、实体属性图
根据需求分析,可以得出以下数据项:
①用户管理:用户实体:id、用户名、密码、入学时间、真实姓名、性别、邮箱。
在这里插入图片描述
②管理员管理:管理员实体:管理员id、名称、密码、头像地址、真实姓名、性别、邮箱。
在这里插入图片描述
③回答管理:回答实体:用户id、回答时间、回答字数。
在这里插入图片描述
④提问管理:提问实体:用户id、提问时间、提问字数、备注、手机号、用户邮箱。
在这里插入图片描述
⑤举报管理:举报实体:举报用户id、被举报用户id、举报时间、举报内容、举报原因。
在这里插入图片描述
⑥下载管理:下载实体:下载时间、下载内容、申请下载原因。
在这里插入图片描述
⑦警告管理:警告实体:管理员id、管理员名称、被警告用户id、警告时间、警告原因、备注。
在这里插入图片描述
⑧删除信息管理:删除信息实体:管理员id或用户id、管理员名称或用户名、删除时间、删除内容、删除原因。
在这里插入图片描述
⑨纠错管理:纠错实体:纠错用户id、被纠错用户id、纠错内容、纠错原因、纠错时间。
在这里插入图片描述
⑩搜索管理:搜索记录实体:管理员id或用户id、管理员名称或用户名、搜索时间、搜索内容。
在这里插入图片描述
11、角色管理:角色实体:角色id、角色名称、备注。
在这里插入图片描述

1.2、绘制E-R图
E-R图是我们常用的对数据库进行结构设计方法,根据数据库的需求分析进行对实体表结构进行设计,从而确定
各实体之间的关系。
(1)数据库表间关系如下:
1)一个用户可以对应多条回答,但是一个回答只能对应一个用户,所以用户实体和回答实体的关系是1:n;
2)一个用户可以对应多条提问,但是一个提问只能对应一个用户,所以用户实体和提问实体的关系是1:n;
3)一个用户可以发起多条举报,但一条举报只能对应一个用户,所以用户实体和举报实体的关系是1:n;
4)一个用户可以对应多次下载,但一次下载只能对应一个用户,所以用户实体和下载实体的关系是1:n;
5)一个用户可以对应删除多条信息,但删除一条信息只能由一个用户进行,所以用户实体和删除信息实体的
  关系是1:n;
6)一个用户可以发送多条纠错信息,一条纠错信息也可由多个用户发起,所以用户实体和纠错实体的
  关系是n:n;
7)一个用户可以发起多个搜索信息,一个搜索也可由多个用户发起,所以用户实体和搜索实体的关系是n:n;
8)一个管理员可以接收处理多条举报,但一条举报只能对应一个管理员处理,所以管理员实体和举报实体
  的关系是1:n;
9)一个管理员可以发出多条警告,但一条警告只能由一个管理员发出,所以管理员实体和警告实体的
  关系是1:n;
10)一个管理员可以处理多条下载文件的申请,但一条申请只能由一个管理员处理,所以管理员实体和
   下载实体的关系是1:n;
11)一个管理员可以删除多条信息,但一条信息只能由一个管理员删除,所以管理员实体和删除信息实体
    的关系是1:n;
12)一个管理员可以发起多个搜索信息,一个搜索也可由多个管理员发起,所以管理员实体和搜索实体
   的关系是n:n;
13)一个角色可对应多种管理员,但是一个管理员只能对应一种角色,所以角色实体和管理员实体的
   关系是1:n;
14)一个提问可以对应多条回答,但一条回答只能对应一个提问,所以提问实体和回答实体的关系是1:n;

【说明】因为篇幅原因,此处的同校学生互助问答平台的基本E-R图省略了其中的实体属性的绘制。
(实体属性图在前面也画过了)

在这里插入图片描述

2、逻辑结构设计

2.1、数据库表

用户表(consumer)记录用户信息,其中主键为用户id(userid),用户名可自定义创建,密码(upassport)是用户身份验证的必要条件。其他一些属性为昵称(unickname)、入学时间(utime)、真实姓名(uname)、性别(usex)、用户邮箱(uemail)。

在这里插入图片描述
管理员表(administrators)记录管理员信息,其中主键是管理员id(adid),其中表中的adid属性参照的是角色表(role)中的角色id(rid),密码(adpassport)是管理员身份验证的必要条件。其他属性为名称(adnickname)、头像地址(adadd)、真实姓名(adname)、性别(adsex)、邮箱(ademail)。

在这里插入图片描述
超级管理员只有一个,但是可以创建不同权限的普通管理员,所以此角色表(role)记录着不同角色的管理员,角色id(rid)为表的主键,表的角色id(rid)属性被管理员表(administrators)的管理员id(adid)属性所参照。其余属性为角色名称(rname)、备注(rnote)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
警告表(warn)记录了管理员警告违规用户的一些信息,其中主键是管理员id(wid)和被警告用户id(wedid),前者参照的是管理员表(administrators)中的管理员id(adid),后者参照的是用户表(consumer)中的用户id(userid),其余属性还有管理员名称(wnickname),此处管理员名称并非外码,不做多加要求,警告时间(wtime)、警告原因(ereason)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.2、数据库表间关系图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、物理结构设计

3.1定义及步骤
物理结构设计是利用已确定的逻辑数据结构以及DBMS提供的方法、技术、以较优的存储结构、数据存取路径、
合理的数据存储位置以及存储分配,设计出一个高效的、可实现的物理数据库结构。由于数据库的物理结构
依赖于给定的计算机软件及硬件环境,依赖于所选用的DBMS。因此,设计数据库的物理结构应充分考虑数据库
的物理环境,例如数据库存取设备、存储组织和存取方法,数据库管理系统及其他辅助性软件工具等通常关系
数据库的物理结构设计主要包括以下内容:
(1)确定数据的存取方法
存取方法是快速存取数据库中的数据的技术,数据库管理系统一般都提供多种存取方法,具体采取哪种存取
方法由系统根据数据的存储方式来决定,用户一般不能干预。
用户通常可以利用建立索引的方法来加快数据的查询效率。如果建立了索引,系统就可以使用索引查找方法,
索引方法实际上就是根据应用要求确定在关系的哪个属性或哪些属性上建立索引,确定在哪此属性上建立
复合索引,哪些索引要设计为唯一索引以及哪些索引要设计为聚簇索引,聚簇索引是将索引在物理上有序排列
后得到的索引。需要注意的是,索引一般可以提高查询性能,但会降低数据修改性能。因为在修改数据时,
系统要同时对索引进行维护,使索引与数据保持 一致。维护索引要占用相当多的时间,而且存放索引信息也会
占用空间资源 因此在决定是否建立索引时,要权衡数据库的操作,如果查询多,而且对查询的性能要求
比较高,则要考虑多建一些索引。如果数据更改多,并且对更改的效率要求比较高,则应考虑少建些索引,
建立索引的原则下,满足以下条件之一的,可以在有关属性上建立索引:
①主键和外键上通常建立索引。
②如果一个属性经常在查询条件中出现,则考虑在这个属性 上建立索引。
③如果一个属性经常作为更大值和更小值等聚集函数的参数,则考虑在这个属性上建立索引。
④如果一个属性经常在连接操作的连接条件中出现,则考虑在这个属性上建立索引。
⑤对于以查询为主或者只查询的关系表,只要需要且存储空间允许,可以多建索引满足以下条件之一的,
不宜建立索引。
①不出现或者很少出现在查询条件中的属性。
②属性值是可能取值的个数很少的属性。
③属性值分布严重不均的属性。
④经常更新的属性和表。因为在更新属性值时,必须对相应的索引做出修改,这就使系统为维护索引付出较大的
 代价。
⑤属性值过长,在过长的属性 上建立索引,索引所占的存储空间比较大,而且索引的级数随之增加,将会带来
 许多不便。
⑥太小的表不值得使用索引。

(2)确定数据的存储结构
物理结构设计中一个重要的考虑因素就是确定数据记录的存储方式。
常用的存储方式有 :
①顺序存储。这种存储方式的平均查找次数。
②散列存储。这种存储方式的平均查找次数由散列算法决定。
③聚簇存储。这种存储方式是指将不同类型的记录外配到相同的物理区域中,充分利用物理顺序性的优点,提高
 数据访问速度。即将经常在一起使用的记录聚簇在一起,以减少物理输入/输出次数。

总结:
数据库在物理设备上的存储结构和存取方式称为数据库的物理结构。它依赖于选定的数据库管理系统。为一个
给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。
数据库的物理设计通常分为两步:
(1)确定数据库的逻辑结构,在关系数据库中主要指存取方式和存储结构。
(2)对物理结构进行评价,评价的重点是时间和空间效率。
    如果评价结果满足原设计要求,则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时
甚至要返回逻辑设计阶段修改数据模型。
3.2、设计
(1)确定存取方式
数据库系统是多用户共享的系统,对同一个关系要建立多条存取路径,才能满足多用户的多种应用要求。物理
结构设计的任务之一是根据关系数据库管理系统支持的存取方法确定选择哪些存取方法。存取方式是快速存取
数据库中数据的技术。数据库管理系统一般提供多种存取方式。常用的存取方法为索引方法和聚簇方法。
此处我的数据库管理系统的很多表会有大量的数据信息且查询操作频繁,因此采用索引方法可以提高数据操作
效率。但索引的建立和重建及其维护本身代价也挺大,所以应根据不同的表选择合适的存取策略。考虑搜索表
及删除表等要进行频繁的插入操作,因此可选择建立非聚簇索引来提高操作效率。对于使用频率较低,如下载
表,则不应该建立索引,因为这会耗费大量维护代价,不值得。
一般来说关系数据库管理系统都会在建表时自动地建立主码索引,所以有的表可以直接使用主码索引便可尽快
地找到对应的元组。当然有需要的话也可以再在相应的属性上建立联合索引等,这会更进一步加快存取数据库
中数据的速度,但同时要考虑到其维护代价。

索引截图:
在这里插入图片描述
在这里插入图片描述

(2)确定存储结构
    为了提高系统性能,应根据应用情况将数据的易变部分与稳定部分,经常存取部分和存取频率较低部分
分开存放。
例如,数据库数据备份、日志文件备份等,由于只在故障恢复时才使用,而且数据量很大,可以考虑存放在
磁带上。可以将比较大的表分别放在两个磁盘上,以加快存取速度,这在多用户环境下特别有效。可以将
日志文件与数据库对象(表、索引等)放在不同的磁盘以改进系统的性能。
关系数据库管理系统产品一般都提供了一些系统配置变量和存储分配参数,供设计人员和数据库管理员对
数据库进行物理优化。

(3)评价物理结构
数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种
方案。评价物理数据库的方法完全依赖于所选用的关系数据库管理系统,主要是从定量估算各种方案的存储
空间、存取法时间和维护代价入手,对估算结果进行权衡、比较,选择出一个较优的、合理的物理结构。
一般来说,消除一切冗余数据虽能够节约存储空间和减少维护代价,但往往会导致检索代价的增加,必须进行
权衡,选择一个折中方案。

数据库原理实验三—实验报告到此结束!希望能多大家有所帮助,如发现错漏可以留言修正或补充,一起进步呀,谢谢!😊

欲浏览更多博文? 速戳–>大白的博客,欢迎来访噢!😊😊

  • 10
    点赞
  • 0
    评论
  • 40
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值