文档库 最新最全的文档下载
当前位置:文档库 › Hash底层实现原理

Hash底层实现原理

Hash底层实现原理
Hash底层实现原理

HashMap的底层实现原理

一、HashMap的数据结构

总述:

哈希的出现时因为传统数据结构如线性表(数组,链表等),树中,关键字与其它的存放位置不存在对应的关系。因此在查找关键字的时候需要逐个比对,虽然出现了二分查找等各种提高效率的的查找算法。但是这些并不足够,希望在查询关键字的时候不经过任何比较,一次存取便能得到所查记录。因此,我们必须在关键字和其对应的存储位置间建立对应的关系f。这种对应的关系f被称为哈希函数,按此思想建立的表为哈希表。关键在于哈希函数如何构造。

意思就是:关键字的存储位置是有关键字的内容决定的。

数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。

数组:

数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;

链表:

链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。

哈希表:

那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表。哈希表((Hash table)既满足了数据的查找方便,同时不占用太多的内容空间,使用也十分方便。哈希表有多种不同的实现方法,我接下来解释的是最常用的一种方法——拉链法,我们可以理解为“链表的数组”

一个长度为16的数组中,每个元素存储的是一个链表的头结点。那么这些元素是按照什么样的规则存储到数组中呢。一般情况是通过hash(key)&len-1获得,也就是元素的key的哈希值对数组长度取模得到。

HashMap其实也是一个线性的数组实现的,所以可以理解为其存储数据的容器就是一个线性数组。这可能让我们很不解,一个线性的数组怎么实现按键值对来存取数据呢?这里HashMap有做一些处理。

首先HashMap里面实现一个静态内部类Entry,其重要的属性有key , value, next,从属性key,value我们就能很明显的看出来Entry就是HashMap键值对实现的一个基础bean,我们上面说到HashMap的基础就是一个线性数组,这个数组就是Entry[],Map里面的内容都保存在Entry[]里面。

Transient Entry[]table;

二、HashMap的存取实现:

// 存储时:

int hash = key.hashCode();

// 这个hashCode方法这里不详述,只要理解每个key的hash是一个固定的int值

int index = hash % Entry[].length;

Entry[index] = value;

// 取值时:

int hash = key.hashCode();

int index = hash % Entry[].length;

return Entry[index];

(1)Put

疑问:如果两个key通过hash%Entry[].length得到的index相同,会不会有覆盖的危险?

这里HashMap里面用到链式数据结构的一个概念。上面我们提到过Entry类里面有一个next属性,作用是指向下一个Entry。打个比方,第一个键值对A进来,通过计算其key的hash得到的index=0,记做:Entry[0] = A。一会后又进来一个键值对B,通过计算其index也等于0,现在怎么办?HashMap会这样做:B.next = A,Entry[0] = B,如果又进来C,index也等于0,那么C.next = B,Entry[0] = C;这样我们发现index=0的地方其实存取了A,B,C 三个键值对,他们通过next这个属性链接在一起。所以疑问不用担心。也就是说数组中存储的是最后插入的元素。到这里为止,HashMap的大致实现,我们应该已经清楚了。

public V put(K key, V value) {

if (key == null)

return putForNullKey(value); //null总是放在数组的第一个链表中

int hash = hash(key.hashCode());

int i = indexFor(hash, table.length);

//遍历链表

for (Entry e = table[i]; e != null; e = e.next) {

Object k;

//如果key在链表中已存在,则替换为新value

if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {

V oldValue = e.value;

e.value = value;

e.recordAccess(this);

return oldValue;

}

}

modCount++;

addEntry(hash, key, value, i);

return null;

}

void addEntry(int hash, K key, V value, int bucketIndex) {

Entry e = table[bucketIndex];

table[bucketIndex] = new Entry(hash, key, value, e); //参数e, 是Entry.next

//如果size超过threshold,则扩充table大小。再散列

if (size++ >= threshold)

resize(2 * table.length);

}

当然HashMap里面也包含一些优化方面的实现,这里也说一下。比如:Entry[]的长度一定后,随着map里面数据的越来越长,这样同一个index的链就会很长,会不会影响性能?HashMap里面设置一个因子,随着map的size越来越大,Entry[]会以一定的规则加长长度。

(2)Get

public V get(Object key) {

if (key == null)

return getForNullKey();

int hash = hash(key.hashCode());

//先定位到数组元素,再遍历该元素处的链表

for (Entry e = table[indexFor(hash, table.length)];

e != null;

e = e.next) {

Object k;

if (e.hash == hash && ((k = e.key) == key || key.equals(k)))

return e.value;

}

return null;

}

(3)null key 的存取

null key总是存放在Entry[]数组的第一个元素。

private V putForNullKey(V value) {

for (Entry e = table[0]; e != null; e = e.next) {

if (e.key == null) {

V oldValue = e.value;

e.value = value;

e.recordAccess(this);

return oldValue;

}

}

modCount++;

addEntry(0, null, value, 0);

return null;

}

private V getForNullKey() {

for (Entry e = table[0]; e != null; e = e.next) {

if (e.key == null)

return e.value;

}

return null;

}

(4)确定数组index:hashCode&table.length(类似取模运算)

HashMap存取时,都需要计算当前key应该对应Entry[]数组哪个元素,即计算数组下标;算法如下:/**

* Returns index for hash code h.

*/

static int indexFor(int h, int length) {

return h & (length-1);

}

按位取并,作用上相当于取模mod或者取余%。

这意味着数组下标相同,并不表示hashCode相同。

(5)table初始大小

public HashMap(int initialCapacity, float loadFactor) {

.....

// Find a power of 2 >= initialCapacity

int capacity = 1;

while (capacity < initialCapacity)

capacity <<= 1;

this.loadFactor = loadFactor;

threshold = (int)(capacity * loadFactor);

table = new Entry[capacity];

init();

}

注意table初始大小并不是构造函数中的initialCapacity!!而是>= initialCapacity的2的n次幂!!!!三、解决Hash冲突的办法

如果两个不同对象的hashCode相同,这种现象称为冲突。

开放定址法(线性探测再散列,二次探测再散列,伪随机探测再散列)

再哈希法

链地址法

建立一个公共溢出区

Java中hashmap的解决办法就是采用的链地址法。

四、再散列rehash过程

当哈希表的容量超过默认容量时,必须调整table的大小。当容量已经达到最大可能值时,那么该方法就将容量调整到Integer.MAX_VALUE返回,这时,需要创建一张新表,将原表的映射到新表中。

void resize(int newCapacity) {

Entry[] oldTable = table;

int oldCapacity = oldTable.length;

if (oldCapacity == MAXIMUM_CAPACITY) {

threshold = Integer.MAX_VALUE;

return;

}

Entry[] newTable = new Entry[newCapacity];

transfer(newTable);

table = newTable;

threshold = (int)(newCapacity * loadFactor);

}

/**

* Transfers all entries from current table to newTable.

*/

void transfer(Entry[] newTable) {

Entry[] src = table;

int newCapacity = newTable.length;

for (int j = 0; j < src.length; j++) {

Entry e = src[j];

if (e != null) {

src[j] = null;

do {

Entry next = e.next;

//重新计算index

int i = indexFor(e.hash, newCapacity);

e.next = newT able[i];

newTable[i] = e;

e = next;

} while (e != null);

}

}

}

HashTable和HashMap区别第一,继承不同。

public class Hashtable extends Dictionary implements Map

public class HashMap extends AbstractMap implements Map

第二

Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。即是说,在多线程应用程序中,不用专门的操作就安全地可以使用Hashtable了;而对于HashMap,则需要额外的同步机制。但HashMap的同步问题可通过Collections的一个静态方法得到解决:

Map Collections.synchronizedMap(Map M)

这个方法返回一个同步的Map,这个Map封装了底层的HashMap的所有方法,使得底层的HashMap即使是在多线程的环境中也是安全的。

第三

Hashtable中,key和value都不允许出现null值。

在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断。

第四,两个遍历方式的内部实现上不同。

Hashtable、HashMap都使用了Iterator。而由于历史原因,Hashtable还使用了Enumeration的方式。

第五

哈希值的使用不同,HashTable直接使用对象的hashCode。而HashMap重新计算hash值。

第六

Hashtable和HashMap它们两个内部实现方式的数组的初始大小和扩容的方式。HashT able中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。

Hashtable 与ConcurrentHashMap 的区别

ConcurrentHashMap融合了hashtable和hashmap二者的优势。

hashtable是做了同步的,hashmap未考虑同步。所以hashmap在单线程情况下效率较高。hashtable在的多线程情况下,同步操作能保证程序执行的正确性。

但是hashtable每次同步执行的时候都要锁住整个结构。

ConcurrentHashMap正是为了解决这个问题而诞生的。

ConcurrentHashMap锁的方式是稍微细粒度的。 ConcurrentHashMap将hash表分为16个桶(默认值),诸如get,put,remove等常用操作只锁当前需要用到的桶。

试想,原来只能一个线程进入,现在却能同时16个写线程进入(写线程才需要锁定,而读线程几乎不受限制,之后会提到),并发性的提升是显而易见的。

更令人惊讶的是ConcurrentHashMap的读取并发,因为在读取的大多数时候都没有用到锁定,所以读取操作几乎是完全的并发操作,而写操作锁定的粒度又非常细,比起之前又更加快速(这一点在桶更多时表现得更明显些)。只有在求size等操作时才需要锁定整个表。

而在迭代时,ConcurrentHashMap使用了不同于传统集合的快速失败迭代器的另一种迭代方式,我们称为弱一致迭代器。在这种迭代方式中,当iterator被创建后集合再发生改变就不再是抛出ConcurrentModificationException,取而代之的是在改变时new新的数据从而不影响原有的数据,iterator完成后再将头指针替换为新的数据,这样iterator线程可以使用原来老的数据,而写线程也可以并发的完成改变,更重要的,这保证了多个线程并发执行的连续性和扩展性,是性能提升的关键。

全国自考数据库系统原理历年试题及答案

2008年1月高等教育自学考试全国统一命题考试 数据库系统原理试卷 4735 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.数据库在磁盘上的基本组织形式是( B ) A.DB B.文件 C.二维表D.系统目录 2.ER(实体联系模型)模型是数据库的设计工具之一,它一般适用于建立数据库的( A ) A.概念模型B.逻辑模型 C.内部模型D.外部模型 3.数据库三级模式中,用户与数据库系统的接口是( B ) A.模式B.外模式 C.内模式D.逻辑模式 4.在文件系统中,所具有的数据独立性是( D ) A.系统独立性

B.物理独立性 C.逻辑独立性 D.设备独立性 5.在DB技术中,“脏数据”是指( D ) A.未回退的数据 B.未提交的数据 C.回退的数据 D.未提交随后又被撤消的数据 6.关系模式至少应属于( A ) A.1NF B.2NF C.3NF D.BCNF 7.设有关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C},则属性集BD的闭包(BD)+为( B ) A.BD B.BCD C.BC D.CD 8.设有关系R如题8图所示:(C)

R 则 专业,入学年份(R)的元组数为 A.2 B.3 C.4 D.5 9.集合R与S的交可以用关系代数的基本运算表 示为( A ) A.R-(R-S) B.R+(R-S) C.R-(S-R) D.S-(R-S) l0.已知SN是一个字符型字段,下列SQL查询语 句( C ) SELECT SN FROM S WHERE SN LIKE′AB%′;的执行结果为 A.找出含有3个字符′AB%′的所有SN字段 B.找出仅含3个字符且前两个字符为′AB′的SN字段 C.找出以字符′AB′开头的所有SN字段

数据库系统原理复习题

复习题 一、填空题: 1.三类经典的数据模型是_层次模型____、__网状模型___和_关系模型_。其中,_关系模型___目前应用最广泛。 2._概念模型__模型是面向信息世界的,它是按用户的观点对数据和信息建模;____数据模型____模型是面向计 算机世界的,它是按计算机系统的观点对数据建摸。 3.关系模型的实体完整性是指_____主属性的值不能为空________________。在关系模型中,候选码是指______ 能唯一识别元组的属性或者属性组_,全码是指____所有属性都是候选码___________。 4.设Ei 为关系代数表达式,根据关系代数等价变换规则,(E1×E2)×E3 ≡ ___E1×(E2×E3)_______, 若选择条件F只涉及E1中的属性,则σF(E1×E2)≡__σF(E1)×E2__________。 5.数据依赖是关系中属性间的相互关联,最重要的数据依赖有两种,即__函数依赖___依赖和多值依赖。 6.在关系规范化过程中,将1NF转化为2NF,要消除____非主属性对主码的部分依赖__________________,若 一个关系模式R∈2NF,并且消除了非主属性对码的传递依赖,则R∈_3NF。 7.数据库的保护措施有_____安全性___控制、___完整性______控制、____并发控制_____控制和数据库恢复等。 8.事务是并发控制的基本单位,事务的四个性质是___原子____性、___一致____性、_隔离_性和_持久性__性。 9.并发控制的主要方法是封锁,封锁的类型有两种,即____X____锁和___S____锁。 10.故障恢复的基本手段有_______数据转储_____和_____登记日至文件____________。 11.DBMS的中文全称是____数据库管理系统_______。 12.数据管理的发展经历了人工管理阶段、____文件管理_____阶段和____数据库系统____阶段。 13.数据库系统的三级模式分别是_____外模式______,_____模式________和____内模式______。其中___模式___ 是用来定义数据库的全局逻辑结构的。数据库系统的两级独立性分别是____外模式/模式的逻辑独立性_____ 和____模式/内模式的物理独立性____。 14.数据库设计的步骤有需求分析、_____概念结构设计______、逻辑结构设计、_______物理设计____、数据库 实施和___数据库的运行与维护_________。 15.实体联系模型中三种联系是____一对一______、_____一对多_____、____多对多______; 16.数据库系统是由数据库、____软件(DBMS)______、___硬件(应用系统)____、_人员和用户共同组成; 17.并发控制带来的三种数据不一致是______丢失数据____、______不可重复读____、______读脏数据____; 18.数据库的逻辑模型设计阶段,任务是将____E-R图____转换成关系模型; 19.关系规范化理论是设计___逻辑结构_____的指南和工具。 20.从用户角度看,数据库系统的体系结构可分为_____集中式____结构、___分布式_____结构、客户/服务器结 构和___浏览器/服务器______结构。 二、选择题: 1.要保证数据库逻辑数据独立性,需要修改的是( C )。 A 模式 B 模式与内模式的映射 C 模式与外模式的映射 D 内模式 2.不允许任何其他事务对一个锁定目标加锁的锁是( B )。 A 共享锁 B 排他锁 C 共享锁或排他锁 D 都不是 3.数据库中( B )是指数据的正确性和相容性。 A 安全性 B 完整性 C 并发性 D 恢复性 4.设K为关系模式R中的属性或属性组合,若U完全函数依赖K,则K称为R的一个( B )。 A 关键字 B 候选码 C 主属性 D 主属性值 注意:这道题是比较容易出错的题。 5.数据库系统和文件系统的区别是( B )。 A 数据库系统复杂,文件系统简单; B 文件系统不能解决数据冗余和数据独立性问题,而数据库系统能解决此问题; C 文件系统只能管理程序文件,而数据库系统能管理各种文件; D 文件系统管理的数据量小,而数据库系统管理的数据量大; 6.设关系R,按条件f对关系R进行选择,其关系代数是( C )。 A σf(R×R) B Πf(R∞R) C σf(R) D Πf(R) 7.关系模式中,各级模式之间的关系为( A )。 A 3NF ∈ 2NF ∈ 1NF B 3NF ∈1NF ∈ 2NF C 1NF ∈ 2NF ∈ 3NF D 2NF∈1NF ∈3NF 8.数据库系统的核心是( B ) A 数据库 B 数据库管理系统 C 数据模型 D 软件工具

自考数据库系统原理完整版

自考《数据库系统原理》串讲笔记 第一章数据库基础知识 学习目的与要求: 本章属于基础知识,主要是对一些概念的理解和记忆。没有难点,相对的重点是数据模型的四个层次,数据库管理系统的功能,数据库系统的全局结构。 考核知识点与考核要求 1.1数据管理技术的发展阶段(识记) 1.2数据描述的术语(领会) 1.3数据抽象的级别(领会) 1.4数据库管理系统(DBMS) (领会) 1.5数据库系统(DBS)(领会) 1.1 数据管理技术的发展 几个数据库的基本术语: 数据:描述事物的符号记录 数据处理:是指从某些已知的数据出发,推导加工出一些新的数据,这些新的数据又表示了新的信息。 数据管理:是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。 数据管理技术:对数据的收集、整理、组织、存储、维护、检索、传送等操作,基本目的就是从大量的,杂乱无章的,难以理解的数据中筛选出有意义的数据。 数据处理是与数据管理相联系的,数据管理技术的优劣,将直接影响数据处理的效率。 1.人工管理阶段(20世纪50年代中期以前) 1)数据不保存在机器中; 2)没有专用软件对数据进行管理; 3)只有程序的概念,没有文件的概念; 4)数据面向程序。 2. 文件系统阶段特点与缺陷(20世纪50年代后期至60年代中期) 1)数据可长期保存在磁盘上; 2)数据的逻辑结构与物理结构有了区别; 3)文件组织呈现多样化; 4)数据不再属于某个特定程序,可以重复使用; 5)对数据的操作以记录为单位。 文件系统三个缺陷: 1)数据冗余性 2)数据不一致性

04735数据库系统原理201504自考真题

2015年4月高等教育自学考试全国统一命题考试 数据库系统原理试卷 (课程代码04735) 本试卷共4页,满分l00分,考试时间l50分钟。 考生答题注意事项: 1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸。2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。3.第二部分为非选择题。必须注明大、小题号。使用0.5毫米黑色字迹签字笔作答。4.合理安排答题空间。超出答题区域无效。 第一部分选择题 一、单项选择题(本大题共l5小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。未涂、错涂或多涂均无分。 1.在文件系统阶段,所具有的独立性是 A.逻辑独立性 B.物理独立性 C.系统独立性 D.设备独立性 2.在数据库的三级模式中,描述数据库中数据的物理存储结构的是 A.内模式 B.外模式 C.逻辑模式 D.子模式 3.每个部门有多名职工,每名职工在一个部门任职,实体集部门与职工之间的联系是 A.一对一 B.一对多 C.多对一 D.多对多 4.有关系R(A,B,C),主码为A;S(D,A),主码为D,外码为A,参照R中的属性A。关系R和S的元组如下表所示。关系s中违反参照完整性规则的元组是 5.设有关系模式R(A,B,C,D),F是R上的FD集,F={A→B,B→C,C→D},则属性集BC 的闭包(BC)+为 A.BD B.BCD C.BC D.CD 6.设关系模式R的属性集是U,X是U的一个子集。如果x→U在R上成立,但对于X的任一真子集X1→U不成立,那么称X是R上的一个 A.候选键 B.超键 C.主键 D.外键 7.关系代数运算RNS等价于

2003数据库系统原理试题B

第1页(共 页) 第2页(共 页) 考试中心填写: 湖南大学课程考试试卷 湖南大学教务处考试中心 装 订 线 (答 案 不 得 超过此线 ) 湖南大学课程考试试卷 课程名称:数据库系统原理;试卷编号: 试卷A ;考试时间:120分钟 一、填空(25分) 1、两段锁协议规定:(1)( ),(2)( )。 2、数据库系统三级模式结构是指( ),( ),( )。二级映象是指( ),( )。 3、数据保护也称数据控制,主要包括以下几个方面:( ),( ) ,并发控制和( )。 4、数据库模型组成三要素指:( ),( ),( )。 5、并发控制的单位是事务,定义事务的三条语句是( ),( ),( )。 6、数据库系统中实现安全控制的一般方法包括:( ),( ),审计,( ),( )。 7、关系模型的三类完整性指:( )、( )和 ( )。 8、在规范设计法中,数据库设计的核心和关键是( )和( )。 二、“学生—课程”数据库中包括三个表: (1) 学生表STUDENT 由学号(sno)、姓名(sname)、性别(ssex)、年龄(sage)、所在系 (sdept) 5个属性组成,即student(sno,sname,ssex,sage,sdept),主码为(sno)。 (2) 课程表COURSE 由课程号(cno),课程名(cname),先修课号(cpno),学分(ccredit)4 个属性构成,即course(cno,cname,cpno,ccredit),主码为(cno)。 (3) 学生选课表SC 由学号(sno),课程号(cno),成绩(grade)3个属性组成,即 sc(sno,cno,grade),主码为(sno,cno)。 (一)分别用关系代数语言和SQL 语言完成以下操作。(每小题4分) 1、查询课程号为“001”的学分。 2、查询选修了课程“数据库原理”的所有学生的学号。 3、查询选修了课程“数据库原理”的所有学生的姓名。 4、查询学生“李鹏”的年龄。 5、查询学生“李鹏”的成绩大于90分的课程名称。 (二)只用SQL 语言完成以下操作。(每小题2分) 6、查询课程“数据库原理”的所有选课记录。 7、查询课程“数据库原理”的平均成绩。 8、增加一新同学的记录(“2000001”,“陈东”,“男”,“IS ”,“19”)。 9、将学生2000089的年龄改为18岁。 10、 创建一个显示学号、姓名、课程号、课程名、分数的视图。 (三)用事务编一程序,删除学生“张红”及其选课记录。(5分) 三、关系模式slc(sno,sdept,sloc,cno,grade) 中Sno 表示学生学号,sdept 表示学生所属系名,sloc 表示学生住处,cno 表示课程号,grade 表示分数,各属性存在如下数据依赖关系:(15分) (sno,cno) --f-→ grade sno ----→ sdept (sno,cno) ---p → sdept sno ----→ sloc (sno,cno) ----→ sloc sdept ----→ sloc ---f-→表示函数依赖,---p →表示部分依赖,--→表示依赖。 请根据规范化理论对SLC进行规范化,简述各步骤的理论依据及所形成的关系模式的优缺点。 四、简答 1、简述基本关系的性质?(5分) 2、简述数据库设计各阶段的主要工作内容。(10分) 3、简述数据库模式结构。(10分)

数据库系统原理试题二

《数据库原理及应用》复习题及参考答案 一、判断题 1.采用规范的方法,使分解后的模式属于第二或第三范式,只能保证无损连接,不能绝对保持依赖。(×) 2.原则上,两个不同的对象所具有的属性值不能相同,但在给定关系中的元组可以是完全相同的。(×) 3.概念设计可以独立于数据库管理系统。(√) 5.在视图中插入一个元组,该元组会同时插入到基本表中。(√) 6.对象查询语言中,可以用运算符ELEMENT从多个元素的聚集中提取单个元素。 (×) 7.对于表只能有惟一的主键码,但可有任意数量的UNIQUE属性或属性集。(√)8.如果一个关系没有一个属性能由所有其他属性函数决定,则该关系根本不存在非平凡函数依赖。(√) 9.超类可以自动继承子类的所有特性。(×) 二、选择题 1.实体联系模型属于( D )。 A. 层次模型 B. 网状模型 C. 关系模型 D 概念模型 2.在一个关系中,任意两个元组的值( C )。 A. 可以全同 B. 必须全同 C. 不能全同 D. 以上都不是4.SQL是( C )的缩写. A. Standard Query Language B. Select Query Language C. Structured Query Language D. 以上都不是 6.在数据库设计中,当合并局部E---R图时,职工在某一局部应用中被除数当作实体,而在另一局部应用中被除数当作属性,那么被称之为( A )冲突。 A.结构 B.命名 C.联系 D.属性 7.在关系中的各元组的( B )。 A.顺序不能任意排列,一定要按照输入的顺序排列 B.顺序可以任意排列 C.顺序一定要按照关键字段值的顺序排列

数据库系统原理历年选择题练习

第一章复习题 一、单项选择题 1.在数据库系统中,当数据库的内模式发生改变时,应用程序也可以不变。这是(A ) A)物理数据独立性B)逻辑数据独立性 C)位置数据独立性D)存储数据独立性 2.在下面列出的数据模型中,哪一个是概念数据模型(D ) A)关系模型B) 层次模型C) 网状模型D) 实体-联系模型 3. 下面列出的数据管理技术发展阶段中,哪个(些)阶段数据不能保存在计算机中?(A ) Ⅰ.人工管理阶段 Ⅱ.文件系统阶段 Ⅲ.数据库阶段 A)只有ⅠB) 只有ⅡC) Ⅰ和ⅡD) Ⅱ和Ⅲ 4. 用二维表结构表示实体以及实体间联系的数据模型称为(C ) A)网状模型B) 层次模型C) 关系模型D) 实体-联系模型 5. 下面列出的条目中,哪些是数据库技术的主要特点(A ) Ⅰ.数据共享度高 Ⅱ.数据的冗余小 Ⅲ.较高的数据独立性 Ⅳ.程序的标准化 A)Ⅰ、Ⅱ和ⅢB) Ⅰ和ⅡC) Ⅰ、Ⅱ和ⅣD) 都是 6. 数据库管理系统DBMS中用来定义逻辑模式、内模式和外模式的语言是(C ) A)DML B)C C)DDL D)Basic 7. 层次模型的典型代表是(A )数据库管理系统。 A)IMS B)IBM C)DBTG D)ATM 8. 负责数据库系统的正常运行,承担创建、监控和维护数据库结构责任的是(C ) A)应用程序员B)终端用户 C)数据库管理员D)数据库管理系统的软件设计员 9. 在以下各条叙述中,正确的叙述有几条(B ) 1) 数据库避免了一切数据重复 2) 数据库减少了数据冗余 3) 数据库中,如果逻辑模式改变,则需将与其有关的外模式做相应改变,否则应用程序需改写 4) 数据库中的内模式如有改变,逻辑模式可以不变 A)1 B)2 C)3 D)4 10. 在三级模式之间引入两级映像,其主要功能之一是(A ) A)使数据与程序具有较高的独立性 B)使系统具有较高的通道能力 C)保持数据与程序的一致性 D)提高存储空间的利用率 11. 视图对应于数据库系统三级模式结构中的(A ) A)外模式B)逻辑模式C)内模式D)都不对应 12. 对数据库中数据可以进行查询、插入、删除、修改,这是因为数据库管理系统提供了(B )A)数据库定义功能B)数据库操纵功能 C)数据库维护功能D)数据库控制功能 13. 1970年,美国IBM公司研究员E.F.Codd提出了数据库的(C ) A)层次模型B)网状模型C)关系模型D)实体联系模型 14. 具有数据冗余度小、数据共享、以及较高数据独立性等特征的系统是(B ) A)文件系统B)数据库系统C)管理系统D)高级程序 15. 在概念设计中的事物称为(A ) A)实体B)记录C)对象D)结点

10月全国自考数据库系统原理试题及答案解析

1 全国2018年10月自学考试数据库系统原理试题 课程代码:04735 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.在数据库系统中,提供数据与应用程序间物理独立性的是( ) A .外模式/模式映像 B .模式/内模式映像 C .外模式/内模式映像 D .子模式/模式映像 2.对于实体集A 中的每一个实体,实体集B 中至少有一个实体与之联系,反之亦然,则称实体集A 与实体集B 之间具有的联系是( ) A .多对一 B .一对多 C .多对多 D .一对一 3.数据库物理设计的任务不包括...( ) A .优化模式 B .存储记录结构设计 C .确定数据存放位置 D .存取方法设计 4.设有关系WORK (ENO ,CNO ,PAY ),主码为(ENO ,CNO )。按照实体完整性规则( ) A .只有ENO 不能取空值 B .只有CNO 不能取空值 C .只有PAY 不能取空值 D .ENO 与CNO 都不能取空值 5.在关系模式R 中,函数依赖X →Y 的语义是( ) A .在R 的某一关系中,若任意两个元组的X 值相等,则Y 值也相等 B .在R 的一切可能关系中,若任意两个元组的X 值相等,则Y 值也相等 C .在R 的某一关系中,Y 值应与X 值相等 D .在R 的一切可能关系中,Y 值应与X 值相等 6.设R 是一个关系模式,F 是R 上的一个FD 集,R 分解成数据库模式ρ={R 1,…,R K }。如果对R 中满足F 的每一个关系r ,都有r=1R ∏(r)2R ∏(r) … k R ∏(r),则称这个 分解ρ是( ) A .无损分解 B .损失分解

2010年1月全国自考数据库系统原理试题与答案

全国2010年1月自考数据库系统原理试题 课程代码:04735 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的CBDDB ABDDC ACBAD 1.数据库管理系统是( ) A.采用了数据库技术的计算机系统 B.包括DBA、计算机硬件及DB的系统 C.位于用户与OS之间的数据管理软件 D.包括OS在内的数据管理软件 2.外模式DDL用来描述( ) A.数据库的总体逻辑结构 B.数据库的局部逻辑结构 C.数据库的物理存储结构 D.数据库的概念结构 3.下列关于数据冗余的叙述中,不正确 ...的是( ) A.冗余的存在容易破坏数据库的完整性 B.冗余的存在给数据库的维护增加困难 C.不应该在数据库中存储任何冗余数据 D.冗余数据是指可由基本数据导出的数据 4.适当调整DB的模式和内模式,使DB适应新的应用环境称为DB的( ) A.重组织 B.监控分析 C.查询优化 D.重构造 5.关系模型中将不含有多余属性的超键称为( ) A.内键 B.候选键 C.主键 D.外键 6.如果一个关系属于3NF,则它( ) A.必然属于2NF B.必然属于4NF C.可能不属于2NF D.必然属于BCNF 7.设有关系模式R(A,B,C),F是R上成立的FD集,F={B→C,C→A}, 那么分解ρ={AB,AC}相对于F( ) A.是无损分解,也保持函数依赖 B.是无损分解,但不保持函数依赖 C.不是无损分解,但保持函数依赖 D.既不是无损分解,也不保持函数依赖 8.已知关系S1和S2如下表所示,则S1与S2进行并运算,其结果的元组数为( ) A.0 B.4 C.5 D.6 1

数据库系统原理与设计(万常选版)整本书练习题和详细答案详细讲解

数据库系统概论习题集 第一章绪论 一、选择题 1. DBS是采用了数据库技术的计算机系统,DBS是一个集合体,包含数据库、计算机硬件、软件和()。 A. 系统分析员 B. 程序员 C. 数据库管理员 D. 操作员 2. 数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是()。 A. DBS包括DB和DBMS B. DBMS包括DB和DBS C. DB包括DBS和DBMS D. DBS就是DB,也就是DBMS 3. 下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是()。 I.人工管理阶段 II.文件系统阶段 III.数据库阶段 A. I 和II B. 只有II C. II 和III D. 只有I 4. 下列四项中,不属于数据库系统特点的是()。 A. 数据共享 B. 数据完整性 C. 数据冗余度高 D. 数据独立性高 5. 数据库系统的数据独立性体现在()。 A.不会因为数据的变化而影响到应用程序 B.不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序 C.不会因为存储策略的变化而影响存储结构 D.不会因为某些存储结构的变化而影响其他的存储结构 6. 描述数据库全体数据的全局逻辑结构和特性的是()。 A. 模式 B. 模式 C. 外模式 D. 用户模式 7. 要保证数据库的数据独立性,需要修改的是()。 A. 模式与外模式 B. 模式与模式 C. 三层之间的两种映射 D. 三层模式 8. 要保证数据库的逻辑数据独立性,需要修改的是()。 A. 模式与外模式的映射 B. 模式与模式之间的映射 C. 模式 D. 三层模式 9. 用户或应用程序看到的那部分局部逻辑结构和特征的描述是(),它是模式的逻辑子集。 A.模式 B. 物理模式 C. 子模式 D. 模式 10.下述()不是DBA数据库管理员的职责。 A.完整性约束说明 B. 定义数据库模式 C.数据库安全 D. 数据库管理系统设计 选择题答案: (1) C (2) A (3) D (4) C (5) B (6) A (7) C (8) A (9) C (10) D 二、简答题 1.试述数据、数据库、数据库系统、数据库管理系统的概念。 数据: 描述事物的符号记录称为数据。数据的种类有文字、图形、图象、声音、正文等等。数据与其语义是不可分的。

04735数据库系统原理200710自考真题

2007年10月高等教育自学考试全国统一命题考试 数据库系统原理试卷 课程代码4735 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.在数据库方式下,信息处理中占据中心位置的是() A.磁盘 B.程序 C.数据 D.内存 2.下列功能中,不属于 ...DML基本操作功能的是() A.排序 B.插入 C.修改 D.检索 3.在下列四种模型中,与计算机的硬件及软件均无关 ..的是() A.外部模型 B.逻辑模型 C.概念模型 D.内部模型 4.设计数据库时,应该首先设计数据库的() A.应用系统结构 B.概念结构 C.逻辑结构 D.物理结构 5.如果实体X的存在依赖于Y的存在,且X主键的部分或全部从Y中获得,则X是() A.递归实体 B.复合实体 C.弱实体 D.超类实体 6.关系规范化中的插入异常是指() A.不该插入的数据被插入 B.应该插入的数据没插入 C.插入了没有用的数据 D.插入了错误的数据 7.两个函数依赖集F和G等价的充分必要条件是() A.F=G B.F+=G C.F=G+ D.F+=G+ 8.设有关系R和S如题8图: S 题8图 则R与S进行差运算,其结果的元组数为() A.1 B.2 C.3 D.5 9.下列不属于 ...存储过程优点的是() A.增加了程序编写工作量 B.提高运行速度 C.降低网络通信量 D.间接实现安全控制

10.SQL语言的标准库函数COUNT、SUM、A VG、MAX和MIN等,不允许 ...出现在下列哪个子句中() A.SELECT B.HA VING C.GROUP…HA VING D.WHERE 11.SQL语言是关系型数据库系统典型的数据库语言,它是() A.过程化语言 B.结构化查询语言 C.格式化语言 D.导航式语言 12.将查询关系S的权限授予用户W ANG,并允许该用户将此权限授予其他用户。实现此功能的SQL语句是() A.GRANT SELECT TO S ON WANG WITH PUBLIC B.GRANT SELECT ON S TO W ANG WITH PUBLIC C.GRANT SELECT TO S ON WANG WITH GRANT OPTION D.GRANT SELECT ON S TO W ANG WITH GRANT OPTION 13.若事务T1已经给数据A加上了共享锁,则事务T2() A.只能再对A加共享锁 B.只能再对A加排他锁 C.可以对A加共享锁,也可以对A加排他锁 D.不能再给A加任何锁 14.在对象联系图中,表示对象类型之间的超类与子类联系的是() A.双向箭头 B.双线箭头 C.双箭头 D.单箭头 15.在SQL/CLI中,将宿主程序与数据库交互的有关信息记录在运行时数据结果中的是 () A.环境记录、连接记录、语句记录、描述记录 B.环境记录、连接记录、语句记录、运行记录 C.环境记录、连接记录、运行记录、描述记录 D.环境记录、运行记录、语句记录、描述记录 二、填空题(本大题共10小题,每小题1分,共10分) 请在每小题的空格上填上正确答案。错填、不填均无分。 16.关系模型和层次、网状模型的最大差别是用________导航数据。 17.数据库系统中三级模式结构定义存放在________中。 18.如果关系模式R是1NF,且每个非主属性________函数依赖于候选键,那么称R是第二范式的模式。 19.模式分解的优点之一是能消除________和操作异常现象。 20.若关系A有m个属性,关系B有n个属性,则A×B有________个属性。 21.SQL语言中,向数据库表中插入数据的命令是________。 22.在程序中,事务以BEGIN TRANSACTION语句开始,以________语句或ROLL-BACK 语句结束。 23.数据库的并发操作通常会带来三个问题:________问题、读脏数据问题、不可重复读问题。 24.ODBC技术为应用程序提供了一套CLI函数库和基于________的运行支持环境。 25.在面向对象技术中,数据类型系统由基本类型、复合类型和________三部分组成。 三、简答题(本大题共10小题,每小题3分,共30分) 26.什么是数据独立性?在数据库中有哪两级独立性?

数据库系统原理 山大考试题库及答案

数据库系统原理—线上 一、选择题 1、数据是以()的方式存储于操作系统(OS)之中的。 A、数据文件 B、日志文件 C、存储类型 D、并行 学生回答是:A 2、()是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。 A、数据管理 B、数据处理 C、数据加工 D、数据收集 学生回答是:A 3、数据库管理系统简称() A、DDA B、DB C、DBA D、DBMS 学生回答是:D 4、Oracle数据库特点说法正确的是:() 1支持单用户、大事务量的事务处理 2数据安全性和完整性控制 3提供对于数据库操作的接口 4支持集中式数据处理 5可移植性、可兼容性和可连接性 A、12 B、235 C、35 D、25 学生回答是:B 5、()是位于用户与操作系统之间的一层数据管理软件。 A、数据库管理系统 B、数据库 C、数据库系统 D、数据库管理员 学生回答是:A 6、一般来说,数据库用户账号总是与某一登录账号相关联,但有一个例外那就是()用户 A、sa B、system C、guest D、admin 学生回答是:C 7、()以自由软件为主。 A、MySQL B、SQL Server C、Dreanwaver D、Oracle 学生回答是:A 8、数据库的简称()A、DAB、DBC、BDD、DD 学生回答是:B 9、()是自由软件,因此不属于厂商产品,所以归属于应用中间件软件。 A、MSSQL B、MySQL C、oracle D、linux学生回答是:B10、MS SQL Server 能在那两种安全模式下运行A、数据库认证模式 B、WINDOWS认证模式 C、混合模式 D、安全认证模式 学生回答是:BC

江西财经大学数据库系统原理历年试卷

江西财经大学 06-07第一学期期末考试试卷 试卷代码:03115 授课课时:96 课程名称:数据库系统原理B 适用对象:本科选课班 一、选择题(从下列各题四个答案中选出一个正确答案,每小题1分,共10分) 1、保护数据库,防止未经授权的不合法的使用造成的数据泄漏、更改破坏。这是指数据的_____。 A、安全性 B、完整性 C、并发控制 D、恢复 2、若事务T对数据R已加X锁,则其他事务对数据R_____。 A、可以加S锁不能加X锁 B、不能加S锁可以加X锁 B、可以加S锁也可以加X锁 D、不能加任何锁 3、数据库具有较高的____。 A、程序与数据可靠性 B、程序与数据完整性 C、程序与数据独立性 D、程序与数据一致性。 4、DB、DBS、DBMS三者之间的关系是_____。 A、D BS包括D B、DBMS B、DB包括DBS、DBMS C、DBMS包括DB、DBMS D、DBS就是DB,也就是DBMS 5、常用的数据模型不包括_____。 A、网状模型 B、链状模型 C、层次模型 D、关系模型 6、数据库的_____是指数据库的正确性和相容性。 A、安全性 B、完整性 C、并发控制 D、恢复、 7、用于数据库恢复的重要文件是_____。 A、数据文件 B、索引文件 C、日志文件 D、备注文件 8、数据库中的封锁机制是_____的主要方法。 A、完整性 B、安全性 C、并发控制 D、恢复 9、关系模型中,一个关键字是_____。 A、可由多个任意属性组成 B、至多由一个属性组成 C、由一个或多个其值能唯一标识该模式中任何元组的属性组成 D、以上都不是 10、数据库系统的核心是_____。 A、数据库 B、数据库管理系统 C、数据模型 D、软 件工具 二、简答题(回答要点,并简明扼要作解释。每题5分,共20分) 1、简述各种不同的封锁协议及解决的问题 2、分析发生系统故障时数据库可能出现的问题是什么

2007年10月自考试题数据库系统原理试卷

自考乐园俱乐部,专注于自考,致力于成为全国最全,最优的自考学习交流,资料共享平台..... 俱乐部名称:自考乐园;俱乐部id :5346389(请牢记它哦~在百度贴吧的搜索框中输入俱乐部id ,可以直接进入俱乐部);俱乐部url 地址:https://www.wendangku.net/doc/3012301555.html,/club/5346389(您也可以通过此url 进入俱乐部。) 1 全国2007年10月高等教育自学考试 数据库系统原理试题 课程代码:04735 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.在数据库方式下,信息处理中占据中心位置的是( ) A.磁盘 B.程序 C.数据 D.内存 2.下列功能中,不属于...DML 基本操作功能的是( ) A.排序 B.插入 C.修改 D.检索 3.在下列四种模型中,与计算机的硬件及软件均无关.. 的是( ) A.外部模型 B.逻辑模型 C.概念模型 D.内部模型 4.设计数据库时,应该首先设计数据库的( ) A.应用系统结构 B.概念结构 C.逻辑结构 D.物理结构 5.如果实体X 的存在依赖于Y 的存在,且X 主键的部分或全部从Y 中获得,则X 是( ) A.递归实体 B.复合实体 C.弱实体 D.超类实体 6.关系规范化中的插入异常是指( ) A.不该插入的数据被插入 B.应该插入的数据没插入 C.插入了没有用的数据 D.插入了错误的数据 7.两个函数依赖集F 和G 等价的充分必要条件是( ) A.F=G B.F +=G C.F=G + D.F +=G + 8.设有关系R 和S 如题8图: R A B C

04735数据库系统原理201510

2015年10月高等教育自学考试全国统一命题考试 数据库系统原理试卷 (课程代码04735) 本试卷共4页,满分100分。考试时间150分钟。 考生答题注意事项: 1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸。2.第一部分为选择题。、必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。3.第二部分为非选择题。必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答o 4.合理安排答题空间,超出答题区域无效。 第一部分选择题 一、单项选择题(本大题共15小题。每小题2分。共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。未涂、错涂或多涂均无分。 1.不是数据管理技术进人数据库阶段的标志的20世纪60年代末的三件大事的是A.1968年美国IBM公司推出层次模型IMS系统 B.1969年美国CODASYL组织发布了DBTG报告 C.1970年美国IBM公司的E.F.Codd连续发表论文 D.1970年James Gray因在数据库领域的成就获得图灵奖 2.关于概念模型的描述,不正确的是 A.概念模型表达了数据的局部逻辑结构 B.概念模型是从用户需要的观点出发,对数据建模 C.概念模型独立于硬件和软件 D.概念模型是数据库设计人员与用户之间进行交流的工具 3.不是数据库的运行与维护阶段任务的工作是 A.数据库的转储和恢复B.数据库试运行 C.数据库安全性、完整性控制D.数据库性能的监督、分析和改进 4.在关系模型中,对于关系性质叙述正确的是 A.关系中每一个属性值都是可分解的 B.关系中允许出现重复元组 C.由于关系是一个集合,因此不考虑元组间的顺序,即没有行序 D.元组中的属性在理论上是有序的 5.在讨论关系模式的质量时,关于非形式化的衡量准则,叙述不正确的是 A.关系模式的设计应尽可能只包含有直接联系的属性 B.尽可能使得相应关系中不出现插入、删除和修改等操作异常 C.相应关系中最好放置一些经常为空值的属性 D.尽可能使关系的等值连接在主键和外键的属性上进行 6.“左部不可约依赖”也称为 A.局部依赖B.完全依赖 C.平凡函数依赖D.非平凡的函数依赖 7.如题7图,两个关系R1和R2,运算能得到关系R3的是

数据库系统原理版课后习题参考答案

答案仅供参考 第一章数据库系统概述 选择题 B、B、A 简答题 1.请简述数据,数据库,数据库管理系统,数据库系统的概念。P27 数据是描述事物的记录符号,是指用物理符号记录下来的,可以鉴别的信息。 数据库即存储数据的仓库,严格意义上是指长期存储在计算机中的有组织的、可共享的数据集合。 数据库管理系统是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间。数据库系统是指在计算机中引入数据库技术之后的系统,包括数据库、数据库管理系统及相关实用工具、应用程序、数据库管理员和用户。 2.请简述早数据库管理技术中,与人工管理、文件系统相比,数据库系统的优点。 数据共享性高 数据冗余小 易于保证数据一致性 数据独立性高 可以实施统一管理与控制 减少了应用程序开发与维护的工作量 3.请简述数据库系统的三级模式和两层映像的含义。P31 答: 数据库的三级模式是指数据库系统是由模式、外模式和内模式三级工程的,对应了数据的三级抽象。 两层映像是指三级模式之间的映像关系,即外模式/模式映像和模式/内模式映像。 4.请简述关系模型与网状模型、层次模型的区别。P35 使用二维表结构表示实体及实体间的联系 建立在严格的数学概念的基础上 概念单一,统一用关系表示实体和实体之间的联系,数据结构简单清晰,用户易懂易用 存取路径对用户透明,具有更高的数据独立性、更好的安全保密性。

第二章关系数据库 选择题 C、C、D 简答题 1.请简述关系数据库的基本特征。P48 答:关系数据库的基本特征是使用关系数据模型组织数据。 2.请简述什么是参照完整性约束。P55 答:参照完整性约束是指:若属性或属性组F是基本关系R的外码,与基本关系S的主码K 相对应,则对于R中每个元组在F上的取值只允许有两种可能,要么是空值,要么与S中某个元组的主码值对应。 3.请简述关系规范化过程。 答:对于存在数据冗余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这就是所谓的规范化过程。 第三章数据库设计 选择题 B、C、C 简答题 1. 请简述数据库设计的基本步骤。P66 需求分析设计;概念结构设计;逻辑结构设计;物理结构设计;数据库设计;数据库的运行和维护。 2. 请分别举例说明实体之间联系的三种表现情形。P74 一对一联系:对于实体集A中的每个实体,实体集B中最多只有一个实体与之联系,反之亦然。举例:班级与班长,每个班只有一个班长,每个班长也只在一个班内任职。 一对多联系:对于实体集A中的每个实体,实体集B中有N个实体与之联系,反之,对于实体集B中的每个实体,实体集A中最多只有一个实体与之联系。举例:班级与班级成员,每个班级对应多个班级成员,每个班级成员只对应一个班级。 多对多联系:对于实体集A中的每个实体,实体集B中有N个实体与之联系,反之,对于实体集B中的每个实体,实体集A中有M个实体与之联系。举例:授课班级与任课教师,

数据库系统原理04735历年试题

全国2009年1月自考数据库系统原理试题 一、单项选择题(本大题共15小题,每小题2分,共30分) 1.使用二维表格结构表达实体及实体间联系的数据模型是( ) A.层次模型 B.网状模型 C.关系模型 D.联系模型 2.数据库系统不仅包括数据库本身,还要包括相应的硬件、软件和( ) A.DBMS B.数据库应用系统 C.相关的计算机系统D.DBA 3.数据库系统提供的数据控制功能,不包括( ) A.并发控制 B.控制数据冗余 C.完整性保护D.故障恢复 4.学校里规定,一个教师最多可讲授3门课程,最少必须讲授l门课程;每门课程最多5个教师讲授,最少需要一个教师讲授,则教师与课程的基数分别为( ) A.(1,3),(1,5) B.(3,1),(5,1) C.(1,5),(1,3) D.(5,1),(3,1) 5.有关系R(A,B,C),主码为A;S(D,A),主码为D,外码为A,参照R中的属性A。关系R和S的元组如下表所示。关系S中违反关系完整性规则的元组是( ) R S A.(d1,2) B.(d2,NULL) C.(d3,4) D.(d4,1) 6.在最小依赖集F中,下面叙述不正确的是( ) A.F中每个FD的右部都是单属性B.F中每个FD的左部都是单属性 C.F中没有冗余的FD D.F中每个FD的左部没有冗余的属性 7.如果某个属性包含在候选键中,则它称为( ) A.非主属性 B.关键属性 C.复合属性 D.主属性 8.设有关系R和S如下表:

R S T 则关系T是关系R和关系S的( ) A.自然连接结果 B. 连接结果 C.笛卡尔积D.并 9.关系运算以关系代数为理论基础,关系代数的最基本操作是并、差、笛卡尔积和( ) A.投影、连接B.连接、选择 C.选择、投影D.交、选择 10.以下叙述中正确的是( ) A.为了实现连接运算,SELECT命令中必须指出属性的来源 B.如果缺省WHERE子句,则会产生错误信息 C.在SQL语言中绝大多数连接操作都是自然连接 D.连接操作中不可以用别名指定数据的来源 11.SQL语言中建立惟一性索引的命令是( ) A.CREATE INDEX 索引名 ON 基本表名(属性名) B.CREATE INDEX UNIQUE索引名 ON 基本表名(属性名) C.CREATE UNIQUE INDEX索引名 ON 基本表名(属性名) D.CREATE DISTINCT INDEX索引名 ON 基本表名(属性名) 12.DBMS的并发控制子系统保证了事务的( ) A.原子性实现B.一致性实现 C.隔离性实现D.持久性实现 13.在DB恢复时,对已经提交但更新未写入磁盘的事务执行( ) A.UNDO处理B.REDO处理 C.ROLLBACK处理D.ABORT处理 14.SQL Server 2000用于存储任务计划信息、事件处理信息、备份恢复信息以及异常报告的是( ) A.Master数据库B.Model数据库 C.Msdb数据库D.Tempdb数据库 15.在SQL/CLI中,保存元组或参数的有关信息的是( ) A.环境记录 B.连接记录 C.语句记录 D.描述记录

2013年10月全国自学考试数据库系统原理试题及答案

2013年10月全国自学考试数据库系统原理试题及答案 选择题部分 一、单项选择题(本大题共15小题,每小题2分,共30分) 1.在数据管理技术发展过程中,关于数据库阶段描述错误 ..的是(C) A.采用数据模型表示复杂的数据结构B.有较高的数据独立性 C.对数据的操作只能以记录为单位D.数据库系统为用户提供了方便的用户接口 2.关于逻辑模型,下面叙述错误 ..的是(A) A.逻辑模型独立于硬件和软件 B.逻辑模型表达了DB的整体逻辑结构 C.逻辑模型是从数据库实现的观点出发,对数据建模 D.逻辑模型是数据库设计人员与应用程序员之间交流的工具 3.对于数据库系统生存期,属于数据库实现阶段的工作的是(B) A.将局部概念模型综合成全局概念模型 B.数据库试运行 C.设计应用程序与数据库的接口 D.数据库的重组织和重构造 4.在关系模型完整性规则中,要求“不允许引用不存在的实体”的规则是(B) A.实体完整性规则B.参照完整性规则 C.用户定义的完整性规则D.域的引用规则 5.已知关系R有如下函数依赖{AB→C,BC→D,AD→E},则{A,B}的闭包是(D) A.{A,B} B.{A,B,C} C.{A,B,C,D} D.{A,B,C,D,E} 6.关于关系模式分解,叙述正确的是(C) A.2NF的关系模式不一定是1NF B.3NF的关系模式一定是BCNF C.分解成BCNF模式集的算法能保证无损分解,但不一定能保证FD集 D.消除了非主属性对键的局部函数依赖的关系一定是3NF 7.有关系SC(SNO,CNO,AGE,SCORE),查找年龄大于22岁的学生的学号和分数,正确的关系代数表达式是(A)ⅰ.πSNO,SCORE(σAGE>22(SC))ⅱ.σA GE>22(πSNO,SCORE(SC)) ⅲ.πSNO,SCORE(σAGE>22(πSNO,SCORE,AGE(SC))) A.i和ⅲ正确B.只有i正确 C.只有ⅱ正确D.i和ⅱ正确 8.下列关系代数操作中,要求两个运算对象其属性结构完全相同的是(D) A.笛卡儿积、连接B.投影、选择 C.自然连接、除法D.并、交、差 9.使用SQL语句进行查询操作时,若希望查询出全部存在的元组,一般使用的保留字是(D) A.Unique B.Except

相关文档
相关文档 最新文档