軟件評測師:數據庫知識


一、三級模式結構

  • 模型:對現實世界特征的模擬和抽象
  • 數據模型:對現實世界數據特征的抽象
  • 數據模型的三要素:
    • 數據結構:數據對象存儲、組織的集合
    • 數據操作:對數據對象操作的集合
    • 數據的約束條件:數據對象完整性規則性的集合

image

外模式:也稱子模式或用戶模式,是模式的子集,是數據的局部邏輯結構和特征的描述

可以理解為視圖

概念模式:也稱為模式、邏輯模式, 是數據庫中全體數據的全局邏輯結構和特性的描述

可以理解為基本表

內模式:也稱存儲模式和物理模式, 一個數據庫只有一個內模式。是數據在數據庫系統中的內部表示,即數據的物理結構和存儲 方式的描述

可以理解為存儲文件

兩級映像:
外模式/模式:保證了當模式改變時,外模式不用變— 邏輯獨立性
模式/內模式:保證了當內模式改變時,模式不用變— 物理獨立性
數據庫的模式:是全局邏輯結構,是數據庫的中心和關鍵,它獨立於其他層次,設計數據模式結構時,首先確定數據庫的邏輯模式

數據庫管理系統

功能:
數據定義:數據定義語言DDL,對數據庫結構進行描述,包括外模式、 模式、內模式,完整性、安全保密定義等
數據操作:數據操作語言DML,方便外部程序、用戶對數據的CRUD
數據庫運行管理:安全檢查、完整性檢查、事件檢查、自動恢復等
數據組織、存儲和管理:數據字典、用戶數據、存取路徑等
數據的建立和維護:數據的初始建立,數據庫的性能分析、 數據庫的重建
其它功能:數據庫之間的通信、數據之間的轉換等

數據結構化且統一管理:將數據與程序邏輯分離,數據獨立存儲,即描述數據的結構、 特征,且描述數據之間的關聯。數據由統一的數據管理系統管 理,實現數據的分享。

有較高的數據獨立性:是指數據與程序的獨立,數據的定義從程序中獨立出去,程序 只關心程序的邏輯結構,而不關心數據的存儲結構,簡化了應 用程序的開發,包括物理獨立性、邏輯的獨立性。
數據控制功能:數據管理系統提供了數據控制功能,提供數據的共享

特征:
安全性保護:保護數據庫,防止被不合法的數據操作引起數據的讀取、破壞 等,用戶只能按照規定進行處理
完整性保護:數據庫的正確性、相容性,避免合法用戶數據庫的異常操作引 發數據的異常,確保數據正確,避免異常更新
並發控制:避免多用戶同時對某數據進行操作,防止數據不一致性,包括 丟失更新、不可重復讀,讀臟數據。主要是破壞了事物的隔離性,並發控制協調並發數據的操作,保證數據不被破壞,避免 用戶讀取不正確的數據。
故障恢復:內部故障、系統故障、介質故障,后期細化介紹

數據庫術語:

關系:一個關系R對應一張二維表,二維表名就是關系名
屬性:二維表中的一列稱為屬性,其中A1,A2...An為屬性名 列的值稱為屬性值,屬性值的取值范圍為值域
域:屬性A1,A2...An的取值范圍
關系模式:對關系的描述(有哪些屬性,各個屬性之間的依賴關系如何),記為R(U、D、DOM、 F), 其中R為關系名,U為組成該關系的屬性名集合,D為屬性組U中屬性的域,DOM為屬性向域的映 象集合,F為屬性間數據的依賴關系集合。
通常將關系模式簡記為
R(U)R(A1,A2,...,An )
R為關系名
A1,A2,...An為屬性名或者域名
屬性向域的映像常常直接說明屬性的類型和長度
通常在關系模式主屬性上加下划線表示該屬性為主碼屬性

例:學生關系模式S(Sno,Sname,Sex,SD,Age)

元組:二維表中一行稱為元組
分量:元組中的一個屬性值
主屬性/ 非主屬性:關系中包含在任何一個候選碼中的屬性稱為主屬性或碼的屬性,不包括在任何一個候選碼中的屬性稱為非主屬性或非碼屬性
候選碼/ 候選鍵:如果在一個關系中,存在一個屬性(或屬性組)都能用來唯一標識 該關系的元組,並不含有多余的屬性,這個屬性(或屬性組)稱為 該關系的候選碼或候選鍵
主碼/ 主鍵:其值能唯一地標識元組中的一個或多個屬性,稱為主碼或關鍵字(主碼是任意一個候選碼。)
外碼/ 外鍵:關系中的某個屬性(或屬性組)不是該關系的主碼 或者只是主碼的一部分,但卻是另一個關系的主碼 時,該屬性(或屬性組)稱為這個關系的外碼

image

完整性約束

防止的是對數據的意外破壞
實體完整性:規定基本關系R的主屬性A不能取空
用戶自定義完整性:就是針對某一具體關系數據庫的約束條件,反映某一具體應用 。所涉及的數據必須滿足的語義要求,由應用的環境決定
如:年薪必須為30W至60W
參照完整性/引用完整性:
關系模型中,實體間的聯系是用關系來描述的,這樣自然 就存在着關系和關系間的引用
規定,若F是基本關系R的外碼,它與基本關系S的主碼K 相對應(基本關系R和S不一定是不同的關系),則R中每 個元組在F上的值必須為
或者取空值
或者等於S中某個元組的主碼值

例:員工(員工號,姓名,性別,參加工作時間,職級號 職級(職級號,職級名,薪酬)

關系代數

是一種傳統的表達方式,用對關系的運算來表達查詢 運算對象、運算結果都為關系
image

笛卡爾積:
定義1:
D1,D2,...,Dn為任意集合,定義其笛卡爾積為: D1D2...Dn={(d1,d2,...dn) | di e Di ,i=1,2,...n}
其中每個元素(d1,d2,...dn) 叫做一個元組 元組的每個值di叫做元組的一個分量 笛卡爾積可以用二維表來表示
image

定義2:
D1D2,...,Dn的子集叫做在域D1,D2,...Dn上的關系,記為 R(D1,D2...Dn),稱關系R為n元關系
image

廣義笛卡爾積:
兩個元素分別為n目和m目的關系R和S的廣義笛卡爾積是一個(n+m)列的元組的集合
image
元組的前n列是關系R的一個元組 元組的后m列是關系S的一個元組

關系運算

笛卡爾積結果: 屬性數:加
元組數:乘

關系運算——投影

關系R的投影是從關系R中選擇出若干屬性列組成新的關系。
分為兩步:

  • (1)選擇出指定的屬性,形成一個可能含有重復行的表。
  • (2)刪除重復行,形成新的關系。

關系模式中R(A1,A2,...An),t∈R表示t是R的一個元組,其中A為R中的屬性列。t[A\(_i\)]則表示元組t中相應於屬性A\(_i\)的一個分量。投影的運算表達式為:
image
在關系二維表中投影是一種垂直操作,它針對二維表中的屬性列。
在SQL中,投影運算是一個單目運算,它是從一個關系R中選取所需要的列組成一個新關系。

例:
image

π\(_{名稱,單價}\)(表1)=表2

關系運算——選擇

定義:在關系中選擇在指定屬性上有確定值的關系的子集。表示為:
image
是從關系R中選擇滿足給定條件的諸元組
F中的運算對象是屬性名(或列的序號)或常數
例:σ\(_{1≠6}\)( R ) : 選取關系R中第一個屬性值不等於第六個屬性值的元組
例:σ\(_{1≠'6'}\)( R ) : 選取關系R中第一個屬性值不等於'6'的元組

關系運算——連接

是從兩個關系R和S的笛卡爾積中選取滿足一定條件的元組
3種類型
θ連接:
是從兩個關系R和S的笛卡爾積中選取滿足一定條件的元組
形式定義
image
xθy為連接條件
θ是比較運算符
X,Y分別為R和S上度數相等,且可比的屬性組
tn[X]表示R中tn元組相應於X的一個分量
tm[Y]表示R中tm元組相應於Y的一個分量
image
image
等值連接
自然連接:
是一種特殊的等值連接
要求兩個關系中進行比較的分量必須是相同的屬性組 ,並且在結果集中將重復屬性列去掉
形式定義
image
tn表示關系R的元組變量,tm表示關系S的元組變量
S去除重復屬性B所組成新的元組tm*
R和S具有相同的屬性組B,且B=( B1,B2,...,Bk)
假定R的屬性為:A1,A2,...,An-k,B1,B2,...Bk 假定S的屬性為:B1,B2,...,Bk,Bk+1,Bk+2,...Bm
image

數據庫語言

SQL(Structure Query Language)稱為結構化查詢語言。是介乎關系代數和元組 驗算之間的一種語言,廣泛應用於商用系統中,是關系數據庫的標准語言

語言分類 詳細描述
數據查詢語句 select
數據操縱語句(DML) insert;update;delete;
數據定義語句(DDL) create;alter;drop;rename;truncate;
事務控制語句(TC) commit;rollback;savepoint
數據控制語言(DCL) Grant;Revoke;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM