数据库设计流程

article/2025/10/13 15:09:52

数据库设计的步骤

数据库设计的流程总共有三步:

  1. 现实世界的实体模型通过建模转换为信息世界的概念模型(即 E-R 模型)
  2. 概念模型经过模型转化,得到数据库使用的数据模型(在关系数据库设计中为关系模型
  3. 数据模型经过数据库设计范式进一步规范化,得到数据库结构模型
    数据库设计的步骤

模型的分类

其中数据模型可以分为:概念数据模型(Concept Data Model逻辑数据模型(Logical Data Model物理数据模型(Physical Data Model

概念模型的设计

将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计。

相关概念

  • 关系:一个关系逻辑上对应一张二维表(格)。可以为每个关系取一个名称进行标识。与之同义的术语是“表”。
  • 元组:表中的一行即为一个元组。与之同义的术语是“行”。
  • 分量:元组中的一个属性值。与之同义的术语是“列值”。
  • 属性:表中的一列即为一个属性,给每一个属性起一个名称即属性名。与之同义的术语是“列”。
  • :属性的取值范围。与之同义的术语是“数据类型”。
  • 主码:表中的某个属性组,它可以唯一确定一个元组。与之同义的术语就是“主键”。
  • :由行和列组成。可以为每个表取一个表名进行标识。
  • :表中的一条记录。表中的数据是按行存储的。
  • :表中的一个字段。所有表都是由一个或多个列组成的。
  • 主键:表中的一列或一组列,其值能够唯一区分表中的每个行。其中,由一组列构成的主键称为组合主键。
  • 外键:表中的一列或一组列,其包含另一张表的主键值,主要用于定义两个表之间的关系。与之同义的术语是“外部码”。
  • 关系模式:对关系的描述,一般表示为“关系名(属性1,属性2,属性n)”。
  • 数据类型:所容许的数据的类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据。

概念模型的工具 E-R 模型

E-R图的定义

E-R图也称实体关系图(Entity Relationship Diagram),提供了表示实体类型属性关系的方法,用来描述现实世界的概念模型。

E-R图例说明

  • 矩形:表示实体集,矩形内写实体集的名字
  • 菱形:表示联系集
  • 椭圆:表示实体的属性
  • 线段:将属性连接到实体集,或将实体集连接到联系集

E-R图实体之间的联系

E-R图中实体之间的关系有三种,分别是:

一对一联系(1 : 1)

例如,学校和校长之间的联系,一个学校有一个校长,一个校长任职于一个学校,则学校和校长之间的联系是一对一的。
一对一联系

一对多联系(1 : n)

例如,某系与教师之间存在一对多的联系“聘用”,即每个系可以聘用多名教师,但是每名教师只能受聘于一个系。
在这里插入图片描述

多对多联系(m : n)

例如,学生与课程间的联系“选修”是多对多的,即一个学生可以选修多门课程,而每门课程也可以被多个学生来选修。联系“选修”也可能有属性。例如,学生“选修”某门课程所取得的“成绩”,既不是学生的属性也不是课程的属性。由于 “成绩” 既依赖于某名特定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联系“选修”的属性。
在这里插入图片描述

E-R图转换为关系模型

设计E-R图的目的,最终是为了将E-R模型转换为关系模型,转换的时候我们可以遵循以下规则即可。

一对一(1:1)

一对一的关系有三种转换方式:

  1. 联系单独转成关系模式
    学校(校名,地址,电话)
    校长(姓名、性别、年龄、职称)
    任职(姓名,校名、任职年限)

这种方式会将联系单独转换成一个实体,然后为了体现“学校”和“校长”之间的联系,将学校实体的主键“校名”和“校长”实体的主键“姓名”放到任职实体中,这样一共形成三个实体。

  1. 联系并入“学校”这端实体
    校长(姓名、性别、年龄、职称)
    学校(校名,地址,电话,姓名、任职年限)

这种方式为了体现学校和校长之间的联系,会将校长实体的主键“姓名”并入学校实体中,再加上联系本身的属性“任职年限”就可以了。

  1. 联系并入“校长”这端实体
    校长(姓名、性别、年龄、职称,校名,任职年限)
    学校(校名,地址,电话,姓名)

这种方式同上述方式,只是并入到了校长实体。

一对多联系(1 : n)

一对多有两种转换方式:

  1. 联系单独转换成关系模式
    系(系号、系名、电话)
    教师(工号,姓名,性别,年龄)
    聘用(系号工号,聘期)

这种方式将联系“聘用”单独拎出来作为一个实体,为了体现“系”和”教师“之间的关系,需要将”系“实体的主键“系号”和”教师“实体的主键“工号”放到“聘用”实体中,再加上联系本身的属性“聘期”就可以了。

  1. 联系并入“n端”实体
    系(系号、系名、电话)
    教师(工号,姓名,性别,年龄,系号,聘期)

这里的”n端“指的是”教师“,将1端实体的主键”系号“和关系”聘用“的属性”聘期“合并到”教师“实体,这样就可以知道一个教师被哪个系聘用了,他的聘期多久也能知道了。

多对多(m : n)

多对多的联系必须单独转成关系模式。

学生(学号,姓名,性别,班级)
课程(课程号,课程名,学分)
选修(学号课程号,成绩)

多对多的联系只能将联系单独转换成关系模式。需要将”学生“实体的主键”学号“和”课程“实体的主键”课程号“,再加上”选修“关系的属性”学分“都加一个实体中,组成”选修“实体。

参考链接

  • E-R图转化为关系模型
  • 关系数据库模型设计
  • 梦回大学?数据库 E-R 模型设计
  • er关系实例
  • 概念设计到逻辑设计阶段

http://chatgpt.dhexx.cn/article/39rqAkHE.shtml

相关文章

浅谈数据库设计

第一章 需求分析 设计简介 根据业务需要,结合选用的DBMS,设计出最有的数据存储模型并建立好数据库中的表结构及表与表之间的关系使之有效的存储和高效的访问。 数据库设计 在系统设计开始就应该对数据库进行良好的设计,这样才能保证以后对…

数据库设计与实现

一个良好的设计对于数据库系统至关重要,它可以减少数据冗余,确保数据的一致性和完整性,同时使得数据库易于维护和扩展。 实体关系图 实体关系图(Entity-Relationship Diagram,ERD)是一种用于数据库设计的结…

数据库设计(二)——简单设计实例

Mysql设计步骤 一、设计一套系统数据库的步骤 1、实现什么样的功能(保证项目功能的完整性,列出所有模块)。 2、通过思维导图将每个功能模块串联起来(放射状,细节可以用文字描述)。 …

数据库设计的一般步骤

经过几天给韶关某个高校进行数据库设计的实训,对数据库设计的过程有了更加深刻的理解。 一、数据库设计的步骤 (1)了解功能需求 在设计数据库之前,设计人员必须要先了解系统的功能需求。这里可以通过阅读产品需求规格说明书&…

9.数据库设计

数据库设计 1、数据库设计概述 数据库设计。广义地讲,是数据库及其应用系统的设计,即设计整个数据库应用系统;狭义地讲,是设计数据库本身,即设计数据库的各级模式并建立数据库, 这是数据库应用系统设计的一…

数据库设计-概念结构设计

文章目录 数据库设计概念设计结构概念结构设计ER模型的基本元素实体/实体集属性区别实体和属性联系 二元联系的关系1:11:nm:n 一元联系1:11:nm:n 三元联系 采用ER模型的概念设计设计局部ER模型例题设计全局ER模型全局ER模型的优化 数据库设计 数据库设计:构造最优的…

数据库设计—图书管理数据库系统设计

如下代码供学习交流,获取完整代码,请关注公众号(coding加油站)获取 1、项目简介 图书馆数据库,该项目同时提供pythonweb可视化展示界面,也可提供相关报告数据,可以用来作为数据库系统设计的期…

数据库设计(一)——数据库设计

一、数据库设计简介 按照规范设计,将数据库的设计过程分为六个阶段: A、系统需求分析阶段 B、概念结构设计阶段 C、逻辑结构设计阶段 D、物理结构设计阶段 E、数据库实施阶段 F、数据库运行与维护阶段 需求分析和概念结构设计独立于任何数据库管理系统…

数据库设计的六个基本步骤

按照规范设计的方法,考虑数据库及其应用系统开发全过程,可将数据库设计分为以下6个阶段,分别为:1.需求分析,2.概念结构设计,3.逻辑结构设计,4.物理结构设计,5.数据库实施&#xff0c…

数据库设计(一)

目录 数据库设计的基本概念: 数据库设计包括以下几个部分: 需求设计: 1、数据: 2、处理: 概念结构设计: 实体: 例如: 联系类型: 1、一对一: 2、一对多&a…

数据库:数据库设计(需求,设计,运行,维护)

1,数据库设计概述 1.1,数据库设计的基本概念 数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据&…

数据库系统-数据库设计

数据库系统-数据库设计 数据库设计概述及六步骤简介 数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。 数据库设计的特点 数据库设计是一…

学生成绩管理系统数据库设计--MySQLSQL Server

MySQL 数据库设计-学生成绩管理系统 设计大纲友情链接 1、医疗信息管理系统数据库–MySQL2、邮件管理数据库设计–MySQL3、点餐系统数据库设计–SQL Server4、商品管理系统数据库设计–SQL Server5、SQL Server医疗信息管理系统数据库【英文版-源码】–(Medical Ma…

数据库设计-网上书店系统

一、需求分析 1.1 用户分析 网上书店系统的使用者主要有三种:普通用户、会员和管理员。 普通用户:浏览图书、查询图书、注册成为会员等; 会员:浏览图书、查询图书、加入购物车、修改购物车、订购图书、生成及查看订单、查看修改…

数据库设计

数据库设计 一.数据库设计概述1.数据库设计的特点2.数据库设计方法3.数据库设计的基本步骤4.数据库设计过程中的各级模式 二.需求分析1.需求分析的任务2.需求分析的方法3.数据字典 三.概念结构设计1.概念模型2.E-R模型3.概念结构设计 一.数据库设计概述 ①数据库设计是指对于一…

机器学习之PCA

一、PCA基本介绍 PCA(Principal Components Analysis)-主成分分析算法 用于数据降维、可视化、去噪非监督学习算法 二、PCA工作原理 目标:每次将空间中多维的样本点映射到一条直线上(要保证样本点之间的间距最大,用方差衡量,即保…

PCA9536——填坑

0. 问题 使用PCA9536输出模式控制4个小灯,开始时候按几次就不显示了,以为是接线不稳定原因。 后来一按开机电源就不显示了,以为是其他器件电源不稳定导致。 1. 问题1排除 接线问题,重新接线,重新做端子,…

sklearn PCA

sklearn.decomposition.PCA class sklearn.decomposition.PCA(n_componentsNone, *, copyTrue, whitenFalse, svd_solverauto, tol0.0, iterated_powerauto, random_stateNone)官方:link PCA是特征降维中一种 线性降维 的方法。 与特征选择不同(直接筛…

使用PCA对彩色图片降维

PCA对图片降维 1.原图片2.PCA降维思路3.代码4.k5效果图5.结论 1.原图片 2.PCA降维思路 1、小灰灰图片(407,367)2、求图片407行每行的均值mean,再将407行每行元素各自减去对应行的均值mean,即去中心化。得矩阵X&#xf…

使用PCA拟合平面

PCA原理&使用PCA拟合平面 背景三点确定一平面多点拟合平面基础数学知识PCA基本思想PCA拟合平面计算过程 PCA理解中心化协方差对角化 背景 本文参考以下两篇平面解析的论文。 《Fast Plane Extraction in Organized Point Clouds Using Agglomerative Hierarchical Cluster…