高级数据库期末复习

83 阅读2分钟
  1. 为什么关系数据模型要求一个关系中的元组不能重复?这一要求在SQL中是通过什么实现的?

    因为关系数据模型中关系是元组的集合,而集合中不能有重复的元素。通过实体完整性即主键实现。

  2. 给定学生表 Student(s#,sname,age)、课程表Course(c#,cname,type,credit)和选课表SC(s#,c#,score)。其中 type 是整型,0 表示必修课,1 表示选修课。credit 表示课程学分。请用一条 SQL 语句,回答下面的查询:

    1. 求出已选必修课总学分大于 16 并且所选必修课成绩都大于75分的学生姓名
    SELECT s.sname
    FROM Student s
    JOIN SC sc ON s.s# = sc.s#
    JOIN Course c ON sc.c# = c.c#
    WHERE c.type = 0
    GROUP BY s.s# 
    HAVING SUM(c.credit) > 16
    AND
    MIN(sc.score) > 75;
    
    1. 求出各门课程的课程名、平均成绩和不及格率(提示:不在选课表中的课程不用考虑)
    SELECT c.cname, 
    AVG(sc.score) AS avg_score,
    SUM(CASE WHEN sc.score < 60 THEN 1 ELSE 0 END) / COUNT(sc.s#) AS fail_rate
    FROM Course c 
    JOIN SC sc ON c.c# = sc.c#
    GROUP BY c.c#
    
    
  3. 假设某磁盘具有以下特性: (1)有 8 个盘面和 8192 个柱面 (2)盘面直径为 3.5 英寸,其中内圈不存储数据,内圈直径为 1.5 英寸 (3)每磁道平均有 256 个扇区,每个扇区 512 字节 (4)每个磁道 10%被用于间隙 (5)磁盘转速为 7200 RPM (6)磁头启动到停止需要 1ms,每移动 500 个柱面另加 1ms 回答下列问题:

    1. 如果所有的磁道拥有相同的扇区数,那么最内圈的磁道的位密度是多少? image.png

    2. 如果一个块是 8KB,那么一个块的传输时间是多少? image.png

    3. 平均寻道时间是多少?
      image.png

    结论:求平均寻道时间时,平均寻道的柱面数为N/3

  4. 假设某块磁盘的参数如下:容量为 36.7GB,传输速率为 45MB/s,旋转一圈的时间为 4ms,平均寻道时间为 5ms,最小寻道时间为0.65ms(指磁头寻道到相邻磁道的时间),一个磁道大小为180KB。如果磁盘块大小为 4KB,请回答下面问题(所有结果均四舍五入保留小数点后两位):

    1. 随机读取 1000 个磁盘块需要多少时间(ms)? image.png
    2. 假定(1)中的 1000 个磁盘块在单个磁道上连续存储,并且所有磁盘块存储在相邻的磁道上,此时读取这 1000 个磁盘块需要多少时间(ms)?
      image.png
  5. image.png

image.png