自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

寫給小白的數(shù)據(jù)庫(kù)入門科普

數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一控制管理,以保證數(shù)據(jù)的完整性和安全性。它還具有對(duì)外的標(biāo)準(zhǔn)接口,方便其它應(yīng)用軟件對(duì)數(shù)據(jù)進(jìn)行讀寫操作。我們比較熟悉的數(shù)據(jù)庫(kù)管理系統(tǒng),包括MySQL、SQL Server、Oracle、DB2、Redis、MongoDB等。

今天這篇文章,我們來(lái)聊聊數(shù)據(jù)庫(kù)。

什么是數(shù)據(jù)庫(kù)

對(duì)于數(shù)據(jù)庫(kù),大家應(yīng)該都不會(huì)覺(jué)得陌生。作為重要的基礎(chǔ)軟件,數(shù)據(jù)庫(kù)在我們的工作和生活無(wú)處不在。

最簡(jiǎn)單的,我們電腦里有很多的excel表,其實(shí)也可以算是一個(gè)“微型數(shù)據(jù)庫(kù)”。

圖片

從定義上來(lái)看,數(shù)據(jù)庫(kù),是一個(gè)存放和管理數(shù)據(jù)的倉(cāng)庫(kù)?;蛘哒f(shuō),是一個(gè)數(shù)據(jù)集合。

那么,我們硬盤上也有大量的數(shù)據(jù),是不是硬盤也是一個(gè)數(shù)據(jù)庫(kù)呢?

當(dāng)然不是。

硬盤是一個(gè)硬件?;谟脖P構(gòu)建的文件系統(tǒng),存儲(chǔ)了大量的數(shù)據(jù),但這些數(shù)據(jù)是以不同類型文件的形式存在的,彼此獨(dú)立。

而數(shù)據(jù)庫(kù)是一個(gè)軟件層面的概念。它對(duì)數(shù)據(jù)進(jìn)行了登記和整理,形成了一個(gè)整體系統(tǒng),既包括了數(shù)據(jù),也包括了數(shù)據(jù)之間的邏輯關(guān)系。

簡(jiǎn)單來(lái)說(shuō),如果有一個(gè)倉(cāng)庫(kù),你往里面放了各種類型的物品,例如家具、花草、書籍等。那么,硬盤就像是這個(gè)倉(cāng)庫(kù),文件就是這些物品。

如果你在倉(cāng)庫(kù)里劃分了一個(gè)區(qū)域,安排了一個(gè)管理員,負(fù)責(zé)存放物品并進(jìn)行登記。那么,這個(gè)區(qū)域(這套體系),就是數(shù)據(jù)庫(kù)。

圖片

廣義的數(shù)據(jù)庫(kù),是一種數(shù)據(jù)集合。我們口頭上所說(shuō)的數(shù)據(jù)庫(kù)(狹義),大部分是指那些用于搭建、使用和維護(hù)廣義數(shù)據(jù)庫(kù)的系統(tǒng)軟件,叫做數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)。

圖片

數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一控制管理,以保證數(shù)據(jù)的完整性和安全性。它還具有對(duì)外的標(biāo)準(zhǔn)接口,方便其它應(yīng)用軟件對(duì)數(shù)據(jù)進(jìn)行讀寫操作。

我們比較熟悉的數(shù)據(jù)庫(kù)管理系統(tǒng),包括MySQL、SQL Server、Oracle、DB2、Redis、MongoDB等。

數(shù)據(jù)庫(kù)的作用和優(yōu)勢(shì)

之所以要有數(shù)據(jù)庫(kù),主要是為了方便管理和使用數(shù)據(jù)。

數(shù)據(jù)庫(kù)是信息時(shí)代最重要的基礎(chǔ)軟件之一,地位僅次于操作系統(tǒng)。

如今,大量的信息化系統(tǒng)遍布社會(huì)的每個(gè)角落,每時(shí)每刻都在產(chǎn)生海量的數(shù)據(jù)。如果沒(méi)有一個(gè)高效的系統(tǒng)和平臺(tái)對(duì)這些數(shù)據(jù)進(jìn)行統(tǒng)一管理,那么,效率就會(huì)下降。

數(shù)據(jù)庫(kù)存儲(chǔ)了海量的多類型數(shù)據(jù)。用戶可以通過(guò)數(shù)據(jù)庫(kù),創(chuàng)建數(shù)據(jù)、查找數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)、分析數(shù)據(jù)、共享數(shù)據(jù)。

對(duì)于個(gè)人、企業(yè)甚至國(guó)家部門,數(shù)據(jù)庫(kù)有著不可替代的作用?,F(xiàn)在整個(gè)社會(huì)都在講數(shù)據(jù)價(jià)值挖掘。AI的三大要素里,也包括了數(shù)據(jù)。數(shù)據(jù)的價(jià)值在提升,數(shù)據(jù)庫(kù)的價(jià)值也隨之提升。

一個(gè)優(yōu)秀的數(shù)據(jù)庫(kù)管理系統(tǒng),需要具備以下幾個(gè)方面的優(yōu)勢(shì)。

首先,是性能。

數(shù)據(jù)庫(kù)涉及到大量的數(shù)據(jù)讀寫操作,所以,性能就顯得非常重要。

如果數(shù)據(jù)庫(kù)的用戶少,問(wèn)題倒是不大。但是如果用戶多,例如12306、淘寶雙11等場(chǎng)景,瞬時(shí)并發(fā)讀寫特別大,就要看數(shù)據(jù)庫(kù)是否能hold得住。

這里就要提到著名的ACID(原子性、一致性、隔離性、持久性)特性。

原子性(Atomicity):為避免糾紛,數(shù)據(jù)庫(kù)中的事務(wù)執(zhí)行被視作原子不可再分,事務(wù)(例如轉(zhuǎn)賬)中的操作要么全部執(zhí)行,要么失敗回滾(Rollback)。

一致性(Consistency):為保證業(yè)務(wù)邏輯的一致性,數(shù)據(jù)庫(kù)通過(guò)設(shè)置約束和觸發(fā)器來(lái)保證其完整性約束不被破壞,即每個(gè)事務(wù)能夠看到的數(shù)據(jù)總是保持一致。

隔離性(Isolation):為防止事務(wù)之間的臟讀、幻讀、不可重復(fù)讀,數(shù)據(jù)庫(kù)通過(guò)加鎖,保證多個(gè)事務(wù)并發(fā)訪問(wèn)時(shí),事務(wù)之間是隔離的,互不干擾。

持久性(Durability):為防止意外事故(例如斷電)導(dǎo)致數(shù)據(jù)缺失,數(shù)據(jù)庫(kù)保證事務(wù)對(duì)其所作的修改被永久保存,不會(huì)被回滾。

其次,是容量。

數(shù)據(jù)庫(kù)要存放數(shù)據(jù),所以,容量要滿足設(shè)計(jì)需求。

現(xiàn)在業(yè)務(wù)需求變化很快,數(shù)據(jù)庫(kù)的數(shù)據(jù)很可能迅猛增長(zhǎng)。所以,數(shù)據(jù)庫(kù)也需要具備一定的擴(kuò)展性和彈性,能夠靈活地變大或者變小,滿足需求和成本之間的平衡。

第三,是安全性。

數(shù)據(jù)安全的重要性,無(wú)需多言。一個(gè)優(yōu)秀的數(shù)據(jù)庫(kù),需要擁有完善的安全機(jī)制,保護(hù)數(shù)據(jù)免受未授權(quán)的訪問(wèn),以及來(lái)自外部的攻擊。

數(shù)據(jù)庫(kù)也需要有完善的備份和恢復(fù)機(jī)制,在極端情況下,能夠快速恢復(fù)到最近的狀態(tài)。

第四,是兼容性。

數(shù)據(jù)庫(kù)需要遵循開(kāi)放標(biāo)準(zhǔn)的API,使得自身更容易與其它應(yīng)用和服務(wù)集成,促進(jìn)數(shù)據(jù)共享和互操作性。

總之,數(shù)據(jù)庫(kù)的作用遠(yuǎn)不止于簡(jiǎn)單的數(shù)據(jù)存放。作為一個(gè)核心組件,它必須經(jīng)過(guò)嚴(yán)格且縝密的設(shè)計(jì),能夠?yàn)楦黝悜?yīng)用程序提供穩(wěn)定可靠的支撐,保障數(shù)據(jù)的安全性、完整性和高效利用。

數(shù)據(jù)庫(kù)的類別

接下來(lái),我們?cè)倏纯磾?shù)據(jù)庫(kù)的類別。

數(shù)據(jù)庫(kù)的種類很多,分類方法也很多。我們不妨就以歷史時(shí)間線的維度,對(duì)幾種主要的分類方式進(jìn)行介紹。

  • 1960-1970:萌芽階段

上世紀(jì)60年代,隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展和成熟,越來(lái)越多的大型機(jī)開(kāi)始應(yīng)用于金融證券、航空航天、工業(yè)制造、軍事國(guó)防等領(lǐng)域,掀起了一場(chǎng)信息化革命。

有了信息化,就催生了大量的數(shù)據(jù)。為了更好地管理這些數(shù)據(jù),就有人開(kāi)始提出數(shù)據(jù)庫(kù)系統(tǒng)的概念。

1961年,美國(guó)通用電氣公司的查爾斯·巴赫曼(Charles Bachman),成功開(kāi)發(fā)出世界上第一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)——IDS(IntegratedData Store,集成數(shù)據(jù)存儲(chǔ)),奠定了網(wǎng)狀數(shù)據(jù)庫(kù)的基礎(chǔ),并在當(dāng)時(shí)得到了廣泛的發(fā)行和應(yīng)用。

1968年,IBM公司創(chuàng)建了層次式數(shù)據(jù)庫(kù)管理系統(tǒng)IMS(Information Management System),是世界上首個(gè)商業(yè)數(shù)據(jù)庫(kù)系統(tǒng)。

  • 1970-2000:關(guān)系型、事務(wù)型數(shù)據(jù)庫(kù)

又過(guò)了兩年,到了1970年,IBM公司的研究員埃德加·弗蘭克·科德(Edgar Frank Codd)發(fā)表了一篇名為《大型共享數(shù)據(jù)庫(kù)數(shù)據(jù)的關(guān)系模型》的重磅論文。在論文中,他提出了數(shù)據(jù)庫(kù)的關(guān)系模型,開(kāi)創(chuàng)了關(guān)系數(shù)據(jù)庫(kù)時(shí)代。

圖片

1973年,IBM啟動(dòng)了System R項(xiàng)目。后來(lái),在System R項(xiàng)目的基礎(chǔ)上,加利福尼亞大學(xué)柏克萊分校啟動(dòng)了ingres項(xiàng)目。

這兩個(gè)項(xiàng)目的意義極為重大。1970-80年代出現(xiàn)的多個(gè)經(jīng)典數(shù)據(jù)庫(kù)產(chǎn)品,包括Oracle、DB2、Informix、Sybase、SQL Server,都是基于System R和ingres項(xiàng)目衍生出來(lái)的。這些數(shù)據(jù)庫(kù)產(chǎn)品,極大地助力了當(dāng)時(shí)的信息化浪潮,為計(jì)算機(jī)的普及發(fā)揮了重要作用。

圖片

剛才提到的這些數(shù)據(jù)庫(kù)產(chǎn)品,全部都是關(guān)系型數(shù)據(jù)庫(kù)。

數(shù)據(jù)庫(kù)有很多種模型。比較原始的,是層次模型和網(wǎng)狀模型。比較主流的,是關(guān)系模型和非關(guān)系模型。

圖片

關(guān)系模型的最大特點(diǎn),就是可以使用表格來(lái)表示實(shí)體和實(shí)體之間的關(guān)系。每一行代表一個(gè)實(shí)體實(shí)例,每一列代表實(shí)體的一個(gè)屬性。

關(guān)系型數(shù)據(jù)庫(kù)中,每個(gè)表有唯一的名字。表的每一行代表了一組值之間的聯(lián)系,稱為元組(Tuple)。每一列是實(shí)體的描述,具有相同的數(shù)據(jù)類型,稱為屬性(Attribute)或者字段(Field)。

圖片

大家應(yīng)該注意到了,很多關(guān)系型數(shù)據(jù)庫(kù)(包括SQL Server、MySQL、PostgreSQL),都有一個(gè)SQL。

SQL的意思,是Structured Query Language,結(jié)構(gòu)化查詢語(yǔ)言。

這是一種用于訪問(wèn)和處理“關(guān)系型數(shù)據(jù)庫(kù)”的標(biāo)準(zhǔn)計(jì)算機(jī)語(yǔ)言。SQL語(yǔ)句既可以查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù),也可以添加、更新和刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù),還可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理和維護(hù)操作。

例如,下面這個(gè),就是一個(gè)典型的SQL命令,表示要插入一條數(shù)據(jù):

INSERT INTO students (id, name, age) VALUES (1, '張三', 20);

80-90年代的主流數(shù)據(jù)庫(kù),除了基本屬于關(guān)系型數(shù)據(jù)庫(kù)之外,在業(yè)務(wù)類型上,也屬于事務(wù)型數(shù)據(jù)庫(kù)(交易型數(shù)據(jù)庫(kù)),即OLTP(Online Transactional Processing)。

這類數(shù)據(jù)庫(kù)主要用于管理實(shí)時(shí)交易(銀行、電商、訂票等),主要特點(diǎn)是能夠支持大量的讀寫操作(簡(jiǎn)短的、小規(guī)模),能夠確保數(shù)據(jù)庫(kù)的完整性和一致性。

  • 2000-2010:非關(guān)系型、分析型數(shù)據(jù)庫(kù)

上世紀(jì)90年代末,數(shù)據(jù)庫(kù)的發(fā)展進(jìn)入一個(gè)新的階段。非關(guān)系型數(shù)據(jù)庫(kù)開(kāi)始崛起。

1998年,卡羅·斯特羅茲(Carlo Strozzi)開(kāi)發(fā)了一個(gè)輕量、開(kāi)源、不提供SQL功能的數(shù)據(jù)庫(kù),即NoSQL。

值得一提的是,NoSQL并不是“No SQL”(拒絕SQL)意思,而是“Not Only SQL”(不只是SQL)。

NoSQL并非完全替代關(guān)系型數(shù)據(jù)庫(kù),而是為了應(yīng)對(duì)Web 2.0時(shí)代互聯(lián)網(wǎng)應(yīng)用快速增長(zhǎng)所帶來(lái)的挑戰(zhàn)。它針對(duì)不同的應(yīng)用場(chǎng)景,提供了更多選擇。

非關(guān)系數(shù)據(jù)模型并不遵循傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)模型及其SQL查詢語(yǔ)言。它的出現(xiàn),能夠解決關(guān)系型數(shù)據(jù)庫(kù)在擴(kuò)展性和靈活性方面的一些局限性。

圖片

非關(guān)系型數(shù)據(jù)庫(kù)包括了很多子類型,例如鍵值數(shù)據(jù)庫(kù)、列族數(shù)據(jù)庫(kù)、文檔數(shù)據(jù)庫(kù)、圖數(shù)據(jù)庫(kù)等。具體類型和典型產(chǎn)品如下:

圖片

除了非關(guān)系型數(shù)據(jù)庫(kù)之外,數(shù)據(jù)庫(kù)也從事務(wù)性向分析型發(fā)展,即OLAP(Online Analytical Processing)。

這也是由時(shí)代決定的。因?yàn)閿?shù)據(jù)除了用于查詢和記錄之外,要開(kāi)始為大數(shù)據(jù)、數(shù)據(jù)分析等新興業(yè)務(wù)服務(wù)。

分析型數(shù)據(jù)庫(kù)允許用戶對(duì)大量歷史數(shù)據(jù)進(jìn)行復(fù)雜的查詢和分析,以揭示隱藏在數(shù)據(jù)中的模式和趨勢(shì),為上層決策提供支持。

圖片

需要注意的是,那一時(shí)期,數(shù)據(jù)倉(cāng)庫(kù)(Data Warehouse)的概念出現(xiàn)了。

所謂數(shù)據(jù)倉(cāng)庫(kù),就是數(shù)據(jù)庫(kù)的一種演進(jìn)。它集成了來(lái)自不同來(lái)源的數(shù)據(jù),并經(jīng)過(guò)清洗、轉(zhuǎn)換和整合,以便于進(jìn)行高效的數(shù)據(jù)分析和報(bào)告。

限于篇幅,關(guān)于數(shù)據(jù)倉(cāng)庫(kù)和待會(huì)提到的數(shù)據(jù)湖,小棗君后續(xù)會(huì)專門介紹。

  • 2010-現(xiàn)在:融合、云化、AI、國(guó)產(chǎn)

2010年之后,數(shù)據(jù)庫(kù)技術(shù)繼續(xù)蓬勃發(fā)展,出現(xiàn)了很多新的趨勢(shì)。

首先,繼SQL、NoSQL之后,又出現(xiàn)了NewSQL的概念。

NewSQL是一類新型的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),結(jié)合了SQL和NoSQL的優(yōu)點(diǎn)。

它解決了傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)在處理大規(guī)模數(shù)據(jù)和高并發(fā)訪問(wèn)時(shí)的性能瓶頸,同時(shí)保留ACID特性以及對(duì)SQL查詢語(yǔ)言的支持,非常適用于需要處理大規(guī)模數(shù)據(jù)和高并發(fā)訪問(wèn)的場(chǎng)景。

NewSQL的代表產(chǎn)品,包括Google Spanner、CockroachDB、TiDB等。

其次,繼事務(wù)性、分析型之后,出現(xiàn)了混合型數(shù)據(jù)庫(kù)(HTAP,Hybrid Transactional / Analytical Processing)。

這也是一種融合趨勢(shì)。

簡(jiǎn)單來(lái)說(shuō),HTAP是結(jié)合了OLTP和OLAP的優(yōu)點(diǎn)。它是一種新興的數(shù)據(jù)庫(kù)架構(gòu),能夠同時(shí)支撐OLTP和OLAP場(chǎng)景,避免傳統(tǒng)架構(gòu)中大量數(shù)據(jù)交互造成的資源浪費(fèi)和沖突。


圖片

第三,是云數(shù)據(jù)庫(kù)和分布式數(shù)據(jù)庫(kù)的崛起。

這個(gè)比較好理解。以前都是單機(jī)數(shù)據(jù)庫(kù)。后來(lái),數(shù)據(jù)庫(kù)并發(fā)越來(lái)越大,對(duì)安全要求越來(lái)越高,就有了主從數(shù)據(jù)庫(kù),再然后,就是分布式數(shù)據(jù)庫(kù)。

分布式數(shù)據(jù)庫(kù),數(shù)據(jù)分布在多臺(tái)服務(wù)器上,通過(guò)網(wǎng)絡(luò)連接協(xié)同工作。這樣一來(lái),既可以擴(kuò)展存儲(chǔ)和處理能力,也可以提高系統(tǒng)的可用性和容錯(cuò)性。

圖片

當(dāng)然,分布式數(shù)據(jù)庫(kù),管理和維護(hù)方面會(huì)更復(fù)雜一些。

云數(shù)據(jù)庫(kù),是響應(yīng)云計(jì)算的發(fā)展,把本地?cái)?shù)據(jù)庫(kù)遷移到云端。

第四,繼數(shù)據(jù)倉(cāng)庫(kù)之后,又出現(xiàn)了數(shù)據(jù)湖、湖倉(cāng)一體。

限于篇幅,后續(xù)專門給大家介紹這幾個(gè)概念。

第五,是數(shù)據(jù)庫(kù)開(kāi)始引入AI,走向智能化。

將AI人工智能引入數(shù)據(jù)庫(kù),也是一個(gè)重要趨勢(shì)。

AI能發(fā)揮的作用很多。一方面,可以實(shí)現(xiàn)更高的查詢和存儲(chǔ)效率,并自動(dòng)化處理各種任務(wù)。另一方面,可以分析大量數(shù)據(jù)記錄,標(biāo)記異常值和異常模式,自動(dòng)防范惡意訪問(wèn)與攻擊,提升安全性。

除此之外,AI還可以主動(dòng)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的智能調(diào)優(yōu),提升數(shù)據(jù)庫(kù)的整體性能?;蛘撸詣?dòng)進(jìn)行系統(tǒng)維護(hù)操作,減少運(yùn)營(yíng)維護(hù)成本,也避免人為錯(cuò)誤。

第六,是國(guó)產(chǎn)數(shù)據(jù)庫(kù)替代的加速。

最近十多年,國(guó)產(chǎn)數(shù)據(jù)庫(kù)的發(fā)展速度極快。在信創(chuàng)戰(zhàn)略的推動(dòng)下,越來(lái)越多的國(guó)內(nèi)企業(yè)和政府部門開(kāi)始啟用國(guó)產(chǎn)數(shù)據(jù)庫(kù),進(jìn)行國(guó)產(chǎn)化替代。

圖片

圖片引用來(lái)源:艾瑞咨詢

結(jié)語(yǔ)

好啦,以上就是關(guān)于數(shù)據(jù)庫(kù)的基本介紹。

數(shù)據(jù)是21世紀(jì)最有價(jià)值的無(wú)形資產(chǎn)。存儲(chǔ)和利用數(shù)據(jù),對(duì)每個(gè)人、每個(gè)企業(yè)、每個(gè)政府都意義重大。像數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)湖這樣的數(shù)據(jù)平臺(tái),是充分利用數(shù)據(jù)價(jià)值的前提,也是發(fā)展AI的前提。

相信未來(lái)幾年,數(shù)據(jù)庫(kù)技術(shù)還將保持高速發(fā)展,涌現(xiàn)出更多的創(chuàng)新。

責(zé)任編輯:姜華 來(lái)源: 鮮棗課堂
相關(guān)推薦

2024-11-22 10:45:20

2024-09-09 18:36:57

2020-08-06 08:05:13

云計(jì)算

2025-04-24 00:00:02

2025-03-12 03:00:00

2019-03-20 14:44:53

數(shù)據(jù)庫(kù)MySQLExcel

2021-06-25 07:37:33

遞歸函數(shù)算法

2022-03-01 20:32:46

數(shù)據(jù)中心IDC服務(wù)器

2019-01-15 09:00:27

人工智能AIML

2022-05-18 09:31:42

編譯器開(kāi)源代碼生成

2019-11-20 09:08:46

PostgreSQL數(shù)據(jù)庫(kù)

2021-11-11 17:34:54

數(shù)據(jù)庫(kù)索引面試

2018-03-30 16:03:04

軟件無(wú)狀態(tài)”

2013-03-28 10:22:33

數(shù)據(jù)庫(kù)關(guān)系型數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)設(shè)計(jì)

2010-06-13 11:29:51

MySQL數(shù)據(jù)庫(kù)

2017-09-11 15:17:01

分布式集群負(fù)載均衡

2017-09-19 15:22:44

2021-01-28 09:58:46

線程池線程Thread

2017-11-22 15:50:58

Netty微服務(wù)RPC

2021-09-04 15:59:55

物聯(lián)網(wǎng)IOT智能家居
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)