计算机数据库三级刷题总结

  1. 阶段逻辑设计阶段三部分:人物逻辑结构设计,数据库事务概要设计,应用程序概要设计。
  2. 数据库概念设计:系统总体框架设计
  3. 数据库概念设计过程中,每个实体集需要有唯一的名字,实=实体集一般用名词或名词短语命名。
  4. 物理结构设计目标:空间利用率高,较高访问效率,较低维护成本
  5. 物理结构设计评估:时间,空间,维护代价(多种方案)
  6. 事务和用户长时间交互坏处:降低系统的并发度,增加死锁数量,破坏检查点效果。
  7. 数据的一致性:数据保持一致,在分布式系统中,可以理解为多节点中的数据是否保持一致,关联数据之间的逻辑关系是否正确和完整。
  8. 事务是对系统进行的一组操作,为保持完整性,具有ACID四个特性:
  1. 原子性
  2. 一致性
  3. 隔离性
  4. 持久性
  1. 数据库设计的顺序:

需求分析→概念结构设计→逻辑结构设计→物理结构设计→实施阶段→运行维护

  1. 需求分析:需求调查;分析、整理和表达这些需求的信息,形成需求说明书(例如:DFD数据流图和DD数据字典等。
  2. 概念结构设计:将需求分析得到的用户数据抽象为信息结构(概念模型)的过程。目前最普遍是实体关系(E—R)模型。
  3. 逻辑结构设计:讲概念结构转化为特定的DBMS所支持的数据模型的过程。步骤:①将概念模型转化为一般的关系,网状、层次模型;②讲转化来的关系,网状、层次模型想特定的DBMS支持下的数据模型进行转化;③讲数据模型进行优化。
  4. 物理结构的设计:为一个特定的数据模型选取一个最适合的应用要求的物理结构的过程。
  5. 实施:①建立实际的数据库结构。用DDL定义数据库:定义基本表、索引、约束、视图等。②装入数据。组织数据入库,组织数据入库是数据库实施阶段最主要的工作。③编制和调试数据应用程序。
  6. 运行维护:①试运行:应用程序调试完成,并且有一小部分数据入库,对数据库进行联合调试。②数据库运行阶段是由数据库管理员对数据库进行管理与维护,包括数据库的转储和恢复与数据的安全性完整性控制。
  1. 数据库的三级模式结构和二层映像功能提供了逻辑独立性和物理独立性。
  1. 三级模式结构:外模式→用户(数据库操纵语言DML)(用户观),概念模式→数据模式描述语言DDL(整体观)、内模式→存储方式和物理结构(存储观)。
  2. 二层映像:为了实现用户和数据之间的透明化,数据库管理系统提供了二级映像,外模式/模式映像和模式/内模式映像。

1)外模式/模式映像(逻辑独立性)

数据库的每一个外模式都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系,外模式/模式一般在外模式中描述。

如果对某个字段重新修改关系,类型等,那么只需要对外模式/模式映像做对应的修改,使外模式尽量保持不变,而应用程序一般是依据外模式编写的,因此应用程序也不用修改,从而保证了数据与程序的逻辑独立性。这也就是数据的逻辑独立性。

2)模式/内模式映像(物理独立性

模式/内模式映像是唯一的,因为数据库总只有一个模式和一个内模式,它存在于模式和内模式之间。由于两级模式之间数据结构可能不一致,甚至差别很大。模式/内模式定义了模式和内模式之间的对应关系,即数据全局逻辑结构和存储结构之间的对应关系。

不同的应用程序有时可以公用一个外模式,数据库的二级映像保证了数据库外模式的稳定性,从而从底层保证了应用程序之间的稳定性,除非需求本身发生变化,否则应用程序不需要修改。

应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序。它提供了访问商业逻辑的途径以供客户端应用程序使用。应用服务器使用此商业逻辑就像调用对象的一个方法一样。

  1. 应用服务器和WEB服务器的区别

通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑(business logic)

Web型

Web服务器(Web Server)可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应 (response),例如送回一个HTML页面。为了处理一个请求(request)Web服务器可以响应(response)一个静态页面或图片, 进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP(JavaServer Pages)脚本,servlets,ASP(Active Server Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(译者 注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。

企业WEB服务器是面向企业网络用户的信息交流平台,WEB在企业生产管理过程中的应用越来越多,是信息化应用的入口,一些应用系统都集成在WEB服务器上。要知道,Web服务器的代理模型(delegation model)非常简单。当一个请求(request)被送到Web服务器里来时,它只单纯的把请求(request)传递给可以很好的处理请求 (request)的程序(译者注:服务器端脚本)Web服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的) (response)的环境,而不会超出职能范围。服务器端(server-side)程序通常具有事务处理(transaction processing),数据库连接(database connectivity)和消息(messaging)等功能。 [2] 

虽然Web 服务器不支持事务处理或数据库连接池,但它可以配置(employ)各种策略(strategies)来实现容错性(fault tolerance)和可扩展性(scalability),例如负载平衡(load balancing),缓冲(caching)。集群特征(clustering-features)经常被误认为仅仅是应用程序服务器专有的特征。 [3] 

应用程序型

应用程序服务器(The Application Server)

根据定义,作为应用程序服务器,它通过各种协议,可以包括HTTP,把商业逻辑暴露给(expose)客户端应用程序。Web服务器主要是处理向 浏览器发送HTML以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就像你调用对象的一个方法(或过程 语言中的一个函数)一样。

应用程序服务器的客户端(包含有图形用户界面(GUI))可能会运行在一台PC、一个Web服务器或者甚至 是其它的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭(traveling)的信息不仅仅局限于简单的显示标记。相反,这种信息就是程序逻 (program logic) 正是由于这种逻辑取得了(takes)数据和方法调用(calls)的形式而不是静态HTML,所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。

在大多数情形下,应用程序服务器是通过组件(component)的应用程序接口(API)把商业逻辑暴露(expose)(给客户端应用程序)的,例 如基于J2EE(Java 2 Platform, Enterprise Edition)应用程序服务器的EJB(Enterprise JavaBean)组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作(gate-keeping duties)包括安全(security),事务处理(transaction processing),资源池(resource pooling) 和消息(messaging)。就象Web服务器一样,应用程序服务器配置了多种可扩展(scalability)和容错(fault tolerance)技术。

  1. 数据库应用系统从功能的角度可以划分为四层,分别是表示层、业务逻辑层、数据访问层和数据持久层。

①表示层:用于显示数据和接受用户输入的数据。(一般为Windows应用程序或Web应用程序)。

②业务逻辑层:是表示层和数据访问层之间的桥梁,主要负责数据的传递和处理。

③数据访问层:实现对数据的保存和读取操作。可以访问关系数据库、文本文件或XML文档等。

④数据持久层:以程序为媒介把表现层或服务层的数据持久化,它位于物理层和数据访问层之间。

  1. 需求分析主要包括数据需求分析、数据处理需求分析、功能需求分析(数据处理需求分析与业务规则需求分析)、性能需求分析和其它需求分析。

①数据处理需求分析:从对数据组织与存储的设计角度,辨识应用领域所管理的各类数据项和数据结构,与数据处理需求分析结果--起,组成数据字典,形成”数据规范说明书”。

②功能需求分析:功能需求分析主要针对DBAS应具有的功能进行分析,是DBAS需求分析的核心环节,总体上可分为数据处理需求分析与业务规则需求分析。数据处理需求分析从数据访问和处理的角度,明确对各数据项所需要进行的数据访问操作。在系统规划与分析阶段,DBAS开发者已经明确了各类用户视图。因此数据处理需求分析阶段可以从这些视图出发,针对每个用户视图进行数据处理需求分析,然后汇总各个视图的分析结果得到对系统的完整分析结果。

③性能需求分析:性能需求则描述了系统应当做到什么程度,分析DBAS应具有的性能指标。

④其他需求分析包括:存储需求、安全性需求等。

a.存储需求分析:存储需求分析是指估计DBAS系统需要的数据存储量,如DB所存储的数据总量。

b.安全需求分析:主要用于数据库安全设计,避免被非法使用和攻击。

  1. 双机热备是属于数据库恢复技术内容,当介质被破坏后能够保证数据的完整性。

  1. 使用索引的原则:

①在需要经常搜索的列上创建索引。

②主键上创建索引。

③经常用于连接的列上创建索引。

④经常需要根据范围进行搜索的列上创建索引。

⑤经常需要排序的列上创建索引。

⑥在where查询子句中引用效率高的列上创建索引。

⑦在Order By子句、Group By子句中出现的列上建立索引。

  1. 散列文件是指利用散列存储方式组织的文件,亦称为直接存取文件。散列文件的优点是:文件随机存放,记录不需进行排序;插入、删除方便;

存取速度快;不需要索引区,节省存储空间。其缺点是:不能进行顺序存取,只能按关键字随机存取,且询问方式只限于简单询问,并且在经过多次插入、删除后,也可能造成文件结构不合理,需要重新组织文件。

如果数据库中的一个基本表的数据量很少,并且插入、删除、更新等操作非常频繁,该基本表可以采用堆文件组织形式。因为堆文件无需建立索引,维护代价非常低。虽然堆文件的数据访问效率较低,但在数据量很少时,定位文件记录的时间非常短。

顺序文件指的是文件信息存放在若干连续的物理块中。其优点是简单,支持顺序存取和随机存取,顺序存取速度相对较快。缺点是文件不能动态增长,不利于文件插入和删除。如果用户的查询条件定义在查找码上,则顺序文件是比较适合的文件结构。

聚集文件将不同关系表中有关联关系的记录存储在一.起。如果某些重要而频繁的用户查询经常需要进行多表连接操作,可以考虑聚集文件,来改善查询效率。

  1. 事务是并发控制的基本单位,保证事务ACID特性是处理事务的重要任务,而事务ACID特性可能遭到破坏的原因之一就是 多个事务对数据库的并发操作造成的。在数据库应用系统中,可以通过以下几个原则来预防死锁:

①各个事务应顺序访问共享资源,将复杂的、大的事务分解成多个简单、小的事务;②按同一顺序访问对象;③事务隔离性级别;④使用绑定连接;⑤灵活使用显示加锁技术等。

  1. 顺序图是用来描述对象自身及对象间信息传递顺序的视图。活动图主要用于描述系统、用例和程序模块中逻辑流程的先后执行次序、并行次序。
  2. 前触发型触发器是在引发该触发器执行的操作语句执行之前激活的触发器,而后触发器就是在语句执行之后激活的触发器。根据触发器的特点可
  3. 每个数据库有且仅有一一个主要数据文件,可以有多个次要数据文件。每个数据库必须至少有-一个日志文件, 也可以有多个日志文件。日志文件不包括在文件组内。一个文件不可以是多个文件组的成员。
  4. 数据库强制存取控制方法的规则是:①仅当主体的许可证级别大于或等于客体的密级时,主体才能读取相应的客体;②仅当主体的许可证级别等于客体的密级时,主体才能写相应的客体。
  5. 数据库的重组并不修改原设计的逻辑和物理结构,而数据库的重构则要部分的修改数据库的模式和内模式。
  6. ①在多属性索引中,索引属性的顺序是按照其区分度进行排序。②散列索引根据HASH算法构建索引,所以检索速度很快,但不能用于范围查询。
  7. 分布式数据库中,传输的代价是: I/0代价+CPU代价+通信 代价。分布式数据库中查询优化的首要目标是:使查询执行时通信代价最省。
  8. 主-备方式(Active- Standby方式)即指的是一台 服务器处于某种业务的激活状态(即Active状态),另一台 服务器处于该业务的备用状态(即Standby状态)。该方式的特点是当Active状态服务器出现故障的时候,通过软件诊断将Standby机器激活,保证系统在最短时间内恢复正常使用。双主机方式(Active-Active方式)即指两种不同业务分别在两台服务器上互为主备状态(即Active-Standby和Standby-Active状态),优点是两台服务器切换速度快,数据库连接不中断,应用不受影响。
  9. SQL Server 2008 支持三种恢复模式,即简单恢复模式、完整恢复模式和大容量日志恢复模式。

简单恢复:无日志备份。自动回收日志空间以减少空间需求,实际上不再需要管理事务日志空间。 最新备份之后的更改不受保护。在发生灾难时,这些更改必须重做。 只能恢复到备份的结尾。

完整恢复:需要日志备份。数据文件丢失或损坏不会导致丢失工作。可以恢复到任意时点(例如应用程序或用户错误之前)。

大容量日志恢复:需要日志备份。是完整恢复模式的附加模式,允许执行高性能的大容量复制操作。通过使用最小方式记录大多数大容量操作,减少日志空间使用量。如果在最新日志备份后发生日志损坏或执行大容量日志记录操作,则必须重做自该上次备份之后所做的更改。否则不丢失任何工作。可以恢复到任何备份的结尾。不支持时点恢复其中,如果符合下列任一要求,则使用完整恢复模式:您必须能够恢复所有数据;数据库包含多个文件组,并且您希望逐段还原读/写辅助文件组(以及可选地还原只读文件组) ;您必须能够恢复到故障点; 您希望可以还原单个页;您愿意承担事务日志备份的管理开销。

  1. SQLServer支持对数据库中的一个数据文件进行还原的操作,在还原过程中数据库自动处于脱机状态,其它的都将文件不能进行读写操作。
  2. 局部数据模型透明性指用户或应用程序要了解分片及各片段存储的场地,但不必了解场地上使用的是何种数据模型。
  3. 系统规划与定义的内容包括:任务陈述、确定任务目标、确定系统范围和边界、确定用户视图。
  4. 数据库应用系统实现与部署内容包括:①建立数据库结构;②数据加载;③事务和应用程序的编码及测试;④系统集成、测试与试运行;⑤系统部署。
  5. IDEF0是活动模型的缩写,来源于结构化分析与设计技术的一套标准,这些标准包含多种层次的图形语言,其中IDEFO用来描述对于企业具有重要性的各个过程(活动)。以图形方式:

输入(Input):实行或完成特定活动所需的资源,置于框图的左侧 

输出(Output):经由活动处理或修正后的产出,置于框图的右侧 

控制(Control):活动所需的条件限制,置于框图的上方 

机制(Mechanisms):完成活动所需的工具,包括人员、设施及装备,置于框图的下方

  1. 事务概要设计内容包括:事务名称、事务所访问的关系表及关系属性、事务处理逻辑、事务用户(指使用、启动、调用该事务的软件模块或系统)。
  2. 活锁(liveLock),指线程间资源冲突激烈,引起线程不断的尝试获取资源,不断的失败。活锁有点类似于线程饥饿,虽然资源并没有被别人持有,但由于各种原因而无法得到。最常见的原因是进程组的执行顺序不合理,导致某些先需要的资源被后置。活锁和死锁的不同在于,活锁的状态是变化的,只是无法达到目的。活锁有可能在一定时间后自动解开,但死锁不能。
  3. 存储过程可以接受多个输入参数,也可以接受多个输出参数。
  4. 唯一索引的作用是保证索引键值的不重复。在多列唯一索引的情况下, 可以确保索引列中每个值的组合都是唯一-的。唯一索引和非聚集索引之间没有限定关系。
  5. 0racle的安全控制机制可分为数据库级的安全控制、表级、行级和列级的安全控制。数据库级的安全性通过用户身份认证和授予用户相应系统权限来保证,而表级、行级、列级的安全性是通过授予或回收对象特权保证的。0racle数据库中的用户按其操作权限大小可分DBA用户和普通用户。
  6. 数据库系统运行需要依赖服务器、操作系统、存储、网络等多种因素。单纯地增加数据库CPU数量并不一定会提高数据库查询速度。RAID1提高了读速度,加强了系统的可靠性,但是磁盘的利用率低,冗余度高,写的速度并未提高。数据库管理员进行优化时需要对数据库系统有深入了解,对业务系统也要深入了解。
  7. 反规范化是将规范化的关系转换为非规范化的关系的过程。 常用的反规范化方法有增加派生冗余列、增加冗余列、重新分组、分割表和新增汇总表等。增加冗余列的目的就是避免查询时的连接操作。

派生性冗余列是指表中增加的列由表中-些数据项经过计算生成,它的作用是在查询时减少连接操作,避免使用聚合函数,以牺牲空间来换取减少查询时间的目的。该方法可以减少数据库连接操作带来的资源消耗,而不是分组。

  1. 静态转储可以保证数据的有效性,但是却降低数据库的可用性动态转储可以提高数据库的可用性,但数据的有效性得不到保证。为了保证数据的一致性,需使用日志文件和动态转储结合使用。在制定备份策略时,需要考虑备份空间、时间等因素。完全转储是对数据库中所有数据进行转储,此种方式占用较多的时间和空间。差量转储是对最近一次数据库完全转储以来发生的数据库变化进行转储。差量转储和完全转储相比速度快,占用空间小;差量转储和增量转储相比速度慢、占用空间多,但是恢复速度快。增量转储只复制上次转储后发生变化的文件或数据块。增量转储所需的时间和空间都比较短,但增量转储数据只能和完全转储配合,才能对数据库进行恢复。增量转储的恢复时间比完全转储要长。
  2. 在SQL Server 2008系 统数据库中,只有tempdb数据库不需要备份,其他的都需要备份。Tempdb 只是一个临时数据库,每次SQL Server启动时都会重新新建tempdb数据库。
  3. 分布式数据库最基本特征是本地自治、非集中式管理以及高可用性。位置独立性、数据分片独立性和数据复制独立性形成了分布式数据库系统中的分布透明性。
  4. 共享磁盘结构所有的处理机拥有独立的内存,通过互联网共享磁盘。这种结构可以克服共享内存结构,但是由于是通过互联网实现处理器之间的信息交换,会产出一定的通信代价。
  5. 分类器的构造方法有统计方法、机器学习方法、神经网络方法等。统计方法包括贝叶斯法和非参数法;机器学习方法包括决策树法和规则归纳法;神经网络方法主要是BP算法。K-means属于聚类算法
  6. SQL server 中的四个排名函数:

RANK():返回结果集的分区内每行的排名。行的排名是相关行之前的排名数加一。RANK 函数并不总返回连续整数。(可以理解为并列第一和第三名的关系)

DENSE_RANK():返回结果集分区中行的排名,在排名中没有不论什么间断。行的排名等于所讨论行之前的全部排名数加一。DENSE_RANK 函数返回的数字没有间断,而且始终具有连续的排名。

ROW_NUMBER():回结果集分区内行的序列号,每一个分区的第一行从 1 開始。  ORDER BY 子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序。

NTILE():将有序分区中的行分发到指定数目的组中。各个组有编号,编号从一开始。对于每个行,NTILE 将返回此行所属的组的编号。

示例:一个查询中包含”select qty(数量)……”     

--结果:

  --ROW_NUMBER()是按qty由小到大逐一排名。不并列,排名连续

  --RANK()是按qty由小到大逐一排名,并列,排名不连续

  --DENSE_RANK()是按qty由小到大逐一排名,并列。排名连续

  --NTILE()是按qty由小到大分成3组逐一排名,并列,排名连续

45、将经常一起使用的具有公共列值的多个表中的数据行存储在一起 的数据库存储方法被称为聚集。

46、如果数据文件中的每个查找码值在索引文件中都对应一一个索引记录,则称该索引为稠密索引。

47、索引的知识

索引技术是一种快速数据访问技术,它将一个文件的每 个记录在某个或某些领域(或称为属性)上 的取值与该记录的物理地址直接联系起来,提供了一种根据记录域的取值 快速访问文件记录的机制。索引的使用要恰到好处,其使用原则一般如下:

①经常在查询中作为条件被使用的列,应为其建立索引; .

②频繁进行排序或分组(即进行group by或order by操作)的列,应为其建立索引;

③一个列的值域很大时,应为其建立索引;

④如果待排序的列由多个,应在这些列上建立复合索引。

48、RAID1磁盘阵列的特点

RAID1磁盘阵列级,是一种镜像磁盘阵列,其原理就是将一块硬盘的数据以相同位置指向另一块硬盘的位置。RAID1又称为Mirror或Mirroring,它的宗旨是最大限度地保证用户数据的可用性和可修复性。RAID1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。由于对存储的数据进行百分之百的备份,在所有RAID级别中, RAID1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一伴,因而,Mirror的磁盘空间利用率低,存储成本高。Mirror虽不能提高存储性能,但由于其具有的高数据安全性, 使其尤其适用于存放重要数据,如服务器和数据库存储等领域。

RAID1提高了读速度,加强了系统可靠性。但其磁盘的利用率低,冗余度为50%,同时写速度并未提高。RAID1经常要求保证用户数据的可用性和可修复性场所,体现系统的可靠性,而不是读写速度。

RAID1是将一个两块硬盘所构成RAID磁盘阵列,其容量仅等于-块硬盘的容量 ,因为另一块只是当作数据 “镜像”。RAID1磁盘阵列显然是最可靠的一种阵列,因为它总是保持一份完整的数据备份。它的性能自然没有RAID0磁盘阵列那样好,但其数据读取确实较单一硬盘来的快, 因为数据会从两块硬盘中较快的一块中读出。RAID1磁盘阵列的写入速度通常较慢,因为数据得分别写入两块硬盘中并做比较。RAID1磁盘阵列一般支持“热交换”,就是说阵列中硬盘的移除或替换可以在系统运行时进行,无须中断退出系统。RAID1磁盘阵列是十分安全的,不过也是较贵一种RAID磁盘阵列解决方案,因为两块硬盘仅能提供一块硬盘的容量。 RAID1磁盘阵列主要用在数据安全性很高,且要求能够快速恢复被破坏的数据的场合。

49、

QPS的定义

Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

TPS的定义

TPS是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。

一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。

客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

  50、在DFD(数据流图)中,数据流用箭头表示,处理矩形框表示,数据存储圆角矩形框表示,外部项圆角框或者平行四边形框表示。

51、从功能角度可以将数据库应用系统划分为4个层次即表示层、业务逻辑层、数据访问层、数据持久层。

其中表示层概要设计的主要任务是进行人机界面设计业务逻层概要设计的主要任务是梳理DBAS的各项业务活动,将其表示为各种系统架构数据访问层概要设计的主要任务就是针对DBAS的数据处理需求设计用于操作数据库的各类事务数据持久层概要设计的主要任务进行应用系统的存储结构设计

52、当对数据的操作只涉及一部分数据而不是所有数据时,就可以考虑建立分区表。

53、增加冗余列是指在多个表中增加具有相同语义的列,它常用来在查询时避免连接操作,提高查询效率。

54、汇总过程可能需要同时对大批量数据进行实时访问,同时对数据进行加和、取平均操作,这些操作占用数据库服务器CPU大、持续时间长。为了降低这些操作时间,可以根据统计操作的使用情况,将频繁使用的统计操作的中间结果保存汇总表中,当用户发出汇总请求时,即可直接从汇总表中获取数据,降低了数据访问量以及汇总操作的CPU计算量。

55、顺序文件支持基于查找码的顺序访问,也支持快速的二分查找。如果用户的查询条件定义在查找码上,则顺序文件是比较适合的文件结构。

56、用户在多个列上建立索引,这种索引叫做复合索引(组合索引)。复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引。当表的行数远远大于索引键的数目时,使用这种方式可以明显加快表的查询速度。对于复合索引: (1) 对一张表来说, 如果有一个复合索引就没有必要同时建立一个单索引;(2) 如果查询条件需要,可以在已有单索引的情况下,添加复合索引对于效率有一定的提高; (3) 对于复合索引,在查询使用时,最好将WHERB条件顺序作为索引列的顺序,这样效率最高

57、在数据文件的主码属性集上建立的索引称为主索引。unique表示为表建立唯一索引;clustered表示为表创建聚集索引。

58、顺序图:对象间的通信用对象生命线之间的水平消息线表示,箭头说明消息的类型,如同步、异步或简单。顺序图可以表示递归过程,当一个操作调用它本身时,消息总是同步的。在顺序图中可以描述如何创建和销毁对象,创建或销毁一个对象的消息一般是同步的。顺序图中的消息可以有条件,并规定只有条件为真时才可以发送和接收消息,如果条件之间不互相排斥,则消息可能会并行发出。

59、触发器:DDL触发器、DML触发器和LOGON触发器。

1.DML触发器

数据库操纵语言(DML)主要包含INSERT、UPDATEDELETE等语句。这些语句作用于数据表或视图的时候,将产生相应的事件一DML 事件。此类事件一旦发生可引起相关触发器的执行,因此这类事件通常称为DML事件,相应的触发器称为DML触发器。也可以这样理解,DML触发器是在运行DML语句时由于产生DML事件而被执行的一类触发器。

根据触发器的执行与触发事件发生的先后关系,又可以将DML触发器分为AFTER

触发器和INSTEADOF触发器。

(1) AFTER触发器:在DML触发事件发生后才激发执行的触发器,也就是说,先执行INSERT、UPDATEDELETE语句然后才执行AFTER触发器。这类触发器只适用于数据表,不适用于视图。AFTER触发器一般用于检查数据的变动情况,以便采取相应的措施。例如,如发现错误,将拒绝或回滚更改的数据。

(2) INSTEADOF触发器:“INSTEAD OF”的中文意思就是“代替”,由此不难理解,INSTEADOF触发器是在DML触发事件发生之前(即数据被更新之前)执行的。这种执行将代替DML语句的执行。也就是说,INSTEAD OF触发器是在DML触发事件发生之前执行,并且取代相应的DML语句(INSERT、UPDATE或DELETE语句),转而去执行INSTEAD OF触发器定义的操作(此后不再执行此DML语句)。INSTEAD OF触发器既适用于数据表,也适用于视图。但对同一个操作只能定义一个INSTEAD OF触发器。

如果根据触发事件的类型划分,DML触发器通常又可以分为INSERT触发器、UPDATE触发器和DELETE触发器

(1) INSERT触发器:执行INSERT语句而激发执行的触发器。

(2) UPDATE触发器:执行UPDATE语句而激发执行的触发器。

(3) DELETE触发器:执行DELETE语句而激发执行的触发器。

2.DDL触发器

DDL触发器是一种由执行DDL语句产生触发事件而触发执行的触发器。DDL 语句包括CREATE、 ALTER、DROP GRANT、 DENY、REVOKE和UPDATE 、STATISTICS等。与DML触发器不同的是,DDL触发器的触发事件是执行DDL语句而引起的事件,这种触发器是在触发事件发生后执行的:而DML.触发器的触发事件则是由执行DML语句引起的,可在事件发生前或发生后执行。另外.DDL 触发器的作用域不是架构,因而不能使用OBIECT ID来查询有关DDL触发器的元数据。DDL触发器可用于执行数据库级的管理任务,如审核和规范数据库操作等。

DML触发器的(触发事件类型比较简单,主要包括INSERT.DELETE和UPDATE三种事件。

3. LOGON触发器(登录触发器)

登录触发器是SQLServer2005开始新增加的一类为响应LOGON事件(登录)而激发执行的触发器。也就是说,只要有用户登录, 登录触发器即可激发执行。因此,通过登录触发器可以知道谁登录了服务器以及何时登录的,并可以实现如何跟踪用户的活动,还可以限制特定用户只能在特定时间段登录等。

触发事件对触发器来说是关键的,所以许多时候又用引发触发事件的SQL语句来对触发器进行分类和命名。例如,INSERT触发器、DELETE触发器、UPDATE触发器等。

60、在删除架构时,如果使用CASCADE选项,则会将该架构中的所有架构对象一起全部删除;如果使用RESTRICT选项,如果被删除的架构中包含架构对象,则拒绝删除此架构

61、添加数据库文件的格式语法:

62、SQL Server 2008安装完成后,系统会自动安装5个系统数据库,分别是master、msdb、 model 、tempdb和Resource。master数据库记录了所有其他数据库的数据库文件的物理存储位置,SQLServer实例的作业信息存储在msdb数据库中,Resource数据库是个只读数据库,包含了SQL Server中的所有系统对象。

63、在强制存取控制中,主体对客体的存取必须遵循如下规则:仅当主体的许可证级别不低于客体的密级时,该主体才能读取相应的客体;仅当主体的许可证级别不高于客体的密级时,该主体才能相应的客体。

64、当采用RAID等多磁盘存储系统时,可以将基本表和建立在表上的索引分别放在不同的磁盘上,这样在访问基本表时,存放数据和存放索引的磁盘驱动器并行工作,可以得到较快的文件读写速度。

65、全局数据库管理系统是分布式数据库管理系统的核心,它为终端用户提供分布透明性,协调全局事务在各个场地的执行,为全局应用提供支持。局部数据库管理系统负责创建和管理局部数据库,提供场地自治能力,执行全局应用以及全局查询的子查询。

66、范围划分有利于范围查询及点查询;轮转法最适合于扫描整个关系的应用,在扫描时可以并行的从n个磁盘读取数据,负载均衡,充分发挥了并行性;散列划分适合于点查询。

67、建立数据仓库的主要目的在于根据决策需求对企业的数据采取适当的手段进行集成,形成一个综合的、面向分析的数据环境,用于支持企业的信息性、决策性的分析应用。

68、在使用TOP限定结果集中,WITH TIES表示包括最后一行取值并列的结果; TOP n表示取查询结果的前n行数据; TOP n percent表示取查询结果的前n%行数据。

69、将查询语句产生的结果集指定一个临时命名的名字,这些命名的结果集就称为公用表表达式。命名后的公用表表达式可以被多次引用。其语法格式是: WITH 公用表表达式标识符(列表.....列表) AS (SELECT语句)。

70、交(intersect)并(union)差(except);

71、删除函数:DROP FUNCTION

72、在SQL Server 2008的触发器中,INSERTED表 用于存储INSERT和UPDATE语句所影响的行的副本。

73、在SQLServer2008中,用户自定义函数主要包括标量函数表值函数两类。

74、如果要使某用户可以将授予他的权限再转授给其他用户,那么在授权语句中需要加上WITH GRANT OPTION 选项。.

75、非预期的事务内部故障是不能由事务程序处理的,如运算溢出故障、并发事务死锁故障、违反了某些完整性限制而导致的故障等。反之为预期。

76、本地自治非集中式管理以及高可用性分布式数据库最基本的特征

77、给定一个销售交易数据库,从中找出这些交易中的某些物品和其他物品之间的关系,这种数据挖掘一般称为关联 (或关联分析、关联规则)挖掘。

78、DATEADD()函数:DATEADD()函数在日期中添加或减去指定的时间间隔,基本语法DATEADD( datepart, number, date),date 参数是合法的日期表达式;number 是希望添加的间隔数,对于未来的时间,此数是正数,对于过去的时间,此数是负数

79、内存的增加可以从一定程度上提高数据处理的效率。CPU主频提高,单位时间内处理的数据多一些。SLC的特点是成本高、容量小、速度快,而MLC的特点是容量大、成本低,但是速度慢。

80、网络带宽:网络带宽(Network Bandwidth)是指在单位时间(一般指的是1秒钟)内能传输的数据量。带宽,是“频带宽度”的简称,原是通讯和电子技术中的一个术语,指通讯线路或设备所能传送信号的范围。而网络中的带宽是指在规定时间内从一端流到另一端的信息量,即数据传输率

81、数据库物理设计包括:数据库逻辑模式描述、文件组织与存取设计、数据分布设计、确定系统配置、物理模式评估。

82、需求分析过程:需求分析过程包括标识问题、建立需求模型、描述需求、确认需求。其中DFD和IDEF0可用于建立需求模型;而IDEF2用于系统模拟,建立动态模型。

83、事务中为了降低死锁的发生,通常考虑以下法则:按同一顺序访问资源、避免事务中的用户交互、采用小事务模式,尽量缩短事务的长度,减少占有锁的时间、尽量使用记录级别的锁(行锁),少使用表级别的锁、使用绑定连接,使同一应用程序所打开的两个或多个连接可以相互合作。

84、COUNT (*)返回表的行数,它不会过滤null和重复的行。COUNT (表达式)会过滤掉null值,所以值null行不会加入到计数当中,但如果不在“表达式”前面加上distinct关键字,它将会过滤掉重复行。

85、触发器:使用FOR或者AFTER选项定义的触发器为后触发的触发器,即只有在引发触发器执行的语句中的操作都已成功执行,并且所有的约束检查也成功完成后,才执行触发器。使用INSTEAD 0F选项定义的触发器为前触发器。在这种模式的触发器中,指定执行触发器而不是执行引发触发器执行的SQL语句,从而替代引发的操作。

86、游标:NEXT关键字的作用是返回紧跟在当前行之后的数据行,并且当前行递增为结果行。如果FETCH NEXT是对游标的第一次提前操作,则返回结果集中的第一行。同理:prior关键字,返回行被设置为当前行。First关键字设置第一行为当前行,last关键字设置为最后一行设置为当前行。

87、SQL Server 2008数据库中主要数据文件大小最小不能小于3MB。

88、主文件组:主(PRIMARY) 文件组是系统定义好的一个文件组,它包含主要数据文件和任何没有明确分配给其他文件组的其他数据文件。系统表的所有页均分配在主文件组中。日志文件不包括在文件组内,日志文件和数据文件是分开管理的。数据库中只有一个主文件组, 但是可以有多个用户定义的文件组。

89、Guest 是SQL Server中的一个特殊的数据库用户,在实际中经常作为数据库的匿名访问者使用。sa是系统定义的一个数据库登录账户。一个登录账户可以映射为多个数据库中的用户。当登录账户成为数据库中的合法用户之后,该账户除了具有一些系统视图的查询权限之外,并不对数据库中的用户数据和对象具有任何操作权限。

90、差异备份关键字:WITH DIFFERENTIAL ,累计备份:WITH CUMULATIVE,

91、无共享结构被认为是支持并行数据库系统的最好并行结构,它通过最小化共享资源来降低资源竞争的概率,具有极高的可扩展性,并可在复杂数据库查询处理和联机事务处理过程中达到近线性的加速比,因此,无共享结构比较适合OLTP之类的应用。

92、XML数据库适合管理复杂数据结构的数据集,当数据本身具有层次特征时,由于XML数据格式能够清晰表达数据的层次特性,因此XML数据库便于对层次化的数据进行操作。

93、三层B/S结构系统结构将数据处理功能分解并分布在表示层、应用层和数据层三个层次上。表示层位于客户端,由Web浏览器实现;应用层位于Web应用服务器,实现面向具体应用领域的业务规则;数据层位于数据库服务器,通过DBMS完成具体的数据存储和数据存取等数据管理功能。

94、在分割表的调优方法中,水平分割会给应用增加复杂度,特别是在查询所有数据时需要union操作。垂直分割使得数据行变小,一个数据页就能存放更多的数据,在查询时就会减少I/0次数,从而提高系统性能,但其缺点是查询所有数据时需要Join (连接)操作。

95、db_ datawriter角色具有增、删、改、查所有用户表数据的权限;

db_ accessadmin角 色具有添加和删除数据库用户的权限;

db_ backupoperator角 色具有备份和恢复数据库的权限;

db_owner角色具有创建数据库对象的权限。

96、游标中ABSOLUTE { n| @nvar}参数意义为: 如果n或@nvar为正,返回从游标第一行开始的第 n行,并将返回行变成新的当前行。如果n或@nvar为负,则返回从游标最后-行开始之前的第n行,并将返回行变成新的当前行。如果n或@nvar 为0,则不返回行。n必须是整数常量,并且@nvar的数据类型必须为smallint、 tinyint 或int.

97、SQL Server固定数据库角色有:

db_ _owner :具有在数据库中进行全部操作的权限,包括配置、维护数据库及删除数据库。

db_ _accessadmin:具有添加或删除数据库用户的权限。

db_ securityadmin :具有管理数据库角色、角色成员以及数据库中的语句和对象的权限。

db_ ddladmin: 具有执行数据定 义语言(DDL)的权限。

db_ backupoperator:具有 备份数据库、备份日志的权限。

db_ datareader: 具有 查询数据库中所有用户数据的权限。

db_ datawriter:具有插入、删除和更新数据库中所有用户数据的权限。

db_ _denydatareader:不 允许具有查询数据库中所有用户数据的权限,等同于对所有的表和视图授予了DENY SELECT权限。

db_ denydatawriter :不允许具有INSERT、DELETE和UPDATE数据 库中所有用户数据的权限。

98、在T-SQL中恢复数据库使用RESTORE DATABASE语句,恢复事务日志使用RESTORE LOG语句。

99、局部数据模型透明性处于分配模式与局部概念模式之间,它使用户在编写应用程序时不但要了解全局数据的分片情况,还要了解各片段的副本复制情况及各片断和它们副本的场地位置分配情况,但是不需要了解各场地上数据库的数据模型。

100、分布式数据库的数据分配有:

集中式:所有数据片段都安排在一个场地上。

分割式:所有全局数据有且只有一份,它们被分割成若干片段,每个片段被分配在一个特定场地上。

全复制式:全局数据有多个副本,每个场地上都有一个完整的数据副本。

混合式:全局数据被分为若干个数据子集,每个子集被安排在一个或者多个不同的场地上,但是每个场地未必保存所有数据。

101、答疑:建立索引是加快查询速度的有效手段。在SQL语言中,建立索引使用CREATE INDEX语句, 一般格式为:

CREATE  [UNIQUE]  INDEX <索引名>

ON <表名> (<列名> [<次序>],<列名> [<次序>],) INCLUDE (属性名)WHERE 约束条件。

102、传统的索引如有序索引、树型索引都是建立在”比较”的基础上,即在结构中查找记录时需要进行一系列与关键字的比较。理想的情况是不希望经过任何比较,一次存取便能得到所查记录,则就必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中的唯一的存储位置相对应,因而在查找时,要根据这个对应关系f找到给定值K的像f(K)。若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上, 由此,不需要进行比较便可直接取得所查记录。这样的对应关系f称为hash函数, 这种方法叫hash索引。

103、在分布式数据库查询中,导致数据传输通信代价大的主要原因是各个站点分片间的连接操作;分布式数据库中的分布透明性包括分片透明性位置透明性局部数据模型透明性,其中分片透明性是最高层次的透明性;分布式数据库的目标是本地自治、非集中式管理、高可用性、位置独立性、 数据分片独立性等。

104、数据的水平分片是在关系中从行(元组)的角度依据一定条件划分为不同的片断,关系中的每一行必须至少属于一个片断,以便在需要时可以重构关系。

105、并行数据库常用的划分技术有轮转法、散列划分、范围划分。

轮转法:对关系顺序扫描,将第i个元组存储到标号为Dimod的磁盘上;该方式保证了元组在多个磁盘上均匀分布

散列划分:选定一个值域为{0, 1,.. n-1}的散列函数,对关系中的元组基于划分属性进行散列。如果散列函数返回i,则将其存储到第i个磁盘。

范围划分:该策略按照关系中某个属性的取值范围将数据文件划分为几部分,分别存放到磁盘上。

由此可见,轮转法最适合于扫描整个关系的应用,并在扫描时可以并行地从几个磁盘读取数据,负载平衡,充分发挥了并行性。

106、数据字典是对系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典在数据库设计中占有很重要的地位,通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。

107、数据模型通常由数据结构、数据操作和完整性约束三部分构成。数据的完整性约束是一组完整性规则,它是给定的数据模型中数据及其联系所有的制约和依存的规则,用以限定符合数据模型的数据库状态及状态的变化,以保证数据的正确、有效、相容。实体的完整性规定,主码的任何属性都不能为空,因为概念模型中实体和联系都是可区分的,而且它们以码为唯一性标识。如果主码的属性值可以为空,则意味着在概念模型中存在着不以码为唯一性标识的实体。

108、数据库主要角色以及权限:

109、死锁检测:周期性检查事务等待图。

110、redo和undo操作:系统故障造成数据库不一致状态的原因有两个,一是未完成的事务对数据库的更新可能己写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。对于故障发生前已提交的事务( 既有BEGIN Transaction,又有commit)做redo操作,对于故障发生时尚未完成的事务(只有BEGIN Transaction, 而没有commit或rol1back)做undo操作 。

101、对模式进行分解时,既要保证分解具有”无损连接性”,又要保证分解'保持函数依赖”。所谓”无损连接”指分解的若干连接重组时可以精确恢复到原来的数据表,数据记录既没有增加也没有减少。”保持函数依赖”是指原关系模式含有的属性之间的隐含关系在分解后不能丢失。

112、三层架构将更多的任务传给服务器端计算,所以增加了网络的通信量,其运行速度受制于网络,并不一定会提高。在适用Internet、维护工作等等方面,BIS比CIS强;在运行速度、数据安全、人机交互等方面,不如CIS。

113、SQL Server Agent 是一个任务规划器和警报管理器,在实际应用环境下,可以先将那些周期性的活动定义成一个任务,然后让其在SQL Server Agent 的帮助下自动运行。系统管理员可以利用SQL Server Agent 向自己通知某些警告信息,从而定位出现的问题以提高管理效率。SQL Server Agent 主要包括以下几个组件:作业、警报和操作。

114、仅具有登录权限的用户对SQL Server只能进行系统数据库中有关SQL Server的一些系统信息的查询,即只能对master、msdb数据 库部分数据进行查询。

115、DATEDIFF()函数可以返回两个日期之间的天数。DATEDIFF (datepart, star tdate, enddate), startdate 和enddate参数是合法的日期表达式。例如SQL 表达式: SELECT DATEDIFF (day, ' 2008-12-30' ,' 2008-12-29' ) AS DiffDate。

116、数据库的恢复顺序如下:①恢复最近的完全数据库备份;②恢复完全备份之后的最近的差异数据库备份;③按日志备份的先后顺序恢复自最近的完全或差异数据库备份之后的所有日志备份。

117、为了避免活锁的现象的发生,DBMS一般采用先来先服务(FIFS) 策略处理事务的数据操作请求。即当多个事务请求对同一数据项Q加锁时,DBMS按照事务请求加锁的先后顺序对这些事务排队,先请求的事务排在队中靠前的位置。定义在Q上的锁一旦释放,DBMS将锁分配给队列中的第一个事务。 利用这个策略,各个事务都可以按照时间顺序访问Q避免了活锁现象。

118、对数据库的性能优化:数据库性能优化的基本原则就是通过尽可能少的磁盘访问获得所需要的数据。SQL SERVER性能优化一般从数据库设计应用程序编码硬件优化数据库索引SQL语句事务处理几个方面入手考虑问题。

(1) 分析阶段:在系统分析阶段往往有太多需要关注的地方,系统各种功能性、可用性、可靠性、安全性需求吸引了我们大部分的注意力,但必须注意的是,性能往往是很重要的非功能性需求,必须根据系统的特点确定其实时性需求、响应时间的需求、硬件的配置等。最好能有各种需求量化的指标。

(2)设计阶段:例如数据库逻辑设计规范化;合理的冗余;主键的设计;外键的设计;字段的设计;数据库物理存储和环境的设计;数据库的物理存储、操作系统环境及网络环境的设计,皆使得我们的系统在将来能适应较多用户的并发操作和较大的数据处理量。这里需要注意文件组的作用,适用文件组可以有效的把I/0操作分散到不同的物理硬盘,提高并发能力。

(3)系统设计:整个系统的设计,特别是系统结构的设计对性能具有很大的影响。对于一般的0LTP系统,可以选择C/S结构、三层的C/S结构等,不同的系统结构其性能的关键也有所不同。系统设计阶段应归纳些业务逻辑在数据库编程阶段实现,数据库编程包括数据库存储过程、触发器和函数。用数据库编程实现业务逻辑的好处是减少网络流量并能更充分利用数据库的预编译和缓存功能;索引设计阶段可以根据功能和性能的需求进行初步的索引设计,这里需要根据预计的数据量和查询来设计索引,可能与将来实际使用时有所区别。

(4) 编码阶段:编码阶段首先需要所有程序员具备优化意识,也就是在实现功能的同时具备考虑优化性能的思想。数据库是能进行集合运算的工具,所谓集合运算实际是批量运算,即是尽量减少在客户端进行大数据量的循环操作,而用SQL语句或者存储过程代替。这个阶段主要是注意在SQL语句等方面的优化,如:尽量少做重复的工作,用SELECT后跟需要的字段代替SELECT *语句,注意事务和锁,注意临时表和表变量的用法,慎用游标和触发器,尽量使用索引等。

(5)硬件优化: RAID (独立磁盘冗余阵列)是由多个磁盘驱动器(一个阵列)组成的磁盘系统。通过将磁盘阵列当作一个磁盘来对待,基于硬件的RAID允许用户管理多个磁盘。使用基于硬件的RAID与基于操作系统的RAID相比较可知,基于硬件的RAID能够提供更佳的性能,如果使用基于操作系统的RAID,那么它将占据其他系统需求的CPU周期,通过使用基于硬件的RAID,用 户在不关闭系统的情况下能够替换发生故障的驱动器。利用数据库分区技术,可均匀地把数据分布在系统的磁盘中,平衡I/0访问,避免I/0瓶颈等。

(6) 事务处理调优:数据库的日常运行过程中,可能面临多个用户同时对数据库的并发操作而带来的数据不一致的问题,如:丢失更新、脏读和不可重复读等。并发控制的主要方法是封锁,锁的含义即是在一段时间内禁止 用户做某些操作以避免产生数据不一致。对于事务性能的调优,要考虑到事务使用的锁的个数(在所有其他条件相同的情况下,使用的锁个数越少,性能越好)、锁的类型(读锁对性能更有利)以及事务持有锁的时间长短(持有时间越短,性能越好)等情形。

119、SQL Server 2008提供了四种备份方式:完整备份、差异备份、事务日志备份、文件和文件组备份。

120、分布式数据库中,一般先进行数据分片,再数据分配,分片是对关系的操作,分配是对分片结果的操作。分片是对全局关系的映像,分配是对,物理存放场地的映像。

121、使用索引的原则:在需要经常搜索的列上创建索引。主键上创建索引。经常用于连接的列上创建索引。经常需要根据范围进行搜索的列上创建索引。经常需要排序的列上创建索引。经常用于where子句的列上创建索引。

122、一个表上可以建立多个后触发器,而只能建立一个前触发器。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曼诺尔雷迪亚兹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值