数据库基础知识点

更新时间:2024-06-15 21:28:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数据库

一、数据库系统基本概念

1、数据库的基本概念

(1)信息:信息是现实世界事物的存在方式或运动状态的反映,是对事物间相互联系、相互作用的描述。信息具有可感知、可存储、可加工、可传递和可再生的自然属性。

(2)数据:数据是描述现实世界事物的符号记录。

(3)信息与数据的关系:数据是信息的符号表示,或称载体;信息是数据的内涵,是数据的语义解释。

(4)数据库:数据库是按一定结构组织并可以长期存储在计算机内的、在逻辑上保持一致的、可共享的大量相关联数据的集合。

(5)数据库中的数据通常分为两部分:用户数据和系统数据

(6)系统数据:亦称为数据字典,包括对数据库的描述信息、数据库的存储管理信息、数据库的控制信息、用户管理信息和系统事务管理信息等。数据字典亦称为元数据或系统目录。

(7)数据库管理系统:是位于用户和操作系统之间的一个定义、操纵、管理、构建和维护数据库的系统软件,是数据库和用户之间的一个接口。 (8)数据库管理员(DBA)的职责: 确定数据库中的信息内容和结构 确定数据库的存储结构和存储策略 定义数据的安全性要求和完整性约束 监控数据库的使用和运行 数据库的性能改进

定期对数据库进行重组和重构,以提高系统的性能 (9)系统分析员的职责:

负责应用系统的需求分析和规范说明

确定系统的软硬件配置并参与数据库系统的概要设计 (10)数据库设计人员的职责: 参加用户需求调查和系统分析

负责数据库中数据的确定、数据库各级模式的设计 (11)1968年,美国IBM公司推出第一个数据库管理系统IMS

(12) 1970年,美国IBM公司的高级研究员E.F.Codd提出了关系数据模型及其相关概念。奠定了关系数据库的理论基础。 2、数据库方法的主要特征 (1)数据库方法的优势: 数据库系统自描述特点 数据结构化

数据共享性高、冗余度小、易扩充 数据独立性高

由DBMS进行统一的数据管理和控制 (2)DBMS的数据控制功能:

提供数据库数据的安全性保护,限制非授权的访问

提供数据库的备份和恢复功能 提供定义和确保数据库完整性检查 提供并发控制功能

提供高效的数据查询处理和优化 提供多用户界面

3、数据库系统的构成成分(P2)

(1)构成:数据库操作系统、数据库管理系统、应用开发工具、应用系统、数据库管理员、数据库用户 4、数据库技术的研究领域

(1)数据库管理系统软件的研究

研究的目的:提高系统的性能和提高用户的生产率 (2)数据库设计技术和方法的研究 (3)数据库理论的研究

二、数据模型

1、数据模型基本概念和主要成分 (1)数据模型: 数据模型是用来描述数据库数据的结构、定义在结构上的操纵,以及数据间的约束的一组概念和定义,描述了数据库的静态特征与动态行为,为数据库的表示和操纵提供框架。 (2)数据模型应满足的三点要求: 能比较真实地模拟现实世界 容易为人所理解 便于在计算机上实现 (3)数据模型组成的要素:

数据结构:以一种统一的方式描述基本数据项的类型与性质以及数据与数 据间的关联

数据操作:表示数据模型的动态结构

数据约束:既刻画了数据静态特征,也表示了数据动态行为准则 主要是数据完整性约束

(4)数据模型是数据库系统的核心和基础。 2、数据模型的抽象层次和相互关联 3、各抽象层次的主要数据模型

(1)数据模型的分类:概念层模型、逻辑层模型、物理层模型

(2)概念层模型:简称概念模型,是现实世界到信息世界的语义抽象,主要用于数据库概念设计。

(3)逻辑层模型:简称逻辑模型,用于描述数据库数据的整体逻辑结构。 传统的逻辑模型是基于记录的模型,分为:层次模型、网状模型和关系模型。面向对象模型不是传统的基于记录的模型。

(4)物理层模型:简称物理模型,描述逻辑模型的物理实现,是数据库最底层的抽象。它确定数据的物理存储结构、数据存储路径以及调整、优化数据库的性能。

物理模型的设计目标是提高数据库性能和有效利用存储空间

4、概念数据模型——E-R模型

(1)概念模型用于信息世界的建模,与具体的DBMS无关 (2)几个概念:

实体:客观存在并可以相互区别的事物称为实体。 属性:实体所具有的某一特性称为属性。 域:属性的取值范围称为该属性的域。

实体型:用实体名及其属性名集合来抽象和刻画同类实体,称为实体型 实体集:同类实体的集合,称为实体集。 (3)两个实体型之间的联系: 一对一联系 (1:1) 一对多联系 (1:n) 多对多联系(m:n)

一对一联系是一对多联系的例,一对多联系是多对多联系的特例 (4)概念模型的表示方法——实体-联系模型(E-R模型)

(5)E-R模型是一个图示化模型,提供了表示实体型、属性和联系的方法。 实体型:用矩形表示,矩形框内写明实体名

属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。

联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁边标注上联系的类型(1:1、1:n或m:n) 注:联系型本身也是一种实体型,也可以有属性 (6)E-R模型的两个优点:

接近人的思维方式,容易理解 与计算机无关,用户容易接受

(7)E-R模型由于其易理解性且易于向关系模型转换,成为数据库概念设计的最一般的模型

5、常用的逻辑数据模型

(1)逻辑数据模型分类:层次数据模型、网状数据模型、关系数据模型、面向对象数据模型,以及对象-关系数据模型 (2)层次模型和网状模型

层次模型主要反映现实世界中实体间的层次关系,是以树状结构表示各类实体以及他们的联系

层次模型的存储结构通过邻接法、链接法和邻接-链接混合法实现数据的存储链接。

层次模型引入冗余数据和指针来实现实体的多对多联系 (3)关系模型

关系模型是目前最常用的一种数据模型

关系模型用二维表格结构表示各类实体及实体间的联系,一个关系数据库一般由多张二维表组成,每张二维表称为一个关系。

二维表的表头称为关系模式;二维表中的数据称为关系实例,简称关系 (4)面向对象模型

面向对象模型既是概念模型又是逻辑模型 6、数据库系统的三级模式结构和数据独立性

(1)从数据库管理系统角度看,数据库系统常采用三级模式结构:外模式、模式及内模式。这是数据库系统内部的系统结构。

(2)从数据库最终用户角度看,数据库系统的结构分为集中式结构、分布式结构、客户机/服务器结构以及面向Web应用的三层和n层体系结构。这是数据库系统外部的体系结构。

(3)型:是指对某一类数据的结构和属性的描述,值是型的一个具体赋值。数据库的型是固定不变的,而数据库的值是随时间变化的。

数据库的型亦称为数据库的内涵,数据库的值亦称为数据库的外延

(4)数据库的模式:是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及“型”的描述,不涉及具体的“值”。

(5)在某个特定时刻,数据库中的数据被称为一个数据库状态,也称为数据库的具体值的当前集合。

每个模式机构都有它自己实例的当前集合。

(6)数据库系统的三级模式:外模式、模式、内模式。这是数据库系统内部的体系结构或总体结构。

模式:也称逻辑模式或概念模式。一个数据库只能有一个模式。 外模式:也称子模式或用户模式。一个数据库可以有多个外模式。 内模式:也称物理模式或存储模式。一个数据库只能有一个内模式。 (7)外模式/模式映像:保证数据与程序的逻辑独立性,简称数据的逻辑独立性。 (8)模式/内模式映像:保证数据与程序的物理独立性,简称数据的物理独立性。 (9)数据模型和数据库系统的三级模式和两层映像的体系结构是整个数据库系统的核心和基础。

三、关系数据模型

1、关系数据库系统基本概念

(1)关系数据模型由关系数据结构、关系操作集合和关系完整性约束三大要素组成。

(2)关系数据结构: (3)关系操作集合:

关系操作的特点:集合操作方式。

这种操作方式也称为一次一个集合的方式。菲关系数据模型的数据操作方式则为一次一个记录方式。

用户不必请求DBA为他建立特殊的存取路径,存取路径的选择由DBMS的优化机制来完成。

用户不必要求助于循环和递归来完成数据的重复操作。 两种表示方式:代数方式和逻辑方式 (4)关系完整性约束:

数据库的数据完整性指数据库中数据的正确性、一致性和相容性 2、关系模型的数据结构和基本术语

(1)关系:一个关系对应一个二维表,二维表名就是关系名。 (2)属性:在二维表中的列(字段),称为属性。 (3)关系模式:在二维表中的行定义(记录的型),即对关系的描述称为关系模式。

(4)元组:在二维表中的行(记录的值),称为元组。 (5)分量:元组中的一个属性值

(6)候选码或候选键:如果在关系的一个码或键中,不能从中移去任何一个属

性,否则它就不是这个关系的码或键,则称这样的码或键为该关系的候选码或候选键。

(7)超码或超键:如果在关系的一个码中移去某个属性,它仍然是这个关系的码,则称这样的码或键为该关系的超码或超键。

每个关系至少有一个默认的超码或超键,即该关系的所有属性的集合,也是这个关系的最大超码或超键。

(8)主码或主键:在一个关系中的若干个候选码或候选键中指定一个用来唯一标识该关系的元组,则称这个被指定的候选码或候选键为该关系的主码或主键。 (9)主属性和非主属性:关系中包含在任何一个候选码中的属性称为主属性或码属性,不包含在任何一个候选码中的属性称为非主属性或非码属性。

(10)外码或外键:当关系中的某个属性(或属性组)虽然不是这个关系的主码或只是主码的一部分,但却是另一个关系的主码时,称该属性(或属性组)为这个关系的外码或外键。

(11)参照关系与被参照关系:参照关系也称从关系,被参照关系也称主关系。以外码为主码的关系称为被参照关系,外码所在的关系称为参照关系。 (12)以数学的观点定义关系称为关系的形式定义:

用集合论的观点定义关系:关系是一个度为K的元组的有限集合,即这个关系有若干个元组,每个元组有K 个属性值(把关系看成一个集合,集合中的元素是元组。)

用值域的概念来定义关系:关系是属性值域笛卡儿积的一个子集 (13)关系数据库对关系的限定: 每一个属性是不可分解的

每一个关系仅仅有一种关系模式

每一个关系模式中的属性必须命名,在同一个关系模式中,属性名必须是不同的

在关系中元组的顺序是无关紧要的,可任意交换。 在关系中属性的顺序是五关紧要的,可任意交换。

同一个关系中不允许出现候选码或候选键值完全相同的元组 3、关系操作的特征、关系代数 (1)关系代数的操作可分为三类:

基于传统集合论的操作:从行的角度进行的,有并、交、差、笛卡儿积 专门的关系操作:分为一元操作和二元操作。一元操作有选择和投影,二元操作有连接和除

扩充的关系操作:主要有广义投影、赋值、外连接、半连接、聚集、外部并 (2)并、差、笛卡儿积、选择、投影是五种基本的操作。

(3)基于传统集合论的关系操作是集合上的标准数学操作,包括并、交、差、笛卡儿积四种操作,它们都是二元操作。前三种操作必须满足相容性条件。 (4)如果两个关系满足相容性条件,则这两个关系具有相同的属性个数,并且每对相对应的属性都具有相同的域。

(5)P42-P49.相应操作的定义,以及关系代数。 4、关系的完整性约束

(1)关系数据模型的完整性约束主要包括实体完整性约束、参照完整性约束和用户定义完整性约束。

(2)实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由

关系数据库管理系统(DBMS)自动支持 (3)实体完整性约束

实体完整性约束是对关系中主码或主键属性值的约束。由实体完整性规则实现。

实体完整性规则:若属性A是关系R的主属性,则属性A不能取空值。 由此可见:

实体完整性约束是对关系的约束

每个关系必须有主码,主码的值唯一,用于标识关系的元组

组成主码的属性都不能取空值,而不仅仅是主码属性集整体不能取空值 (4)参照完整性约束

不仅两个或两个以上的关系间可以存在参照关系,同一个关系的属性间也可能存在参照关系。

外码不一定要与相应的主码同名

参照完整性规则:若属性(或属性组)F是关系R的外码,它与关系S的主码K相对应(关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须:

或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的主码值

参照完整性规则中,R和S可以是同一个关系 (5)用户定义完整性约束

主要是对属性的取值进行限定,所以主要是域完整性约束

域完整性约束是对属性的值域的约束,是指对关系中属性取值的正确性限制,包括数据类型、精度、取值范围、是否允许空值、是否有默认值等。

取值范围又分为静态定义和动态定义两种。

域完整性约束还包括定义属性间的依赖关系,这包括函数依赖和多值依赖。 注意:多个属性具有相同的域是可能的,甚至在同一个关系中的不同属性也可以有相同的域。

四、关系数据库基本语言SQL

1、SQL的基本概念和主要特点 (1)SQL的语言特点:

综合统一 高度非过程化

面向集合的操作方式 灵活的使用方式

语言简洁,易学易用,功能强 (2)SQL语言集数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)的功能于一体。

(3)SQL语言的动词 SQL功能 动词 数据查询 select 数据定义 Create\\drop\\alter 数据操纵 Insert\%update\\delete 数据控制 Grant\\revoke (4)SQL的数据类型(P56-57) 预定义数据类型 构造数据类型 用户定义数据类型 大对象类型

(5)SQL语言支持数据库三级模式结构,其中,外模式对应于视图和部分基本表;模式对应于基本表;内模式对应于存储文件。

(6)元组对应于表中的行,属性对应于表中的列,具体如下:

一个SQL数据库模式是该数据库中基本表的集合

一个关系对应于一个SQL表,行对应于元组,列对应于属性 一个表中可以有多个索引,索引可以存放在存储文件中 存储文件的逻辑结构组成了SQL数据库的内模式 一个SQL表可以是一个基本表,也可以是一个视图 一个基本表可以跨一个或多个存储文件存放,一个存储文件也可以存放一个或多个基本表

SQL用户可以是应用程序,也可以是用户

SQL环境是SQL数据存在和SQL语句执行的语境 (7)SQL语言的组成

数据定义语言(DDL):包括数据库模式、表、视图、索引、域、触发器、自定义类型等

数据操纵语言(DML) 数据定义语言(DCL) 嵌入式和动态SQL规则

SQL调用和会话规则 (8)P59

2、SQL的数据定义功能 (1)定义SQL模式:

Create schema <模式名> authrization <用户名>

例:创建一个名为 s_sc_c 的学生-选课-课程数据库模式,属主食Jin Create schema s_sc_c authrization Jin (2) 删除SQL模式:

Drop schema <模式名> |cascade|restrict|

当选用 drop schema 语句删除数据库模式时,有以下两种方式:

选用cascade(级联方式),则当删除数据库模式时,该数据库模式连同其下属的模式对象(基本表、视图、索引等)全部被删除。

选用restrict(约束方式),则当删除数据库模式时,该数据库模式下属的模式对象(基本表、视图、索引等)预先已被全部删除,才能执行对该数据库模式的删除,否则拒绝删除。

例:删除一个名为 s_sc_c 的学生-选课-课程数据库模式。 Drop schema s_sc_c cascade (3) 创建基本表:

Create table [模式名] <表名> (<列名><数据类型>[列级完整性约束])

(4)扩充和修改基本表:

SQL语言用 ALTER TABLE 语句扩充和修改基本表 (5)删除基本表:

Drop table <表名> [cascade|restrict]

当使用 DROP TABLE 语句删除基本表时,可以选用两种方式:

选用 cascade(级联方式),则在删除基本表时,该基本表中的数据、表定义本身以及在该基本表上创建的视图和索引也随之消失;

选用 restrict(约束方式),只有在预先已经清除了该基本表中的所有数据以及在该基本表上所创建的视图和索引后,才能删除这个空表,否则拒绝删除该表。

默认值为CASCADE

(6)在基本表上建立一个或多个索引目的:提供多种存储路径,加快查找速度。 (7)创建索引:

Create [unique][cluster] index <索引名>

Unique 表示此索引的每一个索引值只对应唯一的数据

Cluster表示要建立的索引为聚簇索引,聚簇索引是指索引项的顺序与表中记录的物理顺序一致的索引组织。

(8)在一个基本表上只能建立一个聚簇索引。 (9)删除索引:

DROP index [on <表名>] <索引名> 3、SQL的数据查询功能 (1)select * from

(2)字符_(下划线)表示可以和任意的单个字符匹配 字符%(百分号)表示可以和任意长的字符串匹配 (3)P65-71

4、SQL的数据修改功能

(1)SQL的数据修改语句包括插入、删除和更新三类语句。 (2)插入语句:insert into 表名 value

(3)删除语句:delete from <表名> [where <条件表达式> ] (4)更新语句:update <表名>

Set <列名>=<表达式> [where <条件表达式> ] 5、SQL的数据控制功能

(1)SQL的数据控制包括安全性控制、完整性控制、事务控制、并发控制和故障控制。

(2)SQL语言主要使用GRANT语句和REVOKE语句实现权限授予和权限收回。 (3)授予角色语句的一般格式:

Grant <角色> to {<用户> |public|} (4)授予权限语句的一般格式:

Grant {<权限>[,<权限>,...]|ALL} [on <对象名>]

TO{<用户>|<角色>[,<用户>|<角色>,...]|public} [with grant option]

语义:把对指定操作对象的指定操作权限授予指定的用户或角色。

(5)grant语句可以一次向一个用户授权,也可以一次向多个用户授权。 (6)权限收回与权限授予的语句一样。 6、SQL中视图的概念、定义、操作、意义

(1)视图:视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。

(2)视图是从一个或多个基本表(或其他视图)中使用select from 语句导出的表。它与基本表不同,是一个虚表。 (3)视图的创建:

Create view <视图名> As <子查询>

[with check option]

子查询一般不含有 ORDER BY 子句和 DISTINCT 短语的SELECT语句。 在CREATE VIEW 语句中可仅指定视图名,省略组成视图的各个属性列名 以下情况必须明确指定组成视图的所有列名:

其中某个目标列不是单纯的属性名,而是集合函数或列表达式 多表连接时选出了几个同名列作为视图中的列 需要在视图中为某列重新命名

(4)视图不仅可以建立在一个或多个基本表上,也可以建立在一个或多个已定义好的视图上,或同时建立在基本表与视图上。

(5)根据视图定义中的查询语句,将视图分为以下几类:

行列子视图:一个视图是从单个基本表导出的,并且只是去掉了基本表的某些行和某些列,但保留了主码,称这类视图为行列子视图

带表达式的视图:一个视图带有由基本数据经过各种计算派生出的虚拟列,则称为带表达式的视图。

分组视图:一个视图在创建它的SELECT语句中使用了聚集函数和GROUP BY 子句,这样的视图称为分组视图。

连接视图:一个视图在创建它的SELECT语句中使用两个或多个表的连接,这样的视图称为连接视图。

(6)视图的删除:drop view <视图名> [cascade]

如果给出选项cascade,则由该视图导出的所有视图也同时删除。 (7)视图物化:指在视图第一次被查询的时候物理地建立一个临时的视图表(实表),并假设基于这个视图的其他查询会紧随其后,因而保留这个临时视图表。 (8)由于视图是虚表,因此对视图的修改,最终要转换为对基本表的修改。 并不是所有的视图都是可修改的 (9)视图的作用:

视图能够简化结构和复杂查询操作

视图使用户能以多种角度、更灵活地观察和共享同一数据 视图提高了数据的逻辑独立性 视图能够提供安全保护 (10)数据库程序设计方法:

将数据库命令嵌入到通用程序设计语言中 使用数据库函数库 设计一种全新的语言

7、SQL中存储过程、触发器、嵌入式SQL、动态SQL的概念和作用 (1)存储过程:是为了完成特定的功能而汇集成的一组语句,对该组语句命名、编译和优化后存储在数据库服务器中。 (2)使用存储过程的优点:

减少重复工作,还可以增强软件的模块

减少客户与服务器之间的数据传输和通信代价,提高运行效率。 通过为数据库用户提供更复杂类型的导出数据,增强视图所提供的建模能力 (3)SQL/PSM结合了SQL的数据操作能力和过程化预言的流程控制能力,是对SQL的过程化扩展,是一种实用而方便的数据库程序设计语言。

(4)触发器是用户定义在表上的一类特殊存储过程,触发器的执行是通过事件来触发执行的,所以成为触发器。

(5)触发器据有强大的数据控制和监视审计能力,是维护数据库完整性和安全性的简便而有效的方法,也是使数据库系统具有主动性的简便而有效的方法。 (6)创建/删除触发器:create/drop trigger<触发器> (7)P93-96

(8)动态SQL:动态SQL是SQL标准提供的一种语句运行机制,它允许在SQL客户模块或嵌入式宿主程序的执行过程中执行动态生成的SQL语句。动态SQL语句是指在程序编译时尚未确定,其中有些部分需要在程序的执行过程中临时生成的SQL语句。

(9)动态SQL的语句类型

可变的SQL的语句:在程序运行时临时输入完整的SQL语句 条件可变的SQL的语句:SQL语句中的条件子句具有可变性

数据库对象、条件都可变的SQL的语句:SQL语句中的数据库对象和条件子句都是可变的

(10)动态SQL语句的执行方式: 立即执行方式 先准备后执行方式

五、关系数据理论和数据库设计

1、关系数据库规范化理论的基本概念

(1)规范化理论提供了判断关系模式优劣的理论标准。

(2)规范化理论不仅对于关系模式数据库的设计有重要意义,而且对于其他模型数据库的设计也有重要的指导意义。 (3)关系模式SUPPLIER有以下问题:

数据冗余 更新异常 插入异常 删除异常

2、函数依赖的定义及函数依赖的公理系统

(1)函数依赖的定义:若X?Y,若Y?X,则称X?Y为平凡的函数依赖。(选择题)

若X?Y,则称X为决定因素

若X?Y,Y?X,则记为X?Y

若Y不函数依赖于X,则记为X?Y(公式不对,见P105)

若X?Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖。 (2)公理系统三条规则:

A1:(自反律)。若Y?X?U,则X?Y为F所逻辑蕴含

A2: (增广律)。若X?Y为F所逻辑蕴含,且Z?U,则XZ?YZ为F所逻辑蕴含

A3:(传递律)。若X?Y及Y?Z为F所逻辑蕴含,则X?Z为F所逻辑蕴含

注意:自反律所得到的函数依赖均为平凡的函数依赖 (3)合并规则:由X?Y,Y?Z,有X?YZ 伪传递规则:由X?Y,WY?Z,有XW?Z 分解规则:由X?Y及Z?Y,有X?Z

3、第一范式、第二范式、第三范式、Boyce-Codd范式

(1)关系模式需要满足一定的条件,不同程度的条件称为不同的范式。 (2)第一范式(1NF):元组的每个分量必须是不可再分的数据项

(3)第二范式(2NF):若关系模式R?1NF, 且每一个非主属性完全函数依赖于码,则R?2NF

2NF就是不允许关系模式的属性之间有这样的函数依赖X?Y,其中X是码的真子集,Y是非主属性,即不允许有非主属性对码的部分函数依赖

(4)第三范式(3NF):若关系模式R?2NF,且每一个非主属性都不传递依赖于码,则R?3NF

(5)BCNF就是3NF的进一步规范化

在函数依赖的范畴内,BCNF达到了最高的规范化程度 4、多值依赖的定义及第四范式

(1)P110-111,多值依赖的定义,性质以及第四范式 5、关系模式的分解,模式分解的等价标准 (1)等价标准:

①分解具有无损连接性

②分解保持函数依赖(P114)

6、数据库设计的过程,各设计阶段的主要任务 (1)数据库设计过程:

需求分析 概念结构设计 逻辑结构设计 物理结构设计 数据库实施

数据库运行与维护

(2)概念结构设计特点:

有丰富的语义表达能力 易于交流与理解 易于变动

易于想各种数据模型转换

(3)设计概念结构的几种主要方式:

自顶向下:首先定义全局概念结构的框架,再逐步细化 自底向上:首先定义每一局部应用的概念结构,然后按一点的规则把他们集成,从而得到全局概念结构。

由里向外:首先定义最重要的那些核心结构,再逐渐向外扩充 混合策略:把自顶向下和自底向上结合起来的方法

(4)局部的E-R图转换为全局E-R图时,可能存在的冲突:

属性冲突:包括类型、取值范围、取值单位的冲突 结构冲突:

命名冲突:包括实体类型名、联系类型名之间异名同义或同名异义等 (5)物理结构设计的内容:

存储结构的格式设计 存储方法设计

①顺序存放:平均查询次数为关系的记录个数的二分之一 ②散列存放:查询次数由散列算法决定

③聚簇存放:记录“聚簇”是指将不同类型额记录分配到相同的物理区域中去

存取方法设计

(6)规范化理论最主要的应用是在数据库逻辑设计阶段

六、数据库管理系统

1、数据库管理系统的基本功能和主要成分 (1)数据库管理系统的基本功能:

数据定义功能:数据定义语言(DDL) 数据操纵功能:数据操纵语言(DML) 数据存储和管理功能 事务管理功能 其他功能

(2)数据库管理系统的三个主要部分:

存储管理器 查询处理器 事务管理器

2、数据存储组织和基本索引结构 (1)存储介质的分层:

高速缓冲存储器:是最快最昂贵的存储介质,一般很小

主存储器:用于存放可被CPU直接处理的数据的存储介质,若发生电源故障或者系统崩溃,主存储器中的内容常会丢失

第二级存储器:速度比主存储器慢得多,常用的是磁盘存储器 第三极存储器:主要是磁带存储器

在这个层次结构中,层次越高,则成本就越高,速度就越快

最快的存储介质(高速和主存储器)称为基本存储。第二级存储器称为辅助存储器或联机存储,最底层的介质(磁带机和自动光盘机)称为第三级存储或脱机存储

高速和主存储器属于易失性存储,第二级和第三级存储器是非易失性存储器 (2)磁盘:盘面被逻辑地划分为磁道,磁道又被划分为扇区,磁盘的每个盘面都对应一个读写头

(3)磁盘控制器是计算机系统与磁盘驱动器之间的接口

(4)磁盘块是磁盘空间分配的基本单位,也是在磁盘与主存之间传输数据的逻辑元,一个磁盘块由一个或多个扇区组成。 (5)一个磁盘块包含的信息:

块中记录的数目

块中空闲空间的末尾去

一个由包含记录位置和大小的条目组成的数组

(6)如果一条记录被删除,它所占的空间被释放,且它对应的条目被置换成被删除状态。此外,块中在被删除记录之前的记录将被移动。

(7)数据库系统中提高访问效率的一个重要手段是减少磁盘和内存之间传输的块数目。

(8)在内存中分配一定的空间作为缓冲区,内存缓冲区划分为缓冲块,缓冲块的大小与磁盘块大小相同

由于数据库系统中的程序可以对缓冲区的内容进行修改,所以磁盘上的副本比在缓冲区的副本旧。

(9)一个文件上可以建立多个索引,但只能建立一个主索引。 (10)索引类型:散列索引和顺序索引(P131-134)

(11)顺序索引例如B+树能有效地支持点查询和范围查询;散列索引能有效地支持点查询,但不支持范围查询。

3、查询处理的基本步骤和查询优化的主要方法

(1)查询处理器最主要的模块是查询编译器和查询执行引擎

(2)查询处理的代价可以通过该查询对各种资源的使用情况进行度量,进一步地,可以简答地用磁盘块I/O次数来度量磁盘上存储数据的代价。 (3)查询执行的最基本的动作是关系代数运算的执行

实现选择运算的另一种方法是索引扫描。执行条件是表在选择条件的属性上建有索引。

(4)一般,索引扫描的执行代价小于全表扫描的执行代价,还可以大大减少磁盘块I/O次数。

(5)查询优化是从许多策略中找出最有效的查询执行计划的一种处理过程 (6)主要方法:( P139)

逻辑查询计划选择 物理查询计划选择

4、事务管理的基本概念,并发控制和故障恢复的主要方法 (1)事务特性:

原子性:事务的所有操作在数据库中要么全部正确反映出来,要么全部不反映出来

保证原子性是DBMS的事务管理器中故障恢复机制的责任

一致性:事务的全部执行(即没有并执行的其他事务),保持数据库的一致性

确保单个事务的一致性是对该事务进行编码的应用程序员的责任 隔离性:每个事务都感觉不到系统中有其他事务在并发执行

持久性:一个事务成功完成后,它对数据库的改变必须是永久的,即使系统可能出现故障。

确保持久性也是DBMS的事务管理器中故障恢复机制的责任 (2)系统故障类型:

①事务故障:有两种错误可能导致事务执行失败 逻辑错误:事务由于某些内部条件而无法继续正常执行,这样的内部条件如非法输入、找不到数据、溢出或超出资源限制

系统错误:系统进入一种不良状态(例如死锁),结果事务无法继续正常执行。但该事务可以在以后的某个时间重新执行

回复子系统需要强行回滚该事务,即撤销该事务对数据库已作出的所有的修改,称做事务的撤销或回滚(UNDO)。

②系统故障:硬件故障,或者数据库软件或操作系统的漏洞,导致系统停止运行,主存储器内容丢失,而外存储器仍完好无损。

恢复子系统必须重做(REDO)

③磁盘故障 :可以利用其他磁盘上的数据备份,或磁带上的备份进行恢复 (3)日志是日志记录的序列,它记录了数据库中的所有更新活动 (4)日志记录的种类:

事务开始记录日志记录 更新日志记录

事务提交日志记录 事务中止日志记录

(5)利用更新日志记录中的改前值可以进行UNDO操作,撤销已做的修改操作,将数据项恢复到修改以前的旧值

利用更新日志记录中的改后值可以进行REDO操作,重做已完成的操作,将数据项置为修改后的新值。 (6)事务故障恢复的步骤

反向扫描日志文件,查找该事务的更新操作

对该事务的每一个更新操作执行UNDO操作,即将日志记录中的改前值写入数据库

如此处理下去,直到读到该事务的开始日志,则事务故障恢复结束 (7)系统故障的恢复步骤:

正向扫描日志文件,找出在故障发生前已提交的事务,将其事务标识记入REDO队列;找出在故障发生时尚未完成的事务,将其事务标识记入UNDO队列。

对UNDO队列中的事务进行UNDO处理,即反向扫描日志文件,对每一个需要UNDO的事务的更新操作执行逆操作。

对REDO队列中的事务进行REDO处理,即正向扫描日志文件,对每一个需要REDO的事务的更新重新执行日志记录登记的操作。 (8)事务并发执行可能出现的问题

丢失更新 对未提交更新的依赖 不一致的分析

(9)可串行化:如果多个事务在某个调度下的执行结果与这些事务在某个串行调度下的执行结果相同。则称这个调度为可串行化的调度。

(10)共享锁与排他锁:共享锁于共享锁相容,而与排他锁不相容 (11)保证可串行性的一个协议是两阶段封锁协议:

增长阶段:事务可以获得锁,但不能释放锁 减缩阶段:事务可以释放锁,但不能获得锁

(12)可以通过将两阶段封锁增强为严格两阶段封锁协议来避免级联回滚 (13)死锁指的是两个或更多的事务同时处于等待状态,每个事务都在等待其他事务的释放锁使其可以继续执行。

七、数据库系统的体系结构和安全性

1、分布式数据库系统体系结构

(1)每一个分布式数据库系统包含一个节点的集合,这些节点通过某种类型的网络连接在一起。其中每一个节点是一个独立的数据库系统节点

(2)分布式系统的所有问题是内部的、实现级别的问题,而不是外部的、用户级别的

(3)分布式数据库系统的特点:

不同透明度层次的分布式数据管理 增加了可靠性和可用性 提高了性能 更容易扩充

(4)分布透明性或网络透明性:是指用户从网络的操作细节中解脱出来,分为位置透明性和命名透明性

①位置透明性:是指用于执行任务的命令对于数据的位置和发出命令的系统的位置来说是独立的

②命名透明性:意味着对象一旦被命名,就可以在没有附加说明的情况下无二义性地存取该命名对象

③复制透明性:为了获得更好的可用性、更高的性能和可靠性,数据库副本会存储在多个网络站点上。复制透明性使用户不知道有副本的存在

④分片透明性:分为水平分片和垂直分片。

(5)水平分片:按一定的条件把全局关系的所有元组划分为若干个不相交的子集,每个子集都是关系的一个片段。

垂直分片:按一定条件将一个关系以列为单位“垂直地”分割。且每个垂直分片都包含该关系的主键。

混合分片:将两种分片方式混合生成的分片方式。 (6)分片原则:

完备性原则 不相交原则 可重构原则

(7)在分布式数据库中,查询处理送比较复杂的,优化目标是:减少传输的数据量

(8)有一种比较有效的操作策略:基于一个称为半连接的操作。半连接操作是不可交换的

(9)分布式DBMS会出现的问题:

处理数据项的多个副本 分布式提交 分布式死锁 其他问题

(10)分布式数据库系统的并发控制

①基于识别数据项副本的分布式并发控制 ②基于投票方法的分布式并发控制 研究表明:投票方法在站点间产生的信息通信量比在识别副本方法产生的高 (11)主站点技术:在这种方法中,单个主站点被指派为所有数据库项的协调者站点。因此,所有的锁都保留在那个站点上。

尽管所有的锁可以在主站点上存取,但数据项本身可以在他们所在的任何站点上存取

2、客户机/服务器数据库体系结构

(1)面向浏览器/服务器模式的软件开发已成为当前信息系统主要的开发模式。可归纳为三种结构:以WEB服务器为中心、以应用服务器为中心、以数据库服务器为中心

(2)以web服务器为中心

服务器扩展程序是使用CGI或web API 在服务器端编写的数据库应用程序 CGI是作为一个独立的进程在web 服务器上运行的,缺点是:进程的创建和关闭都会严重消耗系统的资源

Web API的运行方式与CGI相似,但是在执行时是动态加载到web服务器进程内,运行效率有所提高。 (3)以应用服务器为中心

是web服务器和三层客户机/服务器结合的成果。

分为四部分:客户及浏览器、web服务器、应用服务器、数据库服务器 (4)对于客户端的表现逻辑,有两种解决方式:基于构件的方式和基于脚本的方式

基于构件的方式:优点是客户端从web服务器下载构件后,客户端构件直接与应用服务器通信,大大降低了web服务器的负载,从而提高了整个系统的响应速度。缺点是要求客户端必须能支持特定的构件结构,对系统的跨平台特性有所影响。

基于脚本的方式:优点在于跨平台特性好,客户端只需要安装浏览器即可,没有其他特殊要求。缺点是表现逻辑通过脚本语言实现,维护和扩展难度大 3、安全数据库以及数据库的安全性

(1)数据库的安全性威胁会丧失或削弱数据库的完整性、可用性、机密性的安全目标 (2)典型的DBMS包含一个数据库安全和授权子系统,由它来负责实现一个数据库的安全性功能以避免发生未授权的访问。 (3)两种类型的数据库安全性机制

自主安全性机制:用于向用户授予特权,包括以指定的方式访问指定的数据文件、记录或字段的能力。

强制安全性机制:用于对多级安全性进行控制。

(4)四种控制措施:访问控制、推理控制、流控制和加密

(5)DBA权限命令包括向单个账户、用户或用户组授予特权和收回特权的命令 (6)DBA执行的动作:

账户创建 权限授予 权限收回 安全性级别指定 DBA负责保证数据库系统的总体安全

(7)一般情况,使用数据库系统可以在两个级别上分配权限:账户级和关系级

(8)修改权限分为:update 、delete 和insert权限

(9)基于角色的访问控制可以使用GRANT和REVOKE命令为角色授予和收回权限 (10)每个会话可以指派多个角色,但是这些角色只能映射到一个用户或一个单一主体。 4、数据加密

(1)数据加密标准(DES)使用56位的密钥

高级加密标准(AES)使用128、192或256位的密钥

(2)公钥加密算法是基于数学函数而不是位模块的操作。分为公钥和私钥 5、可信计算机系统评估标准 (1)分为4个等级、8个级别

(2)D类安全等级:最低级保护等级,即无保护级。D类只包含D1一个级别,D1安全等级最低

(3)C类安全等级:为自主保护级,具有一定的保护能力。分为C1和C2两类

C1是自主安全保护级 C2是控制访问保护级

(4)B类安全等级:为强制保护级别。分为B1 、B2和 B3三类

B1是标记安全保护级 B2是结构化保护级

B3是安全区域保护级,B3系统必须符合B2系统的所有安全需求 (5)A类安全等级:最高级别的安全级别,为验证保护级

A1是验证设计级别

超A1是在A1级基础上增加了许多安全措施,超出了目前的技术

八、数据库技术发展

1、对象及对象-关系数据库

(1)基于关系数据库系统的、以数据处理为主的传统的数据库具有以下特征:

结构统一 数据项小 面向记录 原子字段

(2)一个典型的对象有两个组成成分:状态(值)和行为(操作)

(3)面向对象数据库的一个特点是,对象可以具有任意复杂度的对象结构 (4)在面向对象数据库中,复杂对象可以通过类型构造器,由别的对象构造得到

(5)三种最基本的构造器是原子、元组和集合

(6)由于元组类型构造器对应于C和C++编程语言中的struct结构,所以常被称为结构化类型。

(7)封装:是一种信息隐藏技术,可以应用于数据库对象,是面向对象语言和面向对系统的主要特征之一 (8)复杂对象

卡发面向对象系统的一个主要原因是为了能够表达复杂对象 复杂对象分为两类:结构化的和非结构化的 结构化复杂对象由组件组成,通过以各种方式递归地使用类型构造器就可以定义结构化的复杂对象。非结构化的复杂对象是需要大量存储空间的数据类型, 例如表示图像或大文本对象的数据类型。

(9)对象数据库标准

①ODMG对象模型

ODMG对象模型是对象定义语言和对象查询语言的基础。在ODMG中对象可以用四个特征来描述:标识符、名称、生存期和结构

②对象定义语言ODL

ODL不是一个完全的编程语言 ③对象查询语言OQL

(10)对象数据库与关系数据库概念设计的区别 ①一个是如何处理联系 ②一个是如何处理继承 (11)SQL99的一些特性

增加了一些类型构造器来指定复杂对象

包括了一种利用引用类型来指定对象标识的机制 用户自定义类型可将操作包括为声明的一部分,通过该机制提供了操作封装 提供了继承机制 2、移动数据库

(1)所谓移动数据库是指支持移动计算环境的分布式数据库

(2)一个显著特点是移动终端之间以及与服务器之间的连接是一种弱连接 3、数据仓库

(1)数据仓库是面向主题的、集成的、随时间变化的和相对稳定的数据集合,用以支持管理中的决策。 (2)数据仓库的特点

面向主题的 数据是相对稳定的

数据是集成的 数据是随时间变化的(反映历史变化的) (3)数据集市是一种更小、更集中的数据仓库,为公司提供分析商业数据的一条廉价途径

(4)数据仓库的数据模型

数据仓库和OLAP操作都基于多维数据模型

①度量属性:是决策者所关心的具有实际意义的数量 ②维属性:维是人们观察数据的特定角度

③多维数据:能够模式化为维属性和度量属性的数据统称为多维属性 两个常见的多维模式:星形模式和雪花模式

星形模式由一个事实表和每个维对应的维表组成,雪花模式是星形模式的变形

(5)数据仓库系统有数据仓库、仓库管理和分析工具三部分组成 (6)联机分析处理(OLAP)的基本功能

①切片与切块:是在维上做投影操作 切片:就是在多维数据上选定一个二维子集的操作,即在某两个维上取一定区间的维成员或全部维成员,而在其余的维上选定一个维成员的操作

切块:可以看成是在切片的基础上,进一步确定各个维成员的区间得到的片段体,也即由多个切片叠合起来

②钻取:分为向下钻取和向上钻取操作。 向下钻取:是使用户在多层数据中展现渐增的细节层次,获取更多的细节性数据。向上钻取以渐增概括方式汇总数据

③旋转:通过旋转可以得到不同视角的数据。旋转操作相当于平面数据将坐标轴旋转。

(7)广义OLAP功能

基本代理操作(包括示警报告、时间报告、异常报告) 计算能力 模型计算 3、数据挖掘

(1)知识发现包括三部分:数据准备、数据挖掘及结果的解释和评估

(2)数据挖掘阶段首先要确定挖掘的任务或目的,如数据分类、聚类、关联规则发现或序列模式发现等。确定了挖掘任务后,就要决定使用什么样的挖掘算法 (3)挖掘的结果可能会发现新的信息类型:关联规则、序列模式、分类树等 (4)影响挖掘结果好坏的要素:一是所采用的数据挖掘技术的有效性;一是用于挖掘的数据的质量和数量(数据量的大小) (5)关联分析:P195-196

(6)分类:分类是学习一种模型的过程,该模型描述了数据的不同类别,这些类别是预先确定的。因此,这类活动也称为有监督的学习

(7)可用于进行分类的算法有很多,比如决策树方法、BAYES方法、神经网络算法、支持向量机方法等。

本文来源:https://www.bwwdw.com/article/5893.html

Top