概念:數(shù)據(jù)庫(DB,Database):批量組織存儲和操作數(shù)據(jù)的倉庫。數(shù)據(jù)倉庫是數(shù)據(jù)庫領(lǐng)域中的基本名詞,這里指是它常規(guī)意義上的含義
數(shù)據(jù)庫管理系統(tǒng)(DBMS,Database Management System):在數(shù)據(jù)庫軟件中起到組織管理數(shù)據(jù)的軟件模塊
數(shù)據(jù)庫管理員(DBA,Database Administrator):操縱數(shù)據(jù)庫的管理和維護(hù)人員
數(shù)據(jù)庫系統(tǒng)(DBS,Database System):基于數(shù)據(jù)庫的應(yīng)用系統(tǒng)或軟件系統(tǒng),相對來說出現(xiàn)的頻率要低一些
關(guān)系型數(shù)據(jù)庫(RDB,Relationship Database):基于關(guān)系模型而建立或組織起來的數(shù)據(jù)庫
關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS):它是目前數(shù)據(jù)庫的主流形式
SQL語言:即Structured Query Language,結(jié)構(gòu)化查詢語言。常用SQL指令有SELECT、INSERT、DELETE、UPDATE、CREATE、DROP
SQL是使用關(guān)系模型的數(shù)據(jù)庫語言,用于和各類數(shù)據(jù)庫的交互,提供通用的數(shù)據(jù)管理和查詢功能
SQL分類:數(shù)據(jù)定義語言(DDL,Data Definition Language):如Create、Alter、Drop、Truncate
數(shù)據(jù)操縱語言(DML,Data Manipulation Language):如Insert、Update、Delete、Merge
數(shù)據(jù)控制語言(DCL,Data Control Language):如Grant、Revoke
其它語言要素(Additional Language Elements):如事務(wù)控制語句:Commit、Rollback、Savepoint
SQL說明:其中Select是最頻繁也是最常用的。DBA可以使用DCL進(jìn)行數(shù)據(jù)庫的管理,而應(yīng)用開發(fā)人員幾乎用不到它
數(shù)據(jù)庫簡述
管理:第一階段:手工管理階段:數(shù)據(jù)不保存。數(shù)據(jù)由應(yīng)用程序管理,編寫程序要考慮數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)面向程序,不共享。數(shù)據(jù)不具有獨(dú)立性,隨其邏輯結(jié)構(gòu)和物理結(jié)構(gòu)而變化
第二階段:文件管理階段:數(shù)據(jù)共享性差。數(shù)據(jù)以文件形式長期存在
第三階段:數(shù)據(jù)庫管理階段:有利于實(shí)現(xiàn)數(shù)據(jù)共享。數(shù)據(jù)面向應(yīng)用,而非面向程序
歷程:第一代:非關(guān)系型數(shù)據(jù)庫系統(tǒng):上世紀(jì)60年代末問世,包括層次性和網(wǎng)狀型
第二代:關(guān)系型數(shù)據(jù)庫系統(tǒng)(RDBS):上世紀(jì)70年代中期問世。Oracle就是RDBS的代表
第三代:對象—關(guān)系數(shù)據(jù)庫系統(tǒng)(ORDBS、OODBS):上世紀(jì)80年代中期至今。也稱為面向?qū)ο蟮臄?shù)據(jù)庫系統(tǒng),它力圖以對象的形式
或者說以對象為單位進(jìn)行數(shù)據(jù)的存儲和操縱。至目前為止,它還沒有推出成熟的產(chǎn)品
分類:網(wǎng)狀型數(shù)據(jù)庫:采用以記錄類型為結(jié)點(diǎn)的網(wǎng)狀數(shù)據(jù)模型。對于這種錯(cuò)綜復(fù)雜的交織在一起的網(wǎng)而言,在進(jìn)行數(shù)據(jù)檢索的時(shí)候是非常不方便的
層次型數(shù)據(jù)庫:采用層次模型模擬現(xiàn)實(shí)世界中按層次組織起來的事物
關(guān)系型數(shù)據(jù)庫:采用二維表結(jié)構(gòu)儲存與管理數(shù)據(jù),并規(guī)定了表內(nèi)和表間數(shù)據(jù)的依存關(guān)系。當(dāng)前業(yè)界所用的主流數(shù)據(jù)庫幾乎都是關(guān)系型數(shù)據(jù)庫
當(dāng)前流行的關(guān)系型數(shù)據(jù)庫:Oracle(可算是業(yè)界第一名)、IBMDB2、SQL Server、SyBase、Informix(它的公司已被IBM收購)等
關(guān)系型數(shù)據(jù)庫采用結(jié)構(gòu)化查詢語言(SQL)作為客戶端程序與數(shù)據(jù)庫服務(wù)器間溝通的橋梁
數(shù)據(jù)建模
概念:要將現(xiàn)實(shí)世界中客觀存在的事物以數(shù)據(jù)的形式存儲到計(jì)算機(jī)中并進(jìn)行處理,就需要對其進(jìn)行分析、抽象進(jìn)而確定數(shù)據(jù)的結(jié)構(gòu)以及數(shù)據(jù)間的內(nèi)在聯(lián)系,這一過程稱為數(shù)據(jù)建模
要求:能夠比較真實(shí)地模擬現(xiàn)實(shí)世界,容易為人所理解,便于計(jì)算機(jī)實(shí)現(xiàn)
要素:數(shù)據(jù)結(jié)構(gòu):描述事物的靜態(tài)特性
數(shù)據(jù)操作:描述事物的動(dòng)態(tài)特性
完整性約束:描述事物內(nèi)部和事物間的約束性關(guān)系
續(xù)一:現(xiàn)實(shí)世界:事物以及事物間的聯(lián)系是客觀存在的
概念世界:是人們對現(xiàn)實(shí)世界中客觀事物及其聯(lián)系的認(rèn)識和抽象
概念世界中按用戶的觀點(diǎn)對現(xiàn)實(shí)世界建模,所得到的“概念數(shù)據(jù)模型”不依賴具體的計(jì)算機(jī)系統(tǒng)和DBMS
機(jī)器世界:按計(jì)算機(jī)的觀點(diǎn)對概念世界中的事物(實(shí)體及實(shí)體間的聯(lián)系)進(jìn)一步建模,將之抽象/轉(zhuǎn)換為與計(jì)算機(jī)/DBMS相關(guān)的“物理數(shù)據(jù)模型”
續(xù)二:概念數(shù)據(jù)模型(CDM,Conceptual Database Model):主要用于數(shù)據(jù)庫的概念設(shè)計(jì)
CDM以實(shí)體—關(guān)系(E—R)模型為基礎(chǔ),將現(xiàn)實(shí)世界中的客觀對象抽象為實(shí)體和關(guān)系
在機(jī)器世界中,CDM將被轉(zhuǎn)換為特定DBMS所支持的物理數(shù)據(jù)模型(PDM,Physical Database Model)
相關(guān)術(shù)語:實(shí)體(Entity):客觀存在并且可以相互區(qū)分開來的事物
實(shí)體集(Entity Set):同一類實(shí)體的集合。通常將實(shí)體和實(shí)體集混用,籠統(tǒng)稱為實(shí)體。一般很少強(qiáng)調(diào)實(shí)體集的概念
屬性(Attribute):描述實(shí)體的特性
關(guān)系(Relationship):實(shí)體集之間的對應(yīng)關(guān)系(現(xiàn)實(shí)世界事物之間的相互關(guān)聯(lián))
實(shí)體—關(guān)系模型(E—R Model,Entity-Relationship Model)
E—R模型:也稱為E—R方法,它是由P.P.S.Chen(陳姓美籍華人)于1976年提出,該方法使用E—R圖來描述現(xiàn)實(shí)世界的概念模型
在E—R模型中,現(xiàn)實(shí)世界是由一切稱為實(shí)體的對象和這些對象之間的關(guān)系組成。它的三要素:實(shí)體、關(guān)系、屬性
E—R圖:即Entity—Relationship Diagram,是描述概念世界,建立概念模型的實(shí)用工具
E—R圖三要素:實(shí)體:用矩形框表示
屬性:用橢圓形表示,并用連線與實(shí)體連在一起
實(shí)體間聯(lián)系:用菱形框表示,并用連線分別與相關(guān)實(shí)體相連,且需在連線上注明聯(lián)系類型
實(shí)體間聯(lián)系的類型分為三種,即一對一關(guān)系(1:1)、一對多關(guān)系(1:n)、多對多關(guān)系(m:n)
關(guān)系型數(shù)據(jù)庫基本術(shù)語
術(shù)語:關(guān)系:整個(gè)二維表
關(guān)系名:表格名稱
元祖:行數(shù)據(jù)(記錄)
屬性:列數(shù)據(jù)(字段/分量)
屬性名:列名稱(字段名)
主鍵:唯一確定元祖的屬性組(關(guān)鍵字)
域:屬性的取值范圍
關(guān)系模式:關(guān)系名(屬性列表)。如:學(xué)生(學(xué)號,姓名,性別,電話)
約束:域完整性約束:又稱列完整性。對某一個(gè)字段或某一個(gè)屬性的取值的約束
實(shí)體完整性約束:又稱行完整性。要求表中每一行有一個(gè)唯一的標(biāo)志符,這個(gè)標(biāo)志符就是主關(guān)鍵字
參照完整性約束:又稱引用完整性。它指的是多表之間的參照性,即保證主表中的數(shù)據(jù)與從表中的數(shù)據(jù)的一致性
Oracle【甲骨文】
公司:1977年,6月創(chuàng)辦SDL,Software Development Laboratories
1979年,SDL更名為RSI,Relational Software Inc
1983年,RSI更名為ORACLE
SCOTT是Oracle公司除了兩個(gè)創(chuàng)始人之外的第一個(gè)正式的雇員
現(xiàn)為全球最大數(shù)據(jù)庫軟件及服務(wù)供應(yīng)商、全球第二大軟件供應(yīng)商(第一是微軟)
Oracle目前在業(yè)界是當(dāng)之無愧的第一名,它在國內(nèi)行業(yè)占有份額也超過了50%
緊隨其后的是IBM的DB2、SyBase公司的SyBase和微軟的SQL Server等等,另外MySql的應(yīng)用也比較廣泛
數(shù)據(jù)庫:全球化、跨平臺的數(shù)據(jù)庫。Oracle遵守?cái)?shù)據(jù)存取語言、操作系統(tǒng)、用戶接口和網(wǎng)絡(luò)通信協(xié)議的工業(yè)標(biāo)準(zhǔn)
支持多用戶、高性能的事務(wù)處理。強(qiáng)大的安全性控制和完整性控制。支持分布式數(shù)據(jù)庫和分布處理
目前最新的版本是11g,g是grid網(wǎng)格。即支持網(wǎng)格計(jì)算,支持?jǐn)?shù)據(jù)庫的集權(quán)化運(yùn)行
當(dāng)前業(yè)界應(yīng)用的主流是Oracle9i,i是integrated集成。它集成了客戶端和服務(wù)器端以及其它工具
更多信息請查看IT技術(shù)專欄