共找到2條詞條名為關係資料庫的結果 展開

關係資料庫

關係資料庫

關係資料庫,是建立在關係資料庫模型基礎上的資料庫,藉助於集合代數等概念和方法來處理資料庫中的數據,同時也是一個被組織成一組擁有正式描述性的表格,該形式的表格作用的實質是裝載著數據項的特殊收集體,這些表格中的數據能以許多不同的方式被存取或重新召集而不需要重新組織資料庫表格。關係資料庫的定義造成元數據的一張表格或造成表格、列、範圍和約束的正式描述。每個表格(有時被稱為一個關係)包含用列表示的一個或更多的數據種類。每行包含一個唯一的數據實體,這些數據是被列定義的種類。當創造一個關係資料庫的時候,你能定義數據列的可能值的範圍和可能應用於那個數據值的進一步約束。而SQL語言是標準用戶和應用程序到關係資料庫的介面。其優勢是容易擴充,且在最初的資料庫創造之後,一個新的數據種類能被添加而不需要修改所有的現有應用軟體。目前主流的關係資料庫有oracle、db2、sqlserver、sybase、mysql等。

基本概念


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

關係

1)域(Domain)
域是一組具有相同數據類型的值的集合。
例:整數,實數,介於某個取值範圍的整數,長度指定長度的字元串集合,{‘男’,‘女’},介於某個取值範圍的日期等
2)笛卡爾積(Cartesian Product)
給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:
D1×D2×…×Dn={(d1,d2,…,dn)|di?Di,i=1,2,…,n}
所有域的所有取值的一個組合,不能重複。
◇元組(Tuple)
笛卡爾積中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組。
◇分量(Component)
笛卡爾積元素(d1,d2,…,dn)中的每一個值di叫作一個分量。
◇基數(Cardinal number)
若Di(i=1,2,…,n)為有限集,其基數為Mi(i=1,2,…,n)
在上例中,基數:2×2×3=12,即D1×D2×D3共有2×2×3=12個元組
◇笛卡爾積的表示方法
笛卡爾積可表示為一個二維表。表中的每行對應一個元組,表中的每列對應一個域。
3)關係(Relation)
◇關係
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關係,表示為 : R(D1,D2,…,Dn)
(R:關係名;n:關係的目或度(Degree))
注意:
關係是笛卡爾積的有限子集。無限關係在資料庫系統中是無意義的。
由於笛卡爾積不滿足交換律,即
(d1,d2,…,dn )≠(d2,d1,…,dn )
但關係滿足交換律,即
(d1,d2 ,…,di ,dj ,…,dn)=(d1,d2 ,…,dj,di ,…,dn) (i,j = 1,2,…,n)
解決方法:為關係的每個列附加一個屬性名以取消關係元組的有序性
◇元組
關係中的每個元素是關係中的元組,通常用t表示。
◇單元關係與二元關係
當n=1時,稱該關係為單元關係(Unary relation)。
當n=2時,稱該關係為二元關係(Binary relation)。
◇關係的表示
關係也是一個二維表,表的每行對應一個元組,表的每列對應一個域。
◇屬性
關係中不同列可以對應相同的域,為了加以區分,必須對每列起一個名字,稱為屬性(Attribute)。
n目關係必有n個屬性
◇碼
候選碼(Candidate key)
若關係中的某一屬性組的值能唯一地標識一個元組,則稱該屬性組為候選碼。
在最簡單的情況下,候選碼只包含一個屬性。稱為單碼(Single Key)。
在最極端的情況下,關係模式的所有屬性組是這個關係模式的候選碼,稱為全碼(All-key)。
主碼
若一個關係有多個候選碼,則選定其中一個為主碼(Primary key),
關係中,候選碼的屬性稱為主屬性(Prime attribute),不包含在任何候選碼中的屬性稱為非碼屬性(Non-key attribute)。
◇三類關係
基本關係(基本表或基表):實際存在的表,是實際存儲數據的邏輯表示
查詢表:查詢結果對應的表
視圖表:由基本表或其他視圖表導出的表,是虛表,不對應實際存儲的數據
關係資料庫
1)關係資料庫
在一個給定的應用領域中,所有實體及實體之間聯繫的集合構成一個關係資料庫。
2)關係資料庫的型與值
關係資料庫的型稱為關係資料庫模式,是對關係資料庫的描述,若干域的定義,在這些域上定義的若干關係模式。
關係資料庫的值是這些關係模式在某一時刻對應的關係的集合,通常簡稱為關係資料庫。

歷史


資料庫界面
資料庫界面
1970年,IBM的研究員,有“關係資料庫之父”之稱的埃德加·弗蘭克·科德(Edgar Frank Codd或E. F. Codd)博士在刊物《Communication of the ACM》上發表了題為“A Relational Model of Data for Large Shared Data banks(大型共享資料庫的關係模型)”的論文,文中首次提出了資料庫的關係模型的概念,奠定了關係模型的理論基礎。20世紀70年代末,關係方法的理論研究和軟體系統的研製均取得了很大成果,IBM公司的San Jose實驗室在IBM370系列機上研製的關係資料庫實驗系統System R歷時6年獲得成功。1981年IBM公司又宣布了具有System R全部特徵的新的資料庫產品SQL/DS問世。由於關係模型簡單明
了、具有堅實的數學理論基礎,所以一經推出就受到了學術界和產業界的高度重視和廣泛響應,並很快成為資料庫市場的主流。20世紀80年代以來,計算機廠商推出的資料庫管理系統幾乎都支持關係模型,資料庫領域當前的研究工作大都以關係模型為基礎。

結構


1、單一的數據結構----關係(表文件)。關係資料庫的表採用二維表格來存儲數據,是一種按行與列排列的具有相關信息的邏輯組,它類似於Excel工作表。一個資料庫可以包含任意多個數據表。
在用戶看來,一個關係模型的邏輯結構是一張二維表,由行和列組成。這個二維表就叫關係,通俗地說,一個關係對應一張表。
2、元組(記錄)。表中的一行即為一個元組,或稱為一條記錄。
3、屬性(欄位)。數據表中的每一列稱為一個欄位,表是由其包含的各種欄位定義的,每個欄位描述了它所含有的數據的意義,數據表的設計實際上就是對欄位的設計。創建數據表時,為每個欄位分配一個數據類型,定義它們的數據長度和其他屬性。欄位可以包含各種字元、數字、甚至圖形。如錯誤!未找到引用源。
4、屬性值。行和列的交叉位置表示某個屬性值,如“資料庫原理”就是課程名稱的屬性值
5、主碼。主碼(也稱主鍵或主關鍵字),是表中用於唯一確定一個元組的數據。關鍵字用來確保表中記錄的唯一性,可以是一個欄位或多個欄位,常用作一個表的索引欄位。每條記錄的關鍵字都是不同的,因而可以唯一地標識一個記錄,關鍵字也稱為主關鍵字,或簡稱主鍵。如錯誤!未找到引用源。
6、域。屬性的取值範圍。
7、關係模式。關係的描述稱為關係模式。對關係的描述,一般表示為:關係名(屬性1,屬性2.....屬性n)。例如上面的關係可描述為:課程(課程號、課程名稱、學分、任課老師)。
但是關係模型的這種簡單的數據結構能夠表達豐富的語義,描述出現實世界的實體以及實體間的各種關係。

集合


1)操作
◇查詢:選擇、投影、連接、除、並、交、差
◇數據更新:插入(insert)、刪除(delete)、修改(update)
查詢的表達能力是其中最主要的部分
2)特點
集合操作方式:即操作的對象和結果都是集合。
(非關係數據模型的數據操作方式:一次一記錄文件系統的數據操作方式)
3)種類
◇關係代數語言
用對關係的運算來表達查詢要求
典型代表:ISBL
◇關係演算語言:用謂詞來表達查詢要求元組關係演算語言
謂詞變元的基本對象是元組變數
典型代表:APLHA, QUEL
關係資料庫
關係資料庫
◇域關係演算語言
謂詞變元的基本對象是域變數
典型代表:QBE
◇具有關係代數和關係演算雙重特點的語言
典型代表:SQL
4)關係數據語言的特點
◇關係語言是一種高度非過程化的語言
a.存取路徑的選擇由DBMS的優化機制來完成
b.用戶不必用循環結構就可以完成數據操作
◇能夠嵌入高級語言中使用
◇關係代數、元組關係演算和域關係演算三種語言在表達能力上完全等價

約束


1)實體完整性
通常由關係系統自動支持
2)參照完整性
早期系統不支持,但大型系統能自動支持
3)用戶定義的完整性
反映應用領域需要遵循的約束條件,體現了具體領域中的語義約束
用戶定義後由系統支持

延伸


在資料庫世界里,后關係資料庫仍舊泰然自若,保持其本色。
在現代IT界,SQL和XML已經成為資料庫的非常重要組成部分,這二者成為資料庫系統結構組成部分的歷史也很長久了,至於開始的時間我也很難記得了。
但是,在60年代末和70年代初,出現了具備靈活欄位長度、嵌套表格、鬆散數據類型選擇的資料庫構架,這樣的資料庫系統不僅受市場歡迎,也得到大家的青睞。這些早期的資料庫系統雖然缺乏像XML一樣的標記功能,但是它們在實際工作中卻表現出和XML極為類似的功能。
現在描述這些資料庫系統的術語是“后關係”或者“多值”,它們沒有SQL關係資料庫知名,是因為這些資料庫系統缺乏許多新聞的宣傳度,我們很容易把它認為是一個實驗而已,然後這些實驗在人們的印象中就會半途而廢了,最終慢慢的消失。