人類二次啟蒙「去奴解愚」!



人類因科技賦能而無所不能
不再有失業貧困弱勢的狀態


加入「人本幸福企業」
推動團隊 Line 群組

思維啟蒙、重建信仰、認知升級

思維啟蒙、重建信仰、認知升級

線上閱讀:https://dgi.tw/id/888


2004/11/15 00:00 資訊電腦 - IT POLO POLO   161532  

資料庫與作業系統整合,看未來程式設計

電腦上的一切,除硬體外其餘的都只是一堆資料而已,作業系統是,驅動程式也是,所有的多媒體,包括PLAYER、編輯工具、各種多媒體檔案,把它分解以後是什麼?還都是一堆0與1的「資料」組合。

此內容主體源自於「VB.Net走錯路了嗎?」,因主題因素作者將內容拆解至於新的主題中另加詳述。

(本文開始)

在「VB.Net走錯路了嗎?」的原文POST於網路時,曾有位讀者提道:「VB一定要與資料庫相關聯嗎?拿來寫多媒體不是也是可以嗎?」

看目前程式設計模式,不是從UI介面或某某『元件』功能開始設計,要不就是物件設計方式設計各種類別、繼承關係與封裝變數與方法的讀取權限,甚至是先寫好測試方法才寫原先要達到目的程式,事實上這些工作都讓程式設計變得越來越複雜與龐大,原本一人可完成的工作,卻需要好幾個人投入,兩周完成的功能變成半年。

而資料庫的設計思維卻不是從物件、變數、運算邏輯開始,而是資料如何存放,哪些是相同資料應該放在一起,彼此如何產生關聯與價值或是簡單化表現,任何資料異動就先做好計算與統計,不用每次從新計算讓一堆變數及演算法重複浪費電腦運算。

以網站設計為例,您可以用一大堆靜態檔案湊成一個網站,或是內容放於資料庫管理的動態網站(大多數的模式),最高竿的是網站是所有的元素,如版面、選單、系統訊息、標籤及各種內容,流程甚至是CSS元素與JAVASCRIPT功能全部放在資料庫管理,並由資料庫產生對應檔案,網頁全部元素都在資料庫內,這種架構與一般網站程式相比要少許多,維護也能簡單許多。

由於作者在Windows 3.1的時代就習慣使用資料庫,因此在程式設計時,會先從資料本身思考起,從哪裡產生有何作用,流程的結果為何,後續資料應用與如何累積產生關聯,之後才會考慮變數、運算邏輯等傳統的程式設計方式,也就是說完全以資料與資料庫作思考的起點。

而兩者差別是,傳統程式設計常將已經存在的資料(自己的機器或者網路上的其他電腦)、轉來轉去、COPY來COPY去、不斷讓CPU浪費時間(資源)去做多餘的判斷與計算工作,而藉由資料庫可省去許多資料計算與驗證、存放問題,尤其是功能強大的關聯式SQL資料庫出現之後。

兩者有多大不同?

以一筆親友資料為例,傳統程式設計為了讓程式較不容易出錯,通常會建立西元生日、民國出生年、年齡、星座、生肖等各別輸入資訊,當然也可以麻煩些某對程式碼中加入自動由西元生日做上述全部資訊的判斷,只不過當程式碼寫錯得費時去除錯,設計過程還得注意各種資料的轉型問題。

而資料庫的處理的方式就簡單許多,首先資料庫對欄位(如西元生日)一開始就能定義資料格式(如日期格式),其他如年齡、星座、生肖..都能由此欄位自動產生,而自動產生的衍生資料,可在資料庫端就做好處理(如查詢程序),程式只需負責要求何種資料即可,可大幅減少程式碼與錯誤發生的機會,當然對須儲存的資料也不必做繁雜的處理(指類似ACCESS這種本身就與資料庫整合的開發工具而言,因為各種主流程式都能讀取資料庫)。

以技術來說,資料庫不只是存放公司或個人電話號碼的文字資訊、文件而已,理論上硬體之外的東西都能藉由資料庫來管理。也就是說資料庫應該與磁碟管理系統直接整合,能直接控制硬碟的磁區與RAM記憶體內的資料,用資料庫的概念完全取代現有資料夾與檔案的結構,程式與資料的各種執行、讀寫、存放、安全都由此超級資料庫進行管控,也就是此資料庫運作系統即為作業系統的核心,作業系統亦是資料庫系統,而這種系統的效率也會遠遠超越現有昂貴的資料庫系統。

在此新架構中要知道電腦名稱、IP位置、作業系統版本或者是其他電腦內的資訊(不管是各種軟硬體資訊與設定條件)只要下一段資料庫的讀取指令(權限足夠下),很輕易快速的取出來使用(寫入亦同),不需像現在得用一堆API函數或者其他元件功能,將資料從雜亂無章的作業系統與特殊機密的檔案中讀取出來,過程根本不需要API,更不用去理會是哪個版本的DLL。

往後程式設計或資料運用,會與目前有極大差別(變的簡單、功能強大),例如多媒體撥放程式,傳統我們要拉一堆元件(如Open File Dialog、Button、多媒體撥放OCX或DLL…..)到表單去,也許還要處理播放清單等工作,如果是新的架構,只要將資料庫內的多媒體資料,檢索出需要的條件(如一段SQL查詢語法)丟給指定的多媒體PLAYER(或元件)它就能運作。

對於文字、圖片、聲音等內容,在新資料庫系統將有專屬的資料庫及欄位來存放,具備資料(格式)檢驗及自動優化的能力。而資料本身的結構也會不同,如以往一個MP3檔案可能內含歌詞,曲風,歌唱者等資訊,但在新資料架構都會把這些資料(資訊)全部分離出來,存在特定或延伸的關聯欄位中,系統內的所有資料都可以關聯起來,或進行各種方式的查詢及使用(包括遠端存取、關聯),甚至支援IID功能。當然每一筆資訊都能透過單一的資料管理系統指定安全程度與行為方式,這種安全是連網路卡的驅動程式、Win Socket這種底層元件都能進行管控。

未來天我們在設計程式、使用資訊、交換資料將會以更快速、簡單、安全的方式進行著,而且是全新的的不同經驗,或許以後我們就再也找不到資料匣與檔案這種東西、取而代之是資料表及欄位這種資訊及資訊片段的資料存取及利用方式、爾後在作業系統的建置與軟硬體的程式安裝上將有完全不同的經驗,而且完全不必重灌或升級你的電腦系統都能夠保持效能,除非控制這個超級資料庫管理改變控制結構。

也許作者這樣說會讓人覺得不可思議,但這種未來的作業系統即資料庫的架構早晚會出現,雖然在1999告訴作者的弟弟此一概念而被譏笑,不過至今這個趨勢正在浮現中,而且會越來越明顯。

或許,到那天還有一段距離。不過,要是微軟現在將MS ACCESS內建到Windows作業系統中,在功能上稍微加強(比目前2003版本加強,採用‧NET核心,物件化程式結構),也許目前的程式設計的方式、文化、商機、馬上產生巨大影響,至少競爭對手MY SQL的使用者馬上少一半,也是反轉頹劣市場(讓‧NET成為市場主流),平衡微軟目前這麼高的產品定價策略之一,或者讓WinFS能做暖身運動,別像‧NET推好幾年大夥對它還是一知半解的困境。