1. 程式人生 > >《資料庫系統概念第六版》讀書筆記

《資料庫系統概念第六版》讀書筆記

1.任何沒有出現在group by句中的屬性如果出現在select子句中的話,它只能出現在聚集函式的內部(sum,avg,count,max,min)。否則,這樣的查詢是錯誤的。例:select dept_name,ID,avg(salary) from instructor group by dept_name;

2.having子句一般對分組限定條件。一般跟在group by語句後面。表示這分組所滿足的條件。與select子句情況類似,任何出現在having子句中,但沒有被聚集的屬性必須出現在group by子句中,否則查詢出錯。

3.集合的比較:“找出滿足下面條件的所有教師的姓名,他們的工資至少比Biology系某一位教師的工資高”。select name from instrutor where salary > some (select salary from instrutor where dept_name = 'Biology')。 >some ,<some表示至少比某一個要大或者至少比某一個小。

4.exists接受引數子查詢非空時返回true值。

5.為了與外連線運算相區分,之前不保留未匹配元組的連線運算稱作內連線運算(inner join)

6.左外連線(left outer join):只保留出現在左外連線運算之前(左邊)的關係中的元組。右外連線(right outer join):只保留出現在右外連線之後(右邊)的關係中的元組。全外連線(full outer join):保留出現在兩個關係中的元組。

7.一個事務或者在完成所有步驟後提交其行為,或者在不能成功完成其所有動作的情況下回滾其所有動作。通過這種方式資料庫提供了對事務具有原子性的抽象。

8.第一正規化(1NF):屬性不可分。

第二正規化(2NF):符合1NF,並且,非主屬性完全依賴於碼。 第三正規化(3NF):符合2NF,並且,消除傳遞依賴 BC正規化(BCNF):符合3NF,並且,主屬性不依賴於主屬性 第四正規化:要求把同一表內的多對多關係刪除。