1. 为什么使用数据库

  • 持久化:将数据保存在可掉电存储设备中。
  • 持久化的主要作用:将内存中数据存储在关系型数据库中。

Snipaste_2022-05-17_11-28-29

2. 数据库与数据库管理系统

2.1 数据库相关概念

术语 概念
DB:数据库(Database) 存储数据的“仓库”
DBMS:数据库管理系统(Database Management System) 是操作和管理数据库的一种大型软件,用于建立、使用和维护数据库,对数据库进行统一的管理。用户通过数据库管理系统访问数据库中表内的数据
SQL:结构化查询语言(Structured Query Language) 专门用来与数据库进行通信的语言

2.2 数据库与数据库管理系统的关系

Snipaste_2022-05-17_11-45-45

3.MySQL 介绍

3.1 概述

  • MySQL是一个开源的关系型数据库管理系统
  • MySQL支持大型数据库,32位系统表文件最大可为 4GB,64位系统表文件最大可为8TB

4. 关系型数据库与非关系型数据库(RDBMS与非RDBMS)

4.1 关系型数据库(RDBMS)

  • 是一种较为常见的数据库类型,其中数据结构为简单的二元关系(即二维表格形式)
  • 关系型数据库以行(row)列(column)的形式存储数据

Snipaste_2022-05-18_11-32-14

  • 表与表之间的数据记录用关系联系,即关系模型。实体与实体之间的联系用关系模型表示

  • 关系型数据库,是建立在关系模型基础上的数据库

4.2 非关系型数据库

  • 键值型数据库:例如:Redis
  • 文档型数据库
  • 搜索引擎数据库
  • 列式数据库
  • 图形数据库

5. 关系型数据库设计规则

  • 关系型数据库中最典型的数据结构为数据表
  • 将数据存放在表中,表存放在库中。
  • 一个数据库可以有多个表,每个表都有表名(唯一)用来标识自己

5.1 表、记录、字段

  • E-R(entity-relationship)模型中有三个主要概念:实体集属性联系集

Snipaste_2022-05-19_16-48-47

ORM思想(Object Relational Mapping)

数据库中的一个表 <=> Java中的一个类

表中的一条数据 <=> 类的一个对象(或实体)

表中的一个列 <=> 类中的一个属性(field)

5.2 表的关联关系

  • 表与表之间的数据有关系(relationship)
  • 四种关系:一对一关联、一对多关联、多对多关联、自我引用

5.2.1 一对一关联

  • 一对一可以做成一张表,在实际开发中并不常见

  • 例如:学生表:学号、姓名、手机号码、班级、身份证号码、家庭住址、籍贯

    • 可以拆分为两张表:这两张表中的记录就是一对一关联
    • 基础信息表(常用信息):学号、姓名、手机号码、班级
    • 档案信息表(不常用信息):学号、身份证号码、家庭住址、籍贯
  • 建表原则:

    • 外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一
    • 外键是主键:主表的主键跟从表的主键,形成主外键关系

Snipaste_2022-05-23_21-21-29

5.2.2 一对多关系

Snipaste_2022-05-23_21-31-10

  • 常见实例场景:课程表和学生成绩表、部门表和员工表

  • 示例:

    • 课程表:课程编号、课程名称
    • 学生成绩表:学号、课程编号、课程成绩
  • 一对多建表原则:在从表创建一个字段,该字段作为外键指向主表的主键

  • Snipaste_2022-05-23_21-45-27

5.2.3 多对多

多对多关系,需要创建第三个表,用来表示两表之间的关系,通常被称为联接表。它将多对多关系划分为两个 一对多的关系。将两表中的主键都插入到第三个表(联接表)中

Snipaste_2022-05-23_21-48-25

举例一:学生-课程

  • 学生信息表:一行数据代表一个学生
  • 课表信息表:一行数据代表一门课程
  • 选课信息表:一个学校可以有多门课,一门课可以被多个学生选择

选课信息表:

学号 课程编号
1 1001
2 1001
1 1002

举例二:用户-角色

  • 多对多的关系的建表原则:需要第三张表,该表必须至少要存放两个字段,两个字段分别作为外键指向另外两张表的主键

Snipaste_2022-05-23_21-53-55

5.3.4 自我引用

Snipaste_2022-05-23_21-55-31

文章作者: 临川
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 临川羡鱼
MySQL MySQL
喜欢就支持一下吧