請問數據庫系統題目問題

下列問題求解

1-5手寫問題


1. (15%) 考慮通用關係 R = {A, B, C, D, E, F, G, H, I, J} 和函數依賴集 F = { {A, B}→{C }, {A}→{D, E}, {B}→{F}, {F} →{G, H}, {D}→{I, J} }。
(a) (5%) R 的關鍵是什麼?解釋你的答案。
(b) (5%) 將 R 分解為 2NF。
(c) (5%) 根據您在 (b) 中的結果,將 R 分解為 3NF。

2. (20%) 考慮關係 R,它具有保存大學課程和部分時間表的屬性; R = {Course_no、Sec_no、Offering_dept、Credit_hours、Course_level、Instructor_ssn、Semester、Year、Days_hours、Room_no、No_of_students}。假設以下函數依賴對 R 成立:{Course_no} → {Offering_dept, Credit_hours, Course_level} {Course_no, Sec_no, Semester, Year} → {Days_hours, Room_no, No_of_students, Instructor_ssn} {Room_no, Daysester_hours, → Sem {Instructor_ssn, Course_no, Sec_no}
(a) (5%) 關係是什麼範式?解釋你的答案。
(b) (3%) 嘗試確定哪些屬性集構成 R 的鍵。
(c) (12%) 應用歸一化直到你不能進一步分解關係。說明每個分解背後的原因。

3. (10%) 以 Part# 作為哈希鍵的 PARTS 文件包括具有以下 Part# 值的記錄:2369、3760、4692、4871、5659、1821、1074、7115、1620、2428、3943、697 4981, 9208。該文件使用8個桶,編號為0到7。每個桶是一個磁盤塊,保存兩條記錄。使用散列函數 h(K)=K mod 8 按照給定的順序將這些記錄加載到文件中。計算在 Part# 上隨機檢索的塊訪問的平均次數。

4. (40%) 考慮一個塊大小 B = 512 字節的磁盤。塊指針的長度為 P = 6 個字節,記錄指針的長度為 PR = 7 個字節。一個文件有 r = 30,000 條固定長度的 EMPLOYEE 記錄。每條記錄具有以下字段:姓名(30 個字節)、Ssn(9 個字節)、Department_code(9 個字節)、地址(40 個字節)、Phone(10 個字節)、Birth_date(8 個字節)、Sex(1 個字節)、Job_code 4 個字節)和薪水(4 個字節,實數)。附加字節用作刪除標記。
(a) (4%) 以字節為單位計算記錄大小 R(包括刪除標記)。
(b) (6%) 假設一個非跨區組織,計算塊因子 bfr 和磁盤塊數 b。
(c) (15%, each 5%) 假設文件按關鍵字字段 Ssn 排序,我們想在 Ssn 上構造一個主索引。計算
(i) 索引阻塞因子 bfri(也是索引扇出 fo);
(ii) 一級索引條目數和一級索引塊數;
(iii) 如果我們將其製成多級索引所需的級別數;
(iv) 多級索引所需的塊總數;和
(v) 使用主索引從文件中搜索和檢索記錄所需的塊訪問次數(給定其 Ssn 值)。
(d) (15%, each 5%) 假設文件不是按關鍵字字段 Ssn 排序的,我們想在 Ssn 上構造一個二級索引。對二級索引重複之前的練習(c 部分)。

5. (15%) 一級索引、二級索引、聚簇索引的區別是什麼?

第一题

img

一级索引、二级索引、聚簇索引的区别:
一级索引:是建表是自带的索引,每个数据结构都是一个索引;
聚簇索引:每张表都有对应的聚簇索引,MySQL优先按主键建立聚簇索引;如果你没有指定主键,使用唯一键;如果连唯一键也没有,mysql会自动建一个rowid字段,用它来组织这棵 B+树。聚簇索引的叶子节点包含数据行
二级索引,就是我们普通建立在某个字段上的索引,也是B+树,但是叶子节点存储的是主键。使用二级索引查询完整数据行时,会执行两个步骤:先查二级索引,然后再查聚簇索引。但是查询索引字段时,就会只走二级索引

看看这个:https://www.cnblogs.com/lliuye/p/9118591.html

主键是能唯一标识记录的属性,1NF就是分量不可再分,2NF就是在1NF的基础上去除部分函数依赖,3NF就是在2NF的基础上去除传递函数依赖,你可以自己慢慢试,不建议你直接要答案,这样对能力的提升没好处,这谨代表我个人意见,学SQL的都是这样走过来的,急不得