freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于cs模式的聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(編輯修改稿)

2025-04-03 09:17 本頁面
 

【文章內(nèi)容簡介】 據(jù)庫的概念 當(dāng)人們從不同的角度來描述這一概念時(shí)就有不同的定義。例如,稱數(shù)據(jù)庫是一個(gè)“記錄保存系統(tǒng)” (該定義強(qiáng)調(diào)了數(shù)據(jù)庫是若干記錄的集合 )。又如稱數(shù)據(jù)庫是“人們?yōu)榻鉀Q特定的任務(wù),以一定的組織方式 存儲在一起的相關(guān)的數(shù)據(jù)的集合” (該定義側(cè)重于數(shù)據(jù)的組織 )。更有甚者稱數(shù)據(jù)庫是“一個(gè)數(shù)據(jù)倉庫”。當(dāng)然,這種說法雖然形象,但并不嚴(yán)謹(jǐn)。嚴(yán)格地說,數(shù)據(jù)庫是“按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫”。 本系統(tǒng)將使用一直以來使用都最為廣泛的關(guān)系模型作為數(shù)據(jù)庫的建設(shè)依據(jù)。在用戶的觀點(diǎn)下,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,一個(gè)關(guān)系對應(yīng)通常說的一張表,并且關(guān)系的每一個(gè)分量必須是一個(gè)不可分的數(shù)據(jù)項(xiàng)。而一個(gè)基于關(guān)系模型的數(shù)據(jù)庫則是由若干個(gè)二維表組成的。對于一些大型和中型的數(shù)據(jù)庫,如 Oracle, SQL Server 2021/ 等都屬于關(guān)系型數(shù)據(jù)庫,同時(shí)它們所帶有的數(shù)據(jù)庫管理工具是其他小型數(shù)據(jù)庫所沒有的,而同時(shí)這些工具又為管理員的工作節(jié)省了很多的時(shí)間和財(cái)力。 數(shù)據(jù)庫的選擇 本系統(tǒng)使用 MySQL 實(shí)現(xiàn)關(guān)系型數(shù)據(jù)庫。 MySQL 是一個(gè)真正的多用戶、多線程 SQL 數(shù)據(jù)庫服務(wù)器,它有較好的數(shù)據(jù)承載能力,一個(gè)環(huán)境有超過 40 個(gè)數(shù)據(jù)庫,包含 10,000 個(gè)表,其中 500 多個(gè)表超過 7百萬行,總數(shù)據(jù)大約有 100GB 的數(shù)據(jù)庫系統(tǒng)可以很好的被 MySQL 所支持,而 MySQL 本身不會(huì)像Oracle 那樣對系統(tǒng)及硬盤空間有很高的要求 。這也是本系統(tǒng)選用 MySQL 作為后臺數(shù)據(jù)庫系統(tǒng)的一個(gè)重要原因之一。 數(shù)據(jù)庫表的描述 概念模型是對信息世界建模,其表示方法有很多,其中最為常用的是實(shí)體-聯(lián)系模型,即 E- R模型,它是用 E- R圖來描述現(xiàn)實(shí)世界的概念模型。 E- R圖中用矩形表示實(shí)體;用橢圓表示屬性;用菱形表示聯(lián)系。 為了清楚簡便的描述出實(shí)體與其屬性之間的關(guān)系,完整的包含系統(tǒng)功能結(jié)構(gòu)圖如下: 9 用戶信息表( userinfo) 該表主要完成用戶基本信息的錄入,在此表中定義了 8 個(gè)字段(包括 id、賬號、密碼、昵稱、性別、郵箱等)個(gè) 字段來進(jìn)行對用戶的信息存儲,具體如下: 標(biāo)識符 數(shù)據(jù)類型 長度 非空 描述 主鍵 外鍵 說明 id INT 11 Y Y 自增 account VARCHAR 30 Y 賬號 password VARCHAR 30 Y 密碼 nickname VARCHAR 30 Y 昵稱 sex INTEGER 10 性別 用 0, 1表示, 1男, 0女 VARCHAR 30 Y 郵箱 createtime datetime 自動(dòng) 創(chuàng)建日期 head VARCHAR 30 頭像 10 消息表( mess) 該表主要用于用戶進(jìn)行聊天時(shí)相關(guān)信息的錄入,包括 id、發(fā)信人、收信人、信息內(nèi)容等 4個(gè)字段,具體如下: 標(biāo)識符 數(shù)據(jù)類型 長度 非空 描述 主鍵 外鍵 說明 id INT 11 Y Y 自增 accfrom VARCHAR 30 Y 發(fā)信人 Accto VARCHAR 30 Y 收信人 content VARCHAR 30 Y 信息內(nèi)容 分組表( userongroup) 標(biāo)識符 數(shù)據(jù)類 型 長度 非空 描述 主鍵 外鍵 說明 id INT 11 Y Y 自增 userid INT 11 Y 擁有者 name VARCHAR 30 Y 分組名 公共群表( publicgroup) 標(biāo)識符 數(shù)據(jù)類型 長度 非空 描述 主鍵 外鍵 說明 id INT 11 Y Y 自增 userid INT 11 Y 創(chuàng)建人 name VARCHAR 30 Y 群名稱 sign VARCHAR 30 Y 群內(nèi)消息 用戶與群 的中間表( usergroup) 標(biāo)識符 數(shù)據(jù)類型 長度 非空 描述 主鍵 外鍵 說明 id INT 11 Y Y 自增 groupid INT 11 Y 加入的群 userid INT 11 Y 加入的用戶 11 用戶與分組的中間表( userongroup) 標(biāo)識符 數(shù)據(jù)類型 長度 非空 描述 主鍵 外鍵 說明 id INT 11 Y Y 自增 groupid INT 11 Y 加入的分組 userid INT 11 Y 加入的用戶 歷史信息表( historymess) 標(biāo)識符 數(shù)據(jù)類型 長度 非空 描述 主鍵 外鍵 說明 id INT 11 Y Y 自增 accfrom VARCHAR 30 Y 發(fā)信人 Accto VARCHAR 30 Y 收信人 content VARCHAR 30 Y 歷史信息內(nèi)容 離線信息表( offlinemess) 標(biāo)識符 數(shù)據(jù)類型 長度 非空 描述 主鍵 外鍵 說明 id INT 11 Y Y 自增 accfrom VARCHAR 30 Y 發(fā) 信人 Accto VARCHAR 30 Y 收信人 content VARCHAR 30 Y 離線信息內(nèi)容 12 第四章 技術(shù)介紹 JAVA 開發(fā)語言的選擇 現(xiàn)在,市場上可以選購的應(yīng)用開發(fā)產(chǎn)品很多,流行的也有數(shù)十種。目前在我國市場上最為流行,使用最多,最為先進(jìn)的可用作企業(yè)級開發(fā)語言的產(chǎn)品有: SUN 公司的 Java Microsoft 公司的 Visual Basic Microsoft 公司的 Visual C Borland 公司的 Delphi Powersoft 公司的 PowerBulider 在目前市場上這些眾多的程序開發(fā)工具中,有些強(qiáng)調(diào)語言的彈性與執(zhí)行效率;有些偏重于可視化程序開發(fā)工具所帶來的便利性與效率的提高,各有各的優(yōu)點(diǎn)和特色,也滿足了不同用戶的不同需求。我的系統(tǒng)選擇 Java 語言開發(fā),其原因基于以下幾點(diǎn): Java 是一種簡單的、面向?qū)ο蟮摹⒎植际降?、健壯的、安全的、結(jié)構(gòu)中立的、可移植的、性能很優(yōu)異的、多線程的、動(dòng)態(tài)的語言。 1)簡單 Java 的風(fēng)格類似于 C++, 并且 摒棄了 C++中容易引發(fā)程序錯(cuò)誤 的地方,如指針和內(nèi)存管理。 此外 Java 提供了豐富的類庫。 2)面向?qū)ο? 面向?qū)ο罂梢哉f是 Java 最重要的特性。 Java 語言的設(shè)計(jì)完全是面向?qū)ο蟮摹?Java支持靜態(tài)和動(dòng)態(tài)風(fēng)格的代碼繼承及重用。 3)三、分布式 Java 包括一個(gè)支持 HTTP 和 FTP 等基于 TCP/IP 協(xié)議的子庫。因此, Java 應(yīng)用程序可憑借 URL 打開并訪問網(wǎng)絡(luò)上的對象,其訪問方式與訪問本地文件系統(tǒng)幾乎完全相同。 4)健壯 Java 致力于檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤。 Java 自己操縱內(nèi)存減少了內(nèi)存出錯(cuò)的可能性。 Java 提供 Null 指針檢 測數(shù)組邊界、檢測異常出口、字節(jié)代碼校驗(yàn)。 5)安全 Java 的安全性可從兩個(gè)方面得到保證。一方面,在 Java 語言里,像指針和釋放內(nèi)存等 C++功能被刪除,避免了非法內(nèi)存操作。另一方面,當(dāng) Java 用來創(chuàng)建瀏覽器時(shí),語言功能和瀏覽器本身提供的功能結(jié)合起來,使它更安全。 13 6)結(jié)構(gòu)中立 為了建立 Java 作為網(wǎng)絡(luò)的一個(gè)整體, Java 將它的程序編譯成一種結(jié)構(gòu)中立的中間文件格式。只要有 Java 運(yùn)行系統(tǒng)的機(jī)器都能執(zhí)行這種中間代碼。 Java 源程序被編譯成一種高層次的與機(jī)器無關(guān)的 bytecode 格式語言,這種語言被設(shè)計(jì)在 虛擬機(jī)上運(yùn)行,由機(jī)器相關(guān)的運(yùn)行調(diào)試器實(shí)現(xiàn)執(zhí)行。 7)可移植的 Java 的可移植性一直是 Java 程序設(shè)計(jì)師們的精神指標(biāo),也是 Java 之所以能夠受到程序設(shè)計(jì)師們喜愛的原因之一,最大的功臣就是 JVM 的技術(shù)。 JAVA 編譯器產(chǎn)生的目標(biāo)代碼 (JCode) 是針對一種并不存在的 CPUJAVA 虛擬機(jī) (JAVA Virtual Machine),而不是某一實(shí)際的 CPU。 JAVA 虛擬機(jī)能掩蓋不同 CPU 之間的差別,使 JCode 能運(yùn)行于任何具有JAVA 虛擬機(jī)的機(jī)器上。 8)高性能 Java 可以在運(yùn)行時(shí)直接將目標(biāo)代碼 翻譯成機(jī)器指令。 Sun 用直接解釋器一秒鐘內(nèi)可調(diào)用 300,000 個(gè)過程。翻譯目標(biāo)代碼的速度與 C/C++的性能沒什么區(qū)別。 9)多線程 Java 支持多線程,多線程功能使得在一個(gè)程序里可同時(shí)執(zhí)行多個(gè)小任務(wù)。線程,有時(shí)也稱小進(jìn)程,是一個(gè)大進(jìn)程里分出來的小的獨(dú)立的進(jìn)程。 10)動(dòng)態(tài) Java 的動(dòng)態(tài)特性是其面向?qū)ο笤O(shè)計(jì)方法的發(fā)展。它允許程序動(dòng)態(tài)地裝入運(yùn)行過程中所需要的類,這是 C++語言進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)所無法實(shí)現(xiàn)的。 Java 編譯器不是將對實(shí)例變量和成員函數(shù)的引用編譯為數(shù)值引用,而是將符號引用信息在字節(jié)碼中保存下 傳遞給解釋器,再由解釋器在完成動(dòng)態(tài)連接類后,將符號引用信息轉(zhuǎn)換為數(shù)值偏移量。 MVC 設(shè)計(jì)模式 MVC 是 ModelViewController 的簡稱,它是一種設(shè)計(jì)模式,它把應(yīng)用程序分成三個(gè)核心模塊:模型、視圖、控制器,它們各自處理自己的任務(wù)。 視圖是用戶看到并與之交互的界面,作用包括向用戶顯示相關(guān)的數(shù)據(jù)、接受用戶的輸入、向模型查詢業(yè)務(wù)狀態(tài)、接受模型發(fā)出的數(shù)據(jù)更新事件,從而對用戶界面進(jìn)行同步更新。它從模型那里獲得數(shù)據(jù)并指定這些數(shù)據(jù)如何表現(xiàn)。當(dāng)模型變化時(shí),將負(fù)責(zé)維持?jǐn)?shù)據(jù)表現(xiàn)的一致性。并同時(shí)將用戶要求告 知控制器( Controller)。 模型表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯,是應(yīng)用程序的主體部分。一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù),因此提高了代碼的可重用性。 14 控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。當(dāng) Web 用戶單擊 Web頁面中的遞交按鈕來發(fā)送 HTML 表單時(shí),控制器本身不輸出任何東西和做任何處理??刂破鹘邮照埱蟛Q定調(diào)用哪個(gè)模型組件去處理請求,然后決定調(diào)用哪個(gè)視圖來顯示模型處理返回的數(shù)據(jù)。它負(fù)責(zé)對來自視的用戶要求進(jìn)行解釋,并把這些要求映射成相應(yīng)的行為,這些行為由模型負(fù)責(zé)實(shí)現(xiàn)。在獨(dú)立運(yùn)行的 GUI客戶端,用戶 要求可能是一些鼠標(biāo)單擊或是菜單選擇操作。在一個(gè) Web 應(yīng)用程序中,它們的表現(xiàn)形式可能是一些來自客戶端的 GET 或POST 的 HTTP 請求。模型所實(shí)現(xiàn)的行為包括處理業(yè)務(wù)和修改模型的狀態(tài)。根據(jù)用戶要求和模型行為的結(jié)果,控制器選擇一個(gè)視作為對用戶請求的應(yīng)答。通常一組相關(guān)功能集對應(yīng)一個(gè)控制器 MVC 的優(yōu)點(diǎn)表現(xiàn)在如下幾個(gè)方面: 1)首先,最重要的一點(diǎn)是多個(gè)視圖能共享一個(gè)模型。同一個(gè)模型可以被不同的視圖重用,大大提高了代碼的可重用性。 2)由于 MVC 的三個(gè)模塊相互獨(dú)立,改變其中一個(gè)不會(huì)影響其他兩個(gè),所以依據(jù)這種設(shè)計(jì)思 想能構(gòu)造良好的松偶合的構(gòu)件。 3)此外,控制器提高了應(yīng)用程序的靈活性和可配置性??刂破骺梢杂脕? 聯(lián)接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構(gòu)造應(yīng)用程序提供強(qiáng)有力的手段。 MVC 處理過程的結(jié)構(gòu)圖: 15 多線程簡介 線程是指進(jìn)程中單一順序的控制流 ,又稱為輕量級進(jìn)程。線程共享相同的地址??臻g并共同構(gòu)成一個(gè)大的進(jìn)程。線程間的通訊是非常簡單而有效的 , 上下切換非常快。線程使得在一個(gè)應(yīng)用程序中 , 程序的編寫更加自由和豐富。 多線程是相對于單線程而言的 , 是指在一個(gè)程序中 可以定義多個(gè)線程并同時(shí)運(yùn)行它們 , 每個(gè)線程可以執(zhí)行不同的任務(wù)。多線程不同于多任務(wù) , 多任務(wù)是指操作系統(tǒng)而言 , 而多線程是針對一個(gè)程序而言 , 也就是一個(gè)程序內(nèi)部可以同時(shí)執(zhí)行的線程有多個(gè) , 而每個(gè)線程可以完成不同的任務(wù)。 SQL 語言 SQL 是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫語言。 SQL 通常使用于數(shù)據(jù)庫的通訊。 SQL 是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。 SQL語句通常用于完成一些數(shù)據(jù)庫的操作任務(wù),比如在數(shù)據(jù)庫中更新數(shù)據(jù),或者從數(shù)據(jù)庫中檢索數(shù)據(jù)。使用 SQL 的常見關(guān)系數(shù)據(jù)庫管理系統(tǒng)有: Oracle、 Microsoft SQL Server、 access 等等。雖然絕大多數(shù)的數(shù)據(jù)庫系統(tǒng)使用 SQL,但是它們同樣有它們自立另外的專有擴(kuò)展功能用于它們的系統(tǒng)。但是,標(biāo)準(zhǔn)的 SQL 命令,比如select、 insert、 update、 delete、 create和 drop常常被用于完成絕大多數(shù)數(shù)據(jù)庫的操作。 SQL 語言有著非常突出的優(yōu)點(diǎn),主要是:非過程化語言 ,統(tǒng)一的語言 ,是所有關(guān)系數(shù)據(jù)庫的公共語言。 非過程化語言: SQL是一個(gè)非過程化的語言,因?yàn)樗淮翁幚硪粋€(gè)記錄,對數(shù)據(jù)提供自動(dòng)導(dǎo)航。 SQL允許用戶在高層的數(shù) 據(jù)結(jié)構(gòu)上工作,而不對單個(gè)記錄進(jìn)行操
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1