ACID原则
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
1、原子性 —— 意味着数据库中的事务执行是作为原子,即不可再分,整个语句要么执行,要么不执行(回滚)。
2、一致性 —— 即在事务开始之前和事务结束以后,数据库的完整性约束(唯一约束/外键约束/Check约束/触发器等)没有被破坏。
3、隔离性 —— 事务的执行是互不干扰的,一个事务不可能看到其他事务运行时,中间某一时刻的数据。
隔离等级由低到高分别为:
-
Read Uncommited(最高的性能,但可能出现脏读,不可重复读,幻读)
-
Read commited(可能出现不可重复读,幻读) <默认>
-
Repeatable Read(可能出现幻读)
-
Serializable(最低的性能,Range锁会导致并发下降)
SQL Server利用加锁和阻塞来保证事务之间不同等级的隔离性。事务之间的互相影响的情况分为几种,分别为
-
脏读(Dirty Read) 写-读错误
-
不可重复读(Unrepeatable Read) 读-写错误
-
幻读(phantom read) 写-写错误
4、 持久性 —— 意味着在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。 、
第一章 数据库系统概述
1、数据库管理系统的基本功能?
答:并发控制、故障恢复、完整性、安全性、数据独立性。
2、数据库系统的三个抽象层次?
答:视图抽象、概念抽象、物理抽象。
3、简述数据抽象、数据模型及数据模式的概念,以及它们之间的关系?
答:数据抽象,指的是一种数据抽取的过程;数据模型,是数据抽象的工具,是数据组织和表示的方式;数据模式,是数据抽象的结果。
4、数据模型的三个评价标准、三个要素、分类?
答:三个评价标准:1)真实地描述现实问题;2)用户易理解;3)计算机易实现;
三个要素:数据结构、数据操作、完整性约束
分类:概念数据模型、逻辑数据模型、物理数据模型
5、数据字典的作用?
答:数据字典用于存储数据库的一些说明信息。
6、请简述计算机学科中“逻辑”与“物理”、“高级”与“低级”的含义。
答:逻辑,一般是指事物的主观抽象表示,着重对内在机制的描述;而物理是指事务的外在的表现形式或客观存在。
高级和低级,是衡量与人类思维接近或是易于人类使用的程度。与人类思维越接近或是越易于人类使用,则越高级;否则,越低级。
7、SQL语言最早在( System R )上开发。
8、SQL语言的标准?
答:SQL-89 SQL-92 SQL-1999
9、一个数据库系统设计中,概念模式只有一个。
第二章 高级数据模型
1、ERM属于哪个层次的数据模型?关系模型又是哪个层次的数据模型?
答:ERM属于概念数据模型,关系模型是逻辑数据模型。
2、属性按结构的分类,以及按取值的分类?
答:按结构分类:简单属性、复合属性、子属性
按取值分类: 单值属性、多值属性、导出属性、空值属性
3、实体用什么来唯一标识?
答:键。
4、键与候选键的区别?
答:键与候选键都是具有唯一标识的一个或一组属性,但候选键是最小属性集合的键。主键是候选键的特例。
第三章 关系数据库系统RDBS
1、表间数据完整性的实现方式?
答:外键/触发器。
2、对于表中几个特殊的列,如主键、候选键和外键,分别用什么限制来保证它们的完整性?对表中其它一般性的列,用什么限制来保证它们的完整性?
答:主键:主键约束
侯选建:唯一约束
外键:外键约束
一般性列:断言、检查约束
3、SQL-92标准支持的完整性限制是否一定会在SQL SERVER中实现,举例说明?
答:不一定。断言是SQL-92标准支持的,但SQL SERVER不支持断言。
4、请说明在维护表间数据完整时外键限制与触发器的异同。
答:异——定义外键约束的列,必须是另一表中的主键或侯选建;触发器的主表和从表之间只要有共同的列即可,且触发器可以用来完成更复杂的功能。
同——都可以用来维护表间数据的完整性。
5、关系代数的基本操作符?
答:基本操作符:交(intersaction)、并(union)、笛卡尔乘积(cross product)、差(difference)、选择(selection)、投影(projection)
6、关系代数中对结果有重复元组时,如何处理?SQL中呢?
答:关系代数中,通过改名解决重复元组问题;SQL中,通过distinct去除重复元祖
7、列 —— 字段、成员、属性
8、TSQL
8-1)查询1957年之前出生的男演员的姓名
姓名(δ性别=男,出生年<1957演员)
select 演员姓名 from 演员 where 演员性别='男' and 演员出生年<1957
8-2)查询2000年环球公司出品的电影的名字和导演姓名
导演姓名,电影名称(δ出品时间=2000(电影公司 电影 导演))
select 导演姓名,电影名称 from 电影公司 C,导演 D,电影 M where C.导演工作证号=D. 导演工作证号 and M.电影编号=C.电影编号 And C.出品时间=2000
8-3)查询张一导演所导演的影片中的主角演员姓名
演员姓名(δ导演姓名=张一,角色=主演(演员 导演))
select 演员姓名 from 演员 Y,导演 D where D.导演工作证号=Y.导演工作证号 and D.导演姓名='张一' and Y.角色='主角'
第四章 SQL查询语言
1、SQL语言的使用方式?
答:嵌入式和交互式
2、 Select查询中各子句的执行顺序?
答: 当SELECT语句被DBMS执行时,其子句会按照固定的先后顺序执行:
(1)FROM 子句。
(2)WHERE 子句。
(3)GROUP BY 子句。
(4)HAVING 子句。
(5)SELECT 子句。
(6)ORDER BY 子句。
3、游标的作用?
答:为了能够对获取的集合的值按行按列处理
4、使用存储过程的好处?
答:(1)执行速度快;
(2)可用于实现经常实现的数据操作;
(3)实现较复杂的完整性约束;
(4)可在程序中被反复调用,有利于程序的模块化;
(5)有助于提高安全性;
(6)实现复杂、敏感事务的自动化;
(7)减少网络流量
第五章 数据库保护
1、导致数据库破坏的四种类型?DBMS分别用何措施来保护之?
答:非法用户,通过权限机制保护;非法数据,通过完整性约束保护;系统或硬件故障,通过故障恢复保护;并发访问破坏一致性,通过并发控制保护。
2、 SQL SERVER的安全体系?
答:DBMS服务器级,数据库级,语句和对象级。
3、事务的特点是什么?它有哪几个特性或性质?
答:事务的特点:由多个步骤构成,只有所有步骤都成功执行,该事务才可提交完成;否则,其中任一个步骤执行失败,则该事务失败,事务中已执行的步骤应撤销或回退(rollback)。
4、 日志的基本内容?
答:活动事务表(ATL)、提交事务表(CTL)、前像(BI)、后像(AI)
5、为何要并发?何谓并发调度?何谓串行调度?
答:并发的目的:1、提高系统资源利用率;2、改善短事务的响应时间。
并发调度:多个事务之间交替调度。
串行调度:一个事务的所有操作都执行完后才开始执行另一个事务。
6、并发执行可能引起哪些问题?产生这些问题的原因各是什么?
答:问题:1、丢失更新 原因: 1、写写冲突
2、读脏数据 2、写读冲突
3、读值不可复现 3、读写冲突
4、加锁协议的两个补丁分别解决什么现象(或问题)?
答:补丁1:避免级联回退,防止读脏数据。
补丁2:“先来先服务”原则,可避免活锁现象。
(S,X)相容矩阵
|
未加锁 |
已加S锁 |
已加X锁 |
S锁 |
Y |
Y |
N |
X锁 |
Y |
N |
N |
5、为何需要事务隔离等级?
答:可以使得应用系统能在读一致性和并发性之间找到最佳平衡。
6、 数据库复制的方式?
答:主从复制、对等复制、级联复制。
7、SQL SERVER的安全体系分:(DBMS的服务器级、数据库级、语句和对象级)。
8、SQL SERVER中的DBO是(数据库所有者)。
第六章 关系模式
1、关系模式可能存在的问题?
答:插入异常、删除异常、冗余、更新异常。
2、函数依赖的分类?
答:平凡函数依赖、非平凡函数依赖、完全函数依赖、部分函数依赖、传递函数依赖。
3、 关系模式规范化的方法?
答:分解
4、设有关系模式:R(Sid,Sname,Cid,Cname,Score,Tid),其中:Sid、Sname、Cid、Cname、Score、Tid分别表示学号、学生姓名、课程编号、课程名、成绩、教师编号,并有如下语义要求:
- l 课程与教师间的联系为1:1;
- l 学生与课程间的联系为m:n;
- l 一名学生只能有一个学号,且学号唯一;
- l 一门课程只能有一个课程号,且课程号唯一。
1)根据语义给出R的函数依赖
2)将该关系模式分解成3NF