天天看點

資料庫,SQL和JDBC

一,一個實際的資料庫管理系統必須支援一下任務:

1、  邏輯資料結構的建立和管理

2、  資料錄入和檢索

3、  邏輯一緻的資料庫管理

4、  重要階段資料的可靠存儲

關系型資料庫的三個必要條件:結構,完整性和資料處理

術語名詞:

主鍵:資料庫表中對儲存資料對象予以唯一和完整辨別的資料列或屬性的組合。一個資料庫表隻能有一個主鍵,且主鍵的取值不能缺失,即不能為空值(Null)。

外鍵:在關系資料庫中,每個資料表都是由關系來連系彼此的關系,父資料表(Parent Entity)的主鍵(Primery Key)會放在另一個資料表當屬性建立彼此的關系,而這個屬性就是外鍵。

表之間的關系:

一對一:第一個表中的每一行在第二個表中隻能有一行與其對應(具有相同的主鍵,可以執行連接配接功能,并能提高性能或者克服内在的限制)

一對多:第一個表中的每一行在第二個表中可以有零個,一個或者多個對應的行,但第二個表中的每個行隻能與第一個表中的一個行對應(即父與子的關系)

多對多:第一個表中的每一行在第二個表中有許多相對應的行,第二個表中的每一行也在第一個表中有許多相對應的行(多對多關系不能直接在關系型資料庫中建立,他們必須分解成多個多對一的關系)

視圖:通過不同的邏輯組合從資料庫中選擇資料來建立的臨時表(其操作與一般表相同)

範式化:按照範式法則将資料庫中的資料進行組織的過程

1.       第一範式:

#要求:*所有記錄具有相同的字段個數

       *所有的字段隻包含一個單一的資料項

       *沒有重複資料字段

2.  第二範式:

#要求:*表必須屬于第一範式。

       *表中包包含哪些不含有與所有鍵相關資訊的字段

        (要求删除任何與整個鍵沒有直接關系的資料)

3.   第三範式:

 #要求:*表必須屬于第二範式。

        *表中不能包含于主鍵無關的字段

4.   第四範式:

#要求: *表必須屬于第三範式

         *表不能包含一個實體的兩個或者對個互相獨立的多值因子

5.   第五範式:

#要求: *表必須屬于第四範式

        *表必須可以分解為更小的表,除非那些表在邏輯上擁有與原始表相同的主鍵

6.修正的第三範式(BCNF)

處理包含以下内容的表:*多個候選鍵 *複合候選鍵  *候選鍵重疊

(隻有當關系表中功能上互相依賴的那些列的每一列都是一個候選鍵的時候,該關系型表屬于BCNF,即:如果某個表包含許多可以用作主鍵(所謂的候選鍵)的列或者組,那麼該表一定屬于第三範式)

二.結構化查詢語言

1.資料定義語言(DDL)用于建立、更改以及取消表和索引

2.資料庫處理語言(DML)用于插入、更新以及删除資料。

3.資料查詢語言(DQL)使用SELECT指令查詢資料庫。

4事務控制指令用于啟動、送出或復原事務

5.資料控制語言(DCL)用于授權以及取消使用者的權限,一起密碼

CREATE TABLE tableName

(columnName dataType[(size)] [constraints] [default value],….);

完整性限制和觸發器

限制主要類型:

NULL或者NOT NULL限制指定一個字段是必須包含有效資料,還是保留為空

UNIQUE限制指定在某個特定列中不允許兩列具有相同值

PRIMARY KEY限制指定表的主鍵

觸發器:SQL允許使用者指定表中執行特定操作時應用的安全法則,這些法則既是觸發器

INSERT/UPDATE/DELETE/SELECT

事務管理和事務控制指令

ACID測試定義的屬性:

原子性(Atomicity)

一緻性(Consisteny)

隔離性(Isolation)

持續性(Durability)

資料結構體系:

兩層模型:應用程式層(JDBC驅動程式,業務邏輯以及使用者界面)-----資料庫層(RDBMS)

三層模型:

客戶将請求發送到應用伺服器,形成中間層。-----通過應用伺服器解釋請求,形成完成這些請求必須的SQL語句,---------------并将它們發送到資料庫。資料庫處理SQL語句------結果傳回到應用伺服器------伺服器将結果發送回給客戶