三级数据库刷题集(一)

第一题

1.题目:数据库系统的三级模式结构和二层映像功能提供了数据的逻辑独立性和物理独立性。下列提供逻辑独立性的是()。
A、外模式/模式映像
B、模式/內模式映像
C、内模式/外模式映像
D、模式/模式映像

知识点细究:
数据库的三级模式结构:分别为外模式,模式,内模式
外模式: 所谓外模式从外字就可以看出这是用户可见数据的表现形式。是一种概念上的数据表现形式。
模式: 既然居于内模式和外模式之间,那就具有内外模式所有 数据,就是全数据的表现形式,而其用户不可见。是一种逻辑上数据表现形式。
内模式: 既然是内,那就是计算机内部的数据表现形式,所以这是一种物理上的数据表现形式。
数据库的二级映像有两种:分别为外模式/模式映像,模式/内模式映像
外模式/模式映像: 模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。数据库中的同一模式可以有任意多个外模式,对于每个外模式,都存在一个外模式/模式映像,它确定了数据局部逻辑结构与全局逻辑结构之间的对应关系。
模式/内模式映像: 内模式描述的是数据的存储逻辑结构。数据库中的模式和内模式只有一个,所以模式/内模式映像是唯一的。它确定了数据的全局逻辑结构与存储逻辑结构之间的对应关系。
数据与程序之间的逻辑独立性 如果在原有的数据之间增加新的联系或者增加新的数据项时,由于数据库管理员对各个外模式对应的外模式/模式映像作相应的改变,这一影响的功能确保了数据局部逻辑结构不变。由于应用程序是根据数据的局部逻辑结构编写的,所以应用程序并不会修改,因而保证了数据与程序间的逻辑独立性。
数据与程序之间的物理独立性: 但采用更为先进的存储结构,而需要改变原有的存储结构时,数据库管理员就需要对模式/内模式映像作相应的改变,使其模式仍然保持不变,即把存储结构变化的影响限制在模式之下,这种数据的存储结构和存储方法较高地独立于应用程序,通过映像功能保证数据存储结构的变换而不影响数据的全局逻辑结构的改变,从而不必修改应用程序,也就保证了数据与程序之间的物理独立性。
逻辑独立性 用户的应用程序与数据库的逻辑结构是相互独立的。
物理独立性 用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。
在这里插入图片描述

第二题

2。题目:浏览器/服务器架构是现阶段非常流行的数据库应用系统架构。在此架构中,应用服务器起到了非常重要的作用。下列关于应用服务器的说法,错误的是()。
A、应用服务器一般运行程序代码,实现面向具体应用领域的业务规则,数据库服务器承担数据存储、管理等功能
B、应用服务器会根据用户请求连接相应的数据库,获取数据并进行处理,将结果返回给用户
C、应用服务器一般需具有数据访问和数据存储等功能,在数据库服务器出现问题时可以继续向用户提供服务
D、应用服务器一般提供了集群、失效恢复、负载均衡等公共服务,可以大幅度提高系统性能和可靠性

知识点细究:
浏览器/服务器(B/S) 结构浏览器/服务器(B/S)结构的数据库应用系统是随着Intranet兴起而产生的一种互联网环境下的新型数据库应用结构。它将数据处理功能分解并分布在表示层,功能层和数据层三个层次,分别由Web浏览器,Web应用服务器和数据库服务器来实现。在这种结构下,用户工作界面是通过浏览器来实现,浏览器只负责发送接受数据,几乎不进行数据的处理,主要的任务在服务器端处理。

第三题

3.题目:关系模型是数据库系统最常用的一种数据模型。下列关于关系模型的说法,错误的是()。
A、关系模型中的关系是一个二维表,表中的一行对应关系中的一个元组
B、按照一定的规则可以将ER模型转换为关系模型中的关系模式
C、关系模型是建立在集合论的基础上的,关系模型中数据存取对用户是透明的
D、关系模型中的关系模式描述关系的动态结构,其内容随用户对数据库的操作而变化

解析:关系模式描述关系的静态结构,它是静态、稳定的,而关系是动态、随用户对数据库的操作而变化的。考生要区分开来关系模式与关系。

第四题

4.题目:在数据库应用系统的需求分析阶段,设有如下工作:
I.分析与描述目标系统需要完成的功能
Ⅱ.分析与描述目标系统对响应时间、存储容量的要求
Ⅲ、分析与描述目标系统涉及的数据范围、数据的属性特征及数据之间的关系
IV.分析与描述每项功能活动需要的输入数据、业务规则及输出数据
V.分析与描述目标系统的总体结构、功能活动及各功能活动之间的关系以上属于系统功能建模内容的是()。
A、仅I、IV和V
B、仅Ⅱ、IV和V
C、仅I、Ⅱ和Ⅲ
D、仅I、IV和V

知识点细究:
需求分析阶段: 数据库的需求分析阶段是指用户对DBAS在功能,性能,行为,设计约束等方面的期望和要求,也就是希望DBAS做什么,做到什么程度等的具体要求。包括数据需求分析,功能需求分析,性能需求分析,其他需求分析
数据需求分析 指从数据进行组织与存储角度,用户试图角度,分析与辨识应用领域所管理的各类数据项和数据结构,形成数据字典的主要内容。数据字典包括数据项,数据结构,数据流,数据存储,处理过程,五个方面。
功能需求分析 包括数据需求分析和业务规则需求分析
性能需求分析 包括1.数据操作响应时间。2.系统吞吐量。3.允许并发访问的最大用户数。4.每TPS代价值(系统性价比)
软硬件方面1.系统硬件资源。2.网络通信设备性能。3.操作系统环境。4.数据库的逻辑设计和物理设计质量。5.DBMS的配置和性能。6.数据库应用程序自身。
其他需求分析 包括1.存储需求分析-初始数据库大小,数据库增长速度。2.安全性需求分析-DBAS系统应到达的安全控制级别,各类用户的数据视图和视图访问权限,DBAS应有的口令保护机制或其他安全认证机制。

第五题

5.题目:在概念模型中,属性用于描述事物的特征或性质。关于属性有下列说法:
I.一个实体集中的属性名要唯一
Ⅱ,属性一般用名词或名词短语命名
Ⅲ.一个属性的值可以取自不同的域
IV.实体集的标识属性能够唯一识别实体集中每一个实体
V.标识属性的取值不能重复,但可以为空
以上说法正确的是()。
A、仅I、Ⅲ和V
B、仅I、Ⅱ和IV
C、仅Ⅱ、IV和V
D、仅I、Ⅲ和IV

Ⅲ:一个属性的值必须属于唯一的域,域在这里相当于数据类型的子集,属性的取值必须为同一域。V:标识属性的值不能重复且不可以为空。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
100套三级数据库上机试题,含有详细的分析方法和思路讲解!例如:1.调用函数rwdata(),从IN.dat文件读取10组数据(m和k值),并嵌套调用primenum函数分别得出array[]数组。请编写函数primenum(int m,int k,int array[]),该函数的功能是:将紧靠m的k个素数存入数组array并在屏幕上显示。最后把结果输出到文件OUT.dat。 例如,若输入3 9,则应输出5 7 11 13 17 19 23 29 31。 注意:部分程序已经给出。请勿改动主函数main()和输出数据函数rwdata()的内容。 #include <conio.h> #include <stdio.h> void rwdata(); void primenum(int m, int k, int array[]) { } main() { int m, n, array[1000]; printf("\nPlease enter two integers:"); scanf("%d%d", &m, &n); primenum(m, n, array); for (m=0; m<n; m++) printf("%d ", array[m]); printf("\n"); rwdata(); } void rwdata() { int m, n, array[1000], i; FILE *readfile, *writefile; readfile = fopen("in.dat", "r"); writefile = fopen("out.dat", "w"); for (i=0; i<10; i++) { fscanf(readfile, "%d %d", &m, &n); primenum(m, n, array); for (m=0; m<n; m++) fprintf(writefile, "%d ", array[m]); fprintf(writefile, "\n"); } fclose(readfile); fclose(writefile); } 【知识点播】素数的定义:如果一个数的正因子只有1和这个数本身,那么这个数就是素数。 【题目分析】分析题目可知,题需要解决的问题就是Primenum函数的功能问题(rwdata函数功能题已经给出),而Primenum函数的功能是求在指定数m之后的k个素数,因此本题的关键在于如何判断一个数是素数,之后就可以通过一个for循环来求得在m之后的k个素数了。 【解题思路】根据素数的定义,本题采用的算法是:首先定义一个变量Value,并把m之后的数逐个赋值给该变量;然后用2~value/2数除value,如果value能被2~value/2之的任何一个整数整除,则value不是素数,结束循环;如果value不能被2~value/2之间的任一整数整除,则退出循环,然后判断循环变量i是否大于value/2,如果大于,则value是素数,并将value值赋给array[n],然后n++;再判断n是否大于等于k,如果大于等于k,就完成了程序要求的功能,退出循环,否则value加1,根据以上算法继续进行。 【答案】 void primenum(int m, int k, int array[]) { int value = m+1; int half, n = 0, i; while(1) { half = value/2; for (i=2; i<=half; i++) if (value%i == 0) break; if (i > half) { array[n] = value; n++; } if (n >= k) break; value++; } } 【容错分析】判断一个数m(大于1)是否素数的简单的算法:枚举2到m/2之间的整数,看能否被m整除,如果能整除,就不是素数,否则是素数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值