- 基本概念
- 数据库
- 数据库管理系统DBMS
- 特征
- 数据结构化且统一管理
- 有较高的数据独立性
- 提供数据控制功能
- 分类
- 关系数据库系统RDBS(Relation DataBase System)
- 支持关系模型的数据库系统
- 常见FoxBASE、Foxpro、dBASE、Access
- 面向对象的数据库系统OODBS(Object-Oriented DataBase System)
- 必须符合两个条件
- 必须是一个DBMS
- 必须面向对象
- 必须符合两个条件
- 对象关系数据库系统ORDBS(Object-Oriented Relation DataBase System)
- 传统关系数据模型基础上,提供元组、数组、集合等更丰富的数据类型以及处理新的数据类型操作的能力
- 关系数据库系统RDBS(Relation DataBase System)
- 特征
- 数据库三级模式两级映像
- 模式结构
- 外模式/用户模式/子模式External Schema
- 用户与数据库系统的接口,是用户用到的那部分数据的描述
- 外模式的数据定义语言称为外模式DDL
- 概念模式/模式Schema
- 数据库中全体数据的逻辑结构和特征的描述,只涉及行的描述,不涉及具体的值
- 内模式/存储模式Internal Schema
- 数据物理结构和存储方式的描述,是数据在数据库内部的表示方式
- 定义所有的内部记录类型、索引和文件的组织方式以及数据控制方面的细节
- 外模式/用户模式/子模式External Schema
- 两级映像
- 模式/内模式映像
- 外模式/模式映像
- DBMS的二级映像功能保证了数据的独立性
- 模式结构
- 数据库的分析与设计过程
- 一般分为以下6个阶段
- 一般分为以下6个阶段
- 数据模型
- 三要素
- 数据结构
- 数据操作
- 包括操作及操作规则
- 数据的约束条件
- E-R模型/实体-联系模型*
- 实体 矩形
- 联系 菱形
- 一对一关系
- 1:1
- 一对多关系
- 1:n
- 多对多关系
- m:n
- 一对一关系
- 属性 椭圆形
- 简单属性
- 原子的、不可再分的
- 符合属性
- 可以细分为更小的部分
- 单值属性
- 只有单独的一个值
- 多值属性
- 对应一组值
- NULL属性
- 表示无意义或不知道
- 派生属性
- 从其他属性得来
- 简单属性
- 三要素
- 关系代数
- 关系相关名词
- 目或度
- R表示关系的名字,n表示关系的目或度
- 候选码(Candidate Key)
- 若关系中的某一属性或属性组的值能唯一标识一个元组,则称该属性或属性组为候选码
- 主码(Primary Key)
- 若一个关系中有多个候选码,选定其中一个为主码
- 主属性
- 在关系中,属于候选码的属性被称为主属性。
- 不属于任何候选码的属性被称为非主属性。
- 外码
- 外码是表中的一个属性或属性组,它建立了表与表之间的参照关系,通常用于维护数据库的参照完整性。外码的值要么是 NULL,要么引用另一个表中的主码或候选码的值。
- 外键表示了两个关系之间的相关联系
- 全码
- 若关系模式的所有属性组都是这个关系模式的候选码
- 目或度
- 关系的三种类型
- 基本关系/基本表/基表
- 实际存在的表,它是实际存储数据的逻辑表示
- 查询表
- 查询结果对应的表
- 视图表
- 由基本表或其他视图表导出的表
- 它本身不独立 存储在数据库中,数据库中只存放它的定义,所以称为虚表
- 基本关系/基本表/基表
- 关系代数运算
- 并
-
- 交
-
- 差
-
- 笛卡儿积
-
- 投影
- 从关系的垂直方向进行运算
- 从关系的垂直方向进行运算
- 选择
- 从关系的水平方向进行运算
- 从关系的水平方向进行运算
- 连接/联接
- 连接
- 等值连接
- 自然连接
- 除÷
- 并
- 关系相关名词
- 数据库完整性约束
- 实体完整性
- 基本关系R的主属性A不能取空值
- 参照完整性/引用完整性
- 若F是基本关系R的外码,它与基本关系S的主码相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值
- 用户定义完整性
- 针对某一具体的关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,由应用的环境决定
- 实体完整性
- 关系数据库SQL简介
- 体系结构
- 三标准
- ANSI SQL
- SQL-92或SQL2
- SQL-99(也称为SQL3)
- SQL支持关系数据库的三级模式结构
- 视图=外模式
- 基本表=模式
- 存储文件=内模式
- SQL数据定义
- 创建表
- 语句格式
- CREATE TABLE <表名> (<列名><数据类型>[列级完整性约束条件],[<列名><数据类型>[列级完整性约束条件]]...[,[表级完整性约束条件]])
- 列级完整性约束条件
- NULL
- UNIQUE
- NOT NULL UNIQUE:取值唯一且不能取空值
- 语句格式
- 修改表
- 语句格式
- ALTER TABLE <表名> [ADD<新列名><数据类型>[列级完整性约束条件]],[DROP <完整性约束名>][MODIFY <列名><数据类型>];
- 语句格式
- 删除表
- DROP TABLE <表名>;
- 创建索引
- CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[次序][,<列名>[<次序>]]...);
- 次序:ASC升序(默认),DSC降序
- UNIQUE:唯一
- CLUSTER:建立的索引是聚集索引
- 删除索引
- DROP INDEX <索引名>;
- 创建视图
- CREATE VIEW 视图名 (列表名)AS SELECT 查询子句[WITH CHECK OPTION];
- CREATE VIEW 视图名 (列表名)AS SELECT 查询子句[WITH CHECK OPTION];
- 删除视图
- DROP VIEW 视图名;
- 创建表
- SQL数据查询
- SELECT基本结构
- SELECT [ALL|DISTINCT]<目标列表达式>[目标列表达式]...FROM <表名或视图名>[,<表名或视图名>] [WHERE <条件表达式>] [GROUP BY <列名1>[HAVING<条件表达式>]] [ORDER BY <列名2>[ASC|DESC]...];
- 子句顺序:SELECT、FROM、WHERE、GROUP BY、HAVING和ORDER BY
- SELECT和FROM是必须的,HAVING子句只能与GROUP BY搭配使用
- SELECT子句对应关系代数中的投影运算
- 输出可以是列名、表达式、集函数(AVG、COUNT、MAX、MIN、SUM)
- DISTINCT选项可以保证查询的结果集不存在重复元组
- FROM子句对应关系代数中的笛卡儿积
- WHERE子句对应关系代数中的选择谓词
- 子查询与聚集函数
- 子查询/嵌套查询
- 聚集函数
- 以一个值的集合为输入,返回单个值的函数
- SQL提供五个聚集函数:平均值AVG、计数COUNT、MAX、MIN、SUM
- 使用ANY和ALL谓词必须同时使用比较运算符
- 分组查询
- GROUP BY子句
- HAVING子句
- 更名运算
- oldname AS newname
- 字符串操作
- 模式匹配LIKE
- %匹配任意字符串
- _匹配任意一个字符
- 模式匹配LIKE
- 视图查询
- SQL数据更新
- 插入
- INSERT INTO 基本表名[(字段名[,字段名]...)] VALUE (常量[,常量]);
- INSERT INTO 基本表名(列表名) SELECT 查询语句;
- 删除
- DELETE FROM 基本表名[WHERE 条件表达式];
- 修改
- UPDATE 基本表名 SET 列名=值表达式[,列名=值表达式...][WHERE 条件表达式];
- 插入
- SQL的访问控制
- 访问控制是控制用户的数据存储权利,是由DBA决定的
- 通过GRANT和REVOKE将授权通知系统,并存入数据词典
- 当用户提出请求时,根据授权情况检查是否执行操作请求
- SQL标准语句包括DELETE、INDERT、SELECT和UPDATE
- 授权
- 回收权限
- 授权
- 访问控制是控制用户的数据存储权利,是由DBA决定的
- 嵌入式SQL
- SELECT基本结构
- 三标准
- 体系结构
- 关系数据库的规范化
- 函数依赖
- 函数依赖
- 假设有一个关系 R(A, B, C),其中 A、B 和 C 是属性。如果对于每个 A 的值,都有一个唯一的 B 值与之对应,那么可以表示为 A → B。
- 平凡函数依赖(Trivial Functional Dependency):
- 形式:X → Y,其中 Y 是 X 的子集。
- eg:在关系 R(A, B, C) 中,A, B → A 是一个平凡函数依赖,因为 A 是 A, B 的子集。
- 非平凡函数依赖(Non-Trivial Functional Dependency):
- 形式:X → Y,其中 Y 不是 X 的子集。
- eg:在关系 R(A, B, C) 中,A → B 是一个非平凡函数依赖,因为 B 不是 A 的子集。
- 完全函数依赖(Full Functional Dependency):
- 形式:X → Y,如果 Y 依赖于 X 的整个集合,而不是 X 的任何一个真子集。
- eg:在关系 R(A, B, C) 中,如果 A, B → C,且 A → C 和 B → C 都不成立,那么 A, B → C 是一个完全函数依赖。
- 部分函数依赖(Partial Functional Dependency):
- 形式:X → Y,如果 Y 依赖于 X 的某个真子集。
- eg:在关系 R(A, B, C) 中,如果 A, B → C,而 A → C 成立,那么 A, B → C 是一个部分函数依赖。
- 函数依赖的推导规则
- 自反律(Reflexivity):
- 如果 Y 是 X 的子集,那么 X → Y。
- 例如:A, B → A。
- 增广律(Augmentation):
- 如果 X → Y,那么对于任何 Z,X, Z → Y, Z。
- 例如:如果 A → B,那么 A, C → B, C。
- 传递律(Transitivity):
- 如果 X → Y 且 Y → Z,那么 X → Z。
- 例如:如果 A → B 且 B → C,那么 A → C。
- 自反律(Reflexivity):
- 函数依赖
- 规范化
- 1NF
- 表中的每个字段都必须是原子的(不可再分),即每个列都只能存储单一值。
- 确保每个列都是不可再分的单值。
- 消除重复的列。
- 2NF
- 在满足第一范式的基础上,消除部分依赖关系。只有当一个非主属性完全依赖于主属性时,才能保留。
- 任何非主属性都不能只依赖于主键的某一部分。
- 3NF
- 定义:在满足第二范式的基础上,消除传递依赖。任何非主属性不能依赖于另一个非主属性。
- 特点:
- 确保非主属性仅依赖于主码,而不是依赖于其他非主属性。
- BCNF
- 定义:在满足第三范式的基础上,对于每一个非平凡函数依赖 X→YX→Y, XX 必须是超键。
- 特点:
- BCNF 强化了第三范式的要求,解决某些特殊的依赖情况,确保没有任何部分依赖和传递依赖。
- eg:假设有一个表 Class(ClassID, StudentID, Instructor),其中 Instructor 依赖于 ClassID,如果一个课程只有一个特定的讲师,那么此类情况下这个表不满足 BCNF。需要将其拆分成两个表。
- 4NF
- 定义:在满足 BCNF 的基础上,消除多值依赖,即一列的值不应依赖于另一列与其独立的属性。
- 特点:
- 任何非主属性组应当独立于其他属性组。
- 5NF
- 定义:在满足第四范式的基础上,消除连接依赖。即表中的数据必须能够通过联合的方式分开到不同的表中。
- 特点:
- 5NF 处理那些多种依赖情况下的分解,确保以最少的冗余存储数据。
- 1NF
- 函数依赖
- 数据库的控制功能
- 事务管理
- 数据库的备份与恢复
- 并发控制
- 并发操作带来的问题
- 丢失修改
- 不可重复性
- 读脏数据
- 并发控制技术
- 封锁
- 排他锁X锁
- 共享锁S锁
- 三级封锁协议
- 一级封锁协议
- 二级封锁协议
- 三级封锁协议
- 封锁
- 活锁和死锁
- 并发调度的可串行性
- 两段封锁协议
- 封锁的粒度
- 封锁对象的大小称为封锁的粒度
- 并发操作带来的问题
- 事务管理
- 数据仓库和数据挖掘基础
- 大数据基本概念
- 分布式数据库
- 分片透明(Fragmentation Transparency):
- 用户或应用程序只对全局关系进行操作而不必考虑数据的分片。
- 复制透明(Replication Transparency):
- 为提高系统性能和实用性,有些数据并不是只存放在一个场地,用户不需要知道数据的复制情况和副本数量。
- 位置透明(Location Transparency):
- 用户或应用程序应适当了解分片,但不必了解片段的存储场地,用户不需要知道数据存储的具体物理位置。
- 局部数据模型透明:用户不需要知道各个局部数据库的具体数据模型。
- 逻辑透明:用户不需要知道数据的逻辑结构和组织方式。
- 分片透明(Fragmentation Transparency):
中级软考笔记-基础知识-7-数据库
最新推荐文章于 2025-04-07 16:41:44 发布