SQLserver數(shù)據(jù)庫課程設(shè)計范例_第1頁
SQLserver數(shù)據(jù)庫課程設(shè)計范例_第2頁
SQLserver數(shù)據(jù)庫課程設(shè)計范例_第3頁
SQLserver數(shù)據(jù)庫課程設(shè)計范例_第4頁
SQLserver數(shù)據(jù)庫課程設(shè)計范例_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 1 概述 1.1課題簡介 書店書目書種繁多,來源多樣,購買者眾多,圖書信息、供應商信息、客戶信息、銷售信息龐大,不易管理。因此,很有必要創(chuàng)建一個小型書店管理系統(tǒng),以便于書店對圖書的管 理。1.2設(shè)計目的 應用對數(shù)據(jù)庫系統(tǒng)原理的理論學習,通過上機實踐的方式將理論知識與實踐更好的結(jié)合起來,鞏固所學知識。 數(shù)據(jù)庫應用 課程實踐:實踐和鞏固在課堂教學中學習有關(guān)知識,熟練掌握對于給定結(jié)構(gòu)的數(shù)據(jù)庫的創(chuàng)建、基本操作、程序系統(tǒng)的建立和調(diào)試以及系統(tǒng)評價。 數(shù)據(jù)庫原理 軟件設(shè)計實踐:實踐和鞏固在課堂教學中學習的關(guān)于關(guān)系數(shù)據(jù)庫原理的有關(guān)知識和數(shù)據(jù)庫系統(tǒng)的建立方法,熟練掌握對于給定實際問題,為了建立一個關(guān)系數(shù)據(jù)庫信

2、息管理系統(tǒng),必須得經(jīng)過系統(tǒng)調(diào)研、需求分析、概念設(shè)計、邏輯設(shè)計、物理設(shè)計、系統(tǒng)調(diào)試、維護以及系統(tǒng)評價的一般過程,為畢業(yè)設(shè)計打下基礎(chǔ)。 1.3設(shè)計內(nèi)容 運用基于E-R 模型的數(shù)據(jù)庫設(shè)計方法和關(guān)系規(guī)范化理論做指導完成從系統(tǒng)的分析到設(shè)計直至系統(tǒng)的最終實現(xiàn),開發(fā)小型書店管理系統(tǒng),完成小型書店管理系統(tǒng)的全部功能。 首先做好需求分析,并完成數(shù)據(jù)流圖和數(shù)據(jù)字典。 其次做概念分析,利用實體聯(lián)系的方法將需求分析的用戶需求抽象為信息結(jié)構(gòu),得到E-R 圖。 然后就是邏輯結(jié)構(gòu)設(shè)計,將E-R 圖轉(zhuǎn)換為計算機系統(tǒng)所支持的邏輯模型 2 需求分析 2.1功能分析 首先,建立一些基本表(盡可能滿足3N),對大部分基本信息組合、存

3、儲;其次通過建立視圖實現(xiàn)對冗余數(shù)據(jù)的有必要保留(查詢并計算基本表屬性得到新的作為視圖屬性)并實現(xiàn)對以下基本信息的顯示。 圖書信息:圖書名稱、訂購數(shù)量、訂購時間、訂購單價、金額、出版社名稱、作者名稱;供應商名稱等; 供應商信息:供應商名稱、地址、電話,聯(lián)系人; 客戶信息:客戶編號、名稱、年齡、性別、累計購書金額等; 銷售信息:時間、銷售名稱、數(shù)量、銷售單價、客戶編號、客戶名稱、金額等。 在此基礎(chǔ)上進行以下目標查詢,由于有些查詢常用且較復雜,為了簡化其應用,所以將它們定義為存儲過程。 查詢當月書店銷售金額、營業(yè)金額;(存儲過程) 查詢某種圖書庫存數(shù)量;(存儲過程) 查詢當月銷量最好的圖書信息;(存

4、儲過程) 按供應商名稱查詢訂購信息;(普通查詢) 查詢購買次數(shù)超過3次的客戶信息。(普通查詢) 接著根據(jù)需要建立觸發(fā)器、存儲過程、索引,實現(xiàn)對數(shù)據(jù)庫的優(yōu)化。最后,進行過程功能的驗證。允許具有權(quán)限者對數(shù)據(jù)庫進行數(shù)據(jù)更新和查詢等合法操作。 數(shù)據(jù)流圖 用流程圖來描述處理過程與數(shù)據(jù)的關(guān)系 數(shù)據(jù)流圖如下: 圖書目錄文購買信息文出版社檔案文件用戶購買信息圖書需求用戶供應商供應信息圖書供應供應商信息處理信息處理顧客購書檔案文件購買供應匯總文件 圖2,1 數(shù)據(jù)流圖 數(shù)據(jù)字典 用數(shù)據(jù)字典來描述數(shù)據(jù) 數(shù)據(jù)字典如下: 數(shù)據(jù)項: 表2.1 數(shù)據(jù)字典 數(shù)據(jù)項名長數(shù)據(jù)含義 別 與其他數(shù)據(jù)項輯的邏 系有時與客 戶編號作為主

5、碼有時與供應商組成主碼 應與圖書稱與供應商 名稱為的作 碼直接關(guān)聯(lián)有時與圖 書編號作為主碼 取值范圍 取值含義 度 類型 說明 名唯一標識 00000000 根據(jù)入庫時間先后編號 圖書編號 8 char 99999999每本書書唯一標識 varchar 30 名 每種書圖書名稱作者名稱出版社名稱供應商名稱地址電話聯(lián)系人訂購時間訂購單價客戶編號客戶名稱性別年齡 每種書的char 8 作者姓名 每種書的 12 char 出版社名稱 唯一標識 char 12 供應商 供應商的地址 50 varchar 0000000 7char 供應商的電話 9999999 通過聯(lián)系人 char 8 書店與供應 商

6、進行溝通每種書的 datetime 訂購時間 從供應商處 int 進貨每種書 的每本價格唯一標識 000000000 按購書先后 8char 編號 客戶 99999999 8 char 客戶姓名 女或男 2 char 客戶性別 每年都要 客戶年齡 int 每本書的 增加一歲的與圖書編銷售時間 銷售時間 datetime 號編客戶和銷售單價 每本書的 int 號主作為的 銷售價格 碼 直接關(guān)聯(lián) 數(shù)據(jù)結(jié)構(gòu): 數(shù)據(jù)結(jié)構(gòu)名稱每種書每本書客戶編號 指具有相同書名的書的集 合的基本信息指圖書編號唯一標識的個體的歸屬 含義說明 姓名 圖書名稱、作者名稱、出版社名稱 圖書編號、圖書名稱 組成性別供應商供應基表

7、供應商的基本信息 每種書在何處訂購的具體情況 供應商名稱、地址、電話、聯(lián)系人圖書名稱、供應商名稱、訂購單價、訂購時間客戶 銷售基表客戶的基本信息 每本書被誰買的具體請況 客戶 客戶編號、客戶名稱、性別、年齡圖書編號、客戶編號、銷售單價、銷售時間 概念結(jié)構(gòu)設(shè)計 概念結(jié)構(gòu)設(shè)計的方法自頂向下,自底向上,逐漸擴張以及混合策略。本系統(tǒng)設(shè)計概念結(jié)構(gòu)通常有四類方法:根據(jù)自頂向即首先定義全局的概念結(jié)構(gòu)的框架,然后逐步細化。采用的是自底向上的方法。 下地進行需求分析然后再自底向上地進行概念設(shè)計。概念結(jié)構(gòu)設(shè)計的步驟 第一步:抽象數(shù)據(jù); E-R圖;第二步:設(shè)計局部 圖,消除各種沖突;E-R圖綜合成總體E-R第三步:

8、把各分 圖進行優(yōu)化,消除冗余數(shù)據(jù)和冗余聯(lián)系;第四步:對總體E-R 抽象初步數(shù)據(jù):(此處與優(yōu)化后E-R圖得出的實體聯(lián)系屬性很有可能不同) 實體:圖書、供應商、客戶 聯(lián)系:圖書訂購關(guān)系、圖書銷售關(guān)系 圖書與供應商的關(guān)系是多對一的關(guān)系; 圖書與客戶的關(guān)系是多對一的關(guān)系。 屬性: 圖書的屬性:圖書編號、圖書名稱、出版社名稱、作者名稱、供應商名稱; 主碼為圖書編號 供應商的屬性:供應商名稱、供應商地址、電話、聯(lián)系人; 主碼為供應商名稱 客戶的屬性:客戶編號、姓名、性別、年齡; 主碼為客戶編號 圖書訂購關(guān)系屬性:供應商名稱、圖書編號、訂購時間、訂購單價; 主碼為供應商名稱和圖書編號 圖書銷售關(guān)系屬性:客戶

9、編號、圖書編號、銷售時間、銷售單價; 主碼為客戶編號和圖書編號 分E-R圖: 圖書E-R圖: 圖書編號圖書名稱出版社名稱圖書作者名稱供應商名稱 供應商E-R圖: 供應商名稱供應商地址供應商電話聯(lián)系人 E-R客戶圖: 年齡 初E-R圖: 圖書編號圖書名稱出版社名稱作者名稱圖書供應商名稱圖書編號訂購時間訂購單價1供應商名稱供應商年齡供應商地址電話 NN圖書訂購圖書銷售聯(lián)系人供應商名客戶編圖書編銷售時銷售單客客戶編性姓名 優(yōu)化后的總E-R圖: 圖書編號圖書名稱圖書名稱作者名稱出版社名稱1M每種書每本書歸屬N1銷售時間圖書編號圖書名稱訂購時間訂購基表銷售基表銷售單價客戶編號供應商名稱訂購單價MN訂購數(shù)

10、量聯(lián)系人年齡客戶編號供應商名稱性別地址客戶名稱 客戶供應商電話 邏輯設(shè)計階段 邏輯設(shè)計階段:將系統(tǒng)E-R模型轉(zhuǎn)換為關(guān)系模式,并對給出的關(guān)系模式進行關(guān)系規(guī)范化處理(盡量滿足3NF),得到系統(tǒng)全部的關(guān)系模式,并標明主鍵、外鍵此部分一律采用英文命名。然后進行用戶外模式的設(shè)計,針對中國用戶,此處用中文命名。 將ER模式轉(zhuǎn)換為以下關(guān)系模式: 1) book(#bname, writer_name, press_name); 主鍵:#bname 2.) everybook (# bno, #bname) ; 主鍵:#bno 外鍵:#bname 3) supplier (#supplier_name, ad

11、dress, telephone, contact) ; 主鍵:#supplier_name 4) customer (#cno, cname, sex, age); 主鍵:#cno 5) book_order(#bname, #supplier_name, #order_time, order_price, order_count); 主鍵: #bname, #supplier_name, #order_time 6) book_sell(#bno, #cno, sell_time, sell_price); 主鍵:#bno 發(fā)現(xiàn)這六個關(guān)系模式3N都滿足。因為元組中都是不可分割的數(shù)據(jù),且所有

12、非主屬性完全依賴其主碼,且它的任何一個非主屬性都不傳遞于任何主關(guān)鍵字。 用戶外模式設(shè)計: 基本信息視圖的建立: 1. 單本銷售情況(圖書編號,圖書名稱客戶編號,客戶名稱,銷售單價,銷售時間); 2. 同種銷售情況(書名,銷售數(shù)量,銷售金額); 3. 客戶信息(客戶編號,客戶名稱、性別,年齡,累計購書金額); 4. 供應商信息(供應商名稱,地址,電話,聯(lián)系人); 5. 圖書訂購信息(圖書名稱,供應商名稱,訂購時間,訂購數(shù)量,訂購單價,訂購金額,出版社名稱,作者名稱); 物理設(shè)計階段 物理設(shè)計階段:為一個邏輯數(shù)據(jù)模型選取一個最適合應用環(huán)境的物理結(jié)構(gòu)(存儲結(jié)構(gòu)與存取方法),數(shù)據(jù)庫的物理設(shè)計通常分為兩

13、步:A、確定數(shù)據(jù)庫的物理結(jié)構(gòu);B、對物理結(jié)構(gòu)進行時間和空間效率評價。 建立小型書店管理系統(tǒng) 創(chuàng)建數(shù)據(jù)庫 book_shop_management -創(chuàng)建小型書店管理系統(tǒng) create database book_shop_management on primary( name=book_shop_management, filename=d:program filesmicrosoft sql servermssql.1mssqldata book_shop_management.mdf, size=10mb, maxsize=unlimited, filegrowth=10%) log on

14、( name=book_shop_management_log, filename=d:program filesmicrosoft sql servermssql.1mssqldatabook_shop_management_log.ldf, size=1mb, maxsize=5mb, filegrowth=3%) go 截圖得: 對各個基本表的建立(包括了各種完整性約束) 建立表 book -建立表book create table book( #bname varchar(30) primary key, writer_name char(8), press_name char(12)

15、 建立表 everybook -建立表everybook create table everybook( #bno char(8) primary key, #bname varchar(30) not null constraint fk_everybook_bname foreign key references book(#bname) 建立表 supplier -建立表supplier create table supplier( #supplier_name char(12) primary key, address varchar(50)not null, telephone ch

16、ar(7)not null, null) ) notcontact char(8建立表 customer -建立表customer create table customer( #cno char(8) primary key, cname char(8)not null, sex char(2), age int, )女, ck_customer_sex check (sex in(男constraint建立表 book_order -建立表book_order create table book_order( #bname varchar(30), #supplier_name char(

17、12), #order_time datetime, order_count int not null, order_price int not null, ),#order_time#bname,#supplier_namekeyconstraint pk_book_order primary (建立表 book_sell -建立表book_sell create table book_sell( #bno char(8) primary key, #cno char(8) not null, sell_time datetime, sell_price int) 建立視圖 建立基本信息視圖

18、: 建立單本銷售情況視圖 -建立單本銷售情況視圖 create view view_單本銷售情況 as select book_sell.#bno as 圖書編號,#bname as 圖書名稱, book_sell.#cno as 客戶編號,cname as 客戶名稱, sell_time as 銷售時間,sell_price as 銷售單價 from book_sell,customer,everybook where everybook.#bno=book_sell.#bno and customer.#cno=book_sell.#cno 建立同種銷售情況視圖 -建立同種銷售情況視圖 c

19、reate view view_同種銷售情況 as select 圖書名稱 as 書名, count(圖書編號) as 銷售數(shù)量, sum(銷售單價) as 銷售金額 from view_單本銷售情況 圖書名稱by group 建立客戶信息視圖 -建立客戶信息情況 create view view_客戶信息 select customer.#cno as 客戶編號, cname as 客戶名稱, sex as 性別, age as 年齡, (select sum(sell_price) from book_sell group by #cno) as 累計購書金額 from book_sell

20、,customer where book_sell.#cno=customer.#cno 建立供應商視圖 -建立供應商視圖 create view view_供應商信息 as select #supplier_name as 供應商名稱, address as 地址, telephone as 電話, contact as 聯(lián)系人 supplierfrom建立訂購信息視圖 -建立訂購信息視圖 create view view_圖書訂購信息 as select book_order.#bname as 圖書名稱, #supplier_name as 供應商名稱, #order_time as 訂

21、購時間, order_price as 訂購單價, order_count as 訂購數(shù)量, (order_price*order_count) as 訂購金額, press_name as 出版社名稱, writer_name as 作者名稱 from book,book_order #bnamebook_order. book.#bname=where建立存儲過程 某種圖書庫存查詢存儲過程 create procedure sp_某種圖書庫存查詢 -p1為要查詢的圖書名稱 p1 varchar(30) as begin select 訂購數(shù)-銷售數(shù)量as 庫存 from (select s

22、um(order_count) as 訂購數(shù),#bname as 書名 from book_order group by #bname) as x,view_同種銷售情況 where x.書名=p1 and view_同種銷售情況.書名=p1 end go某段時間內(nèi)的銷售業(yè)績查詢存儲過程 -建立本月業(yè)績查詢存儲過程 -由于不知其它信息,此處將銷售金額與營業(yè)金額等同 -營業(yè)金額=營業(yè)額=成本+利潤 create procedure sp_查詢某段時間內(nèi)的業(yè)績 -p1為起始時間,p2為結(jié)束時間 p1 datetime,p2 datetime as begin select sum(銷售單價) as 銷售金額from view_單本銷售情況 where 銷售時間=p1 and 銷售時間=p1 and 銷售時間=all(select count(圖書編號) from view_單本銷售情況 where 銷售時間=p1 and 銷售時間3having count按供應商名稱查詢訂購信息 -按供應商名稱查詢訂購信息 select * from view_圖書訂購信息 ord

溫馨提示

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

評論

0/150

提交評論