❶ 網站建設用到什麼語言
目前,最常用的四種動態網站建設語言有:ASP、ASP.net、PHP和jsP.
網頁從開始簡單的hmtl到復雜的服務語言,走過了10多個年頭,各種技術層出不窮,單個的主流技術也在不斷翻新的版本,現在分析下各種語言的區別、優勢、劣勢、開發注意事項!
HTML:當然這是網頁最基本的語言,每一個伺服器語言都需要它的支持,要學習,這個肯定是開始,不說了.
主流網站開發語言之ASP:ASP是微軟(Microsoft)所開發的一種後台腳本語言,它的語法和Visual BASIC類似,可以像SSI(Server Side Include)那樣把後台腳本代碼內嵌到HTML頁面中。雖然ASP簡單易用,但是它自身存在著許多缺陷,最重要的就是安全性問題。目前在微軟的 .net 戰略中新推出的ASP.net 借鑒了java技術的優點,使用C Sharp (C#) 語言作為ASP.net的推薦語言,同時改進了以前ASP的安全性差等缺點。但是,使用ASP/ASP.net仍有一定的局限性,因為從某種角度來說它們只能在微軟的 Windows NT/2000/XP + IIS的伺服器平台上良好運行(雖然像ChilliSoft提供了在UNIX/linux上運行ASP的解決方案,但是目前ASP在UNIX/Linux上的應用可以說幾乎為0)。所以平台的局限性和ASP自身的安全性限制了ASP的廣泛應用。
ASP在執行的時候,是由IIS調用程序引擎,解釋執行嵌在HTML中的ASP代碼,最終將結果和原來的HTML一同送往客戶端
主流網站開發語言之PHP:PHP 的全名非常有趣,它是一個巢狀的縮寫名稱——「PHP: Hypertext Preprocessor」,打開縮寫還是縮寫。PHP是一種HTML 內嵌式的語言 (就像上面講的ASP那樣)。而 PHP 獨特的語法混合了C,Java,Perl以及 PHP 式的新語法。它可以比 CGI 或者 Perl 更快速地執行動態網頁。
PHP的源代碼完全公開,在 Open Source 意識抬頭的今天,它更是這方面的中流砥柱。不斷地有新的函數庫加入,以及不停地更新,使得 PHP 無論在 UNIX 或是 Win32 的平台上都可以有更多新的功能。它提供豐富的函數,使得在程式設計方面有著更好的資源。目前PHP的最新版本為4.1.1 ,它可以在Win32以及UNIX/Linux等幾乎所有的平台上良好工作。PHP在4.0版後使用了全新的Zend引擎,其在最佳化之後的效率,比較傳統 CGI 或者 ASP 等技術有了更好的表現。
平台無關性是PHP的最大優點,但是在優點的背後,還是有一些小小的缺點的。如果在PHP中不使用ODBC,而用其自帶的資料庫函數(這樣的效率要比使用ODBC高)來連接資料庫的話, 使用不同的資料庫,PHP的函數名不能統一。這樣,使得程序的移植變得有些麻煩。不過,作為目前應用最為廣泛的一種後台語言,PHP的優點還是異常明顯的。
主流網站開發語言之ASP.NET:ASP.net是Microsoft.net的一部分,作為戰略產品,不僅僅是 Active Server Page (ASP) 的下一個版本;它還提供了一個統一的 Web 開發模型,其中包括開發人員生成企業級 Web 應用程序所需的各種服務。ASP.NET 的語法在很大程度上與 ASP 兼容,同時它還提供一種新的編程模型和結構,可生成伸縮性和穩定性更好的應用程序,並提供更好的安全保護。可以通過在現有 ASP 應用程序中逐漸添加 ASP.NET 功能,隨時增強 ASP 應用程序的功能。ASP.NET 是一個已編譯的、基於 .NET 的環境,可以用任何與 .NET 兼容的語言(包括 Visual Basic .NET、C# 和 JScript .NET.)創作應用程序。另外,任何 ASP.NET 應用程序都可以使用整個 .NET Framework。開發人員可以方便地獲得這些技術的優點,其中包括託管的公共語言運行庫環境、類型安全、繼承等等。ASP.NET 可以無縫地與 WYSIWYG HTML 編輯器和其他編程工具(包括 Microsoft Visual Studio .NET)一起工作。這不僅使得 Web 開發更加方便,而且還能提供這些工具必須提供的所有優點,包括開發人員可以用來將伺服器控制項拖放到 Web 頁的 GUI 和完全集成的調試支持。微軟為ASP.net設計了這樣一些策略:易於寫出結構清晰的代碼、代碼易於重用和共享、可用編譯類語言編寫等等,目的是讓程序員更容易開發出Web應用,滿足計算向Web轉移的戰略需要。
如今主流的Web伺服器軟體主要由IIS或Apache組成。IIS支持ASP且只能運行在Windows平台下,Apache支持PHP,CGI,JSP且可運行於多種平台,雖然Apache是世界使用排名第一的Web伺服器平台,但是眾所周知,Windows以易用而出名,也因此占據不少的伺服器市場。
我們常用的開發組合:
IIS環境下
1.ASP+ACCESS
2.ASP+SQL SERVER
3.ASP.NET+ACCESS
4.ASP.NET+SQL SERVER
5.PHP+MYSQL
下面比較一下ASP、ASP.net、JSP和PHP的優點和缺點:
ASP優點:
1. 無需編譯
2. 易於生成
3. 獨立於瀏覽器
4. 面向對象
5. 與任何ActiveX scripting 語言兼容
6. 源程序碼不會外漏
缺點:
1、Windows本身的所有問題都會一成不變的也累加到了它的身上。安全性、穩定性、跨平台性都會因為與NT的捆綁而顯現出來。
2、ASP由於使用了COM組件所以它會變的十分強大,但是這樣的強大由於Windows NT系統最初的設計問題而會引發大量的安全問題。只要在這樣的組件或是操作中一不注意,哪么外部攻擊就可以取得相當高的許可權而導致網站癱瘓或者數據丟失。
3、由於ASP還是一種Script語言所沒除了大量使用組件外,沒有辦法提高其工作效率。它必須面對即時編繹的時間考驗,同時我們還不知其背後的組件會是一個什麼樣的狀況。
4、無法實現跨操作系統的應用。當然這也是微軟的理由之一,只有這樣才能發揮ASP最佳的能力。可是我卻認為正是Windows限制了ASP,ASP的概念本就是為一個能讓系統運行於一個大的多樣化環境而設計的。
5、還無法完全實現一些企業級的功能:完全的集群、負載均橫。
ASP.NET優點:
1. 簡潔的設計和實施。
2. 語言靈活,並支持復雜的面向對象特性。
3. 開發環境。
缺點:
1.資料庫的連接復雜。
PHP優點:
1、 一種能快速學習、跨平台、有良好資料庫交互能力的開發語言。
2、 簡單輕便,易學易用。
3、 與Apache及其它擴展庫結合緊密。
4、 良好的安全性。
缺點:
1、 資料庫支持的極大變化。
2、 不適合應用於大型電子商務站點
3、 安裝復雜。
4、 缺少正規的商業支持。
5、 無法實現商品化應用的開發。
❷ db2 資料庫中[jcc][t4][10234][10927][4.25.13] 未使用標記來傳遞 SQL。 ERRORCODE=-4462, SQLSTATE=null
IBM DB2企業伺服器版本,是美國IBM公司發展的一套關系型資料庫管理系統。它主要的執行環境為UNIX(包括IBM自家的AIX)、Linux、IBM i(舊稱OS/400)、z/OS,以及Windows伺服器版本。DB2也提供性能強大的各稱IBM InfoSphere Warehouse版本。和DB2同級的還有另外一個關系型資料庫管理系統:Informix,它在2001年被IBM收購。
除了它可以提供主流的OS/390和VM操作系統,以及中等規模的AS/400系統之外,IBM還提供了跨平台(包括基於UNIX的LINUX,HP-UX,SunSolaris,以及SCOUnixWare;還有用於個人電腦的OS/2操作系統,以及微軟的Windows 2000和其早期的系統)的DB2產品。DB2資料庫可以通過使用微軟的開放資料庫連接(ODBC)介面,Java資料庫連接(JDBC)介面,或者CORBA介面代理被任何的應用程序訪問。 IBM公司研製的一種關系型資料庫系統。DB2主要應用於大型應用系統,具有較好的可伸縮性,可支持從大型機到單用戶環境,應用於OS/2、Windows等平台下。 DB2提供了高層次的數據利用性、完整性、安全性、可恢復性,以及小規模到大規模應用程序的執行能力,具有與平台無關的基本功能和SQL命令。DB2採用了數據分級技術,能夠使大型機數據很方便地下載到LAN資料庫伺服器,使得客戶機/伺服器用戶和基於LAN的應用程序可以訪問大型機數據,並使資料庫本地化及遠程連接透明化。 它以擁有一個非常完備的查詢優化器而著稱,其外部連接改善了查詢性能,並支持多任務並行查詢。 DB2具有很好的網路支持能力,每個子系統可以連接十幾萬個分布式用戶,可同時激活上千個活動線程,對大型分布式應用系統尤為適用。
2006年7月14日,IBM全球同步發布了一款具有劃時代意義的資料庫產品——DB2 9(「DB2」是IBM資料庫產品系列的名稱)。而這款新品最大特點即是率先實現了可擴展標記語言(XML)和關系數據間的無縫交互,而無需考慮數據的格式、平台或位置。
❸ java,web程序設計要學些什麼
第一階段:Java基礎,包括java語法,面向對象特徵,常見API,集合框架; (基礎)
第二階段:java界面編程,包括AWT,事件機制,SWING,(不常用)這個部分也可以跳過,用的時候再看都能來及;
第三階段:java API:輸入輸出,多線程,網路編程,反射註解等,java的精華部分(重點);
第四階段:資料庫SQL基礎,包括增刪改查操作以及多表查詢; Oracle Mysql
第五階段:JDBC編程:包括JDBC原理,JDBC連接庫,JDBC API,雖然現在Hibernate比JDBC要方便許多,但是JDBC技術仍然在使用,JDBC思想尤為重要;
第六階段:JDBC深入理解高級特性:包括資料庫連接池,存儲過程,觸發器,CRM思想(高級)這個比較不好懂,有時間的可以學習;
第七階段:HTML語言學習,包括HTML標簽,表單標簽以及CSS,這是Web應用開發的基礎;
第八階段:JavaScript腳本語言,包括javaScript語法和對象,Ajax基礎 ;就這兩個方面的內容;
第九階段:Servlet開發,從此開始踏入javaWeb開發的重要一步,包括XML,Tomcat伺服器的安裝使用操作,HTTP協議簡單理解,Servlet API等,java web開發的基礎。 (重要)
第十階段:JSP開發:JSP語法和標簽,自定義標簽,EL,JSTL庫了解以及MVC三層架構的設計模式理念;
第十一階段:AJAX開發:AJAX原理,請求響應處理,AJAX開發庫,Jquery;
第十二階段:三大框架-struts、spring、hibernate,javaWeb的精華部分(重要)
第十三階段:其他框架學習-springMVC、mybatis,目前比較主流的框架
第十四階段:當學習完這些知識後,你就可以深層次的學習一些企業框架,Maven、redis、log4j等等
第十五階段:一般現在的公司企業用的系統伺服器都是linux,所以有興趣的可以學習一下,linux的各種命令
❹ 編程高手來啊!!!!!急啊!!!!!
MD5的Java Bean實現
MD5簡介
MD5的全稱是Message-Digest Algorithm 5,在90年代初由MIT的計算機科學實驗室和RSA Data Security Inc發明,經MD2、MD3和MD4發展而來。
Message-Digest泛指位元組串(Message)的Hash變換,就是把一個任意長度的位元組串變換成一定長的大整數。請注意我使用了「位元組串」而不是「字元串」這個詞,是因為這種變換只與位元組的值有關,與字元集或編碼方式無關。
MD5將任意長度的「位元組串」變換成一個128bit的大整數,並且它是一個不可逆的字元串變換演算法,換句話說就是,即使你看到源程序和演算法描述,也無法將一個MD5的值變換回原始的字元串,從數學原理上說,是因為原始的字元串有無窮多個,這有點象不存在反函數的數學函數。
MD5的典型應用是對一段Message(位元組串)產生fingerprint(指紋),以防止被「篡改」。舉個例子,你將一段話寫在一個叫readme.txt文件中,並對這個readme.txt產生一個MD5的值並記錄在案,然後你可以傳播這個文件給別人,別人如果修改了文件中的任何內容,你對這個文件重新計算MD5時就會發現。如果再有一個第三方的認證機構,用MD5還可以防止文件作者的「抵賴」,這就是所謂的數字簽名應用。
MD5還廣泛用於加密和解密技術上,在很多操作系統中,用戶的密碼是以MD5值(或類似的其它演算法)的方式保存的,用戶Login的時候,系統是把用戶輸入的密碼計算成MD5值,然後再去和系統中保存的MD5值進行比較,而系統並不「知道」用戶的密碼是什麼。
一些黑客破獲這種密碼的方法是一種被稱為「跑字典」的方法。有兩種方法得到字典,一種是日常搜集的用做密碼的字元串表,另一種是用排列組合方法生成的,先用MD5程序計算出這些字典項的MD5值,然後再用目標的MD5值在這個字典中檢索。
即使假設密碼的最大長度為8,同時密碼只能是字母和數字,共26+26+10=62個字元,排列組合出的字典的項數則是P(62,1)+P(62,2)….+P(62,8),那也已經是一個很天文的數字了,存儲這個字典就需要TB級的磁碟組,而且這種方法還有一個前提,就是能獲得目標賬戶的密碼MD5值的情況下才可以。
在很多電子商務和社區應用中,管理用戶的Account是一種最常用的基本功能,盡管很多Application Server提供了這些基本組件,但很多應用開發者為了管理的更大的靈活性還是喜歡採用關系資料庫來管理用戶,懶惰的做法是用戶的密碼往往使用明文或簡單的變換後直接保存在資料庫中,因此這些用戶的密碼對軟體開發者或系統管理員來說可以說毫無保密可言,本文的目的是介紹MD5的Java Bean的實現,同時給出用MD5來處理用戶的Account密碼的例子,這種方法使得管理員和程序設計者都無法看到用戶的密碼,盡管他們可以初始化它們。但重要的一點是對於用戶密碼設置習慣的保護。
有興趣的讀者可以從這里取得MD5也就是RFC 1321的文本。http://www.ietf.org/rfc/rfc1321.txt
實現策略
MD5的演算法在RFC1321中實際上已經提供了C的實現,我們其實馬上就能想到,至少有兩種用Java實現它的方法,第一種是,用Java語言重新寫整個演算法,或者再說簡單點就是把C程序改寫成Java程序。第二種是,用JNI(Java Native Interface)來實現,核心演算法仍然用這個C程序,用Java類給它包個殼。
但我個人認為,JNI應該是Java為了解決某類問題時的沒有辦法的辦法(比如與操作系統或I/O設備密切相關的應用),同時為了提供和其它語言的互操作性的一個手段。使用JNI帶來的最大問題是引入了平台的依賴性,打破了SUN所鼓吹的「一次編寫到處運行」的Java好處。因此,我決定採取第一種方法,一來和大家一起嘗試一下「一次編寫到處運行」的好處,二來檢驗一下Java 2現在對於比較密集的計算的效率問題。
實現過程
限於這篇文章的篇幅,同時也為了更多的讀者能夠真正專注於問題本身,我不想就某一種Java集成開發環境來介紹這個Java Bean的製作過程,介紹一個方法時我發現步驟和命令很清晰,我相信有任何一種Java集成環境三天以上經驗的讀者都會知道如何把這些代碼在集成環境中編譯和運行。用集成環境講述問題往往需要配很多屏幕截圖,這也是我一直對集成環境很頭疼的原因。我使用了一個普通的文本編輯器,同時使用了Sun公司標準的JDK 1.3.0 for Windows NT。
其實把C轉換成Java對於一個有一定C語言基礎的程序員並不困難,這兩個語言的基本語法幾乎完全一致.我大概花了一個小時的時間完成了代碼的轉換工作,我主要作了下面幾件事:
把必須使用的一些#define的宏定義變成Class中的final static,這樣保證在一個進程空間中的多個Instance共享這些數據
刪去了一些無用的#if define,因為我只關心MD5,這個推薦的C實現同時實現了MD2 MD3和 MD4,而且有些#if define還和C不同編譯器有關
將一些計算宏轉換成final static 成員函數。
所有的變數命名與原來C實現中保持一致,在大小寫上作一些符合Java習慣的變化,計算過程中的C函數變成了private方法(成員函數)。
關鍵變數的位長調整
定義了類和方法
需要注意的是,很多早期的C編譯器的int類型是16 bit的,MD5使用了unsigned long int,並認為它是32bit的無符號整數。而在Java中int是32 bit的,long是64 bit的。在MD5的C實現中,使用了大量的位操作。這里需要指出的一點是,盡管Java提供了位操作,由於Java沒有unsigned類型,對於右移位操作多提供了一個無符號右移:>>>,等價於C中的 >> 對於unsigned 數的處理。
因為Java不提供無符號數的運算,兩個大int數相加就會溢出得到一個負數或異常,因此我將一些關鍵變數在Java中改成了long類型(64bit)。我個人認為這比自己去重新定義一組無符號數的類同時重載那些運算符要方便,同時效率高很多並且代碼也易讀,OO(Object Oriented)的濫用反而會導致效率低下。
限於篇幅,這里不再給出原始的C代碼,有興趣對照的讀者朋友可以去看RFC 1321。MD5.java源代碼
測試
在RFC 1321中,給出了Test suite用來檢驗你的實現是否正確:
MD5 ("") =
MD5 ("a") =
MD5 ("abc") =
MD5 ("message digest") =
MD5 ("abcdefghijklmnopqrstuvwxyz") =
……
這些輸出結果的含義是指:空字元串」」的MD5值是,字元串」a」的MD5值是……
編譯並運行我們的程序:
javac –d . MD5.java
java beartool.MD5
為了將來不與別人的同名程序沖突,我在我的程序的第一行使用了package beartool;
因此編譯命令javac –d . MD5.java 命令在我們的工作目錄下自動建立了一個beartool目錄,目錄下放著編譯成功的 MD5.class
我們將得到和Test suite同樣的結果。當然還可以繼續測試你感興趣的其它MD5變換,例如:
java beartool.MD5 1234
將給出1234的MD5值。
可能是我的計算機知識是從Apple II和Z80單板機開始的,我對大寫十六進制代碼有偏好,如果您想使用小寫的Digest String只需要把byteHEX函數中的A、B、C、D、E、F改成a、b、 c、d、e、f就可以了。
MD5據稱是一種比較耗時的計算,我們的Java版MD5一閃就算出來了,沒遇到什麼障礙,而且用肉眼感覺不出來Java版的MD5比C版的慢。
為了測試它的兼容性,我把這個MD5.class文件拷貝到我的另一台Linux+IBM JDK 1.3的機器上,執行後得到同樣結果,確實是「一次編寫到處運行了」。
Java Bean簡述
現在,我們已經完成並簡單測試了這個Java Class,我們文章的標題是做一個Java Bean。
其實普通的Java Bean很簡單,並不是什麼全新的或偉大的概念,就是一個Java的Class,盡管 Sun規定了一些需要實現的方法,但並不是強制的。而EJB(Enterprise Java Bean)無非規定了一些必須實現(非常類似於響應事件)的方法,這些方法是供EJB Container使用(調用)的。
在一個Java Application或Applet里使用這個bean非常簡單,最簡單的方法是你要使用這個類的源碼工作目錄下建一個beartool目錄,把這個class文件拷貝進去,然後在你的程序中import beartool.MD5就可以了。最後打包成.jar或.war是保持這個相對的目錄關系就行了。
Java還有一個小小的好處是你並不需要摘除我們的MD5類中那個main方法,它已經是一個可以工作的Java Bean了。Java有一個非常大的優點是她允許很方便地讓多種運行形式在同一組代碼中共存,比如,你可以寫一個類,它即是一個控制台Application和GUI Application,同時又是一個Applet,同時還是一個Java Bean,這對於測試、維護和發布程序提供了極大的方便,這里的測試方法main還可以放到一個內部類中,有興趣的讀者可以參考:http://www.cn.ibm.com/developerWorks/java/jw-tips/tip106/index.shtml
這里講述了把測試和示例代碼放在一個內部靜態類的好處,是一種不錯的工程化技巧和途徑。
把Java Bean裝到JSP里
正如我們在本文開頭講述的那樣,我們對這個MD5 Bean的應用是基於一個用戶管理,這里我們假設了一個虛擬社區的用戶login過程,用戶的信息保存在資料庫的個名為users的表中。這個表有兩個欄位和我們的這個例子有關,userid :char(20)和pwdmd5 :char(32),userid是這個表的Primary Key,pwdmd5保存密碼的MD5串,MD5值是一個128bit的大整數,表示成16進制的ASCII需要32個字元。
這里給出兩個文件,login.html是用來接受用戶輸入的form,login.jsp用來模擬使用MD5 Bean的login過程。
為了使我們的測試環境簡單起見,我們在JSP中使用了JDK內置的JDBC-ODBC Bridge Driver,community是ODBC的DSN的名字,如果你使用其它的JDBC Driver,替換掉login.jsp中的
Connection con= DriverManager.getConnection("jdbc:odbc:community", "", "");
即可。
login.jsp的工作原理很簡單,通過post接收用戶輸入的UserID和Password,然後將Password變換成MD5串,然後在users表中尋找UserID和pwdmd5,因為UserID是users表的Primary Key,如果變換後的pwdmd5與表中的記錄不符,那麼SQL查詢會得到一個空的結果集。
這里需要簡單介紹的是,使用這個Bean只需要在你的JSP應用程序的WEB-INF/classes下建立一個beartool目錄,然後將MD5.class拷貝到那個目錄下就可以了。如果你使用一些集成開發環境,請參考它們的deploy工具的說明。在JSP使用一個java Bean關鍵的一句聲明是程序中的第2行:
<jsp:useBean id='oMD5' scope='request' class='beartool.MD5'/>
這是所有JSP規范要求JSP容器開發者必須提供的標准Tag。
id=實際上是指示JSP Container創建Bean的實例時用的實例變數名。在後面的<%和%>之間的Java程序中,你可以引用它。在程序中可以看到,通過 pwdmd5=oMD5.getMD5ofStr (password)引用了我們的MD5 Java Bean提供的唯一一個公共方法: getMD5ofStr。
Java Application Server執行.JSP的過程是先把它預編譯成.java(那些Tag在預編譯時會成為java語句),然後再編譯成.class。這些都是系統自動完成和維護的,那個.class也稱為Servlet。當然,如果你願意,你也可以幫助Java Application Server去干本該它乾的事情,自己直接去寫Servlet,但用Servlet去輸出HTML那簡直是回到了用C寫CGI程序的惡夢時代。
如果你的輸出是一個復雜的表格,比較方便的方法我想還是用一個你所熟悉的HTML編輯器編寫一個「模板」,然後在把JSP代碼「嵌入」進去。盡管這種JSP代碼被有些專家指責為「空心粉」,它的確有個缺點是代碼比較難管理和重復使用,但是程序設計永遠需要的就是這樣的權衡。我個人認為,對於中、小型項目,比較理想的結構是把數據表示(或不嚴格地稱作WEB界面相關)的部分用JSP寫,和界面不相關的放在Bean裡面,一般情況下是不需要直接寫Servlet的。
如果你覺得這種方法不是非常的OO(Object Oriented),你可以繼承(extends)它一把,再寫一個bean把用戶管理的功能包進去。
到底能不能兼容?
我測試了三種Java應用伺服器環境,Resin 1.2.3、Sun J2EE 1.2、IBM WebSphere 3.5,所幸的是這個Java Bean都沒有任何問題,原因其實是因為它僅僅是個計算程序,不涉及操作系統,I/O設備。其實用其它語言也能簡單地實現它的兼容性的,Java的唯一優點是,你只需提供一個形態的運行碼就可以了。請注意「形態」二字,現在很多計算結構和操作系統除了語言本身之外都定義了大量的代碼形態,很簡單的一段C語言核心代碼,轉換成不同形態要考慮很多問題,使用很多工具,同時受很多限制,有時候學習一種新的「形態」所花費的精力可能比解決問題本身還多。比如光Windows就有EXE、Service、的普通DLL、COM DLL以前還有OCX等等等等,在Unix上雖說要簡單一些,但要也要提供一個.h定義一大堆宏,還要考慮不同平台編譯器版本的位長度問題。我想這是Java對我來說的一個非常重要的魅力吧。
MD5演算法說明
一、補位
二、補數據長度
三、初始化MD5參數
四、處理位操作函數
五、主要變換過程
六、輸出結果
補位:
MD5演算法先對輸入的數據進行補位,使得數據位長度LEN對512求余的結果是448。即數據擴展至K*512+448位。即K*64+56個位元組,K為整數。
具體補位操作:補一個1,然後補0至滿足上述要求。
補數據長度:
用一個64位的數字表示數據的原始長度B,把B用兩個32位數表示。這時,數
據就被填補成長度為512位的倍數。
初始化MD5參數:
四個32位整數 (A,B,C,D) 用來計算信息摘要,初始化使用的是十六進製表
示的數字
A=0X01234567
B=0X89abcdef
C=0Xfedcba98
D=0X76543210
處理位操作函數:
X,Y,Z為32位整數。
F(X,Y,Z) = X&Y|NOT(X)&Z
G(X,Y,Z) = X&Z|Y?(Z)
H(X,Y,Z) = X xor Y xor Z
I(X,Y,Z) = Y xor (X|not(Z))
主要變換過程:
使用常數組T[1 ... 64], T[i]為32位整數用16進製表示,數據用16個32位
的整數數組M[]表示。
具體過程如下:
/* 處理數據原文 */
For i = 0 to N/16-1 do
/*每一次,把數據原文存放在16個元素的數組X中. */
For j = 0 to 15 do
Set X[j] to M[i*16+j].
end /結束對J的循環
/* Save A as AA, B as BB, C as CC, and D as DD.
*/
AA = A
BB = B
CC = C
DD = D
/* 第1輪*/
/* 以 [abcd k s i]表示如下操作
a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */
/* Do the following 16 operations. */
[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3
22 4]
[ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7
22 8]
[ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA
11 22 12]
[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15]
[BCDA 15 22 16]
/* 第2輪* */
/* 以 [abcd k s i]表示如下操作
a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */
/* Do the following 16 operations. */
[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA
0 20 20]
[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23]
[BCDA 4 20 24]
[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA
8 20 28]
[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA
12 20 32]
/* 第3輪*/
/* 以 [abcd k s i]表示如下操作
a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */
/* Do the following 16 operations. */
[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35]
[BCDA 14 23 36]
[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA
10 23 40]
[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43]
[BCDA 6 23 44]
[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47]
[BCDA 2 23 48]
/* 第4輪*/
/* 以 [abcd k s i]表示如下操作
a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */
/* Do the following 16 operations. */
[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51]
[BCDA 5 21 52]
[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55]
[BCDA 1 21 56]
[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59]
[BCDA 13 21 60]
[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63]
[BCDA 9 21 64]
/* 然後進行如下操作 */
A = A + AA
B = B + BB
C = C + CC
D = D + DD
end /* 結束對I的循環*/
輸出結果。
❺ 資料庫論文 急求!!追加1000分
一、三個世界
1、現實世界 人們管理的對象存於現實世界中。現實世界的事物及事物之間存在著聯系,這種聯系是客觀存在的,是由事物本身的性質決定的。例如學校的教學系統中有教師、學生、課程,教師為學生授課,學生選修課程並取得成績。
2、概念世界 概念世界是現實世界在人們頭腦中的反映,是對客觀事物及其聯系的一種抽象描述,從而產生概念模型。概念模型是現實世界到機器世界必然經過的中間層次。涉及到下面幾個術語:
實體:我們把客觀存在並且可以相互區別的事物稱為實體。實體可以是實際事物,也可以是抽象事件。如一個職工、一場比賽等。
實體集:同一類實體的集合稱為實體集。如全體職工。注意區分"型"與"值"的概念。如每個職工是職工實體"型"的一個具體"值"。
屬性:描述實體的特性稱為屬性。如職工的職工號,姓名,性別,出生日期,職稱等。
關鍵字:如果某個屬性或屬性組合的值能唯一地標識出實體集中的每一個實體,可以選作關鍵字。用作標識的關鍵字,也稱為碼。如"職工號"就可作為關鍵字。
聯系:實體集之間的對應關系稱為聯系,它反映現實世界事物之間的相互關聯。聯系分為兩種,一種是實體內部各屬性之間的聯系。另一種是實體之間的聯系。
3、機器世界 存入計算機系統里的數據是將概念世界中的事物數據化的結果。為了准確地反映事物本身及事物之間的各種聯系,資料庫中的數據必須有一定的結構,這種結構用數據模型來表示。數據模型將概念世界中的實體,及實體間的聯系進一步抽象成便於計算機處理的方式。
數據模型應滿足三方面要求:一是能比較真實地模擬現實世界;二是容易為人所理解;三是便於在計算機上實現。數據結構、數據操作和完整性約束是構成數據模型的三要素。數據模型主要包括網狀模型、層次模型、關系模型等,它是按計算機系統的觀點對數據建模,用於DBMS的實現。
關系資料庫採用關系模型作為數據的組織方式。 關系資料庫因其嚴格的數學理論、使用簡單靈活、數據獨立性強等特點,而被公認為最有前途的一種資料庫管理系統。它的發展十分迅速,目前已成為占據主導地位的資料庫管理系統。自20世紀80年代以來,作為商品推出的資料庫管理系統幾乎都是關系型的,例如,Oracle,Sybase,Informix,Visual FoxPro等。
網路資料庫也叫Web資料庫。促進Internet發展的因素之一就是Web技術。由靜態網頁技術的HTML到動態網頁技術的CGI、ASP、PHP、JSP等,Web技術經歷了一個重要的變革過程。Web已經不再局限於僅僅由靜態網頁提供信息服務,而改變為動態的網頁,可提供互動式的信息查詢服務,使信息資料庫服務成為了可能。Web資料庫就是將資料庫技術與Web技術融合在一起,使資料庫系統成為Web的重要有機組成部分,從而實現資料庫與網路技術的無縫結合。這一結合不僅把Web與資料庫的所有優勢集合在了一起,而且充分利用了大量已有資料庫的信息資源。圖1-1是Web資料庫的基本結構圖,它由資料庫伺服器(Database Server)、中間件(Middle Ware)、Web伺服器(Web Server)、瀏覽器(Browser)4部分組成。
Web資料庫的基本結構
它的工作過程可簡單地描述成:用戶通過瀏覽器端的操作界面以交互的方式經由Web伺服器來訪問資料庫。用戶向資料庫提交的信息以及資料庫返回給用戶的信息都是以網頁的形式顯示。
1.1.1 Internet技術與相關協議
Internet技術在Web資料庫技術中扮演著重要的角色。Internet(網際網路)專指全球最大的、開放的、由眾多網路相互連接而成的計算機網路,並通過各種協議在計算機網路中傳遞信息。TCP/IP協議是Internet上使用的兩個最基本的協議。因此也可以說Internet是全球范圍的基於分組交換原理和TCP/IP協議的計算機網路。它將信息進行分組後,以數據包為單位進行傳輸。Internet在進行信息傳輸時,主要完成兩項任務。
(1)正確地將源信息文件分割成一個個數據包,並能在目的地將源信息文件的數據包再准確地重組起來。
(2)將數據包準確地送往目的地。
TCP/IP協議的作用就是為了完成上述兩項任務,規范了網路上所有計算機之間數據傳遞的方式與數據格式,提供了數據打包和定址的標准方法。
1.TCP/IP協議
TCP協議(Transmission Control Protocol,傳輸控制協議)規定了分割數據和重組數據所要遵循的規則和要進行的操作。TCP協議能保證數據發送的正確性,如果發現數據有損失,TCP將重新發送數據。
2.IP協議
在Internet上傳送數據往往都是遠距離的,因此在傳輸過程中要通過路由器一站一站的轉接來實現。路由器是一種特殊的計算機,它會檢測數據包的目的地主機地址,然後決定將該數據包送往何處。IP協議(Internet Protocol,網際協議)給Internet中的每一台計算機規定了一個地址,稱為IP地址。IP地址的標準是由4部分組成(例如202.112.203.11),其中前兩部分規定了當前使用網路的管理機構,第3部分規定了當前使用的網路地址,第4部分規定了當前使用的計算機地址。
Internet上提供的主要服務有E-mail、FTP、BBS、Telnet、WWW等。其中WWW(World Wide Web,萬維網)由於其豐富的信息資源而成為Internet最為重要的服務。
3.HTTP協議
HTTP協議(Hypertext Transfer Protocol,超文本傳輸協議)應用在WWW上,其作用是完成客戶端瀏覽器與Web伺服器端之間的HTML數據傳輸。
1.1.2 Web的工作原理與工作步驟
萬維網簡稱為Web。Web可以描述為在Internet上運行的、全球的、交互的、動態的、跨平台的、分布式的、圖形化的超文本信息系統。
1.Web的工作原理
Web是伴隨著Internet技術而產生的。在計算機網路中,對於提供Web服務的計算機稱為Web伺服器。Web採用瀏覽器/伺服器的工作方式。每個Web伺服器上都放置著大量的Web信息。Web信息的基本單位是Web頁(網頁),多個網頁組成了一個Web節點。每個Web節點的起始頁稱為「主頁」,且擁有一個URL地址(統一資源定位地址)。Web節點之間及網頁之間都是以超文本結構(非線性的網狀結構)來進行組織的。
2.Web的工作步驟
Web的工作步驟如下。
(1)用戶打開客戶端計算機中的瀏覽器軟體(例如Internet Explorer)。
(2)用戶輸入要啟動的Web主頁的URL地址,瀏覽器將生成一個HTTP請求。
(3)瀏覽器連接到指定的Web伺服器,並發送HTTP請求。
(4)Web伺服器接到HTTP請求,根據請求的內容不同作相應的處理,再將網頁以HTML文件格式發回給瀏覽器。
(5)瀏覽器將網頁顯示到屏幕上.
圖1-2 Web的工作步驟
1.1.3 WWW世界中的標記語言
1.HTML語言
HTML(Hypertext Markup Language,超文本標記語言)是創建網頁的計算機語言。所謂網頁實際上就是一個HTML文檔。文檔內容由文本和HTML標記組成。HTML文檔的擴展名就是.html或.htm。瀏覽器負責解釋HTML文檔中的標記,並將HTML文檔顯示成網頁。
(1)HTML標記
HTML標記的作用是告訴瀏覽器網頁的結構和格式。每一個標記用尖括弧<>括起來。大多數標記都有一個開始標記和一個結束標記。標記不分大小寫。多數標記都帶有自己的屬性。例如字體標記<FONT>有FACE、COLOR、SIZE等屬性:FACE定義字體;COLOR定義字體的顏色;SIZE定義字體的大小。
使用格式:<FONT FACE= SONG SIZE=3 COLOR=RED > BEIJING </FONT>。
網頁中有很多文本鏈接和圖片鏈接。鏈接,又被稱為超鏈接,用於鏈接到WWW萬維網中的其他網頁上。在HTML文檔中表示超鏈接的標記是<A>,通過屬性HREF指出鏈接的網頁地址URL。
使用格式:<A HREF=http://www.bigc.e.cn/ > BEIJING </A>。
(2)HTML程序
HTML程序必須以<HTML>標記開始,以</HTML>標記結束。在<HTML>和</HTML>標記之間主要由兩部分組成:文件頭和文件體。文件頭用標記<HEAD> </HEAD>來標識,文件體用標記<BODY></BODY>來標識。在文件的頭部通常包含整個網頁的一些信息。例如<TITLE></TITLE>標記是用來說明網頁的名稱;<META></META>標記是用來說明網頁的其他信息,如設計者姓名和版權信息等。所有在瀏覽器中要顯示的內容稱為網頁的主體,必須放在<BODY></BODY>標記中。下面給出的是一個空網頁的HTML程序。
<HTML>
<HEAD>
<TITLE>(在此標記中寫網頁的標題)</TITLE>
</HEAD>
<BODY>
(在此標記中寫網頁的內容)
</BODY>
</HTML>
(3)HTML規范
HTML規范又稱為HTML標准,它總在不斷地發展。每一新版本的出現,HTML都會增加新的特性和內容。有關HTML版本的詳細信息請訪問www.w3.org網站。
在不同的瀏覽器中,網頁的顯示效果可能會有所不同。每一個瀏覽器都使用自己獨特的方式解釋HTML文檔中的標記,並且多數瀏覽器不完全支持HTML的所有特性。因為,像Microsoft和Netscape公司在HTML標准上又開發了一些特有的HTML標記和屬性,稱之為HTML的擴展。這些標記和屬性只被他們自己的瀏覽器所識別,不可能被其他公司的瀏覽器識別。如果瀏覽器不能識別HTML文檔中的標記,則會忽略這個標記。
(4)HTML程序的編輯環境與運行環境
HTML文檔是一個普通的文本文件(ASCII),不包含任何與平台、程序有關的信息。因此HTML文檔可以利用任何文本編輯器來方便地生成。要注意的是HTML文檔的擴展名必須是.html或.htm。運行HTML文檔可以在任何瀏覽器下進行,並可在瀏覽器上查看網頁的HTML源代碼。
關於HTML語言中標記的種類與使用方法將會在第5章中更詳細地進行介紹。
2.可擴展標記語言(XML)
HTML是Web上的通用語言,隨著Internet的深入人心,WWW上的Web文件日益復雜化、多樣化,人們開始感到了HTML這種固定格式的標記語言的不足。1996年W3C開始對HTML的後續語言進行研究,並於1998年正式推出了XML(Extensible Markup Language,可擴展標記語言)。在設計網頁時,XML提供了比HTML更靈活的方法。
(1)XML語言的特點
XML是國際組織W3C為適應WWW的應用,將SGML (Standard Generalized Markup Language)標准進行簡化形成的元標記語言。簡單地說,XML是使用標記來描述內容或與內容相關的形式信息的通用語言。一個XML文檔由標記和字元數據組成。
而作為元標記語言,XML不再使標記固定,允許網頁的設計者定義數量不限的標記來描述內容,同時還允許設計者創建自己的使用規則。
(2)XML的DTD
DTD(Document Type Definition,文檔類型定義)是一組應用在XML文檔中的自定義標記語言的技術規范。DTD中定義了標記的含義及關於標記的語法規則。語法規則中確定了在XML文檔中使用哪些標記符,它們應該按什麼次序出現,標記符之間如何 嵌套,哪些標記符有屬性等等。DTD可以包含在它所描述的XML文檔中,但通常它是一份單獨的文檔或者一系列文檔。作為外部文件可通過URL鏈接,被不同的XML文檔 共享。
XML把DTD的定義權開放,不同行業可以根據自己的實際需求定義描述內容的DTD,以適應本行業內部的信息交流和存檔需要。因此,適合於不同行業、不同平台的標記語言大批涌現。
(3)XML的CSS與XSL
強調內容描述與形式描述的分離,一方面可以使XML文件的編寫者更集中精力於數據本身,而不受顯示方式的細節影響;另一方面允許為相同的數據定義不同的顯示方式,從而適合於不同應用、不同媒體,使XML數據得到最大程度的重用。XML文檔數據的顯示形式是通過樣式單定義的。CSS(Cascading Style Sheets)是XML使用的一種標準的級聯樣式單,XSL(Extensible Style Language)則是可擴展的樣式語言。
由於XML允許用戶創建任何所需的標記,而通用瀏覽器卻既無法預期用戶標記的意義,又無法為顯示這些標記而提供規則,因此用戶必須為自己創建的XML文檔編寫樣式單,樣式單可以實現共享。
瀏覽器對一個XML文檔的處理過程是,首先去關聯它所指定的樣式單文件,如果該樣式單是一個XSL文件,則按照規定對XML數據進行轉換然後再顯示,XSL本身也是基於XML語言的,可以將XML轉化為HTML後再顯示。如果該樣式單是一個CSS文件,瀏覽器就會按照樣式單的規定給每個標記賦予一組樣式後再顯示。
1.2 Web資料庫訪問技術
Web資料庫訪問技術通常是通過三層結構來實現的,如圖1-3所示。目前建立與Web資料庫連接訪問的技術方法可歸納為CGI技術,ODBC技術和ASP、JSP、PHP 技術。
Web資料庫訪問的三層結構
1.2.1 CGI技術
CGI(Common Cateway Interface,通用網關界面)是一種Web伺服器上運行的基於Web瀏覽器輸入程序的方法,是最早的訪問資料庫的解決方案。CGI程序可以建立網頁與資料庫之間的連接,將用戶的查詢要求轉換成資料庫的查詢命令,然後將查詢結果通過網頁返回給用戶。一個CGI工作的基本原理如圖1-4所示。
CGI程序需要通過一個介面才能訪問資料庫。這種介面多種多樣,資料庫系統對CGI程序提供了各種資料庫介面如Perl、C/C++、VB等。為了使用各種資料庫系統,CGI程序支持ODBC方式,通過ODBC介面訪問資料庫。
CGI工作流程
1.2.2 ODBC技術
ODBC(Open Database Connectivity,開放資料庫互接)是一種使用SQL的應用程序介面(API)。ODBC最顯著的優點就是它生成的程序與資料庫系統無關,為程序員方便地編寫訪問各種DBMS的資料庫應用程序提供了一個統一介面,使應用程序和資料庫源之間完成數據交換。ODBC的內部結構為4層:應用程序層、驅動程序管理器層、驅動程序層、數據源層。它們之間的關系如圖1-5所示。由於ODBC適用於不同的資料庫產品,因此許多伺服器擴展程序都使用了包含ODBC層的系統結構。
ODBC的內部結構
Web伺服器通過ODBC資料庫驅動程序向資料庫系統發出SQL請求,資料庫系統接收到的是標准SQL查詢語句,並將執行後的查詢結果再通過ODBC傳回Web伺服器,Web伺服器將結果以HTML網頁傳給Web瀏覽器,工作原理如圖1-6所示。
Web伺服器通過ODBC訪問資料庫
由於Java語言所顯示出來的編程優勢贏得了眾多資料庫廠商的支持。在資料庫處理方面,Java提供的JDBC為資料庫開發應用提供了標準的應用程序編程介面。與ODBC類似,JDBC也是一種特殊的API,是用於執行SQL語句的Java應用程序介面。它規定了Java如何與資料庫之間交換數據的方法。採用Java和JDBC編寫的資料庫應用程序具有與平台無關的特性。
1.2.3 ASP、JSP、PHP技術
ASP是Microsoft開發的動態網頁技術,主要應用於Windows NT+IIS或 Windows 9x+PWS平台。確切地說ASP不是一種語言,而是Web伺服器端的開發環境。利用ASP可以產生和運行動態的、交互的、高性能的Web服務應用程序。ASP支持多種腳本語言,除了VBScript和Pscript,也支持Perl語言,並且可以在同一ASP文件中使用多種腳本語言以發揮各種腳本語言的最大優勢。但ASP默認只支持VBScript和Pscript,若要使用其他腳本語言,必須安裝相應的腳本引擎。ASP支持在伺服器端調用ActiveX組件ADO對象實現對資料庫的操作。在具體的應用中,若腳本語言中有訪問資料庫的請求,可通過ODBC與後台資料庫相連,並通過ADO執行訪問庫的操作。關於ASP的編程技術將會在第7章中詳細介紹。
JSP是Sun公司推出的新一代Web開發技術。作為Java家族的一員,幾乎可以運行在所有的操作系統平台和Web伺服器上,因此JSP的運行平台更為廣泛。目前JSP支持的腳本語言只有Java。JSP使用JDBC實現對資料庫的訪問。目標資料庫必須有一個JDBC的驅動程序,即一個從資料庫到Java的介面,該介面提供了標準的方法使Java應用程序能夠連接到資料庫並執行對資料庫的操作。JDBC不需要在伺服器上創建數據源,通過JDBC、JSP就可以實現SQL語句的執行。
PHP是Rasmus Lerdorf推出的一種跨平台的嵌入式腳本語言,可以在Windows、UNIX、Linux等流行的操作系統和IIS、Apache、Netscape等Web伺服器上運行,用戶更換平台時,無需變換PHP代碼。PHP是通過Internet合作開發的開放源代碼軟體,它借用了C、Java、Perl語言的語法並結合PHP自身的特性,能夠快速寫出動態生成頁面。PHP可以通過ODBC訪問各種資料庫,但主要通過函數直接訪問資料庫。PHP支持目前絕大多數的資料庫,提供許多與各類資料庫直接互連的函數,包括Sybase、Oracle、SQL Server等,其中與SQL Server資料庫互連是最佳組合。
1.3 網路資料庫應用系統的層次體系
當前,Internet/Intranet技術發展異常迅速,越來越多的資料庫應用軟體運行在Internet/Intranet環境下。在此之前,資料庫應用系統的發展經歷了單機結構、集中式結構、客戶機/伺服器(C/S)結構之後,隨著Internet的普及,又出現了瀏覽器/伺服器(B/S)結構與多層結構。在構造一個應用系統時,首先考慮的是系統的體系結構,採用哪種結構取決於系統的網路環境、應用需求等因素。
1.3.1 客戶機/伺服器結構
1.二層C/S結構
二層C/S結構是當前非常流行的資料庫系統結構,在這種結構中,客戶機提出請求,伺服器對客戶機的服務請求做出回答。它把界面和數據處理操作分開在前端(客戶端)和後端(伺服器端),這個主要特點使得C/S系統的工作速度主要取決於進行大量數據操作的伺服器,而不是前端的硬體設備;同時也大大降低了對網路傳輸速度的要求,因為只須客戶端把服務請求發送給資料庫伺服器,資料庫伺服器只把服務結果傳回前端,如圖1-7所示。
在設計時,對數據可能有如下不同的處理形式。
(1)在處理時,客戶機先向伺服器索取數據,然後釋放資料庫,即客戶機發出的是文件請求,在客戶機端處理數據,最後將結果送回伺服器。這種處理方式的缺點很明顯:所有的應用處理都在客戶端完成,這就要求客戶端的計算機必須有足夠的能力,以便執行需要的任何程序。更為糟糕的是,由於所有的處理均在客戶端完成,每次運行時都要將文件整體傳送到客戶端,然後才能執行。如:Student表中有30 000條記錄,客戶端發出命令:
Select * From Student Where Sno='200101'
這條命令將要求伺服器將Student表中的所有記錄傳送到客戶端,然後在客戶端執行查詢,結果只用到一條記錄;如果查詢的記錄不存在,網路傳輸的數據實際上是無 用的。如此大的數據傳輸量是不可想像的。因此,人們提出了在伺服器中能夠執行部分代碼的客戶機/伺服器結構。
(2)在處理時,客戶機接受用戶要求,並發給伺服器;在伺服器端處理用戶要求,最後將結果傳回客戶機顯示或列印。這種處理方式網路通信量較小。客戶機向伺服器發出的是處理請求,而不是文件請求,處理請求中的代碼在伺服器端執行後向客戶機傳送處理後的結果。
這樣,為了特定任務,客戶機上的程序和伺服器上的程序協同工作:客戶機端的代碼用於完成用戶的輸入輸出及數據的檢查,而伺服器端的代碼完成對資料庫的操作。
客戶機/伺服器結構的另一個主要特點在於軟體、硬體平台的無關性。資料庫伺服器上的資料庫管理系統集中負責管理數據,它向客戶端提供一個開放的使用環境,客戶端通過資料庫介面,如ODBC(開放資料庫連接)和SQL語言訪問資料庫,也就是說,不管客戶端採用什麼樣的硬體和軟體,它只要能夠通過網路和資料庫介面程序連接到伺服器,就可對資料庫進行訪問。
在客戶機/伺服器結構中,常把客戶機稱為前台,而把伺服器端稱為後台。前台應用程序的功能包括用戶界面、接收用戶數據、處理應用邏輯、向後台發出請求、同時接收後台返回的結果,最後再將返回的結果按一定的格式或方式顯示給用戶。而後台伺服器則負責共享外部設備、存取共享數據、響應前台客戶端的請求並回送結果等工作。前台的應用程序和數據一般是用戶專用的,而後台的數據和代碼是所有用戶可以共享的。
由於資料庫伺服器不僅要管理共享數據,保證數據的完整性,還要執行一部分代碼,完成客戶端的一些處理請求,所以對用於伺服器的計算機提出較高的要求。最好要採用一台專用的伺服器,有較快的處理速度,有大容量的硬碟和內存,支持磁帶等大容量的存儲設備。
上面講的客戶機/伺服器結構將應用分在了客戶機、伺服器兩級,稱其為兩層客戶機/ 伺服器結構。總之,兩層C/S結構的基本工作方式是客戶程序向資料庫伺服器發送SQL請求,伺服器返回數據或結果。
這種C/S結構有兩種實現方式,一種是客戶來完成表示部分和應用邏輯部分,而伺服器完成數據訪問部分,這種情況是以客戶為中心的,適用於應用相對簡單、數據訪問量不是很大的情況。另一種是以伺服器為中心的,把一些重要的應用邏輯部分放到伺服器上,這樣可充分利用伺服器的計算能力,減少網路上需要傳送的數據。通常以存儲過程和觸發器的形式出現,但存儲過程都依賴於特定資料庫,不同資料庫之間很難移植,而三層C/S結構可以很好地解決這個問題。
注意:觸發器(trigger)是資料庫系統中,一個在插入、刪除、修改操作之後運行的記錄級事件代碼。不同的事件可以對應不同的動作。通常有3種類型的觸發器:INSERT觸發器、DELETE觸發器和UPDATE觸發器。
2.三層C/S結構
由於兩層結構的客戶機/伺服器系統本身固有的缺陷,使得它不能應用於一些大型、結構較為復雜的系統中,故出現了3層結構的客戶機/伺服器系統,將兩層結構中伺服器部分和客戶端部分的應用單獨劃分出來,即採用「客戶機—應用伺服器—資料庫伺服器」結構(如圖1-8所示)。典型的資料庫應用可分為三部分:表示部分、應用邏輯(商業邏輯)部分和數據訪問部分,三層結構便是對應於這三部分。
圖1-8 三層C/S結構
其中,應用伺服器和資料庫伺服器可位於同一主機,也可位於不同主機。客戶機是應用的用戶介面部分,負責用戶與應用程序的交互,運行在客戶機端的軟體也稱為表示層軟體。應用伺服器存放業務邏輯層(也稱為功能層)軟體,是應用邏輯處理的核心,實現具體業務。它能響應客戶機請求,完成業務處理或復雜計算。若有資料庫訪問任務時,應用伺服器層可根據客戶機的要求向資料庫伺服器發送SQL指令。應用邏輯變得復雜或增加新的應用時,可增加新的應用伺服器。資料庫伺服器便是用來執行功能層送來的SQL指令,完成數據的存儲、訪問和完整性約束等。操作完成後再通過應用伺服器向客戶機返回操作結果。
1.3.2 瀏覽器/伺服器結構
隨著Internet技術和Web技術的廣泛應用,C/S結構已無法滿足人們的需要。因為在典型C/S體系中,通常為客戶安裝前端應用程序的做法已不再現實,並且限制客戶端工作環境只能基於Windows、Macintosh或UNIX等操作系統也不切實際。於是基於瀏覽器/伺服器結構(Browser/Server)的系統應運而生。
採用B/S結構後,在客戶端只需安裝一個通用的瀏覽器即可,不再受具體操作系統和硬體的制約,實現了跨平台的應用。
基於B/S結構的典型應用通常採用三層結構:「瀏覽器—Web伺服器—資料庫伺服器」,B/S模式的工作原理是:通過瀏覽器以超文本的形式向Web伺服器提出訪問資料庫的請求,Web伺服器接受客戶請求後,激活對應的CGI程序將超文本HTML語言轉化為SQL語法,將這個請求交給資料庫,資料庫伺服器得到請求後,進行數據處理,然後將處理結果集返回給CGI程序。CGI再將結果轉化為HTML,並由Web伺服器轉發給請求方的瀏覽器,如圖1-9所示。
圖1-9 B/S工作原理
在B/S模式中,客戶端的標准配置是瀏覽器,如IE;業務功能處理由獨立的應用伺服器處理,Web伺服器成為應用處理的標准配置;數據處理仍然由資料庫伺服器處理。
從本質上講,B/S結構與傳統的C/S結構都是以同一種請求和應答方式來執行應用的,區別主要在於:C/S是一種兩層或三層結構模式,其客戶端集中了大量應用軟體,而B/S是一種基於超鏈接(HyperLink)、HTML、Java的三級或多級C/S結構,客戶端僅需單一的瀏覽器軟體,是一種全新的體系結構,解決了跨平台問題。到目前,這兩種結構在不同方面都有著廣泛的應用。雖然C/S結構在Internet環境下明顯不如B/S結構具有優勢,但它在區域網環境下仍具有優勢。
1.3.3 Internet/Intranet信息系統的多層體系結構
多層結構應用軟體與傳統的兩層結構應用軟體相比,有可伸縮性好、可管理性強、安全性高、軟體重用性好等諸多優點,如何在Internet/Intranet環境下構建應用軟體體系結構就成為一個非常重要的問題,也是現今軟體體系研究的一個新熱點。
目前各種技術層出不窮,如最初的靜態HTML頁面、簡單的CGI網關程序、Java Applet程序,現在的ASP等Web資料庫技術,還有動態的Java在線游戲及PHP技術等。
實際上,多層的概念是由Sun公司提出來的。Sun公司提出的多層應用體系包括4層:客戶層、頂端Web服務層、應用服務層和資料庫層。其中頂端Web服務層是Sun公司多層體系結構中非常重要的一層,它主要起代理和緩存的作用。頂端Web伺服器的作用是緩存本地各客戶機經常使用的Java Applet程序和靜態數據,通常被放置在客戶機所在的區域網內,起到一個Java Applet主機(向Web瀏覽器傳送Java Applet程序的計算機)和訪問其他服務的代理作用。與普通代理伺服器的作用相同。構建多層結構應用軟體時,選用Java平台是一個很好的選擇,因為它跨越各應用平台。總之,在Java平台上構建多層應用軟體體系代表著今後Internet/Intranet應用的趨勢。
❻ 多媒體資料庫用戶介麵包括什麼
1系統軟體
系統軟體由一組控制計算機系統並管理其資源的程序組成,其主要功能包括:啟動計算機,存儲、載入和執行應用程序,對文件進行排序、檢索,將程序語言翻譯成機器語言等。實際上,系統軟體可以看作用戶與計算機的介面,它為應用軟體和用戶提供了控制、訪問硬體的手段,這些功能主要由操作系統完成。此外,編譯系統和各種工具軟體也屬此類,它們從另一方面輔助用戶使用計算機。下面分別介紹它們的功能。
1)操作系統(Operating System, OS)
操作系統是管理、控制和監督計算機軟、硬體資源協調運行的程序系統,由一系列具有不同控制和管理功能的程序組成,它是直接運行在計算機硬體上的、最基本的系統軟體,是系統軟體的核心。操作系統是計算機發展中的產物,它的主要目的有兩個:一是方便用戶使用計算機,是用戶和計算機的介面。比如用戶鍵入一條簡單的命令就能自動完成復雜的功能,這就是操作系統幫助的結果;二是統一管理計算機系統的全部資源,合理組織計算機工作流程,以便充分、合理地發揮計算機的效率。操作系統通常應包括下列五大功能模塊:
(1)處理器管理。當多個程序同時運行時,解決處理器(CPU)時間的分配問題。
(2)作業管理。完成某個獨立任務的程序及其所需的數據組成一個作業。作業管理的任務主要是為用戶提供一個使用計算機的界面使其方便地運行自己的作業,並對所有進入系統的作業進行調度和控制,盡可能高效地利用整個系統的資源。
(3)存儲器管理。為各個程序及其使用的數據分配存儲空間,並保證它們互不幹擾。
(4)設備管理。根據用戶提出使用設備的請求進行設備分配,同時還能隨時接收設備的請求(稱為中斷),如要求輸入信息。
(5)文件管理。主要負責文件的存儲、檢索、共享和保護,為用戶提供文件操作的方便。
操作系統的種類繁多,依其功能和特性分為批處理操作系統、分時操作系統和實時操作系統等;依同時管理用戶數的多少分為單用戶操作系統和多用戶操作系統;適合管理計算機網路環境的網路操作系統。按其發展前後過程,通常分成以下六類:
(1)單用戶操作系統(Single User Operating System)
單用戶操作系統的主要特徵是計算機系統內一次只能支持運行一個用戶程序。這類系統的最大缺點是計算機系統的資源不能充分利用。微型機的DOS、Windows操作系統屬於這一類。
(2)批處理操作系統(Batch Processing Operating System)
批處理操作系統是20世紀70年代運行於大、中型計算機上的操作系統。當時由於單用戶單任務操作系統的CPU使用效率低,I/O設備資源未充分利用,因而產生了多道批處理系統,它主要運行在大中型機上。多道是指多個程序或多個作業(Multi-Programs or Multi Jobs)同時存在和運行,故也稱為多任務操作系統。IBM的DOS/VSE就是這類系統。
(3)分時操作系統(Time-Sharing Operating System)
分時系統是一種具有如下特徵的操作系統:在一台計算機周圍掛上若乾颱近程或遠程終端,每個用戶可以在各自的終端上以交互的方式控製作業運行。
在分時系統管理下,雖然各用戶使用的是同一台計算機,但卻能給用戶一種「獨占計算機」的感覺。實際上是分時操作系統將CPU時間資源劃分成極小的時間片(毫秒量級),輪流分給每個終端用戶使用,當一個用戶的時間片用完後,CPU就轉給另一個用戶,前一個用戶只能等待下一次輪到。由於人的思考、反應和鍵入的速度通常比cpu的速度慢得多,所以只要同時上機的用戶不超過一定數量,人們不會有延遲的感覺,好像每個用戶都獨占著計算機。分時系統的優點是:第一,經濟實惠,可充分利用計算機資源;第二,由於採用交互會話方式控製作業,用戶可以坐在終端前邊思考、邊調整、邊修改,從而大大縮短了解題周期;第三,分時系統的多個用戶間可以通過文件系統彼此交流數據和共享各種文件,在各自的終端上協同完成共同的任務。分時操作系統是多用戶多任務操作系統,UNIX是國際上最流行的分時操作系統。此外,UNIX具有網路通信與網路服務的功能,也是廣泛使用的網路操作系統。
(4)實時操作系統(Real-Time Operating System)
在某些應用領域,要求計算機對數據能進行迅速處理。例如,在自動駕駛儀控制下飛行的飛機、導彈的自動控制系統中,計算機必須對測量系統測得的數據及時、快速地進行處理和反應,以便達到控制的目的,否則就會失去戰機。這種有響應時間要求的快速處理過程叫做實時處理過程,當然,響應的時間要求可長可短,可以是秒、毫秒或微秒級的。對於這類實時處理過程,批處理系統或分時系統均無能為力了,因此產生了另一類操作系統——實時操作系統。配置實時操作系統的計算機系統稱為實時系統。實時系統按其使用方式可分成兩類:一類是廣泛用於鋼鐵、煉油、化工生產過程式控制制,武器制導等各個領域中的實時控制系統;另一類是廣泛用於自動訂票系統、情報檢索系統、銀行業務系統、超級市場銷售系統中的實時數據處理系統。
(5)網路操作系統(Network Operating System)
計算機網路是通過通信線路將地理上分散且獨立的計算機聯結起來的一種網路,有了計算機網路之後,用戶可以突破地理條件的限制,方便地使用遠處的計算機資源。提供網路通信和網路資源共享功能的操作系統稱為網路操作系統。
(6)微機操作系統
微機操作系統隨著微機硬體技術的發展而發展,從簡單到復雜。Microsoft公司開發的DOS是一單用戶單任務系統,而Windows操作系統則是一單用戶多任務系統,經過十幾年的發展,已從Windows 3.1發展到目前的Windows NT、Windows 2000和Windows XP,它是當前微機中廣泛使用的操作系統之一。Linux是一個原碼公開的操作系統,目前已被越來越多的用戶所採用,是Windows操作系統強有力的競爭對手。
2)語言處理系統(翻譯程序)
如前所述,機器語言是計算機唯一能直接識別和執行的程序語言。如果要在計算機上運行高級語言程序就必須配備程序語言翻譯程序(下簡稱翻譯程序)。翻譯程序本身是一組程序,不同的高級語言都有相應的翻譯程序。
對於高級語言來說,翻譯的方法有兩種:
一種稱為「解釋」。早期的BASIC源程序的執行都採用這種方式。它調用機器配備的BASIC「解釋程序」,在運行BASIC源程序時,逐條把BASIC的源程序語句進行解釋和執行,它不保留目標程序代碼,即不產生可執行文件。這種方式速度較慢,每次運行都要經過「解釋」,邊解釋邊執行。
另一種稱為「編譯」,它調用相應語言的編譯程序,把源程序變成目標程序(以.OBJ為擴展名),然後再用連接程序,把目標程序與庫文件相連接形成可執行文件。盡管編譯的過程復雜一些,但它形成的可執行文件(以.exe為擴展名)可以反復執行,速度較快。運行程序時只要鍵入可執行程序的文件名,再按Enter鍵即可。
對源程序進行解釋和編譯任務的程序,分別叫做編譯程序和解釋程序。如FORTRAN、COBOL、PASCAL和C等高級語言,使用時需有相應的編譯程序;BASIC、LISP等高級語言,使用時需用相應的解釋程序。
3)服務程序
服務程序能夠提供一些常用的服務性功能,它們為用戶開發程序和使用計算機提供了方便,像微機上經常使用的診斷程序、調試程序、編輯程序均屬此類。
4)資料庫管理系統
在信息社會里,社會和生產活動產生的信息很多,使人工管理難以應付,人們希望藉助計算機對信息進行搜集、存儲、處理和使用。資料庫系統(Data Base System, DBS)就是在這種需求背景下產生和發展的。
資料庫是指按照一定聯系存儲的數據集合,可為多種應用共享。資料庫管理系統(Data Base Management System, DBMS)則是能夠對資料庫進行加工、管理的系統軟體。其主要功能是建立、消除、維護資料庫及對庫中數據進行各種操作。資料庫系統主要由資料庫(DB)、資料庫管理系統(DBMS)以及相應的應用程序組成。資料庫系統不但能夠存放大量的數據,更重要的是能迅速、自動地對數據進行檢索、修改、統計、排序、合並等操作,以得到所需的信息。這一點是傳統的文件櫃無法做到的。
資料庫技術是計算機技術中發展最快、應用最廣的一個分支。可以說,在今後的計算機應用開發中大都離不開資料庫。因此,了解資料庫技術尤其是微機環境下的資料庫應用是非常必要的。
2應用軟體
為解決各類實際問題而設計的程序系統稱為應用軟體。從其服務對象的角度,又可分為通用軟體和專用軟體兩類。
1)通用軟體
這類軟體通常是為解決某一類問題而設計的,而這類問題是很多人都要遇到和解決的。例如:文字處理、表格處理、電子演示等。
2)專用軟體
在市場上可以買到通用軟體,但有些具有特殊功能和需求的軟體是無法買到的。比如某個用戶希望有一個程序能自動控制車床,同時也能將各種事務性工作集成起來統一管理。因為它對於一般用戶是太特殊了,所以只能組織人力開發。當然開發出來的這種軟體也只能專用於這種情況。
❼ IBM/DB2.Linux的安裝配置管理
IBM/DB2.Linux的安裝配置管理
作為關系型資料庫技術的領導者,IBM公司在2001年將世界排名第四的Informix資料庫公司納入麾下,並將其所擁有的先進特性融入到DB2當中。下面我准備了關於IBM/DB2.Linux的安裝配置管理的.文章,提供給大家參考!
1.安裝IBM/DB2 V9.1 Linux版
下載得到安裝文件 db2exc_912_LNX_x86.tar.gz ,解壓到ext2/3分區
# cd db2exc_912_LNX_x86
# ./db2setup
(1)彈出java的安裝界面,install new instance
(2)使用“Typical Mode”,選擇安裝目錄,默認為 DB2_root=/opt/ibm/db2/V9.1/
# echo DB2_root=/opt/ibm/db2/V9.1/ >> /etc/profile
(3)並默認創建 db2inst?、db2fenc?、db2adsusr? 這個幾個用戶最重要的是本地實例管理用戶 db2inst? 其負責管理資料庫實例
(4)創建Instance,然後下一步繼續安裝,看到successful結果,表示成功
(5) # ps -e | grep db2 應該可以看到三個不同名稱的進程
(6) # tail /etc/inittab #可以看到最後一行就是啟動db2的方法
fmc:2345:respawn:/opt/ibm/db2/V9.1/bin/db2fmcd #DB2 Fault Monitor Coordinator
2.配置IBM/DB2的庫開發和CLI/ODBC連接
# su db2inst1
$ cd $DB2_ROOT
## 編目(catalog):
$ ./db2 catalog tcpip node remote server
$ ./db2 catalog db at node
$ ./db2 connect to user using
## 反編目(uncatalog):
$ ./db2 uncatalog db
$ ./db2 uncatalog node
3.修改,使用IBM/DB2的CLI/ODBC進行程序開發
(1)如果不想使用db2實例,而只是想使用CLI/ODBC來開發程序,可以注釋 /etc/inittab 中啟動db2的那一句,放棄啟動IBM/DB2資料庫服務。
(2)環境變數配置文件 : /home/db2inst1/sqllib/db2profile
查看 /etc/profile ,保證(添加或者修改)有以下兩句
export DB2INSTANCE=db2inst1
export PATH=$DB2_ROOT/binPATH
export LD_LIBRARY_PATH=$DB2_ROOT/lib32LD_LIBRARY_PATH
(3)編目目標機器地址與ODBC的DSN的關系,CLI/ODBC 中最重要的頭文件(include)和庫(lib)
$DB2_ROOT/lib32 或 其聯接 /home/db2inst1/sqllib/lib,其中最重要的是libdb2.so
4.資料庫備份及恢復
(1).使用用戶名和口令登錄伺服器
# db2 connect to ecm3000 user using
(2).強制停止所有應用,是非同步的
# db2 force applications all
(3).將資料庫備份到指定目錄下
# db2 backup database to
(4).從指定目錄中恢復資料庫
# db2 restore database from
5.修改和卸載DB2
請先反編目()如步驟2中
# su db2inst1
$ cd $DB2_ROOT/install
$ ./db2_deinstall -a
等待結束 ...
修改該/etc/inittab 中啟動db2的那一句,保證放棄啟動IBM/DB2資料庫服務。
;❽ 什麼是Mysql資料庫,與其它資料庫的區別和特點是什麼
1.使用C和C++編寫,並使用了多種編譯彎殲器進行測試,保證源代碼的可移植性 ;
2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統 ;
3.為多種編程語言提供了API。這些編程語言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。 ;
4.支持多線程,充分利用CPU資源 ;
5.優化的SQL查詢演算法,有效地提高查詢速度 ;
6.既能夠作為一個單獨的應用程序應用在客戶端伺服器網路環境中,也能夠作為一個庫而嵌入到其他的軟體中提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數據表名和數據列名;
7.提供TCP/IP、ODBC和JDBC等多種資料庫連接途徑 ;
8.提供用於管理、檢查、優化數據段此庫操作的管理工具 ;
9.可以處理擁有上千萬條記錄的大型埋燃沖資料庫。
❾ 免費的java快速開發平台有哪些
快速開發平台一般都是要收費的,軟體不管開源還是閉源,都有長期服務。開源的東西往往專缺少一屬個系統化的支持,比如文檔不全,沒有好的IDE工具,遇到問題,不知道找誰,維護起來難,所以可以找一款性價比好的,價格在自已承受范圍內的比如:力軟,XJR快速開發平台,希望對你有用……
❿ 什麼是 手機資料庫
手機資料庫一般用的是SQLite。
簡介:
SQLite,是一款輕型的氏宏數據賣野庫,是遵守ACID的關系型數據中核喊庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域項目。它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如 Tcl、C#、PHP、Java等,還有ODBC介面,同樣比起Mysql、PostgreSQL這兩款開源的世界著名資料庫管理系統來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生於2000年5月。 至2015年已經有15個年頭,SQLite也迎來了一個版本 SQLite 3已經發布。