数据库期中个人复习笔记
一、绪论
1. 数据库的四个基本概念:
数据(data):数据库中存储的基本对象,描述事物的符号记录称为数据,数据的含义称为语义
数据库(DB):长期存储在计算机内有组织、可共享的大量数据的集合
数据库管理系统(DBMS):位于用户与操作系统之间的数据管理软件
数据库系统(DBS):引入数据库后的计算机系统,由DB、DBMS、应用系统和DBA组成的存储、管理、处理和维护数据的系统。日常说的数据库一般指的是DBS
2. 文件系统与数据库系统的区别和联系
文件系统与数据库系统相比,都是数据管理方式。区别在于文件系统的数据共享性弱,冗余度高(文件是面向应用的,一个文件基本对应一个应用),同时数据的独立性弱。但文件系统也有数据长期保存,数据由专门软件进行管理的特点
文件系统与数据库系统的应用例子:
文件系统:简单的文本编辑器、个人文档管理。
数据库系统:银行系统、学生选课系统、电商平台。
数据库系统的特点:
1. 整体数据的结构化 数据不再仅仅针对一个应用,而是面对多种应用,数据之间具有联系。所以描述数据的时候不仅要描述数据本身,还要描述数据之间的联系
2.数据共享性强、冗余度低且易于扩充
3.数据独立性强 包括物理独立性(用户的应用程序与数据的物理存储相互独立)和逻辑独立性(应用程序与数据库的逻辑结构相互独立)
4.数据由DBMS统一管理和控制
3. DBMS的主要功能:
数据定义,数据组织、存储和管理,数据操纵,数据库的事务管理和运行管理,数据库的建立和维护
4.数据模型是DBMS的核心和基础,是对现实世界数据特征的抽象
概念模型:
把现实世界中的客观对象抽象为某一种信息结构。这是按用户的观点来数据建模,主要用于数据库设计,是现实世界到信息世界的抽象。
概念模型术语
实体:客观存在并可相互区别的事物。
实体型:用实体名及其属性名集合来抽象描述同类实体。
实体集:同一类型实体的集合。
实体之间的联系:实体之间的相互关联(如1:1、1:n、m:n)。
数据模型:
对现实世界的模拟,对现实世界数据特征的抽象。按计算机系统的观点对数据建模,用于DBMS的实现,描述数据、数据联系、数据语义和一致性约束。
数据模型三要素
数据结构:描述数据库的组成对象与对象之间的联系,是所描述的对象类型的集合,是系统静态特性的描述
数据操纵:包含增删查改,是对系统动态特性的描述。
完整性约束:用于保证数据的正确性和相容性,完整性约束条件是一组完整性规则的集合
5.层次模型与网状模型
层次模型:用树形结构表示实体及其联系。比如组织机构图、文件目录结构、家族谱系。
优点:结构简单,查询效率高。
缺点:结构僵硬,难以表示多对多联系。
网状模型:用图结构表示实体及其联系。比如交通网络、电话通话网络、计算机网络拓扑。
优点:能表示复杂联系,查询效率高。
缺点:结构复杂,不易使用和维护。
6.关系模型及相关术语
关系模型:用二维表表示实体及联系。
关系:一张二维表。
属性:表中的列。
域:属性的取值范围。
元组:表中的一行。
码:能唯一标识元组的属性或属性组。
分量:元组中的一个属性值。关系的每一个分量必须是一个不可再分的数据项,也就是说不允许表中还有表
关系模式:对关系的描述,如:学生(学号,姓名,年龄)。
对于关系模型,数据操纵都是集合操作,操作对象和操作结果都是关系,也就是若干元组的集合。关系的完整性约束包括实体完整性、参照完整性和用户定义的完整性
关系模型的优缺点
优点:
建立在严格的数学概念基础上
概念单一
存取路径对用户隐蔽
缺点:
查询效率有时较低;
对复杂语义支持有限。
7.数据库的三级模式结构与两级映像
三级模式结构
外模式(用户视图):是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。同一外模式可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式
模式(逻辑结构):数据库中全体数据的逻辑结构和特征的描述,是数据库数据在逻辑级上的视图。一个数据库对应一个模式(和后续的create schema的模式概念不太一样)
内模式(物理结构):对数据物理结构和存储方式的描述,是数据在数据库内部的组织形式。比如堆存储,B+树索引等等。一个数据库只能有一个内模式
三级结构中模式(全局逻辑结构)是数据库的核心与关键
两级映像:保证DBS中数据的逻辑独立性和物理独立性
模式/内模式映像——>保证物理独立性:内模式变化不影响模式和应用程序。
外模式/模式映像——>保证逻辑独立性:模式变化不影响外模式和应用程序。
二、关系模型
1. 关系模型的三个组成部分
- 数据结构:数据的逻辑结构是二维表(关系)。这是模型的基础。
- 数据操作:对关系的操作,包括查询、插入、删除、修改。其特点是集合操作(操作对象和结果都是集合),核心是关系代数和关系演算。
- 完整性约束:保证数据库中数据正确性与有效性的规则。主要包括三类:
实体完整性
参照完整性
用户定义的完整性
五种基本操作:选择、投影、并、差、笛卡尔积
2. 关系数据语言的特点和分类
特点:
集合操作:操作对象和结果都是元组的集合。
高度非过程化:用户只需指明“做什么”,无需说明“怎么做”。
功能强大,语言一体化:集数据定义、操作、控制于一体。
分类:
关系代数语言:用对关系的运算来表达查询要求。(如:ISBL)
关系演算语言:用谓词(逻辑条件)来表达查询要求。
域关系演算(如:QBE)
元组关系演算(如:APLHA, QUEL)
具有双重特点的语言:兼具关系代数和关系演算的特点。SQL 是其中最典型、最成功的代表。
关系完备性:一个关系数据语言能够表示关系代数可以表示的查询
3. 术语定义、联系与区别
① 域,笛卡儿积,关系,元组,属性
域:一组具有相同数据类型的值的集合。例如:{‘男’, ‘女’}, {1, 2, 3}。
笛卡儿积:给定一组域D₁, D₂, ..., Dₙ,这些域的笛卡儿积为:D₁ × D₂ × ... × Dₙ = { (d₁, d₂, ..., dₙ) | dᵢ ∈ Dᵢ }。其结果是一个元组的集合。这里的n是关系的目或度,基数指的是笛卡尔积的个数
关系:笛卡儿积的有限子集称为关系。对应一张二维表。关系有三种类型,基本表、查询结果和视图。基本表是实际存储数据的逻辑结构,查询结果是临时表,视图是虚表,不存储实际数据
元组:表中的一行,是关系中的一个元素。
属性:表中的一列,给每一列起一个名字即为属性名。
联系与区别:
域是值的集合,是构成关系的基础。
笛卡儿积是所有可能的元组组合,是关系的原材料。
关系是从笛卡儿积中抽取的、有意义的元组集合,是最终的表。
元组是关系中的一行记录。
属性是关系中的一列字段。
② 主码,候选码,全码,外码,主属性、非主属性
候选码:能唯一标识关系中一个元组的属性或属性组。其所有属性均不可冗余。
主码:从多个候选码中选定一个作为该关系的主标识。
全码:当关系的所有属性一起才能构成候选码时,称该候选码为全码。
外码:关系R中的一个属性(组),它不是R的主码,但与另一个关系S的主码相对应。则称该属性(组)为R的外码。
主属性:包含在任何一个候选码中的属性。
非主属性:不包含在任何候选码中的属性。
联系与区别:
候选码和主码都用于唯一标识元组。一个关系至少有一个候选码,但主码只有一个。
主属性与非主属性的划分依据是是否参与候选码。
外码是建立关系之间联系的桥梁,是实现参照完整性的关键。
③ 关系模式,关系,关系数据库
关系模式:对关系的型(结构) 的描述。格式为:
关系名(属性1, 属性2, ..., 属性n)。它是静态的、稳定的。例如:
学生(学号,姓名,性别)就是一个关系模式。
关系:是关系模式在某一时刻的值(内容),是动态的、随时间变化的。它是一组符合关系模式的元组的集合。
例如:
(‘S001’, ‘张三’, ‘男’)就是“学生”关系模式下的一个元组,所有这样的元组构成了“学生”关系。
关系数据库:在一个应用领域中,所有关系(表)的集合构成了一个关系数据库。它也有型(数据库模式:所有关系模式的集合) 和值(数据库实例) 之分。
联系与区别:
关系模式是结构,关系是数据。关系模式是关系的框架,关系是这个框架里填充的内容。
关系数据库是所有关系(表)的集合。
4. 关系模型的完整性约束
实体完整性:要求主码的属性值不能取空值。
参照完整性:要求外码的值必须是另一个关系中主码的有效值,或者为空值。外码不一定要与相应的主码同名
外码可以为空值的情况:当外码不是本关系的主属性,且其所参照的关联关系中的对应元组可以不存在时。例如,在“学生(学号, 姓名, 班主任工号)”关系中,“班主任工号”是外码,参照“教师”表。如果一个新生尚未分配班主任,则其“班主任工号”可以为空。用户定义的完整性:针对某一具体应用的数据必须满足的语义约束。例如:年龄必须在0-150岁之间,性别只能是‘男’或‘女’。
5.关系代数

四、数据库安全性
1. 什么是数据库的安全性?
数据库的安全性是指保护数据库,防止不合法使用所造成的数据泄露、更改或破坏。
2. 对数据库安全性产生威胁的因素(举例)
非授权用户的恶意访问和数据窃取。
授权用户的越权操作。
数据库重要或者敏感数据泄露
安全环境脆弱
计算机病毒和恶意软件的破坏。
硬件故障(如磁盘损坏)导致数据丢失。
自然灾害(如火灾、地震)。
3. 实现数据库安全性控制的常用方法和技术
用户身份鉴别:系统提供的最外层保护措施。
- 口令认证
- 智能卡认证
- 生物特征认证(指纹、虹膜)
- 存取控制:确保只授权给有资格的用户访问数据库的权限。
- 视图机制:为不同用户定义不同的视图,隐藏机密数据。
审计:将用户对数据库的所有操作记录在审计日志中,用于事后分析。
数据加密:存储和传输敏感数据时进行加密。
4. 自主存取控制 vs. 强制存取控制
| 特性 | 自主存取控制 | 强制存取控制 |
|---|---|---|
| 核心思想 | 用户对自己拥有的数据对象,可以自主地决定是否授予其他用户访问权限。 | 系统为每个数据对象和用户都分配一个固定的安全级别,用户不能改变。 |
| 灵活性 | 高 | 低 |
| 安全性 | 相对较低,可能存在间接泄露的风险。 | 高,提供了更严格的安全保障。 |
| 实现方式 | 通过 SQL 的 GRANT 和 REVOKE 语句实现。 | 通过敏感度标记来实现。 |
5.强制存取控制中的核心概念
主体:系统中的活动实体,即用户或用户进程。
客体:系统中的被动实体,即受控对象,如数据库、表、记录、字段等。
敏感度标记:被分为若干级别的安全属性,用于标识主体和客体的安全级别。
主体的敏感度标记称为 许可证级别
客体的敏感度标记称为 密级
6.强制存取控制规则(举例说明)
强制存取控制通过比较主体和客体的敏感度标记来决定是否允许存取。
规则1(向下读):仅当主体的许可证级别 >= 客体的密级时,该主体才能读取相应的客体。
举例:一个拥有“秘密”许可证的用户可以读取“秘密”和“公开”的文件,但不能读取“绝密”文件。
规则2(向上写):仅当主体的许可证级别 <= 客体的密级时,该主体才能写入相应的客体。
举例:一个拥有“秘密”许可证的用户可以写入“秘密”和“绝密”的文件(防止数据从高密级流向低密级),但不能写入“公开”文件。
7. 数据库的审计功能
是什么:审计功能是指数据库管理系统提供的一种记录和追踪机制,能够将用户对数据库的所有操作(如登录、查询、修改、删除) 自动记录到一个特殊的审计日志中。
为什么:
安全威慑:知道操作会被记录,用户会减少进行违规操作的可能。
故障排查:当数据库发生错误或数据异常时,可以通过审计日志追溯原因。
事后审查:在发生安全事件后,可以通过分析审计日志来发现非法存取企图或违规操作,并追究责任。
满足合规要求:许多行业法规要求对数据访问进行审计。
五、数据库完整性
1. 什么是数据库的完整性?
数据库的完整性是指数据的正确性和相容性。
正确性:数据是符合现实世界语义的。
相容性:数据库同一对象在不同关系表中的数据是逻辑一致的。
核心思想:防止数据库中存在不符合语义、不正确的数据。
2. 完整性与安全性的区别和联系
| 维度 | 数据库安全性 | 数据库完整性 |
|---|---|---|
| 目的 | 保护数据,防止恶意破坏和非法存取。 | 确保数据的正确性和有效性。 |
| 关注点 | 谁在什么范围内可以做什么。 | 数据本身应该满足什么条件。 |
| 防范对象 | 非法的用户和操作。 | 不合语义的、不正确的数据,无论操作者是谁。 |
| 措施 | 用户身份鉴别、存取控制、视图、审计、加密等。 | 完整性约束定义与检查、触发器、断言等。 |
| 联系 | 两者共同保护数据库。安全性是完整性的基础,没有安全性,完整性无从谈起。 |
3. 什么是数据库的完整性约束?
完整性约束是数据库中的数据必须满足的语义约束条件。它们是预先定义好的规则,由DBMS进行强制检查。
4. 完整性控制机制的三方面功能
定义功能:提供定义完整性约束条件的机制。
检查功能:检查用户发出的操作请求是否违背了完整性约束条件。
违约处理:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性(如拒绝执行、级联操作等)。
5. 违反完整性约束时的处理
| 约束类型 | 违约处理 |
|---|---|
| 实体完整性 | 拒绝执行(如:插入重复主码或主码为空的元组)。 |
| 参照完整性 | 情况复杂,有多种处理策略: • 拒绝执行 • 级联操作 ( CASCADE)• 设置为空值 ( SET-NULL) |
| 用户定义的完整性 | 拒绝执行(如:工资为负数,年龄超限等)。 |
6.区分参照表与被参照表
referens后面带的表名是被参照表,包含外码那个表叫参照表
