1. 程式人生 > 實用技巧 >Leetcode 二叉樹的坡度

Leetcode 二叉樹的坡度

第一組:

一、 SQL 語句編寫題

(一)  編寫 SQL 語句

對於教學資料庫的三個基本表

學生 S(S#,SNAME,AGE,SEX)

學習 SC(S#,C#,GRADE)

課程 C(C#,CNAME,TEACHER)

試用 SQL 語句表示:檢索 Liu 同學學的課程號。

(二)  編寫 SQL 語句

建立一個學生關係表 Student,表中有 5 個欄位:學號 Sno(字元型)、姓名 Sname(字元型)、

性別 Sex(字元型)、年齡 Age(整型)、系別 Dept(字元型),其中 Sno 是關係的碼;建立

一個學生選課關係表 SC,表中有 3 個欄位:學號 Sno(字元型)、課程號 Cno(字元型)、成

績 Grade(數值型),其中 Sno、Cno 是關係的碼,用 SQL 語言完成下列功能:

① 建立學生關係表 Student 和學生選課關係表 SC。

② 查詢計算機系(’CS’)所有同學的姓名和各科成績。

③ 新增一個學生記錄,學號為 20020003,姓名為吳剛,性別為男,年齡為 19 歲,所

在係為計算機系。

④ 邏輯刪除李江同學的相關記錄。

二、 解答題

(一) 解答題

學生運動會模型:

(1)有若干班級,每個班級包括: 班級號,班級名,專業,人數

(2)每個班級有若干運動員,運動員只能屬於一個班,包括:運動員號,姓名,性別,年

(3)有若干比賽專案,包括:專案號,名稱,比賽地點

(4)每名運動員可參加多項比賽,每個專案可有多人蔘加

(5)要求能夠公佈每個比賽專案的運動員名次與成績

(6)要求能夠公佈各個班級團體總分的名次和成績

解題要求:

(1)畫出每個實體及其屬性關係、實體間實體聯絡的 E-R 圖.

(2)根據試題中的處理要求:完成資料庫邏輯模型,包括各個表的名稱和屬性.並指出每

個表的主鍵和外來鍵。

(二) 解答題

根據 3NF 的定義及規範化方法,對關係模式

U={學號,姓名,所在系,系主任,課程號,成績

F={學號→姓名,學號→所在系,所在系→系主任(學號,課程號)→成績

使其滿足 3NF。

第二組:

一、 SQL 語句編寫題

(一)編寫 SQL 語句

1.設有職工基本表:EMP(ENO

其屬性分別表示職工號、姓名、年齡、性別、工資。為每個工資低於

200 元,試寫出這個操作的

2. 設某工廠資料庫中有兩個基本表:

車間基本表:DEPT(DNO,DNAME

的職工號。

人數) 主鍵:班級號

,年齡,班級號) 主鍵:運動員號外來鍵:班級號

比賽地點) 主鍵:專案號

,名次,得分) 主鍵:運動員號,專案號外來鍵:運動員號;專案號

的定義及規範化方法,對關係模式 R(U,F)

學號,姓名,所在系,系主任,課程號,成績}

學號→姓名,學號→所在系,所在系→系主任(學號,課程號)→成績

的關係模式,要求不存在非碼屬性對碼的部分依賴和傳遞依賴。

)中存在姓名、學號對碼(學號,課程號)的部分依賴,存在系主

)分解為如下三個關係模式: {學號,姓名,所在系} {所在系,系主任

三個關係模式中,不存在非碼屬性對碼的部分依賴和傳遞依賴。

ENO,ENAME,AGE,SEX,SALARY),

其屬性分別表示職工號、姓名、年齡、性別、工資。為每個工資低於 1000

元,試寫出這個操作的 SQL 語句。

WHERE SALARY<1000 AND SEX='女';

設某工廠資料庫中有兩個基本表:

DNAME,MGR_ENO),其屬性分別表示車間編號、車間名和車間主任

專案號外來鍵:運動員號;專案號

學號→姓名,學號→所在系,所在系→系主任(學號,課程號)→成績}進行分解。

)中存在姓名、學號對碼(學號,課程號)的部分依賴,存在系主

所在系,系主任} {學

1000 元的女職工加薪

),其屬性分別表示車間編號、車間名和車間主任

職工基本表:ERP(ENO,ENAME,AGE,SEX,SALARY,DNO),其屬性分別表示職工號、姓名、

年齡、性別、工資和所在車間的編號。

建立一個有關女車間主任的職工號和姓名的檢視,其結構如下: VIEW6(ENO,ENAME)。試

寫出建立該檢視 VIEW6 的 SQL 語句。

3. 設有一個工程供應資料庫系統,包括如下四個關係模式:

 S(SNO,SNAME, STATUS,CITY); 

P(PNO,PNAME,COLOR,WEIGHT); 

J(JNO,JNAME,CITY);

 SPJ(SNO,PNO,JNO,QTY);

供應商表 S 由供應商號、供應商名、狀態、城市組成; 零件表 P 由零件號、零件名、顏

色、重量組成; 工程專案表 J 由專案號、專案名、城市組成;

供應情況表 SPJ 由供應商號、零件號、專案號、供應數量組成;

(1)用關係代數查詢沒有使用天津供應商生產的紅色零件的工程號;

(2) 用關係代數查詢至少使用了供應商 S1 所供應的全部零件的工程號 JNO;

(3)用 SQL 查詢供應工程 J1 零件為紅色的工程號 JNO;

(4)用 SQL 查詢沒有使用天津供應商生產的零件的工程號;

(5)用 SQL 語句將全部紅色零件改為藍色;

(6) 用 SQL 語句將(S2,P4,J6,400)插入供應情況關係。

(二)編寫 SQL 語句

1. 設有學生選課關係 SC(學號,課程號,成績),試用 SQL 語句檢索

每門課程的最高分。

2. 關係模式如下:

商品 P(PNO,PN,COLOR,PRICE) 商店 S(SNO;SN,CITY) 銷售 SP(PNO,SNO,QTY)

分別用關係代數和 SQL 寫出查詢語句:查詢銷售商品"TV”的商店名 SN。

SP 必須書寫在 S、P 之間

3.設有關係 R 和 S 如下圖所示。

試用 SQL 語句實現:

(1)查詢屬性 C>50 時,R 中與相關聯的屬性 B 之值。

(2)當屬性 C=40 時,將 R 中與之相關聯的屬性 B 值修改為 b4。

4. 設有關係 R 和函式依賴 F:

R(W,X,Y,Z),F = { X→Z,WX→Y }。 試求下列問題:

(1)關係 R 屬於第幾正規化?

(2)如果關係 R 不屬於 BCNF,請將關係 R 逐步分解為 BCNF。

要求:寫出達到每一級正規化的分解過程,並指明消除什麼型別的函式依賴。

二、 解答題

(一)解答題

1. 設 T 1 ,T 2 ,T 3 是如下三個事務,其中 R 為資料庫中某個資料項,設 R 的初值為 0。

T 1 : R:=R+5

T 2 : R:=R*3

T 3 : R:=2

若允許三個事務並行執行,試列出所有可能的正確結果。採用什麼手段,可以解決並行

排程的不一致問題?

3. 在關係模式 R(U,F)中,U=ABCDEF={A→C,AC→B,B→D,C→E,EC→B} 計算(AB)

+ 。

4. 簡述資料庫概念模型的主要特點。

5. 簡述在 SQL 中,DELETE 語句與 DROP TABLE 的區別。

(二)解答題

設有如下資訊:下列 E-R 圖是反映產品與倉庫兩實體間聯絡的資訊模型,要求

(1)給出該 E-R 圖的關係資料庫模式,並指出相應的關鍵字。

(2)若倉庫號、倉庫名及倉庫地均為字元型且長度均為 10,用 SQL 語言為倉庫關係建立相

應的基表並說明實體完整性規則。

(3)將倉庫基表的查詢許可權授予所有使用者,收回 User3 對倉庫的查詢許可權。

第三組:

一、 SQL 語句編寫題

(一)編寫 SQL 語句

1.在資料表上機記錄中建立一個名為 insert_sjkh 的 insert 觸發器其作用是:當用戶在“上

機記錄”表中插入記錄時,若“上機卡”表中沒有該上機號,則提示使用者不能插入,否則,

提示記錄插入成功。(附:上機記錄表結構:(上機號 char(13),上機日期 datetime,開始時

間 datetime,結束時間 datetime,上機狀態 bit)。上機卡表結構:(上機號 char(13),姓名)

2.在 student 資料庫中的學生、課程註冊、課程表中建立一個帶參的儲存過程 cjcx。其功

能是:當任意輸入一個學生的姓名時,返回該學生的學號、選修的課程名和課程成績。然後

使用儲存過程,查詢學生“陳斌”的學號、選修的課程名和課程成績。

(二)編寫 SQL 語句

以下給出三個基本表:

Student(學生表)的欄位按順序為學號、姓名、性別、年齡、所屬院系;

Course(課程表)的欄位按順序為課程編號、課程名、先行課程、課程學分;

SC(選課表)的欄位按順序為學號、課程號、成績。

各表的記錄如下:

1. 查詢與“劉晨”在同一個系學習的學生的學號、學生姓名。

2. 將一個新學生記錄(03020;陳冬;男;18;IS)插入 Student 表中。

3. 將計算機科學系(CS)全體學生的成績置零。

4. 建立資訊系(IS)選修了 1 號課程的學生的檢視 IS_S1,欄位包括 Sno、Sname、Grade。

二、 解答題

(一)解答題

學生與教師教學模型

1)有若干班級,每個班級包括:班級號、班級名、專業、人數、教室

2)每個班級有若干學生,學生只能屬於一個班,學生包括:學號、姓名、性別、年

3)有若干教師,教師包括:編號、姓名、性別、年齡、職稱

4)開設若干課程,課程包括:課程號、課程名、課時、學分

5)一門課程可由多名教師任教,一名教師可任多門課程。

6)一門課程有多名學生選修,每名學生可選多門課,但選同一門課時,只能選其中

一名教師。

解題要求:

(1)畫出每個實體及其屬性關係、實體間實體聯絡的(E-R)圖。

(2)根據試題中的處理要求:完成資料庫邏輯模型,包括各個表的名稱和屬性。

(二)解答題

有一個應用,包括三個實體集。

址,店經理。 實體型別

工”的屬性有:職工編號,職工名,性別,工資

工只能服務於一家商店。

系中應反映出職工參加某商店工作的開始時間,會員的加入時間。

(1)試畫出反映商店、職工、會員實體型別及聯絡型別的

(2)將 ER 圖轉換成關係模式,並指出每個表的主鍵和外來鍵;

(3)指出以上關係模式所達到的正規化。

第四組:

一、 SQL 語句編寫題

(一)編寫 SQL 語句

以下各小題題基於教學資料庫的三個基本表

學生 S(S#,SNAME,AGE,SEX)

學習 SC(S#,C#,GRADE)

課程 C(C#,CNAME,TEACHER)

1. 試用元組表示式和關係代數表示式表示下列查詢語句:檢索年齡小於

2. 試用 SQL 的查詢語句表達下列查詢

3. 試用 SQL 的查詢語句表達下列查詢

4. 試用 SQL 更新語句表達以下更新操作:

(二)編寫 SQL 語句

設有如下 4 個關係模式:

S(SN,SNAME,CITY)

P(PN,PNAME,COLOR,WEIGHT)

J(JN,JNAME,CITY)

SPJ(SN,PN,JN,QTY)

其中:S 表示供應商,SN 為供應商編碼,SNAME 為供應商名字,CITY 為供應商所在城市;P

表示零件,PN 為零件編碼,PNAME 為零件名字,COLOR 為零件顏色,WEIGHT 為零件重量;J

表示工程,JN 為工程編碼,JNAME 為工程名字,CITY 為工程所在城市;SPJ 表示供應關係,

QTY 表示提供的零件數量。

寫出實現以下各題功能的 SQL 語句:

(1) 取出所有工程的全部細節。

(2) 取出所在城市為南京的所有工程的全部細節。

(3) 取出為所在城市為上海的工程提供零件的供應商編碼。

(4) 取出為所在城市為上海或北京的工程提供紅色零件的供應商編碼。

(5) 取出供應商與工程所在城市相同的供應商提供的零件編碼。

(6) 取出至少由一個和工程不在同一城市的供應商提供零件的工程編碼。

(7) 取出上海供應商不提供任何零件的工程編碼。

(8) 取出所有這樣的一些二元組,使得第 1 個城市的供應商為第 2 個城市的

工程提供零件。

二、 解答題

(一)解答題

東方貨運公司資料庫的樣本資料如下。

表名稱:卡車

車號  貨運站編號 型別  總行程  購入日期

1001  501  1  59002.7  11/06/90

1002  502  2  54523.8  11/08/90

1003  503  2  32116.6  09/29/91

1004  504  2  3256.9  01/14/92

表名稱:貨運站

貨運編號  地址  電話  經理

501  北京市東城區花市大街

111 號

010—67301234  何東海

502  北京市海淀花園路 101

010—64248892  吳明君

表名稱:型號

型別  汽車型號

1  DJS130

2  DLS121

根據資料庫的表結構和內容:

a. 指出每個表的主碼和外碼。如果沒有外碼,則寫“無”。

b. 卡車表存在實體完整性和參照完整性嗎?請詳細說明。

c 具體說明卡車表與運貨站表之間存在著什麼關係?

d.卡車表中包含多少個實體?

2.設有關係 R 與 S

R: A B C

2 3 4

4 5 6

7 8 9

S:

D E

7 5

4 8

計算 T

第五組:

一、 SQL 語句編寫題

(一)編寫 SQL 語句

建立一個學生關係表 Student,表中有 5 個欄位:學號 Sno(字元型)、姓名 Sname(字元型)、

性別 Sex(字元型)、年齡 Age(整型)、系別 Dept(字元型),其中 Sno 是關係的碼;建立

一個學生選課關係表 SC,表中有 3 個欄位:學號 Sno(字元型)、課程號 Cno(字元型)、成

績 Grade(數值型),其中 Sno、Cno 是關係的碼,用 SQL 語言完成下列功能:

① 建立學生關係表 Student 和學生選課關係表 SC。

② 查詢計算機系(’CS’)所有同學的姓名和各科成績。

③ 新增一個學生記錄,學號為 20020003,姓名為吳剛,性別為男,年齡為 19 歲,所

在係為計算機系。

④ 邏輯刪除李江同學的相關記錄。

(二)編寫 SQL 語句

表 1 部門表

表 2 職員表

1、根據表 1 和表 2,用 SQL 語句建立僱員表和部門表

假設有僱員關係表格,它的結構如下:

僱員(僱員編號,僱員姓名,年齡,受僱時間,薪水,電話號碼,部門編號)。僱員編號為

主鍵,部門編號為外來鍵。

部門(部門編號,部門名稱,部門所在地)主鍵是部門編號

2、請寫出下列查詢和操作 SQL 語句。

1)以遞增的方式列出職工的部門號碼(不重複);

2)查詢 AGE 年齡為 35 歲的職工全部資訊;

3)查詢在部門 20 或者 30 工作的,工資大於 1600,年齡大於 35 歲的職工資訊。

4)計算最高,最低和平均工資;

5)找處職工不足 3 人的部門及其相應的職工數;

6)將部門號為 10 部門所有人員工資提高 20%;

7)從僱員中找出工資大於平均工資的職工資訊;

8)刪除在部門 10 的,工資大於 2500 的職工資訊;

9)從僱員表僱員中選取工資大於 150 元職工的僱員編號,僱員姓名,工資和部門編號,構

成一個僱員工資檢視;

10)  查詢馬克所在部門名稱;

二、 解答題

(一)解答題

根據 3NF 的定義及規範化方法,對關係模式 R(U,F)

U={學號,姓名,所在系,系主任,課程號,成績}

F={學號→姓名,學號→所在系,所在系→系主任(學號,課程號)→成績}進行分解。

使其滿足 3NF。

(二)解答題

資料模型分析,關係模型 R(U,F)

U=ABCDEG,F={AD→E,AC→E,CB→G,BCD→AG,BD→A,AB→G,A→C}

(1) 求此模型的最小函式依賴集。

(2) 求出關係模式的候選碼。

(3) 此關係模型最高屬於哪級正規化。

(4) 將此模型按照模式分解的要求分解為 3NF。