北大青鸟广州天河:ACCP 的难点解释

北大青鸟广州天河:ACCP 的难点解释
[url]http://www.accp-teem.com.cn/ArticleView/2003-11-13/Article_View_212.Htm[/url]
1.关于运算符优先级
    问题:
  int a = 4,b = 20;
  if ( a>b && ++a   printf("b = %d", b);
  else
  printf("a = %d", a);
  此程序实验时它的输出结果为a=4.
  在if后面的表达式中,当求表达式的值时,首先应该求的是++a,因为根据运算符的优先级别++优于>。 
    答复:
    有于&&逻辑与运算符的结合方向是自左向右的,所以在执行if语句时,因为是逻辑与&&的运算,当判断到a>b时,不符合,将不再执行后面的++a
    2.参照完整性、级联关系
    问题:
  在ACCES中,从主-从表中删除记录,必须先删除从表中的相应记录,只有从表中的记录删除以后,才能删除主表中的相应记录。但在级连删除中,却可以在主表中的记录被删除,则从表中的相应数据也会被自动删除。
    答复:
  在实施了参照完整性后,如果不实施级联删除,则必须先删除从表中的相关记录才能删除主表中的记录。如果选择实施级联删除,则可以直接删除主表中的记录,同时从表中的相关记录也被删除。
    3.关于候选键和次要键
    问题:
  请解释一下候选键和次要键的区别。
    答复:
  有些关系的关键字是由单个属性组成的,还有一些关系的关键字常常是由若干属性的组合而构成的,即这种关系中的元组不能由任何一个属性唯一标识,必须由多个属性的组合才能唯一标识。例如,如果有考试成绩关系:考试成绩(学号,考试日期,考试科目,姓名,性别,成绩,学部号,原单位),它的关键字由(学号,考试日期,考试科目)属性的组合构成。这就是组合键。
    候选关键字或候选码:如果在一个关系中,存在多个属性(或属性组合)都能用来唯一标识该关系的元组,这些属性(或属性组合)都称为该关系的候选关键字或候选码。主关键字或主码:在一个关系的若干个候选关键字中指定作为关键字的属性(或属性组合)称为该关系的主关键字或主码。例如,在考试成绩关系中,如果姓名字段的值在每次考试中都是唯一的话,则(学号,考试日期,考试科目)和(姓名,考试日期,考试科目)是该关系的两个候选关键字,可以选择(学号,考试日期,考试科目)作为该关系的主关键字。
    而次要键,书中写的很明确,是没有用做“主键”的“备用键”,也可以理解为是组合键中的剔除“主键”的属性。
    4.关于优化查询
    问题:
  请解释一下优化查询。
    答复:
  查询优化是个很庞大的概念,A2K教材4.15.4节针对ACCESS数据库做了一些查询优化的准则:例如确保已对“联接”两侧的的字段进行了索引。如果在这两个表之间存在“主键―外键”关系,那么该索引将会自动创建;从多个表中访问记录时,建议您在查询中包括主表的关键字字段,而不要包括相关表的外键;只包括查询结果中所必需的字段;必须对所有要排序的字段进行索引。如果查询需要按字段的组合排序的记录,那么必须首先创建组合索引(对多个字段的索引);也需要对包含在查询准则中的字段进行索引;非索引字段或计算字段尽量不要包含在准则中;建议您经常“压缩”数据库。“压缩数据库”的好处在后面讲述数据库的章节中会看到;在使用“LIKE”运算符检索记录时,通配符应该放在字符串的结尾处而不是放在字符串的开始处。如果通配符放在字符串的结尾处,可以用索引来检索记录。否则,无法使用索引;尽量避免在查询中包括 “备注”或“OLE 对象”这样的数据类型的字段。
    5.VB中的变量声明
    问题:
  在VB中,我们可以有private声明一个模块级变量,也可用public声明一个所有模块中均可使用的变量,那么对于同一模块用private和 public声明应没有区别。
    答复:
  private和public关键字的作用范围不同,但对同一模块是相同的。private定义的是局部变量。
    6.关于特殊IP地址
    问题:
  除去了127.0.0.1之外,还有什么特殊的IP地址?
    答复:
  有些特殊地址用做特殊用途:0.0.0.0 所有网络,写路由表时用此地址作为目标地址,写缺省网关的记录;255.255.255.255 本地广播地址;127.x.y.z 回路测试地址,发送到这些地址上的分组不输出到网络上,被计算机内部处理为传入的分组,这一特性用于网络软件的调试,例如你说的127.0.0.1,就是测试网卡是否正确初始化的特殊地址。还有一些组播地址,在2000 server中的很多服务都是依赖于这些组播地址的,例如224.0.0.1向同一网段内所有主机和路由器广播。
    7.关于句柄
    问题:
  什么叫句柄?
    答复:
  句柄实际上是一种指向某种资源的指针,但与指针又有所不同。
    “句柄”(handle),handle的本意是把柄,把手的意思。是你与操作系统打交道的东东。举个通俗的例子,比如你考上了大学,入学后,学校(操作系统)会给你一个学生证号。注意,这个号码是学校指定的,你无法自选。有了这个号码(学生证,假设一证多用)就可以享受学校提供的服务:如你就可以去图书馆借书,去食堂吃饭,去教室上课等等。但你不能到食堂里买啤酒,因为学校不允许这种服务。而在计算机中系统提供的服务就是API调用,你有了HANDLE,就可以理直气壮地向系统提出调用API的服务。而指针的权力就大多了,有了指针你可以到处去喝酒,打架,学校(操作系统)管不着,所以句柄和指针的区别在于句柄只能调用系统提供的服务。而句柄虽然是一个能相互区别的号码,但与我们普通的ID号又有区别,普通的ID号是可以由程序员自己定义的,而句柄不行,它是对象生成时系统指定的,是为了区别系统中存在的各个对象,这个句柄不是由程序员符给的。实际应用中,最常用的就是文件句柄和窗口句柄。例如,窗口句柄的值是一个长整数,每个窗体都用一个句柄来表示。所以句柄是不会重复的,很多的函数都会用到窗体的句柄。
    8.有关SQL Server的一组问题
    问题:
  A.系统是依据什么准则将数据库对象(如表、存储过程等)放入主要文件或次要文件?
  B.请解释文件组的概念。它到底是如何优化系统性能的?
  C.详细说明“FOR LOAD”和“FOR ATTACH”的概念。
    答复:
  A) Microsoft? SQL Server(tm) 2000 使用一组操作系统文件映射数据库。数据库中的所有数据和对象(如表、存储过程、触发器和视图)都存储在下列操作系统文件中:
  1)主要
  该文件包含数据库的启动信息,并用于存储数据。每个数据库都有一个主要数据文件。
  2)次要
  这些文件含有不能置于主要数据文件中的所有数据。如果主文件可以包含数据库中的所有数据,那么数据库就不需要次要数据文件。有些数据库可能足够大故需要多个次要数据文件,或使用位于不同磁盘驱动器上的辅助文件将数据扩展到多个磁盘。
  3)事务日志
  这些文件包含用于恢复数据库的日志信息。每个数据库都必须至少有一个日志文件。
  例如,创建简单的数据库 sales 时,可以只使用一个包含所有数据和对象的主文件和一个包含事务日志信息的日志文件。另一种情况是,创建更复杂的数据库 orders 时,可以使用一个主文件和五个辅助文件,数据库内的数据和对象扩展到所有的六个文件中,另外有四个日志文件包含事务日志信息。
  B) 允许对文件进行分组,以便于管理和数据的分配/放置。例如,可以分别在三个硬盘驱动器上创建三个文件(Data1.ndf、Data2.ndf 和 Data3.ndf),并将这三个文件指派到文件组 fgroup1 中。然后,可以明确地在文件组 fgroup1 上创建一个表。对表中数据的查询将分散到三个磁盘上,因而性能得以提高。在 RAID(独立磁盘冗余阵列)条带集上创建单个文件也可以获得相同的性能改善。然而,文件和文件组使您得以在新磁盘上轻易地添加新文件。另外,如果数据库超过单个 Microsoft Windows NT? 文件的最大大小,则可以使用次要数据文件允许数据库继续增长。
  C) FOR LOAD在SQL SERVER6.5的create database命令中用于将已存在的数据库文件或备份的数据库恢复到系统中,而不是重新创建一个数据库。在SQL SERVER7.0以上的版本中,则往往通过restore命令来恢复一个数据库,很少用到FOR LOAD选项。保留该选项是为了和老版本兼容。
  FOR ATTACH选项用于附加数据库,将现有的一些操作系统文件(从数据库中分离出来的数据库文件)附加到一个数据库中。附加的数据库必须使用与 SQL Server 相同的代码页和排序次序创建。否则,附加操作将失败。

你可能感兴趣的:(职场,休闲,it培训,广州北大青鸟)