這篇具有很好參考價(jià)值的文章主要介紹了MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)作業(yè) ——《網(wǎng)上書(shū)店系統(tǒng)》數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)驗(yàn)報(bào)告。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。
數(shù)據(jù)庫(kù)設(shè)計(jì)作業(yè)——《網(wǎng)上書(shū)店系統(tǒng)》數(shù)據(jù)庫(kù)設(shè)計(jì)
一、功能需求
- 普通用戶(hù):可以進(jìn)行最基礎(chǔ)的登陸操作,可瀏覽圖書(shū)、按類(lèi)別查詢(xún)圖書(shū)、查看 圖書(shū)的詳細(xì)信息,還可以注冊(cè)成為會(huì)員。
- 會(huì)員:需要填寫(xiě)詳細(xì)信息(真實(shí)姓名、性別、手機(jī)號(hào)、地址、郵箱等),可瀏覽圖書(shū)、按類(lèi)別查詢(xún)圖書(shū)、查看圖書(shū)的詳細(xì)信息,在此基礎(chǔ)上,還可以訂購(gòu)圖書(shū)、生成訂單、查看訂單。
- 管理員:可以瀏覽圖書(shū)、按類(lèi)別查詢(xún)圖書(shū)、查看圖書(shū)的詳細(xì)信息,需要查看訂單、處理訂單進(jìn)行發(fā)貨處理,同時(shí)可以查看、修改個(gè)人信息,更新圖書(shū)信息,如增加、刪除圖書(shū)、更新庫(kù)存量、修改商品名稱(chēng)、增加圖書(shū)的屬性列等。
- 圖書(shū):需要管理員進(jìn)行編排,按圖書(shū)編號(hào)、書(shū)名、圖書(shū)類(lèi)型、作者、出版社、出版日期、定價(jià)、折扣、庫(kù)存數(shù)量等信息分類(lèi)。
二、數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)
1. 概念結(jié)構(gòu)設(shè)計(jì)(E-R圖)
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-441727.html
2. 邏輯結(jié)構(gòu)設(shè)計(jì)(數(shù)據(jù)庫(kù)表、關(guān)系模式)
- 普通用戶(hù)(賬號(hào) ,密碼)
- 會(huì)員(賬號(hào),密碼,會(huì)員名,注冊(cè)時(shí)間,手機(jī)號(hào),郵箱,地址,性別,真實(shí)姓名)
- 注冊(cè)(賬號(hào)) 外鍵:賬號(hào)
- 管理員(管理員編號(hào),管理員密碼,管理員名稱(chēng),郵箱,手機(jī)號(hào))
- 訂單(訂單編號(hào),會(huì)員賬號(hào),下單日期,訂購(gòu)數(shù)量,送貨方式,支付方式,賣(mài)出 總價(jià),收貨地址,收貨人聯(lián)系方式,收貨人姓名,發(fā)貨日期,負(fù)責(zé)該訂單的 管理員(編號(hào)))
- 訂購(gòu)(賬號(hào),訂單編號(hào)) 外鍵:賬號(hào),訂單編號(hào)
- 處理(管理員編號(hào),訂單編號(hào)) 外鍵:管理員編號(hào),訂單編號(hào)
- 圖書(shū)(圖書(shū)編號(hào),書(shū)名,圖書(shū)類(lèi)型,作者,出版社,出版日期,定價(jià),折扣,庫(kù) 存數(shù)量,會(huì)員賬號(hào)) 外鍵:會(huì)員賬號(hào)
- 訂單詳情(訂單編號(hào),圖書(shū)編號(hào),訂購(gòu)數(shù)量,訂購(gòu)價(jià)格) 外鍵:訂單編號(hào),圖書(shū)編號(hào)
規(guī)范化分析:
- 普通用戶(hù)關(guān)系中賬號(hào)為主鍵,其中函數(shù)依賴(lài)有:賬號(hào)—>密碼
因?yàn)樵谄胀ㄓ脩?hù)關(guān)系中不存在非主屬性對(duì)碼的部分函數(shù)依賴(lài)和傳遞函數(shù)依賴(lài),所以普通用戶(hù)關(guān)系是屬于3NF。
- 會(huì)員關(guān)系中賬號(hào)為主鍵,其中函數(shù)依賴(lài)有:賬號(hào)—>密碼,賬號(hào)—>會(huì)員名,賬號(hào)—>注冊(cè)時(shí)間,賬號(hào)—>手機(jī)號(hào),賬號(hào)—>郵箱,賬號(hào)—>地址,賬號(hào)—>性別,賬號(hào)—>真實(shí)姓名
因?yàn)樵跁?huì)員關(guān)系中不存在非主屬性對(duì)碼的部分函數(shù)依賴(lài)和傳遞函數(shù)依賴(lài),所以會(huì)員關(guān)系是屬于3NF。
- 管理員關(guān)系中管理員編號(hào)為主鍵,其中函數(shù)依賴(lài)有:管理員編號(hào)—>管理員密碼,管理員編號(hào)—>管理員名稱(chēng),管理員編號(hào)—>郵箱,管理員編號(hào)—>手機(jī)號(hào)
因?yàn)樵诠芾韱T關(guān)系中不存在非主屬性對(duì)碼的部分函數(shù)依賴(lài)和傳遞函數(shù)依賴(lài),所以管理員關(guān)系是屬于3NF。
- 訂單關(guān)系中訂單編號(hào)為主鍵,其中函數(shù)依賴(lài)有:訂單編號(hào)—>會(huì)員賬號(hào),訂單編號(hào)—>下單時(shí)間,訂單編號(hào)—>訂購(gòu)總數(shù),訂單編號(hào)—>送貨方式,訂單編號(hào)—>支付方式,訂單編號(hào)—>賣(mài)出總價(jià),訂單編號(hào)—>收貨地址,訂單編號(hào)—>收貨人聯(lián)系方式,訂單編號(hào)—>收貨人姓名,訂單編號(hào)—>發(fā)貨日期,訂單編號(hào)—>負(fù)責(zé)該訂單的管理員(編號(hào))
因?yàn)樵谟唵侮P(guān)系中不存在非主屬性對(duì)碼的部分函數(shù)依賴(lài)和傳遞函數(shù)依賴(lài),所以訂單關(guān)系是屬于3NF。
- 圖書(shū)關(guān)系中圖書(shū)編號(hào)為主鍵,其中函數(shù)依賴(lài)有:圖書(shū)編號(hào)—>書(shū)名,圖書(shū)編號(hào)—>圖書(shū)類(lèi)型,圖書(shū)編號(hào)—>作者,圖書(shū)編號(hào)—>出版社,圖書(shū)編號(hào)—>出版日期,圖書(shū)編號(hào)—>定價(jià),圖書(shū)編號(hào)—>折扣,圖書(shū)編號(hào)—>庫(kù)存數(shù)量
因?yàn)樵趫D書(shū)關(guān)系中不存在非主屬性對(duì)碼的部分函數(shù)依賴(lài)和傳遞函數(shù)依賴(lài),所以圖書(shū)關(guān)系是屬于3NF。
3. 建立和管理基本表
表1 會(huì)員表
屬性 |
字段名 |
數(shù)據(jù)類(lèi)型 |
是否為空/約束條件 |
賬號(hào) |
ACCOUNT_NUMBER |
CHAR(20) |
主鍵 |
密碼 |
PASSWORD |
VARCHAR(50) |
非空 |
地址 |
ADDRESS |
VARCHAR(50) |
可以空 |
會(huì)員名 |
MEMBER_ID |
VARCHAR(50) |
可以空 |
注冊(cè)時(shí)間 |
REGTIME |
VARCHAR(50) |
可以空 |
手機(jī)號(hào) |
PHONE_NUMBER |
VARCHAR(50) |
可以空 |
郵箱 |
POSTBOX |
VARCHAR(50) |
可以空 |
性別 |
SEX |
VARCHAR(8) |
可以空 |
真實(shí)姓名 |
NAME |
VARCHAR(50) |
可以空 |
表2 管理員表
屬性 |
字段名 |
數(shù)據(jù)類(lèi)型 |
是否為空/約束條件 |
管理員編號(hào) |
ADMINISTRATOR_ID |
CHAR(20) |
主鍵 |
管理員密碼 |
AD_CODE |
CHAR(30) |
非空 |
管理員名稱(chēng) |
AD_NAME |
VARCHAR(20) |
非空 |
郵箱 |
E_MAIL |
VARCHAR(50) |
可以空 |
手機(jī)號(hào) |
TELEPHONE |
VARCHAR(20) |
可以空 |
表3 訂單表
屬性 |
字段名 |
數(shù)據(jù)類(lèi)型 |
是否為空/約束條件 |
訂單編號(hào) |
ORDER_ID |
CHAR(20) |
主鍵 |
會(huì)員賬號(hào) |
NUMBER |
CHAR(30) |
非空 |
下單日期 |
DATE |
VARCHAR(20) |
可以空 |
訂購(gòu)總數(shù) |
SUM |
INT |
非空 |
送貨方式 |
WAY |
VARCHAR(20) |
非空 |
支付方式 |
PAYMENT_WAY |
VARCHAR(20) |
非空 |
賣(mài)出總價(jià) |
TOTAL_PRICE |
FLOAT |
可以空 |
收貨地址 |
SHIPPING_ADD |
VARCHAR(50) |
非空 |
收貨人聯(lián)系方式 |
CONTACT |
VARCHAR(20) |
非空 |
收貨人姓名 |
CONSIGNEE |
VARCHAR(50) |
非空 |
發(fā)貨日期 |
ISSUANCE_DATE |
VARCHAR(20) |
可以空 |
負(fù)責(zé)該訂單的管理員 |
ADMINISTRATOR_ID |
VARCHAR(20) |
非空 |
表4 圖書(shū)表
屬性 |
字段名 |
數(shù)據(jù)類(lèi)型 |
是否為空/約束條件 |
圖書(shū)編號(hào) |
BOOK_ID |
CHAR(20) |
主鍵 |
書(shū)名 |
BOOK_NAME |
CHAR(30) |
非空 |
圖書(shū)類(lèi)型 |
TYPE |
VARCHAR(20) |
可以空 |
作者 |
AUTHOR |
VARCHAR(20) |
非空 |
出版社 |
PRESS |
VARCHAR(50) |
非空 |
出版日期 |
PRESS_DATE |
VARCHAR(20) |
非空 |
定價(jià) |
PRICE |
FLOAT |
非空 |
折扣 |
DISCOUNT |
FLOAT |
非空 |
庫(kù)存數(shù)量 |
STOCK_NUM |
INT |
可以空 |
會(huì)員賬號(hào) |
MEM_NUM |
CHAR(20) |
非空 |
4. 使用SQL語(yǔ)句建立基本表
CREATE TABLE MEMBER
(
ACCOUNT_NUMBER CHAR(20) NOT NULL,
PASSWORD VARCHAR(50) NOT NULL,
ADDRESS VARCHAR(50),
MEMBER_ID VARCHAR(50),
REGTIME VARCHAR(50),
PHONE_NUMBER VARCHAR(50),
POSTBOX VARCHAR(50),
SEX VARCHAR(8),
NAME VARCHAR(50)
)
CREATE TABLE ADMINISTRATOR
(
ADMINISTRATOR_ID CHAR(20) NOT NULL,
AD_CODE CHAR(30) NOT NULL,
AD_NAME VARCHAR(20) NOT NULL,
E_MAIL VARCHAR(50),
TELEPHONE VARCHAR(20)
)
CREATE TABLE ORDER_SHOW
(
ORDER_ID CHAR(20) NOT NULL,
NUMBER CHAR(30) NOT NULL,
DATE VARCHAR(20),
SUM INT NOT NULL,
WAY VARCHAR(20) NOT NULL,
PAYMENT_WAY VARCHAR(20) NOT NULL,
TOTAL_PRICE VARCHAR(20),
SHIPPING_ADD VARCHAR(50) NOT NULL,
CONTACT VARCHAR(20) NOT NULL,
CONSIGNEE VARCHAR(50) NOT NULL,
ISSUANCE_DATE VARCHAR(20),
ADMINISTRATOR_ID VARCHAR(20) NOT NULL
)
CREATE TABLE BOOK
(
BOOK_ID CHAR(20) NOT NULL,
BOOK_NAME CHAR(30) NOT NULL,
TYPE VARCHAR(20),
AUTHOR VARCHAR(20) NOT NULL,
PRESS VARCHAR(50) NOT NULL,
PRESS_DATE VARCHAR(20) NOT NULL,
PRICE FLOAT NOT NULL,
DISCOUNT FLOAT NOT NULL,
STOCK_NUM INT,
MEM_NUM CHAR(20) NOT NULL
)
5. 管理基本表
ALTER TABLE BOOK ADD B_PAGE INT
ALTER TABLE BOOK ALTER COLUMN B_PAGE SMALLINT
ALTER TABLE BOOK ADD CONSTRAINT CK_PAGE CHECK(B_PAGE > 0)
ALTER TABLE BOOK DROP CONSTRAINT CK_PAGE
DROP TABLE BOOK
6. 建立和管理視圖
GO
CREATE VIEW COMPUTER AS SELECT * FROM BOOK WHERE TYPE = '計(jì)算機(jī)'
GO
7. 建立和管理索引
CREATE UNIQUE INDEX MEMBER_NAME ON MEMBER(NAME)
8. 數(shù)據(jù)查詢(xún)
SELECT * FROM MEMBER WHERE NAME = '張玲'
SELECT PRICE FROM BOOK WHERE BOOK_NAME = '中國(guó)通史'
SELECT STOCK_NUM FROM BOOK ORDER BY STOCK_NUM DESC
SELECT * FROM ORDER_SHOW WHERE CONSIGNEE = '陳東光'
SELECT * FROM BOOK WHERE MEM_NUM = 'jtxia'
SELECT * FROM ORDER_SHOW,BOOK WHERE ORDER_SHOW.NUMBER = MEM_NUM AND BOOK_NAME = '英語(yǔ)初級(jí)聽(tīng)力(學(xué)生用書(shū))' ORDER BY SUM DESC
SELECT * FROM MEMBER WHERE NAME IN (SELECT TOP 3 NAME FROM ORDER_SHOW,MEMBER WHERE ACCOUNT_NUMBER = NUMBER GROUP BY NAME ORDER BY SUM(ORDER_ID))
SELECT ACCOUNT_NUMBER,NAME FROM MEMBER,ORDER_SHOW,BOOK WHERE MEMBER.ACCOUNT_NUMBER = ORDER_SHOW.NUMBER AND ORDER_SHOW.NUMBER = BOOK.MEM_NUM AND BOOK_NAME = '英語(yǔ)初級(jí)聽(tīng)力(學(xué)生用書(shū))' OR BOOK_NAME = '高等數(shù)學(xué)'
SELECT SUM(TOTAL_PRICE) FROM ORDER_SHOW
SELECT NUMBER FROM ORDER_SHOW,MEMBER WHERE ACCOUNT_NUMBER = NUMBER GROUP BY NUMBER HAVING SUM(TOTAL_PRICE) > 200
9. 數(shù)據(jù)更新
INSERT INTO MEMBER VALUES ('jtxia','123456','河北省廊坊市','@~@','2020-2-1','12345678912','123@qq.com','女','張玲')
INSERT INTO BOOK VALUES ('9787302164784','軟件工程導(dǎo)論(第5版)','計(jì)算機(jī)','張海潘','清華大學(xué)出版社','2014-3-8',35.0,0.80,50,'jskdb')
UPDATE BOOK SET DISCOUNT = 0.75 WHERE BOOK_NAME = '軟件工程導(dǎo)論(第5版)'
UPDATE MEMBER SET ADDRESS = '天津大學(xué)' WHERE ACCOUNT_NUMBER = 'jtxia'
UPDATE BOOK SET STOCK_NUM = STOCK_NUM + 10
UPDATE BOOK SET DISCOUNT = DISCOUNT - 0.1 WHERE TYPE = '計(jì)算機(jī)'
DELETE FROM BOOK WHERE BOOK_NAME = '軟件工程導(dǎo)論(第5版)'
10. 數(shù)據(jù)庫(kù)維護(hù)
數(shù)據(jù)庫(kù)備份
SQL Server 2008提供了4種不同的備份方式,分別是:①完整備份,備份整個(gè)數(shù)據(jù)庫(kù)的所有內(nèi)容,包括事務(wù)日志。②差異備份,它是完整備份的補(bǔ)充,差異備份只備份上次完整備份后更改的數(shù)據(jù)。③事務(wù)日志備份,事務(wù)日志備份只備份事務(wù)日志里的內(nèi)容。④數(shù)據(jù)庫(kù)文件和文件組備份,如果在創(chuàng)建數(shù)據(jù)庫(kù)時(shí),為數(shù)據(jù)庫(kù)創(chuàng)建了多個(gè)數(shù)據(jù)庫(kù)文件或文件組,可以使用該備份方法。
常見(jiàn)的數(shù)據(jù)庫(kù)備份you兩種方法:一種是利用Management Studio進(jìn)行數(shù)據(jù)庫(kù)備份;另一種時(shí)利用SQL語(yǔ)句進(jìn)行備份。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-441727.html
- 利用Management Studio進(jìn)行數(shù)據(jù)庫(kù)備份 在備份數(shù)據(jù)庫(kù)之前,首先需要新建設(shè)備以用于存儲(chǔ)備份的數(shù)據(jù)庫(kù)。
新建備份設(shè)備的步驟為:打開(kāi)“對(duì)象資源管理器”,點(diǎn)擊“服務(wù)器對(duì)象”,右擊“備份設(shè)備”,選擇“新建備份設(shè)備”,在打開(kāi)的“備份設(shè)備”窗口中,輸入備份設(shè)備的名稱(chēng)“網(wǎng)上書(shū)店系統(tǒng)_bak”,在“文件”路徑處輸入所屬路徑,單擊確定,即可在左側(cè)的對(duì)象資源管理器中看到新建的備份文件“網(wǎng)上書(shū)店系統(tǒng)_bal”。
備份數(shù)據(jù)庫(kù):打開(kāi)“服務(wù)器對(duì)象”,右擊“網(wǎng)上書(shū)店系統(tǒng)_bak”這個(gè)新建立的備份設(shè)備,單擊“備份數(shù)據(jù)庫(kù)”,在打開(kāi)的備份數(shù)據(jù)庫(kù)窗口中,選擇“網(wǎng)上書(shū)店系統(tǒng)”數(shù)據(jù)庫(kù)、備份類(lèi)型為“完整”、備份集名稱(chēng)默認(rèn)為“網(wǎng)上書(shū)店系統(tǒng)-完整
數(shù)據(jù)庫(kù) 備份”,單擊“確定”按鈕即可看到備份數(shù)據(jù)庫(kù)成功的提示對(duì)話框。
- 使用SQL語(yǔ)句備份數(shù)據(jù)庫(kù)
1)在新建查詢(xún)窗口中,輸入下面的語(yǔ)句創(chuàng)建備份設(shè)備。 SP_ADDUMPDEVICE
‘disk’,’網(wǎng)上書(shū)店系統(tǒng)_bak’,’文件路徑’
2)在新建查詢(xún)窗口中,輸入下面的語(yǔ)句備份數(shù)據(jù)庫(kù)。 BACKUP DATABASS
網(wǎng)上書(shū)店系統(tǒng) TO DISK = ‘網(wǎng)上書(shū)店系統(tǒng)_bak’
3)單擊工具欄上的“!執(zhí)行(X)”按鈕,可以看到消息窗口提示備份成功的消息。
到了這里,關(guān)于MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)作業(yè) ——《網(wǎng)上書(shū)店系統(tǒng)》數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)驗(yàn)報(bào)告的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!
本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!