欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

oracle基础知识|数据库模型|实体关系图(E-R图)|什么是一对一、一对多、多对多

最编程 2024-07-07 17:08:11
...

目录

一、前言

二、实体-关系图(E-R图)

1、实体(Entity):

2、属性(Attribute):

3、关系(Relationship):

4、关系类型

一对一关系 (1 ∶ 1)

一对多关系 (1 ∶ N)

多对多关系 (M ∶ N)

5、ER图中符号的表示


一、前言

系统设计中一个重要的环节就是数据库设计,数据库设计的时候需要先进行数据建模(实体关系图 E-R图),数据建模的依据就是前期所做的需求分析

二、实体-关系图(E-R图)

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

构成E-R图的基本要素是实体、属性和关系

1、实体(Entity):

实体用来表示具有相同特征和性质的事物(类似于java的类(域对象)),实体由实体名和实体属性来表示。

2、属性(Attribute):

实体所具有的某一特性,一个实体可以有若干个属性

3、关系(Relationship):

实体彼此之间相互连接的方式称为关系。一般可分为以下 3 种类型:一对一、一对多、多对多

4、关系类型

一对一关系 (1 ∶ 1)

这种关系比较少见

维护关系:随意选择一方构建外键

例如:Wife and Husband

wife表

husband表

id

name

h_id

id

name

1

sunli

1

1

dengchao

一对多关系 (1 ∶ N)

比较常见:

维护关系:在多的一方维护一方的唯一值列作为外键

比如:student and class

student表

class表

sno

sname

age

class_id

id

name

1

zhugeliang

20

1

1

qinghua1

2

liubei

18

1

2

qinghua2

3

zhangfei

21

1

多对多关系 (M ∶ N)

维护关系:构建桥表

比如:student(学生) and course(课程)

student表

course表

sno

sname

age

class_id

id

name

1

zhugeliang

20

1

100

yuwen

2

liubei

18

1

101

English

3

zhangfei

21

1

桥表(中间表):student_course_brige(primry key(student_no,course_id))

student_no

course_id

1

100

1

101

2

100

3

100

5、ER图中符号的表示

1) #:主要标识

(#):次要标识

2) * : 非空

#*:表示主键。

3) o : 可有可无

4) 虚线: may be 顾客这边虚线,顾客可能没有订单

5) 实线: must be 订单这边实线,订单一定是属于某个客户。

6) 竖杠(|): UID Bar代表要强制在(|)一方建立一个联合主键,将对方ID拿过来做联合主键

简单点说就是外键同时做了当前表的主键

7) 伞状图标代表多的一方,不是伞状图标则代表一的一方