三级数据库笔记(完整)
三級數據庫背誦資料
第一章 計算機基礎知識
1、馮.諾依曼計算機以“存儲程序”原理為基礎,由運算器、存儲器、控制器、輸入設備和輸出設備等五大部件組成。
2、計算機指令系統:
系列計算機:指令系統向下兼容。
復雜指令系統計算機:CISC (Complex Instruction Set Computer)
精簡指令系統計算機:RISC (Reduced Instruction Set Computer)
指令系統的類型:數據傳送類指令、算術邏輯類指令和判定控制類指令。
指令系統的尋址方式:立即尋址(立即數尋址),指令中直接給出操作數。
寄存器尋址:操作數在寄存器中。直接尋址:指令中直接給出操作數地址。寄存器間接尋址:寄存器給出操作數地址。
寄存器相對尋址:指令中給出操作數的地址偏移量
3、微型處理器分類:通用微處理器、嵌入式微處理器和數字信號處理器等
4、總線:
PCI:不依附具體處理器的局部總線。
USB:通用串行總線。
1394總線:FireWire,為家用電器研制的一種高速串行總線。1394總線在數字視頻設備(數字攝像機)中廣泛應用。
5、計算機的技術指標:
運算速度MIPS(每秒百萬條指令)
影響計算機運算速度的因素很多,主要是CPU的主頻和存儲器的存取周期。
存儲器容量:基本單位B(Byte) 1KB=1024Byte 1MB=1024KB 1GB=1024MB 1TB=1024GB
數據傳輸率:基本單位bps(每秒傳輸多少位) 1Kbps=103bps 1Mbps=103Kbps 1Gbps=103Mbps
6、計算機中的信息表示
非數字信息的表示:ASCII碼 漢字的表示:三類代碼體系:輸入碼,如:拼音碼、五筆字形碼等;機內碼;交換碼,如GB2312-80;
7、計算機網絡基礎
計算機網絡的基本特征:資源共享。廣域網與廣域網的互聯是通過路由器實現的。
傳輸技術分為: 廣播式網絡(通過一條公共信道實現)點–點式網絡(通過存儲轉發實現)。采用分組存儲轉發與路由選擇是點-點式網絡與廣播網絡的重要區別之一
按規模分類:局域網(LAN)、城域網(MAN)、廣域網(WAN)
廣域網(遠程網)以下特點:1 適應大容量與突發性通信的要求。2 適應綜合業務服務的要求。3 開放的設備接口與規范化的協議。4 完善的通信服務與網絡管理。
幾種常見的廣域網的特點:
X.25:建立在速率低、誤碼率高的電纜介質上,X.25協議包括差錯控制、流量控制和擁塞控制等,由通信子網完成,有時間延遲。
FR(幀中繼):建立在速率高、誤碼率低的光纖上,對X.25協議進行簡化,差錯控制由用戶終端完成。
B-ISDN(寬帶綜合業務數字網)、N-ISDN(窄帶綜合業務數字網)
ATM(異步傳輸模式,一種數據傳輸與分組交換技術,能滿足多媒體應用的高速率與低延遲的要求,具有線路交換實時性好和分組交換靈活性好的雙重優點。
各種城域網建設方案有幾個相同點:傳輸介質采用光纖,交換接點采用基于IP交換的高速路由交換機或ATM交換機,在體系結構上采用核心交換層,業務匯聚層與接入層三層模式。城域網MAN介于廣域網與局域網之間的一種高速網絡。
8、網絡協議為三部分:(1)語法,即用戶數據與控制信息的結構和格式; (2)語義,即需要發出何種控制信息,以及完成的動作與做出的響應;(3)時序,即對事件實現順序的詳細說明.
9、Internet的結構和組成
協議:TCP/IP協議組
TCP/IP參考模型可以分為:應用層,傳輸層(TCP、UDP協議),互連層(IP協議),主機-網絡層
應用層協議分為:
a、依賴于面向連接的TCP協議:主要有: 文件傳送協議FTP、電子郵件協議SMTP以及超文本傳輸協議HTTP等。
b、依賴于面向連接的UDP協議:主要有簡單網絡管理協議SNMP;簡單文件傳輸協議TFTP。
c、既依賴于TCP協議,也可以依賴于UDP協議:域名服務DNS等。
d、網絡終端協議:Telnet;網絡文件系統 NFS;路由信息協議RIP。
10、域名與IP地址:IP地址由網絡地址和機器地址組成:IP地址長度為32位,X.X.X.X表示,X為8為,表示0-255,(點分十進制地址)。主要分為A類(網絡地址7位,機器地址24位)、B類(網絡地址14位,機器地址16位)、C類(網絡地址21位,機器地址8位);域名 格式 主機名.組名.網點名 www.sina.com
11、Internet 提供的服務
(1)WWW服務:采用客戶機/服務器模式a、超文本和超媒體是WWW的信息組織形式
b、HTML(超文本標記語言,網頁語言)和HTTP(超文本傳輸協議)是WWW工作的基礎
c、URL(統一資源定位器):查找主頁。由三部分組成:協議類型,主機名和文件名及路徑
比如:http://www.swpu.edu/index.htm,其中http為協議類型,www.swpu.edu.cn為主機名,index.htm為文件名及路徑
(2)電子郵件服務:
電子郵件發送接收協議:發送協議,簡單郵件傳送協議(SMTP),接收協議,可以使用郵局協議(POP3)和交互式郵件存取協議(Interactive Mail Access Protocol,IMAP)
電子郵件內容協議 MIME(Multipurpose Internet Mail Extensions),可以傳送圖像、聲音等多媒體信息
12、Internet的接入:ISP(Internet Service Provider,ISP)Internet服務提供商
局部網接入、電話線接入
ADSL(Asymmetrical Digital Subscriber Loop)非對稱數字用戶環路,基于電話線,上、下行傳輸速率不同,上行可達1Mbps;下行可達8Mbps。
13信息安全基礎
信息安全包括四方面內容: 信息保密、 完整性、 可用性、 可控性
(1)密碼體制:加密或密碼體制由5部分組成:明文空間(明文的集合)、密文空間(密文集合)、加密密鑰空間、解密密鑰空間、加密和解密算法集
單鑰加密體制分為兩類:流密碼(明文逐位加密)和分組密碼(明文分組,逐組加密)。
密鑰的分配和存儲是最關鍵和困難的問題。
(2)信息認證
有關認證的實用技術中,主要的有數字簽名技術、身份識別技術和信息的完整性校驗技術(消息認證)
(3)惡意軟件:特洛依木馬、登錄陷阱(網絡釣魚,虛假頁面)、邏輯炸彈(在程序中設置的破環代碼)
后門陷阱(在程序中設置的繞開登錄進入系統)、緩沖區溢出、僵尸網絡:一對多進行控制
網絡防病毒軟件:允許用戶設置3中掃描方式: 實時掃描、預置掃描、人工掃描
(4)網絡安全
網絡安全服務的主要內容:安全攻擊、安全機制、安全服務
網絡服務攻擊分類: 服務攻擊和非服務攻擊
服務攻擊:對服務器發起攻擊,喪失服務能力,比如對WWW服務器攻擊,主頁被篡改。拒絕服務DoS或DdoS分布式拒絕服務。
非服務攻擊:對通信設備攻擊,使設備癱瘓
網絡信息攻擊: 攻擊類型:截獲、竊聽、篡改和偽造等
14、操作系統安全
操作系統的安全措施一般可以從隔離、分層和內控3個方面來進行考慮。
隔離可分為:(注意后面的解釋)
①物理隔離:使不同安全要求的進程使用不同物理實體。
②時間隔離:使不同進程在不同時間運行。
③邏輯隔離:限制程序存取。
④密碼隔離:進程以其他進程不知的方式隱蔽數據和計算。
操作系統安全措施:訪問控制、存儲保護及文件保護與保密。
訪問控制:認證、訪問權限、文件保護、審計。存儲保護:防止地址越界、防止操作越權。
第二章 數據結構算法
1、數據:數據的基本單位是數據元素。數據元素可由一個或多個數據項組成。數據項是數據的不可分割的最小單位
2、數據結構:數據的邏輯結構、數據的存儲結構、數據的運算
3、主要的數據存儲方式:順序存儲結構(邏輯和物理相鄰,存儲密度大)和鏈式存儲結構
順序存儲結構:
順序存儲計算公式 Li=L0+(i-1)×K 順序結構可以進行隨機存取;插人、刪除運算會引起相應節點的大量移動
鏈式存儲結構:a、指針域可以有多個,可以指向空,比比順序存儲結構的存儲密度小
b、邏輯上相鄰的節點物理上不一定相鄰。 c、插人、刪除等不需要大量移動節點
4、順序表:一般情況下,若長度為n的順序表,在任何位置插入或刪除的概率相等,元素移動的平均次數為n/2(插入)和(n-1)/2(刪除)。
5、鏈表:線性鏈表(單鏈表和雙向鏈表等等)和非線性鏈表
線性鏈表也稱為單鏈表,其每個一節點中只包含一個指針域,雙鏈表中,每個節點中設置有兩個指針域。(注意結點的插入和刪除操作)
6、棧:“后進先出”(LIFO)表。棧的應用:表達式求解、二叉樹對稱序周游、快速排序算法、遞歸過程的實現等
7、隊列:“先進先出”線性表。應用:樹的層次遍歷
8、串:由零個或多個字符組成的有限序列。
9、多維數組的順序存儲:
10、稀疏矩陣的存儲:下三角矩陣順序存儲
其他常見的存儲方法還有三元組法和十字鏈表法
11、廣義表:由零個或多個單元素或子表所組成的有限序列。廣義表的元素可以是子表,而子表的元素還可以是子表
12、樹型結構:非線性結構。常用的樹型結構有樹和二叉樹。
二叉樹與樹的區別:二叉樹不是樹的特殊情況,樹和二叉樹之間最主要的區別是:二叉樹的節點的子樹要區分左子樹和右子樹,即使在節點只有一棵子樹的情況下也要明確指出該子樹是左子樹還是右子樹。
13、樹(森林)與二叉樹之間的轉換(要會轉換)
14、二叉樹和樹的周游(遍歷)
二叉樹的周游主要有以下3種方式:前序法(NLR)、對稱序法(LNR)、后序法(LRN)
周游樹和樹林:深度優先和按廣度優先兩種方式進行。深度優先方式又可分為按先根次序和按后根次序周游
樹與二叉樹周游之間的對應關系:按先根次序周游樹正好與按前序法周游樹對應的二叉樹等同,后根次序周游樹正好與按對稱序法周游對應的二叉樹等同
按廣度優先方式就是層次次序周游
15、二叉樹的存儲和線索
二叉樹的存儲結構:二叉樹的llink一rlink法存儲表示
線索二叉樹:在有n個節點的二叉樹的且llink - rlink法存儲表示中,必定有n+1個空指針域
16、哈夫曼樹:一類帶權路徑長度最短的樹。樹的帶權路徑長度為樹中所有葉子節點的帶權路徑長度之和WPL。
17、查找:
(1)順序查找:平均查找長度為(n +1 )/2次,時間復雜度為O(n)
(2)二分法查找:線性表節點必須按關鍵碼值排序,且線性表是以順序存儲方式存儲的。查找成功比較次數log2n,查找失敗比較次數log2n+1
(3)分塊查找:先是塊間查找,然后塊內查找。
(4)散列表(哈希表Hash)的存儲和查找:處理沖突的方法:開地址法(線性探測法)、拉鏈法等
負載因子(裝填因子)=表實際存儲的結點個數/表的最大能存儲結點個數(即表長)
二叉排序樹:每個結點左子樹的所有關鍵碼值都小于該結點關鍵碼值,右子樹所有結點關鍵碼值都大于該結點關鍵碼值。對稱周游二叉排序樹,得到一個有序序列,時間復雜度O(log2n)
B樹和B+樹:M階樹,每個結點至多有M-1個關鍵碼,至少有M/2(取上界)-1個關鍵碼。B樹適合隨機查找,不適合順序查找。B+樹適合順序查找。
18、排序
直接插人排序、希爾排序、直接選擇排序、堆排序、起泡排序、快速排序等排序算法要了解。
直接選擇排序、希爾排序、快速排序和堆排序是不穩定排序,其他排序為穩定排序
第三章 操作系統
1、操作系統概念:一是管理系統中的各種資源;二是給用戶提供一個友好的界面。
2、操作系統包括以下3個基本特征:并發性、共享性、隨機性。
3、功能:進程管理、存儲管理、作業管理、文件管理、設備管理
4、操作系統類型
(1)批處理操作系統:成批、多道,交互性不強。系統目標:提高資源利用率、作業吞吐量和作業流程自動化。
(2)分時操作系統:多路、交互性、獨立性、及時性
(3)實時系統(實時控制、實時信息處理):及時、可靠
(4)嵌入式操作系統:高可靠性、實時性、占資源少、智能化、易連接、低成本等。
5、操作系統與用戶的接口:程序級接口:系統調用命令組成。操作級接口:提供操作命令
6、操作系統的硬件環境(CPU、存儲體系、中斷系統、I/O控制和時鐘)
(1)CPU:CPU狀態:管態(CPU執行操作系統程序)和目態(CPU執行用戶程序)
目態到管態的轉變的唯一途徑是中斷,通過修改程序狀態字實現管態和目態的轉換
(2)中斷機制:
中斷的實現需要硬件和軟件結合完成。中斷類型:強迫性中斷和自愿性中斷。
強迫性中斷:不期望或不可預料的中斷.如:輸入輸出中斷、硬件故障中斷、時鐘中斷、程序性中斷。
自愿性中斷:程序有意安排的訪管指令或系統調用。
中斷向量:中斷處理程序的入口地址及運行環境(程序狀態字PSW)
中斷優先級由硬件規定,中斷屏蔽由程序狀態字的中斷屏蔽位決定。通過中斷屏蔽可以調整中斷事件的響應次序
(3)定時裝置:定時裝置硬件時鐘通常分為兩類:即絕對時鐘和相對時鐘。
CPU對外部設備的控制方式:
1、循環測試I/O 2、中斷 3、DMA(直接內存存取):高速外設與內存批量處理數據 4、通道處理(I/O處理機)
7、進程管理
(1)進程與程序的區別與聯系:a.進程是程序的執行,是動態的;而程序是指令的集合,是靜態的。
b.進程有生命周期,即進程的存在是有限的,從運行到結束,是暫時的;而程序則是永久存在的。
c.進程包括程序、數據和進程控制塊(PCB)。
d.一個程序可以有多個進程,一個進程也可以包含多個程序。
進程控制塊PCB是一個數據結構,進程在內存中存在的唯一標志
(2)進程狀態: 運行態, 就緒態,等待狀態(阻塞狀態)
(3)線程:CPU調度和分派的基本單位。共享進程資源。
(4)進程的通信
臨界資源是指一次只允許一個進程使用的資源:一個進程中訪問臨界資源的那段程序代碼稱為臨界區。它們不允許兩個及以上的進程同時訪問或修改。
進程同步:多個進程協同完成任務。進程互斥:多個進程使用同一資源(臨界資源)。
低級通信:少量信息的交換(P操作和V操作)
高級通信:大信息交換(消息機制(消息緩沖、信箱通信)、共享內存,管道)
進程(線程)調度:先來先服務、時間片輪轉、最高優先級(緊迫度高的進程)、 多級隊列反饋算法:綜合了FCFS、時間片輪轉和可搶占最高優先數算法。
(5)死鎖:
產生死鎖的必要條件:互斥條件、不可剝奪條件、部分分配、循環等待
死鎖的預防: 破環必要條件之一:靜態預分配(破壞部分分配)、資源有序分配(破壞環路等待)、 可剝奪資源(破壞不可剝奪性)
死鎖的避免:銀行家算法
死鎖的檢測:進程等待時檢測、定時檢測、系統利用率降低時檢測
死鎖的解除:資源剝奪和撤銷進程
8、存儲管理
(1)功能:內存的分配和回收、內存共享、存儲保護(防止地址越界和操作越權)、地址映射(地址重定位)
內存擴充:讓外存當作內存來使用
(2)碎片管理:解決碎片的方法是移動技術或緊湊(拼接)技術
(3)靜態地址重定位:程序裝入內存時,進行邏輯地址轉換物理地址轉換
動態地址重地位:程序運行過程中,要訪問指令和數據才進行地址轉換,需要硬件地址映射機制(基址寄存器和限長寄存器)
(4)空閑分區的分配策略:最先適應算法(地址從小到大找第一個滿足進程空間大小的分區)
最佳適應算法:分區表按容量從小到排序;最壞適應算法:分區按容量從大到小排序。
(5)虛擬存儲管理:虛擬存儲得以實現是由程序的局部性原理來決定的。程序的局部性原理包括時間局部性和空間局部
(6)頁面淘汰算法包括以下幾種:最佳淘汰算法(OPT)、先進先出淘汰算法(FIFO)、最近最久末使用淘汰算法(LRU)
最近使用最少淘汰算法(LFU)(訪問次數少)
(7)影響缺頁中斷次數因素:a、分配給進程的物理頁面數 b.頁面大小 c.程序本身的編制方法
c、頁面淘汰算法:最佳淘汰算法(OPT)能使缺頁中斷率最低
(8)顛簸(抖動):缺頁率高引起。工作集模型解決顛簸(抖動)
9、文件管理
(1)邏輯結構:流式文件(基本單位字符)(如:源程序文件、目標代碼文件,Unix的文件)和記錄文件(定長和不定長記錄),記錄包含一個記錄鍵和其他屬性
(2)文件的物理結構:連續結鉤、鏈接結構、索引結構及Hash結構等,文件的存取方式與物理結構有關。
UNIX三級索引表的計算:如果一個物理塊可以存放256個塊號,則三級索引表表示文件的大小 2563+2562+256+10
(3)文件目錄:文件系統的最大特點就是“按名”存取
(4)文件控制塊FCB是文件在內存中存在的唯一標志,文件目錄是文件控制塊的有序集合。
(5)多級目錄結構,有利于避免文件重名;當前目錄:可以提高檢索速度。目錄項分解法,它可以提高文件檢索速度
(6)記錄的成組:若干個邏輯記錄合成在一個物理塊中,每個塊中的邏輯記錄個數為塊因子。
10、設備管理
(1)按設備的工作特性可以分為存儲設備和輸人/輸出設備兩種
(2)按照資源分配方式可以分為獨享設備、共享設備和虛擬設備3種
虛設備技術,一類設備模擬另一類設備的技術。在高速設備(如高速大容量磁盤)上模擬低速設備 :SPOOLING是典型的虛設備技術,被模擬的設備稱為虛擬設備。
(3)按設備的數據組織分類:塊設備(磁盤、磁帶)和字符設備(打印機)。
(4)通道可以分為以下3種類型:字節多路通道、選擇通道和成組多路通道。
(5)單緩沖區,雙緩沖區,多緩沖區和緩沖池:解決外設與CPU速度不匹配問題
(6)磁盤調度: 訪問磁盤時間:尋道時間、旋轉定位時間和數據傳輸時間。
磁盤調度由移臂調度和旋轉調度組成。移臂調度:先來先服務FCFS(大幅度移動)、最短尋道時間優先(饑餓,考慮了尋道優化),掃描算法(考慮方向和距離,考慮了尋道優化)
旋轉調度:目的較少旋轉延遲時間。
第四章 數據庫系統技術基礎
1、信息與數據的關系:數據是信息的符號表示,或稱載體;信息是數據的內涵,是數據的語義解釋
2、數據庫系統:一般由數據庫、操作系統、數據庫管理系統(及其工具)、應用系統、數據庫管理人員和用戶構成。
3、數據模型: 數據模型是數據庫系統的數學形式框架,是數據庫系統的核心和基礎.
4、數據模型的分類:概念模型,也稱信息模型;邏輯模型,主要包括網狀模型、層次模型和關系模型等;物理模型 。
5、數據模型的三要素:數據結構、數據操作和完整性約束。
6、概念模型,信息世界建模,E-R模型是常用的概念模型。EER擴充E-R模型,面向對象模型、謂詞模型。
E-R圖提供了表示實體型、屬性和聯系的方法。
(1)實體型:用矩形表示,矩形框內寫明實體名。
(2)屬性:用橢圓形表示,并用無向邊將其與相應的實體連接起來。
(3)聯系:用菱形表示,菱形框內寫明聯系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯系的類型
7、邏輯模型,面向數據庫管理系統。傳統邏輯模型(層次、網狀、關系)基于記錄的模型。層次、網狀模型用記錄和鏈接表示數據和聯系,關系模型用二維表表示數據,記錄值表示表間聯系。
面向對象的模型,對象-關系模型都屬于邏輯模型,面向對象模型既是概念模型又是邏輯模型。
8、數據庫系統的三級模式結構:由外模式、模式和內模式三級構成的。
9、模式(Schema):一個數據庫只有一個模式;外模式也稱子模式或用戶模式,一個數據庫可以有多個外模式。外模式是保證數據庫安全性的一個有力措施。內模式也稱存儲模式或物理模式,一個數據庫只有一個內模式。
10. 數據庫的二層映像與數據獨立性:外模式/模式映像,包含在各自的外模式描述中。外模式/模式映像保證了數據與程序的邏輯獨立性(模式變,外模式不變);模式/內模式映像,包含在模式描述中,模式/內模式映像保證了數據與程序的物理獨立性(物理模式變,模式不變,外模式不變)。
第五章 關系數據庫系統
1、關系模型由關系數據結構、關系操作集合和關系完整性約束3部分組成。
2、關系模型中的關系操作的理論依據為關系代數和關系演算。
關系操作的特點是集合操作方式。
3、關系數據語言可以分為如下3類:關系代數語言、關系演算語言(包括元組關系演算語言和域關系演算語言)及具有關系代數和關系演算雙重特點的SQL語言。
4、關系模型中有3類完整性約束:實體完整性、參照完整性(引用完整性)和域完整性約束(用戶自定義的完整性)
5、關系數據庫對關系的限定
當關系作為關系數據模型的數據結構時,關系數據庫對關系有如下的限制。
(1)列是同質的.即每一列中的分量是同一類型的數據,來自同一個域。
(2)不同的列可以出自同一個域,稱其中的每一列為一個屬性,不同的屬性要給予不同的屬性名。
(3)列的順序無關緊要,即列的次序可以任意交換。
(4)任意兩個元組不能完全相同。
(5)行的順序無關緊要,即行的次序可以任意交換。
(6)每一個屬性是不可分解的這是關系數據庫對關系的最基本的一條限定。分量必須取原子值,即每一個分量都必須是不可拆分的數據項。
6、關系模型的完整性約束:實體完整性關系的所有主屬性都不能取空值,而不僅是主碼整體不能取空值
參照完整性規則:外鍵要么取空值,要么等于被參照關系中某個元組的主碼值。
7、域完整性約束(用戶有定義的完整性):對其他屬性值域的約束,也稱為域完整性規則,包括數據類型、精度、取值范圍、是否允許空值等。
8、關系代數(了解操作的執行結果)
并、差、笛卡兒積、投影和選擇為五種基本運算。
9、傳統的集合運算包括并、交、差和廣義笛卡兒積4種運算。
10、專門的關系運算包括:對單個關系進行垂直分解(投影操作)或水平分解(選擇操作)和對多個關系進行結合(連接操作)等。
11、廣義投影
賦值、外連接(左外連接、右外連接)、半連接,聚集:G表示,外部并
第六章 關系數據庫標準語言SQL
1、SQL(Structured Query Language)稱為結構化查詢語言,SQL已經成為關系數據庫領域中的一種主流語言,1987年被國際標準化組織(ISO)采納為國際標準
1992年公布了SQL92(SQL2),1999年公布了SQL93(SQL3,對象-關系SQL),2003年公布SQL2003(SQL4)
2、SQL 特點:SQL語言集數據查詢、數據操縱、數據定義和數據控制功能于一體
綜合統一、高度非過程化、面向集合的操作方式、以同一種語法結構提供兩種使用方式(自含式和嵌入式SQL)、語言簡潔,易學易用。
3、SQL數據庫體系結構:外模式對應于視圖和部分基本表、模式對應于基本表,內模式對應于存儲文件
基本表是本身獨立存在的表,一個關系就是一個基本表(存放實際數據),行對應元組,列對應屬性;一個基本表可以跨一個或多個存儲文件存放,一個存儲文件可以存放多個基本表;所有基本表的集合構成了模式;基本表是模式和外模式的一部分。
一個SQL表可以是一個基本表,也可以是一個視圖。視圖是一個或幾個基本表導出的表,數據庫中存放視圖的定義,視圖的數據仍然在基本表中。視圖是一個虛表,是外模式的一部分。
一個SQL表可以有若干索引,索引放在存儲文件中。存儲文件的邏輯結構組成了SQL數據庫的內模式。物理結構由操作系統管理,對用戶透明。
SQL用戶可以是一個應用程序,可以一個SQL用戶。
4、SQL的數據類型:預定義數據類型、構造數據類型、用戶定義數據類型
5、基本的SQL定義語句:關系數據庫的基本對象是模式、表、視圖、索引和域
基本對象 創建 刪除 修改
模式 CREATE SCHEMA DROP SCHEMA
基本表 CREATE TABLE DROP TABLE ALTER TABLE
視圖 CREATE VIEW DROP TABLE
索引 CREATE INDEX DROP INDEX
域 CREATE DOMAIN DROP DOMAIN
6、基本操作語句
(1)模式的定義與刪除 Create Schema <模式名> AUTHORIZATION <用戶名>
Drop Schema <模式名>|CASCADE|RESTRICT
(2)基本表的操作:創建:CREATE TABLE[模式名.]<表名>(<列名><數據類型>(列級完整性約束〕
[,<列名><數據類型>[列級完整性約束]…
〔,<表級完整性約束>〕);
<列級完整性約束條件>:涉及相應屬性列的完整性約束條件
<表級完整性約束條件>:涉及一個或多個屬性列的完整性約束條件
CREATE TABLE S_SC_C.SC
(S# CHAR(8),C# CHAR(8),GRADE INT NOT NULL,
PRIMARY KEY (S#,C#),FOREIGN KEY(S#) REFERENCES STU(S#)
);
PRIMARY KEY (S#,C#),FOREIGN KEY(S#) REFERENCES STU(S#)為表完整性約束
修改:ALTER TABLE<表名>
「ADD<新列名><數據類型>[完整性約束〕〕
[DROP <列名>][<完整性約束名>]〕
[MODIFY<列名><數據類型>」;
刪除:當某個基本表不再需要時,可以用DROP TABLE語句進行刪除,其格式為:
DROP TABLE<表名>
基本表一旦被刪除,表中的數據、此表上建立的索引和視圖都將自動被刪除。因此執行刪除基本表的操作時一定要格外小心。DROP TABLE <表名> RESTRICT 視圖等關聯對象沒有事先刪除則不能執行刪除操作
(3)索引操作
建立索引是加快查詢速度的有效手段,提供多種存取路徑
UNIQUE 唯一索引,建立的索引其值必須唯一
CLUSTER聚簇索引,表示索引值的順序與表中記錄的物理順序一致,適合在經常查詢的列上建立,不適合在經常更新的列上建立
CREATE [UNIQUE][CLUSTER]INDEX<索引名>
ON<表名>(<列名>[<次序>〕[,<列名>[<次序>」…」);
<次序>指定索引值的排列次序,可選ASC(升序)或DESC(降序),默認值為ASC
如:CREATE UNIQUE INDEX SCno ON SC( Sno ASC,Cno DESC);
刪除索引:DROP INDEX<索引名>;刪除索引時,系統會同時從數據字典中刪去有關該索引的描述
4、SQL的數據操縱語句
SQL語言的數據操縱包括INSERT(插人)、DELETE(刪除)、UPDATE(更新)和SELETE(檢索,又稱查詢)4個語句
SELECT語句是數據操作的核心。
(1)數據查詢 SELECT[ALLI DISTINCT]<目標列表達式>〔,<目標列表達式>]…
FROM<基本表或視圖>[,<基本表或視圖>]…
[WHERE<條件表達式>]
[GROUP BY<列名l>[HAVING<條件表達式>]]
[ORDER BY<列名2>[ASC 1 DESC]];
a.簡單查詢
簡單查詢涉及數據庫中的一個表,包括以下幾種:
(1)查詢表中的若干列。
(2)查詢經過計算的值。
(3)消除取值重復的行。DISTINCT
(4)查詢滿足條件的元組。WHERE
(5)利用LIKE的查詢。_、%
(6)涉及空值NULL的查詢。IS NULL 、IS NOT NULL
(7)對查詢結果排序。ORDER BY ASC/DESC
(8)使用集函數。Count 、SUM、AVG、MAX、MIN
(9)對查詢結果分組。Group by having
b. 連接查詢
外連接的三種類型:左外連接、右外連接、全外連接
左外連接(LEFT OUTER JOIN):結果表中保留連接條件左邊關系中的所有元組
右外連接(RIGHT OUTER JOIN): 結果表中保留連接條件右邊關系中的所有元組
全外連接(FULL OUTER JOIN): 結果表中保留連接條件左右兩邊關系中的所有元組
某些系統中用+= 表示左外連接、=+表示右外連接、+=+表示全外連接
c.嵌套查詢 (I)由謂詞IN引導的子查詢:IN是最常用的謂詞。
(2)謂詞是比較運算符的子查詢。
(3)由[NOT]EXISITS謂詞引導的子查詢。
d.集合查詢。
UNION(并)、INTERSECT(交)、EXCEPT(差)
5、SQL的修改語句
(1)插入操作(insert)insert into 表名(字段名,…) values(常量,…)
insert into 表名(字段名,…) select … from
(2)刪除操作(delete)delete from 表名 [where F] 刪除表中的數據,表的結構還存在數據字典中
(3)更新操作(update)update 表名 set 列名=表達式,列名=表達式 where F
6、視圖
(1)創建視圖CREATE VIEW<視圖名>〔(<列名>〔,<列名>…〕
AS<子查詢>
〔 WITH CHECK OPTION〕:
其中子查詢可以是任意復雜的SELECT語句,但通常不允許含有ORDER BY子句和DISTINCT短語。WITH CHECK OPTION表示對視圖進行UPDATE、INSERT和DELETE操作時要保證更新、插人或刪除的行滿足視圖定義中的謂詞條件(即子查詢中的條件表達式)。
(2)幾種特殊的視圖:行列子集視圖、表達式視圖、分組視圖、連接視圖
(3)查詢視圖:將對視圖的查詢轉換為對基本表的查詢的過程稱為視圖的消解(View Resolution)。
視圖物化(View Materialization):是指在視圖第一次被查詢的時候物理地建立一個臨時的視圖表(實表),但必須保證更新基本表時自動更新視圖表,保持物化視圖的最新性。
(4)修改視圖
為防止用戶通過視圖對數據進行增、刪、改操作時,無意或有意操作不屬于視圖范圍內的基本表數據可在定義視圖時加上WITH CHECK OPTION子句,這樣在視圖上增、刪、改數據時,DBMS會進一步檢查視圖定義中的條件,若不滿足條件,則拒絕執行該操作。
改視圖包括插入(INSERT)、刪除(DELETE)和更新(UPDATE) 3類操作。行列子集視圖可以修改,帶表達式視圖、連接視圖和分組視圖不能修改。
(5)視圖的作用
(1)能夠簡化用戶的操作。
(2)使用戶能以多種角度看待同一數據。
(3)對重構數據庫提供了一定程度的邏輯獨立性。
(4)能夠對機密數據提供安全保護。
7、數據控制語句和嵌入式SQL
(1)GRANT語句和REVOKE語句實現權限授予和權限回收
GRANT 權限 ON 對象名 to 用戶 [with grant option]; with grant option 獲得權限的用戶允許授予其他用戶
(2) REVOKE<權限>[,<權限>]… [ON<對象類型><對象名>] FROM<用戶>[,<用戶>]…;
(3) SQL語言分為獨立語言和嵌入式語言
SQL語言嵌入主語言解決的3個問題:
SQL語言與主語言的區分:EXEC SQL<SQL語句>
數據庫工作單元與程序工作單元的通信(通過主變量)
游標解決集合操作與記錄操作的矛盾
DBMS可采用兩種方法處理嵌入式SQL,一種是預編譯,另一種是修改和擴充主語言
(4)動態SQL:程序在執行過程中動態生成SQL語句。動態SQL的兩種執行方式:1、立即執行;2、先準備后執行
第七章 關系數據庫的規范化理論與數據庫設計
1、“不好”的關系模式有以下4個問題:
a、數據冗余 b、更新異常 c、插入異常 d、刪除異常
2、函數依賴
數據依賴中重要的是函數依賴和多值依賴
(1)函數依賴定義:設R(U)是屬性集U上的一個關系模式,X和Y均為U的子集。若對于R(U)的任一個可能的關系r,r中不可能有兩個元組在X中的屬性值相等,而在Y中的屬性值不等,那么稱X函數決定Y X->Y,或Y函數依賴于X, X為決定因素(函數中的一一映射關系)
(2)函數依賴包括非平凡的函數依賴、平凡的函數依賴、完全函數依賴、部分函數依賴及傳遞函數依賴
平凡函數依賴:
非平凡函數依賴: 如果 X→Y,但 Y ? X, 則稱 X→Y 是平凡的函數依賴
完全函數依賴: 在關系模式 R(U)中,如果X→Y,并且對于 X 的任何一個真子集X’,都有
X’ Y, 則稱 Y 完全函數依賴于 X,記作:
部分函數依賴: 若X→Y,但Y不完全函數依賴于X,則稱 Y 部分函數依賴于X,記作:
傳遞函數依賴: 在關系模式R(U)中,如果X→Y(Y íX),Y→X ,Y→Z,則稱 Z 傳遞函數依賴于X。
(3) 函數依賴的邏輯蘊含
設R<U, F>是一個關系模式,X可以由F推導出Y,則稱F邏輯蘊含X→Y
(4)碼:設 K 為關系模式 R<U,F>中的屬性或屬性組合。若 ,并且不存在K的真子集決定U,則 K 稱為 R 的一個侯選碼(Candidate Key)。若關系模式 R 有多個候選碼,則選定其中的一個做為主碼(Primary key)。
主屬性與非主屬性
全碼(ALL KEY):主碼為關系模式所有屬性
如何找候選碼:a.找出F集合的所有僅出現在左邊的屬性和左右兩邊都沒出現的屬性,組合為U1,U1必包含在候選碼中;b.如果U1->U,則U1為一個候選碼,否則然后增加其他屬性到U1中組成屬性組K,使K->U,則K為候選碼,再找出其他候選碼
(5)函數依賴的公理系統
a.自反律:若Y íX í U,則X-> Y為F所邏輯蘊含。
b.增廣律:若X->Y為F所邏輯蘊含,且Z í U,則XZ->YZ為F所邏輯蘊含。
c.傳遞律:若X- >Y及Y->Z為F所邏輯蘊含,則X->Z為F所邏輯蘊含。
推論
合并規則:X->Y,X->Z,則X->YZ
偽傳遞規則:X->Y,WY->Z,則XW->Z
分解規則:X->Y及ZíY,則X->Z
3、1NF、2NF,3NF,BCNF
(1)1NF: 1NF的模式是關系數據庫的最基本要求
如果關系模式R的所有屬性都是不可再分解的,則稱R屬于第一范式,簡稱1NF,記做R∈1NF。
(2) 2NF:若R∈ INF,且每一個非主屬性完全函數依賴于碼,則R∈2NF
(3) 3NF: 關系模式R∈2NF,且每個非主屬性都不傳遞依賴于碼,則R∈3NF
(4) BCNF: 若關系模式R∈1NF,且對于每個非平凡的函數依賴X-> Y都有X包含碼,則R ∈BCNF。在函數依賴的范圍內,BCNF達到了最高的規范化程度。
4、多值依賴和4NF
(1)多值依賴:設R(U)是一個屬性集U上的一個關系模式, X、 Y和Z是U的子集,并且Z=U-X-Y,多值依賴 X→→Y成立當且僅當對R的任一關系r,r在(X,Z)上的每個值對應一組Y的值,這組值僅僅決定于X值而與Z值無關。
平凡多值依賴和非平凡的多值依賴
若X→→Y,而Z=φ,則稱 X→→Y為平凡的多值依賴, 否則稱X→→Y為非平凡的多值依賴
特性:a.多值依賴具有對稱性 若X→→Y,則X→→Z,其中Z=U-X-Y
b.函數依賴是多值依賴的特殊情況。若X→Y,則X→→Y。
c. 若函數依賴X→Y在R(U)上成立,則對于任何Y’ ì Y均有X→Y’ 成立
多值依賴X→→Y若在R(U)上成立,不能斷言對于任何Y’ ì Y有X→→Y’ 成立
d. 多值依賴的有效性與屬性集的范圍有關. 若X→→Y在U上成立,則在W(X YíWí U)上一定成立;反之則不然,即X→→Y在W(W ìU)上成立,在U上并不一定成立.
(2)4NF關系模式R<U,F>∈1NF,如果對于R的每個非平凡多值依賴X→→Y(Y í X),X都含有候選碼,則R∈4NF。
根據定義:不允許有非平凡且非函數依賴的多值依賴,X包含碼,即X->Y,實際就是函數依賴
如果R ∈ 4NF, 則R ∈ BCNF
5、關系模式分解
常用的等價標準有要求分解具有無損連接性的和分解是保持函數依賴的兩種。
關于模式分解的幾個事實
(1)分解具有無損連接性和分解保持函數依賴是兩個互相獨立的標準。
(2)若要求分解具有無損連接性,那么模式分解一定可以達到BCNF。
(3)若要求分解保持函數依賴,那么模式分解可以達到3NF,但不一定能達到BCNF。
(4)若要求分解既具有無損連接性,又保持函數數依賴,則模式分解可以達到3NF,但不一定能達到BCNF
6、數據庫的分析與設計
(1)數據庫設計的6個階段:需求階段、概念結構階段、邏輯結構設計、物理結構設計、數據庫實施、運行維護
(2)設計概念結構通常有4類方法:自頂向下、自底向上、由里向外和混合策略。
E-R模型為工具來描述概念結構。最常用的設計策略是自底向上設計策略
E-R方法的步驟
a.設計局部E-R圖 b.設計全局E-R圖 解決屬性沖突、結構沖突、命名沖突 c.全局E-R圖的優化
(3) 邏輯結構設計
E-R模型向關系模型轉換: a.實體轉換為關系,屬性轉換為關系的屬性,實體碼轉換為關系的碼
b.1:1的聯系,可以轉換為一個關系,也可以與聯系的任意一端實體關系模式合并
c.1:n的聯系可以轉換為一個獨立關系(屬性為1端和n端實體的碼和聯系本身屬性)(碼為n端實體碼),也可以與聯系的n端實體關系模式合并(加入1端實體碼)
d.m:n聯系轉換為一個關系模式(碼為各實體碼組合)
e.3個或3個以上的多元聯系轉換為一個關系模式,模式的碼由聯系的實體碼組成。
7、物理結構設計
(1)存儲記錄的格式設計:記錄的垂直分割法、記錄的水平分割法。
(2)存儲方法設計:順序存放、散列存放和聚簇存放。
(3)存取方法設計:索引是一種非常重要的存取路徑(建立在經常查詢和連接的屬性組上)
8、規范化理論是數據庫設計的理論基礎,可以應用到數據庫設計的不同階段。
第八章 數據庫系統實現技術
1、數據庫管理系統概述
(1)DBMS的基本功能:a. 數據庫定義功能(DDL):外模式、模式、內模式、完整性、安全保密、索引、視圖定義,定義存儲在數據字典(系統目錄),是DBMS運行的基本依據。
b. 數據操縱功能(DML):檢索、插入、更新和刪除操作。
c.數據存儲和管理:
d.事務管理:并發和故障恢復。
e. 通信功能和數據轉換功能等
(2)DBMS的程序模塊:數據定義模塊、數據操縱模塊、數據庫運行管理模塊、數據庫組織、存儲和管理模塊、數據庫建立、維護和其他方面模塊。
(3)DBMS的層次結構:最上層是應用層位于DBMS核心之外。
(2)第二層是語言翻譯處理層它處理的對象是數據庫語言 SQL,
(3)第三層是數據存取層:該層處理的對象是單個元組。
(4)第四層是數據存儲層。該層處理的對象是數據頁和系統緩沖區。
(5)操作系統是DBMS的基礎。提供的存取原語和基本的存取方法通常作為與DBMS存儲層的接口。它處理的對象是數據文件的物理塊。
2、數據庫管理系統的主要成分:
三個主要成分:存儲管理器(負責外存和內存緩沖區管理)、查詢處理器(DDL編譯、安全定義和查詢、完整定義和控制、查詢編譯優化和執行)、事務管理器(ACID特性,事務管理、并發控制、日志管理和故障恢復)
存儲管理器重要模塊:存儲管理、緩沖區管理、索引/文件/記錄管理器
查詢處理器重要模塊:DDL編譯器、查詢編譯器、執行引擎
事務管理器重要模塊:事務管理、日志和恢復、并發控制。
緩沖區和鎖表是DBMS管理的重要內存結構。
(1)存儲管理器:負責管理的數據包括:目標數據、元數據、索引和日志等。
a.物理存儲介質層次:高速緩沖存儲器、主存儲器、第二級存儲器、第三級存儲器,依次訪問速度降低,價格也降低。
其中高速緩沖存儲器、主存儲器為基本存儲(易失性存儲),第二級存儲器(例如磁盤)稱為輔助存儲器或聯機存儲器,第三級存儲器(如磁帶、光盤機)也叫脫機存儲器。第二級和第三級存儲器為外存。
磁盤塊為磁盤空間分配的基本單位,也是磁盤與主存傳輸數據的邏輯單元。
b. 數據組織: 一個數據庫映為多個不同文件, 為了將不同大小記錄組織在同一個磁盤塊中,常采用分槽的頁結構,即塊開始有塊頭(包括塊中記錄個數、塊中空閑空間尾指針、記錄的位置和大小的數組)、中間為空閑區、尾部為分配的記錄。
C. 緩沖區管理:緩沖區替換策略(最近最少使用LRU,先進先出FIFO、時鐘算法、系統控制法等.
d.數據字典:存儲關于數據庫的描述信息。必須存儲的目錄信息包括:關系基本信息、用戶信息、索引信息和統計信息。
e. 索引結構:支持對所要求的數據進行快速定位的附加數據結構稱為索引。
一個文件可以有多個索引,一個索引包括一個屬性和多個屬性(查找碼或搜索碼),以及對應記錄的位置。
順序索引:查找碼按順序存儲如B+樹索引,在順序索引中,如果對應的記錄也按查找碼排列,則稱為聚集索引(主索引)。
對單個關系中元組的查詢可分為點查詢和范圍查詢:
點查詢:查詢特定屬性上指定值的元組,一般為查詢結果為單個記錄 比如 select * from student from s#=’001’
范圍查詢:查詢給定屬性值在指定范圍的所有元組,一般查詢結果為多個記錄 select * from student from s# between ‘001’ and ‘009’
順序索引支持點查詢和范圍查詢,散列索引支持點查詢,不支持范圍查詢(注意)
(2) 查詢處理: 查詢處理器最主要的模塊查詢編譯器和查詢執行引擎.
a.查詢處理過程:分析查詢語句語法(生成語法分析樹,翻譯為關系表達式,形成初始查詢計劃)、選擇邏輯查詢計劃(生成邏輯查詢計劃樹或擴展的關系代數表達式)、選擇物理查詢計劃(生成物理查詢計劃樹)、查詢執行。
邏輯查詢選擇:初始查個詢計劃轉化為一個預期執行執行時間較小的等價計劃過程。
b.選擇邏輯查詢計劃和選擇物理查詢計劃的步驟通稱為查詢優化。
物理查詢計劃選擇常采用基于代價的查詢計劃選擇方法(根據選定的邏輯查詢計劃派生多個不同物理查詢計劃,并選擇代價最小或接近最小的物理查詢計劃)。
關系代數表達式等價:選擇運算對并、交、差具有分配律:
σP(E1 ∪ E2)=σP(E1)∪ σP(E2) σP(E1 ∩ E2)=σP(E1)∩ σP(E2)
σP(E1 - E2)=σP(E1)- σP(E2)
投影對并運算分配律:∏L(E1 ∪ E2)=∏L(E1) ∪ ∏L(E2)
c.查詢執行:查詢執行的最基本動作是關系運算的執行。選擇運算的兩種實現方式:全表掃描(依次訪問表中的每一塊),索引掃描。
(3)事務管理
a.事務的概念:數據庫的一些操作的集合通常是一個獨立單元,這種具有獨立性的邏輯單元即是事務
b.事務的特性:
1)原子性(Atomicity )。事務的所有操作在數據庫中是不可分割的,或全部反映出來或全部不反映。
2)一致性( Consistency)。事務執行的結果必須是使數據庫從一個一致性狀態轉變到另一個一致性狀態。即數據庫中只包含成功事務提交的結果。
3)隔離性(Isolation)。事務的執行不能被其他事務所干擾,一個事務內部的操作及使用的數據對其他并發事務是隔離的,互不影響。
4)持久性(Durability)。事務一旦提交并執行后,它對數據庫中數據的改變是永久的。
事務特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(durability)。
原子性、持久性:事務管理器中故障恢復機制責任。一致性:應用程序員的責任。隔離性:事務管理器中并發控制部件責任。
(4)事務的并發控制
a.事務的并發執行
并發執行時可能會破壞數據庫的一致性,主要問題包括以下三方面:
1)丟失更新。 2)對未提交更新的依賴。(讀臟數據) 3)不一致的分析。(不可重復讀)
b.并發事務的調度
如果多個事務在某個調度下的執行結果與這些事務在某個串行調度下的執行結果相同,則稱這個調度為可串行化的調度。若用等價的概念來表示就是指某個調度等價于一個串行調度。
可串行化是多個事務并發執行的正確性準則。
事務的可恢復調度:對于每對事務Ti和Tj,如果Tj讀取了Ti所寫的數據,則Ti先于Tj提交。
級聯回滾:一個事務導致依賴它的一系列事務回滾的現象。
無級聯回滾(調度):由于級聯回滾導致大量工作撤銷,所以對調度加以限制,避免級聯回滾發生,這樣的調度為無級聯調度。
可串行化且無級聯(可恢復)調度保證數據庫一致性,是我們所需要的。
(5).封鎖
在事務的并發執行過程中為保證數據庫的一致性,常采用封鎖的方法來限制其他事務對該事務數據項的訪問。對數據項加鎖的方式主要有兩種。
1)共享鎖。如果事務T獲得了數據項Q上的共享型鎖(記為S),則Ti可讀Q但不能寫e。
2)排他鎖。如果事務Ti獲得了數據項Q上的排他型鎖(記為X),則T既可讀Q又可寫Q。
注意:加了共享鎖的數據項可以再加共享鎖,不能加排他鎖。
加了排他鎖的數據項不能再加共享鎖和排他鎖。
簡言之:共享鎖與共享鎖相容,與排他鎖不相容
排他鎖與任何鎖不相容。
兩階段封鎖協議保證可串行性,它要求每個事務分兩個階段提出加鎖和解鎖申請。可保證可串行化。
1)增長階段。事務可以獲得鎖,但不能釋放鎖。
2)縮減階段。事務可以釋放鎖,但不能獲得新鎖。
兩階段封鎖增強協議:嚴格兩階段封鎖協議和強兩階段封鎖協議
嚴格兩階段封鎖協議:在遵循兩階段封鎖協議下,要求事務的排他鎖在事務提交后才能釋放。
強兩階段封鎖協議:在遵循兩階段封鎖協議下,要求事務的所有鎖在事務提交前不能釋放。
兩階段封鎖協議不能保證死鎖發生。
(6)故障恢復
a.故障的類型
1)事務故障可分為邏輯錯誤和系統錯誤,它們都可能造成事務執行失敗。事務沒有達到預期的終點。
2)系統故障:硬件故障或者是數據庫軟件或操作系統的錯誤,致使系統停止運行。主存儲器內容丟失,而外存儲器完好無損。
3)磁盤故障。數據傳送操作過程中由于磁頭損壞或故障而造成的數據內容丟失。
b.基于日志的恢復
日志包括事務開始日志記錄、更新日志記錄、事務提交日志記錄和事務終止日志記錄。
登記日志記錄原則:先寫日志原則
發生事務故障后,事務故障恢復的步驟如下:
(1)反向掃描日志,查找該事務的更新記錄C
(2)對事務的更新操作執行逆操作,將日志記錄中的“改前值”寫人數據庫。
(3)反復進行直到恢復到該事務的開始日志,則事務故障恢復結束。
對于系統的故障恢復步驟如下:
(1)正向掃描日志文件,將在故障發生前提交的事務的標識記入REDO隊列;將故障發生時尚未完成的事務的標識記人UNDO隊列。
(2)對UNDO隊列中的事務進行反向掃描,執行逆操作。
(3)對REDO隊列中的事務進行正向掃描,重新執行日志記錄登記操作。
介質故障恢復:系統備份后,裝入后備副本和日志副本,由系統恢復。
第九章 主流關系數據庫管理系統、工具及新技術
第一部分 主流關系數據庫管理系統
1、主要的關系數據庫產品:前流行的數據庫管理系統絕大多數是關系型數據庫管理系統,一般可分為如下3類:
(1)以PC機、微型機系統為運行環境的數據庫管理系統。
(2)以Oracle為代表的數據庫管理系統,這類系統還有IBM DB2,Sybase,Microsoft SQI. Server等,也被稱為主流數據庫管理系統。
2、新應用需求對關系DBMS的挑戰:
高可靠和高安全,多媒體、大容量、復雜數據應用,可伸縮協同服務,高性能管理大系統能力,支持互聯能力,聯機事務處理和決策、聯機分析處理能力。
3、關系DBMS發展趨勢:智能化、集成化,支持互聯網應用,產品系列化,支持擴展關系,保證安全性。
4、SQL Server 2000
體系結構:支持客戶機/服務器體系結構
(1)三部分組成:客戶機端組件、服務器端組件和通信服務組件。
(2)客戶機端組件:企業管理器、查詢分析器、數據傳輸服務DTS、客戶端網絡實用工具、聯機叢書。
(3)服務端組件:SQL服務器服務、SQL服務器代理、分布式事務協調服務、服務器網絡使用工具
通信組件:
(4)、SQL Server2000功能特點:1)充分的Web支持 2)高度可伸縮和可靠性 3)完善的數據庫功能
4)數據倉庫功能 5)易于使用和管理 6)網絡無關性
(5)、SQL數據庫組成:系統數據庫(Master(基本配置信息)、Model(用戶數據庫模版)、Tempdb(臨時表)、Msdb(調度和歷史作業)和用戶數據庫。
(6)SQL Server2000中常用數據庫對象:表、數據類型、約束、規則、視圖、索引、默認值、觸發器、存儲過程和用戶自定義函數。
SQL Server 2000多版本支持
SQL Server 2000提供了各種不同的版本,包括SQL Server 2000企業版、SQL Server 2000標準版、SQLServer 2000個人版、SQL Server 2000開發人員版,SQL Server 2000企業評估版,SQL Server 2000桌面引擎和SQL Server 2000 Windows CE版。
(7)從Internet訪問SQL Server2000數據庫:1)Windows2000和IIS作為Internet平臺 2)用ISAPI(Internet Server API函數調用集)訪問SQL Server 3)ASP(Active Server Pages服務端腳本)訪問SQL Server 4)XML(可擴展標記語言,交換數據和文件的標準)訪問SQL Server
5、Oracle數據庫系統
(1)目前比較新的版本為 Oracle 11g,Oracle最初被設計為關系數據庫管理系統,自版本8起,Oracle定位成一個對象-關系數據庫管理系統。
(2)Oracle體系結構
Oracle服務器由Oracle數據庫(Oracle Database)和Oracle實例(Oracle Instantce)組成。Oracle數據庫是存儲數據的集合,包括日志文件和控制文件。Oracle實例包括系統進程和該數據庫的所有用戶進程。
(3)Oracle數據庫結構
Oracle數據庫的邏輯結構由數據庫定義構成,涉及模式對象和多個表空間。
Oracle的表空間、段和盤區用于描述Oracle物理存儲結構的術語。
1)數據庫、表空間和數據文件的關系
表空間是邏輯存儲單元,有如下特性:
每個Oracle數據庫由被分成一個或多個表空間,分為一個SYSTEM表空間和至少一個用戶表空間。
每個表空間包括一個或多個數據文件,是一對多的關系。
一個Oracle數據庫總存儲容量是該數據庫所有表空間的存儲容量之和。
Oracle數據庫的物理存儲按數據塊、盤區和段來組織。Oracle使用以下四種類型段:數據段、索引段、臨時段和回滾段。
(5)Oracle實例
Oracle實例:由系統全局區(SGA)、用戶進程和Oracle進程(分為服務器進程和后臺進程)組成。
(6) Oracle數據庫服務器包括標準服務器和許多可選的服務器選件。標準服務器主要具有下列特色:多進程多線索的體系結構、高性能核心技術、高可用性和SQL的實現。
(7)Oracle的系統開發工具及其功能:
1)Developer/2000:包括Oracle Forms(快速基于屏幕的應用), Oracle Reports(快速生成報表),Oracle Graphics(快速生成圖形)和Oracle Books(生成聯機文檔)
2)Designer/2000:CASE工具,BPR、Modellers、Generators等組成。
3)Discoverer/2000:OLAP工具,主要用于支持數據倉庫應用。
4)Oracle Office和InterOffice,辦公自動化。
(8)Oracle的連接產品及功能:SQL*NET和NET8,客戶機與服務器的網絡通信產品。Oracle網關、Oracle數據裝載器。
(9)Oracle數據倉庫解決方案:服務端Oracle Express Server和客戶端Oracle Express Objects和Oracle Express Analyzer等
(10)Oracle的Internet解決方案:產品Oracle WebServer,由Oracle WebListener、Oracle WebAgent和Oracle 服務器三部分組成。
(11)Oracle的對象-關系特性(新增加的內容)
Oracle的核心是關系型數據庫,面向對象功能通過對關系功能擴充實現
引入抽象數據類型、對象視圖、可變數組(表示多值屬性)、嵌套表和大對象(BLOB(二進制大對象)、CLOB(字符型大對象)、BFILE(存儲在數據庫外的只讀二進制數據文件,數據庫中只存儲它的目錄名)和NCLOB(固定寬度多字節CLOB)及它們的復合使用來實現對象-關系型數據庫。(新增內容)
(12)SQL Server和Oracle的安全性共性
1)權限和授權
Oracle權限分為數據庫系統權限和數據庫對象權限,SQL Server權限分為服務器權限和數據庫權限,服務器權限只能授予DBA,數據庫權限分為數據庫語句權限和數據庫對象權限。數據庫語句權限對應Oracle數據庫系統權限,數據庫對象權限對應Oracle數據庫對象權限。
2)、角色(數據庫系統角色和用戶定義角色)3、用戶標識和身份認證(系統登錄、數據庫連接和數據庫對象訪問):MS SQL Server兩種驗證模式:Windows模式和混合模式。
4)、自主訪問控制(用訪問控制矩陣模型實現)
5)、審計(固定和選擇兩種方式,Oracle的三種審計類型:登錄審計、操作審計和對象審計)
6)、視圖、存儲過程和觸發器
第二部分 新一代數據庫系統工具
1、數據庫系統工具分類:數據庫管理工具(加載工具、備份工具、文件重組工具和性能監控工具等)和數據庫系統設計和開發工具(CASE工具、應用開發工具、通訊接口)。
4GL語言具有“面向問題”,“非過程化程度高”等特點,如PowerBuilder、Delphi、Visual Basic等。
瀏覽器/服務器開發面向Internet應用系統,主要工具有:ASP,JSP,PHP等。Web Service解決異構平臺互操作。
2、新一代數據庫系統工具的特征:支持與多種數據庫連接、支持獨立于特定的DBMS開發、支持可視化圖形用戶界面、支持面向對象的程序設計、擁有完善的數據對象、支持開放性、功能完備和集成化。
3、應用開發工其的發展趨勢:采用3層客戶/服務器結構、支持Web應用、開放的、構件式的分布式計算環境。
4、當前開發工具存在的問題:
(1)開發過程過于復雜,涉及過多低層技術實現。
(2)難于滿足要求穩定的大規模的企業級業務處理。
(3)難于快速適應低層技術的更新和業務邏輯變化。
5、基于瀏覽器/服務器結構軟件開發模式
(1)信息系統的層次結構劃分:分為表現層(界面)、應用邏輯層(應用處理邏輯)、數據邏輯層(數據存取),關鍵是應用邏輯層。
(2)瀏覽器/服務器模式可歸納為三種結構:以Web服務器為中心、以應用服務器為中心(主流軟件結構)、以數據庫服務器為中心。
Web服務器為中心的結構是早期Web數據庫應用開發最主要方式。應用邏輯在Web服務器擴展程序中(CGI,Web API接口),CGI公共網關接口,獨立進程在服務器運行,Web API動態加載到服務器進程執行,效率高
與傳統客戶機/服務器比較,有如下缺點:1)、用戶界面受HTML語言限制 2)、Web服務器負載過重
3)、HTTP協議效率低。
以應用服務器為中心的軟件結構把web技術與三層客戶機/服務器有機結合,是目前信息系統采用的主流軟件結構。
該軟件結構可分為四部分:客戶機、Web服務器、應用服務器、數據庫服務器
6、CASE工具
(1) PowerDesigner的6個模塊介紹如下:
I)PowerDesigner ProcessAnalyst。用于數據分析或數據發現,(產生數據字典、數據流程圖等)
2)PowerDesigner DataArchitect。概念層和物理層數據庫設計和數據庫構造。可生成多種數據庫管理系統的數據庫。
3)PowerDesigner AppModeler。物理建模和應用對象和敏感組件生成。
4)PowerDesigner MetaWorks。通過模型共享支持高級團隊開發。
5)PowerDesigner WarehouseArchitect。數據倉庫和數據集市的建模和實現
6)PowerDesigner Viewer。只讀、圖形化方式訪問整個企業模型信息
(2) Delphi支持數據庫開發四種技術:BDE、ADO、dbExpress、InterBase技術。
(3) PowerBuilder:
PowerBuilder10.0提供對J2EE和Microsoft .NET環境支持, 具有數據窗口(Data Window)”對象專利。為使用.NET開發工具的用戶提供了一套DataWindow.NET,為簡化應用開發設計,縮短了開發時間,降低對復雜數據處理及對SQL知識的要求。
(4)Microsoft .NET 開發工具:版本:Visual studio .NET 2003(支持. NET 1.1)、Visual studio .NET 2005(支持.NET2.0)、Visual studio .NET 2008(支持.NET3.5)
.NET的通用語言框架機制:CLR(Common Language Runtime):在同一項目中支持不同語言開發的組件。
Visual studio .NET 2008新增功能:
1、多定向技術:同一項目綁定多個.NET Framework版本
Visual studio .NET 2008是第一個允許開發人員針對多個.NET Framework版本開發的Visual Studio版本
2、HTML/CSS編輯器 實現Dreamwaver網頁編輯功能
3、AJAX和Javascript支持
4、ADO.NET改進(LINQ用來進行數據訪問的編程模型。提供對象到關系的映射)
5、Silverlight和XAML(跨平臺、跨瀏覽器的.NET插件,建造豐富的媒體體驗和RIA應用)。
6、拼寫檢查器:加入FXCop拼寫檢查器
7、數據庫發布向導
第三部分 數據庫技術的發展
1、數據庫技術的發展階段
(1)第一代數據庫系統是指層次模型數據庫系統(基于樹形結構)和網狀模型數據庫系統(基于有向圖結構)
(2)第二代數據庫系統指支持關系模型的關系數據庫系統(最先由E.F.Codd提出關系模型)。
(3) 面向對象的技術與數據庫技術相結合便產生了第三代數據庫系統。
2、數據庫系統體系結構
(1)集中式數據庫系統:數據庫的全部功能在一臺計算機上運行,不與其他計算機交互。
(2)并行數據庫系統:并行操作時,許多操作是同時執行的,通過并行地使用多個CPU來提高處理速度。
所有的處理器共享一個公共的主存儲器。并行機器的體系結構模式主要有:
1)共享內存。2)共享磁盤。3)無共享。4)層次模式。它是前幾種體系結構的混合。
并行數據庫物理存儲結構常用的劃分技術有輪轉法、散列分布和范圍分布。
(3)分布式數據庫系統
一個分布式數據庫系統是一個節點的集合,其中每一個節點是一個獨立的數據庫系統節點。
1)特點:每一個節點是一個獨立的數據庫系統節點
分布式數據庫系統必須看起來像非分布式系統
分布式數據庫系統的用戶的操作與非分布式系統完全相同
分布式系統的所有問題是內部的、實現級別的問題,而不是外部的、用戶級別的問題
2)分布式數據庫系統數據管理技術:
分布式數據庫系統的分片是全局的,分配是局部的,分片、分配和副本信息保存在全局目錄中
3)分布式查詢:可以基于半連接的操作
4)分布式系統的并發控制和恢復解決的問題:多個副本的一致性,分布式提交、分布式死鎖。分布式系統具有位置透明性、復制透明性和分片透明性
3、客戶機/服務器數據庫系統體系結構
客戶與服務器之間相連要滿足一系列的標準(ODBC開放數據庫互連標準和面向JAVA的標準JDBC)。
面向WEB應用的數據庫系統:客戶機、web server、數據庫服務器組成,三層體系結構
4、面向對象的數據庫系統
(1)面向對象的概念有:對象、屬性、方法、消息、封裝、類、繼承(子類對象擁有超類對象的全部屬性和方法)和多繼承等。
(2)對象涉及的概念:對象標識符OID唯一。
對象結構:三種基本類型構造器:原子、元組和集合,其他構造器:列表、包和數組。
(3)繼承:多重繼承(繼承多個超類成員)
復雜對象:結構化復雜對象和非結構化復雜對象。典型的非結構化復雜對象為位圖圖像和長文本串,BLOB 和字符串 CLOB。
(4)復雜的結構化對象存在兩種引用語義:屬主語義(is part of)和引用語義(is associate of)
5、對象一關系數據庫系統
ODMG(object data management group)定義的對象數據庫標準組成:對象模型、對象定義語言(ODL)、對象查詢語言OQL、面向對象語言綁定binding.
對象一關系數據庫系統:以關系模型為基礎,進行面向對象的擴充支持面型對象模型。
6、移動數據庫系統
移動數據庫是指支持移動計算環境的分布式數據庫(應用在掌上電腦、PDA、車載設備 移動電話等嵌入式設備中,也稱嵌入式移動數據庫系統)
移動環境的計算特征:高通信等待、不連續的連接、有限的電池壽命、客戶機位置變化等。
移動數據庫安全性保證:1)對終端進行認證 2)對無線通訊進行加密 3)對下載副本進行加密存儲
7、多媒體數據庫系統
存儲不同類型多媒體信息(圖像、視頻、音頻和文檔等
對多媒體數據庫的檢索稱為基于內容的檢索。識別多媒體內容的兩個方法:基于自動分析以識別多媒體內容的數學特征;手動建立索引以識別多媒體信息。
8、數據倉庫與數據挖掘
數據倉庫:面向主題的、集成的、非易變的、隨時間變化的數據集合,用以支持決策。
數據庫為事務處理服務。
數據倉庫的基本特征包括以下幾個方面:1)數據倉庫面向主題。2)數據集成。3)數據相對穩定。4)數據反映歷史變化。
數據集市是一種更小、更集中的數據倉庫,解決數據倉庫分析時間長,代價高的確定
數據集市不等于數據倉庫,數據集市的簡單合并不能成為數據倉庫
(1)數據倉庫數據模型
數據倉庫和OLAP操作基于多維數據模型。
多維數據模型概念:度量屬性(決策者關心的實際意義的數量)、維屬性(觀察數據的角度,如時間、地理等)、維的層次(年、月、日為時間維的層次,國家、地區、城市為地理維的層次)
多維數據:能夠模式化為維屬性和度量屬性的數據統稱為多維數據。多維數據構成了數據立方體。
多維存儲模型涉及兩類表:維表和事實表,常用的多維模式為星型(一個事實表和多個維表組成)和雪花型(將維表組織為層次結構)模式。
數據倉庫利用位圖索引實現高性能訪問。
(2)數據倉庫的體系結構
數據倉庫系統組成:數據倉庫(DW)、倉庫管理和分析工具(查詢工具和挖掘工具)。元數據是數據倉庫的核心。
三層客戶機/服務器結構:數據倉庫服務器、OLAP(聯機分析服務器,包括關系OLAP(ROLAP),多維OLAP(MOLAP))和客戶端。
(3)聯機分析:切片、切塊、鉆取(向下鉆取(取得細節數據),向上鉆取(取得綜合數據))和旋轉(行列交換)等。
(4)數據挖掘
知識發現識別數據庫中以前不知道的、新穎的、潛在有用的和最終可被理解的模式的非平凡過程。數據挖掘是知識發現的核心工作和步驟。
知識發現(KDD)過程:數據準備、數據挖掘以及結果的解釋和評估。
可視化技術在數據挖掘過程中扮演了重要的作用。
數據挖掘常用的方法包括以下幾個方面:
(1)關聯規則挖掘(支持度:規則代表的事例占全體事例的比例;可信度:規則代表的事例占前提條件事例的比例)。
(2)分類。 (3)聚類分析。(4)預測。(5)優化
WEB挖掘:從WWW的資源和行為中抽取感興趣的、有用的模式和隱含的信息。可分為三類:Web內容挖掘(從文檔內容或文檔描述中抽取知識的過程)、Web結構挖掘(從WWW的組織結構和鏈接關系中挖掘知識,發現重要頁面,對頁面排序)和Web使用記錄挖掘(從Web的訪問記錄中抽取感興趣的模式,提供個性化服務)。
總結
以上是生活随笔為你收集整理的三级数据库笔记(完整)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “约见”面试官系列之常见面试题之第五十八
- 下一篇: 三级数据库技术思维导图