聊出來的技術之數據庫基本概念

聊出來的技術之數據庫基本概念


我們基本上知道,數據庫是長期存儲在計算機內有組織、大量、共享的數據集合,它可以供各種用戶共享,具有最小冗餘度和較高的數據完整性。它的出現使信息系統從以加工數據的程序爲中心轉向圍繞共享的數據庫爲中心的新階段。

數據庫系統概述

四個基本概念

1)數據:描述事物的符號記錄
2)數據庫:長期存儲在計算機內、有組織的、可共享的大量數據的集合
3)數據庫管理系統:是計算機的基本軟件,主要的功能:i)數據定義功能(DDL) ii)數據組織、存儲和管理 iii)數據操縱功能  iv)數據庫的事務管理和運行管理 v)數據庫的建立和維護功能 vi)其他功能
4)數據庫系統:由數據庫、數據庫管理系統、應用程序和數據庫管理員組成的存儲、管理、處理和維護數據的系統

數據模型

數據的發展是沿着數據模型的主線往前推進的。

數據模型是個啥?

數據模型也是一種模型,它是對現實世界數據特徵的抽象,由於計算機不能直接處理現實世界中的具體事物,所以人們必須事先把具體的事物轉換成計算機所能處理的數據,也就是數字化。所以說數據模型是數據庫系統的核心和基礎

數據模型一般滿足什麼要求?

1)比較真實的模擬現實世界
2)容易被人們所理解
3)便於在計算機上實現

在施工的不同階段需要不同的圖紙,開發數據庫應用系統也需要使用不同的數據模型,那麼有哪些數據模型呢?

1)概念模型
	也稱信息模型,它是按照用戶的觀點來對數據和信息建模,主要用於數據庫的設計
	實際上是現實世界到機器世界的一箇中間層次
	
2)邏輯模型和物理模型
	邏輯模型主要包括:層次模型、網狀模型、關係模型、面向對象模型和對象關係模型、半結構化數據模型
	物理模型是對最底層的抽象,它描述在系統內部的表示方式和存取方法

概念模型中的基本概念

1.信息世界上的基本概念
1)實體(entity):客觀存在並可相互區別的事物稱爲實體。人、事、物,可以比作遊戲中的角色
2)屬性(attribute):實體所具有的每一特性稱爲屬性,比作角色的技能
3)碼(key):唯一標識實體的屬性集稱爲碼,可以是遊戲中角色的名字,但是前提是名字不能重複
4)實體型(entity type):具有相同屬性的實體必然具有共同的特徵和性質,用實體名和屬性名集合來抽象和刻畫同類實體,稱爲實體型,射手(性別:x,射程:遠,所處位置:下路),這樣可以稱爲實體型,就是如果是射手必須有這幾個屬性。
5)實體集(entity set):同一類型實體的集合稱爲實體集 全體射手就是一個實體集
6)聯繫(relationship):在現實世界中,事物的內部以及事物之間是有聯繫的。實體內部的聯繫通常是指組成實體的各屬性之間的關係,實體之間的聯繫通常是指不同實體集之間的關係

概念模型的表示方法

實體-聯繫方法
概念模型是對信息世界的建模,所以概念模型應該能夠方便、準確地表示上述信息世界中的常用概念。實體-聯繫方法。該方法用E-R圖來描述現實世界的概念模型,E-R方法也稱E-R模型

概念模型的組成

數據模型是嚴格定義的一組概念的集合,這些概念精確地描述了系統的靜態特性、動態特性和完整性約束條件。
因此數據模型通常由:數據結構、數據操作和數據完整性約束條件三部分組成
1)數據結構:描述數據庫的組成對象以及對象之間的關係
2)數據操作:對數據庫中的各種對象(型)和實例(值)允許執行的操作的集合,包括操作及有關的操作規則
3)數據的完整性約束條件:給定數據的數據模型中數據及其聯繫所具有的制約和依存規則,用以限定符合數據模型的數據庫狀態以及狀態的變化,以保證數據的正確、有效和相容。

常用的數據模型有哪些呢?

層次模型
網狀模型
關係模型
面向對象模型
對象關係數據模型
半結構化數據模型

層次模型和網狀模型稱爲格式化模型

層次模型

數據庫中最早的數據模型,層次數據庫系統採用層次模型作爲數據庫的組織方式
層次模型用樹形結構來表示各類實體之間以及實體間的聯繫

層次模型分析

數據結構
    滿足下面兩個條件的基本層次聯繫的集合爲層次模型
    1)有且只有一個結點沒有雙親結點,這個結點稱爲根節點
    2)根以外的其他結點有且只有一個雙親結點
    層次模型就想一顆倒立的數,結點的雙親是唯一的
    
數據操縱與完整性約束
	主要的操縱有查詢、插入、刪除和更新,進行這些操作時要滿足層次模型的完整性約束條件
	如果進行插入結點,如果沒有雙親結點值就不能插入它的子女結點值
	
優點
	1)層次模型的數據結構比較簡單清晰
	2)層次數據庫的查詢效率高,性能優於關係數據庫,不低於網狀數據庫
	3)層次數據模型提供了良好的完整性支持

缺點
	1)現實世界中很多聯繫是非層次性的,如結點之間具有多對多關係
	2)如果一個節點具有多個雙親結點,用層次模型表示就十分笨重
	3)查詢子女結點必須通過雙親結點
	4)由於結構嚴謹,層次命令趨於程序化

網狀模型

網狀模型解決了現實世界中事物之間的聯繫更多的是非層次關係的。

網狀模型的分析

數據結構
	滿足下面兩個條件的基本層次聯繫集合稱爲網狀模型
	1)允許一個以上的結點無雙親
	2)一個節點可以有多於一個的雙親
	
數據操縱與完整性約束
	網狀模型沒有層次模型那樣嚴格的完整性約束
	1)支持記錄碼的概念,碼是唯一標識記錄的數據項集合
	2)保證一個聯繫中雙親記錄和子女記錄之間是一對多的聯繫
	3)可以支持雙親記錄和子女記錄之間的某些約束條件
	
優點:
	1)能夠更爲直接的描述現實世界
	2)具有良好的性能,存取效率較高

缺點:
	1)結構比較複雜,而且隨着應用環境的擴大,數據庫的結構就變得越來越複雜
	2)網狀模型的DDL,DML複雜,並且要嵌入某一種高級語言中
	3)由於記錄之間的聯繫通過存取路徑實現,應用程序在訪問數據時必須選擇適當的存取路徑。

關係模型

關係模型與以往的模型不同,從用戶角度上看,關係模型由一組關係組成。每個關係的數據結構是一張規範化的二維表。

術語:
	關係(relation):一個關係對應通常說的一張表
	元組(tuple):表中的一行即一個元組
	屬性(attribute):表中的一列即爲一個屬性
	碼(key):稱爲碼鍵,表中的某個屬性組
	域(domain):域是一組具有相同數據類型的值的集合
	分量:元組中的一個屬性值
	關係模式:對應關係的描述,關係名(屬性1,屬性2,。。。),必須是規範化,關係的每一個分量必須是一個不可分的數據項,不允許表中還有表
	
數據操縱與完整性約束
	操縱:查詢、插入、刪除和更新數據,這些操作必須滿足關係的完整性約束條件。關係的完整性約束條件分爲三大類:實體完整性、參照完整性和用戶定義的完整性。
	
優點:
	1)關係模型與格式化模型不同,它是建立在嚴格的數學概念的基礎上
	2)關係模型的概念單一
	3)關係模型的存儲路徑對用戶是透明的,從而具有更高的數據獨立性、更好的安全保密性,也簡化了程序員的工作和數據庫的開發建立工作。

缺點:
	查詢效率不如格式化數據模型

數據庫系統的結構

數據庫系統的結構可以有多種不同的層次或不同的角度。
從開發人員看。數據庫通常採用三級模式結構,這是系統內部的系統結構
從數據庫的最終用戶看,數據庫系統的結構分爲單用戶結構、主從式結構、分佈式結構、客戶-服務器、瀏覽器-應用服務器/數據服務器多層結構等。這是數據庫系統外部的體系結構

數據庫系統模式的概念

在數據庫系統中有型(type)和值(value)的概念。型是指對某一類數據的結構和屬性說明,值是一個具體的賦值

模式(schema)是數據庫中全體數據的邏輯結構和特徵的描述,它只涉及型的描述,不涉及具體的值。模式的一個具體值稱爲模式的一個實例,同一個模式有很多個實例

模式是相對穩定的,而實例是相對變動的,因爲數據庫中的數據是在不斷更新的。模式反映的是數據的結構及其聯繫,而實例反映的是數據庫某一時刻的狀態

數據的存儲結構不同,但是它們在體系上通常具有相同的特徵,採用三級模式結構

數據庫的三級模式結構

1)模式:也稱邏輯模式,是數據庫中全體數據的邏輯結構和特徵的描述,是所有用戶的公共數據視圖
定義數據模式時不僅要定義數據的邏輯結構,例如數據記錄由哪些數據項組成,數據項的名字,類型,取值範圍等(varchar.),而且要定義數據之間的聯繫(foreignkey。。),定義數據相關的完整安全性和完整性

2)外模式:也稱子模式或用戶模式,它是數據庫用戶(包括應用程序員和最終用戶)能夠看見和使用局部數據的邏輯結構和特徵的描述,是數據庫用戶的數據視圖是與某一應用有關的數據的邏輯表示。外模式保證了數據庫安全性,每個用戶只能看見和訪問所對應的外模式中的數據,數據庫中的其餘數據時不可見的

3)內模式:存儲模式,一個數據庫只有一個內模式。它是數據物理結構和存儲方式的描述,是數據在數據庫內部的阻值方式。如:索引按照什麼方式組織,是B+樹索引還是hash索引。

數據庫的二級映像功能與數據獨立性

數據庫系統的三級模式是數據的三個抽象級別,它把具體組織留給數據庫系統管理,使用戶能邏輯地、抽象地處理數據,而不必關心數據在計算機中的具體表示方式與存儲方式,爲了能夠在系統內部實現這三個抽象層次的聯繫和轉換,數據庫管理系統在這三級模式之間提供了兩層映像:外模式/模式映像和模式/內模式映像

1)外模式/模式映像:當模式改變時,由數據庫管理員對各個外模式/模式的映像作相應的改變,可以使外模式保持不變。應用程序是依據數據的外模式編寫的,從而應用程序不必修改,保證了數據與程序的邏輯獨立性,簡稱數據的邏輯獨立性

2)模式/內模式映像:當數據庫的存儲結構改變時,由數據庫管理員對模式/內模式映像的作用作相應改變,可以是模式爆出不變,從而應用程序也不必改變,保證了數據與程序的物理獨立性,簡稱數據的物理獨立性

數據庫系統的組成

1)硬件平臺及數據庫
2)軟件
3)人員

今天就介紹到這裏關於數據庫的前奏,希望可以堅持下去。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章