我嘗嘗比如關係型資料庫是一座圖書館。首先說的是你問的關係型資料庫應該是關係型資料庫管理系統。那麼這裡有幾個名詞,關係型、資料庫、管理系統。關係型通俗的理解是,數據作為二維數組存在,你可以理解為圖書館的圖書排列。書架、樓層你可以理解為關係型的數據結構。書作為數據存在。而所有圖書館管理員就是資料庫的進程,用於不同的工作。有人救火(數據修復、備份),有人整理書架、書籍(數據整理、歸檔),而用戶進程就是指的來到圖書館的顧客,他們看書、移動書籍,而管理員就會對著維護。其次管理員也有很多工具,提高服務質量和效率。以上,希望對你有幫助。


事物之間普遍有關係。

整理、表達出事物間的關係,就是模型(關係模型)。

能落實關係模型的資料庫,就是關係資料庫。

附:這樣通俗的表述不嚴謹。嚴謹定義參見教科書,逃......


關係型資料庫涉及到集合論的知識基礎。裡面的「關係」是一種數學定義,而不是我們通常所理解的關係。

舉個例子,一個公司里,共有{小明,小張,小李}三個人,他們有兩種歲數,分別是{28歲,25歲}

那麼,所有可能的排列組合就有

{小明,小張,小李} × {28歲,25歲}

=

{

(小明,28歲),(小明,25歲),

(小張,28歲),(小張,25歲),

(小李,28歲),(小李,25歲)

}

這種集合的乘法叫做笛卡爾積,就是把a集合和b集合裡面的元素一一組合,形成新的集合。

但是我們顯然知道,人不可能有兩種歲數,

所以我們真正的數據是

{

(小張,28歲),(小明,25歲),(小李,28歲)

}

是上面那個大全集合的一個子集。這個子集就叫做「關係」。準確的說,是「人名集合」和「歲數集合」的一個「關係」。

可以說:兩個集合的笛卡爾積的子集,就叫做這兩個集合的一個「關係」

為什麼要搞得這麼複雜呢?其實就是為了把生活中事物的關係用數學語言表述出來,讓我們能用計算機來處理

你看,假如我們的數值很大很多,譬如有一千萬人,裡面有一百萬個人的籍貫是:「中國山東省濰坊市」,其他人都是「中國山東省濟南市」如果直接存儲,那麼計算機豈不是要存一百萬個「中國山東省濰坊市」和九百萬個「中國山東省濟南市」?

如果用關係型資料庫,只要把所有的人名和所有的籍貫都保存一遍,就好像最開始的{小明,小張,小李} ,{28歲,25歲},每樣只存一遍,編好號,然後再用相對很小的存儲空間保存一下「關係」集合,就可以了。這樣不僅可以大大節省存儲空間,還可以極大加快檢索的速度。


舉個簡單的例子吧,肯定有漏洞,杠精繞。

假設:

有一間書房;書房裡有兩個書架,A書架放置學習類書籍,B書架放置娛樂類書籍;書房裡有一個書籍登記冊,登記冊中記錄:哪個書架的第幾層放著什麼書(書名)。

好了,基本假設完成了,那麼:

書房就是具體的某個資料庫;

兩個書架和登記冊就是資料庫表;

書架裡面放的書就是資料庫記錄;

登記冊中的具體內容也是資料庫記錄。

好了,現在我們出道題:找某本書的作者,出版時間,零售價等信息:

通過資料庫跨表查詢的功能,資料庫內部會將兩個書架和登記冊共3個表進行聯動查詢,通過給定條件,我們可以直接查詢到我們想要的信息了,那這個過程就好比:

我們走進書房--翻開登記冊--找到指定的書籍--知道了本書籍在哪個書架的哪一層--到該書架找到本書籍--查看書籍的作者,出版時間,零售價等信息。

這就是典型的關係型資料庫的應用,不知道我解釋清楚了沒有?


先把名字忘掉,原理就是通過表的形式來管理數據。

之所以稱為關係型資料庫,因為關係型資料庫的設計理念來自於IBM的研究員、數學家Codd發表的關於【關係代數】的論文,通過數學的形式建立了一種模型理論。然後IBM的工程師將這種數學模型 翻譯成成機器語言,逐漸就產生了現在的sql語句。

關係代數這種模型,可以通過關係運算符、邏輯運算符、集合運算符、比較運算符來實現表之間的運算,通過運算可以完成譬如資料庫中常見的選擇、連接、篩選等操作。

了解一下就會發現【關係代數】於關係型資料庫中的概念有一一對應的關係。


在傳統的key value的數據組織(也叫層次資料庫,可以簡單理解為一個層次遞進的目錄樹和文件)結構之上,增加了一個快速查詢的方便性語言。 這個語言還有比較成熟的數學證明,證明可以更方便清晰的處理數據。


就是裝了無數個excel二維表的倉庫,你需要查這些表格里的數據會很方便快捷安全


這麼多回答,沒發現誰解釋的到位。我也想知道啥是關係。哪一點體現了關係。關係資料庫叫做行資料庫還差不多,我也沒懂這個關係。

所有人只會說一個表格就是一個關係。關鍵的問題是表格的哪裡體現了關係?就兩行兩列。就一行一列。關係又在哪裡體現了呢?

列屬性與列屬性之間的關係,是一對一,或者一對多?等等。


我想你的疑點應該在於關係資料庫中的關係指的是啥。

關係資料庫是指 採用關係模型作為數據組織方式的資料庫。常見的數據模型還有層次模型、網狀模型。一個關係對應通常說的一張表。關係/表 中的每一行叫做一個元組。

關係模型是建立在集合代數的基礎上。

從用戶觀點看,關係模型由一組關係組成。每個關係的數據結構是一張規範化的二維表。關係模型的數據結構雖然簡單,但卻能夠表達豐富的語義,描述出現實世界的實體以及實體間的各種聯繫。也就是說,在關係模型中,現實世界的實體以及實體間的各種聯繫均用單一的結構類型----關係(二維表)來表示。

具體的形式化定義見 參考書籍 第2章第1節,關係數據結構及形式化定義。

參考:

  1. 《資料庫系統概論(第5版)》--王珊 薩師煊


通俗的講,基於關係模型的資料庫就是關係型資料庫。而一般不基於關係模型的資料庫就是NoSql,比如內存型資料庫redis。

你可以看看wikipedia,下面是鏈接。

https://zh.m.wikipedia.org/zh-cn/%E5%85%B3%E7%B3%BB%E6%95%B0%E6%8D%AE%E5%BA%93?

zh.m.wikipedia.org


推薦閱讀:
相关文章