软件工程导论 实验二 数据库设计

软件工程导论 实验二 数据库设计

实验要求

本实验需要完成包括:

  1. 实现概念结构设计,重点绘制ER图;
  2. 实现逻辑结构设计,重点设计数据库表以及绘制数据库表间的关系图。

实验报告下载

link

关于实验报告

这个实验和数据库的最后一个实验基本一样,虽然题目要求不同,但是过程大致相同,两个实验我都是按照数据库设计的六个阶段来写的,不过很多子目录是我自己根据实际情况(懒)改过的,如果想要完全系统写的话就参考教材上

1.需求分析
2.概念结构设计
3.逻辑结构设计
4.物理结构设计
5.数据库的实施
6.数据库的运行和维护

实验报告内容

1.需求分析

1.1 目的与任务

该数据库为支持化妆品测评平台而设计,意在于保护用户信息安全的前提,为广大消费者提供安全可靠的化妆品测评、购买平台。

1.2 初步分析

本系统主要实现功能分为前台功能、后台功能,前台功能面向站外用户,后台功能面向站内用户。
站外用户:游客、普通用户、高级用户
站内用户:系统管理员
前台功能:用户注册、登录、浏览商品、搜索商品、收藏商品、购买商品、鉴定商品、评价商品、订阅买手、评价买手、售前售后服务、买手入驻、发布测评、粉丝管理等模块。
后台功能:订单管理、用户管理、商品管理、评价管理等。

1.3 系统流程图

(先用文字描述,再加图片,所有的图片都是)

经过初步分析,该系统的主要功能模块有:
(1)鉴定:用户通过平台鉴定产品的真伪情况。
(2)评价:用户和买手对产品进行评价打分。
(3)搜索:搜索到想要的产品和品牌并进行订阅。
(4)查询:用户查询产品的真实评价,结合自身情况进行选择购买。
(5)购买:购买想要的正品产品。
(6)浏览:在商城中浏览产品品类及名称。
(7)收藏:收藏和订阅喜爱的产品、品牌及个人买手。
(8)服务:售前对产品进行咨询,售后享受产品的退换服务。

系统的全局流程图如下:
用户登录后验证买手身份,若买手身份验证失败,则进入用户使用模式,使用相应的用户功能,若买手身份验证成功则进入买手模式,则除用户可以使用的基本功能外,可以使用买手的功能;
与客户端并行的是平台处理过程,由系统管理员对订单、商品、用户、买手等进行管理。
在这里插入图片描述

1.4 数据字典

(这个是比较重要的一部分,如果可以的话把数据流和数据结构什么的都加上)
1.4.1 数据项
根据分析,该数据库的数据项如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.概念结构设计

2.1 实体及其属性

(把每个实体都写一遍)
经过初步需求分析,得出该数据库中的实体对象E-R图如下:
(1)普通用户
普通用户实体中包含属性:普通用户id、用户昵称、姓名、性别、地址、电话、密码、信用等级,其中主键属性为普通用户id。
在这里插入图片描述
(2)高级用户
高级用户实体中包含属性:高级用户id、用户昵称、姓名、性别、地址、电话、密码、信用等级,其中主键属性为高级用户id。
在这里插入图片描述
(3)买手
买手实体中包含属性:买手id、用户昵称、姓名、性别、地址、电话、密码、个人等级,其中主键属性为买手id。
在这里插入图片描述
(4)商品介绍
商品介绍实体种包含属性:商品id、名称、类型、价格、简介、图片、数量、发货地,其中主键属性为商品id。
在这里插入图片描述
(5)商品评价
商品评价实体中包含属性:评价id、商品id、买手id、评价、评分,其中主键属性为评价id。
在这里插入图片描述
(6)订单
订单实体中包含属性:订单id、用户id、商品id、下单日期、物流信息,其中主键属性为订单id。

在这里插入图片描述
(7)收藏夹
收藏夹实体中包含属性:收藏夹id、商品id、用户id、收藏日期,其中主键属性为收藏夹id。
在这里插入图片描述
(8)购物车
购物车实体中包含属性:购物车id、用户id、商品id、商品数量、商品类别、加购日期,其中主键属性为购物车id。
在这里插入图片描述

2.2 局部功能E-R模型

(把每个功能都写一遍)
(1)鉴定
鉴定表存放用户的鉴定任务信息,一个鉴定任务以用户发布为开始,到买手接单并鉴定完毕,用户确认结果后结束。一个用户可以发布多个鉴定任务,一个鉴定任务可以与多个商品有联系。用户每创建一个鉴定任务,鉴定表中将记录该任务的id和内容。
在这里插入图片描述
(2)评价
评价表存放用户发布的评价信息,一个评价任务以用户开始编辑为开始,到用户发布评价后结束。一个用户可以发布多条评价,一个评价可以与多个商品有联系。用户每发布一条评价任务,评价表中将记录该评价的id和内容。
在这里插入图片描述
(3)购买
购买表存放用户的购买信息,一个购买任务以用户成功提交订单为开始,用户成功支付、确认收货、评价订单后结束。一个用户可以购买多个商品,一个购买任务可以与多个商品有联系。用户每创建一个购买任务,鉴定表中将记录该任务的id和商品信息。

在这里插入图片描述
(4)搜索
搜索表存放用户的搜索商品的信息,一个搜索任务以用户输入关键词为开始,到用户查看搜索结果后结束。一个用户可以进行多次搜索,一次搜索与多个商品发生联系。用户每进行一次搜索,搜索表中将记录该用户的搜索历史。
在这里插入图片描述
(5)查询
查询表存放用户的查询商品的信息,一个查询任务以用户输入关键词为开始,到用户查看查询结果后结束。一个用户可以进行多次查询,一次查询与多个商品发生联系。用户每进行一次查询,搜索表中将记录该用户的搜索历史。
在这里插入图片描述
(6)浏览
浏览表存放用户的浏览商品的记录,一个浏览任务以用户点击商品进入详情界面为开始,到用户查看商品详情退出后结束。一个用户可以进行多次浏览,一次浏览与多个商品发生联系。用户每进行一次浏览,浏览表中将记录该用户的浏览历史。
在这里插入图片描述
(7)收藏
收藏表存放用户的收藏商品的信息,一个收藏任务以用户将商品加入收藏夹为开始,到用户将商品清理出购物车后结束。一个用户可以收藏多个商品,一次操作只能收藏一个商品,一个用户可以收藏多个商品。用户每进行一次收藏,收藏表中将记录该用户的收藏信息。
在这里插入图片描述
(8)服务
服务表存放用户获取服务信息,一个服务任务以用户提交服务申请为开始,到用户为服务打分后结束。一个用户可以享受多次售前售后服务,一次服务可以与多个订单发生联系。用户每获得一次服务,服务表中将记录该用户的服务信息。

在这里插入图片描述

2.3 全局E-R模型

(记得配文字描述)

该模型中的实体有:用户、订单、购物车、商品、收藏夹
实体间联系有:用户在购买商品与享受服务时与订单类实体发生多对多联系、用户在鉴定商品和购买、搜索商品时与商品实体发生联系、用户在收藏商品时与收藏夹发生联系、用户在评价与查询商品时与商品评价实体发生联系、用户在将商品加入购物车时与购物车实体发生联系。

在这里插入图片描述

3.逻辑结构设计

3.1 表间关系分析

(类似于这样子,参考老师发的资料)

数据库表间关系如下:
(1)一个商品只能属于一种商品分类,而一个商品分类项可以有很多个商品,
所以商品分类实体和商品实体的对应关系为1:n;
(2)一种商品可以有多条评论,但是一条评论只能对应一种商品,所以商品实体与评论实体的关系是1:n;
(3)一种商品可以被多次加入购物车,但是加入购物车的商品一种只能有一个,所以商品实体和购物车实体的对应关系是1:n;
(4)一个订单子项只能有一个商品,但是一个商品却可以成为多个订单子项,所以商品实体和订单子项的关系是1:n;
(5)一个用户可以对应多条评论信息,但是一条评论只能对应一个用户,所以用户实体和评论实体是1:n;
(6)一个用户可以购买多件商品,所以可以存在多条订单,但每一条订单只能对应一个用户,所以用户实体和订单实体的关系为1:n;
(7)一个用户的购物车可以有商品记录,但是一个购物车对应的东西只能属于一个用户,所以用户实体和购物车实体的关系是1:n;
(8)一个订单里面可以有多个订单子项,但是一个订单子项只能属于一个订单,所以订单实体和订单子项实体的对应关系是1:n;
(9)一个商品可以存在多条商品收藏信息,一条收藏信息只能对应一件商品,所以商品实体和收藏信息实体的关系为1:n;
(10)一个用户可以收藏多件商品,产生多条收藏信息,一条商品收藏信息只能对应一个用户,所以用户实体和收藏实体的收藏关系为1:n;
一个用户可以有多个收货地址,产生多条收货信息,但一个收货地址只能对应一个用户,所以用户实体和收货地址实体的对应关系为1:n;
(11)一个角色可对应对种管理员,但是一管理员只能对应一种角色,所以角色和管理员的对应关系是1:n;

3.2 表间关系图

(这个就是题目要求的的那个关系图 ,我是在Oracle上找了一下好像没有,然后安装了数据库可视化工具 Navicat Premium 15 连接数据库画的,有兴趣的同学研究下Oracle能不能画)
数据库中各个表间关系图如下:
在这里插入图片描述

3.3 E-R图关系模型的转换

(把创建的每张表对应E-R模型描述一遍,其实大部分都是复制粘贴重复的话,没有要写那么多的内容)

(1)普通用户表记录用户信息,其中主键为用户id,生成采用自动增长,而用户名可以自定义创建,但要求唯一,用户名和密码是用户身份验证的两个必要条件,所以要求非空约束,status表示状态:0:表示冻结、1:表示可用。
在这里插入图片描述
(2)高级用户表记录用户信息,其中主键为用户id,生成采用自动增长,而用户名可以自定义创建,但要求唯一,用户名和密码是用户身份验证的两个必要条件,所以要求非空约束,status表示状态:0:表示冻结、1:表示可用。
在这里插入图片描述
(3)买手信息表记录用户信息,其中主键为用户id,生成采用自动增长,而用户名可以自定义创建,但要求唯一,用户名和密码是用户身份验证的两个必要条件,所以要求非空约束,status表示状态:0:表示冻结、1:表示可用。在这里插入图片描述
(4)商品表记录着商品的所有信息,其中stock,sellNum,viewNum,commenNum,分别表示商品库存,销量,浏览量,评论数,这几个在商品最初上架的时候都是默认为0的。在这里插入图片描述
(5)评论表记录所有用户的评论信息情况,其中主键为评论id,生成采用自动增长,评论表中的type表评论类型,主要有评价类型:0:差评,1:好评,2:中评。
在这里插入图片描述
(6)订单表存放着用户的订单信息,一条订单往往会有很多条商品一起,一个订单已一个用户一次性购买为准,产生一个订单编号sn,其中订单id为表的主键,采用自动增长。在这里插入图片描述
(7)收藏表记录所有用户收藏商品情况,其中主键为收藏id,生成采用自动增长,价格默认保留小数点后两位。在这里插入图片描述
(8)购物车表记录所有用户将商品加入购物车的情况,其中主键为购物车id,生成采用自动增长,购物车里的所有信息是必须展示出来,所以采用非空约束。在这里插入图片描述
(9)地址表记录所有用户地址信息,其中主键为地址id,生成采用自动增长,地址所有信息关系到用户是否能正确收到货,所以要求是非空约束。在这里插入图片描述
(10)超级管理员只有一个,但是可以创建不同权限的普通管理员,所以此表记录着不同角色的管理员,角色id为表的主键,采用自动增长。每个名字的管理员已被赋予了不同的权限,所以只需要选择不同的名字即可得到对于的权限,所以名字为非空约束。在这里插入图片描述
(11)此表记录着管理员的一些基本信息,主键为管理员id,采用自动增长,roleid为所属角色,sex为性别,0代表未知,1代表男,2代表女,采用默认值0即未知性别。在这里插入图片描述

4.物理结构设计

(这个要根据具体使用的数据库软件来写,自行搜索就可以)

4.1 存取方法

在Orale数据库中不同类型的数据文件,数据文件是真实存在的,数据库为数据库中的所有数据,分配逻辑数据库空间。数据库空间分配的单位是数据块、区段和段。由很多块组成区,很多区组成段,很多段组成表空间。Oracle数据库至少由两个称为表空间的逻辑存储单元组成,它们共同存储数据库的所有数据。必须拥有SYSTEM和SYSAUX表空间,一个表空间由一个或多个名为datafiles的数据文件组成,这些文件是Oracle数据库运行的操作系统上的物理结构文件,数据是存储在组成数据库的每个表空间的数据文件中。

4.2 评价结构

freespace空闲空间可以自动管理,也可以手动管理,空闲空间在数据库段内自动管理。段内空闲/使用的空间使用位图跟踪,而不是使用空闲列表。自动分段空间管理提供了更好的空间利用率,特别是对于行大小差异很大的对象;更好地对并发访问中的变化进行运行时调整(并发:一个表能被多个用户使用)
在性能/空间利用率方面,能更好的多实例行为(在创建本地管理的表空间时,指定自动分段空间管理。然后,该规范应用于随后在这个表空间中创建的所有段)。

5.数据库的实施

(这里就根据自己用的数据库自行描述)

6.数据库的运行和维护

(这里占篇幅,嘻嘻)

6.1 数据库的转储和恢复

数据库的转储与恢复是系统正式运行后最重要的维护工作之一。

6.2 数据库的安全性、完整性控制

在数据库运行过程中,由于应用环境的变化,对安全性的要求也会发生变化,系统中用户的密级也会改变,需要数据库管理员不断修正以满足用户要求。

6.3 数据库性能的监督、分析和改造

在数据库运行过程中,监督系统运行,对监测数据进行分析。

6.4 数据库的重组织与重构造

数据库运行一段时间后,由于记录不断增删改,将会使数据库的物理存储情况变坏,降低数据的存取效率,使数据库性能下降,这时数据库管理员就要对数据库进行重组织或部分重组织(只对频繁增、删的表进行重组织)。关系数据库管理系统一般都提供数据重组织的实用程序,在重组织过程中,按原设计要求重新安排存储位置、回收垃圾、减少指针链等,提高系统性能。

  • 11
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值