340 likes | 431 Views
認識關聯式資料模型。 了解關聯式資料庫管理系統的特徵。 認識市場上的關聯式資料庫管理系統。. 「關聯式理論」( Relational theory )是什麼 ? 關聯式理論與關聯式資料模型有什麼關係 ? 市場上有那些關聯式的資料庫系統 ?. 這是一個腦力激盪的園地 !. 關聯式資料庫系統目前在市場上占有的比例非常高 Oracle Microsoft SQL Server DB2 MySQL 關聯式理論的基本觀念很簡單,是以表格( Table )為主的資料表示與處理方式 經過多年發展之後,形成一個完整的理論體系
E N D
認識關聯式資料模型。 • 了解關聯式資料庫管理系統的特徵。 • 認識市場上的關聯式資料庫管理系統。
「關聯式理論」(Relational theory)是什麼 ? • 關聯式理論與關聯式資料模型有什麼關係 ? • 市場上有那些關聯式的資料庫系統? 這是一個腦力激盪的園地!
關聯式資料庫系統目前在市場上占有的比例非常高關聯式資料庫系統目前在市場上占有的比例非常高 • Oracle • Microsoft SQL Server • DB2 • MySQL • 關聯式理論的基本觀念很簡單,是以表格(Table)為主的資料表示與處理方式 • 經過多年發展之後,形成一個完整的理論體系 • 關聯式資料庫管理系統(relational DBMS)建立在關聯式理論的基礎上,可以引導我們推演出最好的資料庫設計,避免資料重複或有用的資料被刪除等異常現象
ATOMIC:每一個儲存格只能放單一的一個值 單純、單一、原子
關聯式資料庫系統以表格(Table)為基礎 。 • 表格可以看成是成行(column)成列(row)的資料組合 。 • 台灣用的『行』『列』恰好和大陸用法顛倒 • 每一列的資料代表一筆資料記錄(data record) • 資料記錄中我們用數個資料欄位(data fields)來組織資料
結構上的特性 • 完整性(integrity) • 資料的處理
表格名稱:庫存料項 • 屬性: (料項編號:字串(3), • 名稱:字串(2), • 價格:貨幣值, • 目前庫存量:整數(3))
沒有單純化(non-atomic)的資料會有更新的問題(update problem)。
關聯式理論 • 把表格當作集合 • 對資料表的操作就是集合運算 • 找特定資料紀錄=>計算子集合(Subset) • 合併資料表=>計算聯集(Union) • 列出特定欄位=>投影(Projection)
關聯式資料庫管理系統(Relational DBMS)是近十年來發展最快,使用也最廣泛的資料庫管理系統 • 主要是因為關聯式資料模型(Relational data model)的觀念簡易,理論基礎發展得很完整而周密 • 從西元1970年Codd提出了關聯式資料模型之後,各種商業化的資料庫管理系統,幾乎都是以這個資料模型為基礎 • 我們常聽到的資料表格(Data table)是關聯式資料庫系統的基礎
表格不一定是資料表 • 關聯式資料庫對資料表的要求: • 行(Column)是集合元素,不能有順序關係 • 列(Row)是集合元素,不能有順序關係 • 每一個儲存格都必須 Atomic • 每一個資料列都與眾不同
表格是由資料屬性(Data attributes)與資料紀錄(Data records)所組成的 • 表格中一個或數個欄位的組合若是沒有重複的屬性值,則這些欄位也可稱為表格的主鍵值(Primary key) • 和主鍵值相關的是所謂的「外鍵值」(Foreign key) : 某表格的外鍵值代表該表格內的某些欄位也存在於其他的某表格中,而且是以主 • 鍵值的型態存在於其他的表格
主鍵(Primary Key):識別的依據,與眾不同的值 • 外鍵值(Foreign Key):別人家的主鍵,在我家當作指標用,參考到別人家的資料項。 • 參考的完整性限制(Referential Integrity Constraint):若外鍵值存在,則資料項的主鍵值也必須存在
資料表的表示法 • 訂單(訂單號碼, 料項編號, 數量) • CREATE TABLE 訂單 (訂單號碼 CHAR(3) NOT NULL PRIMARY KEY,料項編號 CHAR(3),數量 INT DEFAULT 0);
認識各種資料庫 • Microsoft Access • 單一檔案結構 • 適合單機使用 • Microsoft SQL Server • 資料庫伺服器 • 適合多人共用 • Oracle Database Server • 市占率最高的資料庫系統 • Sybase Database
不等於零或空白 。 • 資料目前還未得到確定的值 。 • Unknown • 產品尚未定價時,單價欄不能填 0 • 資料遺失或不適用 。 • Not Available (n/a) • 健康檢查報告 • 攝護腺檢查 • 子宮頸抹片檢查
什麼是Instance? • Instance 常翻譯成『案例』、『實例』 • 其實 Instance 應該譯成『一份』 • 開啟三個 Word 檔案 • 每開啟一個 Word 檔案,執行一次 MSWORD.EXE • 執行檔 MSWORD.EXE 只有一個 • Program:程式檔案 • 電腦主記憶體內共有三份 Microsoft Word • Process:行程、過程、程序
什麼是Instance? • 西餐廳主廚的食譜裡對沙朗牛排有一套定義,三位顧客點餐之後,主廚端出三份沙朗牛排 • 牛排剛剛端出來的時候看起來一模一樣,其實是三份不同的個體 • 時間過去,經歷客戶的刀叉之後,三份牛排越來越不一樣 • TOYOTA車廠對RAV4有一套設計圖 • 車廠剛剛生產出來的RAV4每一台車都一模一樣,但是每一台車都是不同的個體 • 時間過去,車子交到客戶手上,每一部車都變得越來越不一樣
Middleware 中介軟體 Middle Tier 中間層
relational DBMS的組成與架構 。 • 衍生出很多其他的軟體產品 。 • 提供客戶完整解決方案(total solution)。
MySQL Database • 開放原始碼資料庫 • 創於1994年,2008年被Sun購併,2010年Oracle購併Sun • GPL 授權、商業授權 皆有 • MySQL Community Server • 免費下載 • MySQL Workbench • 管理工具(GUI) • 管理工具 • phpMyAdmin
PostgreSQL • Object-Relational Database Management System (ORDBMS) • Free and Open Source • 1982, Ingres project • University of California, Berkeley • 管理工具 • psql • pgAdmin • phpPgAdmin