• 暂时停更一段时间!
  • 近期网站将陆续进行前端页面改造!
  • 招募网站编辑,联系站长!

标签:数据库系统概论

数据库系统概论(十)约束

1. 键码用于唯一表示一个实体。键码可以由多个属性构成,每个构成键码的属性称为码。2. 单值约束某个属性的值是唯一的。3. 引用完整性约束一个实体的属性引用的值在另一个实体的某个属性中存在。4. 域约束某个属性的值在特定范围之内。5. 一般约束比如大小约束,数量约束。参考资料– 史嘉权. 数据库系统概论[M]. 清华大学出……

数据库系统概论(九)关系数据库建模

ER 图Entity-Relationship,有三个组成部分:实体、属性、联系。1. 实体的三种联系联系包含一对一,一对多,多对多三种。如果 A 到 B 是一对多关系,那么画个带箭头的线段指向 B;如果是一对一,画两个带箭头的线段;如果是多对多,画两个不带箭头的线段。下图的 Course 和 Student 是一对多的关系。2. 表示出现多次的……

数据库系统概论(八)数据库系统概述

基本术语1. 数据模型由数据结构、数据操作和完整性三个要素组成。2. 数据库系统数据库系统包含所有与数据库相关的内容,包括数据库、数据库管理系统、应用程序以及数据库管理员和用户,还包括相关的硬件和软件。数据库的三层模式和两层映像– 外模式:局部逻辑结构– 模式:全局逻辑结构– 内模式:物理结构1. 外模……

数据库系统概论(七)关系数据库理论

函数依赖记 A->B 表示 A 函数决定 B,也可以说 B 函数依赖于 A。如果 {A1,A2,… ,An} 是关系的一个或多个属性的集合,该集合决定了关系的其它所有属性并且是最小的,那么该集合就称为键码。对于 W->A,如果能找到 W 的真子集 W’,使得 W’-> A,那么 W->A 就是……

数据库系统概论(六)Next-Key Locks

Next-Key Locks 也是 MySQL 的 InnoDB 存储引擎的一种锁实现。MVCC 不能解决幻读的问题,Next-Key Locks 就是为了解决这个问题而存在的。在可重复读隔离级别下,MVCC + Next-Key Locks,就可以防止幻读的出现。Record Locks锁定的对象是索引,而不是数据。如果表没有设置索引,InnoDB 会……

数据库系统概论(五)多版本并发控制

(Multi-Version Concurrency Control, MVCC)是 MySQL 的 InnoDB 存储引擎实现隔离级别的一种具体方式,用于实现提交读和可重复读这两种隔离级别。而未提交读隔离级别总是读取最新的数据行,无需使用 MVCC;可串行化隔离级别需要对所有读取的行都加锁,单纯使用 MVCC 无法实现。版本号– 系统版本号……

数据库系统概论(四)隔离级别

1. 未提交读(READ UNCOMMITTED)事务中的修改,即使没有提交,对其它事务也是可见的。2. 提交读(READ COMMITTED)一个事务只能读取已经提交的事务所做的修改。换句话说,一个事务所做的修改在提交之前对其它事务是不可见的。3. 可重复读(REPEATABLE READ)保证在同一个事务中多次读取同样数据的结果是一样的。4.……

数据库系统概论(三)封锁

封锁粒度应该尽量只锁定需要修改的那部分数据,而不是所有的资源。锁定的数据量越少,发生锁争用的可能就越小,系统的并发程度就越高。但是加锁需要消耗资源,锁的各种操作,包括获取锁,检查锁是否已经解除、释放锁,都会增加系统开销。因此封锁粒度越小,系统开销就越大。需要在锁开销以及数据安全性之间做一个权衡。MySQL 中提供了两种封锁粒度:行级锁以及表级锁。封……

数据库系统概论(二)并发一致性问题

在并发环境下,一个事务如果受到另一个事务的影响,那么事务操作就无法满足一致性条件。问题1. 丢失修改T<sub>1</sub> 和 T<sub>2</sub> 两个事务都对一个数据进行修改,T<sub>1</sub> 先修改,T<sub>2</sub> 随后……

数据库系统概论(一)事务

概念事务指的是满足 ACID 特性的一系列操作。在数据库中,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。四大特性1. 原子性(Atomicity)事务被视为不可分割的最小单元,要么全部提交成功,要么全部失败回滚。2. 一致性(Consistency)事务执行前后都保持一致性状态。在一致性状态下,所有事务对一个……