网上书店管理系统 课程设计
數據庫原理及應用 綜合設計報告
第一章 緒論
隨著計算機技術的發展以及計算機網絡的逐漸普及,因特網成為了人們查找信息的重要場所。二十一世紀是信息的時代,所以信息的交換和信息的流通就顯得特別的重要,因此網上書店的出現成為必然。實體書店在正常運行的過程中總是面對大量的客戶信息,書籍信息以及兩者相互作用產生的購書信息。因此需要對客戶資源,圖書資源,購書信息和書籍信息進行管理,以及了解各個環節中的信息變更,要對因此產生的單據進行及時的處理,為了書店的自動化管理,能夠更快速的滿足客戶的需求,提高各種工作的效率,先對其設計相應的系統已達到上述的目的。
網上書店信息管理系統的主要功能是實現書籍信息管理及購書的自動化。圍繞這一主要功能,本系統涉及到以下核心功能:上傳管理,修改管理以及查詢管理。除了這些核心功能之外還包括一些基本的輔助功能,如:商家和客戶的注冊、登錄,客戶的購書等。
本課程設計的目的是通過開發一個網上書店管理信息系統,學習數據庫系統的設計與開發。通過對計算機硬件和軟件解決方案的論證,對應用領域進行調查分析,參考各種資料和進行數據庫系統開發實踐。
第二章 需求分析
2.1數據流圖
網上書店管理信息系統,其外部用戶主要有游客、會員和管理員。其中,游客進行注冊后,可以成為系統的會員,會員享有訂購圖書及訂單和書籍等信息查詢的功能,管理員可對系統的各種信息進行管理和維護。根據上述分析,可以得到網上書店管理信息系統的頂層數據流圖,如圖所示
圖2.1.1網上書店管理信息系統的頂層數據流圖
按照結構化需求分析方法,網上書店系統的主要功能模塊可以分為用戶注冊、訂單信息查詢、書籍信息查詢、訂購圖書及訂單信息管理和圖書信息管理等。在數據處理的過程中,系統內部的信息存儲至少應該包括會員信息記錄、圖書信息記錄和訂單信息記錄。根據上述分析,可以得到“網上書店管理信息系統”的中層數據流圖,如圖所示
圖2.1.2 網上書店管理信息系統的中層數據流圖
為了對數據流圖進行細化,可以進一步對中層數據流圖中的每一個加工進行分解和求精。在網上書店系統的中層數據流圖中,包含6個加工,分別是用戶注冊、訂單信息查詢、書籍信息查詢、訂購圖書、訂單信息管理和圖書信息管理。那么,該系統應該包含6張底層數據流圖。底層數據流圖展現了系統最精確和最細節性的數據處理過程,為系統設計和編碼提供最直接的參考。下面是六大功能模塊的底層數據流圖:
圖2.1.3底層設計“訂購圖書”
圖2.1.4訂單信息查詢
圖2.1.5用戶注冊
圖2.1.6書籍信息查詢
圖2.1.7訂單信息管理
圖2.1.8書籍信息管理
2.2數據字典
2.2.1數據項
數據項是不可分割的最小單位
名稱:圖書編號
類型長度:int
描述:圖書的唯一標識碼 名稱:用戶編號(會員編號)
類型長度:varchar(20)
描述:唯一標識用戶的標識碼
名稱:圖書種類
類型長度:varchar2(50)
描述:用來描述書籍的類別,便于用戶選擇 名稱:用戶姓名
類型:varchar2(20)
描述:會員的名字
名稱:圖書名稱
類型長度:varchar2(50)
描述:圖書的中文名稱 名稱:密碼
類型長度:varchar2(20)
描述:用戶用于登錄系統的密碼
名稱:圖書單價
類型長度:int
描述:圖書的價格 名稱:聯系方式
類型名稱:varchar2(20)
描述:用戶的聯系方式,電話號碼
名稱:圖書存量
類型長度:int
描述:記錄現存的圖書數量
名稱:收貨地址
類型長度:varchar2(200)
描述:記錄用戶的收貨地址
名稱:管理員編號
類型長度:varchar2(20)
描述:書店管理者的賬號
名稱:訂單編號
類型長度:int
描述:訂單的編號
名稱:管理員密碼
類型長度:varchar2(20)
描述:書店登錄系統所用的密碼 名稱:訂單價格
類型長度:int
描述:訂單的價格
名稱:管理員名字
類型長度:varchar2(20)
描述:書店的名字
名稱:書店地址
類型長度:varchar2(20)
描述:書店的線下地址
2.2.2數據結構
反映數據之間的組合關系
結構名稱:管理員信息
含義:是書店管理者相關數據,定義了書店的相關信息
組成:管理員編號,管理員密碼,管理員名稱,書店地址
結構名稱:書籍信息
含義:是書店內書籍的相關信息,定義了書籍的數量單價,編號等
組成:書籍編號,書籍名稱,存量,價格,管理員,類別,內容簡介等
結構名稱:會員信息
含義:是書店會員的集合
組成:會員編號,會員名字,收貨地址,聯系方式,密碼
結構名稱:訂單信息
含義:會員下單買書之后會產生相應的訂單,在此數據結構中進行存儲
組成:訂單編號,會員編號,管理員編號,書籍編號,書名,價格,收獲地址等
2.2.3數據流(是數據結構在系統內傳輸的路徑)
名稱:注冊申請
簡述:游客在游覽書店時想要買書要先注冊成書店會員,注冊時需要管理員的審批
數據來源:游客,管理員
數據流向:會員信息記錄表
數據結構:管理員,會員信息
名稱:訂購圖書
簡述:會員在下單之后,系統會自動生成訂單,然后將訂單信息顯示給會員
數據來源:會員信息表,書籍信息表,訂單
數據流向:會員,管理員
數據結構:訂單信息,會員信息,書籍信息
名稱:訂單信息查詢
簡述:會員可以進行登陸系統查詢自己所購買的圖書信息
數據來源:訂單信息表,會員信息表
數據流向:會員
數據結構:訂單信息,會員信息
名稱:書籍信息查詢
簡述:在瀏覽書店頁面時,對喜歡的書籍可以進行詳細信息的查詢
數據來源:會員信息表,書籍信息表
數據流向:會員
數據結構:書籍信息,會員信息
名稱:訂單信息管理
簡述:當有用戶進行買書下單之后,對訂單數據進行修改
數據來源:用戶,管理員
數據流向:訂單信息
數據結構:會員信息,管理員信息,書籍信息,管理員信息
名稱:書籍信息管理
簡述:當書籍售出或者進購書籍之后,對書籍的數量,種類進行增加、刪除或者修改
數據來源:管理員
數據流向:書籍信息
數據結構:管理員信息,書籍信息
2.2.4數據儲存
數據存儲是數據結構停留或保存的地方,也是數據流的來源和去向之一。
名稱:管理員信息表
描述:儲存系統建立成功后管理員的相關信息
組成:管理員編號,管理員密碼,管理員名字,書店地址
相關處理:修改書籍信息,修改訂單信息,審批會員申請
名稱:書籍信息表
描述:書店在進購或者賣出書籍之后,會對書籍的信息進行相關的修改
組成:書籍編號,書籍名臣,書籍單價,書籍存量,類別
相關處理:對書籍的進行刪除,增加修改處理
名稱:會員信息表
描述:用來儲存游客申請成為書店會員之后的用戶信息
組成:會員編號,會員名稱,會員聯系電話,會員收貨地址,會員密碼
相關處理:申請成為會員
名稱:訂單信息表
描述:用來儲存會員下單買書之后的訂單信息
組成:訂單編號,會員編號,管理員編號,書籍編號,書名,價格,收貨地址
相關處理:訂單申請,訂單修改,訂單刪除
2.2.5數據處理過程
具體的處理過程說明
過程名稱:用戶注冊
輸入數據:用戶名,用戶密碼,收貨地址,聯系方式
輸出數據:用戶是否注冊成功信息,成功就輸出用戶編號
處理邏輯:游客輸入數據之后,檢查輸入的名稱是否合法,密碼是否安全。其他信息是否正確,若正確返回注冊成功,否則注冊失敗
過程名稱:用戶登錄
輸入數據:用戶編號,用戶密碼
輸出數據:登陸成功信息
處理邏輯:判斷用戶輸入的賬號密碼是否和數據庫中保存的一致,若一致就進入書點首頁,若不一致返回密碼錯誤登陸失敗的信息。
過程名稱:訂購圖書
輸入數據:圖書編號,聯系方式,收貨地址,會員信息
輸出數據:訂單信息
處理邏輯:如用戶購買的書籍還有存量,并且用戶以及該付款就返回相應的訂單信息,否則返回購買失敗,并返回失敗原因。
過程名稱:修改圖書信息
輸入數據:增加,減少或者刪除的圖書信息
輸出數據:相應得處理結果
處理邏輯:當管理員要增加或者減少某種書籍得信息得時候就對該書籍的存量進行修改;當管理員要修改某種書籍信息時就修改相應的書籍信息。
過程名稱:增加訂單信息
輸入數據:用戶訂購的圖書信息
輸出數據:訂購圖書的訂單
處理邏輯:將用戶訂購有的書籍相關信息進項輸入,生成相應的書籍訂單。 刪除訂單信息
輸入數據:用戶取消訂單,或者未進行付款
輸出數據:相應的訂單信息就會自動刪除
處理過程:用戶自動取消訂單之后或則長時間沒有對相應的訂單進行付款那么該訂單信息就會被刪除掉
第三章 概要設計
3.1實體屬性圖
3.1.1管理員E-R圖
圖3.1.1管理員實體屬性圖
3.1.2書籍信息
圖3.1.2書籍信息E-R圖
3.1.3訂單E-R圖
圖3.1.3訂單信息E-R圖
3.1.4用戶E-R圖
圖3.1.4用戶E-R圖
3.2系統總體E-R圖
根據3.1 的分析綜合可以得出系統總體的E-R圖,如下:
圖3.2.1系統總體E-R圖
第四章 邏輯設計
4.1 E-R圖轉換為關系模式
根據上述的概念結構設計出邏輯結構,將E-R圖轉換為關系模式,數據庫BookShop包含一下四個表:管理員信息表,客戶信息表,書籍信息表,訂單信息表。
(1)管理員信息表Seller:
管理員(管理員id,管理員密碼,書店地址,管理員名字)
表結構如下
字段名 說明 類型 長度及備注
Seller-id 管理員編號 Varchar2(20) 主鍵
Seller-name 管理員名字 Varchar2(20)
Pwd 管理員密碼 Varchar2(20)
Address 書店地址 Varchar2(200)
Book_id 圖書編號 Int 外鍵
Order_id 訂單編號 Varchar2(20) 外鍵
表4.1.1管理員信息表
(2)書籍信息表books:
書籍信息(編號,存量,書名,價格,管理員id,類別)
表結構如下
字段名 說明 類型 長度及備注
Book_id 書籍編號 Int 主鍵
Seller-id 管理員編號 Varchar2(20) 外鍵
Books_name 書名 Varchar2(50)
Price 價格 Int
Count 存量 Int
Class 種類 Varchar2(20)
表4.1.2書籍信息表
(3)訂單信息表order:
訂單(訂單編號,管理員編號,會員編號,書名,書籍編號,單價)
字段名 說明 類型 長度及備注
Order-id 訂單編號 Int 主鍵
Seller-id 管理員編號 Varchar2(20) 外鍵
Buyer-id 買家編號 Varchar2(20) 外鍵
Book-name 書名 Varchar2(20)
Price 價格 Int
Book-id 書籍編號 Int 外鍵
表4.1.3訂單信息表
(4)會員信息表buyer:
會員信息(會員姓名,會員編號,密碼,聯系方式,收貨地址)
字段名 說明 類型 長度及備注
Buyer-name 會員姓名 Varchar2(20)
Buyer-id 會員編號 Varchar2(20) 主鍵
Pwd 會員密碼 Varchar2(20)
Buyer-Phone 會員電話 Varchar2(20)
Buyer-Address 收貨地址 Varchar2(50)
表4.1.4會員信息表
4.2規范化分析
1、管理員關系中管理員編號為主鍵,其中函數依賴有:管理員編號→管理員姓名,管理員編號→書店地址
因為在系統管理關系中不存在非主屬性對碼的部分函數依賴和傳遞函數依賴,所以系統管理關系是屬于3NF-
2.書籍信息關系中圖書編號為主鍵,其中函數依賴有:圖書編號→圖書名稱,圖書編號→圖書價格,圖書編號→圖書存量,圖書編號→圖書類別
因為在書籍信息關系中不存在非主屬性對碼的部分函數依賴和傳遞函數依賴,所以書籍信息關系是屬于3NF.
3、會員信息關系中會員編號為主鍵,其中函數依賴有:會員編號→會員姓名,會員編號→會員聯系方式,會員編號→會員收貨地址
因為在客戶信息關系中不存在非主屬性對碼的部分函數依賴和傳遞函數依賴,所以客戶信息關系是屬于3NF.
4、訂單關系中訂單號為主鍵,其中函數依賴有:訂單號→會員編號,訂單號→訂單價格,訂單號→書籍編號,訂單號→管理員編號,訂單號→訂單書名
因為在訂單關系中不存在非主屬性對碼的部分函數依賴和傳遞函數依賴,所以訂單關系是屬于3NF.
第五章 程序實現
5.1 SQL語句實現
5.1.1 用SQL語句實現數據庫和數據表的實現
在設計數據庫表結構之前首先要創建一個數據庫實例。
創建一個新的數據庫:
數據庫表的創建語句如下:
(1)管理員表
(2)書籍信息表
CREATE TABLE BOOKS( BOOK_ID INT PRIMARY KEY, SELLER_ID VARCHAR(20), BOOK_NAME VARCHAR(50), PRICE INT, COUNT INT, CLASS VARCHAR(20) );(3)訂單表
CREATE TABLE OEDER( ORDER_ID INT PRIMARY KEY, BOOK_NAME VARCHAR(20), PRICE INT, BOOK_ID INT,CONSTRAINT FK_BOOK_ID FOREIGN KEY(BOOK_ID)REFERENCES BOOK(BOOK_ID), SELLER_ID INT,CONSTRAINT FK_SELLER_ID FOREIGN KEY(SELLER_ID)REFERENCES SELLER(SELLER_ID), BUYER_ID INT,CONSTRAINT FK_BUYER_ID FOREIGN KEY(BUYER_ID)REFERENCES BUYER(BUYER_ID) );(4)買家表
```sql CREATE TABLE BUYER( BUYER_ID VARCHAR(20) PRIMARY KEY, BUYER_NAME VARCHAR(20), BUYER_ADDRESSE VARCHAR(50), BUYER_PHONE VARCHAR(20) PWD INT );5.1.2 用SQL語句實現多種查詢(多表、庫函數、分組統計、視圖等)
1.管理表
–2.書籍表
Create view view_ shuji As Select圖書編號= Book_id,圖書名稱= Book_ name, 圖書價格= Book_ price, 存量= count,類別= class–3.會員表
Create view view_huiyuan As Select購買編號= Buyer_ id,客戶姓名= Buyer_ name,客戶電話= Buyer_phone, 客戶地址= Buyer_addrres, 購買書籍 名稱= Buyer_book from kehu–4.訂單表
Create view view_ dingdan As Select訂單號= Order_ id,購買編號= Buyer_id,總價= All price from dingdan5.2關系代數實現多種查詢
1.查詢書籍名稱
2.查詢書籍類別
sclect Book_class from BOOKS3.查詢書籍價格
select Book_price from BOOKS4.客戶號和客戶名查
select Buyer_ID,Buyer_name from BUYER5.找出有管理權限的
select seller_name from 管理員信息第六章 總結
我的課程設計是網上書店管理信息系統經過兩周的不斷學習課設計開發加上老師和同學們的幫助,終于完成了本次課程設計。通過這次課程設計,使我更大程度上的了解了信息管理系統的功能,提高了我的實踐能力,這次課程設計是對所學知識的一次綜合應用,在完成的過程中,我進一步學習了數據庫的相關知識還學會了Visio的應用,同時對于SQL的編程有了更深的理解,規范了很多編寫習慣。
在設計的過程中遇到了許多的問題,但通過查資料,以及與同學討論,大部分問題都得以解決。但是由于時間問題意見個人在專業知識方面的學習還不夠全面等諸多因素的影響,本系統還存在很多的問題沒有得以解決,功能也不是很完善,系統還有以下部分有待完善:數據庫的安全性有待加強,還可以設置級聯是系統更加完善,還可以增加顧客對自己信息的修改權限,例如聯系方式,收貨地址的修改。這次課程設計使我更加熟練的掌握了Java語言和SQL語句的應用,幫助我熟悉了更多的SQL2015的功能,提高了我的動手能力,在實踐中能夠及時發現問題、解決問題,學到了許多解決實際問題的寶貴經驗,同時也挖掘出了我的內在潛力,使我更加的自信,對編程也更加的有興趣。
我現在了解的東西還很少,還不能很好的掌握自己的專業知識,我會更加謙虛的積極認真學習,不斷增強自身的能力,提高個人素質,像一個真正的IT人士發展。通過這次課程設計我還是學到了很多東西,如果下次再做這樣類似的東西我覺得我一定能做的更好。
總結
以上是生活随笔為你收集整理的网上书店管理系统 课程设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像分割法-snake
- 下一篇: 【UML建模案例】小型网上书店系统