1 / 155

資料庫系統簡介

資料庫系統簡介. 資料庫系統 (Database System) 分成兩個部份: 資料庫 (Database) 是儲存資料的地方。 資料庫管理系統 (DataBase Management System, DBMS) 則是指管理資料庫的軟體 , 它們負責使用者與資料庫之間的溝通 , 如存取資料庫中的資料、以及管理資料庫的各項事務等。. 關聯式資料庫的內部結構. 關聯式資料庫最大的特色是將資料分類儲存在 資料表 (Table) 中。. 資料庫管理系統的基本功能. 資料定義 資料處理 資料安全 資料備份. 資料庫系統的使用者.

ziya
Download Presentation

資料庫系統簡介

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 資料庫系統簡介 • 資料庫系統(Database System) 分成兩個部份: • 資料庫(Database) 是儲存資料的地方。 • 資料庫管理系統(DataBase Management System, DBMS) 則是指管理資料庫的軟體, 它們負責使用者與資料庫之間的溝通, 如存取資料庫中的資料、以及管理資料庫的各項事務等。

  2. 關聯式資料庫的內部結構 • 關聯式資料庫最大的特色是將資料分類儲存在資料表(Table) 中。

  3. 資料庫管理系統的基本功能 • 資料定義 • 資料處理 • 資料安全 • 資料備份

  4. 資料庫系統的使用者 • 資料庫設計者 (Database Designer) • 資料庫管理者 (DataBase Administrator, DBA) • 應用程式設計者 (Application Designer) • 一般使用者 (End user)

  5. 資料庫規劃 • 簡易的規劃流程 • 收集資料項並轉換成欄位 • 認識關聯、Primary Key 與 Foreign Key • 資料的完整性 • 資料表的關聯種類 • 資料庫的正規化分析

  6. 簡易的規劃流程 • 第一階段:收集完整且必要的資料項, 並轉換成資料表的欄位形式。 • 第二階段:將收集的欄位做適當分類後, 歸入不同的資料表中, 並建立資料表間的關聯。

  7. 收集資料項並轉換成欄位 • 收集必要且完整的資料項

  8. 收集資料項並轉換成欄位 • 轉換成資料表的欄位

  9. 收集資料項並轉換成欄位 • 轉換成資料表的欄位

  10. 關聯 • 下圖的訂單資料表與客戶資料表, 因為客戶編號欄位而產生關聯:

  11. 分割資料表並建立關聯的優點 • 節省儲存空間 • 減少輸入錯誤 • 方便資料修改

  12. 節省儲存空間 • 當書籍資料表需要使用到作者名稱或分類時, 就可以經由關聯, 到作者資料表與分類資料表中選取:

  13. 減少輸入錯誤

  14. Primary key • Primary key 是用來辨識記錄的欄位, 具有唯一性, 且不允許重複。

  15. Foreign key • 在關聯式資料庫中, 資料表之間的關係是藉由 Foreign key 來建立的:

  16. 資料的完整性 • 實體完整性 (Entity Integrity) • 區域完整性 (Domain Integrity) • 參考完整性 (Referential Integrity) • 使用者定義的完整性 (User-defined Integrity)

  17. 資料表的關聯種類 • 一對一關聯 (one-to-one) • 一對多關聯 (one-to-many) • 多對多關聯 (many-to-many)

  18. 一對一關聯 (one-to-one)

  19. 一對多關聯 (one-to-many)

  20. 多對多關聯 (many to many)

  21. 資料庫的正規化分析 • 正規化就是要讓資料庫中重複的資料減到最少, 讓我們能夠快速地找到所要的資料, 以提高關聯式資料庫的效能。

  22. 資料庫的正規化之前 • 資料表必須先設好 Primary key • 確定資料表中所有欄位的值是不可分割的

  23. 資料庫的正規化 • 規則 1 :除去同類型的欄位 • 規則 2 :非 Primary key 的欄位需與整個 Primary key 有直接相關性 • 規則 3 :非 Primary key 的欄位間不應有從屬關係

  24. 規則 1 :除去同類型的欄位 • 規則 1稱為第一階正規化 (1st Normal Form;1NF) - 其目的在除去同類型的欄位, 亦即同類型的欄位不能重複:

  25. 規則 2 :非 Primary key 的欄位需與整個 Primary key 有直接相關性 • 規則 2稱為第二階正規化(2nd Normal Form;2NF) - 目的在除去僅與部份 Primary key 相依的欄位。

  26. 規則 3 :非 Primary key 的欄位間不應有從屬關係 • 規則 3稱為第三階正規化(3rd Normal Form;3NF) - 目的在除去所有非 Primary key 的欄位間的相依性。

  27. 正規化的另類思考 • 不必要的分割 • 人工的分割

  28. 不必要的分割 • 正規化的工作有時不必做得非常徹底, 例如郵遞區號與縣市、區若分割後, 每次查詢都要多一道還原手續, 實無必要:

  29. 人工的分割 • 有時為了增加資料處理的效率, 我們會將已經符合 3NF 的資料表再做分割。

  30. 認識 SQL 語言與資料型別

  31. SQL 語言的興起與語法標準 • SQL 語言與傳統程式語言的差別 • 關鍵字、子句與敘述 • SQL 語言的功能分類 • 資料型別 • 欄位的 NULL 值與 DEFAULT 值 • 識別名稱 (Identifier)

  32. SQL 語言的興起與語法標準 • SQL 語言是在 1970 年代晚期, 由 IBM 公司在美國加州聖荷西的研究單位所發展出來的一套程式語言, 當時是使用於 DB2 關聯式資料庫系統。 • 為了避免各產品之間的 SQL 語法不相容, 因此由 ANSI (American National Standards Institute, 美國國國家標準局) 制定 SQL-92, 定義出 SQL 的關鍵字與語法標準, 以提高各家產品在 SQL 語法上的相容性。

  33. SQL 語言與傳統程式語言的差別 • SQL 語言寫成的程式必須應用在資料庫管理系統中, 本身並不能獨立執行, 為非程序性(non-procedural) 語言:

  34. 結構化查詢語言 SQL • 假設要在訂單資料庫中建立一個客戶資料表, 可以執行以下的 SQL 敘述:

  35. 結構化查詢語言 SQL • 建立出來的資料表:

  36. 關鍵字、子句與敘述 • SQL 語法的基礎是子句(clause), 子句中會包括一些關鍵字(keyword)。一組可產生存取資料庫結果的子句集合則稱為敘述(statement)。

  37. SQL 語言的功能分類 • 資料定義語言 (Data Definition Language, DDL)

  38. SQL 語言的功能分類 • 資料處理語言 (Data Manipulation Language, DML)

  39. SQL 語言的功能分類 • 資料控制語言 (Data Control Language, DCL) 一般是指專門用來設定資料庫物件使用權限的敘述。

  40. 整數 精確位數 近似浮點數值 日期時間 字串 Unicode 字串 二元碼字串 貨幣 標記 其它 資料型別

  41. 識別名稱的表示法 • 識別名稱的可用字元:

  42. 用 CREATE TABLE 敘述建立資料表 • CREATE TABLE 敘述的語法 • 設定資料表名稱 • 定義欄位屬性 • 設定欄位的條件約束 • 設定資料表條件約束 • 指定檔案群組 • 建立計算欄位

  43. CREATE TABLE 敘述的語法

  44. NULL 值

  45. DEFAULT 值 • 建立一個訂單資料表, 其中有 3 個欄位設有 DEFAUL 值:

  46. DEFAULT 值 • 分別加入 3 筆記錄到訂單資料表中:

  47. DEFAULT 值 • 將訂單資料表中的記錄顯示出來:

  48. NULL、NOTNULL 條件約束

  49. 新增記錄 - INSERT 敘述 • 基本用法 • INSERT/SELECT

  50. 基本用法

More Related