当前位置:首页 > 行业动态 > 正文

按照关系型数据库的基本原理

关系型数据库基于表结构存储数据,通过主外键关联,支持ACID事务,使用SQL操作,遵循规范设计确保数据一致性。(4

核心概念

关系型数据库(RDBMS)以关系模型为基础,通过二维表结构存储数据,利用集合运算和谓词逻辑进行数据操作,其核心特点包括:

  • 数据结构化:数据以表(Table)的形式组织,表由行(记录)和列(字段)组成。
  • 键约束:通过主键(Primary Key)唯一标识记录,外键(Foreign Key)维护表间关联。
  • 数据完整性:支持实体完整性(主键非空且唯一)、参照完整性(外键关联)和用户定义完整性(自定义规则)。

数据结构与操作

组件 说明
表(Table) 存储同类实体的数据集合,如“学生表”包含学号、姓名、年龄等字段。
字段(Column) 表的最小数据单位,定义数据类型(如INT、VARCHAR)和约束(如NOT NULL)。
记录(Row) 表中的一行数据,表示一个实体实例(如一个学生的信息)。
索引(Index) 加速查询的数据结构(如B+树),可基于主键或普通字段创建。

示例表结构

按照关系型数据库的基本原理  第1张

CREATE TABLE Student (
    StudentID INT PRIMARY KEY, -主键
    Name VARCHAR(50) NOT NULL,
    Age INT CHECK (Age >= 18), -用户定义完整性
    MajorID INT,
    FOREIGN KEY (MajorID) REFERENCES Major(MajorID) -外键关联
);

数据完整性约束

约束类型 作用
主键约束 确保每条记录唯一且非空(如学生表中的学号)。
外键约束 维护表间引用关系(如学生表的MajorID必须存在于专业表的主键中)。
非空约束 指定字段不能为NULL(如姓名字段)。
唯一约束 保证字段值唯一(如邮箱地址)。
检查约束 定义字段需满足的条件(如年龄必须≥18)。

关系代数与SQL

关系型数据库通过关系代数(如选择σ、投影π、连接⨝)描述操作,而SQL是其标准化语言,常见操作分类:

  1. DQL(数据查询)SELECT FROM Student WHERE Age > 20;
  2. DML(数据操纵)UPDATE Student SET Age = Age + 1 WHERE StudentID = 1;
  3. DDL(数据定义)CREATE TABLEALTER TABLEDROP TABLE
  4. DCL(数据控制)GRANTREVOKE权限管理。

范式与规范化

为减少数据冗余和异常,关系模型需满足范式
| 范式级别 | 要求 |
|————–|————————————————————————–|
| 第一范式(1NF) | 字段不可再分(如不可将“地址”存为一列,应拆分为街道、城市等)。 |
| 第二范式(2NF) | 满足1NF且非主属性完全依赖主键(如订单表不应含商品详情,需拆分订单项表)。 |
| 第三范式(3NF) | 满足2NF且非主属性不依赖其他非主属性(如学生表中不应含导师姓名,需关联教师表)。 |


事务与并发控制

关系型数据库通过事务(Transaction)保证操作的原子性、一致性、隔离性和持久性(ACID):

  • 原子性:事务要么全部成功,要么全部回滚。
  • 隔离性:不同事务互不干扰(如锁机制防止脏读、不可重复读)。
  • 示例事务
    BEGIN TRANSACTION;
    UPDATE Account SET Balance = Balance 100 WHERE AccountID = 1;
    UPDATE Account SET Balance = Balance + 100 WHERE AccountID = 2;
    COMMIT; -或ROLLBACK;

优缺点与适用场景

优点 缺点 适用场景
数据一致性强,支持复杂查询 扩展性差(水平扩展困难) 金融系统、ERP、管理系统等需要事务支持的场景
ACID特性保障可靠性 读写性能受限于硬件资源

问题与解答

问题1:什么是参照完整性?它有什么作用?
解答:参照完整性通过外键约束保证表间数据一致性,学生表的MajorID必须对应专业表的MajorID,避免出现无效的专业引用,若删除专业表中的数据,可通过ON DELETE CASCADE级联删除学生表中关联的记录。

问题2:为什么需要数据库规范化?未规范化可能带来什么问题?
解答:规范化通过分解表结构消除数据冗余和更新异常,未规范化的订单表若包含商品详情,修改商品信息时需更新所有相关订单记录,易导致数据不一致;而规范化后可通过关联商品表避免此问题

0