1. 程式人生 > >資料庫基礎知識複習

資料庫基礎知識複習

1.     資料檢視與資料模型

資料抽象共有三個層次:物理層、邏輯層和檢視層。在邏輯層使用的資料模型包括兩類:一類是概念資料模型,主要用於資料庫設計,它能被一般的使用者理解,與人的思維表達方式比較接近。這樣的模型有實體-聯絡模型(ERM);另一類是邏輯資料模型,按計算機系統的觀點對資料建模,使得資料更適合用計算機加以表示。這裡模型主要用於DBMS的實現,比如關係模型、面向物件模型、層次模型和網狀模型。設計師構建資料庫模式的方法通常是首先使用E-R模型在高層對資料建模,然後再將其轉變成關係模型。在物理層使用的資料模型稱為物理資料模型。

資料模型通常由資料結構、資料操作和完整性約束三部分組成。

2.     資料庫語言

根據功能不同,可以將資料庫系統提供的語言分成三種類型:1)資料定義語言(DDL),用於定義資料庫模式;2)資料操縱語言(DML),用於對資料庫進行查詢和更新;3)資料控制語言(DCL),用於對資料進行許可權管理。

3.     資料庫模式

根據資料的不同抽象層次,資料庫有三級模式:物理模式(內模式)在物理層描述資料庫中全體儲存結構和存取方法,而邏輯模式(概念模式)則在邏輯層描述資料庫中全體資料的邏輯結構和特徵。在檢視層也可分為若干模式,稱為子模式(外模式),它描述了資料庫使用者能夠看見和使用的區域性資料的邏輯結構和特徵。通常一個數據庫只有一個物理模式和一個邏輯模式,但是子模式有若干個。

4.     E-R圖

E-R圖由以下元素構成:1)矩形,代表實體型;2)橢圓,代表屬性;3)菱形,代表聯絡;4)線段,將屬性和實體性相連,或將實體型和聯絡相連。

5.     關係模型

關係模型由關係資料結構、關係操作集合和關係完整性約束三部分構成。在關係模型中,現實世界實體以及實體間的聯絡均用關係來表示。

關係模型中常用的關係操作包括:選擇、投影、連線、除、並、交、差等查詢操作和增加、刪除、修改兩大部分。關係操作的特點是集合操作方式,即操作的物件和結果都是集合。關係操作可以使用兩種方式定義:基於代數的定義稱為關係代數;基於邏輯的定義稱為關係演算。由於使用變數的不同,關係演算又分為元組關係演算和域關係演算。

關係模型允許定義三類完整性約束:實體完整性、參照完整性和使用者定義完整性

。其中實體完整性和參照完整性是關係模型必須滿足的完整性約束條件。實體完整性規則是:關係的主碼不能取空值。參照完整性規則是:外碼必須是另一個表中主碼的有效值,或者是“空值”

6.     連線運算

連線運算是從兩個關係的乘運算結果中選取屬性間滿足一定條件的元組,構成新的關係。連線運算有兩種:等值連線和自然連線。自然連線要求兩個關係中進行比較的分量必須是相同的屬性組,並且在結果中把重複的屬性列去掉

7.     SQL

關係資料庫系統支援三級模式結構,其模式(資料庫)、外模式和內模式中的基本物件有表、檢視和索引。因此SQL的資料定義功能包括模式定義、表定義、檢視定義和索引定義。SQL通常不提供修改模式定義、修改檢視定義和修改索引定義。使用者如果想修改這些物件,只能先將它們刪除,然後再重建。

8.     基本表的操作

1)       建立表

create table 基本表名

(列名型別,

……

完整性約束,

……

)

完整性約束主要有三種子句:主鍵子句(primary key)、外來鍵子句(foreignkey)和檢查子句(check)。

2)       修改表

alter  table  <基本表名>  add  <列名>  <型別>

alter  table  <基本表名>  drop  <列名>  <型別>  [cascade | restrict](cascade表示所有引用到該列的檢視和約束也要一起自動刪除;restrict表示在沒有檢視或約束引用該屬性時,才能在本表中刪除該列,否則拒絕刪除。)

alter  table  <基本表名>  modify  <列名>  <型別>

3)       撤銷表

drop  table  <基本表名>  [cascade | restrict]

9.     SQL查詢

where子句中可以使用下列運算子:

l  算術運算子

l  邏輯運算子

l  字串匹配運算子,包括like,not like

l  集合成員資格運算子,包括in,not in

l  謂詞,包括exists,all,some,unique

l  聚合函式,包括avg,min,max,sum和count

l  還可以是另一個select語句

select語句完整語法:

        select  目標表的列名或列表達式序列

        from 基本表名和(或)檢視序列

        [where 行條件表示式]

        [group by  列名序列]

               [having  組條件表示式]

        [order by 列名[asc | desc]]

整個語句的執行過程如下:

1)       讀取from子句中基本表、檢視的資料,執行笛卡爾積操作;

2)       選取滿足where子句中給出的條件表示式的元組;

3)       按group子句中指定列的值分組,同時提取滿足having子句中組條件表示式的那些組;

4)       按select子句中給出的列名或列表達式求值輸出;

5)       order子句對輸出的目標表進行排序,按附加說明asc升序排列,或按desc降序排列。

10. 檢視

建立檢視:

        create view <檢視名> [<列名> <列名>…]

        as <子查詢>

with checkoption表示對檢視進行增刪改是要保證操作的行滿足檢視定義中的謂詞條件(即子查詢中的條件表示式)。

檢視最終是定義在基本表之上的,對檢視的一切操作最終也要轉換為對基本表的操作。檢視的好處:

l  檢視能夠簡化使用者的操作

l  檢視是使用者能以多種角度看待同一資料

l  檢視對重構資料庫提供了一定程度的邏輯獨立性

l  檢視能夠對機密資料提供安全保護

11. 事務

事務是一系列的資料庫操作,是資料庫應用程式的基本單元,是反映現實世界需要以完整單位提交的一項工作。事務是使用者定義的一個數據庫操作序列。

事務的四個特徵:原子性、一致性、隔離性和永續性。

事務處理包括資料庫恢復和併發控制。資料庫恢復有兩個目的:保證事務的原子性和使資料庫能恢復到正確狀態。

資料恢復的原理概括為冗餘,建立冗餘資料最常用的技術是資料轉儲和登入日誌檔案。資料轉儲是由DBA定期地將整個資料庫複製到磁碟或另一個磁碟上儲存起來的過程。

12. 觸發器

一個觸發器用來定義一個條件以及在該條件為真時需要執行的動作。通常,觸發器的條件以斷言的形式定義。動作以過程的形式定義。

13. 索引