全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-15 5 分钟 ✍️ juanwangdev

MySQL关系型数据库概念

关系型数据库基于关系模型,通过表格组织数据并建立表间关联关系。

关系模型

关系模型由E.F.Codd于1970年提出,核心思想是将数据组织为二维表格。

关系模型三要素

要素说明
数据结构二维表(关系)
数据操作增删改查(SQL)
数据约束实体完整性、参照完整性

关系术语

术语说明
关系一个表
元组表中的一行记录
属性表中的一列字段
属性的取值范围
主键唯一标识元组的属性

表间关系

关系型数据库通过外键建立表与表之间的关联。

关系类型

关系类型说明示例
一对一A表一条记录对应B表一条记录用户与身份证
一对多A表一条记录对应B表多条记录部门与员工
多对多需要中间表实现学生与课程

外键约束

SQL
-- 创建外键关联
CREATE TABLE orders (
    id INT PRIMARY KEY,
    user_id INT,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

ER图

实体关系图用于设计数据库结构,直观展示实体及实体间关系。

基本元素

元素符号说明
实体矩形表示数据对象
属性椭圆实体的特征
关系菱形实体间的关联
连线直线连接元素

ER图示例

SQL
[用户] ---<订单>--- [商品]
   |                  |
 (下单)             (包含)

范式

范式是关系型数据库设计的规范,用于消除数据冗余。

常用范式

范式规则目的
第一范式(1NF)字段不可再分消除重复字段
第二范式(2NF)非主键完全依赖主键消除部分依赖
第三范式(3NF)非主键不传递依赖主键消除传递依赖

范式示例

text
-- 不符合3NF:存在传递依赖
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    user_name VARCHAR(50),  -- 传递依赖于user_id
    user_address VARCHAR(200) -- 传递依赖于user_id
);

-- 符合3NF:拆分表
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT
);

CREATE TABLE users (
    user_id INT PRIMARY KEY,
    user_name VARCHAR(50),
    user_address VARCHAR(200)
);

实际设计中需要在范式和性能之间平衡,适当反范式可减少连接查询。

要点总结

  • 关系型数据库基于关系模型,以二维表组织数据
  • 表间关系有一对一、一对多、多对多三种类型
  • 外键建立表间关联,保证参照完整性
  • ER图用于数据库概念设计
  • 范式规范设计,消除数据冗余
  • 实际应用中可适度反范式提升性能

📝 发现内容有误?点击此处直接编辑

← 上一篇 MySQL中SQL与MySQL的关系
下一篇 → MySQL常见数据库对比
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库