38.数据库文件orders.dbf用于存放顾客的购物信息,其字段有:cname(顾客名,字符型),iname(商品名,字符型),num(数量,数值型)。下述程序的功能是按数量对orders.dbf中的记录以升序排列。请完成下述程序。    SET TALK OFF    DIMENSION ary(3), tmp(3)    USE orders    FOR  i=RECCOUNT( ) TO  1  STEP –1      GO  i      SCATTER TO ary           (1)            SCAN  NEXT  i        IF      (2)       THEN                (3)                 GATHER FROM ary          FOR j=1 TO 3             ary(j)=tmp(j)          ENDFOR        ENDIF       ENDSCAN       GATHER FROM ary    ENDFOR    LIST    USE    RETURN    (1)  (2)  (3)  五、综合题(本大题共2小题,每小题5分,共10分)  39.数据库文件hotel.dbf的字段有:roomno(房间号,字符型),roomtype(房间类型,字符型),roomprice(单价,数值型)和occupied(入住,逻辑型)。其中roomtype有"A"、  "B"、"C"、"D"四类房型。请说明函数occupy( ),roty( ),ropr( )的功能。    SET  TALK  OFF    SET  PROCEDURE  TO  stat    USE  hotel    CLEAR    ?? occupy ( )    ?? roty ( )    ?? ropr ( )    USE  SET  PROCEDURE  TO  RETURN  文件stat.prg的内容如下:  FUNCTION  occupy( )  PRIVATE  num  num=0  SCAN       IF  occupied  THEN           num=num+1       ENDIF  ENDSCAN  occupy=num/RECCOUNT( )  RETURN occupy  FUNCTION  roty( )  PRIVATE   num1  num1=0  SCAN      IF  occupied   .AND.  roomtype="A"THEN          num1=num1+1  ENDIF    ENDSCAN    roty=num1    RETURN  roty        FUNCTION  ropr( )    PRIVATE  num2    num2=0    SCAN  IF  occupied   .AND.  roomtype="B"THEN      num2=num2+roomprice  ENDIF    ENDSCAN    ropr=num2    RETURN  ropr    (1)函数occupy()功能:    (2)函数roty()功能:    (3)函数ropr()功能:  40.已知关系模式R(city, street,   zip)其中city为城市编号,street为街道编号,zip为邮政编码,一个城市的一条街道只有一个邮政编码,一个邮政编码只属于一个城市。请写出R上成立的所有函数依赖及所有候选键,并说明R最高是第几范式。 |