数据库原理(核心知识♥)

目录

一、Database Fundamentals

1.1数据库系统(DBMS)与文件系统(File System)

1.2数据库三级模式(Schema)、两级映像(Mapping)

1.3Responsibilities of DBA

1.4数据独立性(Data Independence)

        --逻辑(logical)独立性

        --物理(physical)独立性

二、Relational Database

主码(Primary Key)、外码(Foreign Key)、候选码(Candidate Key)

关键操作

        --选择(Selection)

        --投影(Projection)

        --连接(Join)

        --除(Division)

关系代数(Relation Algebra)运算

三、SQL

Characteristics of SQL

 一些简单查询语句

 SUB-QUERIES 子查询

增删改查

        --create、insert、alter、update、drop、delete

        --select/from/where/group by/having/order by

内连接和外连接(Join/Left Join)

嵌套查询(Embedded Query)

        --IN/NOT IN

        --EXISTS/NOT EXISTS

四、Database Objects

索引(Index)的分类和正确使用

        --Cluster/Non-cluster/Bitmap/Functional/...

        CLUSTERED INDEX(聚集索引)

NON-CLUSTERED INDEX(非聚集索引)

​Bitmap Index(位图索引)

 Function-based Indexes(基于函数的索引)

视图(View)的作用

        --与基本表的区别和联系

触发器(Trigger)

存储过程(Stored Procedure)

完整性(Integrity) vs 安全性(Security)

五、Normalization

规范化(Normalization)的目的

        --冗余(redundancy)

        --异常(anomalies)

                插入异常(Insert Anomaly)、更新异常(Update Anomaly)、删除异常(Delete exception)

函数依赖关系 

各范式的原则(1NF-4NF)

        --判定依据

1NF

2NF

3NF

BCNF

4NF 

        --分解(Decomposition)方法

六、Database Design

概念设计(Conceptual Design)

E-R图(Entity-Relation Diagram)

逻辑设计(Logical Design)

        --将E-R图转换为关系模式

七、Transaction事务

事务(Transaction)的特点

        --ACID

并发(Concurrency)可能导致的异常

        --修改丢失(W-W)、不可重复读(R-W)、读脏数据(W-R)

处理方法

        --共享锁(S)、排他锁(X)、两阶段锁(Two-phase locking,2PL)、Timing Order(T/O)

两阶段锁(Two-phase locking,2PL) 【类比操作系统信号量pv操作】

Timing Order(T/O)【简而言之通过时间戳(物理方式)按顺序排序执行】

日志(Log)策略和恢复(Recovery)技术


一、Database Fundamentals

1.1数据库系统(DBMS)与文件系统(File System)

 

一个软件包/系统,便于定义、构建、操作和共享计算机化数据库的功能
 DBS( Database System) =  DBMS + Database

 

文件系统(File System)

 

 

1.2数据库三级模式(Schema)、两级映像(Mapping)

 Internal (Physical) Schema 内模式  -->(存储文件)描述数据如何在物理上硬件上存储 (用户不可见)

Conceptual Schema 概念模式 -->(基本表)是数据库所有数据的逻辑结构和特征描述

External Schema 外模式 -->用户模式(视图) 也就是用户能够看到的那部分的数据的逻辑结构和特征描述

 

 

 

 

 

1.3Responsibilities of DBA

1.4数据独立性(Data Independence)

        --逻辑(logical)独立性

Changes at the logical level will have no impact in the applications that access the DB

当数据库中的逻辑结构变化时,应用程序的逻辑结构不需要发生变化,应用程序还能够继续正常使用数据库提供的服务,这就是逻辑独立性的体现。

        --物理(physical)独立性

当数据库中的物理结构变化时,应用程序的逻辑结构和编程不需要发生变化,应用程序还能够继续正常使用数据库提供的服务,这就是物理独立性的体现。

二、Relational Database

主码(Primary Key)、外码(Foreign Key)、候选码(Candidate Key)

关键操作

        --选择(Selection)

 

        --投影(Projection)

        --连接(Join)

 

 

自然连接 < == > 等值连接+去重 

 

        --除(Division)

 

 

关系代数(Relation Algebra)运算

三、SQL

Characteristics of SQL

 

  

 

 

 一些简单查询语句

 ​​

 

 

 

 

 

 

 

从查询结果当中取6-15行  (第一个参数为起始位置 第二个参数表示长度)

 SUB-QUERIES 子查询

 

 

 

 

  

 

 

 

增删改查

        --create、insert、alter、update、drop、delete

        --select/from/where/group by/having/order by

内连接和外连接(Join/Left Join)

嵌套查询(Embedded Query)

        --IN/NOT IN

        --EXISTS/NOT EXISTS

四、Database Objects

索引(Index)的分类和正确使用

        --Cluster/Non-cluster/Bitmap/Functional/...

        CLUSTERED INDEX(聚集索引)

NON-CLUSTERED INDEX(非聚集索引) 

 

 Bitmap Index(位图索引)

 

 Function-based Indexes(基于函数的索引)

视图(View)的作用

        --与基本表的区别和联系

触发器(Trigger)

 

存储过程(Stored Procedure)

存储过程(Stored Procedure)也就是在数据库中的代码重复使用

完整性(Integrity) vs 安全性(Security)

五、Normalization

规范化(Normalization)的目的

        --冗余(redundancy)

        --异常(anomalies)

                插入异常(Insert Anomaly)、更新异常(Update Anomaly)、删除异常(Delete exception)

函数依赖关系 

 

各范式的原则(1NF-4NF)

        --判定依据

1NF

判断一个关系模式(即表格)是否符合第三范式(3NF)的要求,需要满足以下条件:

        是一个单表

判断是不是符合1NF 就看 是不是单表    是单表就符合1NF   如果是复合表就不符合

 

上表就符合1NF 是个单表

 

上表就不符合1NF因为{}内可拆分是复合表  不符合原子性

2NF

判断一个关系模式(即表格)是否符合第三范式(2NF)的要求,需要满足以下两个条件:

  1. 表格必须符合第一范式(1NF)
  2. 没有部分函数依赖关系,非主属性都完全依赖于主键或候选键

 

 上表就符合2NF,首先主键是StudentID 其他非主键非候选键的属性Name Gender Birthday都函数依赖于StudentID

 上表就不符合2NF。首先选课表的主键是选课ID,学生ID。其他非候选码属性选课课程函数依赖于选课ID,学生ID 但是学生姓名只函数依赖于学生ID。

将上图转换成符合2NF的表格

 

3NF

判断一个关系模式(即表格)是否符合第三范式(3NF)的要求,需要满足以下两个条件:

  1. 表格必须符合第二范式(2NF)
  2. 表格中的非主属性(即非主键的属性)不依赖于其他非主属性或者说完全依赖于主键

上表的主键是商品ID其他的非主属性都完全依赖于主键所以符合3NF

 

 在上述表格中,非主属性客户姓名、客户邮箱、产品名称、产品类型和产品价格存在相互依赖的关系而不仅仅依赖于主键订单编号和客户ID。因此,该表格不符合3NF的要求。如果有多个订单都包含相同的客户信息和产品信息,那么这些信息就需要在每个订单中重复存储,这会导致数据冗余和数据不一致性问题。

这里就不符合(完全依赖于)这个条件,只要在非主属性和非主属性之间存在函数依赖关系 就不符合3NF

BCNF

4NF 

要判断一个关系模式是否符合4NF,需要考虑以下几个步骤:

  1. 检查关系模式是否符合BCNF,即每个非主属性完全依赖于候选码集,而不是依赖于其他非主属性。
  2. 如果关系模式的某些属性有多值依赖,即存在一个属性集合A,并且当确定A的值时,会出现多个B的值与之对应(其中B是非主属性,不属于A),则该关系模式可能违反4NF的要求。
  3. 对于存在多值依赖的关系模式,可以创建一个新的关系模式,其中包含原关系模式的主键和对应的非主属性,以及能够唯一确定非主属性的列集合。
  4. 如果切换后的表仍然违反4NF,则需要重复步骤3,直到得出符合4NF的结果为止。
  5. 总结:消除多值依赖

        --分解(Decomposition)方法

六、Database Design

概念设计(Conceptual Design)

E-R图(Entity-Relation Diagram)

 

 n:m类比同上

n:m:p类比同上

逻辑设计(Logical Design)

        --将E-R图转换为关系模式

七、Transaction事务

事务(Transaction)的特点

        --ACID

 

并发(Concurrency)可能导致的异常

        --修改丢失(W-W)、不可重复读(R-W)、读脏数据(W-R)

处理方法

        --共享锁(S)、排他锁(X)、两阶段锁(Two-phase locking,2PL)、Timing Order(T/O)

两阶段锁(Two-phase locking,2PL) 【类比操作系统信号量pv操作】

Timing Order(T/O)【简而言之通过时间戳(物理方式)按顺序排序执行】

日志(Log)策略和恢复(Recovery)技术