程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python入門開發學習筆記之了解數據庫的作用

編輯:Python

本節重點

了解數據庫的作用
本節時長需控制在5分鐘內

數據庫管理軟件的由來
基於我們之前所學,數據要想永久保存,都是保存於文件中,毫無疑問,一個文件僅僅只能存在於某一台機器上。

如果我們暫且忽略直接基於文件來存取數據的效率問題,並且假設程序所有的組件都運行在一台機器上,那麼用文件存取數據,並沒有問題。

很不幸,這些假設都是你自己意淫出來的,上述假設存在以下幾個問題。。。。。。

1、程序所有的組件就不可能運行在一台機器上

因為這台機器一旦掛掉則意味著整個軟件的崩潰,並且程序的執行效率依賴於承載它的硬件,而一台機器機器的性能總歸是有限的,
受限於目前的硬件水平,就一台機器的性能垂直進行擴展是有極限的。
於是我們只能通過水平擴展來增強我們系統的整體性能,這就需要我們將程序的各個組件分布於多台機器去執行。

2、數據安全問題

根據1的描述,我們將程序的各個組件分布到各台機器,但需知各組件仍然是一個整體,言外之意,所有組件的數據還是要共享的。
但每台機器上的組件都只能操作本機的文件,這就導致了數據必然不一致。
於是我們想到了將數據與應用程序分離:把文件存放於一台機器,然後將多台機器通過網絡去訪問這台機器上的文件(用socket實現),
即共享這台機器上的文件,共享則意味著競爭,會發生數據不安全,需要加鎖處理。。。。

3、並發

根據2的描述,我們必須寫一個socket服務端來管理這台機器(數據庫服務器)上的文件,然後寫一個socket客戶端,完成如下功能:

1.遠程連接(支持並發)
2.打開文件
3.讀寫(加鎖)
4.關閉文件

總結:

我們在編寫任何程序之前,都需要事先寫好基於網絡操作一台主機上文件的程序(socket服務端與客戶端程序),於是有人將此類程序寫成一個
專門的處理軟件,這就是mysql等數據庫管理軟件的由來,但mysql解決的不僅僅是數據共享的問題,還有查詢效率,安全性等一系列問題,
總之,把程序員從數據管理中解脫出來,專注於自己的程序邏輯的編寫。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved