or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
tags:
Data Base
Data Base 第六章
資料庫系統開發生命週期
初步規劃 >>> 需求收集與分析 >>> 設計 >>> 實作
資料庫設幾可以分成兩部分
資料庫設計方法論 –- 三階段
概念資料庫設計:將資料庫需求轉換成概念資料模型的過程,不針對特定資料庫管理系統或資料庫模型
邏輯資料庫設計:將概念資料模型轉換成邏輯資料模型的過程,邏輯資料庫設計是針對特定資料庫模型來建立邏輯資料模型
實體資料庫設計:將邏輯資料模型轉換成關聯式資料庫管理系統的一系列SQL指令敘述
概念資料庫設計–>邏輯資料庫設計–>實體資料庫設計
資料庫設計方法論 –- 資料庫設計的主要工作
概念資料庫設計:實體關聯圖
邏輯資料庫設計的主要工作有兩項:
實體資料庫設計
實體關聯模型
「實體關聯模型」(Entity-Relationship Model)。實
體關聯模型使用實體(Entities)與關聯性(Relationship)描述資料和資料間的關係

實體關聯模型是將真實世界的資料模型化成邏輯關聯資料(Logically RelatedData),這就是我們儲存在資料庫的資料。
實體關聯模型與資料庫設計
概念資料模型 –-> 實體關聯圖
邏輯資料模型 –-> 正規化的實體關聯圖 –->關聯式資料庫
實體可以對應關聯式資料庫模型的關聯表,關聯性就是外來鍵參考。
建立實體關聯圖-步驟
實體關聯圖(Entity-Relationship Diagram, ERD)是使用圖形符號表示的實體關聯模型。
實體關聯圖的基本建立步驟為:
建立實體關聯圖-符號
實體型態–-實體集合
每一位學生稱為實體型態的實例(Instances),或簡稱為實體,實例的集合稱為「實體集合」(Entity Set)
弱實體型態
弱實體型態(Weak Entity Types)是一種需要依賴其他實體型態才能存在的實體形態,這是沒有主鍵的實體型態。例如:學生家長是一個弱實體,因為只有學生實體存在,家長實體才會存在。

弱實體型態(Weak Entity Types)雖然沒有主鍵,但可以擁有用來識別的屬性,稱為區別屬性(Discriminating Attribute)。用虛線底線來表示。

弱實體型態一定關聯到一個強實體型態,以便識別其身份,這個強實體型態稱為「識別實體型態」(Identifying Entity Type),使用的關聯型態稱為「識別關聯型態」(Identifying Relationship Type),使用雙框的菱形圖形符號來表示。

關聯型態
關聯集合
遞迴
關聯限制條件
基數比限制條件
基數比限制條件是限制關聯實體型態的實例個數,可以分為三種:
基數限制條件
參與限制條件
是指實體集合的實例是全部或部分參與關聯型態,可以分為兩種:
雞爪符號
屬性
實體關聯圖的實體與關聯型態可以擁有零到多個屬性(Attributes)。屬性是使用橢圓型圖形符號的節點,使用線與實體(或關聯)型態連接

屬性可以分成5種:
單元值屬性型態(Atomic Attribute Types):這是實體與關聯型態的基本屬性型態,只擁有單元值。例如:Students實體型態的sid、name、GPA、birthday和tel屬性。
複合屬性型態(Composite Attribute Types):屬性是由多個單元屬性組成,使用樹狀的單元屬性圖形符號來表示。例如:員工Employees實體型態的address複合屬性是由street、city和ZIP單元屬性組成。

多重值屬性型態(Multivalued Attribute Types):屬性值不是單元值,而是多重值,使用雙線的橢圓形符號來標示。例如:學生Students實體型態的address屬性,這是記錄學生多個通訊地址的多重值屬性

導出屬性型態(Derived Attribute Types):可以由其他屬性計算出的屬性,使用虛線的橢圓形符號來標示。例如:Exams實體型態的numOfStudents屬性是記錄參加考試的學生數,這個屬性值可以從Results關聯型態計算而

鍵屬性型態(Key Attribute Types):實體型態中用來識別實例的屬性,其角色相當於關聯表的主鍵。鍵屬性型態是在名稱下加上底線來標示,例如:Students實體型態的主鍵是sid屬性。

實體關聯圖的常見錯誤
扇形陷阱
是指實體間的關聯性令人產生混淆,扇形陷阱通常是產生在實體型態擁有多個一對多的關聯型態,如同扇形散開(此名稱的由來),但是關聯到的各實體型態間的關聯性會產生令人混淆的問題。
例如:學生、講師與課程實體型態間擁有3個一對多關聯性,如下所示:
講師可以教多位學生。
講師可以教多門課程。
學生可以選修多門課。(註: 以底下例子而言, 應改為課程有多位學生選修)
學生選修多門課程的一對多關聯性並沒有辦法建立在講師與學生和講師與課程的2個一對多關聯性上,如此就會產生混淆

Solution 1:扇形陷阱發生的原因是誤解關聯的意義,關聯正確的解釋應該是以課程建立關聯性的橋樑

Solution 2:形成學生選修多門課和講師教多門課程的2個一對多關聯性。

斷層陷阱
斷層陷阱(Chasm Traps)是指實體間應該存在的關聯根本不存在,2個實體間並沒有辦法找到一條路徑來連接。例如:一位學生可以修多門課程,每一位學生會購買多本教科書。

扇形陷阱與斷層陷阱比較表
–––- 概念資料模組的實體關聯圖 –––> 邏輯資料模組的關聯表綱要 –––-
將實體關聯圖轉換成關聯表綱要
實體轉關聯表
在實體關聯圖的強實體型態(即一般實體型態)是對應關聯表,也就是將強實體型態轉換成關聯表綱要,其規則如下所示:
關聯轉關聯表
實體關聯圖的關聯型態可以轉換成關聯表綱要的外來鍵,在關聯表綱要新增參考其他實體型態的外來鍵,可以分為三種:
一對一關聯型態:
一對多關聯型態
多對多關聯型態
多對多關聯型態轉換成關聯表綱要的規則如下:
關聯型態可能擁有3個或更多實體型態間的關聯性,稱為「多重關聯型態」(Ternary Relationship Type),其轉換規則與多對多關聯型態轉換一樣。


多重值屬性轉換成關聯表
弱實體型態轉換成關聯表