數(shù)據(jù)庫技術(shù)與應(yīng)用課件_第1頁
數(shù)據(jù)庫技術(shù)與應(yīng)用課件_第2頁
數(shù)據(jù)庫技術(shù)與應(yīng)用課件_第3頁
數(shù)據(jù)庫技術(shù)與應(yīng)用課件_第4頁
數(shù)據(jù)庫技術(shù)與應(yīng)用課件_第5頁
已閱讀5頁,還剩327頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

Web資料庫應(yīng)用

2.1關(guān)係資料庫

關(guān)係資料庫系統(tǒng)是支持關(guān)係模型的資料庫系統(tǒng)。關(guān)係模型由關(guān)係數(shù)據(jù)結(jié)構(gòu)、關(guān)係操作集合和關(guān)係完整性約束三部分組成。

關(guān)係資料庫是表的集合,資料庫中的表,數(shù)學(xué)家稱為關(guān)係。關(guān)係資料庫中還定義了關(guān)係操作和完整性約束,關(guān)係操作就是對表中的數(shù)據(jù)的處理、查詢,完整性約束就是表中的數(shù)據(jù)要滿足的條件,這些條件由資料庫系統(tǒng)自動維護,產(chǎn)生違反這些約束條件的對數(shù)據(jù)的操作會被拒絕執(zhí)行。

2.1.1關(guān)係數(shù)據(jù)結(jié)構(gòu)

在關(guān)係模型中,無論是實體還是實體之間的聯(lián)繫均由單一的結(jié)構(gòu)即關(guān)係(表)來表示。關(guān)係模型是建立在集合代數(shù)的基礎(chǔ)上的。

1關(guān)係的定義在用戶觀點下,關(guān)係模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。二維表的每一列稱為屬性。每個屬性有一個取值範(fàn)圍,稱為值域。每個屬性對應(yīng)一個值域。下麵是二維表的一個實例。

學(xué)號姓名性別1張三男2李四男2關(guān)係中的基本名詞(1)關(guān)鍵字能唯一標(biāo)識一行記錄或元組的一個或一組屬性。(2)候選關(guān)鍵字(Candidatekey)和主關(guān)鍵字(Primarykey)能作為關(guān)鍵字的屬性可能有很多,這些屬性稱為候選關(guān)鍵字。為數(shù)據(jù)管理方便,若一個關(guān)係有多個候選關(guān)鍵字時,指定其中一個為主關(guān)鍵字。(3)主屬性(PrimaryAttribute)和非主屬性(Non-keyAttribute)候選關(guān)鍵字中的屬性為主屬性。不包含在任何候選關(guān)鍵字中的屬性為非主屬性。3資料庫中關(guān)係的類型關(guān)係可以有三種類型:基本關(guān)係(通常稱為基本表或基表)查詢表和視圖表。

(1)基本表基本表是關(guān)係資料庫中實際存在的表,它是實際存儲數(shù)據(jù)的邏輯表。

(2)查詢表它是從基本表中查詢得到的,一般是臨時表。

(3)視圖表視圖表是由基本表或其他視圖表導(dǎo)出的表,它是為數(shù)據(jù)處理方便以及數(shù)據(jù)安全要求而設(shè)計的虛表,它一般是不存儲數(shù)據(jù)的,而只是存儲提取數(shù)據(jù)的條件,它的數(shù)據(jù)依賴於基本表。

4基本關(guān)係的性質(zhì)基本關(guān)係具有如下六條性質(zhì):(1)列是同性質(zhì)的,即同一列中的分量是同一類型的數(shù)據(jù)。(2)關(guān)係中的列又稱為屬性,並賦予屬性名。不同列的屬性名不同。不同列可以取相同的數(shù)據(jù)類型。(3)列的次序可以任意交換。(4)任意兩個元組不能完全相同。(5)行的次序可以任意交換。(6)列具有原子性,即每一列值是不可分的資料項目5關(guān)係模式關(guān)係模式是對關(guān)係的描述,可以理解為表的結(jié)構(gòu)定義。關(guān)係實際上就是關(guān)係模式在某一時刻的狀態(tài)或內(nèi)容。也就是說,關(guān)係模式是型,關(guān)係是它的值。

6關(guān)係資料庫在關(guān)係模型中,實體以及實體間的聯(lián)繫都是用關(guān)係來表示。在一個給定應(yīng)用中,所有實體及實體之間聯(lián)繫的集合構(gòu)成一個關(guān)係資料庫。關(guān)係資料庫也有型和值之分。

2.1.2關(guān)係操作

關(guān)係模型給出了關(guān)係操作的能力,但不對具體的RDBMS給出具體的語法要求。關(guān)係操作語言靈活方便,表達能力和功能強大。關(guān)係模型的數(shù)據(jù)操作採用集合操作方式,即操作對象和結(jié)果都是集合。關(guān)係模型中常用的關(guān)係操作包括數(shù)據(jù)查詢、數(shù)據(jù)維護和數(shù)據(jù)控制三大功能。數(shù)據(jù)查詢指數(shù)據(jù)檢索、統(tǒng)計、排序等功能;數(shù)據(jù)維護指數(shù)據(jù)的增加、刪除、修改等數(shù)據(jù)的更新功能;數(shù)據(jù)控制是為了保證數(shù)據(jù)的安全性和完整性而採用的數(shù)據(jù)存儲控制及併發(fā)控制等功能。

2.1.3關(guān)係的完整性

1實體完整性現(xiàn)實世界中的實體是可區(qū)分的,即它們具有某種唯一性標(biāo)識。相應(yīng)地,關(guān)係模型中以主鍵(主關(guān)鍵字)作為唯一性標(biāo)識。主鍵中的屬性即主屬性不能取空值。所謂空值就是“不知道”或“無意義”的值。2參照完整性現(xiàn)實世界中的實體之間往往存在某種聯(lián)繫,在關(guān)係模型中實體及實體間的聯(lián)繫都是用關(guān)係來描述的。這樣就自然存在著關(guān)係與關(guān)係間的引用。

3.用戶定義的完整性

用戶定義的完整性是針對某一具體關(guān)係資料庫的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。例如:某個屬性的取值不能為空,學(xué)生考試的成績?nèi)≈倒?fàn)圍在0到100之間。

2.2

SQL語言

SQL全稱是“StructuredQueryLanguage”,即結(jié)構(gòu)化查詢語言,它目前是關(guān)係資料庫的標(biāo)準(zhǔn)語言,它是在1974年由Boyce和Chamberlin提出的。經(jīng)過不斷修改、擴充和完善,SQL語言最終發(fā)展成為關(guān)係資料庫的標(biāo)準(zhǔn)語言。由於它功能豐富、語言簡潔、易學(xué)易用,所以深受用戶和電腦工業(yè)界的歡迎,被各電腦公司和軟體公司廣泛採用。

SQL標(biāo)準(zhǔn)的影響超出了資料庫領(lǐng)域,SQL成為國際標(biāo)準(zhǔn)後,它在資料庫以外的其他領(lǐng)域也得到了重視和採用。在未來一段相當(dāng)長的時間,SQL將是資料庫語言領(lǐng)域中的一個主流語言。

2.2.1SQL概述及特點

1.SQL概述

SQL是一種結(jié)構(gòu)化查詢語言,其功能並不象名稱所顯示的那樣僅僅是查詢,而是一個通用的、功能強大的關(guān)係資料庫語言。SQL從主要功能上可以分為4個部分:數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱和數(shù)據(jù)控制。它是一個綜合的、通用的關(guān)係資料庫查詢語言。它的特點如下:

(1)功能一體化

(2)高度非過程化

(3)以同一種語法結(jié)構(gòu)提供兩種使用方式

(4)語言簡潔,易學(xué)易用

2.SQL語言的基本概念

SQL支持三級模式結(jié)構(gòu),外模式對應(yīng)於視圖和部分基本表,模式對應(yīng)於基本表,內(nèi)模式對應(yīng)於存儲檔?;颈硎仟毩⒋嬖诘谋恚粋€關(guān)係就是一個表?;颈硎前磾?shù)據(jù)全局邏輯模式建立的。全體基本表構(gòu)成了資料庫的模式。一個SQL模式(Schema)是表和約束的集合。視圖是從基本表或其他視圖中導(dǎo)出的表,它本身不獨立存儲在資料庫中,也就是說資料庫中只存放視圖的定義而不存放視圖的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中。因此,視圖是一個虛表。2.2.2SQL數(shù)據(jù)定義

SQL的數(shù)據(jù)定義功能包括定義表、定義視圖、定義索引和定義資料庫。SQL的數(shù)據(jù)定義語句見下表。操作對象創(chuàng)建語句刪除語句修改語句基本表CREATETABLEDROPTABLEALTERTABLE索引CREATEINDEXDROPINDEXALTERINDEX視圖CREATEVIEWDROPVIEWALTERVIEW資料庫CREATEDATABASEDROPDATABASEALTERDATABASE

1.基本表的定義和維護

SQL基本表的定義和維護功能包括表的定義、修改和刪除。(1)定義基本表(CREATETABLE)

[例2-2]建立一個“學(xué)生”表,它由學(xué)號、姓名、性別、年齡、所在系五個屬性組成,年齡是整型數(shù)據(jù),其他為字元型。

CREATETABLE學(xué)生(學(xué)號CHAR(5),

姓名CHAR(20),

年齡INT,

性別CHAR(2),

所在系CHAR(20),

)(2)修改基本表(ALTERTABLE)

[例2-6]刪除“學(xué)生”表中“入學(xué)時間”列。

ALTERTABLE學(xué)生

DROPCOLUMN入學(xué)時間;

(3)

刪除基本表

[例2-7]刪除學(xué)生表

DROPTABLE學(xué)生

2.索引的定義和維護當(dāng)你閱讀一本厚書時,如果你想快速找到特定的內(nèi)容,你就需要查看目錄,找到你所關(guān)心的內(nèi)容在書中的準(zhǔn)確位置——頁碼,然後直接翻到這個位置。索引對於表,就相當(dāng)於書的目錄。索引可以提高數(shù)據(jù)查詢速度??梢詫︻l繁查詢的表增加索引。只有按有索引的列查詢,索引才有作用。

(1)建立索引(CREATEINDEX)

[例2-8]為學(xué)生表建立索引,按學(xué)號昇冪建唯一索引。

CREATEUNIQUEINDEXStusnoON學(xué)生

(學(xué)號)(2)刪除索引(DROPINDEX)

[例2-9]DROPINDEX學(xué)生.Stusno2.2.3SQL數(shù)據(jù)查詢

資料庫查詢是資料庫的核心操作,查詢就是從資料庫中挑選、提取所需要的數(shù)據(jù)。SQL提供了SELECT語句進行資料庫的查詢,該語句使用方式靈活、功能強大。

SELECT語句的語法格式為:SELECT[ALL|DISTINCT]<目標(biāo)列表達式>[,<目標(biāo)列表達式>]...FROM<表名或視圖名>[,<表名或視圖名>]...[WHERE<行選擇條件>][GROUPBY<列名1>[HAVING<組選擇條件>]][ORDERBY<列名2>[ASC|DESC]];

1.簡單查詢簡單查詢是指從一個表中進行查詢,也叫單表查詢。如選擇一個表中的某些列、某些行。(1)查詢指定列[例2-10]查詢?nèi)w學(xué)生的姓名與學(xué)號。學(xué)生表中有很多列:學(xué)號,姓名,年齡,性別,所在系,而下列語句只選擇學(xué)號和姓名兩列,即查詢的結(jié)果是一個只包含兩列的新關(guān)係。

SELECT學(xué)號,姓名

FROM學(xué)生;(2)查詢?nèi)苛衃例2-11]查詢學(xué)生表的全部列:

SELECT*FROM學(xué)生也可以寫為:

SELECT學(xué)號,姓名,年齡,性別,所在系(3)查詢經(jīng)過計算的值

SELECT子句可以包含運算式,運算對象可以是常量或?qū)傩?。[例2-12]查詢5年之後學(xué)生的年齡。假如資料庫中學(xué)生的年齡是今年的年齡。

SELECT學(xué)號,姓名,年齡+5FROM學(xué)生(4)消除取值重複的行一個表中兩個本來不完全相同的行,選擇部分列後,可能完全相同了。[例2-13]查詢選修了課程的學(xué)號。

SELECT學(xué)號

FROM選課如果要去掉重複行,必須指定短語DISTINCT:

SELECTDISTINCT學(xué)號

FROM選課取消了重複行,結(jié)果就是選了課的學(xué)生學(xué)號。(5)查詢滿足條件的行

WHERE子句通過條件運算式描述表中行的選擇條件。DBMS系統(tǒng)根據(jù)選擇條件掃描表中的每一行,把不符合條件的行篩選掉。WHERE子句常用的查詢條件,如下表所示:查詢條件常用謂詞比較=,>,<,>=,<=,<>,!>,!<;NOT+上述比較運算符確定範(fàn)圍BETWEENAND,NOTBETWEENAND確定集合IN,NOTIN字元匹配LIKE,NOTLIKE空值ISNULL,ISNOTNULL多重條件AND,OR①比較[例2-14]查詢資訊系學(xué)生的名單

SELECT姓名

FROM學(xué)生

WHERE所在系='資訊系'[例2-15]查詢所有20歲以下的學(xué)生姓名和年齡

SELECT姓名,年齡

FROM學(xué)生

WHERE年齡<20[例2-16]查詢有成績不及格的學(xué)生的學(xué)號

SELECTDISTINCT學(xué)號

FROM選課

WHERE成績<60②

確定範(fàn)圍[例2-17]查詢年齡在20到23歲(包括20和23)之間的學(xué)生姓名、年齡、所在系。

SELECT姓名,年齡,所在系

FROM學(xué)生

WHERE年齡BETWEEN20AND23③

確定集合[例2-18]查詢數(shù)學(xué)系或化學(xué)系學(xué)生的姓名、性別、所在系。

SELECT姓名,性別,所在系

FROM學(xué)生

WHERE所在系

IN('數(shù)學(xué)系','化學(xué)系')④字串的匹配。[例2-19]查詢姓劉的學(xué)生的姓名、性別、所在系。

SELECT姓名,性別,所在系

FROM學(xué)生

WHERE姓名LIKE'劉%'⑤

涉及空值的查詢[例2-22]查詢選修了課程而沒參加考試的學(xué)生名單及課程號。

SELECT學(xué)號,課程號

FROM選課

WHERE成績ISNULL⑥

多重條件查詢?nèi)绻樵儣l件多於兩個,則要使用邏輯運算符AND和OR連接多個條件,AND的優(yōu)先順序高於OR,但可使用括弧改變運算順序。[例2-23]查詢電腦系姓趙的學(xué)生。

SELECT姓名

FROM學(xué)生

WHERE所在系='電腦系'AND姓名

LIKE'趙%'(6)對查詢結(jié)果排序如果沒有指定查詢結(jié)果的顯示順序,DBMS通常按其數(shù)據(jù)錄入的先後順序(物理存儲順序)輸出查詢結(jié)果。用戶也可以用ORDERBY子句指定按照一個或多個屬性列的昇冪(ASC)或降序(DESC)重新排列查詢結(jié)果,其中昇冪ASC為缺省值。[例2-24]查詢選修了3號課程的學(xué)生的學(xué)號及其成績,查詢結(jié)果按成績的降序排列。

SELECT學(xué)號,成績

FROM選課

WHERE課程號='3'ORDERBY成績DESC(7)使用集合函數(shù)為了進一步方便用戶,增強檢索功能,SQL提供了許多集函數(shù),常用的集函數(shù)見下表。函數(shù)名意義COUNT([DISTINCT|ALL]*)統(tǒng)計記錄個數(shù)COUNT([DISTINCT|ALL]列名)統(tǒng)計一列中值的個數(shù)SUM([DISTINCT|ALL]列名)計算一列值的總和(此列必須是數(shù)值型)AVG([DISTINCT|ALL]列名)計算一列值的平均值(此列必須是數(shù)值型)MAX([DISTINCT|ALL]列名)求一列值中的最大值MIN([DISTINCT|ALL]列名)求一列值中的最大值[例2-25]查詢學(xué)生總?cè)藬?shù)。

SELECTCOUNT(*)

FROM學(xué)生[例2-26]查詢選修了課程的學(xué)生人數(shù)。

SELECTCOUNT(DISTINCT學(xué)號)

FROM選課學(xué)生每選修一門課,在選課中都有一條相應(yīng)的記錄,而一個學(xué)生一般都要選修多門課,為避免重複計算學(xué)生人數(shù),必須在COUNT函數(shù)中用DISTINCT限定詞。(8)對查詢結(jié)果分組

GROUPBY子句可以將查詢結(jié)果表的各行按一列或多列的值分組,值相等的為一組。對查詢結(jié)果分組的目的是為了細(xì)化集函數(shù)的作用對象。如果未對查詢結(jié)果分組,集函數(shù)將作用於整個查詢結(jié)果,即整個查詢結(jié)果只有一個函數(shù)值,如上面的例題,否則,集函數(shù)將作用於每一個組,即每一組都有一個函數(shù)值。[例2-28]查詢各個課程號與相應(yīng)的選課人數(shù)。

SELECT課程號,COUNT(學(xué)號)

FROM選課

GROUPBY課程號該SELECT語句對課程表按課程號的取值進行分組,所有具有相同課程號的行為一組,然後對每一組作用集函數(shù)COUNT以求得該組的學(xué)生人數(shù)。2.連接查詢一個資料庫中的多個表之間一般都存在某種內(nèi)在聯(lián)繫,它們共同提供有用的資訊。前面的查詢都是針對一個表進行的。若一個查詢同時涉及兩個以上的表,則稱之為連接查詢。連接查詢實際上是關(guān)係資料庫中最主要的查詢,主要包括等值連接查詢、非等值連接查詢、自身連接查詢、外連接查詢和複合條件連接查詢。[例2-31]查詢每個學(xué)生及其選修課程的情況。學(xué)生選課情況存放在選課表中,所以本查詢實際上同時涉及學(xué)生表和選課表兩個表中的數(shù)據(jù)。這兩個表之間的聯(lián)繫是通過兩個表都具有的公共屬性學(xué)號實現(xiàn)的。要查詢學(xué)生及其選修課程的情況.就必須將這兩個表中學(xué)號相同的元組連接起來。這是一個等值連接。完成本查詢的SQL語句為:

SELECT學(xué)生.*,選課.*FROM學(xué)生,選課

WHERE學(xué)生.學(xué)號=選課.學(xué)號3.嵌套查詢在SQL語言中,一個SELECT—FROM—WHERE語句稱為一個查詢塊。將一個查詢塊嵌套在另一個查詢塊的WHERE子句或HAVING短語的條件中的查詢稱為嵌套查詢或子查詢。在嵌套查詢中,上層的查詢塊又稱為外層查詢或父查詢或主查詢,下層查詢塊又稱為內(nèi)層查詢或子查詢。SQL語言允許多層嵌套查詢。即一個子查詢中還可以嵌套其他子查詢。

嵌套查詢使得可以用一系列簡單查詢構(gòu)成複雜的查詢,從而明顯地增強了SQL的查詢能力。(1)帶有IN謂詞的子查詢帶有IN渭詞的子查詢是指父查詢與子查詢之間用IN進行連接,判斷某個屬性列值是否在子查詢的結(jié)果中。由於在嵌套查詢中,子查詢的結(jié)果往往是一個集合,所以謂詞IN是嵌套查詢中最經(jīng)常使用的謂詞。[例2-32]查詢選修了“數(shù)學(xué)”課的學(xué)生姓名。學(xué)生名和課程名分別在“學(xué)生”和“課程”表中,因此不能通過簡單的查詢一個表而得到結(jié)果。實際上連接學(xué)生和課程的是“選課”表,因此這個查詢涉及到三個表:學(xué)生、課程、選課。查詢步驟如下:

在課程表中查詢“數(shù)學(xué)”課的課程號。

在選課表中找到選修了上一步得到的課程號的課程的學(xué)生學(xué)號。

在學(xué)生表中找到學(xué)號包含在上一步所得到的學(xué)號集合中的學(xué)生姓名。

SELECT學(xué)號,姓名

FROM學(xué)生

WHERE學(xué)號IN(SELECT學(xué)號

FROM 選課

WHERE課程號IN(SELECT課程號

FROM課程

WHERE課程='數(shù)學(xué)'))

(2)帶有比較運算符的子查詢帶有比較運算符的子查詢是指父查詢與子查詢之間用比較運算符進行連接。當(dāng)用戶能確切知道內(nèi)層查詢返回的是單值時,可以用>、<、=、>=、<=、2=或<>等比較運算符。[例2-33]查詢與“劉剛”同一個系的學(xué)生。這個查詢分兩步:

首先在學(xué)生表找到“劉剛”所在的系。

然後在學(xué)生表中查詢所在系與上一不的查詢結(jié)果相等的學(xué)生名單。SELECT姓名FROM學(xué)生WHERE所在系=(SELECT所在系

FROM學(xué)生

WHERE姓名='劉剛')

2.2.4SQL數(shù)據(jù)操縱

在對數(shù)據(jù)庫進行操作時,除了經(jīng)常查詢資料庫外,還要更新數(shù)據(jù)。SQL中數(shù)據(jù)更新包括插入數(shù)據(jù)(INSERT)、修改數(shù)據(jù)(UPDATE)和刪除數(shù)據(jù)(DELETE)三條語句。插入語句(INSERTINTO

)[例2-34]將一個新學(xué)生記錄(學(xué)號:95005;姓名:陳??;性別:男;所在系:電腦;年齡:18歲)插入學(xué)生表中。

INSERTINTO學(xué)生

VALUES("95020","陳俊","男",18,"電腦系");

2.刪除語句(DELETE)[例2-35]刪除學(xué)號為95001的學(xué)生記錄。

DELETEFROM學(xué)生

WHERE學(xué)號='95001';3.修改語句(UPDATE

)[例2-36]將學(xué)號為95001的學(xué)生年齡改為22歲。

UPDATE學(xué)生

SET年齡=22WHERE學(xué)號='95001'

2.2.5SQL數(shù)據(jù)控制

這裏所討論的數(shù)據(jù)控制主要是指SQL語言的安全性控制功能,通過對數(shù)據(jù)庫用戶的使用權(quán)限加以限制而保證數(shù)據(jù)安全的重要措施。SQL語言的的數(shù)據(jù)控制語句包括授權(quán)(Grant)、收權(quán)或刪除許可權(quán)(Revoke)、拒絕訪問(Deny)三種,許可權(quán)的設(shè)置對象可以是資料庫用戶或用戶組。授權(quán)

[例2-37]將查詢成績的許可權(quán)授予所有人。

GRANTSELECTONTABLE成績TOPUBLIC2.收權(quán)語句資料庫管理員DBA、資料庫擁有者DBO或資料庫對象的擁有者DBOO可以通過REVOKE語句將其他用戶的數(shù)據(jù)操作許可權(quán)收回。

[例2-38]將用戶wp修改學(xué)生學(xué)號的許可權(quán)收回。

REVOKEUPDATE(學(xué)號)

ON學(xué)生

FROMwp2.3關(guān)係數(shù)據(jù)理論

針對一個具體的問題,應(yīng)該如何構(gòu)造一個適合於它的數(shù)據(jù)模式。這是資料庫設(shè)計問題,確切地講是資料庫邏輯設(shè)計問題。關(guān)係模型有嚴(yán)格的數(shù)學(xué)理論基礎(chǔ),基於這種理論上的優(yōu)勢,關(guān)係模型可以設(shè)計的更加科學(xué),關(guān)係資料庫中的問題可以更好地解決。關(guān)係資料庫規(guī)範(fàn)化理論就是資料庫邏輯設(shè)計工具。關(guān)係資料庫的規(guī)範(fàn)化理論就是解決如何設(shè)計出合理的關(guān)係資料庫模式,也就是一個資料庫中要定義哪些表,每個表有哪些屬性,表之間有哪些聯(lián)繫,而儘量地減少數(shù)據(jù)冗餘,消除插入、刪除等存在的問題。2.3.1關(guān)係模式可能存在的問題

例如,要設(shè)計一個教學(xué)管理資料庫,希望在該資料庫中保存學(xué)生的學(xué)號、姓名、性別、年齡、系名、系主任和該學(xué)生選修的課程及成績資訊。若據(jù)此設(shè)計一個關(guān)係保存所有的數(shù)據(jù),關(guān)係模式為:教學(xué)(學(xué)號,姓名,性別,年齡,系名,系主任,課程名,成績)這個關(guān)係模式存在以下的問題:

數(shù)據(jù)冗餘大

插入異常

刪除異常。

更新異常

由於上述的問題,它是一個不合理的設(shè)計。一個合理的設(shè)計應(yīng)該儘量減少以上的問題。只有找到問題存在的原因,才能找到解決辦法。那麼出現(xiàn)上述問題的原因是什麼呢?這是因為這個關(guān)係模式中的數(shù)據(jù)之間的依賴關(guān)係所造成的。如果把這個單一的關(guān)係模式,分解成如下三個關(guān)係模式:學(xué)生(學(xué)號,姓名,性別,年齡,所在系);系(系名,系主任);選課(學(xué)號,課程名,成績)

2.3.2函數(shù)依賴及規(guī)範(fàn)化

為了使資料庫模式的設(shè)計更合理,人們研究了規(guī)範(fàn)化理論。而函數(shù)依賴?yán)碚撌顷P(guān)係規(guī)範(fàn)化的理論基礎(chǔ)。函數(shù)依賴反映了同一關(guān)係中屬性間一一對應(yīng)的約束。

1.關(guān)係模式的簡化表示法一般把關(guān)系模式看做一個三元組:

R(U,F(xiàn))其中,R是關(guān)係名,U是一組屬性,F(xiàn)是屬性組U上的一組數(shù)據(jù)依賴關(guān)係的集合。當(dāng)且僅當(dāng)U上的一個關(guān)係r滿足F時,r稱為關(guān)係模式R(U,F(xiàn))的一個關(guān)係。

2.函數(shù)依賴

函數(shù)依賴是數(shù)據(jù)依賴的一種,函數(shù)依賴反映了同一關(guān)係中屬性間的一一對應(yīng)約束。它是現(xiàn)實世界屬性間相互聯(lián)繫的抽象,是數(shù)據(jù)內(nèi)在的性質(zhì),是語義的體現(xiàn)。它是資料庫規(guī)範(fàn)化理論的基礎(chǔ)。函數(shù)依賴普遍存在於現(xiàn)實生活中。例如在描述學(xué)生的關(guān)係中,可能的屬性有學(xué)號,姓名,所在系等。由於一個學(xué)號只對應(yīng)於一個學(xué)生,一個學(xué)生只能屬於一個系,因此學(xué)號確定之後,該學(xué)生的姓名和所在系也唯一的確定了。類似於引數(shù)確定了,函數(shù)值也唯一確定了。起決定性的屬性相當(dāng)於引數(shù)。函數(shù)依賴記為:學(xué)號→姓名,學(xué)號→所在系。

現(xiàn)在討論一個具體的關(guān)係模式。例如,要設(shè)計一個教學(xué)管理資料庫,希望該資料庫中包括的資訊有學(xué)生學(xué)號、姓名、系名、系主任姓名,以及學(xué)生學(xué)習(xí)的課程和成績。於是得到一組屬性:

U={學(xué)號,姓名,系名,系主任,課程名,成績}

根據(jù)經(jīng)驗得知:

一個學(xué)號對應(yīng)一個學(xué)生,即一個學(xué)號對應(yīng)一個姓名,但可以有多個學(xué)生重名;

一個系有若干學(xué)生,但一個學(xué)生只屬於一個系;

一個系只有一名(正職)負(fù)責(zé)人;

一個學(xué)生可選修多門課程,每門課程有若干學(xué)生選修;

學(xué)生學(xué)習(xí)每一門課程有一個成績;於是得到屬性組上的一組函數(shù)依賴:

F={學(xué)號→姓名,學(xué)號→系名,系名→系主任,(學(xué)號,課程名)→成績}

定義:設(shè)R(U)是屬性集U上的關(guān)係模式。X,Y是U的子集。若對於R(U)的任意一個可能的關(guān)係r(一個滿足約束條件的數(shù)據(jù)組成的表),r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴於X,記作X→Y。

定義:在R(U)中,,如果X→Y,Y→Z,且(Y

X),YX,則稱Z對X傳遞函數(shù)依賴。例如,在教學(xué)關(guān)係模式中,學(xué)號→系名,系名→系主任,所以系主任對學(xué)號傳遞依賴。

3.範(fàn)式

關(guān)係資料庫中的關(guān)係是要滿足一定要求的。滿足不同程度要求的為不同的範(fàn)式。範(fàn)式是滿足一定函數(shù)依賴的關(guān)係模式的集合。有多種範(fàn)式:第一範(fàn)式、第二範(fàn)式、第三範(fàn)式、BCN範(fàn)式等。滿足最低要求的叫第一範(fàn)式,簡稱1NF。在滿足第一範(fàn)式的條件下,滿足進一步條件的為第二範(fàn)式,簡稱2NF。其餘依此類推。顯然各種範(fàn)式之間存在關(guān)係:

1NF

2NF

3NF

BCNF

4NF

5NF

一個低一級的範(fàn)式模式,通過模式分解可以轉(zhuǎn)換為若干個高一級範(fàn)式的模式集合,這個過程叫規(guī)範(fàn)化。

(1)第一範(fàn)式(1NF)定義:如果一個關(guān)係模式R的所有屬性都是簡單屬性,即每個屬性都是不可再分的基本資料項目,則稱R屬於第一範(fàn)式,記作R∈1NF。例如,教學(xué)模式中的所有屬性都是不可再分的簡單屬性,即:教學(xué)(學(xué)號,姓名,系名,系主任,課程名,成績)∈

1NF(2)第二範(fàn)式(2NF)定義:若一個關(guān)係模式R∈lNF,且每一個非主屬性完全函數(shù)依賴於關(guān)鍵字,則R∈2NF。

將教學(xué)模式分為以下兩個模式:學(xué)生_系(學(xué)號,姓名,系,系主任);選課(學(xué)號,課程名,成績)在“學(xué)生_系”關(guān)係中,“學(xué)號”是關(guān)鍵字,其他非主屬性都完全依賴於關(guān)鍵字,“選課”關(guān)係中,(學(xué)號,課程名)是關(guān)鍵字,非主屬性也完全依賴於關(guān)鍵字,因此兩個關(guān)係中非主屬都完全函數(shù)依賴於關(guān)鍵字,服從2NF,即: 學(xué)生_系∈2NF,選課∈2NF。

(3)第三範(fàn)式(3NF)定義:若關(guān)係模式R是第二範(fàn)式,且沒有一個非主屬性傳遞函數(shù)依賴關(guān)鍵字,則R∈3NF。R∈3NF,則非主屬性對主屬性既不部分函數(shù)依賴於關(guān)鍵字,也不傳遞函數(shù)依賴於關(guān)鍵字??疾臁皩W(xué)生_系”關(guān)係,可以看出:學(xué)號→系名,系名→系主任,即“系主任”傳遞依賴於“學(xué)號”?!皩W(xué)號”是關(guān)鍵字,而“系主任”是非主屬性,它們之間存在傳遞函數(shù)依賴關(guān)係,因此“學(xué)生_系”關(guān)係

3NF。如果對“學(xué)生_系”關(guān)係按第三範(fàn)式的要求分解,分解後的模式如下:學(xué)生(學(xué)號,姓名,系)系(系,系主任)則分解後的模式均屬於3NF。

規(guī)範(fàn)化方法為設(shè)計人員判斷關(guān)係模式的優(yōu)劣提供了理論依據(jù),可以使資料庫的設(shè)計工作建立在嚴(yán)格的理論基礎(chǔ)上。關(guān)係模式的優(yōu)化步驟如下:①按需求分析所得到的實體及其聯(lián)繫,確定資料庫中各關(guān)係模式中存在的函數(shù)依賴集。②逐一分析各關(guān)係模式,確定關(guān)係模式屬於第幾範(fàn)式。③對關(guān)係模式通過模式分解的方法進行改進,使其達到一定的範(fàn)式。

小結(jié)

本章介紹了關(guān)係資料庫的基本概念、SQL語言、函數(shù)依賴?yán)碚摷肮?fàn)式。1.關(guān)係資料庫。在關(guān)係資料庫中關(guān)係就是表。關(guān)係資料庫中的實體及聯(lián)繫均用關(guān)係來表示。2.SQL語言。它是關(guān)係資料庫的結(jié)構(gòu)化查詢語言,具有一體化、高度非過程化、語言簡潔、易於使用的特點。SQL語言提供了創(chuàng)建資料庫、定義關(guān)係模式、查詢、更新、維護、資料庫安全控制等一系列功能。3.關(guān)係資料庫規(guī)範(fàn)化理論關(guān)係資料庫規(guī)範(fàn)化理論是資料庫邏輯設(shè)計工具。關(guān)係資料庫的規(guī)範(fàn)化理論就是解決如何設(shè)計出合理的關(guān)係資料庫模式。習(xí)題1.試說明SELECT語句的作用。2.試說明SELECT語句中FROM、WHERE、GROUP、ORDER、HAVING的作用。3.設(shè)學(xué)生選課資料庫包含如下三個關(guān)係模式:學(xué)生(學(xué)號,姓名,性別,年齡,系名);系(系名,系主任);選課(學(xué)號,課程名,成績)試用SQL語言實現(xiàn)下列操作:(1)查詢年齡大於20歲的男生。(2)查詢姓王的學(xué)生。習(xí)題(3)求出學(xué)習(xí)高等數(shù)學(xué)課程學(xué)生的最高成績、最低成績和平均成績。(4)求出學(xué)習(xí)資料庫原理課程且成績高於80分的學(xué)生人數(shù)。(5)查詢每個學(xué)生的學(xué)號及選修課的數(shù)量.(6)查詢選修三門以上課程的學(xué)生學(xué)號。(7)查詢學(xué)習(xí)資料庫原理課程的學(xué)生姓名。(8)把張三的年齡修改為20。(9)刪除學(xué)號為951001的學(xué)生選修的資料庫原理課程。習(xí)題4.解釋下列名詞:函數(shù)依賴、部分函數(shù)依賴、傳遞函數(shù)依賴、1NF、2NF、3NF。5.現(xiàn)在要建立關(guān)於系、學(xué)生、班級資訊的資料庫,關(guān)係模式為:學(xué)生(學(xué)號,姓名,出生日期,系名,班號,宿舍區(qū));系(系號,系名,辦公室,系人數(shù));班級(班號,專業(yè)名,系名,人數(shù),入學(xué)年份)各個屬性之間的關(guān)係:一個系有若干個專業(yè),每個專業(yè)每年只招一個班,每個班有若干學(xué)生,一個系的學(xué)生住在同一個宿舍區(qū)。(1)請寫出每個關(guān)係模式的函數(shù)依賴,分析是否存在部分依賴、傳遞依賴。(2)找出各個關(guān)係的關(guān)鍵字、外部關(guān)鍵字。(3)每個關(guān)係是什麼範(fàn)式?如果不是3NF請規(guī)範(fàn)化為3NF。

第3章資料庫系統(tǒng)體系結(jié)構(gòu)教材:資料庫技術(shù)及應(yīng)用2006年4月寧可、吳菁、胡海編著本章要點集中式系統(tǒng)客戶/伺服器系統(tǒng)分佈式系統(tǒng)資料庫介面目錄3.1集中式系統(tǒng)3.2客戶/伺服器系統(tǒng)

3.2.1客戶/伺服器結(jié)構(gòu)

3.2.2N層客戶機-伺服器結(jié)構(gòu)

3.3分佈式系統(tǒng)

3.3.1分佈式系統(tǒng)的基本概念

3.3.2分佈式資料庫系統(tǒng)的主要特點3.4資料庫介面

3.4.1通過ODBC連接資料庫

3.4.2通過JDBC連接資料庫

3.4.3通過OLEDB連接資料庫

3.4.4通過專用介面連接資料庫

3.4.5通用資料庫介面和專用資料庫介面的比較3.5應(yīng)用實例

小結(jié)3.1集中式系統(tǒng)

集中式系統(tǒng)是指運行在一臺電腦上,不與其它電腦系統(tǒng)交互的資料庫系統(tǒng)。這些主要表現(xiàn)在運行在個人電腦上的單用戶數(shù)據(jù)庫系統(tǒng)和運行在大型主機上的高性能資料庫系統(tǒng)。對於個人電腦上的單用戶數(shù)據(jù)庫系統(tǒng)來說,其結(jié)構(gòu)簡單,容易設(shè)計、構(gòu)造、操作和維護,但數(shù)據(jù)處理能力有限,而集中式大型機系統(tǒng)則一般常用於大規(guī)模的批處理系統(tǒng),這些應(yīng)用常見於銀行業(yè)、保險業(yè)等。

圖3-2:高性能資料庫系統(tǒng)。主機終端圖3-1:單用戶數(shù)據(jù)庫系統(tǒng)個人電腦3.2客戶/伺服器系統(tǒng)

隨著電腦網(wǎng)絡(luò)和電腦軟硬體技術(shù)的發(fā)展,電腦的性能價格比越來越高,使原集中式系統(tǒng)的終端變?yōu)閭€人電腦,而相應(yīng)的由原集中式系統(tǒng)中主機完成的任務(wù)也有所劃分,即由原集中式系統(tǒng)中主機完成的用戶介面功能現(xiàn)在由個人電腦來處理,集中式系統(tǒng)變?yōu)樗欧飨到y(tǒng),以滿足客戶系統(tǒng)產(chǎn)生的請求,客戶/伺服器系統(tǒng)一般結(jié)構(gòu)如圖3-3所示。

伺服器客戶機客戶機客戶機客戶機圖3-3客戶/伺服器系統(tǒng)一般結(jié)構(gòu)網(wǎng)路

在該體系結(jié)構(gòu)中,數(shù)據(jù)的存儲和管理通常由伺服器來承擔(dān),此伺服器稱為資料庫伺服器。

3.2.1客戶/伺服器結(jié)構(gòu)

對於資料庫系統(tǒng)而言,客戶/伺服器系統(tǒng)可將資料庫功能大致分為兩個部分:前端客戶機系統(tǒng)和後端伺服器系統(tǒng)。前端客戶機系統(tǒng)主要包括圖形用戶介面工具、表格及報表生成和書寫工具等;後端伺服器系統(tǒng)負(fù)責(zé)數(shù)據(jù)的存取和控制,包括故障恢復(fù)和併發(fā)控制等。從功能來說,客戶/伺服器系統(tǒng)的功能劃分如圖3-4所示。

表格用戶介面SQL用戶介面圖形化介面資料庫引擎前端客戶機系統(tǒng)後端伺服器系統(tǒng)介面圖3-4客戶/伺服器系統(tǒng)的功能劃分客戶/伺服器系統(tǒng)對數(shù)據(jù)的一般處理過程,如圖3-5所示,請求和接收數(shù)據(jù)資訊的具體描述如下:(1)用戶在客戶端請求數(shù)據(jù)查詢。(2)請求被翻譯成SQL語言。(3)SQL請求通過網(wǎng)路被傳送到伺服器端。(4)資料庫伺服器在存儲數(shù)據(jù)的電腦上進行檢索。(5)在伺服器上檢索得到的結(jié)果通過網(wǎng)路傳遞給客戶端。(6)結(jié)果在客戶端呈現(xiàn)給用戶。伺服器客戶機服務(wù)請求回應(yīng)圖3-5客戶/伺服器系統(tǒng)對數(shù)據(jù)的處理過程3.2.2N層客戶/伺服器結(jié)構(gòu)

一個資訊系統(tǒng)應(yīng)用程式通??梢苑殖蓴?shù)據(jù)層、商業(yè)邏輯層和視圖層,這種客戶/伺服器結(jié)構(gòu)可稱為三層結(jié)構(gòu),圖3-6說明了這三層間的相互作用,其中用戶層(視圖層)是作為商業(yè)邏輯層的一個客戶,而商業(yè)邏輯層作為數(shù)據(jù)層的一個客戶。圖3-6三層結(jié)構(gòu)間的相互作用視圖層商業(yè)邏輯層數(shù)據(jù)層用戶請求資訊請求請求回應(yīng)數(shù)據(jù)查詢查詢回應(yīng)上述三層客戶/伺服器結(jié)構(gòu)的各層所包含內(nèi)容及功能分別是:1.?dāng)?shù)據(jù)層在客戶機-伺服器結(jié)構(gòu)中包含資料庫的層,該層主要管理存儲的數(shù)據(jù),通常由一個或多個數(shù)據(jù)庫實現(xiàn)。2.商業(yè)邏輯層在客戶機-伺服器結(jié)構(gòu)中包含應(yīng)用系統(tǒng)的程式邏輯實現(xiàn)的部分,該層實現(xiàn)商務(wù)處理的規(guī)則和程式。3.視圖層在客戶機-伺服器結(jié)構(gòu)中包含用戶介面和其他訪問系統(tǒng)的組件的部分,該層主要用於接收用戶的輸入、格式化並顯示處理結(jié)果。相對而言,三層結(jié)構(gòu)的應(yīng)用軟體在網(wǎng)路上更容易分佈和複製。層間的交互總是請求或回應(yīng),這使層次與層次之間相對獨立。因此它們可以放在不同的電腦系統(tǒng)中,用網(wǎng)路連接和中間件作為粘結(jié)劑將它們綁定在一起形成一個單獨的應(yīng)用系統(tǒng)。3.3分佈式系統(tǒng)

電腦網(wǎng)絡(luò)化使電腦資源得到共用,這些資源包括軟體資源和硬體資源,這使得現(xiàn)代資訊系統(tǒng)的部件或功能通??煞謥鸯抖鄠€電腦系統(tǒng)和不同的地理位置上,這種將部件或功能分佈到不同電腦系統(tǒng)和不同位置的方法一般稱為分佈式計算或分佈式處理。在分佈式計算(DistributedComputing)環(huán)境中,一項計算處理任務(wù)可被分成若干部分,對相應(yīng)數(shù)據(jù)(通常是來自於網(wǎng)路中不同電腦的分佈式數(shù)據(jù))的處理也不是由一臺電腦完成,而是多臺電腦協(xié)作完成的。如圖3-12所示,一項任務(wù)W由Wa和Wb組成。而Wa和Wb分別在電腦A和電腦B上完成。電腦A完成Wa電腦B完成Wb任務(wù)W圖3-12任務(wù)W由Wa和Wb組成的分佈式處理圖

分佈式系統(tǒng)中的電腦規(guī)??纱罂尚?,小到個人電腦、大到工作站或大型機系統(tǒng)。對分佈式系統(tǒng)中的電腦,有多種不同的稱呼,如節(jié)點或結(jié)點等,這可依據(jù)上下文的不同而異。分佈式系統(tǒng)的一般結(jié)構(gòu)如圖3-13所示。在圖中,各個節(jié)點間可通過網(wǎng)路進行通信。

網(wǎng)路節(jié)點A節(jié)點B節(jié)點C3-13分佈式系統(tǒng)分佈式資料庫系統(tǒng)的主要特點

分佈式資料庫系統(tǒng)的主要優(yōu)點如下:(1)數(shù)據(jù)共用。分佈式資料庫系統(tǒng)的主要優(yōu)點是提供一個環(huán)境,使得一個節(jié)點可以訪問存放在其他節(jié)點上的數(shù)據(jù)。(2)自治性。通過數(shù)據(jù)分佈的方法來共用數(shù)據(jù),其主要優(yōu)越性是每個節(jié)點可以對局部存儲的數(shù)據(jù)保持一定程度的控制。而在集中式系統(tǒng)中,其中心節(jié)點的資料庫管理員對數(shù)據(jù)庫進行控制。(3)可用性。在分佈式系統(tǒng)中,如果一個節(jié)點發(fā)生故障,其他節(jié)點還能繼續(xù)運行。分佈式資料庫系統(tǒng)的主要缺點是由於要保證各節(jié)點間的相互協(xié)作而增加的複雜性。其複雜性表現(xiàn)為以下幾種形式.

軟體開發(fā)代價。實現(xiàn)一個分佈式資料庫系統(tǒng)會更加複雜,因此,代價更高。

出現(xiàn)錯誤的可能性更大。由於構(gòu)成分佈式系統(tǒng)的各個節(jié)點並行地運行,因此更難於保證演算法的正確性,尤其難於保證當(dāng)系統(tǒng)的一部分發(fā)生故障時的運行,以及從故障中的恢復(fù)。

處理開銷增大。相比較集中式系統(tǒng)而言,分佈式資料庫系統(tǒng)中消息的交換以及保證各節(jié)點間的相互協(xié)作都增加了系統(tǒng)的相應(yīng)開銷。因此,在選擇資料庫系統(tǒng)的設(shè)計時,必須在數(shù)據(jù)分佈的優(yōu)點和缺點間進行權(quán)衡。3.4資料庫介面

目前,客戶與伺服器之間的資料庫介面分成兩大類:

(1)通用資料庫介面具有通用的標(biāo)準(zhǔn)資料庫介面,如開放式資料庫互連(OpenDataBaseConnecttivity,簡稱ODBC)標(biāo)準(zhǔn),使用ODBC介面的任何客戶可以與提供ODBC介面的任何伺服器連接。此外,還有Java資料庫互連(JavaDataBaseConnectivity,簡稱JDBC)和OLEDB資料庫介面。(2)專用資料庫介面。專用資料庫介面根據(jù)各個DBMS的不同而不同,例如Sybase資料庫系統(tǒng),它提供了SyabseOpenClient和SyabseOpenServer兩種產(chǎn)品。其中,OpenClient是客戶端的API,它的作用是調(diào)用級介面,使不同開發(fā)商的工具軟體和客戶應(yīng)用程式可以把SQL命令通過網(wǎng)路發(fā)給伺服器,以獲得數(shù)據(jù)和服務(wù);OpenServer是伺服器端的API,它提供的編程介面使得開發(fā)人員可以把不同的數(shù)據(jù)源構(gòu)造為統(tǒng)一框架的資料庫伺服器,從而允許客戶以SQL語言或遠(yuǎn)程過程調(diào)用的形式,向數(shù)據(jù)源發(fā)送標(biāo)準(zhǔn)請求。然後將數(shù)據(jù)源返回的結(jié)果以標(biāo)準(zhǔn)格式送回客戶。在實際開發(fā)應(yīng)用中,一般利用OpenClient進行客戶端開發(fā)。OpenClient編程介面的函數(shù)庫包括:Client_Library、DB_Library和CS_Library。

3.4.1通過ODBC連接資料庫ODBC是Microsoft公司提出的開放式資料庫互連,它採用SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言)作為標(biāo)準(zhǔn)的查詢語言來存取連接到的資料庫。ODBC允許單個應(yīng)用程式存取多個數(shù)據(jù)庫管理系統(tǒng),而不必關(guān)心它所操作的資料庫管理系統(tǒng)是什麼。

應(yīng)用程式、ODBC介面、ODBC驅(qū)動管理程式和數(shù)據(jù)庫廠商提供的驅(qū)動程式的相互關(guān)係,如圖3-10所示。利用應(yīng)用程式通過ODBC介面來編寫資料庫應(yīng)用程式,完全可以不必關(guān)心底層資料庫管理系統(tǒng)的實現(xiàn)細(xì)節(jié),而只需利用應(yīng)用程式的ODBC介面所提供的功能就可以簡單地完成資料庫存取操作。應(yīng)用程式ODBC介面ODBC驅(qū)動管理程式資料庫1驅(qū)動程式資料庫2驅(qū)動程式資料庫2資料庫3驅(qū)動程式資料庫3資料庫1圖3-10應(yīng)用程式、ODBC和數(shù)據(jù)庫的關(guān)係

Windows2000操作系統(tǒng)的ODBC數(shù)據(jù)源管理器窗口介面,如圖3-11所示,可在此窗口中進行ODBC的添加、刪除和配置工作。有關(guān)Windows2000操作系統(tǒng)的ODBC核心組件的描述,如圖3-12所示。圖3-11ODBC數(shù)據(jù)源管理器圖3-12ODBC數(shù)據(jù)源管理器核心組件的描述

和ODBC一樣,JDBC也是一種通用的資料庫訪問標(biāo)準(zhǔn)。ODBC主要運行在Windows環(huán)境下,而JDBC則主要運行在Java環(huán)境中。JDBC(JavaDataBaseConnectivity)是一種用於執(zhí)行SQL語句的JavaAPI,它由一組用Java編程語言編寫的類和介面組成,JDBC為數(shù)據(jù)庫開發(fā)人員提供了一些標(biāo)準(zhǔn)的應(yīng)用程式編程介面API,使用戶能夠用JavaAPI來編寫資料庫應(yīng)用程式。有了JDBCAPI就不必為訪問各個不同的資料庫專門編寫程式,而只需用JDBCAPI編寫一個訪問程式,且將Java和JDBC結(jié)合起來,就可讓它運行在任何平臺上。3.4.2通過JDBC連接資料庫

在開發(fā)環(huán)境中,可通過JDBC資料庫介面來利用JDBCAPI存取各種資料庫,其中開發(fā)環(huán)境通過JDBC介面連接資料庫的各個組件部分的關(guān)係,如圖3-13所示。資料庫介面動態(tài)連接庫開發(fā)環(huán)境Java虛擬機JDBC驅(qū)動程式資料庫圖3-13JDBC介面中各個組件部分的關(guān)係

OLEDB也是一種技術(shù)標(biāo)準(zhǔn),其目的是提供一種統(tǒng)一的資料庫訪問介面,但這裏的數(shù)據(jù)不僅包括資料庫中的數(shù)據(jù),而且還包括郵件數(shù)據(jù)、Web上的文本或圖形、目錄服務(wù)等。OLEDB就是為各種各樣的數(shù)據(jù)存儲都提供一種相同的訪問介面,使數(shù)據(jù)的調(diào)用者(應(yīng)用程式)可以使用同樣的方法訪問各種數(shù)據(jù),而不考慮數(shù)據(jù)的具體存儲地點、格式或類型。3.4.3通過OLEDB連接資料庫

如同ODBC和JDBC介面一樣,應(yīng)用程式的OLEDB介面利用OLEDBAPI來存取各種資料庫,其通過OLEDB介面連接資料庫的各個組件部分的關(guān)係如圖3-14所示。圖3-14OLEDB介面中各個組件部分的關(guān)係

開發(fā)環(huán)境資料庫介面動態(tài)連接庫OLEDBData提供者資料庫

目前大多數(shù)開發(fā)環(huán)境都提供了多種資料庫介面,實現(xiàn)與多種資料庫的連接。這些介面不僅包括標(biāo)準(zhǔn)的資料庫介面ODBC、JDBC和OLDB等,還有一種是專用的資料庫介面。在實際應(yīng)用中,常常需要在一個應(yīng)用程式中同時使用到這兩種介面方式與資料庫連接。3.4.4通過專用介面連接資料庫

通過專用介面連接資料庫的各個組件部分的關(guān)係如圖3-15。專用介面是針對具體的資料庫管理系統(tǒng)設(shè)計的,所以通過專用資料庫介面可以更快捷地連接相應(yīng)的資料庫,以充分發(fā)揮各資料庫管理系統(tǒng)的特點,提高訪問資料庫伺服器的效率。開發(fā)環(huán)境資料庫資料庫介面動態(tài)連接庫或共用庫資料庫客戶端軟體網(wǎng)路協(xié)議路由軟體圖3-15通過專用介面連接資料庫的各個組件部分的關(guān)係

從表中看出,通用和性能是相互矛盾的,要獲得較好的數(shù)據(jù)訪問性能,往往根據(jù)不同的應(yīng)用環(huán)境選擇連接方式,對於小型本地資料庫,一般採用ODBC介面進行連接,而對於在網(wǎng)路環(huán)境下的大型遠(yuǎn)程資料庫,一般採用專用資料庫介面進行連接,以提高系統(tǒng)的可靠性與執(zhí)行效率。3.4.5通用資料庫介面和專用資料庫介面的比較

ODBC資料庫介面專用資料庫介面通用性好差性能(訪問速度)差優(yōu)秀配置過程簡單較複雜3.5應(yīng)用實例

實例一:創(chuàng)建ODBC數(shù)據(jù)源

1.打開“ODBC數(shù)據(jù)源管理器”窗口。

2.創(chuàng)建新的ODBC數(shù)據(jù)源。實例二:創(chuàng)建ODBC資料庫描述檔

演示小結(jié)資料庫的體系結(jié)構(gòu)主要有以下幾種:集中式資料庫系統(tǒng)完全運行在一臺電腦中。最初所有資料庫系統(tǒng)都是集中式的。隨著個算機和局域網(wǎng)的發(fā)展,資料庫的前端功能不斷移向客戶機,而後端功能由伺服器系統(tǒng)提供。並行資料庫系統(tǒng)由通過高速互連網(wǎng)絡(luò)連接在一起的多臺處理器和多個磁片構(gòu)成。並行資料庫體系結(jié)構(gòu)包括共用記憶體、共用磁片、無共用,以及層次的結(jié)構(gòu)。這些體系結(jié)構(gòu)在可擴展性以及通信速度方面各有千秋。分佈式資料庫是局部獨立的資料庫的集合,它們共用一個公共的模式,並且互相協(xié)作處理非局部數(shù)據(jù)的事務(wù)。

資料庫介面分成兩大類即通用資料庫介面和專用資料庫介面。其中,通用資料庫介面有ODBC、JDBC和OLEDB資料庫介面;而專用資料庫介面根據(jù)各個DBMS的不同而不同。習(xí)題1.資料庫系統(tǒng)的體系結(jié)構(gòu)一般可分為集中式結(jié)構(gòu)、_______________、____________、和並行式體系結(jié)構(gòu)。2.客戶/伺服器結(jié)構(gòu)的三層結(jié)構(gòu)分別是____________、___________和__________。3.並行資料庫體系結(jié)構(gòu)主要有共用內(nèi)容結(jié)構(gòu)模式、____________、___________和__________。4.資料庫介面一般分成兩大類,分別是______________和_______________。5.實踐題請利用windows系統(tǒng)中的“ODBC數(shù)據(jù)源管理器”創(chuàng)建一個ODBC數(shù)據(jù)源。

第4章資料庫系統(tǒng)的開發(fā)環(huán)境教材:資料庫技術(shù)及應(yīng)用2006年4月寧可、吳菁、胡海編著本章要點資料庫系統(tǒng)開發(fā)概述

開放的客戶體系結(jié)構(gòu)

資料庫應(yīng)用開發(fā)工具PowerBuilder

資料庫應(yīng)用開發(fā)工具DelphiJava在資料庫中的應(yīng)用

目錄4.1資料庫系統(tǒng)開發(fā)概述

4.1.1資料庫應(yīng)用與資料庫體系結(jié)構(gòu)的關(guān)係

4.1.2資料庫應(yīng)用開發(fā)工具4.2開放的客戶體系結(jié)構(gòu)4.3資料庫應(yīng)用開發(fā)工具PowerBuilder

4.3.1PowerBuilder的特點

4.3.2PowerBuilder應(yīng)用的構(gòu)成4.4資料庫應(yīng)用開發(fā)工具Delphi

4.4.1Delphi資料庫應(yīng)用程式的體系

4.4.2Delphi資料庫組件

4.4.3Delphi連接資料庫的三種方式4.5Java在資料庫中的應(yīng)用

4.5.1Java簡介

4.5.2J2EE體系簡介

4.5.2J2EE體系簡介小結(jié)4.1資料庫系統(tǒng)開發(fā)概述

隨著電腦硬體和軟體技術(shù)、網(wǎng)路技術(shù)的發(fā)展,資料庫體系結(jié)構(gòu)也經(jīng)歷了集中式資料庫系統(tǒng)、客戶/伺服器、並行資料庫系統(tǒng)和分佈式資料庫等。其中對於資料庫應(yīng)用由重大影響的幾個階段分別是:4.1.1資料庫應(yīng)用與資料庫體系結(jié)構(gòu)的關(guān)係

1.集中式資料庫系統(tǒng)(即基於主機的電腦系統(tǒng))

2.PC與傳統(tǒng)的網(wǎng)路技術(shù)相結(jié)合,即檔伺服器結(jié)構(gòu)3.客戶/伺服器(C/S)結(jié)構(gòu)4.三層(或多層)結(jié)構(gòu)。

資料庫系統(tǒng)的應(yīng)用與資料庫體系結(jié)構(gòu)的發(fā)展密不可分,從簡單的檔管理、數(shù)據(jù)集中管理到數(shù)據(jù)分佈存儲;從簡單的數(shù)據(jù)存儲與計算、基於部門的業(yè)務(wù)數(shù)據(jù)處理、企業(yè)的綜合資訊管理到Web應(yīng)用。數(shù)據(jù)管理不再僅僅是存儲和管理數(shù)據(jù),而轉(zhuǎn)變成用戶所需要的各種數(shù)據(jù)管理的方式。而隨著資料庫體系結(jié)構(gòu)從封閉的集中式主機,向一個開放的、與平臺完全無關(guān)的環(huán)境發(fā)展,資料庫應(yīng)用的開發(fā)工具,也從最初的機器語言、組合語言、高級語言發(fā)展到面向?qū)ο蟮某淌皆O(shè)計語言。4.1.2資料庫應(yīng)用開發(fā)工具

DBMS中存儲了大量的數(shù)據(jù)資訊,其目的是為用戶提供數(shù)據(jù)資訊服務(wù),而資料庫應(yīng)用程式正是與DBMS進行通信,並訪問DBMS中的數(shù)據(jù),它是DBMS實現(xiàn)其對外提供數(shù)據(jù)資訊服務(wù)這一目的的唯一途徑。即資料庫應(yīng)用程式是一個允許用戶插入、修改、刪除並報告資料庫中數(shù)據(jù)的電腦程式。資料庫應(yīng)用程式在傳統(tǒng)上是由程式員用一種或多種通用或?qū)S玫某淌皆O(shè)計語言編寫的,但是近年來出現(xiàn)了多種面向用戶的資料庫應(yīng)用程式開發(fā)工具,這些工具可以簡化使用DBMS的過程,並且不需要專門編程,用來生成資料庫應(yīng)用程式的語言主要分為三大類型:。1.過程化語言

2.結(jié)構(gòu)化查詢語言(SQL)

3.其他語言4.2開放的客戶體系結(jié)構(gòu)

開放式的客戶體系結(jié)構(gòu)使得客戶端應(yīng)用不再緊密地依賴資料庫管理系統(tǒng),開發(fā)者可以選擇自己喜歡的和熟悉的開發(fā)工具進行客戶端的獨立開發(fā),等真正聯(lián)調(diào)時再通過ODBC或JDBC介面連接到資料庫管理系統(tǒng)。其中,ODBC的基本流程控制和Java程式訪問結(jié)構(gòu)分別如圖4-1和圖4-2所示。

語句處理和檢索分配環(huán)境分配連接句柄與伺服器連接分配語句句柄釋放語句句柄與伺服器斷開釋放連接句柄釋放環(huán)境初始化SQL語句處理終止圖4-1ODBC應(yīng)用系統(tǒng)的基本流程控制

資料庫的開放式客戶體系結(jié)構(gòu),有助於:有多種客戶端的開發(fā)工具可供選擇;編寫客戶端資料庫應(yīng)用程式,可完全可以不必關(guān)心底層資料庫管理系統(tǒng)的實現(xiàn)細(xì)節(jié),對數(shù)據(jù)庫存取操作可利用ODBC介面所提供的功能完成;

資料庫系統(tǒng)可以以並行方式進行開發(fā)。Java程式JDBC驅(qū)動JDBC-ODBCbRidge機制ODBC數(shù)據(jù)源資料庫圖4-2Java程式訪問結(jié)構(gòu)

4.3資料庫應(yīng)用開發(fā)工具PowerBuilder

PowerBuilder是優(yōu)秀的資料庫應(yīng)用系統(tǒng)開發(fā)工具之一,作為一種圖形化的快速應(yīng)用開發(fā)(RAD)工具,已被資料庫應(yīng)用開發(fā)人員所廣泛使用,它支持面向?qū)ο缶幊?,具有強大的、易於使用的第四代編程語言(4GL),並內(nèi)置多種對象類,其中以DataWindow對象最為著名,可以方便的訪問資料庫。PowerBuilder還提供了對多種數(shù)據(jù)源的簡便連接,具有高度的開放性和靈活性。

3.2.1PowerBuilder的特點

PowerBuilder在介面上大量採用Windows系統(tǒng)的標(biāo)準(zhǔn)介面,不僅支持傳統(tǒng)的客戶/伺服器開發(fā)環(huán)境,而且完全支持組件和基於Web應(yīng)用的開發(fā)環(huán)境,利用PowerBuilder除了可設(shè)計傳統(tǒng)的高性能的客戶/伺服器體系結(jié)構(gòu)的應(yīng)用系統(tǒng)之外,而且能夠用於開發(fā)基於Internet的應(yīng)用系統(tǒng),它的主要特點說明如下:1.PowerBuilder應(yīng)用程式是事件驅(qū)動的

2.面向?qū)ο蟮某淌皆O(shè)計

3.功能強大的PowerScript語言

4.支持Internet應(yīng)用

5.支持分佈式應(yīng)用

6.支持多平臺開發(fā)

7.對數(shù)據(jù)庫的支持8.提供功能強大的數(shù)據(jù)窗口對象

9.完善的組件開發(fā),全面支持開放標(biāo)準(zhǔn)的組件

10.具有極高的開發(fā)效率,支持團隊開發(fā)

另外PowerBuilder還為團隊開發(fā)提供了可靠的管理工具,使專案管理者可以創(chuàng)建專案、定義訪問許可權(quán)和進行任務(wù)分配。PowerBuilder還提供了組件管理器,可以用於流覽應(yīng)用伺服器端的組件,便於組件存儲、重用和版本控制,促進Web應(yīng)用的集成。

4.3.2PowerBuilder應(yīng)用的構(gòu)成

PowerBuilder應(yīng)用程式窗口1各種對象屬性事件函數(shù)對應(yīng)代碼窗口n各種對象屬性事件函數(shù)對應(yīng)代碼…各種對象屬性事件函數(shù)對應(yīng)代碼窗口2各種對象屬性事件函數(shù)對應(yīng)代碼圖4-3PowerBuilder的應(yīng)用程式的組成結(jié)構(gòu)

PowerBuilder提供了面向?qū)ο蟮膽?yīng)用程式開發(fā)環(huán)境,在PowerBuilder中包含了大量的對象,如窗口、菜單、數(shù)據(jù)窗口對象及各種控件等等,同時PowerBuilder很好地具備了封裝、繼承和多態(tài)性,是面向?qū)ο蟮南到y(tǒng)。

PowerBuilder的應(yīng)用程式的組成和各個對象的層次關(guān)係,如圖4-3所示。4.4資料庫應(yīng)用開發(fā)工具Delphi

Delphi也是一種具可視化介面的面向?qū)ο蟮某淌皆O(shè)計語言,它以功能強大、簡便易用等諸多特性而被廣泛使用,Delphi中提供了資料庫引擎BDE(BorlandDatabaseEngine)並內(nèi)含眾多的資料庫調(diào)用構(gòu)件,提供了比PowerBuilder更美觀的介面,並提供了除數(shù)據(jù)庫操作外的更廣泛、更簡便易用的工具。DelphiBorlandDatabaseEngineTDataSetIDAPI本地數(shù)據(jù)伺服器數(shù)據(jù)ODBC數(shù)據(jù)Delphi提供了一組工具和功能,利用這些工具和功能,可以容易地開發(fā)資料庫應(yīng)用程式。資料庫應(yīng)用程式都有一定的公共特徵。圖4-4說明了典型的Delphi資料庫應(yīng)用程式的體系結(jié)構(gòu)。

4.4.1Delphi資料庫應(yīng)用程式的體系圖4-4Delphi資料庫應(yīng)用程式的體系結(jié)構(gòu)Delphi提供了許多組件以方便地創(chuàng)建資料庫應(yīng)用程式。標(biāo)準(zhǔn)的Delphi類庫提供兩類資料庫組件:(1)數(shù)據(jù)存?。―ataaccess)組件用於直接操縱數(shù)據(jù)表,通過它可獲得和修改記錄中的字段值,獲取和維護資料庫中的元數(shù)據(jù)(有關(guān)數(shù)據(jù)的數(shù)據(jù))。(2)數(shù)據(jù)敏感(Dataaware)控件是可視控件,例如列表框、編輯字段、下拉組合框等。這些不僅表示窗口控制元素而且還能與表中的數(shù)據(jù)字段連接並能夠顯示這些數(shù)據(jù)字段。4.4.2Delphi資料庫組件

除上述兩類組件外,還有數(shù)個附加的標(biāo)準(zhǔn)組件,它們可執(zhí)行各種功能,例如將數(shù)據(jù)存取組件與相應(yīng)的數(shù)據(jù)敏感控件連在一起可使數(shù)據(jù)可見(DataSource組件),或者封裝資料庫的高級概念作為一個表的對應(yīng)(Database組件)。Delphi對訪問資料庫提供了強有力的支持,利用Delphi可以開發(fā)出功能強大的資料庫應(yīng)用程式。Delphi的可視化功能相當(dāng)強大,在Delphi中訪問資料庫具有三種方式:。4.4.3Delphi連接資料庫的三種方式1.直接訪問

2.通過ODBC訪問3.通過內(nèi)嵌方式訪問4.5Java在資料庫中的應(yīng)用

Java起源於80年代中期。Java是Sun公司開發(fā)的—種語言,其目標(biāo)是在小型系統(tǒng)(嵌入式系統(tǒng))上運行。90年代中期Intemet興起時,人們立刻想到Java是一種用於Intemet的最佳語言,因為Java是一個面向?qū)ο蟮木幊陶Z言,本身具有的跨平臺特性正好能滿足人們在不同硬、軟體平臺上訪問Intemet的需求。從1995年初Sun公司推出Java語言以來,短短的幾年中,基於Java的應(yīng)用開發(fā)就得到了很大的發(fā)展。

Java程式常被稱為“小應(yīng)用程式”(Applet)。在Java網(wǎng)路化的編程模式下,這種小應(yīng)用程式可以被嵌入到WWW的文檔頁面中,成為一種“可執(zhí)行的內(nèi)容”。Java語言還可以編寫其他常規(guī)的應(yīng)用程式,它的突出特性之一是它有能力創(chuàng)建小的程式,這些小的程式可以跨網(wǎng)路被複製,並可在遠(yuǎn)程電腦上運行。

Java語言除了用來在Web頁面上增加動畫和提供交互性外,還可用Java語言建立伺服器、管理遠(yuǎn)程系統(tǒng)、在Web上顯示複雜的資料庫資訊,以及開發(fā)在網(wǎng)路上供多人參加的遊戲程式等。Java語言將是發(fā)展Intemet商業(yè)的主要平臺。4.5.1Java簡介

J2EE是應(yīng)用伺服器採用的主要技術(shù)體系,與其它的中間件系統(tǒng)相比較,它具有非常顯著的特徵,這些特徵來自於它獨特的體系結(jié)構(gòu),該體系結(jié)構(gòu)具有以下服務(wù)需要:高可用性,可以適應(yīng)當(dāng)今全球商業(yè)環(huán)境;安全性,可以保護客戶的隱私和企業(yè)數(shù)據(jù)的完整性;

可靠性和伸縮性,保證事務(wù)處理的準(zhǔn)確性和及時性。

4.5.2J2EE體系簡介J2EE技術(shù)體系涉及如下概念:1.J2EE應(yīng)用模型2.J2EE中間層3.J2EE客戶層4.J2EE應(yīng)用伺服器小結(jié)

本章簡要闡述了資料庫應(yīng)用的開發(fā)環(huán)境,包括資料庫應(yīng)用與資料庫體系結(jié)構(gòu)的關(guān)係、開放式的資料庫客戶體系結(jié)構(gòu)。資料庫應(yīng)用的開發(fā)工具也從最初的機器語言、組合語言、高級語言發(fā)展到面向?qū)ο蟮某淌皆O(shè)計語言。

習(xí)題1.資料庫應(yīng)用程式的語言主要分為過程化語言、_______________、____________等三大類型。2.資料庫的開放式客戶體系結(jié)構(gòu),有助於編寫客戶端資料庫應(yīng)用程式,完全可以不必關(guān)心___________資料庫管理系統(tǒng)的實現(xiàn)細(xì)節(jié),對數(shù)據(jù)庫存取操作可利用___________介面所提供的功能完成。3.面向?qū)ο蟮南到y(tǒng)只有全部具備繼承性、___________和__________。4.J2EE應(yīng)用伺服器中的應(yīng)用組件主要有JSP、EJB和Servlet三種,它們均可通過__________訪問後端資料庫。5.如編寫一個工資管理系統(tǒng),下列那種語言開發(fā)起來既方便又快捷?A.C語言

B.SQL語言

C.面向?qū)ο蟮某淌皆O(shè)計語言如powerbuilder、delphi等

D.機器語言

第5章資料庫系統(tǒng)的開發(fā)方法教材:資料庫技術(shù)及應(yīng)用2006年4月寧可、吳菁、胡海編著本章要點方法、模型、工具和技術(shù)軟體生存期模型結(jié)構(gòu)化方法面向?qū)ο蠓椒夸?.1方法、模型、工具和技術(shù)

5.1.1方法

5.1.2模型

5.1.3工具

5.1.4技術(shù)5.2軟體生存期模型

5.2.1瀑布模型

5.2.2快速原型模型

5.2.3螺旋模型

5.2.4噴泉模型

5.2.5開發(fā)模型的比較5.3結(jié)構(gòu)化方法

5.3.1結(jié)構(gòu)化分析

5.3.2結(jié)構(gòu)化設(shè)計

5.3.3結(jié)構(gòu)化編程

5.3.4結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化編程的聯(lián)繫目錄5.4面向?qū)ο蠓椒?/p>

5.4.1面向?qū)ο蠓治?/p>

5.4.2面向?qū)ο笤O(shè)計

5.4.3面向?qū)ο缶幊?/p>

5.4.4面向?qū)ο蠹夹g(shù)的特點小結(jié)5.1方法、模型、工具和技術(shù)

資料庫系統(tǒng)也屬於系統(tǒng)設(shè)計的範(fàn)疇,資料庫系統(tǒng)同其他軟體系統(tǒng)一樣有多種開發(fā)方法,開發(fā)過程也較為複雜,在開發(fā)資料庫系統(tǒng)時,一方面需要瞭解和掌握各種各樣的輔助工具,並可依靠它們來完成開發(fā)過程的每一個步驟;另一方面,還需要瞭解系統(tǒng)開發(fā)過程的大致框架和掌握許多概念,如方法、模型、工具和技術(shù)等。5.1.1方法

開發(fā)方法為系統(tǒng)開發(fā)的每一步驟提供指導(dǎo),包括具體的模型、工具和技術(shù)。開發(fā)方法既可以是通過自己的開發(fā)經(jīng)驗總結(jié)出來,也可以通過其他途徑學(xué)習(xí)得來。

某些方法需要包含大量的文檔,而且文檔的格式和內(nèi)容都遵循相應(yīng)的規(guī)範(fàn),即文檔應(yīng)該如何書寫,應(yīng)該包含哪些內(nèi)容都有相應(yīng)的要求,這種方法使得軟體專案在開發(fā)中的任何時候所需要做的工作都是確定的。而另一些方法就沒有這樣嚴(yán)格,它常常在一份文檔中涵蓋了各個工作階段系統(tǒng)的大致描述。採用何種方法進行資料庫系統(tǒng)的開發(fā),應(yīng)根據(jù)專案的特點、規(guī)模及開發(fā)單位和用戶的具體要求確定。在開發(fā)方法中,常常包含了模型、工具和技術(shù)的使用。5.1.2模型

模型是對現(xiàn)實世界的描述。在系統(tǒng)的開發(fā)中,常常需對輸入、輸出、過程、數(shù)據(jù)、對象之間的相互作用、位置、網(wǎng)路和設(shè)備等進行模型的建立。模型可助於理解和明確要解決的問題,並確定問題的解決方案,選擇什麼樣的模型和選擇什麼樣的技術(shù)來表達模型,對於考慮問題和解決問題有著重大的影響。如圖5-1所示,便是系統(tǒng)設(shè)計階段常用的模型。介面佈局報表佈局系統(tǒng)流程圖結(jié)構(gòu)圖資料庫模式網(wǎng)路圖分佈圖圖5-1:設(shè)計階段常用的模型模型的類型與作用1.模型的類型

數(shù)學(xué)模型:描述系統(tǒng)技術(shù)的一系列公式。

描述模型:描述性的備忘錄、報表或列表。

圖形模型:用符號或圖表進行描述。2.模型的作用

在建模過程中瞭解資訊。

通過抽象降低複雜性。

有助於回憶所有的細(xì)節(jié)。

有助於和其他開發(fā)小組成員進行交流。

有助於和各種用戶及系統(tǒng)相關(guān)者進行交流。為以後的維護和升級提供了文檔。

常用的模型

1.分析階段常用的模型(邏輯模型)

2.設(shè)計階段常用的模型(物理模型)

3.管理系統(tǒng)開發(fā)過程的常用的模型

一般而言,雖然不同的開發(fā)方法採用不同的模型,同一開發(fā)方法的不同開發(fā)階段採用的模型也不同。但

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論