這幾天又重溫了一下資料庫的基礎.大體又總結了以下幾點:
1. 什麼是資料庫?什麼是資料庫管理系統?其實以前是沒有資料庫這樣乙個概念的,後來隨著技術的發展,才逐步出現了這樣乙個事物,現在最流行的應該算是關係型的資料庫.因為大家可以從市面上的資料庫管理系統中找到答案,你象現在業界非常流行的sql server,oracle,mysql,db2等,都是關係型的.
2.為什麼關係型資料庫會大行其道?是因為有非常令人信服的理論基礎,那就是關係代數(其實可能沒有這樣乙個概念,姑且這麼叫吧)。那麼在這裡面就必然要提到幾個概念:(1)域,也叫字段或者屬性,是具有相同型別的值的集合,如果從資料庫的角度講,也可以認為其就是等同於列。(2)關係,這是核心。我認為關係就可以理解為資料庫中的一張表或檢視。關係的元組對應行,關係的域內容對應列,關係的碼對應鍵。然而,關係是「粗糙」的(想來想去,我只能用這個詞了),所謂粗糙是因為關係是必須經過一定的加工過程才能真正轉換成資料庫中的表。那麼這個轉換過程其實就是建模的過程,其實是很複雜的,那就必然要牽涉到(3)正規化:第一,第二,第三,bc正規化。簡單複述一下概念:關係中的各個域都是原子的,那麼稱關係符合第一正規化;在第一正規化的基礎上,如果消除了每個非主屬性對候選碼的部分依賴,那麼就可以稱之為第二正規化;在第二正規化的基礎上,如果消除了每個非主屬性對候選碼的傳遞依賴,就可以是第三正規化了。如果各個屬性都不傳遞依賴於候選碼,就是bc正規化。具體的例子有很多,如r(id,觀測點代號,觀測點,觀測點程度,每個程度的票數)存在大量資料冗餘,是第一正規化,那麼分解:r1(觀測點代號,觀測點),r2(id,觀測點代號,觀測點程度,每個程度的票數)消除了部分依賴,就是第二正規化。如果再分:r1(觀測點代號,觀測點),r2(id,觀測點代號,觀測點程度),r3(id,每個程度的票數),消除了傳遞依賴,就是第三正規化了。在剛才那個例子中,提到了(4)函式依賴,從關係理論的角度,如果對於乙個關係r,u是其域的集合,如果對於任意的元組u,都有u(i)(其中i是u中的第i個域)=u(j)(其中j是u中的第j個域),那麼稱u(i)函式決定u(j),或者稱u(j)函式依賴於u(i)。函式依賴可以有三種型別:完全函式依賴,部分函式依賴,傳遞函式依賴,具體的含義可以參考上面的例子去理解。
3.如何在關係理論的基礎指導設計符合規範的資料庫?所謂符合規範的資料庫,業界通常有這樣乙個說法,資料庫中的各個關係要滿足第三正規化。大家都知道,進行資料庫設計的前提是首先要照准業務領域當中的資料模型,建立er圖。有了er圖相當於已經把業務領域需要用到的資料資訊和各個實體之間的關係基本上都找到了。但這還只是乙個概念模型,如何轉換為邏輯模型,就要充分挖掘資料和資料之間的關係,然後在關係理論的指導下,進行關係分解,那麼最終分解的依據就是各個關係之間要滿足第三正規化。只有邏輯模型抽象成功後,才進一步將其對映到某乙個dbms,形成使用者模型(也即設計開發人員可以直接使用的模型)。
有了關係代數的理論知識,關係型資料庫才有這麼輝煌的今天,這又應了一句話,如果你對某個知識不能從數學的角度去描述它,說明還沒有真正的理解它。溫故而知新,無論正確與否,對資料庫的理解又加深了一些。
大資料理論基礎
python基礎 linux ubuntu 作業系統基礎 volume 大量 資料的大小決定所考慮的資料的價值和潛在的資訊 velocity 高速 指獲得資料的速度 variety 多樣 指資料型別的多樣性 value 價值 合理運用大資料,以低成本創造 值 veracity 真實性 資料的質量 1...
資料庫基礎理論
1.第一正規化 1nf 有主鍵 強調的是列的原子性,未出現在候選鍵中的列即為 非主鍵列 候選鍵有多個 2.第二正規化 2nf 非主鍵列必須完全依賴於候選鍵,而不能是部分依賴,只依賴於候選鍵的一部分 1nf發生在具有關聯鍵的表中,只保留與關係相關的屬性,去除與實體相關的屬性,一般為一對多關係 3.第三...
資料分析概述和理論基礎
什麼是資料分析?資料分析 是指用適當的統計分析方法對收集來的大量資料進行分析,提取有用資訊和形成結論,而對資料加以詳細研究和概括總結的過程。為什麼會有資料分析?隨著計算機技術 網際網路技術 資料庫技術等科技的高速發展,人們產生資料 獲取資料 儲存資料變得越來越容易,而這些資料裡也隱含著人們在生產生活...