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

目录

  • 软件工程导论 实验二 数据库设计
  • 实验要求
  • 实验报告下载
    • 关于实验报告
  • 实验报告内容
    • 1.需求分析
      • 1.1 目的与任务
      • 1.2 初步分析
      • 1.3 系统流程图
      • 1.4 数据字典
    • 2.概念结构设计
      • 2.1 实体及其属性
      • 2.2 局部功能E-R模型
      • 2.3 全局E-R模型
    • 3.逻辑结构设计
      • 3.1 表间关系分析
      • 3.2 表间关系图
      • 3.3 E-R图关系模型的转换
    • 4.物理结构设计
      • 4.1 存取方法
      • 4.2 评价结构
    • 5.数据库的实施
    • 6.数据库的运行和维护
      • 6.1 数据库的转储和恢复
      • 6.2 数据库的安全性、完整性控制
      • 6.3 数据库性能的监督、分析和改造
      • 6.4 数据库的重组织与重构造

实验要求

本实验需要完成包括:

  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 数据库的重组织与重构造

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

软件工程导论 实验二 数据库设计相关推荐

  1. 软件工程导论实验报告二(类图设计)

    软件工程导论实验报告 实验二 类图设计 2.实验目的 (1)掌握绘制类图的基本步骤: (2)掌握识别类的方法. 3.实验内容 利用StarUML或其它UML绘图工具,绘制系统中的类图. (1)图书管理 ...

  2. 软件工程实验:数据库设计

    前言 本实验的主要内容是数据库设计,即如何根据需求分析,设计合理的数据模型,创建和管理数据库,以及实现数据的增删改查等操作.数据库设计是软件工程的重要组成部分,它涉及到数据的存储.组织.查询和处理等方 ...

  3. 软件工程导论-实验报告-软件测试

    软件工程导论-实验报告-软件测试 [问题描述] 一元二次方程式 ax2+bx+c=0的求根程序有以下功能: 1)输入A.B.C三个系数: 2)根据根的性质的:两个相等或不相等的实根,或无实根,输出相应 ...

  4. 实验五——数据库设计实验

    实验五--数据库设计实验 一.实验题目 二. 实验内容和要求 三.实验步骤 1.分析问题 2.概念结构设计 3.逻辑结构设计 四.实验心得体会 一.实验题目 数据库设计实验 二. 实验内容和要求 掌握 ...

  5. 数据库实验七 数据库设计

    实验七 数据库设计 一.实验目的 1.掌握数据库设计基本方法及数据库设计工具 二.实验内容和要求 1.使用E-R图描述概念模型 2.将E-R模型转换成关系模型 3.生成创建数据库模式的SQL语句 要求 ...

  6. 数据库系统原理 实验3 数据库设计

    数据库系统原理 实验3 数据库设计 一. 实验目的 1.理解概念模型的意义,掌握根据给定业务需求描述建立相应概念模型的方法,并采用适当的图形化建模方法(如陈氏表示法的ER图或Martin表示法的IE鸦 ...

  7. 实验三 mysql数据库与表的创建_实验二 数据库和表的创建与管理

    实验二 数据库和表的创建与管理 创建用于企业管理的员工管理数据库,数据库名为YGGL中,YGGL数据库中包括三个表:Employees(员工信息表).Departments(部门信息表).Salary ...

  8. 数据库实验5 数据库设计实验

    前言:不知道啥原因,最后设计出来少了一个表,无语 实验5 数据库设计实验 1.实验目的 掌握数据库设计基本方法及数据库设计工具. 2.实验内容和要求 掌握数据库设计基本步骤,包括数据库概念结构设计.逻 ...

  9. 数据库 ----- 实验五:题目:实验五 数据库设计与数据库编程

    [实验目的和要求] 1.理解和掌握数据库设计的方法和主要步骤: 2.熟练掌握概念结构的建立方法和常用表达工具(E-R 图): 3.熟练掌握概念结构到逻辑结构的转换原则: 3.掌握SQL 流程控制语句. ...

  10. 前后端分离微服务管理系统项目实战SaaS-HRM项目(二)——数据库设计与前端框架

    文章目录 二.数据库设计与前端框架 1.多租户SaaS平台的数据库方案 <1>.多租户概述 <2>.需求分析 <3>.多租户的数据库方案分析 (1).独立数据库 ( ...

最新文章

  1. java 科学计算法
  2. 一道题教会你回溯、动态规划、贪心
  3. leetcode90. 子集 II
  4. 消费者驱动的契约测试_告诉我们您想要什么,我们将做到:消费者驱动的合同测试消息传递...
  5. Java 8 StringJoiner
  6. VS.NET版本与VC版本对应关系
  7. Net学习日记_ASP.Net_MVC_新语法笔记
  8. php csv linux,PHP处理CSV表格,用fgetcsv和fputcsv在数组和CSV间互转
  9. 统一横轴墨卡托投影(UTM)
  10. 上班一族“黑话”辞典大曝光
  11. RK3568开发笔记-buildroot移远EC20模块调试记录
  12. 周鸿祎:做到这五点,才算是好用户体验
  13. ROS学习笔记之——robot_localization包
  14. mysql中selec sum返回null的解决方法
  15. 微软宣布Azure DNS全面通用
  16. 在职场如何应对他人的关注
  17. 本地连接-IP和DNS设置
  18. 腾讯系持续集成(CI)方案
  19. 北交大计算机学院教授,北京交通大学计算机与信息技术学院导师教师师资介绍简介-张树君...
  20. Linux C程序修改进程名称

热门文章

  1. 广州地铁线路查询程序C语言,广州地铁线路图
  2. 珍大户《认知世界的经济学》学习笔记 -- 第21课 利率的计算 更新时间2021年07月27日22:14:34
  3. 微信语音红包小程序开发如何提高精准度 红包小程序语音识别精准度 微信小程序红包开发语音红包...
  4. 【数据分析能力是指什么?】
  5. 用CSS实现花里胡哨的按钮切换效果
  6. 关于如何卸载VS2012
  7. 菜鸟学做Django--图书管理系统
  8. 基于AT89C51的多层电梯控制系统
  9. DES、3DES、AES以及RSA加密介绍
  10. 地图标注不完整图片_“地图帝”不规范使用图件之Anton Balazh作品介绍