一:資料庫演變史
1.什麼是資料庫?
1、顧名思義,資料庫(DB,database)是按照資料結構來組織、儲存和管理資料的“倉庫”。
2、資料庫指的是以一定方式儲存在一起、能為多個使用者共享、具有儘可能小的冗餘度的特點的、與應用程式彼此獨立的資料集合。
3、資料庫可以通過統一的一些指令對資料進行增、刪、改、查(Create,Retrive,Updata,Delete)等操作。
4,看作是冰箱,可以存取物品的地方
2.資料庫的作用
1.實現資料共享:
資料共享包含所有使用者可同時存取資料庫中的資料,也包括使用者可以用各種方式通過介面使用資料庫,並提供資料共享。
2.減少資料的冗餘度:
同檔案系統相比,由於資料庫實現了資料共享,從而避免了使用者各自建立應用檔案。減少了大量重複資料,減少了資料冗餘,維護了資料的一致性。
3.保持資料的獨立性:
資料的獨立性包括邏輯獨立性(資料庫中資料庫的邏輯結構和應用程式相互獨立)和物理獨立性(資料物理結構的變化不影響資料的邏輯結構)。
4.資料實現集中控制:
檔案管理方式中,資料處於一種分散的狀態,不同的使用者或同一使用者在不同處理中其檔案之間毫無關係。利用資料庫可對資料進行集中控制和管理,並通過資料模型表示各種資料的組織以及資料間的聯絡。
5.資料一致性和可維護性:
以確保資料的安全性和可靠性:主要包括:安全性控制、完整性控制、併發控制,使在同一時間週期內,允許對資料實現多路存取,又能防止使用者之間的不正常互動作用。
6.故障恢復:
由資料庫管理系統提供一套方法,可及時發現故障和修復故障,從而防止資料被破壞。資料庫系統能儘快恢復資料庫系統執行時出現的故障,可能是物理上或是邏輯上的錯誤。比如對系統的誤操作造成的資料錯誤等。
二:資料庫的演變方向
1.檔案操作階段(儲存資料(讀寫方式))
jason|123|read
缺點:
每個人資料格式都不相同 程式之間無法相容
2.軟體開發目錄規範(儲存資料分類不同(資料夾))
db 資料儲存檔案
缺點:
雖然儲存目錄相同了,但是每個人資料格式都不相同 程式之間無法相容
3.儲存位置和格式(解決程式之間無法相容)
使用資料庫的目的就是為了解決資料不相容的問題,基於網路使資料在某一個地方以相同的格式統一儲存,實現資料共享(完成資料之間的格式與儲存位置統一)
- 實列
4.只儲存本地自己資料,彼此不共享(單機模式)
單機遊戲: 不需要連線網路就可以玩,在本機儲存資料,你的通關記錄,賬號密碼,都儲存在本機
優點:不需要連結網路
缺點:限制於在一臺計算機玩,如果你計算機壞掉了,在換一臺,那這些記錄都沒有。你註冊的賬號換一臺電腦登入也是沒有記錄的,還是初始化狀態。(其實單機好像不需要註冊賬號)
5.資料儲存全部統一在相同的地方完成(聯機模式)
聯機遊戲:不在本地儲存資料。所有人基於網路把自己的資料儲存到相同的位置,資料儲存的格式都相同,訪問的格式也相同,所以不管在那臺計算機上,登入賬號密碼就可以訪問到我們儲存在資料庫的資訊,這樣就實現了相容問題。
6.叢集的概念
如果資料庫機房內,伺服器著火了,地震了,海嘯了。那這樣是不是所有使用者的資料都會流失,所以我們用到了叢集。 多臺計算機從事相同的工作內容
- 叢集的作用:
叢集一般由兩個或兩個以上的伺服器組建而成,每個伺服器被稱為一個叢集節點,叢集節點之間可以相互通訊。通訊方式有兩種,一種是基於RS232線的心跳監控,另一種是一塊單獨的網路卡 來跑心跳。因而,叢集具有節點服務狀態監控功能,同時還必須具有服務實體擴充套件功能,可以靈活地增加和剔除某個服務實體。
叢集中,同樣的服務可以由多個服務實體提供。因此,當一個節點出現故障時,叢集的另一個節點,可以自動接管故障節點的資源,從而保證服務持久、不間斷地執行。因而叢集具有故障
自動轉移功能。
一個叢集系統必須擁有共享的資料儲存,因為叢集對外提供的服務是一致的,任何一個叢集節點執行一個應用時,應用的資料集中儲存在節點共享空間內,而每個節點的作業系統上僅執行應用的服務,同時儲存應用程式檔案。
三:資料庫基本概念
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語句操作
七:資料庫的本質
資料庫本質其實就是一款cs架構的軟體
所以我們所有人其實都可以寫一款資料庫軟體
在市面上確實有很多資料庫軟體