認識關聯資料庫 關聯式資料庫的意義除了在資料庫中可存放著許多資料表之外,還可以在資料表中建立資料表與資料表之間之關聯。

Slides:



Advertisements
Similar presentations
正規化範例 第 1 、 2 階正規化. 正規化範例 ( 水果供應商 ) 編號姓名電話地址 郵遞區 號 品名價格 001 林國鐘 高雄市 100 頻果 100 香蕉 60 鳳梨 葉連芳 台北市 400 葡萄 60 頻果 郭明正
Advertisements

第 8 章 還原資料庫.
指導教授 ~ 張志勇 組員: 彭勇盛 陳信通 吳建賦
樞紐分析與資料庫 蕭世斌 Nov 20, 2010.
08 CSS 基本語法 8-1 CSS 的演進 8-2 CSS 樣式規則與選擇器 8-3 連結HTML 文件與CSS 樣式表
資料表關聯與正規化.
第 13 章 建立資料表的關聯 著作權所有 © 旗標出版股份有限公司.
第 9 章 查詢與關聯.
Views ,Stored Procedures, User-defined Function, Triggers
題目:十六對一多工器 姓名:李國豪 學號:B
Excel資料庫分析 台灣微軟資深講師 王作桓.
LINQ 建國科技大學 資管系 饒瑞佶.
9/28號專題報告 Web網頁遊戲 曾建瑋.
2-3 基本數位邏輯處理※.
第八章 利用SELECT查詢資料.
資料庫管理 操作DBMS 指導教授:楊維邦  助教:廖皓翔.
第五章 關聯式資料庫的理論基礎.
資料正規化.
資料庫操作.
SQL Stored Procedure SQL 預存程序.
SQL語法.
連結資料庫管理系統.
App Inventor2呼叫PHP存取MySQL
Java 程式設計 講師:FrankLin.
大數據與我 4A 陳駿榜.
Topic Introduction—RMI
TB-054A  周天穎 編著 儒林圖書公司 發行.
第二次電腦實習課 說明者:吳東陽 2003/10/07.
Ch20. 計算器 (Mac 版本).
UpToDate Anywhere 設定方法
Pocket Access.
第 19 章 XML記憶體執行模式.
網頁資料知多少? 事 實 ? 謠言?.
CH05. 選擇敘述.
數位學習資料收集整理 Evernote應用
期末考.
第 11 章 建立關聯式資料庫 著作權所有 © 旗標出版股份有限公司.
挑戰C++程式語言 ──第8章 進一步談字元與字串
GridView.
GridView操作 (II).
網路科技在商店經營管理之應用 第十章 osCommerce客戶與訂單 Ting-Yi Chang (張庭毅)
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
電子期刊使用統計 CONCERT 2002 meeting November 13-14, 2002 羅宙康 Springer-Verlag
DRC with Calibre 課程名稱:VLSI 報告人:黃家洋 日期: 改版(蔡秉均) 1.
MicroSim pspice.
資訊安全和資訊倫理宣導 永康區復興國小教務處.
資料庫管理(Access 2003) 第八章 設計實用的報表 許欽嘉 老師.
MiRanda Java Interface v1.0的使用方法
第二章 關聯式資料庫.
第 4 章 認識 SQL 語言與資料型別.
黃影雯副教授講授 E_Mail Address:
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
Access 2003 練習與作業
1-1 二元一次式運算.
商品交易資料庫 顧客上網買商品 如何紀錄客戶資料? 如何紀錄商品資料? 如何紀錄交易資料? 如何處理交易後的所有『後處理』程序?
國立台灣大學 關懷弱勢族群電腦課程 By 資訊工程 黃振修
1757: Secret Chamber at Mount Rushmore
WALLET. 電子錢包..
資料表示方法 資料儲存單位.
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
連結資料庫 MYSQL.
What is “this”? 在物件導向程式設計中,類別的定義就是在說明如果創建了“這個物件”的話,它會具有那些屬性與功能,以及這些功能是如何實現的。 而所謂的“這個物件”就以 this 來表示。 當我們在JavaScript與jQuery中寫 script 程式(函式)時,“誰”呼叫這個函式,這個“誰”就是該函式中所謂的.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
SQLite資料庫 靜宜大學資管系 楊子青.
10303: How Many Trees? ★★☆☆☆ 題組:Contest Archive with Online Judge
Chapter 4 Multi-Threads (多執行緒).
17.1 相關係數 判定係數:迴歸平方和除以總平方和 相關係數 判定係數:迴歸平方和除以總平方和.
Joining Multiple Tables
第三章 比與比例式 3-1 比例式 3-2 連比例 3-3 正比與反比.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

認識關聯資料庫 關聯式資料庫的意義除了在資料庫中可存放著許多資料表之外,還可以在資料表中建立資料表與資料表之間之關聯。 關聯必須經由二個資料表中相同意義、相同類型之欄位來建立。

關聯的類型 在ACCESS 中,資料表的關聯有〝一對一關聯〞、〝一對多關聯〞及〝多對多關聯〞三種。但多對多關聯再處理資料時常常會發生一些問題,故先討論以上的兩種關聯的關係。

一對多關聯 這是最常見的一種關聯,用來表示某資料表中的某筆記錄對應到另一個資料表中的多筆記錄。利用這種關聯我們可以得到以下好處: 從客戶資料開始,可以找出任一客戶之所有資料。 從訂單資料開始,可以找出該訂單所屬客戶之相關資料。

一對一關聯 指的是某資料表中的一筆記錄,只能對應到另一資料表中的一筆記錄。

如何建立資料表關聯 為了確保關聯的正確性,再設定關聯時必須符合以下條件: 一、關聯的關係不可以循環 二、關聯的關係不可以中斷 三、任二的資料表的對應路徑是唯一的

關聯的關係不可以循環 資料表之間之關聯不可互相循環,例如A、B、C三個資料表有關聯,則不可以A對B有關聯,B對C有關聯而C和A又有關聯,此時即造成循環效果,這是錯誤的。

關聯的關係不可以中斷 例如:A、B、C、D四個資料表有關聯,A對B有關聯,C對D有關聯,但是B與C之間並無關聯(關聯中斷了),這也是錯誤的。

任二的資料表的對應路徑是唯一 再建立二個資料表之間關聯時,其主索引對應之欄位必須是唯一的。通常我們會以主索引當作其對應路徑,因為主索引通常為值小、且唯一。

收集完整資料集並轉成欄位 當我們面對一個比較複雜的系統時,事前的資料庫規劃顯得非常重要了。例如您要設計一個人事薪資系統,那麼面對各類的員工資料、職級、薪資出勤、休假、獎金、勞健保等資料,就需要仔細考量了。 我們一般在規劃資料庫的結構時,通常都會依照下而二個步驟來進行: 1.收集完整的資料集並轉換成欄位的形式。 2.將這些欄位做適當的分類後,歸入不同的資料表中並建立彼此 的關聯。

收集必要而完整的資料項目 在設計資料庫之前,我們應該先收集所有需要存入資料庫的資料,以建立一個完整的資料集(Complete Set)。若資料庫中的資料不完整,那麼就無法對使用者提供充份的資訊了,例如在一個訂單系統中,若沒有產品的訂價或訂購量等資料項目,就無法算出貨品的總價了。 資料庫設計的先決條件,就是要讓充份、完整的資料可以存入資料庫中!另外,不同的應用系統所需的資料項目是不同的,例如圖書館系統和零售商銷貨系統所需的資料就完全不一樣;所以我們的目的,就是要將所有"必要"。的資料項目,都"完整"地收錄於資料庫中。

將資料項目轉成資料表的欄位 收集好完整的資料集後,我們先將重複的資料過濾掉以免浪費空間,然後便可開始將之何成資料表的欄位了。底下以我們前面使用的書籍訂單系統為例: 訂單序號 日期 客戶名稱 書籍名稱 單價 數量 是否付款 備註 如果資料項目很多,可以將之分門別類,然後劃分至不同的資料表中

將資料項目轉成資料表的欄位2 接著,再決定每個欄位的資料類別、特性: 欄位名稱 資料類型 資料長度 訂單序號 能自動編號的數字 日期 日期/時間 客戶名稱 文字 30個字元 書籍名稱 單價 金額 數量 數字(整數) 是否付款 是/否 備註

分割資料表 如果您之前學過資料庫方面之課程,那麼應該對資料表之『正規化理論』不陌生吧?而此理論正是分割資料表之最佳利器。不過由於正規化理論解釋起來比較枯燥,又不易了解,所以我們採取另一種直覺式的方式與各位一起討論如何分割資料表。以下將以3個主題來探討。

分割與主索引無關之欄位 每一個資料表都應該有個主索引,而此主索引的值可以作為整筆記錄之代表。然而,若是在其他欄位之間也有類似主索引之關係,且具有更強的相依性,以致當某個欄位值被修改時,也必須同時去修改另一個相關之欄位。 數量 單價 書籍名稱 客戶名稱 訂單序號 書籍訂單 主索引關係 另一主索引關係

分割與主索引無關之欄位2 由於同一本書之單價都相同,所以當書名更動時,單價也需跟著變動才行。事實上,單價是由書籍名稱所決定,而非訂單序號來決定,單價與書籍名稱有更強之相依性。因此,應該將書籍名稱與單價二欄分割出來,而成為另一個資料表。 數量 書籍編號 客戶名稱 *訂單序號 訂單 單價 書籍名稱 *書籍 主索引關係 主索引關係

分割欄位值一再重複的欄位 主索引關係 數量 書籍編號 客戶編號 *訂單序號 訂 單 客戶名稱 *客戶編號 客 戶 上述動作將書籍訂單分割成二個之後,奏可以避免一再輸入重複之書名、單價資料。不過在新的訂單中還有一個問題,那就是客戶名稱欄還是要一再輸入重複之值,所以當某欄位中之資料值只有幾種,而且會一再重複出現時,就可以考慮將其分割出去。

判斷欄位是否真的需要分割 通 訊 錄 *員工編號 姓名 性別 地址 郵遞區號 在分割資料表時,也不是矇著眼睛瞎割一通,必須依據實際情況判斷是否有分割之必要,如右方資料表中所示: 雖然性別欄位一再重複出現,但是其只有〝男〞、〝女〞二項可選,而且欄位長度也短,就無須分割了。 通 訊 錄 *員工編號 姓名 性別 地址 郵遞區號 電話

資料表間之永久性關聯 在上堂課中曾經為各位介紹如何在查詢中建立關聯,但是此類之關聯只能運用在查詢資料中使用,此稱之為暫時性之關聯。當然您也可以為此二資料表搭起一座永久性的友誼橋樑,使其關聯永遠存在,這麼做的話,您將可得到兩個好處: 當我們在建立新的查詢、表單或報表時,只要選用到有永久關聯之資料表,ACCESS會直接幫我們套上已經建立好的永久性關聯。 ACCESS 可以依照我們所設定的規則,幫忙維護資料庫中之『資料的參考完整性』。

資料的參考完整性 當兩個資料表之間有關聯時,那麼這個關聯的狀態必須是完整的。例如在『訂單資料表』中有一筆訂單資料的客戶編號竟然在『客戶資料表』中找不到,那麼這筆訂單就成為了孤兒訂單。所謂孤兒訂單即為一筆找不到父親的子資料表。而所謂維護資料參考完整性,便是要在資料庫中防止孤兒資料表之產生。

如何維護資料的參考完整性 在子資料表輸入資料時,要檢查輸入之正確性。 此可以以查閱欄來管制。 管制在父資料表中修改關聯欄位之值。 a.不允許修改 b.一起改 管制刪除父資料表中之紀錄。 a.不允許刪除 b.連子資料表之資料一起刪除

編輯關聯視窗中之選項 當選取強迫參考完整性之稽核方塊時,其下的兩個選項才允許設定,其作用如下介紹: 串接更新欄位 串接刪除相關紀錄  表示關聯不允許修改  表示更改父資料之關聯欄位時,資資料之關聯欄位一併修改。 串接刪除相關紀錄 表示父資料表之紀錄不允許刪除 刪除父資料表之紀錄時,子資料表之際路一並刪除。

何謂連接屬性 當我們要取用兩個關聯資料表中的資料時,連接屬性可用來定義這兩個資料表的資料如何合併。為方便說明,以圖表表示。 訂單細目 1 3 假設有下面兩個資料表 訂單細目 1 3 A B C 訂單 1 2

選項1:僅包含兩個資料表連接欄位的相同的資料 2 訂單 A B C 3 訂單細目 原二資料表 訂單 訂單細目 1 A B

選項2:包括所有來自“訂單”的紀錄和只包括那些連接欄位相等的“訂單細目”欄位 1 2 A B 1 2 訂單 A B C 3 訂單細目 原二資料表

選項3:包括所有來自“訂單細目”的紀錄和只包括那些連接欄位相等的“訂單”欄位。 1 2 訂單 A B C 3 訂單細目 原二資料表 訂單 訂單細目 1 A B C

查詢表中加入運算式 運算式之結構: Int ( [單價] * 0.4) 函式 數值 識別名稱 運算元

函式 可用來幫我們做一些較複雜的運算,如: INT() 可求取數值之整數部分 DATE() 傳回今天之數值 YEAR() 求日期資料中之年份 MONTH() 求日期資料中之月份 UCASE() 將字串中之小寫轉成大寫

識別名稱 可為資料表之欄位名稱或查詢中之參數等。 這些名稱需以方括弧括起來,例如:[單價]、[數量]。若是需要指明所屬之資料表或查詢,則需以句點作為連接,例如: [書籍].[單價]、[訂單細目].[數量]

數值 為一些直接指定之值,包括: 日期: #89/05/05# 字串: 〝一品書店〞 數字: 如2306.8

運算元 用來表明以上三種資料如何運算,可運用運算子中之加減乘除(+、-、*、/、=),邏輯運算元之“且”及“或”(AND、OR)及大於、小於、介於…之間(<、>、Between…And…)等等。