.
修 梁婷教授 的課,感覺學到很多,很紮實。
昨天終於 DEMO 完 Advanced Database Management System 的 Project
我將我的 ADBMS Project ,命名為 " ProjectD ",
我是設計一個 HIS(Hospital Information System)裡的 Web-based 掛號系統,
本來想要用比較熟悉的 BEA Weblogic Server 10mp1 + Oracle 11g ,
但是用 Notebook 實在很吃力,光開這兩個,就吃完我ㄉ記憶體ㄌ ...
最終還是跟NB妥協ㄌ,用 Tomcat + MySQL 就好,哇哈哈 ...
首先是 Mini-world 的部分,先從需求開始,步驟如下:
1. Requirement (Motivation),
2. SA, System Analysis (Proposal),
3. SD, System Design (System Architecture, Flowchart),
4. Dev, Develop (Implementation),
5. Debug,
6. QA, (Result analysis)
SA : 寫太多 (略)
在設計 Database Schema 時,
正好 K 完 Relational Algebra 跟 Relational Calculus ...
一堆符號彷彿從四處冒出來 ... σ ... ρ ... θ ... #$%#^$&
然後是
正規化(Normalization)的過程,
雖然教到 1st , 2nd , 3th , Boyce-Codd Normal Form , 4th , 5th (第五正規化),
不過老師還蠻仁慈ㄉ,要求到第三正規化就好 ...
針對 ER-model 或是 EER-model (Extended E-R Model) ,
本來是用 ERwin來design,不過後來玩了一下 MySQL Workbench5 以及 DBdesigner4,
感覺 DBdesigner4在設計小系統還真ㄉ是方便到一個不行,
雖然它還是有一些小bug,在我畫 dependency 時 ...
稍微介紹一下,DBdesigner4:(免費的呦!)
http://www.fabforce.net/dbdesigner4/以下是我設計的 HIS ER-model 初版:
它可以 Show 出 1:1 , 1:n , n:m 的 relation ,
除了 Entity type、Attribute、Relationship 之外,
也可以設計 Weak Enity type、Partial Key、Indentifying Relationship,
EER-model 的 Specialization、Generalization、UNION,
Primary Key 以及 Constraint 顏色分明,跟 UML 的 OOAD 可以配合,
是不是很棒ㄚ!
在 implement 時,J2EE 的 JAAS?
因為用 Tomcat6,用 FORM based Authentication 省了我很多工,
接下來,本來要用到 EJB 的,不過等我 K 完新的EJB3,可能學期早結束了,哈 ...
所以用 JSP + jstl.jar + standard.jar ,
JSP Standard Tag Library (JSTL)
http://www.apache.org/dist/jakarta/taglibs/standard/拿這個來 POC (Prove Of Concept) 還真是剛剛好,
因為 它就是 "神!"、它就是 "行!"
開發到這邊,真的是覺得 學海無涯 ㄚ~~~
有時候,商業軟體功能很完備,但是常常大材小用,
其實我們沒有用到那麼多的功能,往往不到 30%,
可是每年買 Licenses 以及 MA 卻花很多 $$$ ...
所以 Open Source,還真的是很棒的Group ...
經過一個月,有空就寫程式,下SQL,Debug ...
後來我幾乎忘了我是修資料庫的課、還是修寫程式的課 ... XD
Well, DEMO 終於結束,
接下來,就是見證奇蹟的時刻 ...
ㄜ,不是啦!是準備期末考的時刻 ...
Heap , Hashing (Extendible Hashing / Leaner Hashing) , B-Trees , B+-Trees ,
Algorithms for Query Processing and Optimization ,
Transation、Schedules , Isolation Level ,
Recoverability , Serializability ,
Multiversion Concurrency Control Techniques ,
Recovery Techniques , Lock manager , Deadlock prevention , Starvation ,
Two-Phase Locking (2PL) , Timestamp Ordering ,
Caching , Checkpoint , System log , Fuzzy Checkpointing ...
Deferred Update , UNDO / REDO Recovery , Shadow paging ,
還蠻多要念的 ... 呵呵