MySQL數據庫設計作業 ——《網上書店系統》數據庫設計實驗報告

數據庫設計作業——《網上書店系統》數據庫設計

一、功能需求

  • 普通用戶:可以進行最基礎的登陸操作,可瀏覽圖書、按類別查詢圖書、查看 圖書的詳細信息,還可以注冊成為會員。
  • 會員:需要填寫詳細信息(真實姓名、性別、手機號、地址、郵箱等),可瀏覽圖書、按類別查詢圖書、查看圖書的詳細信息,在此基礎上,還可以訂購圖書、生成訂單、查看訂單。
  • 管理員:可以瀏覽圖書、按類別查詢圖書、查看圖書的詳細信息,需要查看訂單、處理訂單進行發貨處理,同時可以查看、修改個人信息,更新圖書信息,如增加、刪除圖書、更新庫存量、修改商品名稱、增加圖書的屬性列等。
  • 圖書:需要管理員進行編排,按圖書編號、書名、圖書類型、作者、出版社、出版日期、定價、折扣、庫存數量等信息分類。

二、數據庫概念結構設計

1. 概念結構設計(E-R圖)

概念結構設計(E-R圖)

2. 邏輯結構設計(數據庫表、關系模式)
  • 普通用戶(賬號 ,密碼)
  • 會員(賬號,密碼,會員名,注冊時間,手機號,郵箱,地址,性別,真實姓名)
  • 注冊(賬號) 外鍵:賬號
  • 管理員(管理員編號,管理員密碼,管理員名稱,郵箱,手機號)
  • 訂單(訂單編號,會員賬號,下單日期,訂購數量,送貨方式,支付方式,賣出 總價,收貨地址,收貨人聯系方式,收貨人姓名,發貨日期,負責該訂單的 管理員(編號))
  • 訂購(賬號,訂單編號) 外鍵:賬號,訂單編號
  • 處理(管理員編號訂單編號) 外鍵:管理員編號,訂單編號
  • 圖書(圖書編號,書名,圖書類型,作者,出版社,出版日期,定價,折扣,庫 存數量,會員賬號) 外鍵:會員賬號
  • 訂單詳情(訂單編號圖書編號,訂購數量,訂購價格) 外鍵:訂單編號,圖書編號
規范化分析:
  • 普通用戶關系中賬號為主鍵,其中函數依賴有:賬號—>密碼
    因為在普通用戶關系中不存在非主屬性對碼的部分函數依賴和傳遞函數依賴,所以普通用戶關系是屬于3NF
  • 會員關系中賬號為主鍵,其中函數依賴有:賬號—>密碼,賬號—>會員名,賬號—>注冊時間,賬號—>手機號,賬號—>郵箱,賬號—>地址,賬號—>性別,賬號—>真實姓名
    因為在會員關系中不存在非主屬性對碼的部分函數依賴和傳遞函數依賴,所以會員關系是屬于3NF
  • 管理員關系中管理員編號為主鍵,其中函數依賴有:管理員編號—>管理員密碼,管理員編號—>管理員名稱,管理員編號—>郵箱,管理員編號—>手機號
    因為在管理員關系中不存在非主屬性對碼的部分函數依賴和傳遞函數依賴,所以管理員關系是屬于3NF
  • 訂單關系中訂單編號為主鍵,其中函數依賴有:訂單編號—>會員賬號,訂單編號—>下單時間,訂單編號—>訂購總數,訂單編號—>送貨方式,訂單編號—>支付方式,訂單編號—>賣出總價,訂單編號—>收貨地址,訂單編號—>收貨人聯系方式,訂單編號—>收貨人姓名,訂單編號—>發貨日期,訂單編號—>負責該訂單的管理員(編號)
    因為在訂單關系中不存在非主屬性對碼的部分函數依賴和傳遞函數依賴,所以訂單關系是屬于3NF
  • 圖書關系中圖書編號為主鍵,其中函數依賴有:圖書編號—>書名,圖書編號—>圖書類型,圖書編號—>作者,圖書編號—>出版社,圖書編號—>出版日期,圖書編號—>定價,圖書編號—>折扣,圖書編號—>庫存數量
    因為在圖書關系中不存在非主屬性對碼的部分函數依賴和傳遞函數依賴,所以圖書關系是屬于3NF
3. 建立和管理基本表
表1 會員表
屬性字段名數據類型是否為空/約束條件
賬號ACCOUNT_NUMBERCHAR(20)主鍵
密碼PASSWORDVARCHAR(50)非空
地址ADDRESSVARCHAR(50)可以空
會員名MEMBER_IDVARCHAR(50)可以空
注冊時間REGTIMEVARCHAR(50)可以空
手機號PHONE_NUMBERVARCHAR(50)可以空
郵箱POSTBOXVARCHAR(50)可以空
性別SEXVARCHAR(8)可以空
真實姓名NAMEVARCHAR(50)可以空
表2 管理員表
屬性字段名數據類型是否為空/約束條件
管理員編號ADMINISTRATOR_IDCHAR(20)主鍵
管理員密碼AD_CODECHAR(30)非空
管理員名稱AD_NAMEVARCHAR(20)非空
郵箱E_MAILVARCHAR(50)可以空
手機號TELEPHONEVARCHAR(20)可以空
表3 訂單表
屬性字段名數據類型是否為空/約束條件
訂單編號ORDER_IDCHAR(20)主鍵
會員賬號NUMBERCHAR(30)非空
下單日期DATEVARCHAR(20)可以空
訂購總數SUMINT非空
送貨方式WAYVARCHAR(20)非空
支付方式PAYMENT_WAYVARCHAR(20)非空
賣出總價TOTAL_PRICEFLOAT可以空
收貨地址SHIPPING_ADDVARCHAR(50)非空
收貨人聯系方式CONTACTVARCHAR(20)非空
收貨人姓名CONSIGNEEVARCHAR(50)非空
發貨日期ISSUANCE_DATEVARCHAR(20)可以空
負責該訂單的管理員ADMINISTRATOR_IDVARCHAR(20)非空
表4 圖書表
屬性字段名數據類型是否為空/約束條件
圖書編號BOOK_IDCHAR(20)主鍵
書名BOOK_NAMECHAR(30)非空
圖書類型TYPEVARCHAR(20)可以空
作者AUTHORVARCHAR(20)非空
出版社PRESSVARCHAR(50)非空
出版日期PRESS_DATEVARCHAR(20)非空
定價PRICEFLOAT非空
折扣DISCOUNTFLOAT非空
庫存數量STOCK_NUMINT可以空
會員賬號MEM_NUMCHAR(20)非空
4. 使用SQL語句建立基本表
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. 管理基本表
--(1) 向圖書表增加“頁數”列,其數據類型是整數型
ALTER TABLE BOOK ADD B_PAGE INT--(2) 將“圖書表”中的“頁數”數據類型改成短整型
ALTER TABLE BOOK ALTER COLUMN B_PAGE SMALLINT--(3) 增加“圖書表”中“頁數”取值必須大于0的約束條件
ALTER TABLE BOOK ADD CONSTRAINT CK_PAGE CHECK(B_PAGE > 0)--(4) 刪除“圖書表”中的頁數列
ALTER TABLE BOOK DROP CONSTRAINT CK_PAGE--(5) 刪除“圖書表”
DROP TABLE BOOK
6. 建立和管理視圖
--建立一個“圖書類別”為“計算機”的視圖
GO
CREATE VIEW COMPUTER AS SELECT * FROM BOOK WHERE TYPE = '計算機'
GO
7. 建立和管理索引
--在會員表上為姓名建立索引
CREATE UNIQUE INDEX MEMBER_NAME ON MEMBER(NAME)
8. 數據查詢
--(1)查詢“張玲”的會員信息
SELECT * FROM MEMBER WHERE NAME = '張玲'--(2)查詢圖書“中國通史”的價格
SELECT PRICE FROM BOOK WHERE BOOK_NAME = '中國通史'--(3)查詢網上書店系統中每種數的庫存數量,并按照庫存數量由多到少排列
SELECT STOCK_NUM FROM BOOK ORDER BY STOCK_NUM DESC--(4)查詢“陳東光”訂購圖書的訂單情況
SELECT * FROM ORDER_SHOW WHERE CONSIGNEE = '陳東光'--(5)列出賬號為“jtxia”的會員所訂購的所有圖書信息
SELECT * FROM BOOK WHERE MEM_NUM = 'jtxia' --(6)列出“英語初級聽力(學生用書)”圖書的訂購情況,按照訂購數量由大到小降序排列
SELECT * FROM ORDER_SHOW,BOOK WHERE ORDER_SHOW.NUMBER = MEM_NUM AND BOOK_NAME = '英語初級聽力(學生用書)' ORDER BY SUM DESC--(7)查詢訂單數位列前三的會員信息
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))--(8)查詢訂購過“英語初級聽力”,或者“高等數學”的會員賬號和姓名
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 = '英語初級聽力(學生用書)' OR BOOK_NAME = '高等數學'--(9)統計會員所有訂單的訂購總價
SELECT SUM(TOTAL_PRICE) FROM ORDER_SHOW--(10)查詢訂購總價大于200的會員的賬號
SELECT NUMBER FROM ORDER_SHOW,MEMBER WHERE ACCOUNT_NUMBER = NUMBER GROUP BY NUMBER HAVING SUM(TOTAL_PRICE) > 200
9. 數據更新
INSERT INTO MEMBER VALUES ('jtxia','123456','河北省廊坊市','@~@','2020-2-1','12345678912','123@qq.com','女','張玲')--(1)書店新進一種圖書,即向圖書表中增加一種新的圖書,ISBN號為9787302164784,書名為軟件工程導論(第5版),作者為張海潘,出版社為清華大學出版社,定價為35,折扣為8,圖書類別為計算機,圖書概況為“本書可作為高等院校軟件工程課程的教材或教學參考書”,庫存量為50
INSERT INTO BOOK VALUES ('9787302164784','軟件工程導論(第5版)','計算機','張海潘','清華大學出版社','2014-3-8',35.0,0.80,50,'jskdb')--(2)書店價格調整,將“軟件工程導論(第5版)”圖書的“折扣”更新為7.5折
UPDATE BOOK SET DISCOUNT = 0.75 WHERE BOOK_NAME = '軟件工程導論(第5版)'--(3)會員地址變更,將會員賬號為“jtxia”的地址更新為“天津大學”
UPDATE MEMBER SET ADDRESS = '天津大學' WHERE ACCOUNT_NUMBER = 'jtxia'--(4)書店進貨,將所有圖書的庫存量增加10
UPDATE BOOK SET STOCK_NUM = STOCK_NUM + 10--(5)活動促銷,將“計算機”類圖書的折扣全部減1(多打一折)
UPDATE BOOK SET DISCOUNT = DISCOUNT - 0.1 WHERE TYPE = '計算機'--(6)由于圖書下架,刪除圖書“軟件工程導論(第5版)”
DELETE FROM BOOK WHERE BOOK_NAME = '軟件工程導論(第5版)'
10. 數據庫維護
數據庫備份

SQL Server 2008提供了4種不同的備份方式,分別是:①完整備份,備份整個數據庫的所有內容,包括事務日志。②差異備份,它是完整備份的補充,差異備份只備份上次完整備份后更改的數據。③事務日志備份,事務日志備份只備份事務日志里的內容。④數據庫文件和文件組備份,如果在創建數據庫時,為數據庫創建了多個數據庫文件或文件組,可以使用該備份方法。
常見的數據庫備份you兩種方法:一種是利用Management Studio進行數據庫備份;另一種時利用SQL語句進行備份。

  • 利用Management Studio進行數據庫備份 在備份數據庫之前,首先需要新建設備以用于存儲備份的數據庫。
    新建備份設備的步驟為:打開“對象資源管理器”,點擊“服務器對象”,右擊“備份設備”,選擇“新建備份設備”,在打開的“備份設備”窗口中,輸入備份設備的名稱“網上書店系統_bak”,在“文件”路徑處輸入所屬路徑,單擊確定,即可在左側的對象資源管理器中看到新建的備份文件“網上書店系統_bal”。
    備份數據庫:打開“服務器對象”,右擊“網上書店系統_bak”這個新建立的備份設備,單擊“備份數據庫”,在打開的備份數據庫窗口中,選擇“網上書店系統”數據庫、備份類型為“完整”、備份集名稱默認為“網上書店系統-完整
    數據庫 備份”,單擊“確定”按鈕即可看到備份數據庫成功的提示對話框。
  • 使用SQL語句備份數據庫
    1)在新建查詢窗口中,輸入下面的語句創建備份設備。 SP_ADDUMPDEVICE
    ‘disk’,’網上書店系統_bak’,’文件路徑’
    2)在新建查詢窗口中,輸入下面的語句備份數據庫。 BACKUP DATABASS
    網上書店系統 TO DISK = ‘網上書店系統_bak’
    3)單擊工具欄上的“!執行(X)”按鈕,可以看到消息窗口提示備份成功的消息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38837.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38837.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38837.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是yum源?如何對其進行配置?

哈嘍,大家好呀!這里是碼農后端。今天來聊一聊Linux下的yum源及其配置相關的內容。簡單來說,yum源就相當于一個管理軟件的工具,可以想象成一個很大的倉庫,里面存放著各種我們所需要的軟件包及其依賴。 一、Linux下軟件包…

VRPTW(MATLAB):北極海鸚優化(APO)算法求解帶時間窗的車輛路徑問題VRPTW(提供MATLAB代碼)

詳細介紹 VRPTW(MATLAB):北極海鸚優化(Arctic puffin optimization,APO)算法求解帶時間窗的車輛路徑問題VRPTW(提供MATLAB代碼)-CSDN博客 ********************************求解結果…

電源管理芯片PMIC的安全策略

1.概述 PMIC作為系統的電源管理模塊,其輸入電壓一般會比較高,為保證芯片自身的安全,PMIC芯片會有獨立的安全域,和功能域完全隔離,擁有獨立的電壓和電流輸入,獨立的晶振模塊,內部運行監控狀態機…

【代碼隨想錄_Day23】122. 買賣股票的最佳時機 II 55. 跳躍游戲 45.跳躍游戲II 1005.K次取反后最大化的數組和

Day23 OK,今日份的打卡!第二十三天 以下是今日份的總結買賣股票的最佳時機 II跳躍游戲跳躍游戲IIK次取反后最大化的數組和 以下是今日份的總結 122 買賣股票的最佳時機 II 55 跳躍游戲 45 跳躍游戲II 1005 K次取反后最大化的數組和 今天的題目難度不低…

MySQL實戰-4 | 深入淺出索引(上)(下)

什么是數據庫索引,索引又是如何工作的呢? 一句話簡單來說,索引的出現其實就是為了提高數據查詢的效率,就像書的目錄一樣。一本 500 頁的書,如果你想快速找到其中的某一個知識點,在不借助目錄的情況下&…

【AI工具】-GPU算力租賃平臺介紹

目錄 1. AWS(亞馬遜云服務) 2. Google Cloud Platform (GCP) 3. Microsoft Azure 4. 阿里云 5. 騰訊云 6. 派歐算力云(PPIO) 7. Lambda Labs 8. 猿界算力 9. AutoDL算力云(視拓云) 10. 極鏈AI云 …

試用筆記之-免費的匯通餐飲管理軟件

首先下載免費的匯通餐飲管理軟件: http://www.htsoft.com.cn/download/htcanyin.exe 安裝后的圖標 登錄軟件,默認沒有密碼 匯通餐飲管理軟件主界面 匯通餐飲軟件前臺系統 點菜

使用 Java Swing 和 XChart 創建多種圖表

在現代應用程序開發中,數據可視化是一個關鍵部分。本文將介紹如何使用 Java Swing 和 XChart 庫創建各種類型的圖表。XChart 是一個輕量級的圖表庫,支持多種類型的圖表,非常適合在 Java 應用中進行快速的圖表繪制。 1、環境配置 在開始之前&…

關于正負樣本不均衡對樹模型feature importance的影響

正負樣本不平衡確實可能會影響決策樹模型(包括隨機森林和梯度提升樹等樹模型)中的特征重要性評估。這是因為特征重要性的計算通常基于模型內部節點分裂所帶來的信息增益或基尼不純度減少。 在不平衡的數據集中,模型可能會偏向于頻繁選擇那些…

PSINS中,avp的解讀

PSINS中的AVP PSINS工具箱里面的trj.avp、trj.avp0等中的avp指的是姿態(attitude)、速度(velocity)和位置(position),最后加一個時間戳t: avp[att; vn; pos; t]。 姿態 姿態的構成…

imx6ull/linux應用編程學習(7)在LCD上顯示文字

在linux中,確實可以像裸機一樣自己取模、自己寫函數打點顯示,但是效率很低,不能滿足多文字顯示,在Linux 系統中, 字體文件通常會放在/usr/share/fonts 目錄下,有了字體文件之后,我們就不需要再對…

X86 +PC104+支持WinCE5.0,WinCE6.0,DOS,WinXP, QNX等操作系統,工業控制數據采集核心模塊板卡定制

CPU 模塊 是一款基于RDC 3306的SOM Express模塊。RDC 3306這款X86架構的CPU是一款性能高、穩定性強的處理器。 它是一款靈活精巧的主板(尺寸為91.8mm68.6mm),可以靈活的運用于用戶的底板,節約開發成本。模塊的接插件使用插針形式…

人工智能在音樂創作中的雙刃劍:創新與挑戰

AI在創造還是毀掉音樂? 簡介 最近一個月,輪番上線的音樂大模型,一舉將素人生產音樂的門檻降到了最低,并掀起了音樂圈會不會被AI徹底顛覆的討論。短暫的興奮后,AI產品的版權歸屬于誰,創意產業要如何在AI的陰…

pom文件-微服務項目結構

一、微服務項目結構 my-microservices-project/ ├── pom.xml <!-- 父模塊的pom.xml --> ├── ry-system/ │ ├── pom.xml <!-- 子模塊ry-system的pom.xml --> │ └── src/main/java/com/example/rysystem/ │ └── RySystemApplication.…

數據類型

數據類型 注意&#xff1a;每個字段都必須設置數據類型 整數類型 tinyint - 1字節 - 應用場景&#xff1a;存儲狀態碼 int - 4字節 - 應用場景&#xff1a;沒有特殊要求&#xff0c;一般使用int bigint - 8字節 - 應用場景&#xff1a;存儲極大的整數 CREATE TABLE user (use…

Elasticsearch8.x Spring Data and Spring Boot 3 嘗鮮

在本教程中,我們將通過實際操作和實用的方式,探索使用 Spring Boot 進行 Elasticsearch 的基礎知識。我們將學習如何使用 Spring Data Elasticsearch 模塊創建索引、進行 CRUD 操作、搜索和查詢 Elasticsearch 文檔。我們還將看看如何在我們的 Spring 應用程序中記錄 Elastic…

全網最全的TTS模型匯總,電商人、自媒體人狂喜

近日TTS語音模型在AI圈內熱度不小&#xff0c;今天小編就來給大家做了個TTS模型匯總&#xff01; GPT-SoVITS&#xff08;AI 賣貨主播大模型Streamer-Sales銷冠用的TTS模型&#xff09; 模型簡介&#xff1a;支持英語、日語和中文&#xff0c;零樣本文本到語音&#xff08;TT…

【INTEL(ALTERA)】Nios II軟件開發人員手冊中設計位置的錯誤示例

目錄 說明 解決方法 說明 Nios II軟件開發人員手冊正確無誤 請參閱 Nios 中包含的Nios II硬件設計示例 II 嵌入式設計套件 &#xff08;EDS&#xff09;。提供設計示例 設計上 Altera網站的示例頁面。 Nios II軟件開發人員手冊正確無誤 請參閱 創建本應用程序和創建本 bsp …

Python UUID模塊:深入理解與使用技巧

&#x1f49d;&#x1f49d;&#x1f49d;歡迎蒞臨我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:「stormsha的主頁」…