今天出分 优秀哈哈。
应用服务器从数据库服务器接收数据并返回给客户端。
关系模型是静态稳定的,关系是动态的,随用户操作变化。
设计人机界面可采用原型迭代法,首先进行用户界面初步设计,然后与用户不断讨论,改进设计方案。
不能删除数据库中的日志内容,以获得更多的空间。(会破坏数据库的安全性和可靠性)
创建索引的SQL语句格式:
create [unique] index <索引名> on <表名> (<列名>[<次序>],<列名>[<次序>],) include (属性名) where 约束条件
(*)在对用户进行授权时 deny修饰符表示拒绝。权限冲突时deny优先。
deny(拒绝)与不授权的区别:
deny 不可继承其他角色中已有的权限 ,不授权可以继承其他角色中已有的权限
db_datawriter角色具有:插入、删除、更新操作;不具有查询操作。
将属性值作为参数,不采用索引键值比较,而是采用一定的计算方法定位数据的是散列(哈希)索引。
系统数据库 master、model、msdb、tempdb和用户数据库,备份策略。
master、model、msdb修改后立即备份。
tempdb无须备份、临时文件每次启动都会清空。
用户数据库周期性备份。
文件备份仅对数据库文件备份,不会对日志文件进行备份。
文件备份、差异文件备份完成后需要对日志文件再进行备份。
完整数据库备份、差异数据库备份完成后不需要再备份日志文件。
介质故障,又称为硬故障,是指物理设备的损坏导致数据库无法运行。
系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。
(*)分布式数据库中的分布透明性包括:
分片透明性
位置透明性
局部数据模型透明性
在并行数据库中,需要将表拆分到不同的磁盘上。
并行数据库常用划分方法有:
轮转法、散列划分、范围划分
最适合整表扫描的拆分方式是:轮转法
轮转法在扫描时可以并行地从几个磁盘中读取数据,负载平衡,充分发挥了并行性。
数据库管理系统提供了数据定义语言(DDL),用于定义各种数据库对象。数据定义语句经DDL编译器编译后,各种对象的描述信息存放在数据库的数据字典中。(数据字典:数据项、数据结构、数据流、数据存储和数据处理)。
关系数据库中要求关系的主码不能为空,这属于数据模型三要素中的**完整性约束**(三要素:数据结构、数据操作和完整性约束)。
数据库主要角色及权限:
角色 | 权限 |
---|---|
bulkadmin | 执行BULK INSERT语句(高效导入大量数据量的平面文件) |
dbccreator | 创建、修改、删除和还原数据库 |
diskadmin | 管理磁盘文件 |
processadmin | 管理在SQL Server实例中运行的进程 |
securityadmin | 管理服务器登录账户 |
serveradmin | 配置服务器范围设置 |
setupadmin | 添加和删除链接服务器 |
sysadmin | 在SQL Server中进行任何活动,该角色的权限跨越所有其它固定服务器角色。 |
数据库管理系统一般通过周期性检查事物等待图来实现死锁检测。
一个事物执行过程中,其正在访问的数据被其他事物修改,导致处理结果不正确。这是由于不满足并发事物间的**隔离性**而引起的。
在数据库系统出现故障后进行恢复。
故障时已经提交的执行redo操作
故障时未提交的执行undo操作
并行数据服务器分为两种结构:完全共享资源结构和完全不共享资源结构。
(*)数据仓库是一个面向主题的、集成的、非易失的、且随时间变化的数据集合。
粒度是反映数据库系统中综合程度的指标。表中属性细化越低,粒度越大。越详细粒度越小。
格式:
create procedure 过程名 @[参数名] [类型],@[参数名][类型] /*过程首部 默认是输入参数 可以加output修饰 成为输出参数*/ AS /*as下面对应的<PL/SQL>块 为过程体*/ Declare ****** begin ****** end
(*)存储管理器负责检查用户是否具有数据访问权限。
查询处理器会为编译好的查询语句生成执行计划,并根据执行计划访问相关数据。
三级模式结构和数据独立性:
- 在一个数据库中可以定义多个外模式,而内模式只有一个。
- 三级模式结构提供了数据独立性,即当数据的逻辑结构和存储结构发生变化时,应用程序不受影响。
前触发型触发器只执行触发器指定的内容而不执行引发触发器的SQL语句。
(*)创建一个新的用户数据库时,该用户数据库主要数据文件的大小不能小于 model数据库主要数据文件的大小。(model数据库为新数据库提供模板)。
在创建表时,当用check进行约束条件限制时,若其只涉及对某一列的约束则可以放在该列后面,如果是约束条件中涉及两列或两列以上,则为整个表的约束,放在表的最后面。
视图在SQL语句相同的情况下不能提高查询效率。
基于锁的并发控制技术:
数据库中的锁主要分为共享锁和排它锁。
- 当事务T对某个数据加上排它锁时,T可以对该数据进行读和写,其他任何事务都不能再对该数据加任何类型的锁,直到T释放该锁才行;
- 当事务T对某个数据加上共享锁,则T只能对该数据进行读操作,不能修改数据,且其他事务也可以对该数据加共享锁但不能加排它锁。只有等到该数据没有被其他任何事务访问时才能加排它锁。
- 锁是一种特殊的二元信号量,用来控制多个并发事物对共享资源的使用。
- 数据库系统可以采用先来先服务的方式防止出现活锁现象。
- 当数据库管理系统检测到死锁后,可以采用撤销死锁事物的方式解除死锁。
主索引是根据数据对象的主键建立的索引,它们决定了被索引记录的位置,而辅助索引没有这样的限制,可以用于任何索引目的并且可以查找多个数据文件的存放位置。而位图索引一般在范围查询时使用。
表在创建时必须设置主码,若未设置则默认所有属性集合为主码。
日志文件
- 日志写入顺序必须和并行事务执行的时间次序一致,因为这样才能在数据库恢复时进行redo和undo操作,从而保证数据的一致性而不会产生脏数据。
- 必须先写日志再写数据库,这样当数据库发生故障时可以根据日志完全恢复,否则如果先写数据,当数据刚写完时,数据库故障而没来得及写日志,导致数据恢复时发生错误。
- 日志文件中检查点记录的主要作用是提高系统出现故障后的恢复速率。
恢复数据库正确的实例语句:
先恢复数据库,再恢复日志文件
restore database MyDB from BK with file=1,norecovery /*norecovery恢复后数据库不可以用*/ restore log MyDB from BK with file=2
master数据库可以使用的备份方法只有完整备份。(master最重要的数据库)
并行数据库
- 并行数据库系统的主要目的是通过高速通信介质连接多个可独立处理的单元以并行执行的方式完成对数据库系统的互联查询、内部查询以及各种内部操作。分布式数据库系统的主要目的是实现场地自治和数据全局透明共享。
- 层次结构可以分为两层,顶层是无共享结构,底层是共享内存或共享磁盘结构。
- 无共享结构通过最小化共享资源来降低资源竞争,因此具有很高的可扩展性,适合于OLTP(联机事务处理)应用。
- 并行数据库系统经常通过负载均衡的方法来提高数据库系统的业务吞吐率。
现有一个具有多个分店的大型连锁超市,……为了提高数据访问率,系统将每年每个分店的销售数据分成独立的数据表,这种划分方式为**多维划分**。(维是人们观察事物的角度,同样的数据从不同维进行观察可能会得到不同的结果。)
分布式数据库的分配方式包括集中式、分割式、全复制式、混合式。
- 集中式:所有数据片断都安排在一个场地上;
- 分割式:全局数据有且只有一份,它们被划分成若干片段,每个片段被分配在一个特定的场地上;
- 全复制式:每个站点都有全局数据的复制样本,数据的冗余性最大;
- 混合式:全局数据被分成若干个数据子集,每个子集都被安排在一个或多个不同的场地上,但每个场地未必保存所有数据。
联机事务处理(OLTP)和联机分析处理(OLAP):
OLTP是对数据库联机的日常操作,通常是对一条记录的查询和修改,要求快速响应用户的请求,对数据的安全性、完整性及事务吞吐量要求很高。
OLAP是对数据的查询和分析操作,通常是对海量历史数据的查询和分析,要访问的数据量非常大,查询和分析操作十分复杂。
OLAP为宏观分析,OLTP为微观操作,所以前者面向中上层和决策者使用,而后者面向企业的中下层业务人员使用。
设用UML设计某数据库应用系统,设计人员规划了一组应用程序集,该集合由动态链接库和可执行程序构成。为了展现这些应用程序集间的组织和依赖关系,以对源代码、可执行程序的发布等进行系统建模,应采用的UML图是 组件 图。
(组件图提供系统的物理视图。UML图形中组件图的用途是显示系统中的软件对其他软件组件(列如,库函数))的依赖关系,它可以在一个非常高的层次上显示,从而仅显示粗粒度的组件,也可以在组件包层次上显示。
自连接是SQL语句中经常要用的连接方式,使用自连接可以将自身表的一个镜像当做另一张表来对待,从而得到一些特殊的数据。简而言之,自连接的本意就是将一张表看成多张表来做连接。
在SQL Server 2008的某用户数据库中,设有T表,现要在T表的c1列和c2列上建立一个复合唯一聚集索引,其中c1列值重复率为20%,c2列为10%。建立一个性能最优的索引:
create unique clustered index Idx1 on T(c2,c1);
聚集索引是指索引项的顺序与表中记录的物理顺序一致的索引组织。用户可以在最经常查询的列上建立聚集索引以提高查询效率。unique表示要建立的每一个索引值对应唯一的数据记录,先对c2表索引然后对c1表索引,可以使索引的性能最优。
(*)数据库管理系统中的加锁协议规定了事务的加锁时间、持续时间和释放锁时间,其中三级加锁协议可以完全保证并发事务数据的一致性。
三级加锁协议也称为三级封锁协议,它保证正确地调度事务的并发操作,是事务对数据库对象加锁、解锁必须遵守的一种规则。在运用X锁(排它锁)和S锁(共享锁)对数据对象加锁时,还需要约定一些规则,列如何时申请X锁和S锁、持锁时间、何时释放等。
(*)通常数据库的转储机制用三种,分别是**完全转储、差量转储和增量转储**。
完全转储:是指对整个数据库中的数据全部重新备份,效率低,时间长;
差量转储:是指基于上一次完全转储基点之后变化转储,是对上次转储以后对所有文件中修改或删除的记录的转储,效率高,时间短;
增量转储是对数据库中凡是有记录变化的文件的整个文件进行复制,效率介于前两种转储方式之间。
在数据仓库设计和建设过程中,设计者需要调查用户的决策或数据处理需求,并将功能相近且需要相关联数据支持的需求进行归类,得到不同的需求集合,并在企业数据模型中寻找能够满足各个需求集合的数据集合,然后针对各个数据集合开展数据仓库数据模型的设计。这种设计方法称为**面向主题**的设计方法。
面向主题的数据组织方式,就是在较高层次上对分析对象数据的一个完整并且一致的描述,能刻画各个分析对象所涉及的企业各项数据,以及数据之间的联系。所谓较高层级是相对面向应用的数据组织方式而言的,即按照主题进行数据组织的方式具有更高的数据抽象级别。与传统数据库面向应用进行数据组织的特点相对应,数据仓库中的数据面向主题进行组织。例如,一个生产企业的数据仓库所组织的主题可能有产品订货分析和货物发运分析等。
数据仓库是为了构建新的分析处理环境而出现的一种数据存储的组织技术。
对模式进行分解时,既要保证分解具有“无损连接性”,又要保证分解“保持函数依赖”。
无损连接,指分解的若干连接重组时可以精确恢复到原来的数据表,数据的记录既没有增加也没有减少。
保持函数依赖,指原关系模式有的属性之间的隐含关系在分解后不能丢失。
数据库物理设计
- 物理设计着眼于数据库底层的物理存储与存取,与操作系统和硬件环境及数据库管理系统密切相关。
- 为了提高系统的性能,应该根据应用情况将数据的易变部分和稳定部分、经常存储部分和存取频率较低的部分分开存放,较常用的放在高速读写的磁盘上。根据访问频率定。
- 物理设计过程中需要考虑设置合理的数据库管理系统参数和操作系统相关参数。
- 物理设计过程中需要考虑RAID级别、操作系统的文件管理机制、数据库管理系统支持的索引类型。
三层浏览器/服务器(B/S)架构是现在比较流行的应用系统架构。
- 表示层使用Web浏览器实现,位于客户端,一般无需安装其他程序。
- 数据层位于数据库服务器,由DBMS完成数据存储和数据存取等数据管理功能。
- 此架构将人机交互、应用业务逻辑和数据管理三类功能分离,提高了可维护性。
- 与二层的客户/服务器(C/S)架构相比较。三层架构将更多的任务传给服务器端计算,所以增加了网络的通信量,其运行速度受制于网络,并不一定会提高。在适用Internet、维护工作量等方面,B/S比C/S强;在运行速度、数据安全和人机交互等方面,不如C/S.
关于关系数据模型和关系表的说法
- 关系数据模型以集合论为基础表述和处理数据
- 关系数据语言分为关系代数语言、关系演算语言和兼具两者双重特点的语言,如SQL,但所有这些语言的共同点是非过程化的集合操作语言。
- 在关系表上执行select或delete操作时,DBMS会检查数据完整性约束。(错)查询数据表时SQL语句不会检查数据的完整性约束。
数据库物理设计
- 在频繁执行插入、修改和删除操作的表上建立索引可能会降低系统的整体性能。
- 在一张表的某列上需要频繁执行精确匹配查询时,可以考虑为此列建立哈希索引。
- 为了提高写入性能,数据库一般应尽量避免存储在RAID10的磁盘存储系统中。(错!)RAID10比RAID5在写数据上更稳定、速度更快、所以应尽量存储在RAID10的磁盘存储系统中。
- 如果系统中存在频繁的多表连接操作,可以考虑将这些基本表组织为聚集文件,以提高查询效率。
UML的类图
类型 | 图形样式 | 描述 |
---|---|---|
类 | 空心三角实线 | 子类对父类的继承 |
接口 | 空心三角虚线 | 多继承 |
聚合关系 | 空心菱形实线 | 弱拥有关系 |
合成关系 | 实心菱形实线 | 强拥有严格的整体关系 |
SQL中case when语句
/*简单赋值查询用法*/ case sex when '1' then '男' when '2' then '女' else '其他' end /*复杂赋值查询用法*/ case /*注意这里没有变量名*/ when Grade between 90 and 100 then '优' /*省略*/ when Grade between 60 and 69 then '及格' else '不及格' end
标量函数
/*示例*/ Create FUNCTION dbo.GetTotal(@GoodID char(6)) Returns int AS /*AS可以去掉 注意此处是returns*/ begin Return (select sum(销售价格) from 销售表 where 商品号=@GoodID) /*注意此处是return*/ end
分区表是将一个表的数据按水平方式划分为不同的子集,从而可以更快速有效地访问数据子集。现有表R(A,B)以及针对该表的SQL语句,如果基于列A对R进行范围分区,该分区设计方案能提高其性能的SQL语句是
select A,sum(B) from R group by A
(A属性基于对R进行水平划分,即区别子集主要是通过A属性。)
(*)对于架构的说法:
- 架构是形成单个命名空间的数据库实体的集合。命名空间也是一个集合,其中每个元素的名称都是唯一的。架构与用户的关系是一对多的关系,一个用户只能对应一个架构,但多个用户可以共享一个架构。
- 架构相当于数据库对象的容器,在同一个数据库中架构不能重名。
- 架构是数据库中的逻辑命名空间,同一个数据库的不同架构中可以存在同名表。
- 在一个架构中可以定义表、视图等不同数据库对象
设数据库管理员为SQL Server 2008默认实例中的某数据库实施了基于维护计划的数据库备份任务。配置完成后,发现此维护计划并未执行但数据库运行正常。有关此维护计划未执行的原因,最有可能的是 SQL Server 代理(MSSQLSERVER) 服务未启动。
SQL Server Agent是一个任务规划器的警报管理器,在实际应用环境下,可以先将那些周期性的活动定义成一个任务,然后让其在SQL Server Agent的帮助下自动运行。系统管理员,可以利用SQL Server Agent 向自己通知某些警告信息,从而定位出现的问题以提高管理效率。SQL Server Agent 主要包括以下几个组件:作业、警报和操作。
SQL Server实例就是在数据库中存在的现实的数据库的例子,它是后台进程和数据库文件的集合。仅具有登录权限的用户对SQL Server 只能进行系统数据库中有关SQL Server的一些系统信息的查询,即只能对master、msdb数据库部分数据进行查询。.
检测死锁有多种方法,包括超时法、等待图法等。事务等待图法动态地反映了所有事务的等待情况,并发控制的子系统周期性地生成事务等待图进行检测,而不是在执行每个事务时进行检测。
属于数据库日常监控内容:1.数据库空间使用情况。2.数据库缓冲区命中率情况。3.数据库中索引使用情况。
不属于:数据库服务器网络是否畅通(操作系统管理员的职责);数据库用户向数据库发送的每条SQL语句(数量庞大、且没有稳定的衡量指标,不属于监控范围)
(*)数据库性能优化:
- 增加派生性冗余列可以降低查询过程中的计算量。
- 增加冗余列可以减少查询过程中的UNION操作。(错)(增加冗余列指的是在多个表中添加相同的列,这样虽然增加了数据库服务器存储的负担,但可以减少查询过程中的JOIN(连接)操作,而不是UNION(并操作))
- 适当降低关系模式的规范化程度,可以减少查询过程中的JOIN操作。
- 当一个表的数据量超过一定规模时,可以采用分割表的方法提高效率。
减少数据库管理系统中的死锁,可以在**应用程序设计过程**中采取的措施
- 事务按同一顺序访问资源
- 将大事务切分成若干个小事务
- 使用绑定连接
检测事务等待图并撤销回路中的某个事务(不是在设计过程中 这是在数据库应用系统运行过程中由DBMS完成的操作)
数据库差异备份所备份的内容是:从最近的一次完整备份到当前时间数据库中变化的数据和日志。
数据文件的空间使用量未必比日志文件大,因为日志是快速增长的。使用日志备份并不能降低数据库的备份空间。
(*)分布数据库分布透明性的描述:
- 分片透明性是最高层次,指的是用户或应用程序只对全局关系进行操作而不必考虑关系分片的情况。
- 位置透明性是下一层次,指用户或应用程序只需了解数据分片情况,而不必了解片段的存储场地。
- 局部数据模型透明性指的是用户或用户程序不必了解局部场地上使用的是哪种数据模型,但是必须了解全局数据的分片情况,还需要了解各片段的副本复制情况及各片段和它们副本的场地位置分配情况。
(*)元数据是关于数据的数据,或者叫做描述数据的数据。元数据描述了数据的结构、内容、链和索引等项内容。在关系数据中,这种描述就是对数据库、表、列等其他对象的定义。
如果数据文件中数据记录排列顺序与索引文件中索引项的排列顺序一致,则此种索引被称为聚集索引。(clustered)
关系数据库中的视图提供了**逻辑**数据独立性。
(*)在SQL Server 2008中,用于判断游标数据提取状态的全局变量是 @@FETCH_STATUS
datediff()函数用于计算两个日期之差。
在SQL Server 2008 中,只具有修改数据库中全部用户表数据权限的系统角色是**db_datawriter**。(9个SQL内置角色之一)
由于死锁导致的事务回滚属于数据库故障中的内部事务故障。
数据库系统中的故障的种类分为:
事务内部故障、系统故障、介质故障、计算机病毒。
**事务内部故障分为预期事务内部故障和非预期事务内部故障。**非预期的事务内部故障是不可预期的,不能由应用程序处理的,包括运算溢出、并发事务发生死锁而被撤销该事务、违反了某些完整性限制等。
系统故障是造成系统停止运转的任何事件,使得系统需要重新启动。介质故障指硬件损坏等。
(*)两阶段加锁协议可以保证事务调度的**可串行**性。
DBMS对并发事务的不同的调度可能会产生不同的结果。为了衡量调度正确性,执行结果如果可以等价于串行调度则认为是正确的,这样的调度叫可串行调度。而**两段加锁协议就是实现可串行调度的协议。**若并发执行的所有事务均遵守两段锁协议,则这些事务的任何并发调度都是可串的。
只复制最近一次数据库完全转储以来发生变化的数据的转储方式称为差量转储。
(*)在分布数据库中,采用**半连接**操作可以减少场地之间的数据传输量。
在一个关系传输到另一场地后,并非每个数据都参与连接操作,因此,不参与连接的数据或无用的数据不必在网络中来回传输。采用半连接操作即可在网络中只传输参与连接的数据。
(*)在进行多维分析时,如果将每年销售额投影到每个月上来进行观察,这种分析动作被称为**钻取**。
常用的OLAP多维分析操作有切片、切块、旋转、下钻和卷起。
- 卷起:是在数据立方体中执行聚集操作,通过在维级别中上升或通过消除某个或某些维来观察更概括的数据。
- 下钻:是通过在维级别中下降或通过引入某个或某些维来更细致的观察数据。
- 切片和切块:实现局部数据的显示,帮助用户从众多混杂的数据中进行选择。
- 旋转:就是改变维的方向。
(*)数据仓库中,元数据主要分为**技术元数据和业务**元数据两类。
创建视图中的 with schemabinding 关键字:
create view 视图名 with schemabinding as ...
schemabinding 选项,防止视图所引用的表在视图未被调整的情况下发生改变。一旦视图指定了with schemabinding 选项,那么在修改当前视图的表或视图时,一旦对当前视图产生影响(导致视图失效),则不允许修改。
基于RangePF1分区函数创建分区方案RangePS1,每个分区对应一个文件组。
create partition scheme RangePS1 as partition RangePF1 to(文件组,文件组,文件组,文件组)
使用RangePS1分区方案创建一个分区表PartitionT(Gid,GoodName,Price),该表基于Gid列创建分区
create table PartitionT( Gid int identity(1,1) primary key, GoodName varchar(40), Price float ) on RangePS1(Gid)
用SQL语句描述事务活动。不属于逻辑设计所包含的活动(SQL语句通常不认为是设计范畴,已经实现了)
(*)包含索引设计的层次是:数据持久层。
数据库应用系统设计包括四个层次:1.表示层 、2.业务逻辑层 、3.数据访问层、4.数据持久层
数据持久层的设计工作属于数据组织与存储等方面的物理设计内容。
索引设计属于物理设计。
查询处理器和存储管理器是数据库管理系统中的核心模块。
- 查询处理器中的DML编译器会对用户提交的DML语句进行优化,并将其转换能够执行的底层数据库操作指令。
- 存储管理器中的缓冲区管理器负责将从磁盘读出的数据块放入内存缓冲区,同时也负责对缓冲区中的数据块进行维护。
- 查询处理器中的DDL编译器编译或解释用户提交的DDL语句,并将生成的元数据存储在数据库的数据字典中。
- 查询处理器中的查询执行引擎会会根据编译器产生的指令完成具体数据库数据访问功能。
**补充:**DML数据操作语言,如:insert、update、delete;
DDL数据定义语言,如:create table、drop、alter;
触发器中inserted表用于存储insert和update语句所影响行的新值的副本,deleted表用于存储delete和update语句所影响行的旧值的副本。
关于SQL Server 2008中视图的说法:
- 数据库只存储标准视图的定义,并不存储标准视图的内容。
- (*)如果在视图上创建了唯一聚集索引,则数据库中将保存该视图的内容。
- 索引视图引用的基本表必须与视图在同一个数据库中。
(*)关于索引视图的说法:
- 当很少对基表数据进行更改操作时,适合建立索引视图。
- (*)索引视图的数据物理地保存在数据库中,因此建立索引视图会占用更多的存储空间
- 如果Group By列具有高基数度的数据聚合,则不适合建立索引视图。
- 对于经常执行连接和聚合操作的查询,适合建立索引视图。
关于SQL Server 2008 中guest用户的说法:
- guest用户没有对应的登录账户名
- 通过授权语句可以启用数据库中的guest用户(默认为禁用状态)
- 所有数据库用户都**不是**继承该数据库中guest用户的权限
- 任何SQL Server 登录账户都可以访问启用了guest用户的数据库
(*)关于SQL Server 2008 身份验证模式的说法:
- 在Windows身份验证模式下,不允许 sa 登录到SQL Server服务器
- 不管是哪种身份验证模式,Windows中的Administrator无需授权就可登录到SQL Server服务器
- 安装好SQL Server之后,可以根据需要随时更改身份验证模式
- 在Windows身份验证模式下,所有Windows用户登录到SQL Server服务器都无需提供用户名和密码,但SQL Server会从用户登录到Windows时提供的用户名和密码查找当前用户信息,判断其是否是SQL Server的合法用户,不是,则拒绝登录。
关于数据库实施、运行和维护的说法中,最恰当的是
对于数据量极大的中大型系统,不需要等待所有的数据都入库后才开始试运行,可以先装载少量的数据,等到试运行的结果符合设计的要求后,再批量装入全部数据。
(*)设某数据库服务器中配置有2块300GB和1块500GB的硬盘,为了保证可靠性,数据库管理员在3块硬盘上建立了RAID5。建立了RAID5后,可用的磁盘空间为600GB
Raid5需要3块硬盘(Raid 10需要4块),并把数据和相对应的奇偶校验信息存储到组成Raid5的各个磁盘上。其中任意 N-1 块磁盘上都存储完整数据,也就是说有相当于一块硬盘容量的空间用于存储奇偶校验信息。
(*)数据库的恢复顺序:1.恢复最近的完全数据库备份;2.恢复完全数据库备份之后的最近的差异数据库备份;3.按日志备份的先后顺序恢复自最近的完全或差异数据库备份之后的所有日志备份。
(*)XML数据库是一种新型的数据库管理系统。下列关于XML数据库的说法:
目前 XML数据库主要包括XEDB、NXD和 HXD三种类型。
很多关系数据库厂商在其传统的数据库产品中进行了扩充,使其能够处理XML文档
在数据库本身具有层次特征时,XML文档能够清晰地表达数据的层次特征。
(错!)由于XML文档本身带有标记,可以自描述,因此XML数据库并不对XML文档进行解析。(解释:XML文档自身标记只是对本身的描述,需要数据库的解析才能达到真正用途)
下列关于分布式数据库和并行数据库的说法
- (错)为了满足高并发业务的需要,共享内存结构的并行数据库比较适用于如银行出纳、民航售票等OLTP应用。(解析:OLTP应用需要进行大量的并行事务,因此若采用共享内存结构会引起大量数据冲突。)
- (错)在分布式数据库的查询中,导致数据传输量大的主要原因是数据间的连接操作和选择操作。(解析:是连接操作和并操作。)
- (对)如果数据分布不合理,并行数据库仅仅依靠多处理器,共享硬件资源等手段是无法实现真正意义上的并行处理的,也无法使其性能最优化。
- (错)与集中式数据库系统的事务相比,分布式数据库系统中只需要一个场地完成提交即可完成一个全局事务,这正是分布式数据库的优越之处。(解析:分布式数据库因为不同的分片和副本,因此很多时候在一个场地完成提交不能完成全局事务,如虽完成某片数据更新,却并没有完成全局数据更新。)
数据库管理系统为用户和应用程序提供了**DDL**语言,用此语言可以定义数据库的模式结构,但此语言执行后的结果不能回滚。(DDL:数据库模式定义语言,用于描述数据库中要存储的现实世界实体的语言;DML:数据操纵语言,用户通过它可以实现对数据库的基本操作。)
当用户在一个关系表的某一列上建立一个非聚集索引(该表没有聚集索引)时,数据库管理系统会自动为该索引维护一个索引结构。该索引结构中的记录是由**索引列列值和它相对的指针**构成的。
在UML中,当要描述状态之间的转换时,可通过**时间图**来体现时间因子的作用。
(*)在SQL Server 2008中,能够出现在Select语句目标列中的用户自定义函数是**标量**函数。(SQL Server 2008 支持三种用户自定义函数:标量函数、内嵌表值函数和多语句表值函数。标量函数可以出现在select语句目标列中,其他两个函数必须放在select语句的from子句中。)
(*)SQL Server 2008 中声明游标的语句为:
Declare vendor_cursor CURSOR FOR SELECT...
SQL Server 2008中设置 不允许用户获得对表的某种操作权限的命令为:Deny 对象权限名 ON {表名|视图} TO {数据库用户名|用户角色名}。
(*)在OLAP的实现方式中,以多维数据作为存储·结构的被称作 MOLAP。(MOLAP称为基于多维库的OLAP,这种OLAP的核心是多维数据库技术。MOLAP工具以多维数据库的形式将元数据、基础事实数据和导出数据存储在以多维数组为基本存储结构的多维数据库中。)
建立数据仓库不是简单的把企业的各种应用集中在一起,而是利用企业信息系统生成的数据,以面向主题、集成的方式合理组织数据,解决数据分析应用和企业基本业务之间的性能冲突问题。
数据库应用系统设计需要考虑数据组织与存储、数据访问与处理、应用设计等几个方面。
视图中可以使用order by 语句;子·查询语句中不能使用order by 语句。
优化查询的说法:
- 避免或简化排序的目的是实现查询优化。
- 在保证数据库一致性的前提下,将频繁操作的多个可以分割的处理过程放在一个存储过程中,这样可以大大提高系统的响应速度。(错)(解释:放在多个存储过程中,才可以提高系统的响应速度。)
- 使用游标会占用较多的系统资源,尤其对于大规模并发量的情况下,很容易使得系统资源耗尽而崩溃,而使用临时表能够加速查询。
- 相关子查询不可以加速查询。
下列全部属于结构图的组图是
类图、对象图、组件图、部署图、用例图。
结构图是指以模块调用关系为线索,用自上而下的连线表示调用关系并注明参数传递的方向和内容,从宏观上反应模块层次结构的图形。
关系表与元组
- 关系表在逻辑上由一系列元组组成。
- 每个元组由多个属性组成。
- 每个元组可以用数据库磁盘文件中的一个逻辑记录来存储。(记录包括多个域)
- 元组的每个属性对应文件记录的一个域。
ADO对象模型中,RecordSet对象的AddNew方法的功能是:在对应的数据库表中增加一条新记录。
RecordSet 对象用于操作来自提供者的数据。使用ADO时,通过RecordSet对象可对几乎所有数据进行操作,所有RecordSet对象均使用记录 (行) 字段 (列) 进行构造。
RecordSet的常用方法为:
- AddNew,创建一条新记录;
- Cancel,撤销一次执行;
- Close,关闭一个RecordSet;
- Delete,删除一条记录或一组记录;
- MoveNext,把记录指针移动到下一条记录。
属于优化SQL语句执行效率方法的有:
- 利用存储过程封装频繁使用的SQL语句。
- 不要随意使用游标
- 合理使用相关子查询
DBAS生命周期模型中时间最长的阶段是:运行管理与维护(是一个长久的过程,时间一般是以年为单位,其成本消耗也是巨大的)
数据仓库不是用做日常查询,也不是汇总和统计,而主要用于提取数据中的潜在信息和知识。
数据挖掘采用适当的算法,从数据仓库的海量数据中提取具有潜在价值的信息和知识。
(*)分布式数据库系统的“分片透明性”位于**全局概念模式与分片模式之间**。
分片透明性。用户编写程序只须对全局关系进行操作,不必考虑数据的分片及存储场地。当分片模式改变时,只须改变全局概念到分片模式的映象,而不会影响全局概念模式和应用程序,即实现了分片透明性。
(*)关于操作型数据和DSS(分析)型数据特征有如下说法:
- 操作型数据更新频率高,DSS型数据一般不更新
- 操作型数据是详细的,DSS型数据是综合的
- 操作型数据处理需求先可知,DSS型数据处理需求事先不明确
- 操作型数据对性能要求较高、无冗余。
一般而言,分布式数据库查询优化的首要目标是:使查询时通信代价最省。
首先,通信代价较 I/O代价容易估计。其次,对于分布式数据库查询优化而言,通信代价比 I/O代价和CPU代价更为重要
关于事务调度:
- 调度分为串行调度和并发调度。
- 串行调度的特点是一个事务的所有操作都执行完后才开始执行另一个事务。
- 多个事务的调度必须保持每个事务的操作在事务中的执行顺序不变
事务的四大特性:①原子性 ②一致性 ③隔离性 ④持久性
事务日志用于保存:对数据的更新操作(它存储对数据进行的所有更改)
数据库管理员要随时观察数据库的动态变化,并在数据库出现错误、故障或产生不适应的情况时能够随时采取有效措施保护数据库。这种监控机制称为**手动监控机制**。
对数据库系统的监控分为手动监控机制和自动监控机制两种。
在SQL中,用**distinct**关键词消除重复出现的元组。
事务是数据库执行的基本单位,如果一个事务执行成功,则全部更新提交;如果一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未执行过,这就是保持数据库处于**一致性**状态。
(*)数据仓库是一个面向主题的、集成的、时变的、非易失的数据集合,支持管理部门的决策过程,数据仓库通过数据转移从多个数据源提取数据,为了解决不同数据源格式上的不统一、需要进行的数据操作是**转换**。
数据转换的主要任务是对数据粒度以及不一致的数据进行转换。
(*)如果数据库中的一个基本表中的数据量很少,且插入、删除、更新等操作频繁,该基本表最佳采用的文件结构是**堆文件**。
堆文件:也称为无序文件。在堆文件中,记录随机地存储在文件物理空间中,新插入的记录存储在文件的末尾。
(*)在UML模型中,用于表达一系列的对象、对象间的联系以及对象间发送和接收消息的图是**通信图或协作图**。
在UML模型中,通信图是交互图的一种,也被称作协作图。它是表达对象之间的联系以及对象间发送和接收消息的图。
DBAS需求分析阶段的性能分析是分析DBAS应具有的性能指标。
其性能指标有
- 数据操作响应时间,或数据访问响应时间;
- 系统吞吐量,即指系统在单位时间内可以完成的数据库事务或查询的数量;
- 允许并发访问最大用户数;
- 每TPS(price per TPS)代价值。
在信息系统的需求分析中,广为使用的DFD建模方法属于** 分析方法**。
自顶向下的结构化分析法
关于索引的说法
- (*)聚集索引的键值可以重复。
- 索引是典型的空间换取时间的方法,因此在设计索引时要在空间和时间两者之间进行权衡。
- 建立聚集索引时,数据库管理系统会按照聚集索引键值对数据进行排序。
- 当经常进行范围查询时,在范围列上建立索引可以提高该类查询的效率。
(*)不适合建立索引的情况:
- 查询中很少使用或参考的列不适合建立索引。
- 只有很少量数据的值也不适合建立索引。
- 经常进行更新的列不适合建立索引。
(*)适合建立索引的情况:
- 经常需要搜索的列上,可以加快搜索的速度;
- **在经常使用连接的列上(这些列主要是一些外键)**可以加快连接速度,在经常需要根据范围进行索引的列上创建索引。因为索引已经排序,其指定的范围是连续的;
- 在经常使用where子句的列上创建索引,加快条件的判断速度。
数据库概念设计是面向企业或组织中的数据需求的。下列是有关概念设计的说法:
- 按照具有相同属性特征原则对客观事物进行分类,在分类的基础上概括命名,得到实体集。
- 从一个联系的两端(两个方向)确定实体集之间联系的基数,并把联系的基数标注在模型中。
- 要保证一个实体集中定义的每一个属性有意义、不重名。
(错误)分析和定义实体集中的每一个实例,并用有意义的符号或文字分别描述它们。(这是对实体集的命名)
硬件容错最完全的方法是设计两套相同的数据库系统同时工作,数据的变化也同步,空间有一定的距离,因此同时破坏两套的概率几乎为零,这样就能达到数据库的完全安全。
(*)现有SQL Server 2008 数据库服务器,其中一个数据库占用80GB的空间,另有一台用于备份的计算机,该机器上有4个大小均为50GB的硬盘分区。若要将此数据库完全备份到该计算机上,则
可以先在每个分区上分别建立一个备份设备,指定每个设备的大小均为20GB,并建立一个包含这4个备份设备的备份媒体集,最后再用此备份媒体集备份数据库。
(*)数据库系统总体设计的主要内容包括确定DBAS体系结构、软硬件选型和配置设计、应用软件总体设计和业务规则初步设计。
统一建模语言UML是一种常用于数据库系统设计和开发的可视化建模语言。关于UML,有下列说法:
- UML中的视图是由一个或多个图组成的,一个图是系统模型中的某个侧面的展示。
- 用于描述系统的物理部署情况的是部署视图。
- 类图和对象图都是UML的逻辑视图,用于描述系统在某个时间的静态结构。
- 在用例图中,与系统交互的人和其他实体都可以成为系统的角色。
静态转储时,不能进行其他事务;动态转储时,允许并发操作,用户操作和转储操作同时进行,但会降低一致性。
(*)事务的四个性质:
原子性:描述的是事务中包括的诸多操作为了保持一致性要么都做,要么都不做。
一致性:描述的是事务执行结果从一个一致性到另一个一致性的变化。
隔离性:保证其并行结果的正确性。
持久性:对数据库的改变时永久的,当事物提交后断电,结果不受影响。
(*)在分布式数据库应用系统中,对全局关系进行分片设计时,说法正确的是
对于一个全局关系中的任意数据,不允许其不属于任何一个片段,也不允许某些数据同时属于不同的片段。
(*)数据分片有以下三个原则:
- 完整性原则:即全局关系的所有数据项必须包含在某个片段中,否则将导致数据库不完整,造成某些片段数据丢失;
- 重构性原则:即所有片段必须能够还原全局关系;
- 不相交原则(对垂直分片的主键除外):对于一个全局关系,要保证数据不丢失,则必须要属于某个片段,即不允许不属于任何一个片段,也不允许一个全局关系的某些数据既属于该全局关系的某些片段又属于该全局关系的另一个片段**(垂直关系中的码属性除外)**。
(*)关于OLTP和OLAP,有下列说法
OLTP的安全性比OLAP要高,实施起来比较困难。
OLTP系统要求系统必须具有很高的响应速度,而OLAP对系统的响应速度较为宽松。
OLTP也称为面向交易的处理系统,实时处理数据,因此响应速度必须要很高。
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。典型的应用就是复杂的动态的报表系统。
OLAP的特点一般有:实时性要求不是很高、数据量大、决策支持,查询动态,随时提出查询的要求。
在超市所从事的信息活动中,属于挖掘时间序列模式的是:针对注册用户,分析他们的购买,向他们设定下次可能购买的优惠规则。
时间序列分析也可以称为数据演变分析,描述行为对象随时间变化的规律或趋势,并进行建模的数据挖掘方法。
SQL Server中根据索引的实现方式,索引技术可以分成有序索引和**散列索引**两大类。
在分布式数据库中,使用分配模式来描述各片段到物理存放场地的映象。
分布式数据库总的数据分布策略可以从数据分片和数据分配两个角度来考虑,一般先数据分片,再数据分配。分片是对关系的操作,而分配是对分片结果的操作。分片模式是描述每个数据片断以及全局关系到片段的映象,分配模式是描述各片段到物理存放场地的映象。
在SQL Server 2008中,授予某数据库中的某个用户具有该数据库中全部用户数据表的插入、删除和修改权限,比较合理的做法是将该用户添加到系统提供的**db_datawriter**数据库角色中。
事务是由一系列操作组成的,事务的执行表现为事务中各个操作的执行。每个事务应具有结束操作。当一个事务发生故障需要终止并取消所有已执行的数据修改时应执行undo操作。
在数据仓库设计和建设过程中,设计者需要调查用户的决策或数据处理需求,并将功能相近需要相关数据支持的需求进行归类,得到不同的需求集合,并在企业数据模型中寻找能够满足各个需求集合的数据集合,然后针对各个数据集合开展数据仓库数据模型的设计。这种设计方法称为**面向主题**的设计方法。
(*)OLAP主要用于支持复杂的分析操作, 侧重对决策人员和高层管理人员的数据支持。OLAP的实现方式主要由三种:
- MOLAP:基于多维数据库
- HOLAP:基于混合型数据库
- ROLAP:基于关系型数据库
- 数据库逻辑结构设计
- 数据库事务概要设计
- 应用程序概要设计
系统总体框架设计属于概念设计
- 定义和描述应用领域涉及的数据范围
- 获取应用领域或问题域的信息模型
- 描述清楚数据的属性特征
- 描述清楚数据之间的关系
- 定义和描述数据的约束
- 说明数据的安全性要求
- 支持用户的各种数据处理需求
- 保证信息模型方便地转换成数据的逻辑结构(数据库模式),同时也便于用户理解
- 降低系统的并发度
- 增加死锁的数量
- 影响检查点的效果
事务是并发控制的基本单位。所谓事务,它是一个操作序列。
系统在执行检查点操作时,所有的事务处理都被暂时中止,长时间的事务影响检查点的效果。
不同的数据库管理系统有着不同的逻辑实现结构,因此数据库空间管理办法随数据库管理系统不同而不同
属于物理设计的是:
- 文件组织与存取设计
- 数据分布设计
- 确定数据库和操作系统参数
- 从时间、空间、维护代价等方面评估物理设计结果,并将评估后的结果实施到数据库中
(不属于物理设计)将关系模式和相关视图转换为特定数据库管理系统的可支持的表和视图
(*)从功能上讲,数据库应用系统设计包括下列四个层次,其中包括构件设计的是业务逻辑层
- 表示层,位于最外层,离用户最近,用于显示数据和接受用户输入的数据。
- 业务逻辑层,表示层和数据访问层之间通信的桥梁,主要负责数据的传递和处理,例如数据有效性的检验、业务逻辑描述相关功能。业务逻辑层概要设计包括:结构、行为、数据接口、故障处理、安全设计、系统维护与保障等方面的内容。
- 数据访问层,主要实现数据的保存和读取操作。
- 数据持久层。
综上所述,业务逻辑层的主要任务是梳理DBAS的各项业务活动,将其表示为各种系统构件(如:类、模块、组件等),因此构件属于业务逻辑层。
不同的数据库产品提供不同的应用程序接口、因此在更换数据库产品后,一般原有的应用程序和数据库接口会失效,需要重新修改应用程序。
关于分布式数据库:
- 分布式数据库的事务管理包括恢复控制和并发控制,恢复控制一般采用的策略是基于两阶段的提交协议。
- 分布式数据库系统的目标是高性能和高可用性,通过多个处理节点并行执行数据库任务,提高整个数据库系统的性能和可用性。
(*)若有算法A,能根据用户间的相似性,将客户集合划分成k个子集合,并使属于同一个子集合的客户间的相似性尽可能大,不属于同一子集合的客户间的相似性尽可能小。则算法A属于一种**聚类算法**。
关联分析算法(计算支持度和置信度)
分类算法(事先知道有哪些种类可分)
回归预测法(是在分析市场现象自变量和因变量之间相关关系的基础上,建立变量之间的回归方程,并将回归方程作为预测模型,根据自变量在预测期的数量变化来预测因变量关系大多表现为相关关系,因此,回归分析预测法是一种重要的市场预测方法。)
物化视图将会预先计算并保存耗时操作的结果,可大幅度提高查询效率,物化视图可人工手动刷新和自动定时刷新。
(*)ODS(Operation Data Store)是数据仓库体系结构中的一个可选部分,ODS具备数据仓库的部分特征和OLTP系统的部分特征,它是“面向主题的、集成的、当前或接近当前的、不断变化的”数据。
第一类ODS数据更新频率是秒级
第二类ODS数据更新频率是小时级
第三类ODS数据更新频率是天级
上述三类是根据数据更新的速度划分的
第四类ODS是根据数据来源方向和类型划分的
(*)用于数据库完整性保护的是
创建触发器
定义事务隔离性级别
数据库的完整性是指数据库中数据的正确性、一致性和相容性。
不用于
数字签名:防止数据篡改
定义主码:实体完整性
UML的几种图介绍
- 协作图:主要用于描述对象在空间中如何交互,即除了动态交互,也直接描述了对象是如何链接在一起的情形
- 状态图:主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件,以及因状态转移而伴随的动作。一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机,重点在与描述状态图的控制流。
- 顺序图:主要用于描述指定的一组对象是如何交互的,它着眼于消息队列,也就是在消息间如何发送和接收消息。
- 部署图:描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。一个系统模型只有一个部署图,部署图通常用来帮助理解分布式系统。
数据库管理员的职责
- 数据库的转储和恢复
- 数据库安全性、完整性控制
- 数据库性能的检测和改善
- 数据库的重组和重构
所有登陆名都属于public服务器角色,登陆名是不能移除public角色的,且public角色是不能删除的。
触发器是一种特殊的存储过程,它是由用户对数据的更改操作自动引发执行的。适于触发器实现的数据库控制是完整性控制。
触发器通常用于保证业务规则和数据完整性,其主要优点是用户可以用编程的方法来实现复杂的处理逻辑和业务规则,增强了数据完整性约束的功能。
频繁使用关联查询,最适合用**聚集文件**保存
- 聚集文件是一种具有多种记录类型文件,存储了来自多个关系表的数据,每个关系表对应文件中的一种记录类型;
- 数据库中数据量效大时,对数据库查询需要多次访问磁盘文件,严重影响性能指标,为了降低多表操作时的磁盘访问次数,提高多表查询速度,可采用聚集文件;
- 聚集文件将不同关系表中有关联关系的记录存储在同一磁盘块内,从而减少多表查询时磁盘块的访问次数,提高系统I/O速度和查找处理速度;
关于SQL Server2008中游标的说法
- 每个游标都有一个当前行指针,当游标打开后,当前行指针自动指向结果集的第一行数据
- 如果在声明游标时未指定insensitive选项,则已经提交的对基表的更新都会反映在后面的提取操作中。(insensitive关键字用于创建由游标使用的临时副本)
- 当**@@FETCH_STATUS=0时,表示FETCH语句成功;当@@FETCH_STATUS=-1时,表示FETCH语句失败或行不在结果集中;@@FETCH_STATUS=-2时**,表示提取的行不存在
- 关闭游标后。可以通过OPEN语句再次打开该游标
关于日志备份
日志备份仅备份日志,不备份数据
日志备份的执行效率通常比差异备份和完整备份高
第一次对数据库进行的备份必须是完整备份
日志备份的时间间隔通常比差异备份短
关于内联(内嵌)表值函数
--语法格式 create function 函数名(参数) returns table as return(select语句)
- 在内联表值函数中,没有相关联的返回变量
- (错)内联表值函数通过insert语句填充函数返回的表值 (用select语句填充)
- 内联表值函数的作用类似于带参数的视图
- 调用内联表值函数时,只能将内联表值函数放置在from子句中(select * from 函数名)
适合建立索引
经常执行查询操作并且数据量很大的表
经常出现在where子句、order by子句、group by子句中的
前后都是%的列查询不会访问索引,不适合建立索引
在云计算中,当云以即用即付的方式提供给公众的时候,我们称其为**公共云**
私有云:不对公众开放的企业或组织内部数据中心的资源。
(*)具体来说,UML的语义是定义在一个四层模型概念框架中的,这四层分别是:
- 元元模型层
- 元模型层
- 模型层
- 用户模型层
(*)在UML中,聚集 是一种特殊形式的关联。它表示类之间的关系是整体与部分的关系。
(*)在衡量数据库应用系统的性能指标中,**数据吞吐量**指的是系统在单位时间内可以完成的数据库事务数量。
(*)Google的云数据库是一个分布式的结构化数据存储系统,称作:Bigtable。
(*)知识发现主要由三个步骤组成,它们是数据准备、数据挖掘、结果的解释评估。
知识发现指的是从数据集中识别出有效的、新颖的、潜在有用的以及最终可理解的模式的非平凡过程。
知识发现将信息变为知识,从数据矿山中找到蕴藏的知识金块,将为知识创新和知识经济的发展作出贡献,
也是所谓“数据挖掘”的一种更为广义的说法。
(*)在SQL Server2008,主要数据文件必须建立在**主** 文件组中。
每个数据库有一个主要数据文件和若干个从文件。文件是数据库的物理体现。文件组可以包括分布在多个逻辑分区的文件,从而实现负载均衡,它允许对文件进行分组,以便于管理和数据的分配及放置。主文件组包含主要数据文件组和任何没有明确指派给其他文件组的其他文件。
在分布式数据库中,如果用户编写程序时不必了解数据分片在各个场地的分配情况,则称为该分布式数据库系统具有**位置** 透明性。
不同的数据库管理系统采用的日志文件格式不完全一样,概括起来主要有以**记录为单位的日志文件和以数据块为单位的日志文件**两种。
在划分关系模型时,一对一和一对多的关系可以合并到其他实体集中,多对多作为一个单独的实体集。
(*)双机热备(active-standby):属于数据库恢复技术内容,当介质被破坏后能够保证数据的完整性。
几种文件结构的概述:
散列文件:利用散列存储方式组织的文件,亦称为直接存取文件。
散列文件的优点:文件随机存放,记录不需进行排序;插入删除方便;存取速度快;不需要索引区,节省空间。
散列文件的缺点:不能进行顺序存取,只能按关键字随机存取,且询问方式只限于简单询问,并且多次插入删除后,也可能造成文件结构不合理,需要重新组织文件。
堆文件:也称为无序文件。在堆文件中,记录随机地存储在文件物理空间中,新插入的记录存储在文件的末尾。因为堆文件无需建立索引,维护代价非常低。虽然堆文件的数据访问效率较低,但数据量很少时,定位文件记录的时间非常短。
顺序文件:文件信息存放在若干连续的物理块中。其优点是简单、支持顺序存取和随机存取速度相对较快。缺点是文件不能动态增长、不利于文件插入和删除。如果用户的查询定义在查找码上,则顺序文件是比较合适的文件结构。
聚集文件:聚集文件将不同关系表中有关联关系的记录存储在一起。如果某些重要而频繁的用户查询经常需要进行多表连接操作,可以考虑聚集文件,来改善查询效率。
有效减少数据库死锁发生数量的方法有
- 各个事务应顺序访问共享资源。
- 将各个复杂的、大的事务分解成多个简单、小的事务。(不能合并事务)
- 按同一顺序访问对象。
- 事务隔离性级别。
- 使用绑定连接。
- 灵活使用显示加速技术。
UML活动图主要用于描述系统、用例和程序模块中逻辑流程的先后执行次序或并行次序。
SET赋值语句给变量赋值且一个变量只有一个值。当值可能有多个时,不能用SET
... --max()可能有多个值 SET @x=select max(工资) from 职工表 where 所在部门=@dept ...
关于SQL server 2008 数据库文件的说法
- 一个数据库只能有一个主要数据文件,但可以有多个次要数据文件。
- 一个数据文件不能属于多个文件组。
- 日志文件不能包含在文件组中。
- 一个数据库可以包含多个日志文件。
关于SQL server 2008 分区表的说法
- 分区表是从物理上将一个表划分为若干个分区。
- 分区后的各分区存储在数据库中一个或多个文件组中。(不需要一定放在不同的文件组中;通过元数据来表述数据存储的逻辑地址)
- 表中数据量的大小并不是是否需要进行分区的唯一考虑因素。
- 对表进行分区后,用户在访问数据时不需要知道被访问数据所在的分区。
关于存取控制的说法:
- 自主存取控制主要通过GRANT、REVOKE、DENY语句来实现
- 在强制存取控制中,DBMS将实体划分为主体和客体两大类
- 仅当主体的许可性级别**大于或等于客体的密级时,主体才能读取相应的客体;仅当主体的许可性级别等于**客体的密级时,主体才能写相应的客体
- 强制存取控制本质上是分层次的,它比自主存取控制更严格
关于数据库的**重组和重构**:
数据库的重组并不修改原设计的逻辑和物理结构,而**数据库的重构则要部分的修改数据库的模式和内模式**
关于数据库中的索引:
- 在某个查询中带排序的属性有多个时可以考虑在这些属性上建立复合索引
- 一个表中最多只能有一个 主索引或聚集索引
- (*)多属性索引中,索引属性的顺序一般按照其区分度进行排序
- B树索引一般适用于等值和范围查询
- 散列索引不能用于范围查询 (检索速度快)
有运行于两个地点的分布式数据库,需要对两个分布在两地数据量很大的表进行连接操作,这两张表数据变化很慢,为了提高查询速度,可行的方法是 将两张表复制交叉复制到两地
分布式数据库传输代价计算:
(*)传输代价=I/O代价+CPU代价+通信代价
优先使通信代价最省,将两张表交叉复制到两地可以省去通信代价
(*)检查点能减少数据库完全恢复时所必须执行的日志,提高数据库恢复速度。关于检查点的说法
- 检查点记录的内容包括建立检查点时正在执行的事务清单和这些事务最近一个日志记录的地址
- 在检查点建立的同时,数据库管理系统会将当前数据缓冲区中的所有数据记录写入数据库中
- (*)检查点由数据库恢复子系统定时或不定时的建立,而不是由管理员手动建立
- 使用检查点进行恢复时需要从“重新开始文件”中找到最后一个检查点记录在日志文件中的地址
有关Active-Standby(双机热备)模式服务器容错技术的说法
- 此模式需要两台服务器使用共享的存储设备,数据库中数据需要存储在此设备中
- 此模式需要在两台服务器之间建立专用的状态检测网络
- 此模式中增加串口方式检测服务器状态的可以有助于避免“脑裂”现象出现 什么是脑裂?
- 此模式可以保证在Active服务器出现故障时,在最短时间内恢复使用
Active-Active(双主机)指两种不同业务分别在两台服务器上互为主备状态(即Active-Standby和Standby-Active状态),优点是两台服务器切换速度快,数据库连接不中断,应用不受影响
SQL Server2008提供了三种恢复模式,不同的恢复模式决定了数据库支持的备份类型和还原方案。关于恢复模式的说法
- 简单恢复模式不记录事务日志,如果数据库损坏,简单恢复模式可能造成数据丢失
- 完整恢复模式记录所有事务日志,同时事务日志记录保留到对其备份完毕为止
- 大容量日志恢复模式只对大容量操作进行最小记录,使事务日志不会被大容量加载操作所填充
- 大容量日志恢复模式不支持时点恢复,也不支持还原单个数据页
SQL Server2008三种恢复模式的详细描述
简单恢复:无日志备份。自动回收日志空间以减少空间需求,实际上不再需要管理事务日志空间。最新备份之后的更改不受保护。发生灾难时,这些更改必须重做。只能恢复到备份的结尾。
完整恢复:需要日志备份。数据文件丢失或损坏不会导致数据库系统丢失工作。可以恢复到任意时点(例如应用程序或用户错误之前)。完整恢复模式还支持还原单个数据页。
大容量日志恢复:需要日志备份。是完整恢复模式的附加模式,允许执行高性能的大容量复制操作。通过使用最小方式记录大规模大容量操作,减少日志空间使用量。
如果在最新日志备份后发生日志损坏或执行大容量日志记录操作,则必须重做自上次备份之后所做的更改,否则将丢失所有工作,可以恢复到任何备份的结尾并且不支持时点恢复和还原单个数据页。
SQL Server2008支持多种数据库还原级别。下列有关其数据库恢复的说法
- 在进行数据库整体还原和恢复过程中,此数据库处于脱机状态
- (*)SQL Server 支持对数据库的一个数据文件进行还原,在还原过程中数据库(此文件)属于脱机状态,其他的文件都不能进行读写操作,因而其他文件也会受到影响
- 在还原数据库之前,如果数据库的日志没有损坏,为了减少数据丢失可以进行一次尾部日志备份
- (*)在进行数据库还原的过程中可以将数据库移动到其他位置
快照:该方法通过对当前数据表进行“照相”,记录当前的数据表信息“相片”,然后将当前的“相片”与以前的数据表“相片”进行比较,如果不一致将通过一定的方法传到数据仓库,从而实现数据的一致性,此种方式适合于更新频率较低的数据表。
每TPS代价值是用于衡量系统**性价**比的指标。(性能价格)
DFD方法由四种基本元素构成:数据流、数据处理、数据存储和外部项。
(*)UML中的**活动图的主要作用是陈述活动与活动之间流程控制的转移,其作用类似于流程图,然而与流程图不同的是其支持并行行为**。
(*)设有学生表(学号、姓名、所在系)和选课表(学号、课程号、成绩),现要使用开窗函数查询每个学生的姓名、所在系及选课门数(不包括没选课的学生)。请补全下列语句:
SELECT DISTINCT 姓名,所在系,COUNT(*) OVER (PARTITION BY T1.学号) OVER (PARTITION BY T2.学号) AS 选课门数 FROM 学生表 T1 JOIN 选课表 T2 ON T1.学号=T2.学号。
开窗函数公式:函数名(列) OVER(选项)。OVER关键字表示把函数当成开窗函数而不是聚合函数。SQL Server 2005/2008 支持两种开窗函数,分别为:排名开窗函数和聚合开窗函数。聚合开窗函数只能使用PARTITION BY 子句不带任何语句,ORDER BY 不能与聚合开窗函数一同使用。很多聚合函数都可以用作开窗函数的运算,如SUN、AVG、MAX、MIN和COUNT。
开窗函数简介:与聚合函数一样,开窗函数也是对行集组进行聚合计算,但是它不像普通聚合函数那样每组只返回一个值,开窗函数可以为每组返回多个值,因为开窗函数所执行聚合计
算的行集组是窗口。在 ISO SQL 规定了这样的函数为开窗函数,在 Oracle 中则被称为分析函数。
新增汇总表的调优方法是一种以空间换时间的调优方法。
(*)分布式数据库中,混合分片是水平分片、垂直分片和导出分片的混合。
分布式数据库分片类型有如下几种:
- 水平分片:按一定的条件把全局关系的所有元组划分成若干不相交的子集,每个子集都是关系的一个片段。
- 垂直分片:把一个全局关系的属性集分成若干个子集,并在这些子集上作投影运算,每个投影称为垂直分片。
- 导出分片:又称为导出水平分片,即水平分片的条件不是本关系属性的条件,而是其他关系属性的条件。
- 混合分片:以上三种方法的混合。可以先水平分片在垂直分片,或先垂直分片再水平分片,或其他形式的分片,但他们的结果是不相同的。
(*)在T-SQL中,提取cur1游标中相对于当前行向下第5行数据的语句是 FETCH relative 5 FROM cur1…
其他可选参数:
NEXT:返回紧跟当前行之后的数据行,并且当前行递增为结果行。
PRIOR:返回紧跟当前行之前的数据行,并且当前行递减为结果行。
FIRST:返回游标中的第一行并将其作为当前行。
LAST:返回游标中的最后一行并将其作为当前行。
ABSOLUTE {n|@nvar}:如果n或@nvar为正数,则返回从游标第一行开始向后的第n行,并将返回行变成新的当前行。如果n或@nvar为负数,则返回从游标第一行开始之前的第n行,并将返回行变成新的当前行。如果n或@nvar为0则不返回任何结果。n必须是正数常量,并且@nvar的数据类型必须为smallint、tinyint或int。
RELATIVE {n|@nvar}:和absolute类似 不过relative是以当前行为起点。如果n或@nvar为0,则返回当前行。在对游标进行第一次提取时,如果在将n或@nvar设置为负数或0的情况下指定FETCH RELATIVE,则不返回任何行。
(*)数据挖掘方法中,**关联规则**挖掘就是用于发现数据库中数据间的关联性的。
其他挖掘方法还有:分类、回归分析、聚类、关联规则、特征、变化和偏差分析、Web页挖掘
顺序图强调的是时间,通信图强调的是空间。
状态图中只能有一个起始状态,可以有多个结束状态。
类图(静态结构)、顺序图、通信图(动态结构)都属于系统结构图。
用例模型由 用例、角色、系统3个部分组成。
用例之间存在的关系包括:扩展、使用和组合三种关系。
UML2.0提供了13种不同的图,分为两类:
结构图:类图、对象图、复合结构图、包图、组件图、部署图
行为图:用例图、交互图(顺序图、通信图、交互概述图、时间图)、状态图和活动图
修改数据大小的语法是:ALTER DATABASE 数据库名 MODIFY FILE(NAME=数据库文件名,SIZE=文件容量)
其中文件容量必须大于原有容量。
定义架构的语法格式:create schema 架构名 authorization 用户名
SQL Server实例的作业信息存储在msdb数据库中。
创建分区方案时指定的文件组数不得少于(不一定要相等)分区函数生成的分区数。
如果未在声明游标时指定scroll,则**NEXT**是唯一支持的提取选项。
在视图上不能定义After型触发器。
创建登录账户:
create login username with password=passwordchar
数据库重组:
按照系统设计要求对数据库存储空间进行全面调整,如:
- 调整磁盘分区方法和存储空间
- 重新安排数据的存储
- 整理回收碎块等
数据库应用系统投入运行标志着系统开发任务的基本完成和系统运行维护工作的开始。
数据库运行维护工作包括:
- 数据库的转储和恢复;
- 数据库的安全性和完整性控制;
- 数据库性能的监控分析和改进;
- 数据库的重组和重构。
数据库差量备份:
backup database students TO MyBK_1 with differential,noinit --differential 表示差异备份 noinit表示 合并 不初始化
分布式数据库最基本的特征是:
本地自治、非集中式管理、高可用性
分布式数据库是物理上分散、逻辑上集中的数据库系统。
SaaS指 软件即服务(Software as a Service)
VB 6.0中的数据绑定控件必须具有DataSource属性
VB 6.0中,ADO数据控件用于连接数据源的属性是ConnectionString
一个完整的事务概要设计包括:
- 事务用户
- 事务处理逻辑
- 事务名称
- 事务所访问的关系表及关系属性
在数据库三级模式结构中,对数据库中全部的数据逻辑结构和特征进行描述的是 模式。
在分类预测任务重,需要用到的数据一般包括训练集、测试集和验证集。
在数据库概要设计阶段,使用read和write原语来表达存取操作。
云计算通过集中所有的硬件计算资源,采用硬件**虚拟技术**,为使用者提供强大的计算能力、存储和带宽等资源。
创建视图:
create view 视图名 as select name,age,sex from student; go --调用视图 select * from 视图名;
创建索引:
create index 索引名 on 表名(列); --普通索引 create unique clustered index 索引名 on 表名(列); --唯一聚集索引 create unique nonclustered index 索引名 on 表名(列); --唯一非聚集索引 create index 索引名 on 表名(列1,列2); --复合索引 create index 索引名 on 表名(列 desc); --普通索引 按列 降序
存储过程:
普通:
create procedure 存储过程名 (@name varchar(10),@age int) As select * from student where name=@name and age=@age go exec 存储过程名 '范XX',20;
带输入输出参数:
create procedure 存储过程名 ( @id int, --默认输入 @name varchar(10) out, --输出参数 @age int output --输入输出参数 ) as select @name=name,@age=age from student where id=@id and age=@age; --根据id和年龄查询 并 返回 姓名和年龄 go --调用存储过程 declare @id int,@name varchar(10),@age int; --定义变量 --给输入参数赋值 set @id=1; set @age=20; --调用存储 exec 存储过程名 @id,@name out,@age output; --查看返回的值 select @name,@age;
标量函数:
create function 函数名 (@id int) returns varchar(10) --定义返回值类型 as begin declare @name varchar(10); select @name=name from student where id=@id; --给@name 变量赋值 return @name --返回@name变量 end --调用 select dbo.函数名(1)
(*)多语句表值函数
create function 函数名(@id int) returns @表变量名 table ( name varchar(10), age int, sex varchar(4) ) --定义返回值表结构 as begin insert into @表变量名(name,age,sex) select name,age,sex from student where id=@id --给返回表赋值 return end --分割线-- --调用 select name,age,sex from dbo.函数名(22)
内嵌表值函数
create function 函数名(@id int) returns table --返回值是一个表 as return select name,age,sex from student where id=@id --分割线-- go --调用 select * from 函数名(10)
分区函数、分区方案和分区表
--分区函数 create partition function RangePF(int) as Range Left For Values(100,200,300) --根据上面的分区函数创建分区方案 create partition scheme RangePS as partition RangePF to(fg1,fg2,fg3,fg4) --四个文件组 --根据上面的分区方案创建分区表 create table myTable( Gid int identity(1,1) primary key, GoodName varchar(40), Price float ) on RangePS(Gid) --结束
嘿嘿