数据库概述
1. 为什么使用数据库
- 持久化:将数据保存在可掉电存储设备中。
- 持久化的主要作用:将内存中数据存储在关系型数据库中。
2. 数据库与数据库管理系统
2.1 数据库相关概念
术语 | 概念 |
---|---|
DB:数据库(Database) | 存储数据的“仓库” |
DBMS:数据库管理系统(Database Management System) | 是操作和管理数据库的一种大型软件,用于建立、使用和维护数据库,对数据库进行统一的管理。用户通过数据库管理系统访问数据库中表内的数据 |
SQL:结构化查询语言(Structured Query Language) | 专门用来与数据库进行通信的语言 |
2.2 数据库与数据库管理系统的关系
3.MySQL 介绍
3.1 概述
- MySQL是一个开源的关系型数据库管理系统
- MySQL支持大型数据库,32位系统表文件最大可为
4GB
,64位系统表文件最大可为8TB
4. 关系型数据库与非关系型数据库(RDBMS与非RDBMS)
4.1 关系型数据库(RDBMS)
- 是一种较为常见的数据库类型,其中数据结构为简单的
二元关系
(即二维表格形式) - 关系型数据库以
行(row)
和列(column)
的形式存储数据
-
表与表之间的数据记录用关系联系,即关系模型。实体与实体之间的联系用
关系模型
表示 -
关系型数据库,是建立在
关系模型
基础上的数据库
4.2 非关系型数据库
- 键值型数据库:例如:Redis
- 文档型数据库
- 搜索引擎数据库
- 列式数据库
- 图形数据库
5. 关系型数据库设计规则
- 关系型数据库中最典型的数据结构为数据表
- 将数据存放在表中,表存放在库中。
- 一个数据库可以有多个表,每个表都有表名(唯一)用来标识自己
5.1 表、记录、字段
- E-R(entity-relationship)模型中有三个主要概念:实体集、属性、联系集
ORM思想(Object Relational Mapping)
数据库中的一个表 <=> Java中的一个类
表中的一条数据 <=> 类的一个对象(或实体)
表中的一个列 <=> 类中的一个属性(field)
5.2 表的关联关系
- 表与表之间的数据有关系(relationship)
- 四种关系:一对一关联、一对多关联、多对多关联、自我引用
5.2.1 一对一关联
-
一对一可以做成一张表,在实际开发中并不常见
-
例如:学生表:学号、姓名、手机号码、班级、身份证号码、家庭住址、籍贯
- 可以拆分为两张表:这两张表中的记录就是一对一关联
- 基础信息表(常用信息):学号、姓名、手机号码、班级
- 档案信息表(不常用信息):学号、身份证号码、家庭住址、籍贯
-
建表原则:
- 外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一
- 外键是主键:主表的主键跟从表的主键,形成主外键关系
5.2.2 一对多关系
-
常见实例场景:课程表和学生成绩表、部门表和员工表
-
示例:
- 课程表:课程编号、课程名称
- 学生成绩表:学号、课程编号、课程成绩
-
一对多建表原则:在从表创建一个字段,该字段作为外键指向主表的主键
5.2.3 多对多
多对多关系,需要创建第三个表,用来表示两表之间的关系,通常被称为联接表
。它将多对多关系划分为两个 一对多
的关系。将两表中的主键都插入到第三个表(联接表)中
举例一:学生-课程
- 学生信息表:一行数据代表一个学生
- 课表信息表:一行数据代表一门课程
- 选课信息表:一个学校可以有多门课,一门课可以被多个学生选择
选课信息表:
学号 | 课程编号 |
---|---|
1 | 1001 |
2 | 1001 |
1 | 1002 |
举例二:用户-角色
- 多对多的关系的建表原则:需要第三张表,该表必须至少要存放两个字段,两个字段分别作为外键指向另外两张表的主键
5.3.4 自我引用
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
临川羡鱼!
喜欢就支持一下吧