關聯式資料庫(RDBMS)小記

2022-01-31 11:54:03 字數 764 閱讀 9641

三個正規化:

第一正規化(1nf):資料表中的每一列(每個字段)必須是不可拆分的最小單元,也就是確保每一列的原子性

這裡說的不可拆分通常是放在業務背景下而言的,是否可拆分視業務需求而定。如一張student表的adress表存省市縣時,如果業務需要針對更細粒度位址如市、縣做些crud操作則需要adress欄位拆成province、city等字段。

第二正規化(2nf):滿足1nf後,要求表中的所有列,都必須依賴於主鍵,而不能有任何一列與主鍵沒有關係,也就是說乙個表只描述一件事情

如包含school_name、school_address欄位的student表中,school_address是依賴於school而非student的,故應將school資訊抽離到單獨的表中。

上述school資訊抽離到單獨表後,student表中只需有school_id(外來鍵)來關聯school即可,而不需要其他school相關屬性,因為其他school屬性直接依賴於school_id而非student_id

區別:第 一正規化和第二正規化在於有沒有分出兩張表,第二正規化是說一張表中包含了多種不同的實體屬性,那麼要必須分成多張表, 第三正規化是要求已經分成了多張表,那麼一張表中只能有另一張表中的id(主鍵),而不能有其他的任何資訊(其他的資訊一律用主鍵在另一表查詢)

總結:第一正規化:每個表中都有1列,並且該列是不可拆分的最小單元

第二正規化:1張表只描述一件事情

第三正規化:用外來鍵做表的關聯

資料庫正規化只是理論上建議這樣設計,實際中結合業務需要可視情況稍有違背,而不是死腦筋一味地按該正規化來。

關聯式資料庫(RDBMS)和NoSQL的比較

現在主流的sql關聯式資料庫有 oracle sql server mysql nosql資料庫有bigtable hbase cassandra db couchdb mongodb和redis等。sql月nosql的主要區別有 關聯式資料庫用表來儲存資料,nosql資料庫則用json 鍵值對 文...

關聯式資料庫與非關聯式資料庫

關係型資料庫,是指採用了關係模型來組織資料的資料庫。關係模型是在1970年由ibm的研究員e.f.codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。簡單來說,關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個...

關聯式資料庫與非關聯式資料庫

關係型資料庫,是指採用了關係模型來組織資料的資料庫。關係模型是在1970年由ibm的研究員e.f.codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。簡單來說,關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個...