從ER Model到資料庫的實作練習

ER模型全名為實體關聯模型或實體關係模型或實體關聯模式圖(Entity-relationship model,Entity-relationship Diagram),由美籍華裔計算機科學家陳品山發明,是概念數據模型的高層描述所使用的數據模型或模式圖,它為表述這種實體聯繫模式圖形式的數據模型提供了圖形符號。

參考: 實體關係模型(Entity-relationship model)

從ER Model到資料庫的形成步驟為:(1)需求分析 (2)ER Model (3)邏輯資料庫 (4)實體資料庫。但是這些步驟並非標準答案,有些可能簡化成步驟(1)(2)(4),也有些更細分出更多步驟。不過不管如何,ER Model都是從需求到資料庫形成的重要步驟。

假設現在需要設計學生選課系統,我們由四大步驟來看看過程。

(1)需求分析 ~ 我們與使用者訪談的結果,得到以下幾個需求

(a)每位專任老師在不衝堂下,可以開設多門課程。
(b)相同課程只能有一位老師開課。
(c)每個課程只要有10位以上同學修課,即可以開課。
(d)每個課程必須有一間不衝堂的教室。
(e)每位學生可以修多門課程,學分上下限為24與9學分。
(f)每個課程需依照教室可容納人數以限制修課人數。

(2)ER Model

以上的需求分析,並不是每個條件都能夠反應在ER Model中,有些是選課規則,但不是資料庫規則。哪些是必須反應在ER Model呢?

我們先訂出實體~ 老師、學生、課程、教室,還有其他嗎? (Think ...),可能的ER Model如下圖:


(3)邏輯資料庫

以老師為例~邏輯資料庫如: teacher (teacherno,teachername,teacherphone)

(4)實體資料庫

建立資料庫,名為myschool >>
CREATE DATABASE myschool
CHARACTER SET big5
COLLATE big5_chinese_ci ;

建立表單,名為myteacher >>
CREATE TABLE myteacher
(teacherno CHAR(5), teachername CHAR(20), teacherphone CHAR(10), PRIMARY KEY (teacherno)) ;

以上這樣設計有沒有問題呢? 應該如何修正呢?

[其他範例]

1. 如果讓你負責設計一個人力銀行網站,你會如何設計ER Model? 最後的資料庫表單是什麼樣子?

2. 如果讓你負責設計一個網路購物網站,你會如何設計ER Model? 最後的資料庫表單是什麼樣子?

3. 如下圖,你可否說明它的意思?



留言

這個網誌中的熱門文章

如何使用EXCEL連接MYSQL

關聯模式的五大鍵 Super key、Candidate Key、Primary Key、Alternate Key、Foreign Key

SELECT SQL語法總整理