zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

数据库设计之从0到1 教你如何设计E-R图

数据库 如何 设计
2023-09-11 14:20:21 时间

上一年写过一篇数据库如何设计,当时也只是停留在概念的理解方面,今天有一次加深了对数据库设计的理解

关于如何设计数据库,数据库

可以戳这个链接数据库设计的六个步骤

接下来从实例来理解数据库的设计

一,首先了解三个元素

二,实例分析

下面对

  • 1:1
  • 1:n
  • m:n

三者做出具体分析

A、一个1:1关系可以与任意一端所对应的关系模式合并也可以转换为一个独立的关系模式。

因为自身作为班长,那么我就从班长 管理班级的角度去分析1:1的关系


原实体对应关系模式分别为:
班级(班号,专业,人数)
班长(学号,姓名,专长)

  1. 将关系“管理”合并到实体“班级”对应的模式后为:
    班级(班号,专业,人数,班长学号)
    班长(学号,姓名,专长)
  2. 关系“管理”也可以合并到实体“班长”对应的模式,将关系“管理”合并到实体“班级”对应的模式后为:
    班级(班号,专业,人数)
    班长(学号,姓名,专长,班号)

B、一个1:n关系可以与n端所对应的关系模式合并也可以转换为一个独立的关系模式。

因为在我们是学校是按照学院,系别的层次,而我在这儿解释的时候就不加系别了,因为我们平时也很少区分,所以就按照院长管理教师的角度去分析1:n的关系。


实体对应的关系模式
系(院号,院主任,电话,院名)
教师(教师号,姓名,专业,职称,性别,年龄)
关系对应的关系模式
管理(教师号,系号)
合并到实体“教师”后(只能合并到“多”的一端的关系模型):
教师(教师号,姓名,专业,职称,性别,年龄,院号)

C、一个m:n关系转换为一个关系模式。转换的方法为:与该关系相连的各实体的码以及关系本身的属性均转换为关系的属性,新关系的码为两个相连实体码的组合。

学生选修课程一直一来是一个m:n 的经典问题,所以我们也拿来分析一下。 在这里,关系只能转换为独立模式

课程(课程号,课程名,学时,类别) 实体表
学生(学号,姓名,性别,专业,出生日期,照片) 实体表
选修(学号,课程号,分数) 关系表

D、三个或三个以上实体间的多元关系转换为一个关系模式

“讲授”关系是一个三元关系,可以转换为如下关系模式,其中课程号、职工号和书号为关系的组合码:
 讲授(课程号,职工号,书号)
到这儿,相信大家应该对如何设计数据库的逻辑结构已经有了一个简单理解。
下面是一个简单的复习。以供大家参考。
在这里插入图片描述