2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩31頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  隨著網(wǎng)絡(luò)的普及,網(wǎng)絡(luò)游戲已經(jīng)成為大家耳濡目染的新生事物?,F(xiàn)在,可以說網(wǎng)絡(luò)游戲已經(jīng)成為人們休閑、娛樂的有效方式。網(wǎng)絡(luò)游戲必須依托于互聯(lián)網(wǎng),可以多人同時(shí)參與游戲,通過人與人之間的互動(dòng)達(dá)到交流、娛樂和休閑的目的。</p><p>  在網(wǎng)絡(luò)游戲中,數(shù)據(jù)庫主要用來保存用戶資料,包括用戶注冊(cè)信息、用戶游戲資料以

2、及其他設(shè)置資料。網(wǎng)絡(luò)游戲的服務(wù)器端在處理這些資料時(shí),必然要使用數(shù)據(jù)庫進(jìn)行大量數(shù)據(jù)的永久存儲(chǔ),所以在網(wǎng)絡(luò)游戲的開發(fā)中數(shù)據(jù)庫的設(shè)計(jì)也是很重要的環(huán)節(jié)。</p><p>  本項(xiàng)目就是完成網(wǎng)絡(luò)游戲服務(wù)器數(shù)據(jù)庫的設(shè)計(jì)和實(shí)現(xiàn)。</p><p>  本項(xiàng)目選擇MySQL(Structured Query Language)作為數(shù)據(jù)庫管理系統(tǒng),還使用了MySQL提供的C API(Application P

3、rograming interface),通過該API的功能進(jìn)行連接管理、實(shí)施查詢、處理結(jié)果集等操作。</p><p>  關(guān)鍵詞:數(shù)據(jù)庫系統(tǒng),網(wǎng)絡(luò)游戲,MySQL。</p><p>  Design and Implementation of Server </p><p>  Database for the Online Game</p><

4、;p><b>  ABSTRACT</b></p><p>  With the popularization of internet, online game is no longer a new thing to people. Now it can be said that online games have become an effective way of the peop

5、le's leisure and entertainment. Online games must rely on the internet, people can take part in the game at the same time, and through the interaction between people to reach the purposes of exchange, entertainment a

6、nd leisure.</p><p>  In online games, the database is mainly used to save user’s data, including user’s registration information, user’s game information, as well as other setting information. When online ga

7、me’s server-side in dealing these data, the database must be used to store large amounts of data permanent, so database designing is also a very important aspect in the development of online games.</p><p>  

8、This project is about design and implementation of server database for online game. </p><p>  This project uses the database management system based on MySQL(Structured Query Language), also uses the MySQL C

9、 API(Application Programing interface), and this API functions can do connection management, the implementation of inquiries, processing of result sets and so on. </p><p>  Keywords: database system, online

10、game, MySQL.</p><p><b>  目 錄</b></p><p><b>  摘 要1</b></p><p>  ABSTRACT2</p><p><b>  1 緒 論4</b></p><p>  1.1

11、課題研究背景4</p><p>  1.2 課題研究意義5</p><p>  2 系統(tǒng)需求分析7</p><p>  2.1 需求概述7</p><p>  2.2 數(shù)據(jù)庫系統(tǒng)需求7</p><p><b>  3 系統(tǒng)設(shè)計(jì)8</b></p><p>  

12、3.1 MySQL概述8</p><p>  3.2 數(shù)據(jù)庫概念設(shè)計(jì)8</p><p>  3.3 數(shù)據(jù)庫邏輯設(shè)計(jì)14</p><p>  4 系統(tǒng)難點(diǎn)技術(shù)分析與設(shè)計(jì)19</p><p>  4.1 系統(tǒng)架構(gòu)設(shè)計(jì)與分析19</p><p>  5 系統(tǒng)運(yùn)行測(cè)試27</p><p>

13、;  6 工作總結(jié)29</p><p>  參 考 文 獻(xiàn)30</p><p><b>  致 謝31</b></p><p><b>  1緒 論</b></p><p>  1.1 課題研究背景</p><p>  隨著網(wǎng)絡(luò)的普及,網(wǎng)絡(luò)游戲已經(jīng)成為大家耳濡目染的

14、新生事物。網(wǎng)絡(luò)游戲從出現(xiàn)到現(xiàn)在發(fā)展的時(shí)間很短,但是起發(fā)展速度卻非常之快?,F(xiàn)在,可以說網(wǎng)絡(luò)游戲已經(jīng)成為人們休閑、娛樂的有效方式。網(wǎng)絡(luò)游戲必須依托于互聯(lián)網(wǎng)進(jìn)行、可以多人同時(shí)參與的游戲,通過人與人之間的互動(dòng)達(dá)到交流、娛樂和休閑的目的。</p><p>  一般的網(wǎng)絡(luò)游戲都是采用客戶/服務(wù)器模式的體系結(jié)構(gòu)(見圖1.1),包括客戶機(jī)程序、服務(wù)器程序、數(shù)據(jù)庫服務(wù)器。</p><p>  圖1.1 網(wǎng)絡(luò)

15、游戲體系結(jié)構(gòu)</p><p>  網(wǎng)絡(luò)游戲都是采用如下的方式運(yùn)行:</p><p>  有一個(gè)或多個(gè)游戲服務(wù)器啟動(dòng)特定游戲服務(wù)。</p><p>  游戲者到游戲網(wǎng)站下載客戶端程序并且申請(qǐng)游戲賬號(hào)ID。然后啟動(dòng)客戶端程序,通過網(wǎng)絡(luò)協(xié)議連接游戲服務(wù)器。</p><p>  客戶端程序負(fù)責(zé)處理客戶端顯示和操作界面,具有簡單的邏輯處理功能,同時(shí)負(fù)責(zé)

16、接收發(fā)送與服務(wù)器端交互的數(shù)據(jù)包。</p><p>  服務(wù)器程序負(fù)責(zé)處理服務(wù)器端邏輯、游戲邏輯、客戶之間的網(wǎng)絡(luò)信息傳遞,以及數(shù)據(jù)庫之間的數(shù)據(jù)讀取保存工作。同時(shí)服務(wù)器端還要承擔(dān)客戶端數(shù)據(jù)的接受轉(zhuǎn)發(fā)工作。</p><p>  網(wǎng)絡(luò)游戲常常用到網(wǎng)絡(luò)協(xié)議有適用于Internet的TCP/IP協(xié)議、適用于局域網(wǎng)的IPX協(xié)議。</p><p>  網(wǎng)絡(luò)游戲程序的開發(fā)一般采用Mi

17、crosoft Visual C++作為編譯環(huán)境,分為客戶端程序和服務(wù)器端程序??蛻舳顺绦蛑饕?fù)責(zé)顯示用戶界面,為用戶提供賞心悅目的操作界面,通過客戶端與服務(wù)器之間的網(wǎng)絡(luò)傳遞數(shù)據(jù),實(shí)現(xiàn)了多人協(xié)同游戲的目的。</p><p>  在開發(fā)網(wǎng)絡(luò)游戲時(shí),首先要建立底層的網(wǎng)絡(luò)通信類,利用網(wǎng)絡(luò)通信類連接構(gòu)建客戶服務(wù)器之間的TCP/IP連接,然后在該連接的基礎(chǔ)上利用自己設(shè)定的協(xié)議進(jìn)行客戶端登錄、進(jìn)入大廳、開始游戲、換房間等操作

18、。在以上協(xié)議的基礎(chǔ)上,同時(shí)在服務(wù)器端還需要和數(shù)據(jù)庫服務(wù)器交互,用于讀取或保存客戶信息(如客戶積分。密碼。個(gè)人資料等數(shù)據(jù))。在網(wǎng)絡(luò)游戲中,數(shù)據(jù)庫主要用來保存用戶資料,包括用戶注冊(cè)信息、用戶游戲資料以及其他設(shè)置資料。[1]</p><p>  本項(xiàng)目就是對(duì)網(wǎng)絡(luò)游戲數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)。網(wǎng)絡(luò)游戲的服務(wù)器端在處理大量的客戶資料時(shí),必然要使用數(shù)據(jù)庫進(jìn)行大量數(shù)據(jù)的永久存儲(chǔ),所以在網(wǎng)絡(luò)游戲的開發(fā)中數(shù)據(jù)庫的設(shè)計(jì)也是很重要的環(huán)節(jié)。&l

19、t;/p><p>  1.2 課題研究意義</p><p>  網(wǎng)絡(luò)游戲的服務(wù)器端在處理大量的客戶資料時(shí),必然要使用數(shù)據(jù)庫進(jìn)行大量數(shù)據(jù)的存儲(chǔ)和查詢,服務(wù)器在數(shù)據(jù)庫中保存客戶注冊(cè)信息、客戶積分信息、客戶設(shè)置信息等信息。同時(shí)因?yàn)橛螒蚍?wù)器一般采用多服務(wù)器,所以多臺(tái)游戲服務(wù)器同時(shí)連接一臺(tái)數(shù)據(jù)庫服務(wù)器,進(jìn)行客戶數(shù)據(jù)的查詢和修改,并且保持客戶數(shù)據(jù)的同步。</p><p>  在客

20、戶注冊(cè)用戶、登錄服務(wù)器、保存游戲結(jié)果、退出游戲時(shí)游戲服務(wù)器都必須和數(shù)據(jù)庫服務(wù)器進(jìn)行交互,查詢和保存客戶資料;當(dāng)同時(shí)有大量用戶同時(shí)游戲時(shí),所以必須保證數(shù)據(jù)庫服務(wù)器的性能,以免造成數(shù)據(jù)庫處理緩慢導(dǎo)致游戲服務(wù)器停止響應(yīng)的后果。</p><p>  現(xiàn)在的網(wǎng)絡(luò)游戲,數(shù)據(jù)越來越多,越來越復(fù)雜。合理地組織這些數(shù)據(jù),并為服務(wù)器提供便于操作的接口,從而實(shí)現(xiàn)快速的數(shù)據(jù)訪問是一個(gè)非常重要的工作。數(shù)據(jù)庫技術(shù)為開發(fā)人員提供了一個(gè)良好的平

21、臺(tái)。</p><p>  至今,數(shù)據(jù)庫設(shè)計(jì)的很多工作仍需要人工來做,除了關(guān)系型數(shù)據(jù)庫已有一套較完整的數(shù)據(jù)范式理論可用來部分地指導(dǎo)數(shù)據(jù)庫設(shè)計(jì)之外,尚缺乏一套完善的數(shù)據(jù)庫設(shè)計(jì)理論、方法和工具,以實(shí)現(xiàn)數(shù)據(jù)庫設(shè)計(jì)的自動(dòng)化或交互式的半自動(dòng)化設(shè)計(jì)。所以數(shù)據(jù)庫設(shè)計(jì)今后的研究發(fā)展方向是研究數(shù)據(jù)庫設(shè)計(jì)理論,尋求能夠更有效地表達(dá)語義關(guān)系的數(shù)據(jù)模型,為各階段的設(shè)計(jì)提供自動(dòng)或半自動(dòng)的設(shè)計(jì)工具和集成化的開發(fā)環(huán)境,使數(shù)據(jù)庫的設(shè)計(jì)更加工程化、

22、更加規(guī)范化和更加方便易行,使得在數(shù)據(jù)庫的設(shè)計(jì)中充分體現(xiàn)軟件工程的先進(jìn)思想和方法。[1]</p><p>  本項(xiàng)目使用的是基于MySQL創(chuàng)建的數(shù)據(jù)庫,還使用了MySQL提供的一個(gè)C語言的API,使用該API的功能進(jìn)行連接管理、實(shí)施查詢、處理結(jié)果集等內(nèi)容。為服務(wù)器提供操作數(shù)據(jù)庫的函數(shù)接口。通過該課題的研究,能使我了解MySQL相關(guān)知識(shí),加深對(duì)數(shù)據(jù)庫相關(guān)知識(shí)的認(rèn)識(shí),掌握了網(wǎng)游服務(wù)器數(shù)據(jù)庫的開發(fā)流程與方法。鍛煉并提升自

23、己的能力,豐富自己的專業(yè)知識(shí)。為以后就業(yè)打下良好基礎(chǔ)。</p><p><b>  2 系統(tǒng)需求分析</b></p><p><b>  2.1 需求概述</b></p><p>  在軟件工程中,需求分析指的是在建立一個(gè)新的或改變一個(gè)現(xiàn)存的電腦系統(tǒng)時(shí)描寫新系統(tǒng)的目的、范圍和定義時(shí)所要做的所有的工作。需求分析是軟件工程中的

24、一個(gè)關(guān)鍵過程。在這個(gè)過程中,系統(tǒng)分析員和軟件工程師確定顧客的需要。 只有在確定了這些需要后他們才能夠分析和尋求新系統(tǒng)的解決方法。</p><p>  需求分析主要是解決軟件產(chǎn)品應(yīng)該達(dá)到的各項(xiàng)功能和非功能要求,即用戶要求做什么。軟件需求分析工作是軟件開發(fā)與用戶緊密配合。充分交換意見,系統(tǒng)在廣大的相關(guān)人群中謀取平衡與折衷,最終達(dá)到相互諒解的過程。</p><p>  需求分析是從用戶最初的非形

25、式化需求到滿足用戶要求的軟件產(chǎn)品的映射過程。它實(shí)際上是一個(gè)對(duì)用戶意圖不斷進(jìn)行揭示和判斷的過程,其目的在于細(xì)化、精華軟件的作用范圍,確定擬開發(fā)軟件的功能和性能、約束、環(huán)境。</p><p>  需求分析工作是軟件生存期中重要的一步,也是決定性的一步。軟件需求分析工作是一個(gè)不斷認(rèn)識(shí)和逐步細(xì)化的過程。該過程將軟件計(jì)劃階段所確定的軟件范圍(工作域)逐步細(xì)化到可詳細(xì)定義的程度,并分析各種不同的軟件元素,然后為這些元素找到可

26、行的解決方法。[4]</p><p>  2.2 數(shù)據(jù)庫系統(tǒng)需求</p><p>  本階段主要任務(wù)就是:調(diào)查和分析用戶的業(yè)務(wù)活動(dòng)和數(shù)據(jù)的使用情況,弄清所用數(shù)據(jù)的種類、范圍、數(shù)量以及它們?cè)跇I(yè)務(wù)活動(dòng)中交流的情況,確定用戶對(duì)數(shù)據(jù)庫系統(tǒng)的使用要求和各種約束條件等,形成用戶需求規(guī)約。</p><p>  數(shù)據(jù)庫系統(tǒng)主要完成登錄服務(wù)器,大廳服務(wù)器,游戲服務(wù)器,數(shù)據(jù)庫服務(wù)器與數(shù)

27、據(jù)庫之間的交互。其主要分為兩大塊:登錄服務(wù)器與數(shù)據(jù)庫的交互,大廳服務(wù)器與數(shù)據(jù)庫的交互。</p><p>  系統(tǒng)需求大致可敘述為:</p><p>  用戶通過游戲客戶端軟件登陸游戲服務(wù)器,服務(wù)器通過傳遞過來的用戶、密碼到數(shù)據(jù)庫中驗(yàn)證,如果驗(yàn)證通過即可登錄游戲,否則提示用戶、密碼錯(cuò)誤。</p><p>  通過驗(yàn)證后,從數(shù)據(jù)庫中讀取出用戶的個(gè)人資料如賬號(hào)名,同時(shí)讀取

28、用戶的游戲資料如積分、等級(jí)、金錢等參數(shù)。</p><p>  用戶選擇游戲大廳進(jìn)行游戲。在大廳可進(jìn)行查收禮物、購買物品、配置自己物品等操作。操作完成后,程序調(diào)用數(shù)據(jù)庫接口保存用戶相應(yīng)信息。</p><p>  在用戶一局游戲結(jié)束后,用戶的游戲信息會(huì)改變。程序調(diào)用數(shù)據(jù)庫接口保存用戶游戲信息,如勝率變化、積分等資料。</p><p><b>  3系統(tǒng)設(shè)計(jì)&l

29、t;/b></p><p>  3.1 MySQL概述</p><p>  MySQL是一個(gè)高性能、多線程、多用戶、建立在客戶-服務(wù)器結(jié)構(gòu)上的RDBMS(Relational DataBase Managrment Systen),專門為了速度和穩(wěn)定性而設(shè)計(jì)。在過去的幾年中,它已經(jīng)成為線上和線下適合于數(shù)據(jù)庫驅(qū)動(dòng)的應(yīng)用程序最受歡迎的RDBMS之一?,F(xiàn)今,有超過400萬的網(wǎng)站建立、使用并

30、且配置了基于MySQL的應(yīng)用程序,而且網(wǎng)站的數(shù)量每天都在增加。它得到了像Sony,Xerox,HP(Hewelt Packard)和NASA(National Aeronautics and Space Administration)這樣的公司或組織的積極使用。簡而言之,它無處不在,它的應(yīng)用將會(huì)變得更廣泛。</p><p>  我們不難發(fā)現(xiàn)這樣急速增長的原因。相對(duì)于像Oracle和Microsoft SQL Se

31、rver一樣的更商業(yè)化、非開放源代碼的系統(tǒng)來說,快速、健壯和友好的數(shù)據(jù)庫引擎、高級(jí)的數(shù)據(jù)管理和恢復(fù)工具、不斷改進(jìn)的特性合集、遵守現(xiàn)有的SQL標(biāo)準(zhǔn)、友好的商業(yè)許可原則,都是促成MySQL成為可實(shí)施的選擇因素。MySQL的較低總體擁有成本和更穩(wěn)定、更安全的系統(tǒng)特性,使越來越多的企業(yè)吧它們的系統(tǒng)移植到MySQL,并且收獲著MySQL開放源代碼帶來的效益。</p><p>  MySQL始終圍繞三個(gè)基本原則而設(shè)計(jì),它們是

32、:性能、可靠性和容易使用。嚴(yán)格按照這些準(zhǔn)則產(chǎn)生了一個(gè)價(jià)格便宜而富有特色、適應(yīng)標(biāo)準(zhǔn)而容易擴(kuò)展、速度快而效率高的RDBMS,使MySQL成為開發(fā)者和管理者建立、維護(hù)和配置復(fù)雜應(yīng)用程序的完美工具。</p><p>  今天,MySQL的主要應(yīng)用程序出現(xiàn)在網(wǎng)絡(luò)舞臺(tái)上,這并不令人吃驚。隨著網(wǎng)站以及基于Web對(duì)分布式應(yīng)用程序變得越來越復(fù)雜,有效管理數(shù)據(jù)來改善處理效率、降低響應(yīng)時(shí)間和提高用戶的全面技能就變得越來越重要了。因此,

33、我們迫切需要一個(gè)速度快、性能穩(wěn)定和安全的數(shù)據(jù)庫(可以非常省心地配置和使用它,并且為將來的發(fā)展奠定堅(jiān)實(shí)的基礎(chǔ))。</p><p>  很多原因讓MySQL正合需要。經(jīng)過證實(shí)的記錄讓它的可靠性和壽命得到保證,開放源代碼的根本能夠確保迅速調(diào)整缺陷和性能持續(xù)增強(qiáng)大周期(更不必提及較低的總體擁有成本);對(duì)不同編程語言和技術(shù)的可移植性和支持,使它適合多種應(yīng)用程序。[2]</p><p>  基于MyS

34、QL的以上優(yōu)點(diǎn),我們選擇MySQL做為該網(wǎng)絡(luò)游戲的數(shù)據(jù)庫管理系統(tǒng)。</p><p>  3.2 數(shù)據(jù)庫概念設(shè)計(jì)</p><p>  概念設(shè)計(jì):對(duì)用戶要求描述的現(xiàn)實(shí)世界(可能是一個(gè)工廠、一個(gè)商場(chǎng)或者一</p><p>  個(gè)學(xué)校等),通過對(duì)其中住處的分類、聚集和概括,建立抽象的概念數(shù)據(jù)模型。這個(gè)概念模型應(yīng)反映現(xiàn)實(shí)世界各部門的信息結(jié)構(gòu)、信息流動(dòng)情況、信息間的互相制約關(guān)系

35、以及各部門對(duì)信息儲(chǔ)存、查詢和加工的要求等。所建立的模型應(yīng)避開數(shù)據(jù)庫在計(jì)算機(jī)上的具體實(shí)現(xiàn)細(xì)節(jié),用一種抽象的形式表示出來。以擴(kuò)充的實(shí)體—(E-R模型)聯(lián)系模型方法為例,第一步先明確現(xiàn)實(shí)世界各部門所含的各種實(shí)體及其屬性、實(shí)體間的聯(lián)系以及對(duì)信息的制約條件等,從而給出各部門內(nèi)所用信息的局部描述(在數(shù)據(jù)庫中稱為用戶的局部視圖)。第二步再將前面得到的多個(gè)用戶的局部視圖集成為一個(gè)全局視圖,即用戶要描述的現(xiàn)實(shí)世界的概念數(shù)據(jù)模型。[6]</p>

36、<p>  根據(jù)需求,我們可設(shè)計(jì)出如下的表:</p><p>  Account:存儲(chǔ)用戶賬號(hào)信息(如圖3.1)。用戶注冊(cè)賬號(hào)時(shí)產(chǎn)生這些信息,每局游戲結(jié)束后將更新相應(yīng)信息。用戶可在游戲大廳中相應(yīng)界面看到這些信息。</p><p>  圖3.1 表Account屬性</p><p>  AccountId:用戶賬號(hào)id;</p><p

37、>  UserName:用戶名字;</p><p>  Password:用戶密碼;</p><p>  Experience:用戶經(jīng)驗(yàn);</p><p>  Money:用戶金錢;</p><p>  Level:用戶等級(jí);</p><p>  CurShipAccessId:用戶當(dāng)前戰(zhàn)艦id。</p&g

38、t;<p>  Thing:存儲(chǔ)用戶道具信息(如圖3.2)。用戶買入、接收道具以及對(duì)道具進(jìn)行各種操作時(shí),這些數(shù)據(jù)將更新。用戶可在游戲大廳中相應(yīng)界面看到這些信息。</p><p>  圖3.2 表Thing屬性</p><p>  ThingId:用戶物品id;</p><p>  AccountId:用戶物品所屬用戶id;</p><

39、;p>  ThingType:用戶物品類型;</p><p>  bBind:用戶物品是否綁定;</p><p>  bInstalled:用戶物品是否激活;</p><p>  ActiveTime:用戶物品有效時(shí)間;</p><p>  AccessId:用戶物品在本地角本數(shù)據(jù)庫表中的id;</p><p>

40、  ShipAccessId:用戶戰(zhàn)艦在本地腳本數(shù)據(jù)庫表中的id。</p><p>  HSGCVerifyCode:臨時(shí)存儲(chǔ)用戶登陸驗(yàn)證信息(如圖3.3)。用戶登錄時(shí)產(chǎn)生這些信息,用于用戶進(jìn)入、更換大廳時(shí)使用,用戶退出游戲后,產(chǎn)生的這些信息將被刪除。</p><p>  圖3.3 表HSGCVerifyCode屬性</p><p>  HSGCVerifyCode

41、Id:登錄驗(yàn)證Id;</p><p>  AccountId:登錄用戶的Id;</p><p>  VerifyCode:驗(yàn)證碼。</p><p>  Gift:存儲(chǔ)用戶禮物信息(如圖3.4)。用戶贈(zèng)送禮物時(shí),會(huì)產(chǎn)生相應(yīng)信息,被贈(zèng)送用戶會(huì)在相應(yīng)界面看到這些信息。</p><p>  圖3.4 表Gift屬性</p><p&

42、gt;  GiftId:禮物的id;</p><p>  AccountId:接收禮物用戶的id;</p><p>  ThingType:禮物類型;</p><p>  Benefactor:送禮物的用戶;</p><p>  DescText:禮物附帶的描述</p><p>  以上表都是在游戲過程中與用戶交互時(shí)生

43、成的</p><p>  此外,還有本地腳本數(shù)據(jù)庫中的表(后綴為Access代表為本地?cái)?shù)據(jù)庫里的表),但這些表不在設(shè)計(jì)范圍中,故不做詳述。它們包括:</p><p>  ShipAccess:存儲(chǔ)游戲中戰(zhàn)艦的信息(如圖3.5)。</p><p>  圖3.5 表ShipAccess屬性</p><p>  RoleAccess:存儲(chǔ)游戲中角色

44、的信息(如圖3.6)。</p><p>  圖3.6 表RoleAccess屬性</p><p>  GunAccess:存儲(chǔ)游戲中戰(zhàn)艦上武器的信息(如圖3.7)。</p><p>  圖3.7 表GunAccess屬性</p><p>  ItemAccess:存儲(chǔ)游戲中物品的信息(如圖3.8)。</p><p> 

45、 圖3.8 表ItemAccess屬性</p><p>  EmplaceAccess:存儲(chǔ)戰(zhàn)艦位置信息(如圖3.9)。</p><p>  圖3.9 表EmplaceAccess屬性</p><p>  后綴為Access代表為本地?cái)?shù)據(jù)庫里的表</p><p>  以上表的實(shí)體關(guān)系(如圖3.10):</p><p>

46、  圖3.10 實(shí)體關(guān)系圖</p><p>  3.3 數(shù)據(jù)庫邏輯設(shè)計(jì)</p><p>  邏輯設(shè)計(jì):主要工作是將現(xiàn)實(shí)世界的概念數(shù)據(jù)模型設(shè)計(jì)成數(shù)據(jù)庫的一種邏輯模式,即適應(yīng)于某種特定數(shù)據(jù)庫管理系統(tǒng)所支持的邏輯數(shù)據(jù)模式。與此同時(shí),可能還需為各種數(shù)據(jù)處理應(yīng)用領(lǐng)域產(chǎn)生相應(yīng)的邏輯子模式。這一步設(shè)計(jì)的結(jié)果就是所謂“邏輯數(shù)據(jù)庫”。[6]</p><p>  在數(shù)據(jù)庫概念設(shè)計(jì)完成之

47、后,我們可進(jìn)行數(shù)據(jù)庫邏輯設(shè)計(jì)。</p><p>  創(chuàng)建數(shù)據(jù)庫ocean。</p><p>  在MySQL Command Line Client中執(zhí)行如下命令:</p><p>  執(zhí)行完畢后,數(shù)據(jù)庫ocean創(chuàng)建成功。(如圖3.11)</p><p>  圖3.11 數(shù)據(jù)庫ocean</p><p>  然后連接

48、數(shù)據(jù)庫ocean。</p><p>  在MySQL Command Line Client中執(zhí)行如下命令:</p><p>  執(zhí)行完畢后,提示數(shù)據(jù)庫連接成功。</p><p>  在數(shù)據(jù)庫ocean中創(chuàng)建表account。</p><p>  在MySQL Command Line Client中執(zhí)行如下命令:</p>&l

49、t;p>  執(zhí)行完畢后,表account創(chuàng)建成功。(如圖3.12)</p><p>  圖3.12 表account</p><p>  在數(shù)據(jù)庫ocean中創(chuàng)建表gift。</p><p>  在MySQL Command Line Client中執(zhí)行如下命令:</p><p>  執(zhí)行完畢后,表gift創(chuàng)建成功。(如圖3.13)&l

50、t;/p><p>  圖3.13 表gift</p><p>  在數(shù)據(jù)庫ocean創(chuàng)建表hsgcverifycode。</p><p>  在MySQL Command Line Client中執(zhí)行如下命令:</p><p>  執(zhí)行完畢后,表hsgcverifycode創(chuàng)建成功。(如圖3.14)</p><p>  圖

51、3.14 表hsgcverifycode</p><p><b>  創(chuàng)建表thing。</b></p><p>  在MySQL Command Line Client中執(zhí)行如下命令:</p><p>  執(zhí)行完畢后,表thing創(chuàng)建成功。(如圖3.15)</p><p>  圖3.15 表thing</p>

52、;<p>  4系統(tǒng)難點(diǎn)技術(shù)分析與設(shè)計(jì)</p><p>  4.1 系統(tǒng)架構(gòu)設(shè)計(jì)與分析</p><p>  根據(jù)分析,我們?cè)O(shè)計(jì)出系統(tǒng)架構(gòu)圖。(如圖4.1)</p><p>  圖4.1 系統(tǒng)架構(gòu)圖</p><p>  從圖我們可以看出系統(tǒng)各個(gè)部分的工作情況以及數(shù)據(jù)的交互情況??蓮膬蓚€(gè)部分來分析:</p><p

53、>  登錄服務(wù)器與數(shù)據(jù)庫服務(wù)器的交互。其中包括:</p><p>  用戶由登錄器客戶端登陸登錄服務(wù)器時(shí),登錄服務(wù)器請(qǐng)求數(shù)據(jù)庫服務(wù)器執(zhí)行登陸驗(yàn)證操作,數(shù)據(jù)庫服務(wù)器再對(duì)數(shù)據(jù)庫進(jìn)行查詢操作,并返回查詢結(jié)果。</p><p>  大廳服務(wù)器與數(shù)據(jù)庫服務(wù)器的交互。其中包括:</p><p>  用戶由游戲客戶端登陸大廳服務(wù)器時(shí),大廳服務(wù)器請(qǐng)求數(shù)據(jù)庫服務(wù)器執(zhí)行登陸驗(yàn)證操

54、作,數(shù)據(jù)庫服務(wù)器再對(duì)數(shù)據(jù)庫進(jìn)行查詢操作,并返回查詢結(jié)果。</p><p>  用戶更換大廳時(shí),大廳服務(wù)器請(qǐng)求數(shù)據(jù)庫服務(wù)器執(zhí)行更換大廳操作,數(shù)據(jù)庫服務(wù)器再對(duì)數(shù)據(jù)庫進(jìn)行相應(yīng)操作,并返回操作后的結(jié)果。</p><p>  用戶對(duì)物品進(jìn)行查詢、配置、激活、丟棄、購買、贈(zèng)送、接收時(shí),大廳服務(wù)器請(qǐng)求數(shù)據(jù)庫服務(wù)器執(zhí)行相應(yīng)操作,數(shù)據(jù)庫服務(wù)器在對(duì)數(shù)據(jù)局進(jìn)行相應(yīng)的操作,并返回操作后的結(jié)果。</p>

55、<p>  一局游戲結(jié)束后,游戲服務(wù)器將游戲過程中各種信息的變化傳給大廳服務(wù)器,大廳服務(wù)器請(qǐng)求數(shù)據(jù)庫服務(wù)器執(zhí)行數(shù)據(jù)更新操作,數(shù)據(jù)庫服務(wù)器再對(duì)數(shù)據(jù)庫進(jìn)行更新操作,并返回更新后的結(jié)果。</p><p>  用戶退出游戲時(shí),大廳服務(wù)器請(qǐng)求數(shù)據(jù)庫執(zhí)行退出操作,數(shù)據(jù)庫服務(wù)器再對(duì)數(shù)據(jù)庫進(jìn)行相應(yīng)的刪除數(shù)據(jù)操作。</p><p>  其中值得注意到一點(diǎn)是:游戲服務(wù)器沒有直接與數(shù)據(jù)庫服務(wù)器進(jìn)行

56、交互,而是通過大廳服務(wù)器與數(shù)據(jù)庫服務(wù)器進(jìn)行數(shù)據(jù)的傳遞。之所以是這樣,主要是因?yàn)檫@類網(wǎng)絡(luò)對(duì)戰(zhàn)游戲不需要在游戲過程中實(shí)時(shí)更新數(shù)據(jù),可以通過大廳服務(wù)器,在一局游戲結(jié)束后,再進(jìn)行游戲數(shù)據(jù)的更新。所以,本系統(tǒng)采用的是這種數(shù)據(jù)交換方式。</p><p>  下面,我們結(jié)合系統(tǒng)需求,對(duì)架構(gòu)圖進(jìn)行詳細(xì)的分析:</p><p><b>  表4.1 術(shù)語表</b></p>

57、<p>  LC登陸LS時(shí),LS請(qǐng)求DS進(jìn)行驗(yàn)證,驗(yàn)證內(nèi)容為用戶名和密碼2項(xiàng)。DS在DB中查詢是否有匹配信息。如果驗(yàn)證成功,則數(shù)據(jù)庫中產(chǎn)生一個(gè)HSGC驗(yàn)證碼,并然后反饋驗(yàn)證結(jié)果。否則提示用戶登陸失敗。(如圖4.2)</p><p>  圖4.2 LC登錄LS流程圖</p><p>  GC登陸HS時(shí),HS請(qǐng)求DS進(jìn)行驗(yàn)證,驗(yàn)證內(nèi)容為用戶名和密碼、HSGC驗(yàn)證碼 3項(xiàng)。DS在DB

58、中查詢是否有匹配信息。 然后反饋驗(yàn)證結(jié)果,如果是成功的,那么附帶用戶信息,以及禮物信息。否則提示用戶登錄失敗。(如圖4.3)</p><p>  圖4.3 GC登錄HS流程圖</p><p>  GC已經(jīng)在某個(gè)HS里,用戶進(jìn)行更換HS的操作時(shí),HS請(qǐng)求DS進(jìn)行更換大廳操作,DS操作DB產(chǎn)生一個(gè)新HSGC驗(yàn)證碼,然后返回新的HSGC驗(yàn)證碼給HS。并進(jìn)行更換大廳操作。(如圖4.4)</p

59、><p>  圖4.4用戶更換大廳流程圖</p><p>  GC已經(jīng)在某個(gè)HS里,用戶進(jìn)行配置時(shí)需要激活道具、裝備和角色,HS請(qǐng)求DS進(jìn)行激活操作。DS操作DB,更改DB中相應(yīng)數(shù)據(jù)。操作完成后,傳回更新后的數(shù)據(jù)給HS,并提示操作成功。(如圖4.5)</p><p>  圖4.5 用戶激活操作流程圖</p><p>  GC已經(jīng)在某個(gè)HS里,用戶

60、點(diǎn)擊丟棄按鈕丟棄一個(gè)道具、裝備或者角色,HS請(qǐng)求DS進(jìn)行丟棄操作。DS對(duì)DB進(jìn)行操作,更改DB中相應(yīng)的數(shù)據(jù)。操作完成后,傳回更新后的數(shù)據(jù)給HS,并提示操作成功。(如圖4.6)</p><p>  圖4.6 用戶丟棄物品操作流程圖</p><p>  GC已經(jīng)在某個(gè)HS里,用戶點(diǎn)擊確定按鈕確認(rèn)當(dāng)前的道具、裝備或者角色在船上的配置,HS請(qǐng)求DS進(jìn)行確認(rèn)操作。DS對(duì)DB進(jìn)行操作,更改DB中相應(yīng)的

61、數(shù)據(jù)。操作完成后,傳回更新后的數(shù)據(jù)給HS,并提示操作成功。(如圖4.7)</p><p>  圖4.7 用戶確認(rèn)物品操作流程圖</p><p>  GC已經(jīng)在某個(gè)HS里,用戶點(diǎn)擊購買結(jié)算,HS請(qǐng)求DS進(jìn)行結(jié)算操作。DS對(duì)DB進(jìn)行操作,更改DB中相應(yīng)的數(shù)據(jù)。操作完成后,傳回更新后的數(shù)據(jù)給HS,并提示操作成功。(如圖4.8)</p><p>  圖4.8 用戶購買結(jié)算操

62、作流程圖</p><p>  GC已經(jīng)在某個(gè)HS里,用戶要贈(zèng)送禮物,HS請(qǐng)求DS進(jìn)行贈(zèng)送操作。DS對(duì)DB進(jìn)行操作,更改DB中相應(yīng)的數(shù)據(jù)。操作完成后,傳回更新后的數(shù)據(jù)給HS,并提示操作成功。(如圖4.9)</p><p>  圖4.9 用戶贈(zèng)送禮物操作流程圖</p><p>  GC已經(jīng)在某個(gè)HS里,用戶在收到禮物界面中,確認(rèn)接收禮物時(shí),HS請(qǐng)求DS進(jìn)行接收操作。DS

63、對(duì)DB進(jìn)行操作,更改DB中相應(yīng)的數(shù)據(jù)。操作完成后,傳回更新后的數(shù)據(jù)給HS,并提示操作成功。(如圖4.10)</p><p>  圖4.10 用戶接收禮物操作流程圖</p><p>  GC已經(jīng)在某個(gè)HS里,用戶在收到禮物界面中,確定丟棄禮物是,HS請(qǐng)求DS進(jìn)行丟棄禮物操作。DS對(duì)DB進(jìn)行操作,更改DB中相應(yīng)的數(shù)據(jù)。操作完成后,傳回更新后的數(shù)據(jù)給HS,并提示操作成功。(如圖4.11)<

64、/p><p>  圖4.11 用戶丟棄禮物操作流程圖</p><p>  GC已經(jīng)在某個(gè)HS里,用戶查詢禮物信息時(shí),HS請(qǐng)求DS進(jìn)行查詢禮物信息操作。DS對(duì)DB進(jìn)行查詢,查詢完成后,將查詢到的數(shù)據(jù)返回給HS。(如圖4.12)</p><p>  圖4.12 用戶查詢禮物操作流程圖</p><p>  用戶一局游戲結(jié)束后,用戶的各種游戲信息會(huì)得到更

65、新,GS將這些數(shù)據(jù)傳給HS,HS請(qǐng)求DS進(jìn)行數(shù)據(jù)更新操作并將數(shù)據(jù)傳給DS。DS對(duì)DB進(jìn)行相應(yīng)的數(shù)據(jù)更新操作,操作完成后,將更新后的數(shù)據(jù)傳回HS。(如圖4.13)</p><p>  圖4.13 游戲結(jié)束后數(shù)據(jù)更新流程圖</p><p>  GC已經(jīng)在某個(gè)HS里,用戶退出游戲時(shí),HS請(qǐng)求DS進(jìn)行退出操作,DS刪除DB中相應(yīng)的HSGC驗(yàn)證碼信息。(如圖4.14)</p><

66、p>  圖4.14 用戶退出游戲操作流程圖</p><p><b>  5系統(tǒng)運(yùn)行測(cè)試</b></p><p>  數(shù)據(jù)庫系統(tǒng)建立后,界面視圖如圖5.1。</p><p>  圖5.1 數(shù)據(jù)庫系統(tǒng)界面視圖</p><p>  現(xiàn)在,我們模擬用戶的一些操作,然后觀察數(shù)據(jù)庫中的變化。以此來觀察數(shù)據(jù)庫系統(tǒng)是否能正常運(yùn)行。

67、</p><p>  用戶Ronaldo和Mess登錄,其賬號(hào)、密碼驗(yàn)證成功后,表hsgcverifycode中產(chǎn)生登錄驗(yàn)證碼以及相應(yīng)數(shù)據(jù)。(如圖5.2)</p><p>  圖5.2 用戶登錄時(shí),表hsgcverifycode中的變化</p><p>  用戶Ronaldo更換大廳,其驗(yàn)證碼更新。(如圖5.3)</p><p>  圖5.3

68、 用戶更換大廳后,表hsgcverifycode中的變化</p><p>  用戶Mess分別購買1號(hào)和2號(hào)物品,點(diǎn)擊確認(rèn)后,其金錢以及物品信息在對(duì)應(yīng)表中發(fā)生變化。(如圖5.4,5.5)</p><p>  圖5.4 用戶購買物品后,其金錢數(shù)據(jù)更新</p><p>  圖5.5 用戶購買物品后,其物品信息更新</p><p>  用戶Mess

69、將1號(hào)物品贈(zèng)送給Ronaldo,表gift中發(fā)生變化。(如圖5.6)</p><p>  圖5.6 用戶贈(zèng)送物品后,gift表中發(fā)生變化</p><p>  用戶Ronaldo接收禮物,其物品信息發(fā)生變化。(如圖5.7)</p><p>  圖5.7 用戶接受禮物后,物品信息更新</p><p>  用戶Mess和Ronaldo激活自己的物品

70、,物品信息發(fā)生變化。(如圖5.8)</p><p>  圖5.8 用戶激活物品后,物品信息更新</p><p>  用戶Mess丟棄自己的物品后,物品信息發(fā)生變化。(如圖5.9)</p><p>  圖5.9 用戶丟棄物品后,物品信息更新</p><p>  用戶Mess退出游戲,表hsgcverifycode中其驗(yàn)證碼被刪除。(如圖5.10

71、)</p><p>  圖5.10 用戶退出后,表hsgcverifycode發(fā)生變化</p><p><b>  6工作總結(jié)</b></p><p>  首先,本文在深入理解分析系統(tǒng)需求的基礎(chǔ)上,運(yùn)用軟件工程、模塊化設(shè)計(jì)思想等進(jìn)行了數(shù)據(jù)庫概念設(shè)計(jì)、數(shù)據(jù)庫邏輯設(shè)計(jì)、系統(tǒng)架構(gòu)設(shè)計(jì),對(duì)系統(tǒng)的核心技術(shù)進(jìn)行了分析,解決了技術(shù)難點(diǎn),并對(duì)系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)提

72、出了解決方案。</p><p>  其次,本文通過系統(tǒng)架構(gòu)圖,并結(jié)合需求,分析出了系統(tǒng)各個(gè)部分的工作情況以及數(shù)據(jù)的交互情況。每個(gè)部分的功能通過數(shù)據(jù)庫服務(wù)器調(diào)用對(duì)應(yīng)函數(shù)來實(shí)現(xiàn)。</p><p>  該數(shù)據(jù)庫系統(tǒng)層次分明,結(jié)構(gòu)清晰,有利于系統(tǒng)維護(hù)和將來的擴(kuò)充升級(jí)。</p><p>  實(shí)踐證明,該系統(tǒng)很好滿足了用戶需求,提高了整個(gè)游戲的工作效率,得到了好評(píng)。</p

73、><p><b>  參 考 文 獻(xiàn)</b></p><p>  蘇羽,王媛媛.Visual C++網(wǎng)絡(luò)游戲建模與實(shí)現(xiàn).北京:科海電子出版社,2003.</p><p>  Vikram Vaswani. MySQL完全手冊(cè). 北京:電子工業(yè)出版社,2004.11.</p><p>  Paul DuBois. MySQL權(quán)

74、威指南.北京:機(jī)械工程出版社,2004.</p><p>  楊冬青,唐世渭,徐其鈞.數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn).北京:機(jī)械工業(yè)出版社,2001.</p><p>  薩師煊,王珊著.數(shù)據(jù)庫系統(tǒng)概論.北京:高等教育出版社,2002.</p><p>  Thomas Connolly, Carolyn Begg. 數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)與、管理.北京:電子工業(yè)出版社,2004.&

75、lt;/p><p>  王軍鵬,劉路放.基于統(tǒng)一建模語言的關(guān)系數(shù)據(jù)庫模型設(shè)計(jì).現(xiàn)代計(jì)算機(jī),2001,1:16~18</p><p>  Jacob Kohler, Matthias Lange, Ralf Hofestadt, Steffen Schulze-Kremer. Logical and Semantic Database Integration. 2000.</p>

76、<p>  Ali Bazghandi. Web Database Connectivity Methods (using Mysql) in Windows Platform. 2006.</p><p>  王珊. 網(wǎng)絡(luò)與數(shù)據(jù)庫. 北京:中國人民大學(xué)信息學(xué)院,1997.</p><p>  Eriki Eessaar. On Pattern-Based Database De

77、sign and Implementation. Department of Informatics, Tallinn University of Technology, 2008.</p><p>  Alan Y. S. Chiang, Dickson K. W. Chiu, Senior Member, IEEE, Patrick C. K. Hung, and Yi Zheng. Providing Mo

78、re Customized Services for Online Games Using Service Oriented Architecture and Three-Tier Views: A Case Study “Mankind”. 2007.</p><p>  Shi-Jim Yen, Tai-Ning Yang, Jr-Chang Chen, Shun-Chin Hsu. Pattern Matc

79、hing in Go Game Records. 2007.</p><p><b>  致 謝</b></p><p>  本文的研究工作是在***老師及x***的精心指導(dǎo)和悉心關(guān)懷下完成的,在我的學(xué)業(yè)和論文的研究工作中無不傾注著廖老師及798GAME工作室何文師兄辛勤的汗水和心血。無論是前期課題的選擇,還是系統(tǒng)的研發(fā),乃至最后論文的撰寫, ****都給予了我極大的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論