逢甲大學
資訊工程學系專題報告
逢甲大學機房管理系統
學 生:王 志 中 (四丙)
李 建 昌 (四丙)
施 政 佑 (四丙)
林 政 融 (四丙)
指導教授: 顧 偉 倫 老師
中華民國九十一年十一月目錄
目錄………1 圖表目錄………4 前言………7第一章
研究動機與目的
1-1 研究的動機……….………9 1-2 研究的目的………10第二章 系統介紹
2-1 系統簡介………12 2-2 系統開發概述………14 2-2.1 階段一:系統規劃……….14 2-2.2 階段二:系統分析……….15 2-2.3 階段三:系統設計………18 2-2.4 階段四:系統建置………20 2-2.5 階段五:系統的運行與支援………21第三章 系統開發
3-1 作業系統比較………26 3-2 資料庫系統比較………27 3-2.1 資料庫的介紹……….273-2.2 各種不同資料庫的比較………33 3-3 PHP 與 ASP 比較………38 3-4 Javascript 簡介……….40 3-5 Cookies 與 Session 比較………43
第四章 系統流程
4-1 DFD 介紹………46 4-2 DFD 流程………49 4-2.1 背景圖解說………49 4-2.2 Student 流程解說………544-2.3 Faculty & Manager 流程解說………56
4-2.4 Lab Assistant & Repairer 流程解說……….61
4-2.5 圖 4 解說………..64 4-2.6 圖 5 解說………66 4-3 資料庫格式………68
第五章 成果評估
5-1 新舊系統評估與比較………86第六章 結論
6-1 心得………92 6-2 未來展望……….103參考資料………105 附錄
圖表目錄
第一章
圖 2.1 可行性分析圖……….……14 圖 2.2 系統測試圖……….20 圖 2.3 甘特圖……….22 圖 2.4 工作分配圖……….23第三章
表 3.1 PHP 與 ASP 比較表……….38表 3.2 Netscape Navigator 與 JavaScript 版本對照表……….41
表 3.3 Internet Explorer 與 JavaScript 版本對照表…………41
表 3.4 JavaScript、JScript 和 ECMAscript 關係整理表……….42
表 3.5 Cookies 與 Session 比較表……….44
第四章
圖 4.1 背景圖……….49圖 4.2 圖 0(Student) ………54
圖 4.3 圖 0(Faculty & Manager)………56
圖 4.4 圖 0(Lab Assistant & Repairer)……….61
圖 4.5 圖 11(Lab Assistant)………64
表 4.1 所有 Table………..68 表 4.2 Student Table………70 表 4.3 Faculty Table………70 表 4.4 Lab_Assistant Table……….71 表 4.5 Repairer Table………71 表 4.6 Manager Table………71 表 4.7 Login_Log Table……….72 表 4.8 Lab Table……….72 表 4.9 Campus Table………73 表 4.10 Building Table……….73 表 4.11 Schedule_of_Lab Table………74 表 4.12 Schedule_of_Lab_Assistant Table………74 表 4.13 Pc Table……….75 表 4.14 Other_Equip Table………76 表 4.15 Layout Table………77 表 4.16 Pic_Info Table………77 表 4.17 Software Table………78 表 4.18 Printer Table………78 表 4.19 Record_of_Use Table………79
表 4.20 Record_of_Maintenance Table………80 表 4.21 Lost_or_Broken Table………81 表 4.22 Part Table……….81 表 4.23 Open_Section Table………82 表 4.24 Soft_List Table………82 表 4.25 Session_Time Table………83 表 4.26 FCU_Schedule Table………83 表 4.27 Lost_and_Found Table………84
第五章
表 5.1 背景比較表………90 表 5.2 新舊系統各項比較………90前言
「資訊都市」(informational city)是一個響亮的口號,會讓人 直接聯想到電腦設備的購置、光纖網路的埋設、電腦系統的開發等 等。其實,資訊都市的涵義不應止於如此,應該從各種都市活動的資 訊蒐集、交換、分析、應用、呈現、傳播等各個面向做整體性的思考, 才能真正建構起一個現代化的資訊都市。 一個偉大的夢想都是由小小的努力累積起來的,我們打算從校園 開始,從做一個屬於小範圍的系統,累積一些經驗,然後將之推向整 個都市;我們想:只要每個人都為社會進一點力,那整個社會將會因 為我們每個人的小小貢獻,而能更往前邁進一步。第一章 研究動機與目的
1-1 研究的動機
在現在這個資訊發達的時代中,幾乎任何事都離不開電腦的範疇 了。而資訊時代的潮流將帶領著我們形成一個全球一體的資訊社會, 而身為資訊工程學系的我們也希望能盡一份力量,能使得電腦能更廣 泛的運用於周遭的事物上。 之前的教師要預借機房及多媒體教室時,都是用手工作業的,在 以現在的眼光看來那似乎是既費時又費力的,有時還要大老遠的從家 裡或外面其他地方親自跑到學校預借機房及多媒體教室,所以我們想 到利用電腦網路之便來解決此困擾。在這電腦十分普及的時代裡,人 工系統電腦化似乎可以為現代的忙碌人節省不少時間,像電腦可以加 快處理的過程、降低文書工作的成本、提高對使用者的服務等。而且 我們更能掌握限有的資源,增加對於使用資源的精確性,運用有限的 資源來做最有效的應用。許多的教師只要開起電腦透過網路便能使 用”一指神功”而輕輕鬆鬆的預借到機房及多媒體教室了。而考慮到現 在也有許多類似的預借系統產生,它們多為死板並枯燥的介面,激發 了我們想利用更活潑也更符合人性化的操作介面來完成它。1-2 研究的的目的
我們想利用 Linux 來架設 Server,Linux 是一套免費的 ″類 – Unix″作業系統,他的穩定性和多功能性是許許多多商業套裝軟體所 無法相比較的。 而我們所建構的″逢甲大學機房管理系統″是希望能幫助教師們 能經由網路來預借機房及多媒體教室,我們也希望能借由這套系統來 精確的掌握到機房及多媒體教室各項設備的汰舊以及更新。在這我們 利用使用者的觀點,透過表格、圖形、文字等的方式,讓使用者能更 方便 , 更人性化來操作此 ″逢甲大學機房管理系統″。第二章 系統介紹
2-1 系統簡介:
本系統,是以 PHP 搭配 Javascript、DHTML、HTML 與 CSS,資料 庫為 MySQL、Web Server 是 Apache 並架設在 Liunx 上來完成的,主 要是為改進舊係統上的缺點,同將功能進行整合起來,使使用者能更 加便利。 在舊係統中,如果學生想使用電腦,在登入畫面中,我們無看出 機房的配置,以致以我們不易找到所要使用的電腦,而在我們的系統 中,則可以清楚的看出機房的配置,我們可以看出電腦的擺設位置和 其螢幕的方向,還有白板、門口、印表機的位置,還能看出螢幕是 LCD 或是 CRT,而且我們並不是做死的,可以再透過另一個圖形介面 去快速的修改機房的配置。 在舊有的教師預借機房是文字介面,我們也將其改進為圖形化的 介面,這個介面中可以看明白出哪一時段有無人使用,教師可以透過 這圖形介面快速的選擇日期、機房並借用之,當然也可以在這裡取消 借用。
在新增機房的功能方面,則加入電腦配備的輸入、軟體的選擇, 還有其它硬體,如投影機、麥克風、雷射筆等選項。 此外,在查詢機房的功能方面,還額外加入了機房的硬體環境, 如投影機、單槍投影機…..等和機房軟體的查詢。 而在工讀生排班功能中,其介面亦是仿教師預借機房介面,同時 係統會依據工讀生的年資來判斷其可以排多少班。
2-2 系統開發概述
2-2.1 階段一:系統規劃
規劃階段的目的是明確的辨認問題的性質與範圍。這需要一 初步調查的過程,它是一個關鍵步驟,因為其成果將影響整個開 發過程。 而我們經由顧偉倫老師方面得知,現有的 “機房預借系統”似 乎還是有需要改進的地方,經由我們和顧老師探討各項可行性的 結果,我們判斷我們所要做的這一套 “逢甲大學機房管理系統” 是值得開發的。 圖 2.1 可行性分析圖2-2.2 階段二:系統分析
系統分析階段的目的是準確了解現有系統如何運轉,決定並 記錄系統應當做什麼,提出一些供選用的解決方法。透過發現事 實或決定需求的過程,我們了解到現有資訊系統建構的功能,並 決定需要進行哪些改進。搜集事實之後,我們仔細的分析它們, 制定了解決現有系統中問題的具體規劃。 在分析需求時,我們可使用結構化分析工具去記錄系統需 求。結構化分析從系統的輸入、輸出和過程的角度考察一個系 統,是說明新系統需求的最常見方法。因為它著重於資料在轉化 成為有用資訊中的流動,所以結構化分析被稱為以過程為中心的 技術。結構化分析使用了三種主要的工具:資料流程圖、資料詞 典,和過程說明。 “資料流程圖” 是利用明確的圖示來使我們知道整個系統資料的 流向。 “資料詞典” 即我們所說的資料庫,是關於系統資料的中心資料 庫。資料詞典是用來收集、記錄並組織關於系統的事實,包括資 料流、資料儲存、外部實體,和過程的內容。資料詞典還定義與 描述全部資料要素和資料要素的有意義組合。一個資料要素,或說成是資料項目或欄位,是資訊系統中有意義資料的最小單位。 資料要素結合成為記錄或資料結構。一個記錄是包含在資料流中 或保存在資料儲存中,互相關聯的資料要素的一種有意義的組 合。 “過程說明” 每一資料流圖源功能都代表一個特定的程序,必須記 錄每一個源功能,取得資訊系統的完整邏輯模型。在記錄源功能 時,必須做到準確、完整、而簡單明朗。 “過程說明”利用模組設 計來記錄源功能的細節。模組設計的基礎是:順序、選擇,和反 覆 三項的結合。 而在需求方面我們可以探討下列的需求: ●資料的需求 一個系統想必一定要有資料的儲存空間,所以我們會建立一 個資料庫來存放資料。而當我們要建立一良善的資料庫時,我們 必須仔細的探討到我們會用到哪一些資料,並將所要的資料逐一 分門別類,並可以利用資料流程圖來做一致性的比對檢查。 ●功能的需求 在功能方面,我們在這是要求達到避免掉一些程序上的重 複,比如說:我們只要用我們所屬的使用者去登入,那我們及可
依步驟一步一步的去達成我們所想要的項目,不用還要在中途重 新輸入一些已輸入過的重複資料,這樣才不會造成使用者在使用 上的不便以及在使用上的流暢性。 ●使用者的需求 我們建立了包括:學生、教職員、機房工讀生、維修人員、 及管理人員等五個使用者。每個使用者都有著不同的需求,我們 也依其需求分別提供了多項的服務,以用於各項需求。 ●其他的需求 設備需求,此系統是透過 Client-Server 方式運行,所以網 路是必備的。系統控制需求,為防止此系統遭外人入境及破壞, 我們將做一些安全措施;也為防止使用者有正確的輸入及輸入能 被正確的處理,我們在程式上及作業程序上將做一些有效的控制 方法。
2-2.3 階段三:系統設計
系統設計階段的目的是編寫滿足所有記錄需求的資訊系統設 計,無論是內部開發這個系統還是購買套裝軟體。系統設計分 為:邏輯設計及實體設計。邏輯設計的目的在於確定系統的邏輯 功能和特性,以及其組成成分之間的關係。實體設計則是系統實 際執行的規劃,實體設計建立在系統邏輯設計的基礎上,說明一 套具體系統組成成分的執行。在系統分析的期間,我們所做出來 的邏輯概念是系統必須做什麼,而不是它將會如何做。我們必須 確認全部必要的輸入、輸出、檔案、及其它應用程式還有人工程 序。在這系統設計階段我們必須要設計內部和外部控制,包括了 系統的可靠性、準確性、持續性與安全性。 一般的準則是以下列三個方向來考量: ●使用者的方面 1.系統與使用者互相交談的地方。 2.預估未來使用者的需求。 ●資料的方面 1.資料在產生的時候, 便在產生的地點輸入系統。 2.資料輸入後馬上檢查。3.盡可能使用自動的方法作資料輸入。 4.控制資料的存取, 並記錄每一重大資料的改變。 5.資料避免重複輸入。 6.避免重複的資料儲存在檔案或資料庫中。 ●處理程序方面 1. 處理程序愈簡單愈好。 2. 使用獨立的模組, 且此模組只執行單一功能。
2-2.4 階段四:系統建置
在系統建置期間,是為了使我們所建構的資訊系統能使之就 位。在這系統建置階段,我們將撰寫並測試系統的個個部分,在 賺寫程式方面,我們是利用 PHP4 、MySQL、JavaScript 來完成 整個系統,使它能夠有效率的正常運作。而在測試系統方面,我 們遵循先 “單位測試” ,隨後是 “聯結測試” ,然後是 “系統測 試” 。 圖 2.2 系統測試圖2-2.5 階段五:系統的運行與支援
在系統運行與支援期間,有時需要進行維護和加強的工作, 以用來解決每個使用者確認的一些問題。在支援方面,我們所做 的 “逢甲大學機房管理系統” 所牽涉到的範圍很廣,有些提案是 我們有想到,但是由於資源有限的情況下,所以我們並未加進這 個系統(在之後的章節將會說明),然而如果有後繼的人員在接手 這個系統時,就可考慮用那些提案來支援此系統,使得此系統能 繼續依使用者的需求來做一些解決之道。在維護方面,由於我們 這系統所撰寫的程式都是用 “純手工” 的方式撰寫的,而不是用 套裝軟體,所以在程式碼中不會有一些由套裝軟體所產生我們看 不懂的程式碼,因此不管是要修改程式碼還是要新增程式模組, 維護的人員都可以很輕易的解決問題所在,所以在後繼的維護上 會方便許多。2-3 甘特圖
2-4 工作分配
組員名單:施政佑,李建昌,王志中,林政融 圖示說明: ▲:主要製作 △:參與製作 工作內容 組員 施政佑 李建昌 王志中 林政融 架設 sever(Red Hat 7.3、 apache 、php、MySQL) ▲ ▲ ▲ ▲ 資料庫設計 △ △ ▲ △ 資料庫實作 ▲ 系統分析(DFD) ▲ ▲ ▲ ▲ 工具評估 ▲ ▲ ▲ ▲ 新增使用者 ▲ 機房新增 △ △ ▲ △ 機房編輯 機房刪除 ▲ △ 機房查詢 ▲ 機房借用 △ ▲ 電腦借用 △ ▲ 工讀生排班 △ ▲機房配置 △ ▲ 回報損壞紀錄 △ ▲ 遺失物登記 ▲ ▲ 遺失物招領 ▲ ▲ 維修電腦 △ ▲ 學校行事曆輸入 ▲ 機房開放時間表輸入 ▲ 機房印表機新增 ▲ 學校建築物新增 ▲ 校區新增 ▲ 上課時間表 ▲ 圖 2.4 工作分配圖
第三章 系統開發
3-1 作業系統比較
各種不同作業系統的比較﹕ 我們在開發一個資料庫系統時,同時也必須考慮到發展的平台, 其中最常見的作業系統,不外乎 windows 2000,linux 等。以下是不 同作業系統的比較: 1.OS/2 OS/2 的系統非常穩定,並且不受病毒的干擾。這是 OS/2 跟其 他系統比較起來最大的優點。由於不會感染病毒,因此資料的安 全性就大大的提高了。 就以多工的層面來說,現在的作業系統都具備了多工的效 能,以提供網路的服務。然而,同樣都是多工,不同的作業系統 多工的效能卻是完全不一樣。以 windows 來。以使用,但是其效 能卻不如 unix 系統來的好。OS/2 在多工的效能上面卻又比 unix 還要好,因此,OS/2 的效能是無庸置疑的。可以使用 linux 的 gcc,linux 的 Xfree86 的 GUI(Graph User Interface) ,以及跨平台的 java。而且現在正在開發 win32 的 project,只要發展成功,那麼 OS/2 就可以不用受到平台以及 API(Application Program Interface)的限制了。
OS/2 也跟 unix,FreeBSD,linux 之類的作業系統一樣,都是 屬於功能日漸強大的新一代「免費」作業系統。除了公開原始碼 讓人自行開發之外,更重要的,其效能都遠比需要用金錢購買的 windows 系列來的要好,以成本問題來說,Freeware 的作業系統 當然是比較好的選擇。 1. Linux Linux 最大的優點就是開放原始碼,且版權為 GPL (通用 共公授權) 。這大大提高了 Linux 這個作業系統的可信度。 此外,Linux 的核心系統非常穩定,能夠提供高效能的系 統運作。 Linux 的另一項優點是系統核心可以自行修改。修改系統 核心,將不必要的服務和 driver 移除,如此一來,便可
以讓此系統的效能達到最佳化。 絕大多數開放原始碼的軟體都支援 Linux,而且普遍是第 一個支援對象,軟體眾多。事實上,這些開放原始碼的軟體 經過許多程式設計師修改後,其實用性以及效能都是可圈可 點的。高效能的 Linux,加上高效能的軟體,當然可以打造一 個高效能的 Server。 可惜的是,因為 GPL (通用共公授權) ,要求延伸工作也 必須是 GPL,在商業上反而使得其商業運作無法保障智慧財產 權,使其商業利益受損,這是 Linux 在商業應用上一個很大 的致命傷。 2. Windows 2000 Server 版 Windows 2000 具有強大的 server 功能,也內建了許多 server 的管理軟體,像是遠端路由控制,封包流量的監控等。 Windows 2000 的圖形介面淺顯易懂, 能夠讓使用者方便 操作,許多軟體的 Interface 都是依據 windows 系列來製作
的。 然而, windows2000 最麻煩的就是版權問題。使用 windows 2000 必須要購買 OS 的版權。此外, 在 windows 另 外安裝的軟體也都有版權,必須購買才能夠使用其他的套裝 軟體,這對商業成本來說是一大打擊。 Windows 200 雖然安裝方便,然而在安裝的過程也裝了許 多不必要的驅動程式,因此,系統核心就變的相當龐大。這 嚴重地影響了系統的效率,以及浪費的許多不必要的系統資 源。 由上面的比較來看,我們決定選擇 Liunx 來當我們 Server 端的作業系統。OS/2 雖然有不被病毒侵入的優點及 高效率的 performance,可惜許多廠商並不支援 OS/2,使得 OS/2 沒有功能較為強大的軟體能夠使用。而 windows 2000 除了必須購買版權的高成本之外,其執行效率也是遠不如 Liunx。
根據種種的考量,Linux 有強大功能的 Server 套件,且 系統執行效率又高,如果配合 MySQL 來使用,其效能是非常 理想的。
3-2 資料庫的比較
3-2.1 資料庫的介紹:
資料庫的發展大致上可分為兩種: 1. 物件導向式資料庫管理系統 物件導向式資料庫管理系統 (Object-Oriented DBMSs,簡稱為 OODBMS)此類系統以物件(Object) 的觀念來代替以往的紀錄(Records),兩者最大的差異 在於:物件本身可以是由其他物件層層包覆所組成 的,物件與物件之間可以有各種縱向繼承(Specialization and Generalization)與橫向組合
(Aggregation)的關係,同時物件本身有其特定的運算定 義於其上;而紀錄本身則均無此種特性或概念。大多數 物件導向式資料庫管理系統的廠商所販賣的都是所謂 的 “永久式程式語言” (Persistent Language),也就是一 個與某種特定程式語言,如 C++或 Smalltalk 作緊密結 合的系統。 2. 物件關聯式資料庫管理系統 物件關聯式資料庫管理系統 (Object-Relational DBMSs,簡稱為 ORDBMS) 在物件導向式資料庫上已
經研究多年的 Won Kim 博士,以及 Michael Stonebraker 博士,都極力倡導在以物件導向為發展方向的同時, 並不能棄關聯式系統於不顧,因為物件導向式觀念既 然能真實反映資料的組織與結構,那麼想必更能適當 地包容關聯式的觀念,所以他們發展的 UniSQL 系統 [UniSQL/X (1995)],以及 Illustra [M. Stonebraker and D. Moore (1996)] (於 1998 年底被 Informix 購併) 便 是以此作為理念,強調由關聯式資料庫進步到物件導 向式資料庫的演進,不是 “革命” 而是進一步的 “包 容” 。此一觀念也獲得許多的響應,如:CA-Ingers,ODB II,與 IBM 的 DB2/6000 Common Server (DB/2 6000 C/S) 等,也都慢慢走向此一趨勢。
3-2.2 各種不同資料庫的比較﹕
●如何評估一個資料庫 對於任何的企業而言,其最重要的資產當屬企業資料,因 此擁有一個可靠的資料管理軟體便具有關鍵的重要性。至 於其所企求的功能則不外乎快速且可靠的資訊擷取、資料 處理 (如新增或更新資料紀錄) 、易於使用且寮解此資料 的應用系統、提供多個使用者同一時間存取及能隨著企業 成長而向上延展的能力。儲存資料的電腦系統不但要滿足 這些目標需求,亦必須在網路環境中能合作無間。而管理 這些資料的長期累積成本亦必須在企業管理的預算範圍 之內。 • 速度﹕如資料庫處理大量資料的速度。 • 穩定性﹕如當多個使用者同時使用時是否會造成 系統不穩定的狀況。 • 擴展性﹕就像能夠將資料庫擴展到什麼樣的程度。 當你在做評估的時必須考慮到你本身的需求是什麼,也就 是說你要運用資料庫來管理那些東西,在處理千萬筆資料時所執行的速度, 當比數越多時, 越能看的出各個資料 庫產品之間的差異, 它的擴展性是如何呢﹖資料庫的限 制有哪些, 還有就是資料庫本身有沒有開發工具, 可 供你作為應用程式的開發, 最後資料庫所提供的功能是 否已符合你所需要的,或者需要他人來開發,這些都是值 得考量的。以下舉了兩個資料庫來做比較﹕ MySQL﹕ MySQL 為關聯式資料庫管理系統,同時也是一個快 速、多使用者、多執行緒 (Multithread) 的 SQL 資料庫 伺服器。SQL (Structure Query Language) 是一種標準 化的語言,它使得儲存、更新、和存取資料變的更加地容 易。例如, 你能用 SQL 語言替公司維護客戶資料及產品 資料等等,同時 MySQL 執行速度夠快和靈活能允許你儲存 紀錄文件和圖像,MySQL 的官方發音是”My Ess Que EII” (而不是 My SEQUEL) 。
MySQL 的主要特徵是使用者核心執行緒的完全多執 行緒, 這意味著它能夠很容易地使用多個 CPU (如果有 的話) , 支援 C、C++、JAVA、Perl、PHP、Python 和 TCL
等應用程式介面 (application programming
interface , API) 。MySQL 具備索引壓縮的快速 B-tree 磁碟表, 每個表允許有 16 個索引, 而每個索引可以由 1~16 個列或列的一部分所組成,最大索引長度是 256 bytes (在編輯 MySQL 時,它可以被改變) 。 MySQL 屬於大型資料庫, 最大可處理達 50,000, 000 筆記錄。MySQL 是用 C 和 C++編寫而成的, 並且經過 大量而不同的編譯器測試過。MySQL 在所有字串欄位的比 較是忽略大小寫的,表和欄位的別名皆符合 SQL92 的標 準, 函數名不會與表與欄位名稱相互衝突, 例如 ABS 就是一個有效欄位名稱。對函數的呼叫唯一限制是函數名 稱與其後的 ”(” 之間不能夠有空格。 MySQL 伺服器能為客戶提供多種語言的錯誤訊息。 MySQL 特有的 SHOW 命令可以用來檢索資料庫、表和索引 資訊,而 EXPLAIN 命令可以用來確定最佳化器 (optimizer) 如何解決一個查詢的問題。 MySQL 在某些方面速度較快,如複雜的 SELECT 操 作、表格中有可變長度的字串,因為 MySQL 有更多有效的 處理並可在 VARCHAR 欄位上建立索引、有多個欄位的表格
要處理、有大量的紀錄長度的處理表格、有多個表達式的 SELECT、在作大表格上的 SELECT 時, 必須同時處理很多 連接 (connection) , 因為 MySQL 是完全多執行緒的, 所以每個連接有它自己的執行緒, 這意味著沒有任何一 個執行緒必須等待另一個執行緒 (除非一個執行緒正在 修改一張表格除非一個執行緒正在修改一張表格,另外一 個想要存取) 。 SQLServer﹕
SQLServer 是一個 fully web-enabled 的資料庫。 其最大的特色,在於他能夠支援 XML 的語法。SQLServer 同時也能夠支援多處理器(Multiprocessor),最多可使用 32 顆 CPU 以及 64GB 的 RAM。此外此外, SQLServer 也能 夠實作成分散式系統(distributed system), 讓不同的 database server 之間能夠互相連接。SQLServer 也有備 分的功能,以防止資料庫損毀而遺失資料的情形。
SQLServer 是 Microsoft .NET Enterprise Servers 資料管理和分析的骨架。配合 .NET 的使用,我們可以更 快速的發展一個完善的資料庫。同時,我們也能夠簡化資
料的管理,使得管理者能夠更方便的來管理一個資料庫。 SQLServer 在使用上來說非常的方便,像是建立資 料表(create table), 透過 GUI 的圖形介面, 我們可 以很輕易地將一個資料庫建設起來。資料庫的 Query 方 面, 也是透過 GUI 的介面來做 Query 的動作, 可以讓 使用者很方便且快速的查詢所需要的資料。 SQLServer 在作多人同時存取資料的部分也是很完 善的。它也是多執行緒,所以可以讓多人同時來存取資料 庫,而埠必等待某一個人使用完資料庫以後才能連接。對 於現今資料庫的大量需求來說,多執行緒已經是資料庫不 可或缺的必備功能了。 基於效能需求以及能開發的工具來做考量,由於 SQLServer 需要配合 大量 Micrsoft 的工具來做開發才會較為便利,且考慮到版權問題, 而 MySQL 是所謂的 Free ware,就不會有版權的爭議,效能上來說, MySQL 其實和 SQLServer 算是不相上下,最重要的,我們使用 php 作 為 web 前端的開發工具,php 裡面內建了許多與 MySQL 呼應的函式, 如果能配合 MySQL 來開發, 那將會是事半功倍。基於上述理由,我 們決定使用 MySQL 來開發資料庫系統。
3-3 PHP 與 ASP 比較
The introduction of PHP:
PHP(HyperText PreProcessor )是由 Rasmus Lerdorf 這個軟體 工程師所開發出來的,他亦是 Apache 的開發小組成員之一。
PHP 是一種 server 端、跨平台的 HTML embedded script language。 PHP 的程式寫在一種的 HTML 檔案裡面,和 ASP 一樣是 server 端的 Script。因為是 server 端的 language,由 server 執行後,才送至 client 端中,所以在 client 是無法看到的,不像 javascript 為 client 端的 script language,可以 client 中看到。
2. PHP 與 ASP 的比較表: 項目 PHP ASP 作業平台 幾乎是跨平台(除了 Macintosh、 BeOS 等) Windows NT Windows 98 Windows 2000
Wed Server Apache、fhttpd、
Netscape、IIS、PWS、 Omni
Microsoft
IIS/Personal Web Server
物件導向 可以使用物件 是
語法 有自己的語法 可結合 VBScript、
JavaScript 或 PerlScript 語法 like Visiual Basic 資料庫 直接 compile 成資料庫 client 端 透過 ODBC、ADO 存取 成本 OS(Linus Free) Server:(Apache Free) PHP:(Free) DataBase:(MySQL Free) OS:(WIN2000) Server:() ASP DataBase:()
Open Source Yes No
3-4 JavaScript 簡介
誕生:
JavaScript 是網頁專用的描述語言(Script Language),早期是 由美國 Netscape(網景)公司於 1995 年發展出來,使用在 Netscape Navigator 2.0 版瀏覽器中,原始名稱為 LiveScript。
發展:
JavaScript 的語法表示方式,源自美國 Sun 公司發展的 Java 語 言,但是 JacaScript 與 Java 語言的架構差異極大,Java 是一種編譯 式語言,程式碼必須經過編譯後才能執行,而 JavaScript 是一種直 譯式的描述語言,程式碼存於網頁中,當使用者讀取網頁時,才會開 始執行網頁中的 JavaScript 描述語言。 優點: JavaScript 是一種與 HTML 標籤共存的描述語言,它可以彌補 HTML 功能的不足,讓網頁更為活用,擴大其應用的領域,以補 HTML 無法 達到的互動及資料呈現方式,雖然,JavaScript 只是一種描述語言, 但它卻有一般程式語言的基本特性,它可以使用變數、陣列、函數、
副程式,有各種的判斷迴圈等豐富的控制結構,許多技術都可以靠 JavaScript 來完成,遂 JavaScript 逐漸成為專業網頁程式設計師必備的 程式語言能力。
版本:
JavaScript 發展之初,始能使用於 Netscape Navigator 上,而微軟 公司的 Internet Explorer 移植到 3.0 版時,才設計了與 JavaScript 相似 的描述語言,稱為 JScript。
Netscape Navigator 不同版本使用的 JavaScript 版本整理如下: Netscape Navigator JavaScript 2.0 1.0 3.0 1.1 4.0 1.2 5.0 1.3 6.0 1.5 表 3.2
Internet Explorer 不同版本支援的 JavaScript 版本整理如下: Internet Explorer(JScript) JavaScript 3.0 1.0 4.0 1.1 1.2 5.0 1.3 5.5 1.5 表 3.3
雖然 JavaScript 與 JScript 兩種描述語言相似 但卻彼此有許多不相容 的命令,造成程式設計師的極大困擾。為了克服這個問題,Microsoft 和 Netscape 聯合許多軟體廠商,共同制定了的統一標準,稱為
ECMAScript。
JavaScript、Jscript 和 ECMAScript 的關係整理如下表:
ECMAScript JavaScript JScript
1.0 1.3 3.0 4.0
1.0 Revision 2 1.4 5.0
1.0 Revision 3 1.5 5.5
3-5 Cookies 與 Session 比較
動態網頁的應用中,其中一項功能便是能夠針對個別瀏覽網頁的 使用者儲存專屬的資訊,以便使用者於下次做此網頁瀏覽十能保有專 屬的資訊,以和其他使用者區分。
上述功能,在 PHP 中是由 Cookies 與 Session 來建立,Cookies 是 屬於 HTML 文件標頭資料的一部分,普遍應用在網頁上,PHP 中的 Session 功能與 Cookies 極相近,最大的差別在於存放資料的位置。 Cookies 是一個儲存於客戶端,公瀏覽器與 Web 伺服器互通資料 的純文字檔,只要經過適當的設定,Cookies 的資料可以工整個網站 或者使用者下次上線時再使用,而這都是 Session 無法獨立完成的工 作,不論使用的是 Cookies 或 Session 變數,用戶端瀏覽器都必須開 啟 Cookies 功能,否則 PHP 網頁將無法正常使用 Cookies。 在 PHP 網頁中,Session 最常見的應用,就是利用他來建立跨網 頁的變數,Session 與 Cookies 再特性與應用上十分相似,不同的是, Cookies 變數值是儲存在客戶端的電腦內,而 Session 變數是儲存在 Web 伺服器內。當使用者將瀏覽器的 Cookies 功能關閉時,我們還可 以利用 Session 變數來儲存關於使用者的資訊,這也是 Session 與
Cookies 的不同之處。 Cookies Session 存放位置 客戶端 伺服器端 單獨使用 可 必須配合 Cookies 存取範圍 所在目錄及子目錄 或指定路徑 Web 下所有目錄 表 3.5 Cookies 與 Session 比較
第四章 系統流程
4-1 DFD 介紹
資料流程圖(DFD) 表明資料如何經過資訊系統而流動。DFD 是一種邏輯模型,表示系統做些什麼,而不表示出它如何做這些事 情。資料流圖並不表明邏輯程序或處理步驟。如果我們一直著重於執 行問題,這將會限制我們找尋最有效的系統設計。 資料流程圖的階層化: 在剛開始製作 DFD 時,我們也許會碰到下列問題: ♦由於實體、過程、檔案都很多,所以我們製作 DFD 時會 覺的很複 雜,也會 造成使用者不易閱讀。 ♦有許多的功能是屬於模糊抽像的,似乎只有系統設計者 本身才知道其功能性,使用者確不易了解其實際的作用。 為解決以上的問題,所以我們必須把 DFD 分的細一點,也就是 將 DFD 階層化。階層化又分為向上階層化和向下階層化,我們 所採用的是向下階層化。 向下階層化的處理原則: 平衡 - 指上層 DFD 中被分解處理的輸入及輸出資料流總和必須要與低層次 DFD 中輸入與輸出資料流的總和相等。 編號 - 指由上層 DFD 中所分解出來的低層次 DFD 中,每一個功 能處或過程處都必須給與一個編號,編號規則為:上層處理編 號 . 流水號。 增加檔案 – 低層次 DFD 中是允許增加額外的檔案,處理過程間 也允許增加輸入輸出的資料流。 資料流程圖的建構: 資料流程圖用代表過程、資料流、資料儲存、和外部實體 的四種基本符號畫出來。 過程符號 : 過程接受輸入資料而產生不同內容或形式的輸出。確認 其功能的過程名稱,包括一個動詞,隨後是一個單數名 詞。資料流圖並不表示過程的細節,這些細節將會記錄在 過程說明之中。 資料流符號 : 資料流是資料從資訊系統的一個部分到另一個部分活動 的路線。DFD 中一個資料流可以代表一項或者多項資料。 資料流名稱標示於這條直線的上面、下面、或旁邊。而資
料流與過程的結合應避免掉奇蹟、黑洞、和灰洞的產生。 資料儲存符號 : 資料儲存用來在資料流圖上表示這樣一種情況,因為以後 還有一個或多個過程需要使用儲存的資料,所以系統必須 保存資料。資料儲存的名稱置於兩條直線之間,表明它所 含有的資料。資料儲存的名稱是包含一個名詞與必要時還 有一些形容詞的一個複數名稱。 外部實體 : 又稱端點,因為它們是資料的來源或是最終的歸宿。給系 統提供資料的外部實體稱為源 ( source ) ,從系統接收 資料的外部實體稱為宿(sink) 。外部實體的名稱是一個 單數形式的部門、外部組織、其他資訊系統、或個人。
4-2 DFD 流程
4-2.1 背景圖解說
Repairer Student Employee Worker Manager 0 PC Lab Information Management System 欲新增機房之資料 工 讀 生 與 使 用 者 資 料 學校行事曆 機 房 開 放 時 間 表 新增機房的 結果 排班結果 排班時段 損壞遺失表 遺失物品表 遺失物品報告 損壞報告 機房借用表 機房查詢條件 機房查詢結果 借用機房的結果 借 用 的 結 果 電 腦 借 用 表 Student Faculty Manager Lab assistant Repairer 維修表 未排班的時段表 維修報告 工 讀 生 與 使 用 者 資 料 輸 入 的 結 果 符合的使用紀錄 使 用 紀 錄 的 查 詢 條 件 輸入行事曆的結果 輸入開放時間表的結果 圖 4.1 背景圖 DFD 背景圖的資料流說明﹕ 我們分別以不同的實體來說明資料的流向:"Student" ●使用機房的電腦 學生要借用某機房的某台電腦,必須輸入
電腦借用表
,檢查欲 使用的電腦使否有人使用或者損毀,然後會傳回借用的結果
, 已通知學生是否借用成功。 "Faculty" ●機房查詢 "Faculty" 要預借某間機房上課或是考試之類的用途時,會先 做機房查詢的動作, 看裡面的電腦台數是否足夠,或是有沒有 欲使用的軟體等。所以, "Faculty"必須先輸入機房查詢條件
, 然後系統會回傳機房查詢結果
,列出符合需求的機房。 ●借用機房 教職員會輸入機房借用表
,裡面包含了預借的機房名稱, 預借 時段, 以及預借此機房的用途等資訊。此外, 系統會將確認
的機房借用表
分別傳給 "Manager" 以及 "Lab Assistant",通 知他們借用表上面的時段已經有人借用。然後, 系統會檢查輸結果
,已告知教職員機房是否預借成功。 "Manager" ●新增工讀生和使用者資料 在這個系統運作之前, 此 "Manager" 會先把工讀生與使用者
資料
輸入到此系統, 以在系統的資料庫裡面建立基本的使用 者資料。 ●新增機房 如果學校有增蓋了一間新的機房, 那麼 "Manager" 會輸入欲
新增機房之資料
,使得此系統能夠根據實際狀況做更新的一個 動作。然後,系統會傳回一個新增機房的結果,
讓管理者知道 新增機房的動作是否成功。 ●機房可使用的時間 "Manager" 會輸入學校行事曆
以及機房開放時間表
給這個系統 ,然後系統會分別回傳輸入行事曆的結果
以及輸入開放時間表
的結果
給 "Manager", 以了解是否輸入成功。●查詢使用紀錄 "Manager" 會輸入一個
使用紀錄查詢
來觀察某台電腦的使用情 形 , 然 後 系 統 就 會 傳 回 一 個符 合 的 使 用 者 使 用 紀 錄
給 "Manager" , 以便觀察所有使用過此電腦的使用者。 ●排班 "Lab Assistant" 會從系統拿到一個未排班的時段表
,這個表格就是 Lab Assistant 可以排班的時段,然後 "Lab Assistant"
根據這個送過來的未排班的時段表來輸入
排班時段
到此系統裡面 。 輸 入 完 成 之 後 , 系 統 會 傳 回 一 個
排 班 結 果
給 "LabAssistant" , 告知 Lab Assistant 排班是否成功。
●處理遺失物品 當有人在電腦機房使用電腦時,不小心把物品遺留在電腦機 房,"Lab Assistant" 就會把遺失物品整理起來,然後送出一 個
遺失物品表
給此系統, 同時系統也會回傳一個遺失物品報
告
, 然後在機房公佈這份報告, 如此一來, 當使用者要找 回他在機房遺失的物品時, 只要看這份報告就可以隻道東西是 否遺失在此機房。●機房設備損壞的處理 "Lab Assistant"會將損壞的設備整理起來,然後送出一個
損壞
表
給此系統。系統也會傳給 "Manager" 一個維修報告
,讓 Manager 來做管理。 "Repairer" ●修理損壞的設備 首先 "Repairer" 會從系統那邊收到一個損壞報告
, 讓他們來 修理損壞的設備,然後將修理過的跟修不好的設備整理成表, 送出一個維修表
給此系統。4-2.2 Student 流程解說
S t u d e n t 使用者資料表 D1 使用記錄表 D2 檢查 借用表 1 檢查 電腦是否 有人使用 2 接受的借用表 使 用 記 錄 新 使 用 記 錄 使 用 者 資 料 Manager 整理 借用結果 3 電 腦 借 用 表 無 效 的 借 用 表 借 用 通 知 借 用 結 果 圖4.2 圖0(Student) 篩選 符合查詢條 件的記錄 4 M a n a g e r 所有使用的記錄 使用記錄的查詢條件 符合的 使用記錄實體 ″Student″ : 我們從外部實體 ″Student″ 輸入一資料流
電腦借用表
至 一過程【檢查借用表】中,而【檢查借用表】將比對資料流使用者資
料
進行檢查的動作,產生兩資料流,接受的借用表、無效的借表
。接
受的借用表
也將會和從資料儲存使用記錄表中所儲存的使用記錄
一 同輸入一過程【檢查電腦是否有人使用】而產生一借用通知
,同時也 會將新使用記錄
寫回使用者資料表。無效的借用表
或借用通知
將輸入一過程【整理借用結果】產生借用結果
通知 ″Student″ 。 而從使用記錄表儲存的所有使用者的記錄
將輸入一過程 【篩選符合查詢條件的記錄】配合資料流符合的使用者資料
和使用記
錄的查詢條件
供外部實體 ″Manager″ 做查詢用。4-2.3 Faculty & Manager 流程解說
Faculty Manager 5 搜尋 符合條件的機房 機 房 查 詢 結 果 機 房 查 詢 條 件 6 檢查能否 借用機房 機房借用表 借用機房的結果 D 3 Schedle of lab Schedule 借用資料 Schedule D 4 Hardware environment info D 5 Software list Hardware environment info Software list 7 檢查機房資料 硬體資料 軟體資料 機 房 輸 入 的 結 果 欲 新 增 機 房 之 資 料 8 核對行事曆 9 核對機房開放時間 機房開放時間 表 學校行事曆 D 6 學校行事曆 D 7 機房開放時間表 正確的 行事曆 機房開放時間表 行事曆 正確的機房 開放時間 10 檢查使用者資料 格式 接受的使用者資料 D 1 使用者資料表 輸入行事曆 的結果 輸入機房開放 時間表的結果 工讀生與使用 者資料 工讀生與使用者資料輸入 的結果〝Faculty〞所做動作:
查詢機房
送出
機房查詢條件
經【搜尋符合條件的機房】透過Schedle of lab 傳回
Schedule
以取得符合行程條件之機房資料。Software list 傳回
Software list
以取得符合軟體需求之機房資料。
Hardware environment info 傳回
Hardware environment info
以取得符合硬體需求之機房資料。 取 三 方 面 傳 回 資 料 之 值 作 交 集 處 理 , 將
機 房 查 詢 結 果
傳 回 〝Faculty〞以完成查詢機房之動作。 目的: 在於可以讓使用者可依自己所需的軟硬體條件以及機房的 使用時間事先先做好選擇,避免所借用機房條件與使用者要求不 符所造成的各方面困擾。 借用機房送出已選定的
機房借用表
經 【檢查能否借用機房】透過Schedle of lab 傳回
Schedule
取得課程行程資料。學校行事曆傳回
行事曆
以取得學校放假資料。 機房開放時間表傳回機房開放時間表
以取得機房開放之時段 對照之後,將借用機房的結果
傳回〝Faculty〞並將借用資料
傳 給 Schedle of lab 以作紀錄。 目的: 標示出課程行程資料、學校行事曆以及機房開放時間表, 以區別可以借用之節次,可以有效防止有衝突的借課行為產生。〝Manager〞所做動作:
新增移除及更新機房資料
送出
機房資料
透過【檢查機房資料】將符合格式之硬體資料
及軟
體資料
分別傳入 Software list 及 Hardware environment info作紀錄並將
機房輸入的結果
傳回給〝Manager〞。 目的: 機房資料的設定隨時可以更新修改,提供使用者查詢機房軟 硬體等各方面資料時,可以查詢到正確且最新的機房軟硬體資 訊。 更新學校行事曆 送出學校行事曆
透過【檢查行事曆格式】將正確的行事曆
傳給學 校行事曆作為紀錄並將輸入行事曆的結果
傳回給〝Manager〞。 目的: 提供借用機房時,學校行事曆的參考,通常為每學期作一次 更新。 設定機房開放時間 送出機房開放時間
透過【檢查機房開放時間格式】將正確的機房
開放時間
傳給機房開放時間表作為紀錄並將輸入機房開放時間
的結果
傳回給〝Manager〞。 目的: 提供借用機房時,機房開放時間的參考。 新增移除及更新使用者資料 送出使用者資料透過【檢查使用者資料格式】將接受的使用者資
料
傳給使用者資料表作為紀錄並將使用者資料輸入的結果
傳回 給〝Manager〞。 目的: 系統使用者的設定,由於有權限的管理,設定使用者及記錄使用 者資訊,開放權限並方便查詢日後使用紀錄。4-2.4 Lab Assistant & Repairer 流程解說
L a b a s s is t a n t assistant 資料表 D10 遺失物列表 D9 檢查 維護記錄 11 排班 12 檢查 遺失物是否 重複輸入 13 排班時段表 D8 M a n a g e r R e p a ir e r 維 修 報 告 排 班 結 果 排 班 時 段 遺 失 物 品 報 告 遺 失 物 品 表 遺 失 物 列 表 接 受 的 遺 失 物 輸 入 接 受 的 排 班 表 年 資 資 料 損 壞 報 告 維 修 表 損 壞 表圖4.4 圖0(Lab assistant & Repairer)
列出 所有未排班 的時段 14 所有排班時段表 未 排 班 的 時 段 表
實體 ″Lab assistant″ : 從實體 ″Lab assistant″ 輸入一資料流
排班時段
至一 過程 【排班】中, 【排班】 過程會配合從一資料表 assistant 資料表 所儲存的年資資料
來進行排班動作。排班之後會產生 一資料流排班結果
到 ″Lab assistant″及一資料流接受的班
表
儲存到 排班時段表 中。 而我們會從 排班時段表 中取得一資料流所有排班時段表
, 輸入一過程 【列出所有未排班時段】 ,這一過程會整理所有 的排班資料,主要是要分出那些時段是已排班,那些時段是未 排班,而此過程會將為排班的時段整理成一資料表未排班的時
段表
,回傳給 ″Lab assistant″ 知道。 ″ Lab assistant″ 也會輸入一資料流遺失物品表
到 一過程【檢查遺失物是否重複輸入】,而將資料流接受的遺失
物輸入
儲存到 遺失物列表 中,而在此表中的遺失物資料也會 傳給 ″Lab assistant″ 知道。實體 ″Repairer″ :
″Repairer″ 會接收一從 ″Lab assistant ″ 所輸出的一資料
流
損壞表
經過一 【檢查維護記錄】 的過程,彙整成的資料流
損壞報告
。而″Repairer″ 會回報一資料流
維護表 經一過程 【檢
查維護記錄】 輸出一完整的資料流
維修報告 給
″Manager″4-2.5 圖 4(Lab Assistant)解說
L a b a s s i s t a n t 維護記錄表 D11 測試是否 完成維修 11. 4 列出 未維修記錄 11. 2 整理成表 11. 3 R e p a ir e r 檢查 損壞記錄 是否重複 輸入 11. 1 損 壞 表 損 壞 記 錄 維 修 記 錄 接 受 的 損 壞 記 錄 完 成 的 記 錄 損 壞 報 告 維修表 M a n a g e r 維 修 結 果 報 告圖4.5 圖11(Lab assistant)
實體 ″Lab assistant″ : 外部實體 ″Lab assistant″ 輸入一資料流
損壞表
配合之後 會說到的一資料流損壞記錄
至一過程【檢查損壞記錄是否重複輸入】 產生一接受的損壞記錄
儲存於維護記錄表中,而維護記錄表中也同 時儲存了來自於 ″Repairer″ 是否完成的完成記錄
。維護記錄表中 的資料維修記錄
將會經過一過程【列出未維修記錄】產生一資料流損壞記錄
。損壞記錄
會再經過一過程【整理成表】產生一資料流損
壞報告
和一資料流維修結果報告
分別給 ″Repairer″ 和 ″Manager″ 知道。4-2.6 圖 5(Lab Assistant)解說
L a b a s s i s t a n t assistant 資料表 D10 判斷年資 12. 1 排班時段表 D8圖4.6 圖12(Lab assistant)
判斷排班 時段是否 > = 16 堂 12 .2 判斷排班 時段是否 > = 8 堂 12 .3 判斷排班 時段是否 > = 4 堂 12 .4 年 資 資 料 接 受 的 班 表 排 班 時 段 排 班 結 果 兩年以上年資的 工讀生排班時段 一年以上 兩年以下年資的 工讀生排班時段 未滿一年年資的 工讀生排班時段實體 ″Lab assistant″ : ″Lab assistant″ 將
排班時段
輸入一過程【判斷年資】而這一個 【判斷年資】的過程會比對由資料儲存 assistant 資料表存取的年
資資料
把排班時段
分為兩年以上年資的工讀生排班時段
、一年以上
兩年以下年資的工讀生排班時段
、未滿一年年資的工讀生排班時段
。 而兩年以上年資的工讀生排班時段
我們會輸入一過程【判斷排班時段 是否 >= 16 堂】,一年以上兩年以下年資的工讀生排班時段
我們會輸 入一過程【判斷排班時段是否 >= 8 堂】,未滿一年年資的工讀生排
班時段
我們會輸入一過程【判斷排班時段是否 >= 4 堂】。之後我們 會產生一資料流接受的班表
和一資料流排班結果
。接受的班表
會儲存 於排班時段表中,而排班結果
將會告知 ″Lab assistant″ 所排完班 的結果。4-3 資料庫格式
.DataBase Lab
All Tables:
No Name of table Note
1 Student 學生資料表 2 Faculty 教職員資料表 3 Lab_Asssitant 機房工讀生資料表 4 Repairer 機房維修者資料表 5 Manager 機房管理者資料表 6 Login_Log 機房系統登入日誌 7 Lab 機房資料表 8 Campus 逢甲校園資料表 9 Building 逢甲建築物資料表 10 Schedule_of_Lab 機房借用計畫表 11 Pc 機房電腦資料表 12 Other_Equip 機房設備資料表
(Continued) 13 Layout 機房內部配置資料表 14 Pic_Info 機房內部配置的物件資料表 15 Software 機房電腦所安裝之軟體資料表 16 Printer 機房印表機資料表 17 Record_of_Use 機房電腦使用記錄資料表 18 Record_of_Maintenance 機房維護資料表 19 Lost_or_Broken 機房損壞遺失資料表 20 Part 機房電腦設備資料表 21 Open_Section 機房開放時段資料表 22 Section_Time 逢甲上課時間資料表 23 Soft_List 軟體清單資料表 24 FCU_Schedule 逢甲行事曆資料表 25 Lost_and_Found 機房失物招領資料表 26 Schedule_of_Lab_Assistant 機房工讀生值班表 表 4.1 所有 Table
.Student Table:
No Name of column Type Note
1 S_Id CHAR(8) PRIMARY KEY
學號 2 S_Pw CHAR(16) 因需加密,所以長 度為 16bytes 3 Name VARCHAR(10) 姓名 4 Department VARCHAR(6) 系所 5 Class CHAR(8) 班級 6 Citizen_Number CHAR(10) 身份證號碼 7 E_Mail VARCHAR(50) 表 4.2 Student Table .Faculty Table:
No Name of column Type Note
1 F_Id CHAR(6) PRIMARY KEY
教職員編號 2 F_Pw CHAR(16) 3 Name VARCHAR(10) 4 Citizen_Number CHAR(10) 5 E_Mail VARCHAR(50) 6 Cell_Phone CHAR(10) 7 Extension CHAR(4) 分機 8 Office VARCHAR(7) 辨公室*** 表 4.3 Faculty Table
.Lab_Assistant Table:
No Name of column Type Note
1 A_Id CHAR(8) PRIMARY KEY
2 A_Pw CHAR(16) 3 Name VARCHAR(10) 4 Citizen_Number CHAR(10) 5 E_Mail VARCHAR(50) 表 4.4 Lab_Assistant Table .Repairer Table:
No Name of column Type Note
1 R_Id CHAR(8) PRIMARY KEY
2 R_Pw CHAR(16) 3 Name VARCHAR(10) 4 Citizen_Number CHAR(10) 5 E_Mail VARCHAR(50) 表 4.5 Repairer Table .Manager Table:
No Name of column Type Note
1 M_Id CHAR(8) PRIMARY KEY
2 M_Pw CHAR(16)
3 Name VARCHAR(10)
4 Citizen_Number CHAR(10)
5 E_Mail VARCHAR(50)
.Login_Log Table:
No Name of column Type Note
1 Log_No INT UNSIGNED
PRIMARY KEY AUTO_INCREMENT 2 User_Id CHAR(8) 電腦使用者 3 Login_Time DATETIME 登入系統之時間 4 From_Which_IP CHAR(15) User 電腦之 IP 5 From_Which_Host VARCHAR(50) User 電腦之 HostName 表 4.7 Login_Log Table .LabTable:
No Name of column Type Note
1 L_Id CHAR(3) PRIMARY KEY
2 Total_Com TINYINT UNSIGNED
NOT NULL 共有電腦數
3 Building_No TINYINT UNSIGNED
位於何建築物中 4 Class_Room VARCHAR(6) 5 Extension CHAR(4) 機房分機電話 6 Update_Time TIMESTAMP(14) 機房資料更新時間 7 Note TEXT 表 4.8 LabTable
.Campus Table:
No Name of column Type Note
1 Campus_No SMALLINT UNSIGNED
PRIMARY KEY AUTO_INCREMENT 流水號 2 Name VARCHAR(30) 校區名稱 3 Address VARCHAR(200) 校區地址 表 4.9 Campus Table .Building Table:
No Name of column Type Note
1 Building_No INT UNSIGNED
PRIMARY KEY AUTO_INCREMENT
流水號
2 Campus_No SMALLINT UNSIGNED
位於哪一個校區
3 Name VARCHAR(40)
建築物名稱 表 4.10 Building Table
.Schedule_of_Lab Table:
No Name of column Type Note
1 S_Lab_No INT UNSIGNED
PRIMARY KEY AUTO_INCREMENT 流水號 2 L_Id CHAR(3) 機房 3 F_Id CHAR(8) 借用者 4 Date DATE 借用日期 5 Section ENUM('1','2','3','4','5','6','7',' 8','9','10','11','12','13','14') 所借用機房時段 6 Purpose TEXT 借用目地 表 4.11 Schedule_of_Lab Table .Schedule_of_Lab_Assistant Table:
No Name of column Type Note
1 S_Worker_No INT UNSIGNED
PRIMARY KEY AUTO_INCREMENT 流水號 2 A_Id CHAR(8) 工讀生 3 L_Id CHAR(3) 機房 4 Date DATE 上班日期 5 Section ENUM('1','2','3','4','5','6','7',' 8','9','10','11','12','13','14') 上班時段 表 4.12 Schedule_of_Lab_Assistant Table
.Pc Table:
No Name of column Type Note
1 Pc_No CHAR(6) PRIMARY KEY
機房名稱加流水號 2 L_Id CHAR(3) 3 IP VARCHAR(15) 電腦的 IP 4 Alias VARCHAR(30) 電腦的別名 5 Tag VARCHAR(10) 電腦的標籤 6 Host_Name VARCHAR(60) 電腦的 Hostname
7 Is_Broken ENUM('Y','N') DEFAULT
'N' 電腦是否已損讓
.Other_Equip Table:
No Name of column Type Note
1 Other_No INT UNSIGNED
PRIMARY KEY AUTO_INCREMENT
流水號
2 L_Id CHAR(3)
3 Overhead_Projector ENUM('Y','N') DEFAULT
'N' 投影機
4 Projector ENUM('Y','N') DEFAULT
'N' 單射投影機
5 CRT_Projector ENUM('Y','N') DEFAULT
'N' 三槍投影機
6 Ups ENUM('Y','N') DEFAULT
'N' 不斷電系統
7 Microphone ENUM('Y','N') DEFAULT
'N' 麥克風
8 Laser_Pointer ENUM('Y','N') DEFAULT
'N' 雷射筆
9 Equip VARCHAR(100)
其它設備或備註 表 4.14 Other_Equip Table
.Layout Table:
No Name of column Type Note
1 Layout_No CHAR(6) PRIMARY
KEY 機房名稱加流水號
2 Pc_No CHAR(6)
是否有電腦
3 Col TINYINT UNSIGNED
Col 位置
4 Row TINYINT UNSIGNED
Row 位置
5 Empty ENUM('Y','N') DEFAULT
'N' 是否有物件
6 Note TEXT
表 4.15 Layout Table
.Pic_Info Table:
No Name of column Type Note
1 Layout_No CHAR(3) PRIMARY
KEY 機房名稱加流水號 2 Pic_path VARCHAR(200) 代表物件的圖片之 路徑 3 Pic_Category ENUM('PC01','PC02','PC 03', 'Printer','Door','WhiteBoar d' ,'Broken_PC','Broken_Pri nter','Assistant') 物件的種類 4 Pic_Direction enum('N','E','S','W') 物件的方向 表 4.16 Pic_Info Table
.Software Table:
No Name of column Type Note
1 Software_No INT UNSIGNED
PRIMARY KEY AUTO_INCREMENT
流水號
2 Pc_No CHAR(6)
3 Soft_List_No INT UNSIGNED
表 4.17 Software Table
.Printer Table: No Name of
column
Type Note
1 Printer_No INT UNSIGNED PRIMARY
KEY AUTO_INCREMENT 流水號 2 L_Id CHAR(3) 3 Manufacturer VARCHAR(30) 製造廠商 4 Name VARCHAR(60) 印表機機型
5 Number TINYINT UNSIGNED
數目 表 4.18 Printer Table
.Record_of_Use Table: No Name of
column
Type Note
1 Use_No INT UNSIGNED PRIMARY
KEY AUTO_INCREMENT 流水號 2 Pc_No CHAR(6) 3 User_Id CHAR(8) 使用者(含教職員與 學生) 4 Start_Time TIMESTAMP(14) 開始使用的時間 5 End_Time TIMESTAMP(14) 結束使用的時間 表 4.19 Record_of_Use Table
.Record_of_Maintenance Table:
No Name of column Type Note
1 Maintenance_No INT UNSIGNED PRIMARY
KEY AUTO_INCREMENT 流水號
2 LB_No INT UNSIGNED
對應的損壞遺失記 錄
3 R_Id CHAR(8)
修復者
4 Is_Repaired ENUM('Y','N') DEFAULT
'N' 是否修復 5 Fee DECIMAL(8,0) 花用 6 Actual_Problem TEXT 問題 7 Solving_Way TEXT 解決方法 8 Finished_Date DATETIME 完成時間 表 4.20 Record_of_Maintenance Table
.Lost_or_Broken Table: No Name of
column Type
Note
1 LB_No INT UNSIGNED PRIMARY
KEY AUTO_INCREMENT 流水號 2 Pc_No CHAR(6) 有問題之電腦 3 A_Id VARCHAR(10) 4 Problem TEXT 問題描述 5 Report_Date DATETIME 回報時間 表 4.21 Lost_or_Broken Table .Part Table: No Name of column Type Note
1 Pc_No CHAR(6) PRIMARY KEY
2 CPU VARCHAR(20)
3 HD VARCHAR(20)
4 Drawable ENUM('Y','N') DEFAULT
'N' 抽取盒 5 RAM VARCHAR(30) 6 LCD ENUM('Y','N') DEFAULT 'N' 7 Others TEXT 表 4.22 Part Table
.Open_Section Table: No Name of
column
Type Note
1 Section_No INT UNSIGNED PRIMARY
KEY AUTO_INCREMENT PRIMARY KEY 2 Section ENUM('1','2','3','4','5','6','7','8' ,'9','10','11','12','13','14') 堂 3 Day ENUM('1','2','3','4','5','6','7') 星期 4 L_Id CHAR(3) 機房 5 Start_Date DATE 開始日期 6 End_Date DATE 結束日期 表 4.23 Open_Section Table .Soft_List Table: No Name of column Type Note
1 Soft_List_No INT UNSIGNED PRIMARY
KEY AUTO_INCREMENT 流水號 2 Name VARCHAR(60) 軟體名稱 3 Category ENUM('WIN','DOS','OS') DEFAULT 'WIN' 軟體種類 表 4.24 Soft_List Table
.Section_Time Table: No Name of column Type Note 1 Section ENUM('1','2','3','4','5','6','7','8','9',' 10','11','12','13','14') PRIMARY KEY 課堂 2 Start_Time TIME 開始時間 3 End_Time TIME 結束時間 表 4.25 Section_Time Table .FCU_Schedule Table: No Name of column Type Note
1 Start_Date DATETIME NOT NULL PRIMARY KEY
2 End_Date DATETIME NOT NULL PRIMARY KEY
3 School_Day ENUM('Y','N')
是否放假
4 Affair TEXT
學校事務 表 4.26 FCU_Schedule Table
.Lost_and_Found Table:
No Name of column Type Note
1 L_n_F_No INT UNSIGNED
PRIMARY KEY AUTO_INCREMENT 流水號 2 L_Id CHAR(3) 3 A_Id CHAR(8) 4 Things TEXT 物品 5 Found_Time DATETIME 6 Reture_Time DATETIME 7 Owner_Id VARCHAR(8) 所有人 8 Finder_Id VARCHAR(8) 尋獲者 9 Note TEXT 表 4.27 Lost_and_Found Table
第五章 成果評估
新舊系統評估與比較 評估系統:逢甲大學借用實習教室系統與本次專題製作系統。 原有系統位置:逢甲大學網頁/行政單位/資訊處/借用實習教室。 ( http://140.134.208.136/brw/tlogin.htm ) 評估內容:操作介面、便利性以及資料庫正確性。 評估過程: ● 機房資訊及借用資料: 舊有系統查詢教室資料連結後顯示資訊包含機房代號、機房 地點、機型、機台數以及開放時間,其中機房代號顯示為機房教 室之名稱而非一般使用者所常用的機房代號(例:A 室、B 室……) 較一般使用者無法熟悉使用。機型所顯示為 CPU 之效能,現今效 能並不光以 CPU 效能為唯一憑據,以需要性來說並不能完全符合 使用者想得知之資訊。查詢教室使用狀況後,顯示為整個學期之 固定排課表格,表格內容為課程名稱、上課班級以及任課老師。 對於零散之借用並無紀錄,導致日後臨時借用時,並無提供任何 資料供參考,其缺點容後文中予以討論。而新系統中教室的查詢依照使用者所需的需求,依條件查詢 所顯示內容為機房名稱、總機台數、可使用機台數、機房位置、 上次編輯時間以及查看機房明細及預借,其中機房名稱以一般使 用者熟悉之機房代號,而將教室名稱與教室位置整合為一個位, 於一般習慣上較為使用者接受。將舊有之機台數分為總機台數以 及可使用機台數,有鑒於公用設施並無法保證均能正常使用,總 機台數並不表示所有機台皆可使用,故以分開顯示以供參考,另 外加上上次編輯時間以供此份資料之可靠性作為參考。查看機房 明細及預借查看部分更提供了機房教室所有軟硬體詳細之資料, 而預借表直接整合預借之功能,對於依需求所查詢到的機房直接 做預借之動作,更提供了借用機房的方便性。 ● 機房的借用: 舊有系統只以機房代號與欲借之星期 N( N 為一、二、…六、 日)為借用之條件,顯示可借之機房及節次,實際日期上卻需要使 用者自己做另外的查詢,再使用上或許使用者得自備個月曆,相 當之不方便,而其顯示範圍只有當月之星期 N 可借之節次,對於 欲借下個月份之課堂並無可用之法,並且內容有大量且重複性極 高之累贅資料,容易使使用者眼花撩亂。另外在登入借用功能時 必須輸入教職員編號以及身分證字號,然則身分證字號容易取
得,其保密性堪虞。執行借用動作之時,必須輸入分機號碼以及 使用目的,在執行借用之後,組員們紛紛跌落眼鏡,如此繁複輸 入,竟然一次只能借用一節,更令人無法接受的是,當使用者欲 借其他節次竟然必須重新登入,每借一節課就必須登入一次,在 使用上來說實在沒有便利性可言,而在測試使用期間,嘗試著同 一節次再次的借用,竟然可以將先前的借用資料覆蓋,且於前文 中提到,並無對零星借用資料做紀錄,因此資料被覆蓋後也無從 查證,由於只有一組測試帳號,我們無法得知是否其他帳號也可 以覆蓋此借用資料,假使覆蓋資料是可行的,那麼此借用機房系 統便失去了可靠性了,在此,我們留下了驚訝的疑問,希望有心 者可以實際測試一遍。另外於刪除已借用資料方面,於執行後所 顯示資訊更予刪除資料不符,更令組員們瞠目結舌。 新系統的借用功能不但可以直接選擇機房教室,其所顯示為 一週之機房的借用資訊,還可以利用跳到上/下星期選擇未來的 借用資訊,其內容不但顯示可借用之節次,更顯示出已被借用節 次以及使用者本身所借用之節次。點選已被借用之節次,我們以 彈跳出新視窗顯示借用資訊,顯示內容為借用者姓名、辦公室、 E-mail 及借用目的,方便老師之間互相調課使用,並且不會產生
資料覆蓋的情形。而點選使用者本身所借用的節次,確認輸入後 便可以成功的取消此筆借用紀錄,且登入系統之後可以做多重選 擇之動作,不用像舊系統必須做重複的登入以及輸入資料動作。 另外教職員資料由管理人員更改並設定密碼,而非利用容易獲得 的身分證字號作為登入密碼,較不易為不肖人士所利用。 新系統已針對舊有系統的種種不便,做了不少的改進,雖然 還有些許功能的遺漏,但我們還是能肯定的說,我們確實改進了 原有的系統,提高其實用性、方便性與正確性。
以下為新舊系統比較表:
本系統 借用機房系統
OS Red Hat 7.3 WIN 98
Server APACHE PWS
DB MySQL Access 表 5.1 背景比較表
本系統 借用機房系統
Interface Graphic Text
借用機房 可借用多間 一次只能借用一間, 要借用必須再登入
取消借用機房 PHP ASP
DB MySQL Access 表 5.2 新舊系統各項比較
第六章 結論
6-1 心得
資訊四丙 林政融 時光荏苒,光陰似箭,經過這一段漫長的時間,我們總算是把這 個系統實作出來了。這段時間,我們經歷了太多的挫折,包括找老師, 定題目,系統分析,實作階段等。這些經歷,彷彿還是昨天剛發生的 事情,有喜有悲,有笑有淚,一切都是這麼地刻骨銘心, 就這樣深 深地烙印在我們每個人的心裡了。暮然回首,才發現專題是一個人生 的試煉,我們在這過程當中,不斷地成長、蛻變,然後我們終於超脫, 得到了新的啟發,現在才能夠泰然地面對這一切令人煎熬的試煉。 首先,我們在找專題老師的時候,大家就有了不同的意見。畢竟, 每個人都有屬於他自己的想法與考量。經過我們仔細地再三討論與考 慮,我們覺得顧偉倫顧老師對於實務上面非常的有經驗,而且對於一 個系統的分析也都能夠針針見血,徹底地剖析一個系統的需求,進而 發展出一個符合使用者需求且有良好規劃的系統。於是,我們一致決 定找顧偉倫老師當我們的專題指導老師。一開始,我們並沒有想好要作什麼題目,經過詢問顧偉倫老師的 意見,我們才有了一個目標與方向。然而,事情並沒有因此而順利發 展。由於種種不可抗拒的因素,我們只好一而再、再而三地更改題目。 我們當然會感到沮喪與無力,畢竟我們都是很認真的地去作,可惜我 們忽略了太多人為因素的考量。仔細想想,以後我們出去工作,也是 很有可能遇到這樣的問題。客戶的需求模糊不清,而且不斷地更改需 求,這時候我們就應該跟客戶有良好的互動,才不會浪費太多無謂的 發展。 再來就是系統分析的階段了。我們每個組員都非常地認真負責, 每個禮拜都有自己組員的 meeting, 報告自己這禮拜的進度, 以及 討論系統分析,這是讓我覺得最值得驕傲的地方。不管我們的專題好 壞與否,我覺得我們每一個人都盡自己最大的努力,這才是我們作專 題最重要的精神啊! 話說回來,我們每次的討論,總是有意見不合的 時候,有時候真的很難跟組員溝通,並不是說組員都不聽,而是自己 的表達能力不夠,我心裡面想的跟我想表達的意思, 傳遞給對方都 變成不一樣的了。 因此,我認為溝通是系統分析裡面一個很重要的 因素。我們除了要透徹分析一個系統,還必須要讓使用者了解我們作 的系統分析想要表達的意念,這才是最重要的。