全国计算机技术与软件专业技术资格(水平)考试
数据库系统工程师全真预测试卷(一)上午试题参考答案

(考试时间9:00—11:30 共150分钟)

1.C

2.C

3.B

4.A

5.A

6.B

7.D

8.B

9.B

10.A

11.B

12.D

13.C

14.B

15.A

16.C

17.C

18.A

19.A

20.D

21.B

22.C

23.D

24.B

25.C

26.A

27.C

28.B

29.A

30.D

31.C

32.B

33.B

34.C

35.B

36.C

37.B

38.C

39.D

40.A

41.A

42.C

43.C

44.C

45.D

46.B

47.C

48.A

49.C

50.B

51.B

52.D

53.A

54.B

55.D

56.A

57.A

58.B

59.B

60.C

61.D

62.C

63.F

64.B

65.C

66.A

67.B

68.C

69.D 70.D
71.B 72.C 73.A 74.A 75.D

全国计算机技术与软件专业技术资格(水平)考试
数据库系统工程师全真预测试卷(一)下午试题参考答案

(考试时间14:00—16:30 共150分钟)

试题一
  [问题l]该系统的E-R图如下图所示。
  各实体的属性为:
  工厂:厂名、厂长、厂长姓名
  车间:车间号、车间主任性名、地址、电话
  工人:职工号、姓名、年龄、性别、工种
  仓库:仓库号、仓库主任姓名、电话
  零件:零件号、重量、价格
  产品:产品号、价格


该系统的E-R图


  [问题2]相应的关系模式如下:
  工厂(厂名、厂长姓名)
  车间(车间号、车间主任姓名、地址、电话、厂名)
  工人(职工号、姓名、年龄、姓别、工种、车间号)
  仓库(仓库号、仓库主任姓名、电话、厂名)
  产品(产品号、价格、车间号、仓库号)
  零件(零件号、重量、价格、仓库号)
  制造(车间号、零件号)
  [问题3]该系统的层次模型图如下图所示。


该系统的层次模型图

试题二
  在时刻t36存在事务T2,T3,T9和T8死锁,另外,事务T4等待事务T9,事务T12
  等待事务T4,事务T11,T10等待事务T12。
试题三
  [问题1]
  采用ORDB的定义语言定义这个数据库的语句如下:
  CREATE TYPE MyString charvarying;
  CREATE TABLE university(uname MyString,
    city MyString,
    staffsetof(ref(stndent)));
  CREATE TABLE student(sno MyString,
    Sname MyString,
    city MyString.
  1anguage setof(MyString),
  study ref (unversity));
  [问题2]
  对应查询的SELE(W语句如下:
  SELECT A.uname,A.city,B.sno,B.Sname
  FROM unversity as A,A.staff as B
  WHERE A.city=B.city
试题四
  [问题1]
  DEPT(DNAME,DHEAD,PHONE)
  TEACHER(TNO,TNAME,SEX,AGE,TITLE)
  STUDENT(SNO,SNAME,SEX,CIASS,MONITOR)
  COURSE(CNO,CNAME,HOUR,ROOM)
  D-T(DNAMETNO)
  D-S(DNAMESNO)
  TEACH(TNOCNO,EVAL)
  STUDY(SNOCNO,GRADE)
  其中有下划线的项为关键项。
  [问题2]
  将STUDENT分解为STUDENT(SNO,SNAME,SEX,CLASS),
  SCLASS(CLASS,MONITOR)
  [问题3]
    CREATE TABLE TEACHER(TNO(CHAR(8),NONULL),
    TNAME(CHAR(20)),SEX(CHAR(1)),AGE(INTEGER),TITLE(CHAI)))
试题五
  程序清单:
  1.< %@ LANGUAGE ="VBSCRIP"% >
  2.<%
  3.Qption Explicit
  4.Response.Expires = 0
  5.%>
  6.<!--#include file ="adovbs.inc"-->
  7.<~%
  8.Const intPageSize =10
  9.Dim imCurrentPage,objConn ,objRS, strQ
  10.Dim intTotalPages, intI
  11.
  12.If Request. ServerVariables( "CONTENT_LENGTH"- 0 Then
  13.intCurrentPage= 1
  14.Else
  15.intCurrentPage = Cint (Request. Form ("Current Page" ) )
  16.Select Case Request. Form ("Submit")
  17.Case"Previous"
  18.intCurrentPage = intCurrentPage - 1
  19.Case"Next"
  20.intCurrentPage=intCurrentPage+1
  21.End Select
  22.Set objRS - Session ("MyRecol-dset")
  23.End If
  24.
  25.If Not (isobjeet(objRS)) Then
  26.Set objConn=Server.Createobject ("ADODB. Connection")
  27.objConn.Open"Data Source = Northwind; User ID = sa; Password = 1"
  28.
  29.Set objRS =Server.CreateObject ("ADODB.Recordset")
  30.objRS = CursodocatJon = adUseClient
  31.objRS = CursorType = adOpenStatic
  32.objRS = CaeheSize = intPageSize
  33.strQ = "SELECT Customers. CompanyName, orders, orderDate"
  34.strQ = strQ &"FROM Orders INNER JOIN Customers ON"
  35.strQ = strO &"Orders. CustomerlD- Customem CustomerlD~
  36.strQ = strQ &"ORDER BY Orders. OrderDate,"
  37.strQ = strQ &"Customers.CompanyName"
  38.objRS.Open strQ,objCom~,,, Nothing
  39.Set objRS.ActiveConnction = Nothing
  40.objConn.Close
  41.Set objConn = Nothing
  42.Set Session("MyRecordset") = objRS
  43.End If
  44.
  45.objRS.PageSize = intPageSize
  46.If Not(objRS.EOF) Then ohjRS.AbsolutePage = intCurrentPage
  47.
  48.intTotalPages = objRS.PageCount
  49.%>
  50.<HTML> <BODY>
  51.<B> Customer:OrderDate</B><p>
  52.<%
  53.inti = 0
  54.Do while( ( Not objRS. EOF) And ( inti< ob}RS. PageSize) )
  55.Response.Write
   Server.HTMLEncode ( objRS ("CompanyName") &:"&objRS ("OrderDate")) &"<BR>"
  56.inti=inti + 1
  57. ohjRS.MoveNext
  58.Loop
  59.%>
  60.<BR>
  6i.Page<% = intCurrentPage % >of< % = intTotalPages % > <7 p>
  62.<FORM ACTION="<% = Request.ServerVariables("SCRIPT_NAME")%>"
  63.<INPUT TYPE=>"Hidden"NAME="CvrrentPage"VALUE ="<% = intCurrentPage%>"
  64.<%
  65.If intCurrentPage>1 Then %>
  66.<INPUT TYPE = "Submit"NAME = "Submit"VALUE = "Previous">
  67.<% End If
  68.If intCurrentPage<>intTotalPages Then %>
  69.<INPUT TYPE = "Submit"NAME = "SubmitVALUE = "Next">
  70.<% End If %>
  71.</FORM>
  72.</BODY></HTML>
  注意存储在Session变量中的记录集在脚本中从没有关闭,因而,应该在810bal屈a中的SPS~lon的OtlEnd事件中完成这件事情:
  1.<SCRIPT LANGUAGE = VBscript RUNAT = Server>
  2.Sub Session_OnEnd
  3.Dim oh}RS
  4.Set ob}RS=Session ("MyRecordset~)
  5.If isobject (objRS) Then
  6.obojRS.Close
  7.Set objRS = Nothing
  8.Set Session ("MyRecordset") = Nothing
  9. End If
  10. End sub
  11. </SCRIPT>