数据库系统复习提纲
考试时间:2021.7.7 题型:选择,填空,判断,简答题,综合设计题:
绪 论
1.1 概述
1.1.1 数据、数据库、数据库管理系统、数据库系统
1、数据(data)
- 数据是描述事物的符号记录,是数据库中存储的基本对象,有多种表现形式和各种数据类型 。
- 数据与其语义是不可分的,需要经过语义解释。
2、数据库(database,简称DB)
数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并为各种用户共享。具有永久存储、有组织和可共享等基本特点。(P4)
3、数据库管理系统(database management system ,简称DBMS)(P5)
- DBMS 在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。
- DBMS是数据库系统的核心。
4、数据库系统:
是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其应用开发工具)、应用系统、数据库管理员和用户构成。
1.2 数据模型
- 是用来抽象、表示和处理现实世界中的数据和信息的工具,是对现实世界的模拟,这些概念必须能够精确地描述系 统的静态特性、动态特性和完整性约束条件,是数据库系统的核心和基础。
数据模型组成三要素:数据结构、数据操作、数据的约束条件。
- 数据结构:为所研究对象类型的集合。一类对象与数据类型、内容、性质有关,另一类对象与数据间的联系有关。是对系统静态特性的描述。
- 数据操作:是指对数据库中各种对象(型)的实例(值)允许执行的操作集合,包括操作及有关操作规则。主要有检索和更新(包括插入、删除、修改)两大操作。是对系统动态特性的描述。
- 数据的约束条件:是一组完整性规则的集合,用以限定符合数据模型的数据库状态,以保证数据的正确、有效和相容。
1.2.3关系数据模型
1、关系数据模型的数据结构
关系模式的数据结构是一张二维表,它由行和列组成。
2、关系数据模型的操纵与完整性约束
包括实体完整性、参照完整性、用户自定义完整性。
关系数据模型中的数据操作是集合操作,操作对象和操作结果都是关系。只关心“干什么”,不关心“怎么干”
3、关系模型优缺点
结构简单、用户易懂易用,数据独立性强,缺点是查询效率低,要进行优化。
1.3数据库系统结构
1.3.1 关系数据库系统的模式结构
数据库系统的模式结构:数据库系统是由外模式、模式、内模式三级构成
模式:也称逻辑模式,是数据库中全体数据逻辑结构(数据项的名字、类型、取值范围等)和特征(数据之间的联系以及数据有关的安全性、完整性要求)的描述,是所有用户的公共数据视图。
外模式:也称子模式或用户模式,他是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。通常是模式的子集。一个数据库可有多个外模式。
内模式:内模式也称存储模式,它是数据物理结构和存储结构的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
数据库的二级映像:
外模式/模式映像:外模式(视图)与逻辑模式对应联系, 实现数据的逻辑独立性。
数据的逻辑独立性:当模式改变时,由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性。
模式/内模式映像:模式与内模式之间的一对一映射, 实现数据的物理独立性。
数据的物理独立性:当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性。
这两种映像当外部或者内部发生改变的时候,可以仅通过映射的改变,来保证外/内模式不改变,从而保证应用程序不改变。外模式→数据的逻辑独立性,内模式→数据的物理独立性
第一章 关系数据库
1、关系数据库系统:支持关系模型的数据库系统。
2、关系模型的组成:关系数据结构、关系操作集合、完整性约束条件>三部分。
3、关系数据结构
特点:简单的数据结构表达丰富的语义。
4、关系操作
-
采用集合操作:操作对象与操作结果为集合,
-
常用的操作
- 查询:选择、投影、连接、除、并、交、差等;
- 更新:增、删、改
5、完整性约束
-
允许定义三类完整性:实体完整性、参照完整性、用户自定义完整性。
-
关系系统自动支持的完整性:实体完整性、参照完整性。
2.1 关系数据结构(关系、关系模式、关系数据库)
1、关系
一张扁平的二维表,描述现实世界的实体以及实体间的联系
侯选码:若关系中某一属性组的值能唯一标识一个元组,则称该属性组为侯选码
主码:若一个关系中有多个侯选码,则选其中一个作为主码。
主属性:主码的诸属性
非主(码)属性:不包含在任何侯选码中的属性
关系的三种类型:基本表(实际存在表)、查询(临时)表(查询结果)、视图表(虚表:由基本表与其他试图表导出)
2、关系模式型与值
型与值: 关系(表)是数据库的值,关系模式是数据库的型。型是相对稳定的,值是相对变动的。
3、关系数据库
-
含义:在一个给定的现实世界的领域中,相应于所有实体及实体之间的联系的关系的集合构成一个关系数据库。
-
关系数据库的型和值:型即关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系模式的值也称为关系数据库,是这些关系模式在某一时刻对应的关系的集合。
2.2 关系操作
5个基本操作:选择、投影、并、差、笛卡尔积,其他操作可以用基本操作表示
交运算操作表达:R ∩S = R –(R-S),连接操作表达:
2.3 关系完整性
1、实体完整性
-
要点:主属性不能取空值,且取值唯一。
-
现实世界的语义要求:一个基本关系通常对应现实世界的一个实体集,现实世界的实体是可以区分的,即它们具有某种唯一标识,在关系模型中以主码作为唯一标识。
2、参照完整性
-
关系与关系之间存在着引用关系:因为现实世界的实体之间存在某种联系,而关系模型中实体及实体间的联系都是用关系来描述的。
-
要点:
- 外码–基本关系R的非主码属性(组)F与基本关系S的主码Ks相对应,则属性(组)F 为R的外码;
- 参照关系–R (外码所在的关系,参照别的关系主码);
- 被参照关系–S (主码被别的表非主码参照)
- R的非码属性(组)F要参照S的主码Ks。
3、用户自定义完整性
-
反映某一具体应用所涉及的数据必须满足的语义要求。
-
通常有三类:非空约束(not null)、唯一约束(unique)、检查约束(check)
2.4 关系代数
-
何为关系代数:是抽象的查询语言,它用关系运算来表达查询。主要研究关系(表)运算,运算对象是关系,运算结果也是关系。
-
关系运算分两类:
-
1)传统的集合运算:并、交、差、广义笛卡尔积。运算只涉及行,将关系看成是行 (元组)的集合。
-
2)专门的关系运算:选择、投影、连接、除。运算既涉及行也涉及列。
-
-
专门关系运算(运算结果着重掌握语义)
- 1)选择
- σF(R):选择关系R中满足逻辑表达式F 为真的元组。
- 2)投影
- πA(R):从R中选择出若干属性列组成新的关系,其中A为R的属性列
- 注:投影后的重复行应该消除
- 3)连接∞
- 等值连接:上述连接的特例,θ取’=’.
- 自然连接: 书写格式在连接符下不加比较表达式,比较分量必须是相同的属性组,连接结果去掉重复列。
- 1)选择
第二章 关系数据库标准语言SQL
SQL:结构化查询语言的简称, 是关系数据库的标准语言。SQL 是一种通用的、功能极强的关系数据库语言,是对关系数据存取的标准接口, 也是不同数据库系统之间互操作的基础。集数据查询、数据操作、数据定义、数据控制功能于一体。
3.1 标准SQL语言核心功能的9 个动词
SQL 功能 | 动词 |
---|---|
数据定义 | CREATE,DROP, ALTER |
数据查询 | SELECT |
数据操纵 | INSERT,UPDATE,DELETE |
数据控制 | GRANT,REVOTE |
各个DBMS 产品在实现标准SQL 语言时各有差别,一般都作了某些扩充
3.2 数据定义
数据定义的基本对象为表、索引、视图(导出表)
操作对象 | 操作方式 | ||
---|---|---|---|
创建 | 删除 | 修改 | |
表 | CREATE TABLE | DROP TABLE | ALTER TABLE |
索引 | CREATE INDEX | DROP INDEX | |
视图 | CREATE VIEW | DROP VIEW |
-
基本表独立存在,不同的RDBMS 产品,表的物理存储会有不同的方式。
-
索引依附于基本表。其作用是为了加快数椐的访问速度。两类:聚族索引与非聚簇索引
-
视图为导出表(基于基本表的虚表),只存储视图定义,不存放视图对应的数据, 数据存放在导出视图的某本表中。(对视图操作最终通过视图的定义变为对基本表操作)
3.2.1定义、删除、修改基本表
1、定义基本表的一般格式 :
CREATE TABLE <表名>
(
<列名1> <数椐类型〉[列级完整性约束条件],
〈列名2〉<数据类型>[列级完整性约束条件]…],
<表级完整性约束条件>,
);
格式说明:create table为关键字,表名由用户自定义,属性由逗号分割,结束符为;
完整性规则
-
(1)实体完整性不可少(NOT NULL UNIQUE)
-
(2)列级约束与表级约束的区别:
- 如果完整性约束涉及到该表的多个属性列,必须定义在表级上,否则既可以 定义在列级也可以定义在表