資料庫的簡單學習

數據庫學習

一、數據庫系統

數據庫系統是由數據庫、數據庫管理系統、應用程序和數據庫管理員組成的存儲、管理、處理和維護數據的系統。

以上這句話是對數據庫系統非常嚴謹的定義。我這篇博客是想從自己的角度來重新認識一下數據庫系統。在逐個剖析以上這些名詞的含義之前先考慮一個問題:我們為什麼要引入數據庫系統?換句話說,引入數據庫系統可以幫助我們解決什麼問題?

二、引入數據庫系統的必要性

數據,也叫做信息資源,已經成為各個組織最寶貴的無形財產,因此各個組織機構也都十分需要一個可以存儲和處理數據的技術。尤其是進入互聯網時代以來,數據量大幅度的增長,用戶每天用各種終端訪問各種服務器裡的數據,那麼數據的存儲和處理技術就顯得更為重要了。數據庫系統由此產生,數據庫系統就是存儲、管理、處理和維護數據的系統。介紹完這個後就接著聊一下數據庫系統的組成部分。

三、數據庫系統的組成部分

數據庫系統由數據庫、數據庫管理系統、應用程序、數據庫管理員四部分組成。

1.數據庫

顧名思義,數據庫就是存放數據的倉庫,只不過這個倉庫是在計算機的存儲設備上,類似於我們會將現實中的倉庫中的貨物按一定規律存放,數據也是按一定的格式存放在數據庫中的。

2.數據庫管理系統

我們有了數據庫這個倉庫來存放我們的數據了,那麼,是不是就需要一個有效組織管理數據的工具?完成這個任務的就是數據庫管理系統。

3.應用程序

用與數據庫接口的高級語言開發出的應用程序。

4.數據庫管理員

人員也算是數據庫系統的一部分。數據庫管理員負責管理和控制數據庫系統。

到此,數據庫系統是個什麼東西我們就理解了。接下來,我們聊一聊數據庫系統在計算機中處於什麼位置。我們從底層往上層說,首先最底層的一定是硬件,接下來硬件上面有計算機的操作系統,然後是數據庫管理系統,接下來是應用開發工具,最後是應用程序。也就是:硬件->計算機操作系統->數據庫管理系統->應用開發工具->應用程序。

看到這裡,我就會想起另一種數據集合的存儲管理系統:文件系統。相信大家會有一個疑問產生:文件系統和數據庫系統之間有什麼區別?這裡我先暫不詳述,留待以後討論。現在先討論一下數據庫系統的主要特點。

四、數據庫系統的主要特點

1.數據結構化

數據庫的簡單學習

如圖,這裡我創建了兩個表,一個表用於存儲學生的基本信息,另一個表用於存儲學生的詳細情況。有些學生的經歷比較豐富,詳細情況的敘述也比較長,有些同學沒有詳細情況的敘述。表創建好之後,直接可以用insert into插入數據。然後使用select就可以查詢出我們需要的信息。看起來比較簡潔明瞭。

如若該系統比較複雜,也是可以創建這種表與表之間的關係。那麼,什麼是數據結構化呢?

數據結構化是指數據庫中的數據不再僅僅是面向應用的,而是面向整個組織的。不僅數據的內部具有結構,數據之間也具有聯繫。數據庫整體是結構化的。

2.數據的高共享性、低冗餘性且易於擴充

數據庫數據是面向組織的,所以它可以被多個用戶、多個應用使用。

數據的共享可以減少冗餘,節約存儲空間。

數據的共享不僅僅可以讓多個應用同時使用數據庫,而且可以增加新的應用。我們可以使用數據庫整體的各種子集用於不同的應用系統,當需求改變,只需重新選取不同子集,或者加上一部分數據便可滿足新的需求。

3.數據獨立性高

數據獨立性又分為物理獨立性與邏輯獨立性。這裡不詳述。好處在於減少了應用程序的維護與修改。

4.數據由數據庫管理系統統一管理和控制

數據庫的共享會帶來數據的安全隱患,所以數據庫管理系統必須提供一些管理控制功能。

五、文件系統與數據庫系統的本質區別

分析完數據庫系統的特點,想必文件系統與數據庫系統之間的區別就出來了。實際上,它們的本質區別在於數據庫系統的數據有結構化的特點,而文件系統數據內部是有結構化的,但數據整體不具備這一特點。我們可以考慮一下上面的例子,如果用文件系統來做這樣的學生信息管理系統該如何做呢?顯然也是可以的,不過程序員的許多精力要放在不同文件中記錄之間的聯繫,使用fopen、fread、fwrite、fseek、fclose等調用來操作,會特別麻煩。而用擁有數據結構化特點的數據庫系統只需要一個語句就可以實現這些功能。


分享到:


相關文章: