《SQLserver數據庫應用技術》期末課程設計_第1頁
《SQLserver數據庫應用技術》期末課程設計_第2頁
《SQLserver數據庫應用技術》期末課程設計_第3頁
《SQLserver數據庫應用技術》期末課程設計_第4頁
《SQLserver數據庫應用技術》期末課程設計_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、作者有話要說:如果看了這份文檔覺得有幫助的親,記得幫俺關注一下這個網址wwwqdmmcomMMWeb2886821aspx,沒事的時候點點就行的,更閑的時候留下些什么我更會感激不盡的,就當作小小回報俺一下啦話說俺也是做了很久的,很累人的。謝謝謝如果看了文檔有幫助卻不幫俺的話,就別怪俺在你背后畫圈圈哦!SQL Sserver數據庫技術期末課程設計報告設計題目:小型書店管理系統專業班級:計算機科學與技術學 號: 2012070193 姓 名: 陳 麗 目 錄概述3課題簡介3設計目的3設計內容3需求分析4功能分析4數據流圖4數據字典5概念結構設計6概念結構設計的方法6概念結構設計的步驟7抽象初步數據

2、:(此處與優化后E-R圖得出的實體聯系屬性很有可能不同)7邏輯設計階段10將ER模式轉換為以下關系模式:10用戶外模式設計:11物理設計階段11建立小型書店管理系統11對各個基本表的建立(包括了各種完整性約束)12建立視圖13建立存儲過程15建立觸發器(另外5個表也建立相應曾刪改觸發器,不過此處從略,詳情見附件源代碼)16建立索引(由于數據庫比較小,沒有必要建立索引)18實現數據庫(有附件源代碼和該數據庫源文件)18向基本表插入適量如下數據并顯示基本表信息18視圖顯示基本信息20執行存儲過程完成目標查詢21用普通查詢完成目標查詢(兩次查詢同時顯示)22總結24概述課題簡介書店書目書種繁多,來源

3、多樣,購買者眾多,圖書信息、供應商信息、客戶信息、銷售信息龐大,不易管理。因此,很有必要創建一個小型書店管理系統,以便于書店對圖書的管理。 經過三個多月的的學習,我們對計算機方面的知識有了很大的提升,本著理論聯系實際的宗旨,通過李老師提供的這次軟件技術實踐的機會,在指導教師的幫助下,歷經二周時間,學生自行設計一個小型書店管理系統管理系統,在下面的文章中,我將以這個小型書店管理系統系統為例,談談其開發過程和所涉及到的問題。設計目的應用對數據庫系統原理的理論學習,通過上機實踐的方式將理論知識與實踐更好的結合起來,鞏固所學知識。 數據庫應用 課程實踐:實踐和鞏固在課堂教學中學習有關知識,熟練掌握對于

4、給定結構的數據庫的創建、基本操作、程序系統的建立和調試以及系統評價。 數據庫原理 軟件設計實踐:實踐和鞏固在課堂教學中學習的關于關系數據庫原理的有關知識和數據庫系統的建立方法,熟練掌握對于給定實際問題,為了建立一個關系數據庫信息管理系統,必須得經過系統調研、需求分析、概念設計、邏輯設計、物理設計、系統調試、維護以及系統評價的一般過程,為畢業設計打下基礎。設計內容運用基于E-R 模型的數據庫設計方法和關系規范化理論做指導完成從系統的分析到設計直至系統的最終實現,開發小型書店管理系統,完成小型書店管理系統的全部功能。首先做好需求分析,并完成數據流圖和數據字典。其次做概念分析,利用實體聯系的方法將需

5、求分析的用戶需求抽象為信息結構,得到E-R 圖。然后就是邏輯結構設計,將E-R 圖轉換為計算機系統所支持的邏輯模型需求分析功能分析首先,建立一些基本表(盡可能滿足3N),對大部分基本信息組合、存儲;其次通過建立視圖實現對冗余數據的有必要保留(查詢并計算基本表屬性得到新的作為視圖屬性)并實現對以下基本信息的顯示。圖書信息:圖書名稱、訂購數量、訂購時間、訂購單價、金額、出版社名稱、作者名稱;供應商名稱等;供應商信息:供應商名稱、地址、電話,聯系人;客戶信息:客戶編號、名稱、年齡、性別、累計購書金額等;銷售信息:時間、銷售名稱、數量、銷售單價、客戶編號、客戶名稱、金額等。在此基礎上進行以下目標查詢,

6、由于有些查詢常用且較復雜,為了簡化其應用,所以將它們定義為存儲過程。查詢當月書店銷售金額、營業金額;(存儲過程)查詢某種圖書庫存數量;(存儲過程)查詢當月銷量最好的圖書信息;(存儲過程)按供應商名稱查詢訂購信息;(普通查詢)查詢購買次數超過3次的客戶信息。(普通查詢)接著根據需要建立觸發器、存儲過程、索引,實現對數據庫的優化。最后,進行過程功能的驗證。允許具有權限者對數據庫進行數據更新和查詢等合法操作。數據流圖用流程圖來描述處理過程與數據的關系數據流圖如下:數據字典用數據字典來描述數據數據字典如下:數據項:數據項名含義說明別名數據類型長度取值范圍取值含義與其他數據項的邏輯關系圖書編號唯一標識每

7、本書char80000000099999999根據入庫時間先后編號有時與客戶編號作為主碼圖書名稱唯一標識每種書書名varchar30有時與供應商組成主碼作者名稱每種書的作者姓名char8出版社名稱每種書的出版社名稱char12供應商名稱唯一標識供應商char12地址供應商的地址varchar50電話供應商的電話char700000009999999聯系人通過聯系人書店與供應商進行溝通char8訂購時間每種書的訂購時間datetime應與圖書稱與供應商名稱作為的主碼直接關聯訂購單價從供應商處進貨每種書的每本價格int客戶編號唯一標識客戶char800000000099999999按購書先后編號有

8、時與圖書編號作為主碼客戶名稱客戶姓名char8性別客戶性別char2女或男年齡客戶年齡int每年都要增加一歲的銷售時間每本書的銷售時間datetime與圖書編號和客戶編號作為的主碼直接關聯銷售單價每本書的銷售價格int數據結構:數據結構名稱含義說明組成每種書指具有相同書名的書的集合的基本信息圖書名稱、作者名稱、出版社名稱每本書指圖書編號唯一標識的個體的歸屬圖書編號、圖書名稱供應商供應商的基本信息供應商名稱、地址、電話、聯系人供應基表每種書在何處訂購的具體情況圖書名稱、供應商名稱、訂購單價、訂購時間客戶客戶的基本信息客戶編號、客戶名稱、性別、年齡銷售基表每本書被誰買的具體請況圖書編號、客戶編號、

9、銷售單價、銷售時間數據流:此處從略數據存儲:此處從略數據處理:此處從略概念結構設計概念結構設計的方法設計概念結構通常有四類方法:自頂向下,自底向上,逐漸擴張以及混合策略。本系統采用的是自底向上的方法。即首先定義全局的概念結構的框架,然后逐步細化。根據自頂向下地進行需求分析然后再自底向上地進行概念設計。概念結構設計的步驟第一步:抽象數據;第二步:設計局部E-R圖;第三步:把各分E-R圖綜合成總體E-R圖,消除各種沖突;第四步:對總體E-R圖進行優化,消除冗余數據和冗余聯系;抽象初步數據:(此處與優化后E-R圖得出的實體聯系屬性很有可能不同)實體:圖書、供應商、客戶聯系:圖書訂購關系、圖書銷售關系

10、圖書與供應商的關系是多對一的關系;圖書與客戶的關系是多對一的關系。屬性:圖書的屬性:圖書編號、圖書名稱、出版社名稱、作者名稱、供應商名稱;主碼為圖書編號供應商的屬性:供應商名稱、供應商地址、電話、聯系人;主碼為供應商名稱客戶的屬性:客戶編號、姓名、性別、年齡;主碼為客戶編號圖書訂購關系屬性:供應商名稱、圖書編號、訂購時間、訂購單價;主碼為供應商名稱和圖書編號圖書銷售關系屬性:客戶編號、圖書編號、銷售時間、銷售單價;主碼為客戶編號和圖書編號分E-R圖:圖書E-R圖:供應商E-R圖:客戶E-R圖:初E-R圖:優化后的總E-R圖:邏輯設計階段邏輯設計階段:將系統E-R模型轉換為關系模式,并對給出的關

11、系模式進行關系規范化處理(盡量滿足3NF),得到系統全部的關系模式,并標明主鍵、外鍵此部分一律采用英文命名。然后進行用戶外模式的設計,針對中國用戶,此處用中文命名。將ER模式轉換為以下關系模式:1)book(#bname, writer_name, press_name);主鍵:#bname2.) everybook (# bno, #bname) ;主鍵:#bno外鍵:#bname3) supplier (#supplier_name, address, telephone, contact) ;主鍵:#supplier_name4)customer (#cno, cname, sex, a

12、ge);主鍵:#cno5)book_order(#bname, #supplier_name, #order_time, order_price, order_count);主鍵: #bname, #supplier_name, #order_time6)book_sell(#bno, #cno, sell_time, sell_price);主鍵:#bno發現這六個關系模式3N都滿足。因為元組中都是不可分割的數據,且所有非主屬性完全依賴其主碼,且它的任何一個非主屬性都不傳遞于任何主關鍵字。用戶外模式設計:基本信息視圖的建立:1.單本銷售情況(圖書編號,圖書名稱客戶編號,客戶名稱,銷售單價,銷

13、售時間);2.同種銷售情況(書名,銷售數量,銷售金額);3.客戶信息(客戶編號,客戶名稱、性別,年齡,累計購書金額);4.供應商信息(供應商名稱,地址,電話,聯系人);5.圖書訂購信息(圖書名稱,供應商名稱,訂購時間,訂購數量,訂購單價,訂購金額,出版社名稱,作者名稱);物理設計階段物理設計階段:為一個邏輯數據模型選取一個最適合應用環境的物理結構(存儲結構與存取方法),數據庫的物理設計通常分為兩步:A、確定數據庫的物理結構;B、對物理結構進行時間和空間效率評價。建立小型書店管理系統創建數據庫 book_shop_management-創建小型書店管理系統create database book

14、_shop_managementon primary(name='book_shop_management',filename='d:program filesmicrosoft sql servermssql.1mssqldatabook_shop_management.mdf',size=10mb,maxsize=unlimited,filegrowth=10%)log on(name='book_shop_management_log',filename='d:program filesmicrosoft sql servermss

15、ql.1mssqldatabook_shop_management_log.ldf',size=1mb,maxsize=5mb,filegrowth=3%)go截圖得:對各個基本表的建立(包括了各種完整性約束)建立表 book-建立表bookcreate table book(#bname varchar(30) primary key,writer_name char(8),press_name char(12)建立表 everybook-建立表everybookcreate table everybook(#bno char(8) primary key,#bname varcha

16、r(30) not nullconstraint fk_everybook_bname foreign key references book(#bname)建立表 supplier-建立表suppliercreate table supplier(#supplier_name char(12) primary key,address varchar(50)not null,telephone char(7)not null,contact char(8) not null)建立表 customer-建立表customercreate table customer(#cno char(8) p

17、rimary key,cname char(8)not null,sex char(2),age int,constraint ck_customer_sex check (sex in('男','女')建立表 book_order-建立表book_ordercreate table book_order(#bname varchar(30),#supplier_name char(12),#order_time datetime,order_count int not null,order_price int not null,constraint pk_bo

18、ok_order primary key (#bname,#supplier_name,#order_time)建立表 book_sell-建立表book_sellcreate table book_sell(#bno char(8) primary key,#cno char(8) not null,sell_time datetime,sell_price int)建立視圖建立基本信息視圖:建立單本銷售情況視圖-建立單本銷售情況視圖create view view_單本銷售情況asselect book_sell.#bno as 圖書編號,#bname as 圖書名稱,book_sell.

19、#cno as 客戶編號,cname as 客戶名稱,sell_time as 銷售時間,sell_price as 銷售單價from book_sell,customer,everybookwhere everybook.#bno=book_sell.#bnoand customer.#cno=book_sell.#cno建立同種銷售情況視圖-建立同種銷售情況視圖create view view_同種銷售情況asselect 圖書名稱 as 書名,count(圖書編號) as 銷售數量,sum(銷售單價) as 銷售金額from view_單本銷售情況group by 圖書名稱建立客戶信息視

20、圖-建立客戶信息情況create view view_客戶信息select customer.#cno as 客戶編號,cname as 客戶名稱,sex as 性別,age as 年齡,(select sum(sell_price) from book_sellgroup by #cno) as 累計購書金額from book_sell,customerwhere book_sell.#cno=customer.#cno建立供應商視圖-建立供應商視圖create view view_供應商信息asselect #supplier_name as 供應商名稱,address as 地址,tel

21、ephone as 電話,contact as 聯系人from supplier建立訂購信息視圖-建立訂購信息視圖create view view_圖書訂購信息asselect book_order.#bname as 圖書名稱,#supplier_name as 供應商名稱,#order_time as 訂購時間,order_price as 訂購單價,order_count as 訂購數量,(order_price*order_count) as 訂購金額,press_name as 出版社名稱,writer_name as 作者名稱from book,book_orderwhere bo

22、ok.#bname=book_order.#bname建立存儲過程某種圖書庫存查詢存儲過程create procedure sp_某種圖書庫存查詢-p1為要查詢的圖書名稱p1 varchar(30)asbegin select 訂購數-銷售數量as 庫存from (select sum(order_count) as 訂購數,#bname as 書名from book_ordergroup by #bname) as x,view_同種銷售情況where x.書名=p1 and view_同種銷售情況.書名=p1endgo某段時間內的銷售業績查詢存儲過程-建立本月業績查詢存儲過程-由于不知其它

23、信息,此處將銷售金額與營業金額等同-營業金額=營業額=成本+利潤create procedure sp_查詢某段時間內的業績-p1為起始時間,p2為結束時間p1 datetime,p2 datetimeasbeginselect sum(銷售單價) as 銷售金額from view_單本銷售情況where 銷售時間>=p1 and 銷售時間<=p2endgo某段時間內的銷售最好圖書信息查詢存儲過程-建立某段時間內銷售最好圖書信息查詢存儲過程create procedure sp_查詢某段時間內銷售最好的圖書信息p1 datetime,p2 datetimeasbeginselect

24、 #bname as 圖書名稱,writer_name as 作者名稱,press_name as 出版社名稱from (select 圖書名稱as 書名,count(圖書編號) as 銷售數量from view_單本銷售情況where 銷售時間>=p1and 銷售時間<=p2group by 圖書名稱) as x,bookwhere #bname=書名and 銷售數量>=all(select count(圖書編號) from view_單本銷售情況where 銷售時間>=p1and 銷售時間<=p2group by 圖書名稱)endgo建立觸發器(另外5個表也建

25、立相應曾刪改觸發器,不過此處從略,詳情見附件源代碼)建立一個customer的操作審核表,并建立相關觸發器,當向customer中插入、更新或刪除記錄時,生成一條操作記錄插入到該操作審核表中,內容包括客戶編號、客戶名稱、操作方式(插入/更新/刪除)和操作時間-建一個操作審核表create table customer_operate(客戶編號char(8)not null,客戶名稱char(8)not null,操作方式char(4)not null,操作時間datetime not null)-建立相關觸發器create trigger trigger_customer_inserton c

26、ustomerfor insertasbegindeclare p1 char(8),p2 char(8)set p1=(select #cno from inserted)set p2=(select cname from inserted)print'insert:'select *from insertedinsert into customer_operate values(p1,p2,'插入',getdate()endgocreate trigger trigger_customer_deleteon customerfor deleteasbegin

27、declare p1 char(8),p2 char(8)set p1=(select #cno from deleted)set p2=(select cname from deleted)print'deleted:'select * from deletedinsert into customer_operate values(p1,p2,'刪除',getdate()end gocreate trigger trigger_customer_updateon customerfor updateasbegindeclare p1 char(8),p2 ch

28、ar(8)set p1=(select #cno from deleted)set p2=(select cname from deleted)print 'inserted:'select *from insertedprint 'deleted:'select *from deletedinsert into customer_operate values (p1,p2,'修改',getdate()end go建立索引(由于數據庫比較小,沒有必要建立索引)實現數據庫(有附件源代碼和該數據庫源文件)過程功能驗證向基本表插入適量如下數據并顯示基本

29、表信息everybookbook#bno#bnameWriter_namePress_name何以笙簫默顧漫晉江出版社原來你還在這里辛夷塢起點出版社烈火如歌明曉溪晉江出版社微微一笑很傾城顧漫閱讀出版社#bname00000001何以笙簫默00000002何以笙簫默00000003原來你還在這里00000004烈火如歌00000005烈火如歌00000006烈火如歌00000007微微一笑很傾城book_sell#bno#cnoSell_timeSell_price00000001000000012013-6-162100000003000000022013-6-2519000000070000

30、00022013-7-92000000004000000032013-7-92300000005000000042013-7-1918customer#cnocnamesexAge00000001呂鵬女1800000002孫魯魯女1800000003王肖雨女1900000004邵麗君女19Book_order#bname#supplier_nameOrder_timeOrder_countOrder_price何以笙簫默大旗2013-6-10212原來你還在這里大旗2013-6-20110烈火如歌紅方2013-7-2110烈火如歌長城2013-7-329微微一笑很傾城高原2013-7-3111

31、Suppilier#suppileraddresstelephonecontact大旗上海1573234王平紅方上海1734272李景長城江蘇1564323張艷麗高原鄭州1242356殷風注:此處插入數據應當book在everybook 之前插入數據(外鍵)截圖得:視圖顯示基本信息-用顯示視圖基本信息select * from view_單本銷售情況select * from view_供應商信息select * from view_客戶信息select * from view_同種銷售信息select * from view_圖書訂購信息截圖得:執行存儲過程完成目標查詢某種圖書庫存查詢exec sp_某種圖書庫存查詢'烈火如歌'本月業績查詢exec sp_查詢某段時間內的業績'2013-7-1','2013-7-31'本月銷售最好圖書信息查詢exec sp_查詢某段時間內銷售最好的圖書信息'201

溫馨提示

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

評論

0/150

提交評論