• 沒有找到結果。

实验三 - SQL 数据完整性

N/A
N/A
Protected

Academic year: 2021

Share "实验三 - SQL 数据完整性"

Copied!
9
0
0

加載中.... (立即查看全文)

全文

(1)

实验三 - SQL 数据完整性

张海 3130000923

实验目的

1. 熟悉通过 SQL 进行数据完整性控制的方法。

实验要求

1. 定义若干表,其中包括 Primary Key, Foreign Key 和 Check 的定 义。

2. 让表中插入数据,考察 Primary Key 如何控制实体完整性。

3. 删除被引用表中的行,考察 Foreign Key 中 ON DELETE 子句如何 控制参照完整性。

4. 修改被引用表中的行的 Primary Key,考察 Foreign Key 中 ON UPDATE 子句如何控制参照完整性。

5. 修改或插入表中数据,考察 CHECK 子句如何控制校验完整性。

6. 定义一个 Assertion, 并通过修改表中数据考察断言如何控制数据完 整性。

7. 定义一个 Trigger, 并通过修改表中数据考察触发器如何起作用。

8. 完成实验报告。

实验平台

(2)

1. 数据库管理系统:MySQL

实验过程

1. 新建表,其重点是 Foreign Key 与 Check 的建立,与 ON DELETE 和 ON UPDATE 语句:

2. Primary Key 测试:尝试插入 Primary Key 相同的两个记录,前一 个成功,后一个失败:

(3)

3. 插入其他表中数据,Check 测试失败(工资小于 2000 依然成功插 入)

(4)

4. 删除被引用表中的行,由于原先的设置为 RESTRICT,故删除被拒 绝:

(5)

5. 修改被引用表中的行,由于原先的设置为 CASCADE,故递归地改 变所有引用处,works 表中的名字也改变为 Bob:

(6)

6. 尝试加入断言,失败(MySQL 不支持):

(7)

7. 加入触发器,任何更新 works 表的操作都要求薪水在 2000 以上:

(8)

8. 触发器被触发,工资提升:

(9)

实验难点与解决方案

1. MySQL 的支持问题,包括 Check, Assertion, Trigger 中的事件驱动 操作等均无法正常支持。

2. 对语句的理解需要注意,例如添加 Trigger 时写了 ON UPDATE,

那么在 INSERT INTO 的时候就不会触发,我也因此花费了不少时 间。

參考文獻

相關文件

人群分裂成不同的光 譜,我們堅持正治不 入校園,製定全面關 顧學生的指引,讓學 校成為⼀塊平和的⼟.

學校中層管理者是一個召集人,責任包括個別學科的教 學、對同工的計劃及工作的支持、資源管理、評核及記

理解句子的 意思 理解句子前 後銜接關係.. 理解段落 理解句子的

 包括 包括 包括 包括學校 學校 學校管理 學校 管理 管理、 管理 、 、學生學習 、 學生學習 學生學習、 學生學習 、 、校風 、 校風 校風及其 校風 及其 及其 及其 他支援. 他支援

學生在專注理解遊戲時, 不自覺的要理 解文字提供的線索, 閱讀的目的明確而 有意義, 有助練習認字讀句。..

Instead of categorizing triggers by the functionality of their associated services [13], we categorize by the types of information they may leak, and iden- tified three types

對您而言,如何解決職場的無障礙(包括工作環境、工

在新學校感到安全 感到學校的支持 因應能力適當調適課程 提升自信心 加強家長的信心 運用家長作為.