第一章 数据库应用系统开发方法
1.数据库的三级模式由外模式、模式、内模式构成。
可以简单理解为:外模式->模式提供逻辑独立性,模式->内模式提供物理独立性
1.1外模式:是用户可见的部分数据的存在形式
1.2模式:可以等价为全体数据的罗技结构且用户不可见,是三级模式的中间部分
1.3内模式:对应数据库的物理结构和存储方式
2.概念数据模型:主要用来描述数据的概念化结构,它使数据库设计人员在设计的初始阶段摆脱系统的具体问题,集中分析数据和数据之间的联系,与具体的数据库管理系统无关,所以没有完整性约束条件
3.数据字典:对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等定义进行定义和描述
4.数据库系统是由计算机软硬件组成的复杂系统,其体系结构与系统硬件平台密切相关
5.数据库没有提供各种面向具体应用领域的业务处理
6.数据库应用系统逻辑设计工作内容:数据库逻辑结构设计、数据库事务概要设计、应用程序概要设计
7.数据库应用系统物理设计:确定存储结构、存取路径的选择和调整、确定数据存放位置和存储分配、隔离性级别
8.数据库概念设计:系统总体框架设计
9.数据库日常维护活动:数据库备份与恢复设计
10.系统规划和定义:任务陈述、确定任务目标、确定系统范围和边界、确定用户视图
11.数据库应用系统的需求分析
11.1数据需求分析:事务规范
11.2功能需求分析:数据处理需求分析、业务规则需求分析
11.3性能需求分析:数据操作响应时间、数据访问响应时间、系统吞吐量、允许并发访问的最大用户数、每秒TPS代价值
11.4其他需求分析:存储需求分析、安全性需求分析、备份和恢复需求分析
12.数据库物理设计:数据库逻辑模式描述、文件组织和存取设计、数据分布设计、确定系统配置、物理模式评估
13.事务规范:事务名称、事务描述、事务所访问的数据项、事务用户
14.实现与部署:建立数据库结构、数据加载、事务和应用程序的编码及测试、系统集成、测试与试运行、系统部署
15.操作可行性研究:论证是否具备开发所需的各类人员资源、软件资源、硬件资源、工作环境
16.项目规划包括:
16.1确定项目的目标和范围,根据系统规划与定义的工作内容,具体说明项目的最终产品以及期望的时间、成本和质量目标。
16.2根据DBAS软件开发模型,分解和定义整个项目包括的工作活动和任务。
16.3估算完成该项目的规模及所需各种资源
16.4制定合理的DBAS项目计划,包括进度、成本、质量等方面的预测和控制方案
17.数据库应用系统生命周期:项目规划、需求分析、系统设计、实现与部署、运行与维护
18.视图是从一个或几个基本表 (或视图) 中导出的虚表,数据库中只存放了视图的定义,不存放视图对应的数据。它是原始数据库数据的一种变换,是查看表中数据的另外一种方式。可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。
视图的特点体现在三个方面:
(1)简单性,看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化对它们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件:
(2)安全性,通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到:
(3)逻辑数据独立性,视图可帮助用户屏蔽真实表结构变化带来的影响:
根据视图的特点可以达到以下的几点作用:
(1)简化数据查询语句:
(2)使用户从多角度看待同一数据:
(3)提高数据安全性;
(4)提供了一定程度的逻辑独立性。
19.数据库性能优化一般可以从数据库运行环境、数据库参数调整、模式调整、数据库存储优化和查询优化进行操作。
20.数据库应用系统日常维护包括: 备份与恢复、完整性维护、安全性维护、存储空间管理和并发控制。
21.规划与分析包括:系统规划与定义、项目规划、可行性分析
22.TPS代价值:用于衡量系统性价 比的指标
23.DBAS系统通常可以划分为四个层次实现。
23.1表示层:负责所有与用户交互的功能,用户对数据库应用系统的最直观感受均在这层实现。
23.2业务逻辑层:负责根据业务逻辑害要将表示层获取的数据进行组织后,传递给数据访问层,或将数据访问层获取的数据进行相应的加工处理后,传送给表示层用于展示。
23.3数据访问层:负责与DBMS系统进行交互,提取或存入应用系统所需的数据。
23.4数据持久层:负责保存和管理应用系统数据。
24.DBAS生命周期中,规划与分析的主要工作内容包括系统规划与定义、项目规划和可行性分析
第二章 需求分析
1.需求建模:DFD、IDEF0、UML
DFD组成:数据流(箭头只表示流向)、处理、数据存储、外部项
IDEF0组成:箭头(强调数据约束,不强调流或顺序)、活动,
箭头在哪边的作用:
右边:输出
左边:输入
上边:约束、控制
下边:机制
2.数据建模:IDEF1X
IDEF1X:圆角矩形框表示从属;直角矩形框用于表示独立实体集
3.系统模拟,建立动态模型:IDEF2
4.需求分析:标识问题、建立需求模型、描述需求、确认需求
5.数据字典是对系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成功
第三章 数据库结构设计
1.数据模型三个要素包括:
1.1数据结构:数据结构是所研究的对象类型的集合。它从语法角度表述了客观世界中数据对象本身的结构和数据对象之间的关联关系,是对系统静态特征的描述
1.2数据操作:数据操作是对数据库中对象的实例允许执行的操作的集合,主要指检索和更新(插入、删除、修改) 两类操作数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级) 以及实现操作的语言。数据操作是对系统动态特性的描述
1.3数据完整性约束:数据完整性约束是一组完整性规则的集合,规定数据库状态及状态变化所应满足的条件,以保证数据的正确性、有效性和相容性
2.索引
根据索引的实现方式,索引技术被分成两大类: 有序索引和散列索引
一个数据表上可以建立多个非聚集索引
辅索引可以同时是聚集索引
如果数据文件中的每个查找码值再索引文件中都对应一个索引记录,则该索引称为稠密索引
如果只是一部分查找码的值有对应的索引记录,则该索引称为稀疏索引
主索引一定是唯一索引,但不一定是聚集索引
唯一索引既可以是聚集的也可以是非聚集的
适合使用的条件: (1)在经常需要搜索的列上,可以加快搜索的速度;(2)在经常使用连接的列上 (这些列主要是一些外键) 可以加快连接的速度,在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;(3)在经常使用WHERE子句中的列上面创建索引,加快条件的判断速度。
不适合使用的条件:(1)对于那些在查询中很少使用或者参考的列不应该创建索引;(2)对于那些只有很少数据值的列也不应该创建索引;(3)经常进行更新的列不适宜创建索引。
3.联系
非标定型联系(不会产生从属)是指数据库中数据项之间的联系没有明确的关系类型,需要根据具体的上下文和语义进行推断和判断。例如,一个社交媒体平台上的用户之间的关注关系,没有明确的标准可以定义关系的强度或类型。
标定型联系(一对多)是指数据库中数据项之间的联系具有明确的关系类型,可以通过预定义的规则或约定来解释和确定。例如,在一个电商平台中,订单与产品之间的关系可以明确定义为购买关系。
非确定型联系(多对多)是指数据库中数据项之间的关系模糊不清,无法准确确定。这种联系可能是基于不完全的或有噪声的数据,或者是由于缺乏足够的信息无法明确确定关系。
确定型联系是指数据库中数据项之间的关系明确、清晰,可以通过具体的约束规则或逻辑推理准确确定。例如,一个学生与某个班级之间的关系可以通过学生的学号与班级的班级号来确定。
分类联系是指数据库中数据项之间的关系可以分为不同的类别。这种联系通常用于将数据项按某种共同特点或属性进行分组。例如,将一组产品按照类别进行分类,如电子产品、家居用品等。
4.C/S和B/S
C/S结构是客户机/服务器结构,客户端负责完成用户的交互动能,接收用户数据,根据业务
规则处理应用任务,向数据库服务器发送请求。数据库服务器则通过DBMS,依据事务逻辑完成相应的数据管理功能。因此,在C/S结构中,业务逻辑在客户端,事务逻辑在数据库服务器。
三层B/S结构是浏览器/服务器结构,数据处理功能分别放在表示层、功能层和数据层三个层次上。表示层位于客户端,由Web浏览器组成功能层位于Web应用服务器,实现面向具体应用领域的业务规则: 数据层位于数据库服务器,按照事务逻辑对数据库进行操作。在B/S结构中,业务逻辑在应用服务器,事务逻辑在数据库服务器。
5.DBAS系统设计:概念结构设计、逻辑结构设计、物理设计
6.数据库的反规范化是为了减少表间的连接,提高查询性能
7.数据分布设计任务主要体现在以下几个方面:
7.1不同类型数据的物理分布:当系统采用RAID等多磁盘在储系统时,可以将基本表和建立在表上的索引分别放在不同的磁盘上。
7.2应用数据的划分与分布: DDBS采用水平划分或垂直划分两种方法。
7.3派生属性数据分布。
7.4关系模式的去规范化:根据实际需要对数据库中某些3NF、BCNE模式考虑是否可以降低其规范化程度,以提高查询效率,这种为关系模式的去规范化处理。
8.为了进行有效的数据库文件组织和存取路径设计,必须分析和理解数据库事务的数据访问特性,事务分析可以按如下步骤进行:
8.1使用事务-基本表交叉引用矩阵;
8.2估计各事务的执行频率(单位时间内事务的执行次数
8.3对每张基本表,汇总所有作用于该表上的各事务的操作频率信息;
9.在进行DBAS系统设计时,通常为了避免死锁,可以考虑以下原则:
9.1提高事务隔离性级别
9.2按同一顺序访问资源
9.3采用小事务模式,尽量缩短事务的长度,减少占有锁的时间
9.4尽量使用记录级别的锁(行锁),少用表级别的锁。
10.在select中,order by自居可以对多个列进行排序,order by只能在所有其他子句之后作为最后一个子句出现,在视图中可以使用order by子句,子查询不能使用order by
11.原语
在事务概要设计中,用read原语来表示应用层的Select操作。
12.范式
第四章 数据库应用系统功能设计与实施
1.数据库完整性包括实体完整性、参照完整性和用户自定义完整性:
(1)实体完整性在CREATE TABLE中用PRIMARY KEY定义。
(2)参照完整性在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码。
(3)用户自定义完整性在CREATE TABLE中定义属性的同时也可以根据应用要求,定义属性上的约束条件,即属性值限制,包括:列值非空(NOT NULL),列值唯(UNIOUE),检查列值是否满足一个布尔表达式(CHECK短语)
2.事务中存在和用户的长时间交互,会降低系统的并发度,增加死锁的数量,影响检查点的效果
3.数据库应用系统从功能的角度可以划分为四层,分别是表示层、业务逻辑层、数据访问层和数据持久层。
3.1表示层:用于显示数据和接受用户输入的数据。(一般为Windows应用程序或Web应用程序)。主要任务是进行人机界面设计
3.2业务逻辑层:是表示层和数据访问层之间的桥梁,主要负责数据的传递和处理。主要任务是梳理DBAS的各项业务活动,将其表示为各种系统构件(如类、模块、组件等)
3.3数据访问层:实现对数据的保存和读取操作。可以访问关系数据库、文本文件或XML文档等。主要任务就是针对DBAS的数据处理需求设计用于操作数据库的各类事务
3.4数据持久层:以程序为媒介把表现层或服务层的数据持久化,它位于物理层和数据访问层之间。主要任务进行应用系统的存储结构设计
4.封锁是指在某一时间内禁止某用户对数据对象做某些操作以避免产生数据不一致的问题。封锁粒度与系统的并发度和并发控制的开销密切相关。封锁的粒度越大,并发度就越小,同时系统的开销就越小。封锁的粒度越小,并发度就越大,同时系统的开销就越大,所以提高封锁的粒度带来的好处是减少了封锁开销。
5.完整性约束条件的作用对象分为列、元组和关系3种级别,
对列的约束主要指对其值类型、范围、精度、排序等的约束条件。
对元组的约束主要指对记录中各个属性之间的联系的约束条件。
对关系的约束是指对若干记录间、关系集合上以及关系之间联系的约束条件。
6.数据库完整性约束条件的作用对象分为列、元组和关系三种级别
第五章 UML与数据库应用系统
1.在UML类图中,常见的有以下几种关系:
1.1泛化([箭头及指向]: 带三角箭头的实线,箭头指向父类)
1.2实现([头及指向],带三角箭头的虚线,箭头指白接口)
1.3关联([箭头及指向]:带普通箭头的实心线,指向被拥有者)
1.4聚合([箭头及指向],带空心菱形的实心线,菱形指向整体)
1.5组合([箭头及指向],带实心菱形的实线,菱形指向整本。
1.6依赖([箭头及指向],带头的虚线,指向被使用者)。
组合是部分与整体共存,如果整体不存在,部分也会消失。聚合关系是整体与部分的关系,且部分可以离开整体而单独存在。
2.建模概念框架
元元模型层:组成了UML的最基本的元素"事物",代表要定义的所有事物。
元模型层:元模型层中的每个概念都是元元模型层“事物”概念的一个实例
模型层:模型层中的每个概念都是元模型层中概念的一个实例
用户模型层:用户模型层中的每个概念都是模型层的一个实例
3.用例图是用户模型视图,用于描述系统所具有的功能。
状态机图对一个单独对象的行为建模,指明对象在它的整个生命周期里,响应不同事件时,执行相关事件的顺序。
活动图用于描述系统、用例和程序模块中逻辑流程的先后执行次序或并行次序的图。
顺序图主要用于描述系统内对象之间的消息发送和接收序列,有两个坐标轴: 纵向表示时间的持续过程,横向表示对象。
在UML模型中,通信图是交互图的一种,也被称作协作图或通信图。它是表达对象之间的联系以及对象间发送和接收消息的图。通信图显示的是系统内对象之间的关系,并不强调交互的顺序
组件图的用途是显示系统中的软件对其他软件组件(例如,库函数)的依赖关系,它可以在一个非常高的层次上显示,从而仅显示粗粒度的组件,也可以在组件包层次上显示。
系统内部结构一般分为静态结构和动态结构。在UNL中,用类图来描述系统的静态结构,而用顺序图和通信图来表示系统的动态图。
4.用于DBAS微观设计的图有对象图、状态机图及时间图来表达、分析和描述某个待定状况下的系统运作情况。
5.用于DBAS宏观设计的有包图、交互概述图和复合结构图
6.RecordSet对象用于操作来自提供者的数据。使用 ADO时,通过 RecordSet对象可对几乎所有数据进行操作,所有RecordSet对象均使用记录(行)和字段(列)进行构造。
RecordSet的常用方法为:
AddNew,创建一条新记录
Cancel,撤销一次执行
Close,关闭一个 RecordSet
Delete,删除一条记录或一组记录
GMoveNext,把记录指针移动到下一条记录
7.在使用UML进行系统建模过程中,一个系统中可能存在许多用例,用例之间可以存在的关系包括扩展、使用和组合等几种关系
第六章 高级数据查询
1.UNION 基本上是一个 OR (如果这个值存在于第一句或是第二句,它就会被选出)
INTERSECT 则比较像 AND ( 这个值要存在于第一句和第二句才会被选出)。
UNION 是联集,而 INTERSECT 是交集
2.在ORDER BY子句中,ASC表示升序(默认选项),DESC表示降序
3.会出现取值并列的结果,需要使用WITH TIES关键字
第七章 数据库及数据库对象
1.关键字unique表示唯一索引,clustered表示聚集索引
2.每个数据库有且仅有一个主要数据文件(推荐拓展名为.mdf);有多个次要数据文件(推荐拓展名为.ndf);至少有一个日志文件;日志文件不包括在文件组内;一个文件不可以是多个文件组的成员
3.主文件组是系统定义好的一个文件组,它包含主要数据文件和任何没有明确分配给其他文件组的其他数据文件(包括次要数据文件)
4.数据库的日志文件大小和数据文件的大小没有关系
5.主要数据文件和次要数据文件可以放在相同的磁盘上,也可以分开放置,日志文件和数据文件也是类似
6.在删除架构(schema)时,使用cascade选项,则会将该架构中的所有架构对象一起全部删除;如果使用restrict选项,如果被删除的架构中包含架构对象,则拒绝删除此架构
7.SQL Server 2008 数据库中主要数据文件大小最小不能小与3MB
8.model数据库用作SQL Server实例上创建的所有数据库的模板。对model数据库进行的修改(如数据库大小、排序规则、恢复模式和其他数据库选项)将应用于以后创建的所有用户数据库,当用户创建一个数据库时,系统自动将model数据库中的全部内容复制到新建数据库中
9.tempdb是临时数据库,用于保存临时对象或中间结果集,并为数据的排序等操作提供一个临时工作空间。每次启动SQL Server时都会重新创建tempdb数据库
10.唯一索引的作用是保证索引键值的不重复。在多列唯一索引的情况下,可以确保索引列中每个值的组合都是唯一的。
11.唯一索引和非聚集索引之间没有限定关系
12.聚集索引:指数据文件中数据记录的排列顺序与索引文件中索引项的排列顺序相一致,或者说索引文件按照其查找码指定的顺序与数据文件中数据记录的排列顺序相一致。
13.一个表只能有一个聚集索引,因为一个表的物理顺序只有一种情况
14.除了聚集索引以外都说非聚集索引,如果某索引不是聚集索引,则数据文件中数据记录的排列顺序与索引文件中索引项排列顺序不一致。与非聚集索引相同,聚集索引的作用是加快数据的查询速度
15.为表或视图创建唯一索引(UNIQUE),唯一索引不允许两行具有相同的索引键值。创建聚集索引(CLUSTERED),键值的逻辑顺序决定表中对应行的物理顺序,一个表或视图只允许同时有一个聚集索引。聚集索引和唯一索引不需要同时具备,为一个视图创建唯一聚集索引会在物理上具体化该视图。在为表创建索引时,应先创建聚集索引,然后再创建非聚集索引,因为在创建聚集索引时系统会重新生成表中现有的非聚集索引
16.数据库创建后数据文件和日志文件的空间都可以手动控制
17.索引视图
可以提高下列查询类型的性能:
(1)处理大量行的联接和聚合
(2)许多查询经常执行联接和聚合操作
(3)决策支持工作负荷。
通常不会提高下列查询类型的性能:
(1)具有大量写操作的 OLTP 系统
(2)具有大量更新的数据库
(3)不涉及聚合或联接的查询
(4)GROUP BY 键具有高基数度的数据聚合。
18.master数据库记录了所有其他数据库的数据库文件的物理存储位置;
SQL Server实例的作业信息存储在msdb数据库中;
Resource数据库是个只读数据库,包含了SQL Server中的所有系统对象;
19.创建分区函数的SQL语句:
create partition function PF1(int) as range left/right for values(...n)
left 则取不到左边
例:create partition function PF1(int) as range left for values(1,100,200)
分区是:(0,1],(1,100],(100,200],(200,+∞]
right 则取不到右边
例:create partition function PF1(int) as range right for values(1,100,200)
分区是:(0,1),[1,100),[100,200),[200,∞)
20.创建分区方案的SQL语句:
create partition scheme patition_scheme_name as partition partition_function_name to [;]
例:分区函数为myPF1,要创建将每个分区映射到不同文件组的分区方案,让前两个分区映射到fg1文件组中,后两个分区映射到fg2文件组中(假设文件组已创建好)。则创建分区方案的SQL语句是:create partition scheme myPS1 as partition myPS1 to (fg1,fg1,fg2,fg2)
21.主索引是根据数据对象的主键建立的索引,它们决定了被索引记录的位置,而辅助索引没有这样的限制,可以用于任何索引目的并且可以查找多个数据文件存放的位置。而位图索引一般在范围查询时使用
第八章 数据库后台编程技术
1.创建聚集索引SQL语句:create clustered(聚集的) index idx1 on R(B)
2.查询处理器中最主要的模块是查询编译器和查询执行器,负责DML语句解析和执行
3.EXCEPT用于查询包含在A语句的结果集中但不包含在B语句的结果集中的结果
4.INTERSECT
运算符来获取两个查询的交集
5.UNION运算符将两个单独的结果集合并为一个,并消除重复的行。
6.触发(trigger)器:
触发器可用于实现复杂的业务规则
前触发器:
前触发型触发器只执行触发器指定的内容而不执行引发触发器的SOL语句
一个表上针对同一个数据操作只能有一个前触发型触发器
针对一个表的同一个操作只能定义一个instead of型触发器
使用instead of选项定义的触发器为前触发的触发器
后触发器:
后触发型触发器只有在引发触发器执行的语句中的操作都已成功执行,并且所有的约束检查也成功完成后,才执行触发器
一个表中可以有多个后触发型触发器
不能在视图上定义after型触发器
使用for 或者after选项定义的触发器为后触发的触发器
触发器在执行时并非会同时生产inserted表和deleted表
deleted表用于存储delete和update语句所影响的行的旧副本
inserted表用于存储insert和update语句所影响的行的新副本
7.游标:
如果未在声明游标时指定SCROLL(卷),则NEXT是唯一支持的提取选项。
游标由游标结果集和游标当前行指针两部分组成
在对游标进行FETCH(取回)操作后,可以使用@@FETCH_STATUS(取回状态)变量判断数据提取状态
当使用CLOSE语句关闭游标后,需使用DEALLOCATE(释放游标)命令释放系统为游标分配的资源
8.存储过程:
存储过程可以接受多个输入参数,也可以接受多个输出参数
存储过程支持输入参数有默认值
存储过程的返回结果可以是一个集合
存储过程是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行
存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。
利用存储过程可以进行模块化程序设计是存储过程优点之一。
删除存储过程的语句:drop procedure存储过程名
9.聚集文件是一种具有多种记录类型的文件,它存储了来自多个关系表的数据,每个关系表对应文件中的一种记录类型。聚集文件将不同关系表中有关联的记录存储在同一磁盘块内,从而减少数据库多表查询操作时的磁盘访问次数,提高系统I/O速度和查找处理速度。
10.某些情况下,需要把数字数据类型显示为相应的文本名称,这就碰到了多表连接建立记录集的问题。多表连接的类型主要有left join、right join和inner join。
其主要区别如下:
leftjoin(左联接),返回包括左表中的所有记录和右表中联结字段相等的记录
right ioin(右联接),返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接),只返回两个表中联结字段相等的行。
第九章 安全管理
1.授权语句:grant select on 数据库(表名) to 用户名
grant select(c1,c2) on T1 to U1 with grant option 给用户U1授予在T1表中查询c1,c2列的权限,可以转授予其他数据库用户
2.回收权限语句:revoke 操作命令 on 对象名 from 用户名
3.当用户的权限与所在的角色的权限发生冲突时,以角色的权限为标准
4.guest用户:
guest用户没有对应的登录用户名
通过授权语句可以启用数据库中的guest用户
所有的数据库用户不是继承数据库中guest用户的权限
任何SQL Server登录账户都可以访问启用了guest用户的数据库
5.数据库强制存取控制方法的规则是:
仅当主体的许可证级别大于或等于客体的密级时,主体才能读取相应的客体
仅当主题的许可证级别等于客体的密级时,主体才能写相应的客体
6.SQL Server 2008 安全管理:
SQL Server 2008 支持两种身份验证模式:Windows身份验证模式,混合身份验证模式
在混合身份验证模式下,允许Windows用户和非Windows用户登录到SQL Server
Windows用户只有系统管理员组成员才有权限登录到SQL Server
只有在混合身份验证模式下,sa才能登录到SQL Server
7.保护:
A类提供验证保护
B类提供强制保护
C类提供自主保护
D类提供最小保护
8.数据库用户:系统管理员、对象拥有者、普通用户
9.在SQL Server 2008的自主存取控制机制中,通常将用户按其操作权限划分为系统管理员、数
据库对象管理员、拥有者、普通用户
10.特殊角色
db_datawriter角色可以对表中的数据执行插入、删除和更新操作
db_ddladmin是系统管理员角色,具有执行全部数据定义语言和权限
db_datareader具有查询数据库中所有用户数据的角色
db_accessadmin角色具有添加和删除数据库用户的权限
db_backupoperator角色具有备份和恢复数据库的权限
db_owner角色具有创建数据库对象的权限
db_creator角色具有创建、删除、修改和还原数据库对象的权限
11.create role R1语句是添加用户角色R1
create user U1语句是添加用户U1
grant insert on T to R1语句是授权用户R1在表上T具有插入权限
sp_addrolemember 'R1','U1'是将用户U1添加到db_datareader角色
sp_addrolemember 'db_datareader','U1'是将用户U1添加到db_datareader角色中,db_datareader的角色具有查询数据库中所有用户数据的角色
deny select on T to R1作用是不允许角色R1在表上T上具有查询功能
12.sa是SQL Server身份验证模式的系统管理员
第十章 数据库运行维护与优化
1.使用索引的原则:
在需要经常搜索的列上创建索引
主键上创建索引
经常用于连接的列上创建索引
经常需要根据范围进行搜索的列上创建索引
经常需要排序的列上创建索引
在where查询子句中引用效率高的列上创建索引
在Order By子句、Group By子句中出现的列上建立索引
只有在当使用索引的查询结果不超过记录总数的20%时,索引才会有明显效果
2.SQL Server Agent 是一个任务规划器和警报管理器,在实际应用环境下,可以先将那些周期性的活动定义成一个任务,然后让其在SQL Server Agent 的帮助下自动运行。假如考生是一名系统管理员,则可以利用SQL Server Agent 向自己通知某些警告信息,从而定位出现的问题以提高管理效率。SQL Server Agent 主要包括以下几个组件:作业、警报和操作。
3.监控:
数据库架构体系的监控:监控空间基本信息、空间使用率、剩余空间大小
数据库性能监控:监控数据缓冲区命中率、库缓冲、用户锁、锁与等待、回滚段、临时段使用、索引使用、等待事件、共享池
4.数据库运行时维护包括:日常维护,监控与分析,性能优化与调整,系统进化。
日常维护:数据的备份与恢复、数据的完整性维护、安全性维护、存储空间管理与并发控制
5.数据库重组:是指按照系统设计要求对数据库存储空间进行全面调整,如调整磁盘分区方法和存储空间、重新安排数据的存储、整理回收碎块等,以提高数据库性能
6.数据库的重组并不修改原设计的逻辑和物理结构,而数据库的重构则要部分的修改数据库的模式和内模式。
第十一章 故障管理
1.RAID
RAID10比RAID5在写数据上更稳定、速度更快
RAID5具有和RAID1相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度对单个磁盘进行写入操作稍慢
2.日志文件
事务日志文件的推荐拓展名为.ldf,用于存放恢复数据库的所有日志信息
每个数据库必须至少拥有一个日志文件,也可以有多个日志文件
日志文件没有存放位置限制
可以设置自动增长,大小也没有限制
具体作用为:(1)事务故障恢复和系统故障恢复必须使用日志文件;(2)在动态转储方式肿必须建立日志文件;(3)在静态转储方式中,也可以建立日志文件。为确保数据库是可恢复2的,登记日志文件必须遵循两条原则:登记的次序严格按并行事务执行的时间次序;必须先写日志文件,后写数据库
3.检查点
检查点记录的内容包括建立检查点时正在执行的事务清单和这些事务最近一个日志记录的地址
在检查点建立的同时,数据库管理系统会将当前数据缓冲区中的所有数据记录写入数据库中
使用检查点进行恢复时需要从"重新开始文件"中找到最后一个检查点记录在日志文件中的地址
检查点应当由数据库恢复子系统自动的定期或者不定期的建立,而不应当由数据库管理员手动建立
4.主——备方式(Active-Standby方式)即指的是一台服务器处于某种业务的激活状态(即Active状态),另外一台服务器处于该业务的备用状态(即Standby状态)。该方式的特点是当Active状态服务器出现故障的时候,通过软件诊断将Standby机器激活,保证系统在最短时间内恢复正常使用
5.双主机方式(Active-Active方式)即指两种不同业务分别在两台服务器上互为主备状态(即Active-Standby和Standby-Active状态),优点是两台服务器切换速度快,数据库连接不中断,应用不受影响
6.事务故障
事务故障包括预期内的事务故障和非预期的事务故障,两种事务故障的恢复都是由系统自动完成的,对用户是透明的
预期的事务内部故障可以通过将事务回滚,撤销其对数据库的修改,使数据库达到一致性状态
7.介质故障1的容错方式可以采用软件容错也可以采用硬件容错
8.数据库系统发生软故障后需要进行UNDO(撤销)和REDO(重做)两项工作,但不能并行
9.转储
完全转储是对数据库中所有数据进行转储,此种方式占用较多的时间和空间。
差量转储是对最近一次数据库完全转储以来发生的数据库变化进行转储。
增量转储只复制上次转储后发生变化的文件或数据块。增量转储所需的时间和空间都比较短,但增量转储数据只能和完全转储配合,才能对数据库进行恢复。
增量转储的恢复时间比完全转储要长。
差量转储和完全转储相比速度快,占用空间小
差量转储和增量转储比速度慢、占用空间多,但是恢复速度快。
第十二章 备份与恢复数据库
1.数据库的完整性是指数据库中数据的正确性、一致性和相容性
2.事务是以可控的方式对数据资源进行访问的一组操作,事务的隔离性使得事务之间的交互程度有着严格的定义,保护了数据的完整性。
3.数据库管理员的职责有:
数据库的转储和恢复
数据库安全性、完整性控制
数据库性能的检测和改善
数据库的重组和重构。
4.在进行数据恢复时,首先恢复完全备份,其次恢复差异备份,最后恢复日志备份。备份日志时使用Norecovery用来备份尾日志,这样备份日志的时候数据库处于恢复状态,别的进程就不能再访问数据库,日志就不会再增加,因此在还原的时候就可以正常恢复。还原备份的时候如果想同时还原之后的日志,必须加上Norecovery才可以还原,如果有多个日志备份,除了最后一个日志备份外,还原其他日志也必须加上Norecovery。
5.SQL Server 2008 支持三种恢复模式,即简单恢复模式、完整恢复模式和大容量日志恢复模式。
简单恢复:无日志备份。自动回收日志空间以减少空间需求,实际上不再需要管理事务日志空间。最新备份之后的更改不受保护。在发生灾难时,这些更改必须重做。 只能恢复到备份的结尾。
完整恢复:需要日志备份。数据文件丢失或损坏不会导致丢失工作。可以恢复到任意时点(例如应用程序或用户错误之前)。
大容量日志恢复:需要日志备份。是完整恢复模式的附加模式,允许执行高性能的大容量复制操作。通过使用最小方式记录大多数大容量操作,减少日志空间使用量。
如果在最新日志备份后发生日志损坏或执行大容量日志记录操作,则必须重做自该上次备份之后所做的更改。否则不丢失任何工作。可以恢复到任何备份的结尾。不支持时点恢复。其中,如果符合下列任一要求,则使用完整恢复模式:您必须能够恢复所有数据,数据库包含多个文件组,并且您希望逐段还原读/写辅助文件组 (以及可选地还原只读文件组) :您必须能够恢复到故障点: 您希望可以还原单个页:您愿意承担事务日志备份的管理开销
6.数据库的恢复顺序是:
(1) 还原最新完整数据库备份而不恢复数据库。
(2) 如果存在差异备份,则还原最新的差异备份而不恢复数据库
(3)从最后一次还原备份后创建的第一个事务日志开始,使用NORECOVERY选项依次还原日志。
(4) 还原数据库,此步骤也可以与还原上一次日志备份结合使用。
7.简单恢复模式只用于测试和开发数据库,或用于主要包含只读数据的数据库(如数据仓库)。
事务日志备份仅用于完整恢复模式和大容量日志恢复模式。
差异数据库备份是备份从最近的完整备份之后数据库的全部变化内容。
完整数据库备份就是复制数据库里的所有信息,可能需要一个小时甚至更长的时间,所占用的备份空间较大。
8.WITH DIFFERENTIAL,NOINIT中的DIFFERENTIAL表示进行数据库差异备份,NOINIT表示将该次备份内容追加到指定的媒体集上,以保留原有的备份集
9.使用with recovery选项后,数据库将不能再使用后续备份进行恢复
第十三章 大规模数据库框架
1.分布式数据要达到的目标是: 本地自治、非集中式管理、高可用性、位置独立性、数据分片独立性、数据复制独立性、分布式查询处理、分布式事务管理、硬件独立性、操作系统独立性、网络独立性、数据库管理系统独立性。
2.并行数据库的目标是高性能和高可用性,通过多个处理节点并行执行数据库任务,提高整个数据库系统的性能和可用性。
3.范围划分明显有利于范围查询和点查询
4.数据分配方式有四种:
(1)集中式,所有数据片段都安排在同一个场地上;该策略便于控制,但数据过于集中,负载过重,易形成瓶颈,可靠性较差
(2)分割式,所有数据只有一份,它被分割成若干逻辑片段,每个逻辑片段被指派在一个特定的场地上;该策略对局部数据控制灵活,但对全局数据存取效率较低。
(3)全复制式,数据在每个场地重复存储,也就是每个场地上都有一个完整的数据副本。该策略可靠性高,响应速度快,但数据冗余大,同步维护复杂
(4)混合式,全局数据被分为若干个数据子集,每个自己都被安排在一个或多个不同的场地上,但是每个场地未必保存所有数据。这是一种介于分割式和全复制式之间的分配方式。该策略灵活性较大,可依据不同情况扬长避短,取得较高效率
5.当事务T对某个数据加上排它锁时,T可以对该数据进行读和写,其他任何事务都不能再对该数据加任何类型的锁,直到T释放该锁才行:当事务T对某个数据加上共享锁,则T只能对该数据进行读操作,不能修改数据,且其它事务也可以对该数据加共享锁但不能加排它锁。只有等到该数据没有被其他任何事务访问时才能加排它锁。
6.分布式数据库系统按不同层次提供的分布透明性有:分片透明性、位置透明性、局部数据模型透明性。其中分片透明性是分布式数据库中最高层次的分布透明性,位于全局概念模型和分片模型之间。用户编写程序只须对全局关系进行操作,不必考虑数据的分片及存储场地。当分片模式改变时,只须改变全局概念到分片模式的映象,而不会影响全局概念模式和应用程序,即实现了分片透明性。
7.事务的四个性质:原子性、一致性、隔离性、持久性。
原子性描述的是事务中包括的诸多操作为了保持一致性要么都做,要么都不做:
一致性描述的是事务执行结果从一个一致性到另一个一致性的变化
隔离性保证其并行结果正确性
持续性保证其对数据库的改变是永久的,结果不受影响
8.在分布式数据库查询中,导致数据传输通信代价大的主要原因是各个站点分片间的连接和并操作。
分布式数据库中的分布透明性包括分片透明性、位置透明性、局部数据模型透明性,其中分片透明性是最高层次的透明性
分片透明性的级别高于位置透明性,位置透明性的级别高于局部数据模型透明性
9.云计算
SaaS:软件即服务
PaaS:平台即服务
10.层次结构分成两层,顶层是无共享结构,底层是共享内存或共享磁盘结构
11.数据分片
分布式数据库中数据分布策略可以从数据分片和数据分配两个角度来考虑,一般先进行数据分片,再进行数据分配
数据垂直分片是在关系中从列(属性) 的角度依据一定条件分为不同的片断,各片断中应该包含关系的主码,以便通过连接方法恢复关系
数据的水平分片是在关系中从行(元组)的角度依据一定条件划分为不同的片断,关系中的每一行必须至少属于一个片断,以便在需要时可以重构关系。
分片原则:
完整性原则,即全局关系的所有数据项必须包含在某个片段中,否则将导致数据库不完整,造成某些片段数据丢失
重构性原则,即所有片段必须能够还原全局关系:
不相交原则(对垂直分片的主键除外),对于一个全局关系,要保证数据不丢失,则必须要属于某个片段,即不允许不属于任何一个片段,也不允许一个全局关系的某些数据既属于该全局关系的某些片段又属于该全局关系的另一个片段(垂直关系中的码属性除外)
12.在BigTable中,不仅可以 随意地增减行的数量,同在一定的约束条件下,还可以对列的数量进行扩展,而且在每个单元还引入一个时间标签,可以存储多个不同时间版本的不同数据
13.XML数据库是一种支持对XML格式文档进行存取管理和数据查询的数据库。XML数据库与传统数据库相比有如下不同和优势。
XML数据库能够对半结构化数据进行有效的存取和管理。
提供对标签和路径的操作。
当数据本身具有层次特征时,由于XML数据格式能够清晰表达数据的层次特征,因此XML数据库便于对层次化的数据进行操作。
14.一维数据划分根据关系的某一个属性的值来划分整个关系,该属性称之为划分属性。
范围划分有利于范围查询及点查询;
轮转法最适合于扫描整个关系的应用,在扫描时可以并行的从n个磁盘读取数据,负载均衡,充分发挥了并行性
散列划分适合于点查询。
多维数据划分解决一维数据划分存在的问题,多维数据划分将关系R的属性分为主划分属性和辅助划分属性。
15.全局外模式是全局应用的用户视图,即终端用户看到的逻辑上并未分布的表、视图等
全局概念模式用于描述全体数据的逻辑结构和特征
分片透明性位于全局概念模式与分片模式之间
分片模式用于描述每个数据片段以及全局关系到片段的映像,是分布式数据库系统中全局数据的逻辑划分视图
分配模式用于描述各片段到物理存放场地的映像
局部数据模型透明性位于分配模式和局部概念模式之间
局部概念模式用于描述全局关系在场地上存储的物理片段的逻辑结构以及特征
局部内模式用于描述局部概念模式涉及的数据在本场地的物理存储。
第十四章 数据仓库与数据挖掘
1. 第一类ODS数据更新频率是秒级
第二类ODS数据更新频率是小时级
第三类ODS数据更新频率是天级
第四类ODS是根据数据来源方向和类型划分的
2.粒度是系统中存在不同综合级别的数据,一般将综合级别称为粒度。粒度越大,表示综合程度越高;粒度越小,表示综合程度越低。
粒度级设计需要考虑的因素:(1)用户查询所涉及的数据的最低细节程度;(2)用户查询的平均性能需求;(3)系统的可用存储空间;(4)低粒度级数据的规模
粒度级设计不需要考虑的因素:(1)高粒度数据所需的存储空间;(2)用户查询所设计的数据的最高粒度级
3.元数据被定义为描述数据及其环境的数据,是关于数据的数据。元数据用于描述数据仓库内数据的结构和律立方法,可将其按用途的不同分为技术元数据和业务元数据。一般来说,它有两个主要的用途:首先能够提供基于用户的信息,其次能支持系统对数据的管理和维护。在传统的数据库中,元数据描述了数据库中的各个对象,如数据库中数据字典就是一种元数据,在关系数据库中,这种描述就是对数据库、表、列等对象的定义。DBMS数据字典、数据库结构证明文档、前端应用程序表中数据库的定义及说明文档都是元数据。
4.操作型数据和分析型数据的区别
5.数据仓库有四个特点:
(1)面向主题,操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据按照一定的主题域进行组织。主题是一个抽象概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关
(2)集成的,面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。而数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息
(3)稳定的(非易失的),操作型数据库中的数据通常实时更新,数据根据需要即使发生变化。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般又大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新
(4)反映历史变化(随时间变化的),操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
6.联机事务处理(OLTP)也称面向交易的处理系统,其基本特征是顾客的原始数据可以立即传送到计算机中心进行处理,并在很短的时间内给出处理结果,可以即时的处理输入的数据,及时回答。因此系统要求必须具有很高的响应速度。
联机分析处理(OLAP)是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。典型的应用就是复杂的动态的报表系统。
OLAP的特点一般有:实时性要求不是很高、数据量大、决策支持,查询动态,随时提出查询的要求。
OLTP的安全性比OLAP要高,实施起来也比较困难。
OLTP一般由企业中下层使用,OLAP由企业中上层使用。
OLAP的实现技术主要分为以下三类:(1)基于关系型数据库的OLAP(RLOAP);(2)基于多维数据库的OLAP(MOLAP);(3)混合型OLAP(HOLAP)
7.支持度(s):s(X->Y)=(XUY)的总个数/事务总数
置信度(c):c(X->Y)=(XUY)的总个数/X的个数
8.数据仓库中的数据维护策略分为3种:实时维护、延时维护和快照维护。
实时维护在数据源发生变化时,立即更新数据仓库中数据。实时维护操作的触发条件是数据源进行了数据的更新操作。这种策略能够保证用户总查到最新的数据。
延时维护工作并不是在数据源的更新事务中完成,而是在数据仓库中的视图被查询时完成更新。延时维护操作的触发条件是用户在数据源发生变化后首次对数据仓库执行查询操作。
快照维护策略定期对数据仓库进行维护,维护操作的触发条件是时间。这种策略不会给源数据的更新事务或者数据仓库的查询事务增加任何负担,但通常无法提供最新的数据。
9.数据仓库的数据来自多种数据源。不同的数据源可能由不同的平台开发,使用不同的数据库管理系统,数据格式也可能不同。源数据在被装载到数据合库之前需要进行一定的数据转换。数据转换的主要任务是对数据粒度以及不一致的数据进行转换。
10.知识发现过程由以下三个阶段组成: 数据准备、数据挖掘、结果的解释评估。