首頁(yè) - 網(wǎng)校 - 萬(wàn)題庫(kù) - 直播 - 雄鷹網(wǎng)校 - 團(tuán)購(gòu) - 書(shū)城 - ? - 學(xué)習(xí)通 - 導(dǎo)航 -
首頁(yè)網(wǎng)校萬(wàn)題庫(kù)直播雄鷹網(wǎng)校團(tuán)購(gòu)書(shū)城模考論壇實(shí)用文檔作文大全寶寶起名
2015中考
法律碩士
2015高考
MBA考試
2015考研
MPA考試
在職研
中科院
考研培訓(xùn)
專(zhuān)升本
自學(xué)考試 成人高考
四 六 級(jí)
GRE考試
攻碩英語(yǔ)
零起點(diǎn)日語(yǔ)
職稱(chēng)英語(yǔ)
口譯筆譯
申碩英語(yǔ)
零起點(diǎn)韓語(yǔ)
商務(wù)英語(yǔ)
日語(yǔ)等級(jí)
GMAT考試
公共英語(yǔ)
職稱(chēng)日語(yǔ)
新概念英語(yǔ)
專(zhuān)四專(zhuān)八
博思考試
零起點(diǎn)英語(yǔ)
托福考試
托業(yè)考試
零起點(diǎn)法語(yǔ)
雅思考試
成人英語(yǔ)三級(jí)
零起點(diǎn)德語(yǔ)
等級(jí)考試
華為認(rèn)證
水平考試
Java認(rèn)證
職稱(chēng)計(jì)算機(jī) 微軟認(rèn)證 思科認(rèn)證 Oracle認(rèn)證 Linux認(rèn)證
公 務(wù) 員
導(dǎo)游考試
物 流 師
出版資格
單 證 員
報(bào) 關(guān) 員
外 銷(xiāo) 員
價(jià)格鑒證
網(wǎng)絡(luò)編輯
駕 駛 員
報(bào)檢員
法律顧問(wèn)
管理咨詢(xún)
企業(yè)培訓(xùn)
社會(huì)工作者
銀行從業(yè)
教師資格
營(yíng)養(yǎng)師
保險(xiǎn)從業(yè)
普 通 話
證券從業(yè)
跟 單 員
秘書(shū)資格
電子商務(wù)
期貨考試
國(guó)際商務(wù)
心理咨詢(xún)
營(yíng) 銷(xiāo) 師
司法考試
國(guó)際貨運(yùn)代理人
人力資源管理師
廣告師職業(yè)水平
衛(wèi)生資格 執(zhí)業(yè)醫(yī)師 執(zhí)業(yè)藥師 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格
基金從業(yè)資格
統(tǒng)計(jì)從業(yè)資格
經(jīng)濟(jì)師
精算師
統(tǒng)計(jì)師
會(huì)計(jì)職稱(chēng)
法律顧問(wèn)
ACCA考試
初級(jí)會(huì)計(jì)職稱(chēng)
資產(chǎn)評(píng)估師
高級(jí)經(jīng)濟(jì)師
注冊(cè)會(huì)計(jì)師
高級(jí)會(huì)計(jì)師
美國(guó)注冊(cè)會(huì)計(jì)師
審計(jì)師考試
國(guó)際內(nèi)審師
注冊(cè)稅務(wù)師
理財(cái)規(guī)劃師
一級(jí)建造師
安全工程師
設(shè)備監(jiān)理師
公路監(jiān)理師
公路造價(jià)師
二級(jí)建造師
招標(biāo)師考試
物業(yè)管理師
電氣工程師
建筑師考試
造價(jià)工程師
注冊(cè)測(cè)繪師
質(zhì)量工程師
巖土工程師
注冊(cè)給排水
造價(jià)員考試
注冊(cè)計(jì)量師
環(huán)保工程師
化工工程師
暖通工程師
咨詢(xún)工程師
結(jié)構(gòu)工程師
城市規(guī)劃師
材料員考試
消防工程師
監(jiān)理工程師
房地產(chǎn)估價(jià)
土地估價(jià)師
安全評(píng)價(jià)師
房地產(chǎn)經(jīng)紀(jì)人
投資項(xiàng)目管理師
環(huán)境影響評(píng)價(jià)師
土地登記代理人
寶寶起名
繽紛校園
實(shí)用文檔
入黨申請(qǐng)
英語(yǔ)學(xué)習(xí)
思想?yún)R報(bào)
作文大全
工作總結(jié)
求職招聘 論文下載 直播課堂

2016年全國(guó)計(jì)算機(jī)四級(jí)數(shù)據(jù)庫(kù)考試重點(diǎn)(7)

計(jì)算機(jī)等級(jí)考試時(shí)間將近,考試吧小編整理了《2016年全國(guó)計(jì)算機(jī)四級(jí)數(shù)據(jù)庫(kù)考試重點(diǎn)(7)》供各位考生參考、下載。更多計(jì)算機(jī)等級(jí)考試信息,請(qǐng)關(guān)注考試吧計(jì)算機(jī)等級(jí)考試網(wǎng)。

  點(diǎn)擊查看2016年全國(guó)計(jì)算機(jī)四級(jí)數(shù)據(jù)庫(kù)考試重點(diǎn)匯總

  十三、分布式ORACLE系統(tǒng)簡(jiǎn)介

  1.分布式體系結(jié)構(gòu)的ORACLE

  1986年,ORACLE公司推出了它的分布式體系結(jié)構(gòu)的ORACLE數(shù)據(jù)庫(kù)系統(tǒng)。該系統(tǒng)是由分布式數(shù)據(jù)庫(kù)管理系統(tǒng)(ORACLE RDBMS)、支持多種操作系統(tǒng)和通信協(xié)議的分布式處理環(huán)境軟件SQL*NET、以及與非ORACLE RDBMS聯(lián)接的軟件SQL*CONNECT這三部分組成的一個(gè)軟件群。分布式ORACLE采用了典型的開(kāi)放式體系結(jié)構(gòu),對(duì)環(huán)境的適應(yīng)范圍非常廣泛,可適應(yīng)多種通信協(xié)議、多種操作系統(tǒng)、多種硬件環(huán)境及多種DBMS和數(shù)據(jù)源。

  2.網(wǎng)絡(luò)ORACLE的連接過(guò)程

  網(wǎng)絡(luò)ORACLE的連接過(guò)程大致包括以下幾步:

  (1)確認(rèn)網(wǎng)絡(luò)結(jié)點(diǎn)是否安裝了SQL*NET,如未安裝,則需執(zhí)行:*$SYS@ORACLE:NCONFIG.COM≠進(jìn)行安裝,并且使用SGAPAD.COM重新鏈接。

  (2)確認(rèn)安裝中選取的網(wǎng)絡(luò)驅(qū)動(dòng)器與操作系統(tǒng)環(huán)境下所配置的通信協(xié)議是否相符。(3)待(1)、(2)兩項(xiàng)均確認(rèn)后,則可在服務(wù)器(Server)結(jié)點(diǎn)上建立一個(gè)命令文件。這個(gè)命令文件主要完成以下工作:指定ORACLE系統(tǒng)標(biāo)識(shí)碼SID,從而確定將哪一個(gè)ORACLE RDBMS作為服務(wù)器。這是因?yàn)橥瑱C(jī)上可運(yùn)行多個(gè)ORACLE RDBMS,指定方式為:$ASSIGN〈SID標(biāo)識(shí)碼〉ORACLE$SID指定ORACLE系統(tǒng)所在目錄:$ASSIGN〈目錄名〉SYS$ORACLE指定SQL*NET執(zhí)行代碼的邏輯名$ORASRV=SYS$ORACLE:ORASRV.EXE啟動(dòng)SQL*NET的執(zhí)行代碼$ORASRV DECNET-NSP:

  (4)待完成以后,用戶即可進(jìn)行遠(yuǎn)程訪問(wèn)。(注意兩個(gè)結(jié)點(diǎn)上的ORACLE系統(tǒng)應(yīng)處于開(kāi)啟狀態(tài))

  (5)為了加強(qiáng)網(wǎng)絡(luò)通信管理和避免沖突等原因,可以通過(guò)VAX/VMS網(wǎng)絡(luò)控制程序NCP建立一和于ORACLE網(wǎng)絡(luò)通信的缺省帳號(hào)。

  3.網(wǎng)絡(luò)ORACLE的使用

  除了以下實(shí)用程序以外,其它ORACLE實(shí)用程序和軟件工具均可以通過(guò)SQL*NET訪問(wèn)遠(yuǎn)程結(jié)點(diǎn)的ORACLE系統(tǒng)IOR AJI僅供本地使用。另外,用戶通過(guò)各種語(yǔ)言編寫(xiě)的應(yīng)用程序也可以進(jìn)行遠(yuǎn)程存取。用戶遠(yuǎn)程存取的方式非常簡(jiǎn)單,僅需要在“用戶名/口令”(ORACLE的合法用戶)后面附上結(jié)點(diǎn)信息。

  4.分布式查詢(xún)

  分布式查詢(xún)和數(shù)據(jù)傳輸,主要指用戶在前端機(jī)上執(zhí)行本地的進(jìn)程通過(guò)SQL語(yǔ)句或SQLplus命令查詢(xún)或傳輸遠(yuǎn)程結(jié)點(diǎn)上的數(shù)據(jù)。由于網(wǎng)絡(luò)ORACLE系統(tǒng)的分布式查詢(xún)功能很強(qiáng),用戶可以同時(shí)查詢(xún)多個(gè)結(jié)點(diǎn)上的數(shù)據(jù)庫(kù)數(shù)據(jù)。傳輸數(shù)據(jù)功能用于兩個(gè)結(jié)點(diǎn)之間數(shù)據(jù)及定義的復(fù)制,下面將分別介紹。ORACLE系統(tǒng)分布式查詢(xún)的功能使得一個(gè)結(jié)點(diǎn)上的用戶可以通過(guò)SQL查詢(xún)語(yǔ)句訪問(wèn)其它結(jié)點(diǎn)數(shù)據(jù)庫(kù)的數(shù)據(jù)。并且用戶還可以同時(shí)存取訪問(wèn)多個(gè)結(jié)點(diǎn)(包括本地結(jié)點(diǎn))的數(shù)據(jù),從而使數(shù)據(jù)庫(kù)的查詢(xún)功能大大增強(qiáng)。

  (1)數(shù)據(jù)庫(kù)鏈路(DATABASE LINK)為了使分布式查詢(xún)操作更加簡(jiǎn)單方便,ORACLE RDBMS為用戶提供了一個(gè)新的數(shù)據(jù)定義方式:數(shù)據(jù)庫(kù)鏈路。用戶可以通過(guò)數(shù)據(jù)庫(kù)鏈路定義,在本地結(jié)點(diǎn)和遠(yuǎn)程之間進(jìn)行查詢(xún)和連接。進(jìn)行遠(yuǎn)程訪問(wèn)的用戶需要明確:遠(yuǎn)程數(shù)據(jù)庫(kù)所在的結(jié)點(diǎn);遠(yuǎn)程結(jié)點(diǎn)上的哪個(gè)數(shù)據(jù)庫(kù);遠(yuǎn)程數(shù)據(jù)庫(kù)的哪個(gè)用戶。數(shù)據(jù)庫(kù)鏈路即用于標(biāo)識(shí)以上內(nèi)容。用戶通過(guò)SQL的CREATE DATABASE LINK語(yǔ)句定義數(shù)據(jù)庫(kù)鏈路。其格式為:CREATE[PUBLIC]DATABASE LINK鏈路名CONNECT TO用戶名INENTIFIED BY口令USING‘驅(qū)動(dòng)器前綴:結(jié)點(diǎn)名““操作系統(tǒng)用戶名口令”””::“““TASK=ORDN后綴.COM”””;如果用戶事先定義一個(gè)邏輯名:$ASSIGN結(jié)點(diǎn)名,“““操作系統(tǒng)用戶名口令”””::“““TASK=ORDN后綴.COM”””,邏輯名那么CREATE DATABASE LINK就變得十分簡(jiǎn)潔:CREATE[PUBLIC]DATABASE LINK鏈路名CONNECT TO用戶名IDENTIFIED BY口令USING‘驅(qū)動(dòng)器前綴:邏輯名’;這里PUBLIC代表公用數(shù)據(jù)庫(kù)鏈路,只有DBA才能使用PUBLIC限定詞。

  (2)遠(yuǎn)程查詢(xún)操作在數(shù)據(jù)庫(kù)鏈路定義以后,遠(yuǎn)程查詢(xún)就變得非常簡(jiǎn)單和方便。用戶訪問(wèn)查詢(xún)數(shù)據(jù)庫(kù)的表或視圖時(shí),只要在表名或視圖名后面附上數(shù)據(jù)庫(kù)鏈路名即可通過(guò)SELECT語(yǔ)句進(jìn)行查詢(xún)。其形式為:SELECT列表達(dá)式[,列表達(dá)式,…] FROM表名@數(shù)據(jù)庫(kù)鏈路名[,表名@數(shù)據(jù)庫(kù)鏈路名,…] [WHERE邏輯表達(dá)式];

  (3)定義同義名用戶可以用同義名來(lái)簡(jiǎn)化一些繁瑣的表名或視圖名。對(duì)于遠(yuǎn)程查詢(xún)操作,用戶也可以為遠(yuǎn)程數(shù)據(jù)庫(kù)的表名或視圖名定義相應(yīng)的同義名。

  (4)連接操作在遠(yuǎn)程查詢(xún)中,用戶可以連接相同(或不同)結(jié)點(diǎn)上數(shù)據(jù)庫(kù)中的表。連接(JOIN)操作可以針對(duì)以下情況:同一數(shù)據(jù)庫(kù)中的兩個(gè)表或多個(gè)表;同一結(jié)點(diǎn)不同數(shù)據(jù)庫(kù)中的兩個(gè)表或多個(gè)表;不同結(jié)點(diǎn)上數(shù)據(jù)庫(kù)中的兩個(gè)表或多個(gè)表;

  (5)查詢(xún)遠(yuǎn)程數(shù)據(jù)庫(kù)中其他用戶的數(shù)據(jù)用戶在通過(guò)數(shù)據(jù)庫(kù)鏈路進(jìn)行遠(yuǎn)程查詢(xún)時(shí),可以訪問(wèn)其他用戶的數(shù)據(jù)。數(shù)據(jù)庫(kù)鏈路的定義中指定一個(gè)遠(yuǎn)程用戶名及口令,這個(gè)用戶名被稱(chēng)為鏈路用戶名。上面所述的“其他用戶”即指非鏈路用戶。如果鏈路用戶具有訪問(wèn)其他某一用戶,記為用戶A的權(quán)限,那么,Client用戶就可以通過(guò)數(shù)據(jù)庫(kù)鏈路查詢(xún)服務(wù)器用戶A中的數(shù)據(jù)。

  (6)遠(yuǎn)程子查詢(xún)前面介紹的是基于主查詢(xún)的遠(yuǎn)程訪問(wèn)。事實(shí)上,SQL語(yǔ)句中的子查詢(xún)(Sub-query)也可以訪問(wèn)遠(yuǎn)程結(jié)點(diǎn)的數(shù)據(jù)庫(kù)數(shù)據(jù)。這種子查詢(xún)稱(chēng)為遠(yuǎn)程子查詢(xún)?汕度氩樵(xún)的語(yǔ)句有:SELECT INSERT UPDATE CREATE TABLE CREATE VIEW

  5.遠(yuǎn)程數(shù)據(jù)傳輸

  目前網(wǎng)絡(luò)ORACLE系統(tǒng)尚不能通過(guò)INSERT,UPDATE語(yǔ)句更新遠(yuǎn)程結(jié)點(diǎn)的數(shù)據(jù)庫(kù)數(shù)據(jù)。但是ORACLE提供結(jié)點(diǎn)之間傳輸數(shù)據(jù)庫(kù)數(shù)據(jù)的能力。SQL/plus的COPY命令將用于實(shí)現(xiàn)這一功能。用戶使用COPY命令可以進(jìn)行從一個(gè)結(jié)點(diǎn)(稱(chēng)為源結(jié)點(diǎn))到另一結(jié)點(diǎn)(稱(chēng)為目標(biāo)結(jié)點(diǎn))之間的數(shù)據(jù)傳輸或復(fù)制。使用COPY命令與數(shù)據(jù)庫(kù)鏈路的定義類(lèi)似,需要反映定結(jié)點(diǎn)名、數(shù)據(jù)庫(kù)(即命令文件和“用戶名/口令”。其中源描述和目標(biāo)描述分別用于指示源結(jié)點(diǎn)目標(biāo)結(jié)點(diǎn)上的結(jié)點(diǎn)名、數(shù)據(jù)庫(kù)(即命令文件)和“用戶名/口令”,下面是COPY命令的基本形式:COPY[FROM源名][TO目標(biāo)名] {APPEND|CREATE|INSERT|REPLACE} 表名[(列名[,列名…])] USING SELECT語(yǔ)句其中源名和目標(biāo)名分別用于指定源結(jié)點(diǎn)和目標(biāo)結(jié)點(diǎn)上的結(jié)點(diǎn)名、數(shù)據(jù)庫(kù)和“用戶名/口令”,如:用戶名/口令@驅(qū)動(dòng)器前綴:結(jié)點(diǎn)名“““用戶名口令”””::“““TASK=ORDN后綴.COM”””;如果事先分配了邏輯名,則源描述和目標(biāo)描述會(huì)變得更簡(jiǎn)潔一些。如果源結(jié)點(diǎn)為本地,則COPY命令可略去FROM子句。如果目標(biāo)結(jié)點(diǎn)為本地,則可除去TO子句。COPY命令將傳送數(shù)據(jù)到目標(biāo)數(shù)據(jù)庫(kù)指定表。具體傳輸?shù)臄?shù)據(jù)是子查詢(xún)的結(jié)果。其中APPEND、CREATE、INSERT和REPLACE限定詞用于指定傳輸?shù)姆绞?APPEND 將傳輸?shù)臄?shù)據(jù)加在指定表中。如果該表不存在,則先建表,再加入;INSERT 將傳輸?shù)臄?shù)據(jù)加在指定的表中。如果該表不存在,則先建表,再加入數(shù)據(jù);CREATE 建立指定的表,并加入數(shù)據(jù),如果該表存在,則出錯(cuò);REPLACE 將傳輸數(shù)據(jù)替換原表中已有的數(shù)據(jù)。

  十四、面向?qū)ο蠓椒ㄅc面向?qū)ο髷?shù)據(jù)庫(kù)

  1.面向?qū)ο蠹夹g(shù)的形成與發(fā)展

  80年代以來(lái),面向?qū)ο笳Z(yǔ)言如雨后春筍搬出現(xiàn),形成了面向?qū)ο笳Z(yǔ)言的兩大類(lèi):一類(lèi)是純面向?qū)ο蟮恼Z(yǔ)言,如Smalltalk和Eiffel等;另一類(lèi)是混合型面向?qū)ο笳Z(yǔ)言,即在過(guò)程語(yǔ)言中增加面向?qū)ο蟮臋C(jī)制,如C++、Objective-C等等,F(xiàn)在,作為80年代最流行的C語(yǔ)言的擴(kuò)充的面向?qū)ο驝++,是目前應(yīng)用最廣泛的語(yǔ)言。C++編譯產(chǎn)生的代碼性能幾乎與傳統(tǒng)的C編譯產(chǎn)生的代碼性能相同。面向?qū)ο蟮腜ascal和BASIC也已在DOS、Windows上OS/2中實(shí)現(xiàn),F(xiàn)在,面向?qū)ο蠹夹g(shù)已成為一種廣泛使用的成熟的技術(shù)和方法,有一系列成熟的商品軟件工具支持OON。OON中涉及到下列一些基本概念:信息(Information)是指對(duì)事物的一種表示或描述。對(duì)象(Object)是一個(gè)由信息及其關(guān)于信息處理的描述組成的包。消息(Message)是對(duì)某種信息的處理的描述。類(lèi)(Class)是對(duì)一個(gè)或幾個(gè)相似對(duì)象的描述。實(shí)例(Instance)是被某一個(gè)特定的類(lèi)所描述的一個(gè)對(duì)象。因此,每一個(gè)對(duì)象都是某個(gè)類(lèi)的一個(gè)實(shí)例,而類(lèi)是一些實(shí)例的全部相似特征的描述。方法(Method)是描述對(duì)象對(duì)消息的響應(yīng)。對(duì)象是一個(gè)普遍適用的基本的邏輯概念,是一個(gè)有組織形式的、含有信息的實(shí)體或結(jié)構(gòu)。它既可以表示一個(gè)抽象的概念,也可以表示一個(gè)具體的程序模塊;既可以表示軟件,也可以表示硬件。于是,OOM提供了同時(shí)在現(xiàn)實(shí)世界和機(jī)器世界進(jìn)行系統(tǒng)分析、設(shè)計(jì)和實(shí)現(xiàn)的統(tǒng)一的方法。

  2.程序設(shè)計(jì)方法學(xué)

  隨著軟件系統(tǒng)規(guī)模的擴(kuò)大和復(fù)雜性的增加,軟件的開(kāi)銷(xiāo)也驚人地增加了,而軟件的可靠性和可維護(hù)性卻明顯地下降了。為此,人們驚呼軟件危機(jī)。產(chǎn)生軟件危機(jī)的根本原因在于傳統(tǒng)的馮•諾依曼機(jī)(Von Neumann Machine)的結(jié)構(gòu)和人們求解問(wèn)題的方法的不一致性。這種不一致性主要表現(xiàn)在以下幾個(gè)方面:

  (1)語(yǔ)言的鴻溝;

  (2)程序設(shè)計(jì)的鴻溝;

  (3)Von Neumann機(jī)的鴻溝。語(yǔ)言的鴻溝是形成軟件危機(jī)的主要原因之一。從目前看,面向?qū)ο蟮恼Z(yǔ)言在緩解軟件危機(jī)方面起到了很大的作用,取得了前所未有的積極效果。

  3.面向?qū)ο蟮某绦蛟O(shè)計(jì)方法

  經(jīng)驗(yàn)告訴我們:在軟件系統(tǒng)中,“過(guò)程”或“操作”是不穩(wěn)定的、多變的,而“數(shù)據(jù)結(jié)構(gòu)”或“對(duì)象”卻是相對(duì)穩(wěn)定多了。因此,傳統(tǒng)的以過(guò)程為中心而設(shè)計(jì)的軟件的可重用性差;而以數(shù)據(jù)結(jié)構(gòu)或?qū)ο鬄橹行亩O(shè)計(jì)的軟件的可重用性較好。面向?qū)ο蟮某绦蛟O(shè)計(jì)方法以數(shù)據(jù)結(jié)構(gòu)或?qū)ο鬄橹行,力求?wèn)題在現(xiàn)實(shí)世界和機(jī)器世界中的一致性。在使用OOM進(jìn)行程序設(shè)計(jì)時(shí),首先進(jìn)行的是面向?qū)ο蟮姆治?Object Oriented Analysis)。其任務(wù)是了解問(wèn)題所涉及的對(duì)象、對(duì)象間的關(guān)系,然后在現(xiàn)實(shí)世界中構(gòu)造該問(wèn)題的對(duì)象模型,以反映所要解決的“實(shí)質(zhì)問(wèn)題”。然后,進(jìn)行面向?qū)ο蟮脑O(shè)計(jì)(Object Oriented Design),即設(shè)計(jì)軟件的對(duì)象模型。根據(jù)軟件開(kāi)發(fā)環(huán)境的功能,把問(wèn)題的對(duì)象模型從現(xiàn)實(shí)世界過(guò)渡到機(jī)器世界。在軟件系統(tǒng)內(nèi)設(shè)計(jì)出各個(gè)對(duì)象、對(duì)象間的關(guān)系(如繼承關(guān)系),對(duì)象間的通信方式(如消息模式)等等?傊,在該階段應(yīng)明確各個(gè)對(duì)象應(yīng)做些什么及其關(guān)系。面向?qū)ο蟮膶?shí)現(xiàn)(Object Oriented Implementation)是指軟件功能的具體實(shí)現(xiàn),即怎么做的實(shí)現(xiàn)其中包括對(duì)象內(nèi)部功能的實(shí)現(xiàn)、確定系統(tǒng)的用戶接口。在實(shí)際開(kāi)發(fā)一個(gè)系統(tǒng)時(shí),上述三個(gè)階段必須有機(jī)地結(jié)合在一起,F(xiàn)在提倡面向?qū)ο蟮能浖_(kāi)發(fā)方法,并進(jìn)一步規(guī)范化,還開(kāi)發(fā)了一系列OOM的軟件工具和軟件環(huán)境,以支持軟件自動(dòng)生成。

  4.面向?qū)ο蟮姆椒ǖ幕靖拍钆c特征

  實(shí)質(zhì)上,軟件是問(wèn)題及其求解方法的一種表達(dá)形式。顯然,如果軟件能直接自然地表達(dá)求解方法,則軟件不僅易于理解,而且也具有較高可靠性與可維護(hù)性。如果能按照人們通常的思維方式,在機(jī)器世界里建立問(wèn)題的模型,則可以提高軟件的模塊化和重用的可能性。面向?qū)ο蠓椒ǖ幕驹瓌t是:按照人們?cè)诂F(xiàn)實(shí)世界中的通常的思維方式建立問(wèn)題在機(jī)器世界的模型,設(shè)計(jì)盡可能自然地表現(xiàn)求解方法的軟件。在OOM中,對(duì)象(object)和消息傳遞(Message passing)分別作為表達(dá)事物及事物間相互聯(lián)系的概念。類(lèi)(class)和繼承(inheritance)作為適合人們一般思維方式的描述機(jī)制。方法(method)允許各種操作作用于某類(lèi)對(duì)象上。這種集對(duì)象、類(lèi)、消息、繼承和方法于一體的OOM的基本點(diǎn)在于對(duì)象的封裝(encapsulation)和繼承。通過(guò)封裝能將對(duì)象的定義和其實(shí)現(xiàn)分開(kāi);通過(guò)繼承能體現(xiàn)類(lèi)與類(lèi)間的關(guān)系,并由此帶來(lái)了動(dòng)態(tài)連接(dynamic binding)和實(shí)體的多態(tài)性(polymorphisim)從而構(gòu)成了OOM的基本特征。

  (1)對(duì)象為了使用計(jì)算機(jī)求解問(wèn)題,現(xiàn)實(shí)世界的對(duì)象必須表示成計(jì)算機(jī)內(nèi)部的概念,即機(jī)器世界的對(duì)象(簡(jiǎn)稱(chēng)機(jī)器對(duì)象,或?qū)ο?。為此,“對(duì)象”有在兩個(gè)不同世界的不同含義,可以從下文中區(qū)分開(kāi)來(lái)。從存儲(chǔ)角度來(lái)看,機(jī)器對(duì)象占有一塊存儲(chǔ)空間,其中有數(shù)據(jù)也有方法。從機(jī)器實(shí)現(xiàn)機(jī)制來(lái)看,機(jī)器對(duì)象中私有數(shù)據(jù)表示了對(duì)象的狀態(tài),該對(duì)象的狀態(tài)只能由私有的方法來(lái)改變它。每當(dāng)需要對(duì)象來(lái)完成一定處理工作時(shí),只能由其它對(duì)象向該對(duì)象發(fā)送消息,本對(duì)象響應(yīng)消息后按照消息模式找出匹配的方法,并執(zhí)行該方法,方法定義了該對(duì)象上的操作。

  (2)消息和方法程序的執(zhí)行是靠在對(duì)象間傳遞消息來(lái)完成的。7發(fā)送消息的對(duì)象稱(chēng)為發(fā)送者,接收消息的對(duì)象稱(chēng)為接收者。消息中僅包含發(fā)送者的要求,它只告訴接收者需要完成哪些處理,但并不指示接收者應(yīng)如何完成這些處理。消息完全由接收者解釋?zhuān)Q定完成所需的處理的方式。一個(gè)對(duì)象可以接收不同形式、不同內(nèi)容的多個(gè)消息;相同形式的消息可以發(fā)往不同的對(duì)象。不同的對(duì)象對(duì)形式相同的消息可以有不同的解釋?zhuān)蚨梢宰鞒霾煌姆磻?yīng)。這里,反應(yīng)并不是必需的。這與子程序的調(diào)用/返回有明顯的不同。把全部對(duì)象分成各種對(duì)象表,每個(gè)類(lèi)都定義一組所謂“方法”。方法實(shí)際上是允許作用于該類(lèi)對(duì)象上的各種操作。當(dāng)一個(gè)面向?qū)ο蟮某绦蛟谶\(yùn)行期間,一般要做三件事:

  (1)根據(jù)需要?jiǎng)?chuàng)建對(duì)象;

  (2)從一個(gè)對(duì)象(或用戶)向另一個(gè)對(duì)象傳遞消息;

  (3)若不再需要該對(duì)象時(shí),應(yīng)刪除它,并回收它所占用的存儲(chǔ)單元。

  (3)類(lèi)和類(lèi)的層次在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,對(duì)象是程序的基本單位。相似的對(duì)象,可以像傳統(tǒng)程序設(shè)計(jì)語(yǔ)言中的變量與類(lèi)型關(guān)系一樣,歸并到一類(lèi)(class)中去。程序員只需定義一個(gè)類(lèi)對(duì)象,就可以得到若干實(shí)例(instance),作為可以使用的對(duì)象。具體地說(shuō),類(lèi)由方法和數(shù)據(jù)組成,是關(guān)于一類(lèi)對(duì)象的性質(zhì)的描述。它包括外部特性和內(nèi)部特性?xún)蓚(gè)方面。通過(guò)描述消息模式及其相應(yīng)的處理能力來(lái)定義對(duì)象的外部特性。通過(guò)描述內(nèi)部狀態(tài)的表現(xiàn)形式及固有的處理能力的實(shí)現(xiàn)來(lái)定義對(duì)象的內(nèi)部實(shí)現(xiàn)特性。對(duì)象是在執(zhí)行過(guò)程中,根據(jù)對(duì)象所屬的類(lèi),動(dòng)態(tài)地生成的。一個(gè)類(lèi)可以生成多個(gè)不同的對(duì)象。同一類(lèi)對(duì)象具有相同的特性。一個(gè)對(duì)象的內(nèi)部狀態(tài)只能由其自身來(lái)修改,任何別的地象都不可能修改它。因此,同一個(gè)類(lèi)的對(duì)象,雖然在內(nèi)部狀態(tài)的表現(xiàn)形式上相同,但它們可以有不同的內(nèi)部狀態(tài),故此這些對(duì)象并不完全一模一樣。一個(gè)類(lèi)的上層可以有超類(lèi)(superclass),下層可以有子類(lèi)(subclass),這樣形成了一種類(lèi)的層次結(jié)構(gòu)。層次結(jié)構(gòu)的一個(gè)重要特點(diǎn)是繼承性,一個(gè)類(lèi)可以直接或間接地繼承其超類(lèi)的全部描述。繼承性具有傳遞性。一個(gè)類(lèi)可以有多個(gè)子類(lèi),也可以有多個(gè)超類(lèi)。抽象類(lèi)(abstract class)是一種不能建立實(shí)例的類(lèi)。抽象類(lèi)將有關(guān)的類(lèi)組合在一起,提供了一個(gè)公共的根,其它一些子類(lèi)從這個(gè)根派生出來(lái)。通常一個(gè)抽象類(lèi)只描述了這個(gè)類(lèi)的 有關(guān)的操作接口;蛘卟僮鞯牟糠謱(shí)現(xiàn);完整的實(shí)現(xiàn)則被留給一個(gè)或幾個(gè)子類(lèi),抽象類(lèi)一般用于定義一種協(xié)議或概念。

  (4)繼承性繼承性(inherintance)是自動(dòng)地共享子類(lèi)、超類(lèi)和對(duì)象中的方法和數(shù)據(jù)的一種機(jī)制。如果沒(méi)有繼承性,不同類(lèi)中的對(duì)象中的數(shù)據(jù)和方法就可能出現(xiàn)大量的重復(fù)。繼承性比較自然地體現(xiàn)了對(duì)象間的聯(lián)系。

  (5)封裝性封裝是一種信息隱蔽技術(shù),用戶只能看到對(duì)象封裝界面上的信息,對(duì)象內(nèi)部的信息對(duì)用戶是隱蔽的。封裝的目的是使對(duì)象的使用者和對(duì)象的設(shè)計(jì)者分開(kāi),使用者不必知道實(shí)現(xiàn)的具體細(xì)節(jié),只須按設(shè)計(jì)者的要求來(lái)訪問(wèn)對(duì)象,這樣方便于系統(tǒng)的集成。封裝是一種強(qiáng)有力的系統(tǒng)集成手段。封裝和類(lèi)說(shuō)明有關(guān)。一個(gè)類(lèi)的每一個(gè)實(shí)例都是一個(gè)單獨(dú)的封裝(或組件)。顯式地把對(duì)象的規(guī)格說(shuō)明(specification)和對(duì)象的實(shí)現(xiàn)分開(kāi)是面向?qū)ο蟮囊淮筇厣。封裝本身即是一個(gè)模塊,把對(duì)象的定義模塊和實(shí)現(xiàn)模塊分開(kāi),從而使得維護(hù)和修改變得方便。

  (6)多態(tài)性所謂多態(tài)(polymorphic),即一個(gè)名字可以具有多種語(yǔ)義。多態(tài)與動(dòng)態(tài)類(lèi)型和靜態(tài)類(lèi)型有關(guān)。動(dòng)態(tài)類(lèi)型是指在執(zhí)行期間可以改變的類(lèi)型。靜態(tài)類(lèi)型是在程序文本中聲明時(shí)確定下來(lái)的類(lèi)型。在面向?qū)ο蟮南到y(tǒng)中,利用重名這樣多義性不會(huì)帶來(lái)混亂,并且為需求分析和設(shè)計(jì)帶來(lái)了好處。

  5.動(dòng)態(tài)聚束

  聚束(binding)其實(shí)并不是一個(gè)新概念。一個(gè)程序經(jīng)編譯到連接成為可運(yùn)行的目標(biāo)代碼,就是將可執(zhí)行代碼聚束在一起。用傳統(tǒng)語(yǔ)言寫(xiě)的程序在運(yùn)行之前即可聚束,故此稱(chēng)之為靜態(tài)聚束(static binding)。而面向?qū)ο笳Z(yǔ)言則在程序運(yùn)行時(shí)可發(fā)生聚束,故稱(chēng)之為動(dòng)態(tài)聚束(dynamic binding)。動(dòng)態(tài)聚束增加了程序的簡(jiǎn)單性和可擴(kuò)充性,使程序增刪自如,不易出錯(cuò),但效率略低。應(yīng)該指出,靜態(tài)聚束運(yùn)行效率高,但修改維護(hù)時(shí)工作量大。

  6.面向?qū)ο蟮南到y(tǒng)分析方法

  系統(tǒng)分析過(guò)程就是提取一個(gè)系統(tǒng)的需求過(guò)程,即是指為了滿足用戶的需求,系統(tǒng)必須做什么,而不是指系統(tǒng)如何實(shí)現(xiàn)。系統(tǒng)分析通常是一個(gè)需求文檔開(kāi)始點(diǎn),同用戶進(jìn)行一系列的討論為開(kāi)端。一般來(lái)說(shuō),參加制定文檔的人應(yīng)包括系統(tǒng)的最終用戶、問(wèn)題域?qū)<、系統(tǒng)的開(kāi)發(fā)者以及其它感興趣的人。在過(guò)去的10年中,已經(jīng)在系統(tǒng)分析中使用了功能分解法、數(shù)據(jù)流法、信息模擬法。最近研究了面向?qū)ο蠓治?OOA)方法。下面將綜述這4種主要的需求分析方法。

  (1)功能分解法 它可表示為功能=子功能+子功能接口

  (2)數(shù)據(jù)流法 數(shù)據(jù)流法,即通常所說(shuō)的結(jié)構(gòu)分析法,它可表示為數(shù)據(jù)流=數(shù)據(jù)存儲(chǔ)+數(shù)據(jù)變換+過(guò)程說(shuō)明+數(shù)據(jù)字典

  (3)信息模擬法 信息模擬的主要建模工具是實(shí)體-關(guān)系圖,現(xiàn)已發(fā)展成為語(yǔ)義數(shù)據(jù)模型。信息模擬法可以表示為信息模擬法=對(duì)象+屬性+關(guān)系+超類(lèi)+子類(lèi)+對(duì)象

  (4)面向?qū)ο蠓?面向?qū)ο蟮暮x很廣,因?yàn)椤皩?duì)象”一詞可以在不同領(lǐng)域有不同的解釋?zhuān)嫦驅(qū)ο蟮目梢员硎緸槊嫦驅(qū)ο蠓?對(duì)象+類(lèi)+繼承+消息通信面向?qū)ο蠓治鍪墙⒃谛畔⒛M和面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的概念基礎(chǔ)之上的。作為一個(gè)比較全面的方法,面向?qū)ο蠓治鲇?個(gè)步驟組成:①確定類(lèi)和對(duì)象;②識(shí)別結(jié)構(gòu);③識(shí)別主題;④定義屬性;⑤定義方法,F(xiàn)在已有了一些面向?qū)ο蠓治龅腃ASE工具支持OOA,以加速OOA的自動(dòng)化和標(biāo)準(zhǔn)化。

  7.面向?qū)ο笤O(shè)計(jì)和面向?qū)ο髮?shí)現(xiàn)

  從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(jì)是一個(gè)逐步擴(kuò)充的細(xì)分過(guò)程,同傳統(tǒng)的實(shí)體關(guān)系模型為基礎(chǔ)的系統(tǒng)分析和設(shè)計(jì)類(lèi)似,面向?qū)ο蟮脑O(shè)計(jì)使用的是面向?qū)ο蟮母拍钅P。在面向(qū)ο蟮母拍钅P椭幸悦嫦驅(qū)ο蠓椒ㄖ械幕靖拍顬榛A(chǔ)。最后,使用面向?qū)ο蟮恼Z(yǔ)言,對(duì)設(shè)計(jì)的概念模型加以實(shí)現(xiàn)。限于篇幅不再詳細(xì)討論

  相關(guān)推薦:

  2016計(jì)算機(jī)四級(jí)數(shù)據(jù)庫(kù)復(fù)習(xí)重難點(diǎn)匯總

  各地計(jì)算機(jī)等級(jí)考試報(bào)名入口及官方網(wǎng)站匯總

  計(jì)算機(jī)等級(jí)考試通關(guān)必看:一至四級(jí)備考經(jīng)驗(yàn)分享

文章搜索
版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。
Copyright © 2004- 考試吧計(jì)算機(jī)等級(jí)考試網(wǎng) All Rights Reserved 
中國(guó)科學(xué)院研究生院權(quán)威支持(北京)
在線模擬試題
考證通關(guān)殺器
考試最新資訊
學(xué)
一次通關(guān)技巧