- 我们为什么要使用数据库
持久化:一般数据都是存在内存中,通过持久化的操作,内存断电之后将数据保存在硬盘之中。
持久化的主要作用:将内存中的数据存储在关系型数据库中。
- 数据库与数据库管理系统
2.1数据库的相关概念
![](https://img-blog.csdnimg.cn/img_convert/84906cf5dd7cec436dd20634da291ba1.png)
2.2数据库与数据库管理系统的关系
数据库管理系统(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存
应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体用户的数据。
- 关系型数据库设计原则
一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性。
表具有一些特性,这些特性定义了数据在表中如何存储,类似Java和Python中 “类”的设计。
3.1 表,字段,记录
E-R(entity-relationship,实体-联系)模型中有三个主要概念是: 实体集、属性、联系集。
一个实体集(class)对应于数据库中的一个表(table),一个实体(instance)则对应于数据库表
中的一行(row),也称为一条记录(record)。一个属性(attribute)对应于数据库表中的一列
(column),也称为一个字段(field)。
![](https://img-blog.csdnimg.cn/img_convert/8161e7a7f5e48021c81eaee606162c77.png)
ORM思想 (Object Relational Mapping)体现:
数据库中的一个表 <---> Java或Python中的一个类
表中的一条数据 <---> 类中的一个对象(或实体)
表中的一个列 <----> 类中的一个字段、属性(field)
3.2 表的关联关系
表与表之间的数据记录有关系(relationship)。现实世界中的各种实体以及实体之间的各种联系均用
关系模型来表示。
四种:一对一关联、一对多关联、多对多关联、自我引用
3.2.1 一对一关联(one-to-one)
在实际的开发中应用不多,因为一对一可以创建成一张表。
3.2.2 一对多关系(one-to-many)
常见实例场景: 客户表和订单表, 分类表和商品表, 部门表和员工表。
举例:
员工表:编号、姓名、...、所属部门
部门表:编号、名称、简介
一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键
![](https://img-blog.csdnimg.cn/img_convert/2adc363916b8856c618da6ead17155f8.png)
3.2.3 多对多(many-to-many)
要表示多对多关系,必须创建第三个表,该表通常称为联接表,它将多对多关系划分为两个一对多关
系。将这两个表的主键都插入到第三个表中。
![](https://img-blog.csdnimg.cn/img_convert/9f143793dc276a80cf974de0d032cc9f.png)
3.3.4 自我引用(Self reference)
![](https://img-blog.csdnimg.cn/img_convert/1ae5042410f5b9f93eab8cf645c2933c.png)