1、第三次上機(個人作業)1. 驗正 Entity Integrity Constraints: Hint Primary key -NOT NULL 並觀察結果。错误訊息515,層級16,狀態2,行1無法插入NULL 值到資料行sid,資料表d4211db.d4211db.Classes; 資料行不得有Null。INSERT 已經失敗。陳述式已經結束。(0 個資料列受到影響)原因:违反了实体完整性。复合键当主键时,任何一个外来键都不可为空值。(2)中的sid为NULL(3) 輸入一 tuple (NULL ,S001,CS101, 12:00:00, 180-M, 85);並觀察結果。错误訊息5
2、15,層級16,狀態2,行1無法插入NULL 值到資料行eid,資料表d4211db.d4211db.Classes; 資料行不得有Null。INSERT 已經失敗。陳述式已經結束。(0 個資料列受到影響)原因:违反了实体完整性。复合键当主键时,任何一个外来键都不可为空值。(4) 輸入一 tuple (NULL ,NULL, CS101, 14:00:00,327-S,85);並觀察結果。错误訊息515,層級16,狀態2,行1無法插入NULL 值到資料行sid,資料表d4211db.d4211db.Classes; 資料行不得有Null。INSERT 已經失敗。陳述式已經結束。(0 個資料列受
3、到影響)原因:违反了实体完整性。复合键当主键时,任何一个外来键都不可为空值。【第二次隨堂測驗(60%) 】問題 3.1, 問題 3.2, 問題 3.7, 問題 3.4,問題 3.5問題 3.1: 解釋何謂 composite key? (5%)两个或两个以上的外来键组成的主键問題 3.2: 寫出“Classes”關聯表中的 composite key?(5%) id c_no問題 3.3: composite key 是一種 primary key 嗎? (10%) 是問題 3.4: 請在 BOB 資料庫的三張關聯表(BOB_books, BOB_bookstores, BOB_orders)
4、中找出 composite key. (10%)問題 3.5: 在輸入 tuples 如上述步驟(2)(4) 時,時系統允許那一筆 tuple 輸入呢(也就是那一個 tuple 沒有 error message,那一個有 error message)? 請逐一對每一 tuple 作答。不論你的答案是 Yes or No,皆必須說明理由。 (30%)【第二次隨堂測驗(40%) 】問題 3.6, 問題 3.7, 問題 3.8, 問題 3.92. 驗正 Referential Integrity Constraints:步驟(1)請在 圖表中找到“學號- Relational Schema Diag
5、ram_School “之關聯綱要圖 步驟(2)觀察(courses 關聯表 和 classes 關聯表) (instructors 關聯表 和 classes 關聯表)及 (students 關聯表 和 classes 關聯表) 的關聯性。問題 3.6:請寫下你所觀察到的關聯為何? (10%)步驟(3)請執行下列 SQL 語法:USE Schooldelete from Instructors where eid=E003select * from Instructorsselect * from Studentsselect * from Coursesselect * from Clas
6、ses步驟(4)利用每一個 資料表 關聯性改變 (courses 關聯表 和 classes 關聯表) 、(students 關聯表 和 classes 關聯表)及 (instructors 關聯表 和 classes 關聯表),使這些關聯表彼此間可以進行 cascade update 及 cascade delete 【注意】要存檔問題 3.7:請寫下上述步驟(4),你如何操作,使得關聯表變為串聯更新及串聯刪除? (10%)步驟(5)請執行下列 SQL 語法:USE Schooldelete from Instructors where eid=E003select * from Instr
7、uctorsselect * from Studentsselect * from Coursesselect * from Classes問題 3.8: 上述步驟(5)發生錯誤訊息了? 為什麼步驟(3)是正常的,而步驟(5) 卻發生錯誤? (10%)步驟(4)針對(BOB_books 和 BOB_orders)及(BOB_bookstores 和 BOB_orders)的關聯執行DROP CONSTRAINT FK_bob_orders_bob_books 之後觀察“學號-Relational Schema Diagram_BOB” 圖中,在(BOB_books和BOB_orders)關聯性
8、為何?執行ADD CONSTRAINT FK_bob_orders_bob_books FOREIGN KEY(id) REFERENCES bob_books (id) ON DELETE CASCADE ON UPDATE CASCADE 之後觀察在“學號-Relational Schema Diagram_BOB” 圖中,在(BOB_books和BOB_orders)關聯性為何步驟(4-1)USE Schoolselect * from BOB_booksselect * from BOB_bookstoresselect * from BOB_ordersGO步驟(4-2)ALTER TABLE bob_orders DROPCONSTRAINT FK_bob_orders_bob_books GO步驟(4-3)ALTER TABLE bob_ordersADD CONSTRAINT FK_bob_orders_bob_books FOREIGN KEY (id) REFERENCES bob_books (id) ON DELETE CASCADE ON UPDATE CASCADE 問題3.9: 請問執行下列刪除一筆記錄的結果為何? (10%)begin transactiondelete BOB_books where id=1rollback GO