前一陣子跟大學同學在msn上敲著,談論我的論文題目是啥?
而資料庫反向工程又是啥??
現在就來解說一下啥是資料庫反向工程吧~~
資料庫反向工程,我會先把它給拆開來「資料庫」與「反向工程」
反向工程:主要是要分析「既存」的系統,去找出系統由哪些元素所組成,與這些元素之間存在著什麼關係,再用其他的方式將這些系統畫出其圖表來。
我常舉同一個例子,當我們在百貨公司看見皮夾時,想想當初它是怎麼被製做出來的,
先是設計師看市場的需求==>畫好設計圖(包含尺寸、顏色、材料…等)==>交給工廠去製作==>然後運送出去櫃上賣
(大概是如此)
而反向工程即是程序相反,把皮夾買回去,開始研究它的設計,用啥材料…等,再把它的完整設計圖畫出來。
資料庫的正向工程也有一套流程,與一般的系統一樣,目前分為六個步驟:
1.需求收集與分析(requirements collection and analysis)
2.概念設計(conceptual design)
3.邏輯設計(logical design)
4.實體設計(physical design)
5.資料庫實作(database Implementation)
6.資料庫運行和維護。
而資料庫反向工程就是回推回去,從「既有」的資料庫,去找出其table、Pk、Fk…等一直到畫出整個資料庫的ERD圖(也可以是別的圖)。
因為系統起用後,會因為不同的需求一直在變化,可能增加新的應用或刪除不必要的應用,
當資料庫的文件來不及更新或文件不見時,維護資料庫就比較麻煩,所以資料庫反向工程就可以應用上了。
參考文獻:
Ramez Elmasri Shamkant B. Navathe(2005) Fundamentals of Database Systems, Pearson Education, Inc.
Chikofsky,E.J. and J.H. Cross H, Reverse engineering and design recovery: A taxonomy, IEEE Software, 1990, 13-17.
p.s推薦一本書「Fundamentals of Database Systems」這本很不錯,它有中文版的,
寫的很詳細。
- Mar 18 Tue 2008 20:32
-
資料庫反向工程
請先 登入 以發表留言。