歪理邪说解析架构设计师上午考试试题之二
分析2010下半年系统架构设计师上午试题06-10题
【引言】
1.一直期待专业的技术话题也能和《明朝哪些事》一样,有趣和好玩,能吸引大家的去阅读,并享受其乐趣;
2.培养对技术的兴趣,有时候比掌握技术本身更重要;一旦有了浓厚的兴趣,自己主动就会主动去探寻,去发现技术的秘密。所谓迈入技术的科技殿堂,也许就是来自自己对技术真正有了乐趣,并享受其过程。解决了学习驱动力问题。
3.偶发现专业知识,如果用搞笑、异类、歪理邪说来解读记忆得会更牢固些。因为你发现技术不是高高在上,深不可测,而是和日常生活紧密相她原来就在我们身边,从未走远。
【试题】
●某数据库中有员工关系E(员工号,姓名,部门,职称,月薪);产品关系P(产品号,产品名称,型号,尺寸,颜色);仓库关系W(仓库号,仓库名称,地址,负责人);库存关系I(仓库号,产品号,产品数量)。
a.若数据库设计中要求:
①仓库关系W中的“负责人”引用员工关系的员工号
②库存关系I中的“仓库号,产品号”惟一标识I中的每一个记录
③员工关系E中的职称为“工程师”的月薪不能低于3500元
则①②③依次要满足的完整性约束是___(6)___。
(6) A.实体完整性、参照完整性、用户定义完整性
B.参照完整性、实体完整性、用户定义完整性
C.用户定义完整性、实体完整性、参照完整性
D.实体完整性、用户定义完整性、参照完整性
b.若需得到每种产品的名称和该产品的总库存量,则对应的查询语句为:
SELELCT产品名称,SUM(产品数量)
FROM P, I
WHERE P.产品号=1.产品号___(7)___;
(7)A. ORDER BY产品名称 B. ORDER BY产品数量
C. GROUP BY产品名称 D. GROUP BY产品数量
【歪理邪说】
(6)
①仓库关系W中的“负责人”引用员工关系的员工号
引用当然是参照完整性啦!
②库存关系I中的“仓库号,产品号”惟一标识I中的每一个记录
仓库号,产品号当然指得是仓库和产品两个实体啦!
③员工关系E中的职称为“工程师”的月薪不能低于3500元
月薪都已经低于3500元了,有精确的数字,明显的用户定义。
(7)ORDER 是排序,什么从大到小,从小到大,所以A、B不对。
GROUP按组分类。
“若需得到每种产品的名称和该产品的总库存量”,答案C GROUP BY产品名称正好符合题意。
题目没有说,没有问“每种产品数量”,问的是“该产品的总库存量”。
参考答案:(6) B (7)C
● 若对关系R(A,B,C,D)和S(C,D,E)进行关系代数运算,则表达式与___(8)___等价。
【歪理邪说】
关系R里第3列属性名是C,与关系S里的第1列的属性名也是C,名称相同,必须标上关系名加以区别。
所以A,C不对
同样答案里的D<C,也不对,因为C、D属性名在关系R与S里是相同的,必须加上关系名。
参考答案:B
● 计算机执行程序时,在一个指令周期的过程中,为了能够从内存中读指令操作码,首先是将__(9)___的内容送到地址总线上。
(9)A.程序计数器PC B.指令寄存器IR
C.状态寄存器SR D.通用寄存器GR
【歪理邪说】
关键词,“计算机执行程序时”,“首先是将”。
参考答案:A
【知识点】
l 程序计数器是什么?
程序计数器是用于存放下一条指令所在单元的地址的地方。
单片机及汇编语言中常称作PC(program counter)。
l PC是什么单词的缩写
Program Counter
l 为什么需要程序计数器
为了保证程序(在操作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。
程序计数器正是起到这种作用,所以通常又称为指令计数器。
l 程序计数器的处理流程
在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。
l 程序计数器的异常处理流程
但是,当遇到转移指令如JMP指令时,后继指令的地址(即PC的内容)必须从指令寄存器中的地址字段取得。在这种情况下,下一条从内存取出的指令将由转移指令来规定,而不像通常一样按顺序来取得。因此程序计数器的结构应当是具有寄存信息和计数两种功能的结构。
●内存按字节编址,利用8K×4bit的存储器芯片构成84000H到8FFFFH的内存,共需__(10)___片。
(10)A. 6 B. 8 C. 12 D. 24
【歪理邪说】
数学解法,假设需要N片存储芯片,则有
8K ×4bit/8bit× N = (8FFFF – 84000 + 1) = C000 =12 ×163 = 12× (24)3= 12×212
即
1024 ×4×N = 12×212 = 12 × 22 × 210 = 12 × 4 × 1024
N = 12
注意题目说内存按字节编址,而存储器芯片又是按bit比特位来说存储容量的。
也就是说84000H到8FFFFH的内存,指的是按字节来编写地址的。
也就是说注意单位的统一,然后来计算。
参考答案:C