名词积累:
数据库(Database):存放和提供数据的“库房”
数据(Data):数据库中存储的基本对象。
数据库管理系统(DBMS):位于用户与操作系统之间的一层数据管理软件。
数据库系统(Database System):包括数据库、DBMS、应用系统、数据库管理员(DBA)
主键(Primary Key):用于唯一的标识表中的某一条记录的属性或属性的集合。
外键(Foreign Key):用于与另一张表关联,外键为另一张表的主键
超键(Super Key):超键是能唯一区分元组的属性或属性的集合
键(候选键):去掉了超键中多余的属性,仍然能够保证区分不同的元组。
模式(Schema):一个数据库的描述,包括对数据库结构,数据类型,还有约束。
实例(Instance / State):数据库中在某一时刻存储的真实的数据。(Instance是Schema在某一时刻的具体化、实例化)
数据操纵语言(DML:Data Manipulation Language):增删改查
数据定义语言(DDL:Data Definition Language):定义、删除、修改数据库中的对象
数据控制语言(DCL:Data Control Language):用于控制用户对数据库操纵的权限
数据模型(Data Model):现实世界数据特征的抽象,用来定义数据如何组织,数据之间的关系怎样
并相容性(Union Compatibility):两个关系具有并相容性需要保证具有相同的属性个数,以及对于每个属性都有相同的域
视图(VIEW):视图是虚拟的表,并不是物理存储的数据。而是由基本表或其他视图派生的数据。对视图的更新,实际上转换为对实际基表的更新。
数据模型(Data Model):
基本概念:现实世界数据特征的抽象,用来定义数据如何组织,数据之间的关系怎样。
层次:
1.概念模型(Conceptual):按用户的观点来对数据和信息建模
2.逻辑/实现模型(Logical / Implementation):层次模型,网状模型,关系模型
3.物理模型(Physical):数据在具体DBMS产品中的物理储存方式
数据库系统的三级模式结构:
1.内模式(Internal Schema):(也称存储模式。)数据物理结构和储存方式的描述,是数据在数据库内部的表示方式
2.概念模式(Conceptual Schema):(也称全局模式。)有时简称“模式”。是对数据库中全体数据的逻辑结构和特征的描述
3.外模式(External Schemas):(也称子模式或者用户模式。)数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述
数据库系统的两级映射以及物理、逻辑独立性:
两级映射:
1.概念模式/内模式映射
2.外模式/概念模式映射
数据的物理独立性:
内模式与概念模式之间的映射提供了数据的物理独立性。当数据的物理结构发生变化时,只需要修改内模式与概念模式之间的映射即可。
数据的逻辑独立性:
概念模式与外模式之间的映射提供了数据的逻辑独立性。当数据的整体逻辑结构发生变化时,只需要修改各个外模式与概念模式之间的映射即可保证应用程序不受影响。
数据的约束条件:完整性约束
1. 域约束:对属性取值范围的约束
2. 键约束:每个关系必须要有主键,且每个主键必须不相同
3. 非空约束:属性值不能为NULL
4. 实体完整性约束:主键值不能为空
5. 参照完整性约束:外键可以取NULL值,但若外键为另一关系主键,则不能为NULL。
6. 用户定义的完整性
各种数据操作可能违反的完整性约束
插入操作:域约束、键约束、非空约束、实体完整性约束、参照完整性约束
删除操作:参照完整性约束
更新操作:域约束、键约束、非空约束、实体完整性约束、参照完整性约束
SQL语句执行顺序:
1. FROM子句组装来自不同数据源的数据
2. WHERE子句基于指定的条件对记录进行筛选
3. GROUP BY子句将数据划分为多个分组
4. 使用聚集函数进行计算
5. 使用HAVING子句筛选分组
6. 计算所有的表达式
7. 使用ORDER BY对结果集进行排序
控制冗余(Controlled Redundancy)与非控制冗余(Uncontrolled Redundancy)的区别:
未受控制的数据存储冗余会导致如下的问题:
1. 更新数据时的重复工作
2. 浪费空间
3. 数据可能会不一致
因此,理想情况下,我们应该设计一个没有冗余的数据库,但是有时候我们需要提高查询的效率,因此我们引入了控制冗余(Controlled Redundancy)
例如:
我们将学生名和课程号冗余存储于GRADE_REPORT表中,因为查询成绩的时候我们需要同时查询学生姓名以及课程号。
关系(Relation)与文件(files)或表(tables)的不同:
关系看上去像一张二维表
关系的域(属性的取值范围)为一组原子值(不可再分割的值)
关系中的元组必须各不相同
关系代数:
五种基本运算:并、差、笛卡尔积、选择、投影
关系代数解释器:关系代数解释器(模拟关系代数)
内连接的种类:
1. 等值连接
2. 不等连接
3. 自然连接
SQL语句:
表结构的复制(不包含表之间的关系)
SELECT * INTO COPY_DEPARTMENT FROM DEPARTMENT WHERE 1=0;
三值谓词逻辑:
1. TRUE
2. FALSE
3. UNKNOWN
只有在比较结果为TRUE是才确定为真,e.g. (TRUE与UNKNOWN交为UNKNOWN, 此元组不会出现在结果中)
数据库应用系统设计的基本过程:
Phases of Database Design andImplementation Process(数据库设计的基本过程)
Phase 1:Requirements Collections and Analysis(需求收集与分析)
Phase 2:Conceptual Database Design(概念结构设计)
Phase 3:Choice of a DBMS(选择合适的DBMS)
Phase 4:Data Model Mapping (Logical Database Design)(逻辑结构设计)
Phase 5:Physical Database Design(物理结构设计)
Phase 6:Database System Implementation(数据库实施)
Phase 7:Database System Operation and Maintenance(数据库运行和维护)
ER图符号解释:
将ER模型映射成逻辑模型的步骤:
1. 映射强实体型
2. 映射弱实体型
3. 映射1 : 1 二元联系型
4. 映射1 : N 二元联系型
5. 映射M : N二元联系型
6. 映射多值属性
7. 映射N元联系
数据库范式:
1NF(First Normal Form):当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称实体E满足第一范式
2NF(Second Normal Form):当且仅当实体E满足第一范式,且每一个非键属性完全依赖主键时,满足第二范式
3NF(Third Normal Form):当且仅当实体E是第二范式(2NF),且E中没有非主属性传递依赖时,满足第三范式