資料庫的演變史

一:資料庫演變史

1.什麼是資料庫?

1、顧名思義,資料庫(DB,database)是按照數據結構來組織、存儲和管理數據的「倉庫」。

2、資料庫指的是以一定方式儲存在一起、能為多個用戶共享、具有儘可能小的冗餘度的特點的、與應用程式彼此獨立的數據集合。

3、資料庫可以通過統一的一些指令對數據進行增、刪、改、查(Create,Retrive,Updata,Delete)等操作。

4,看作是冰箱,可以存取物品的地方
image

2.資料庫的作用

1.實現數據共享:
數據共享包含所有用戶可同時存取資料庫中的數據,也包括用戶可以用各種方式通過介面使用資料庫,並提供數據共享。

2.減少數據的冗餘度:
同文件系統相比,由於資料庫實現了數據共享,從而避免了用戶各自建立應用文件。減少了大量重複數據,減少了數據冗餘,維護了數據的一致性。

3.保持數據的獨立性:
數據的獨立性包括邏輯獨立性(資料庫中資料庫的邏輯結構和應用程式相互獨立)和物理獨立性(數據物理結構的變化不影響數據的邏輯結構)。
4.數據實現集中控制:
文件管理方式中,數據處於一種分散的狀態,不同的用戶或同一用戶在不同處理中其文件之間毫無關係。利用資料庫可對數據進行集中控制和管理,並通過數據模型表示各種數據的組織以及數據間的聯繫。

5.數據一致性和可維護性:
以確保數據的安全性和可靠性:主要包括:安全性控制、完整性控制、並發控制,使在同一時間周期內,允許對數據實現多路存取,又能防止用戶之間的不正常交互作用。

6.故障恢復:
由資料庫管理系統提供一套方法,可及時發現故障和修復故障,從而防止數據被破壞。資料庫系統能儘快恢復資料庫系統運行時出現的故障,可能是物理上或是邏輯上的錯誤。比如對系統的誤操作造成的數據錯誤等。
image

二:資料庫的演變方向

1.文件操作階段(保存數據(讀寫方式))
jason|123|read

缺點:
每個人數據格式都不相同 程式之間無法兼容

2.軟體開發目錄規範(保存數據分類不同(文件夾))
db		數據存儲文件

缺點:
雖然存儲目錄相同了,但是每個人數據格式都不相同 程式之間無法兼容

3.存儲位置和格式(解決程式之間無法兼容)

使用資料庫的目的就是為了解決數據不兼容的問題,基於網路使數據在某一個地方以相同的格式統一保存,實現數據共享(完成數據之間的格式與存儲位置統一)

  • 實列
4.只保存本地自己數據,彼此不共享(單機模式)
單機遊戲: 不需要連接網路就可以玩,在本機儲存數據,你的通關記錄,帳號密碼,都存儲在本機
    優點:不需要鏈接網路
    缺點:限制於在一台電腦玩,如果你電腦壞掉了,在換一台,那這些記錄都沒有。你註冊的帳號換一台電腦登錄也是沒有記錄的,還是初始化狀態。(其實單機好像不需要註冊帳號)

image

5.數據存儲全部統一在相同的地方完成(聯機模式)
聯機遊戲:不在本地保存數據。所有人基於網路把自己的數據存儲到相同的位置,數據存儲的格式都相同,訪問的格式也相同,所以不管在那台電腦上,登錄帳號密碼就可以訪問到我們存儲在資料庫的資訊,這樣就實現了兼容問題。

image

6.集群的概念

如果資料庫機房內,伺服器著火了,地震了,海嘯了。那這樣是不是所有用戶的數據都會流失,所以我們用到了集群。 多台電腦從事相同的工作內容

  • 集群的作用:
集群一般由兩個或兩個以上的伺服器組建而成,每個伺服器被稱為一個集群節點,集群節點之間可以相互通訊。通訊方式有兩種,一種是基於RS232線的心跳監控,另一種是一塊單獨的網卡 來跑心跳。因而,集群具有節點服務狀態監控功能,同時還必須具有服務實體擴展功能,可以靈活地增加和剔除某個服務實體。

集群中,同樣的服務可以由多個服務實體提供。因此,當一個節點出現故障時,集群的另一個節點,可以自動接管故障節點的資源,從而保證服務持久、不間斷地運行。因而集群具有故障
自動轉移功能。


一個集群系統必須擁有共享的數據存儲,因為集群對外提供的服務是一致的,任何一個集群節點運行一個應用時,應用的數據集中存儲在節點共享空間內,而每個節點的作業系統上僅運行應用的服務,同時存儲應用程式文件。

image

三:資料庫基本概念

1.什麼是數據(Data)?

事物的狀態

2.什麼是記錄?

一組數據結構成一條記錄,相當於文件中的一行內容,如1,tanke,male,18

3.什麼是表?

文件

4.什麼是庫?

文件夾

5.什麼是資料庫管理系統(DataBase Management System 簡稱DBMS)

管理數據的套接字軟體,CS架構

6.什麼是資料庫伺服器?

運行有DBMS伺服器的電腦,該電腦對記憶體和硬體要求都很高

四;軟體開發架構

1.c/s架構
客戶端 服務端
2.b/s架構
瀏覽器 服務端

本質:bs架構本質也是cs架構

五:資料庫的分類(兩大類)

1.關係型資料庫(簡稱RDBMS)

具有固定的表結構 並且表與表之間可以通過外鍵建立關係
MySQL、MariaDB、Oracle、PostgreSQL、sqlserver、sqlite、db2

  • 簡介
    sql server
    微軟公司的產品,主要應用於大中型企業,如聯想、方正等。
    
    oracle
    主要用於銀行、鐵路、飛機場等。該資料庫功能強大,軟體費用高。
    也是甲骨文公司的產品。
    
    MySQL
    主要用於大型門戶,例如搜狗、新浪等,它主要的優勢就是開放源程式碼
    因為開放源程式碼這個資料庫是免費的,他現在是甲骨文公司的產品。
    
    MariaDB
    SUN被甲骨文收購後,MySQL 的原創人員有拉出另外一個分支,
    命名MariaDB 。該資料庫被維基百科,Facebook 甚至 Google 
    等技術巨頭使用。 MariaDB 是一種可為 MySQL 提供插件替換功能的
    資料庫伺服器。開發人員的首要關注點是安全性,在每個版本發布時,
    開發人員還會合併所有 MySQL 的安全修補程式,
    並在需要時對其進行增強。

注意: sql語句通用

2.非關係型資料庫

沒有固定的表結構 數據存儲採用K:V鍵值對的形式
redis、mongoDB、memcache

  • 簡介
    mongodb(可用來作為後端資料庫管理軟體)
    redis(多用來作為快取)
    memcache(多用來作為快取)
3.關係型資料庫與非關係型資料庫語句

我們通常將操作關係型資料庫的語句稱為:SQL語句

我們通常將操作非關係型資料庫的語句稱為:NoSQL語句

有時候甚至使用NoSQL指代非關係型資料庫

  • 可以理解為:
    關係型資料庫需要有表結構
    非關係型資料庫是key-value存儲的,沒有表結構
4.資料庫可以指代的

1.程式
2.資料庫管理軟體
3.存放數據的某個’文件夾’

六:SQL語句的由來

1.什麼是SQL語句?
就是操作資料庫軟體的命令
2.為什麼要有SQL語句?
是因為資料庫能夠支援的語言非常的多 為了避免識別問題 
發明了SQL語句 規定只要想使用資料庫就統一使用SQL語句操作

image

七:資料庫的本質

資料庫本質其實就是一款cs架構的軟體
所以我們所有人其實都可以寫一款資料庫軟體

在市面上確實有很多資料庫軟體