云南大學(xué)數(shù)據(jù)庫期末大作業(yè)-數(shù)據(jù)庫設(shè)計說明書_第1頁
云南大學(xué)數(shù)據(jù)庫期末大作業(yè)-數(shù)據(jù)庫設(shè)計說明書_第2頁
云南大學(xué)數(shù)據(jù)庫期末大作業(yè)-數(shù)據(jù)庫設(shè)計說明書_第3頁
云南大學(xué)數(shù)據(jù)庫期末大作業(yè)-數(shù)據(jù)庫設(shè)計說明書_第4頁
云南大學(xué)數(shù)據(jù)庫期末大作業(yè)-數(shù)據(jù)庫設(shè)計說明書_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

/XX大學(xué)軟件學(xué)院實驗報告課程:數(shù)據(jù)庫原理與實用技術(shù)實驗學(xué)期:任課教師:專業(yè):學(xué)號:姓名:成績:期末大作業(yè):ElectronicVentor數(shù)據(jù)庫設(shè)計一、實驗?zāi)康摹?掌握數(shù)據(jù)庫設(shè)計的基本方法〔2掌握各種數(shù)據(jù)庫對象的設(shè)計方法〔3熟練掌握DBA必須具備的技能二、實驗內(nèi)容根據(jù)項目的應(yīng)用和項目的需求說明文檔,進(jìn)行詳細(xì)的需求分析,給出需求分析的結(jié)果。客戶可以在網(wǎng)站上注冊,注冊的客戶要提供客戶的姓名、電話、地址,以方便售后和聯(lián)系,姓名即作為用戶名,和密碼一起用于注冊和登錄,客戶編號可唯一識別用戶,卡號可網(wǎng)上支付。其中地址、電話以方便聯(lián)系和寄貨;網(wǎng)站管理員可以登記各種商品,供客戶查詢,訂購。登記商品時要提供商品的名稱、價格,商店中現(xiàn)有商品量,商品編號可唯一識別商品;類別表示商品所屬類別,類別編號可唯一識別類別,其中包含了,商品類別名稱和制造廠商,可以對商品進(jìn)行分類售賣;客戶可以在網(wǎng)上下訂單,也可以到實體店購物,其在訂單上所選擇的支付方式不同〔信用卡、借記卡、現(xiàn)金,現(xiàn)金代表實體店購物,網(wǎng)站管理員可以查看訂單,并及時將訂單的處理情況更新〔比如貨物已寄出的信息,訂單狀態(tài):0:未處理,1:已處理,2:已發(fā)貨;訂單編號可唯一識別訂單,訂單中包含訂單產(chǎn)生時間,訂單狀態(tài),支付方式和支付總額;實體商店有自己的店名,賣多種商品,每個商店都有固定的地址,顧客可以到店中買商品,〔注:在實體店中購買商品的顧客一律將顧客名默認(rèn)為佚名,當(dāng)商店中的庫存量小于10時會有提醒到倉庫中拿貨;配送單中包含查詢號可唯一識別配送單,配送人,聯(lián)系方式;倉庫中倉庫編號可唯一識別倉庫,其中每個倉庫都有區(qū)號,代表其地址。各實體間關(guān)系一個客戶可以購買多種商品,一種商品可以被多個客戶購買;一個商品屬于且僅屬于一種類別,一種類別的商品可以包含多個商品或沒有;一種商品放在多個商店中銷售,一個商店至少銷售一種或銷售多種商品;一個訂單對應(yīng)一個客戶,一個客戶對應(yīng)多個訂單;一個訂單對應(yīng)至少有一件商品或多件,一個商品對應(yīng)多個訂單;一個訂單可以有一個商品配送單一個倉庫可以存放多種商品,一種商品可以存放在一個倉庫;數(shù)據(jù)庫邏輯設(shè)計:用文字簡要描述實體之間的聯(lián)系,畫出E-R圖〔標(biāo)出各聯(lián)系中實體的基數(shù)??蛻?商品:n-n;商品-類別:n-1;商品-商店:n-n;客戶-訂單:1-n;訂單-商品:1-n;訂單-配送當(dāng):1-1;倉庫-商品:1-n3、數(shù)據(jù)庫物理設(shè)計:將E-R圖轉(zhuǎn)換為數(shù)據(jù)表。需要給出詳細(xì)的轉(zhuǎn)換規(guī)則,對應(yīng)生成的表,屬性〔主屬性、描述性屬性,多值屬性,符合屬性等,主鍵,外鍵,約束〔取值是否NULL等,索引〔三種類型的索引至少每種出現(xiàn)一次等。在客戶,配送單,類別中建立索引,語句在4題中如3中,有2個n-n關(guān)系,分生成訂購表和銷售表4、SQL中創(chuàng)建語句的使用:根據(jù)第二步中的結(jié)果,將相應(yīng)的表,屬性,主鍵,外鍵,約束等使用標(biāo)準(zhǔn)的SQLCREATE語句實現(xiàn)。〔要求給出創(chuàng)建的標(biāo)準(zhǔn)語句,以及創(chuàng)建之后在SQL數(shù)據(jù)庫中的腳本和截圖。createtable客戶<客戶編號char<5>notnullunique,姓名varchar<10>,密碼varchar<15>,電話numeric<11>,地址varchar<20>,卡號char<19>,constraintPK_客戶primarykey<客戶編號>>;createtable類別<類別編號char<5>notnullunique,類別名稱varchar<10>,制造商varchar<10>,constraintPK_類別primarykey<類別編號>>;createuniqueindex類別_PKon類別<類別編號ASC>;createtable倉庫<倉庫編號char<5>notnullunique,倉庫區(qū)號varchar<5>,constraintPK_倉庫primarykey<倉庫編號>>;createtable商品<商品編號char<5>notnullunique,倉庫編號char<5>notnull,類別編號char<5>notnull,商品名稱varchar<50>,價格float,constraintPK_商品primarykey<商品編號>,constraintfk_倉庫編號foreignkey<倉庫編號>references倉庫,constraintfk_類別編號foreignkey<類別編號>references類別>;createuniqueclusteredindex客戶_PKon客戶<客戶編號ASC>;createtable訂單<訂單編號char<5>notnull,客戶編號char<5>,訂購時間varchar<10>,支付方式varchar<10>,訂單狀態(tài)numeric,總額float,constraintPK_訂單primarykey<訂單編號>,constraintfk_客戶編號foreignkey<客戶編號>references客戶>;createtable配送單<查詢號char<10>notnullunique,訂單編號char<5>notnull,配送人varchar<10>,numeric<11>,constraintPK_配送單primarykey<查詢號>,constraintfk_訂單編號foreignkey<訂單編號>references訂單>;createclusteredindex配送_FKon配送單<訂單編號ASC>;createuniqueindex配送單_PKon配送單<查詢號ASC>;createtable商店<商店號char<5>notnullunique,商店名char<10>,地址varchar<20>,constraintPK_商店primarykey<商店號>>;createtable銷售<商店號char<5>notnull,商品編號char<5>notnull,庫存量int,constraintPK_銷售primarykey<商店號,商品編號>>;createtable訂購<訂單編號char<5>notnull,商品編號char<5>notnull,數(shù)量int,金額float,constraintPK_訂購primarykey<訂單編號,商品編號>>;5、存儲過程、觸發(fā)器和視圖:根據(jù)需要給數(shù)據(jù)庫添加至少六個實用的存儲過程、觸發(fā)器和視圖,并說明它們各自的功能?!残枰o出語句執(zhí)行的結(jié)果示意圖<1>創(chuàng)建視圖,查找商品名為'蘋果'的商品createviewfind_goodsasselect商品編號,商品名稱,價格from商品where商品名稱like'蘋果%'〔2創(chuàng)建視圖,查找價格在3000-6000的商品createviewpriceasselect商品編號,商品名稱from商品where價格>3000and價格<6000<3>創(chuàng)建觸發(fā)器,提醒店鋪中庫存量小于10的商品createtriggertrigger_alarmon銷售afterupdateasif<select庫存量from銷售where庫存量<10><10print'triggerout:'select商品編號,庫存量from銷售where庫存量<10return創(chuàng)建觸發(fā)器,當(dāng)刪除配送單中的數(shù)據(jù)時顯示出所刪信息createtriggertrigger_delon配送單afterdeleteasprint'delete'<5>創(chuàng)建存儲過程,根據(jù)商品編號,查詢該商品的訂購量createprocsp_find_quantity@商品編號char<5>,@sumqintoutputasselect商品編號,sum<數(shù)量>from訂購groupby商品編號having商品編號=@商品編號declare@sumqintexecsp_find_quantity@商品編號='s0001',@sumq=@sumqoutputprint'thesumquantityis:'+convert<varchar<5>,@sumq〔6創(chuàng)建存儲過程,通過商品名稱尋找商品信息createprocsp_find_price@namechar<10>asselect*from商品where商品名稱like@name+'%'execsp_find_price@name='戴爾6、分析常見的業(yè)務(wù)流程,列舉出至少五種SQLSELECT語句。實現(xiàn)的語句要滿足如下要求:在五種語句中的查詢能反映正常的業(yè)務(wù)需求;分析中至少要分別出現(xiàn)一次ORDERBY、GROUPBY…HAVING子句;分析中至少使用一次聚集函數(shù);分析中至少使用一次嵌套查詢;分析中至少使用一次UNION或INTERSECT運算;給出每一種語句執(zhí)行的結(jié)果。<1>計算并查找訂購單中相同訂單訂購超過5000的總額select訂單編號,sum<金額>as總額from訂購groupby訂單編號havingsum<金額>>5000查找即購買了商品編號為s0001又買了s0002的客戶select姓名from客戶b,訂單o,訂購swheres.商品編號='s0001'andb.客戶編號=o.客戶編號ando.訂單編號=s.訂單編號intersectselect姓名from客戶b,訂單o,訂購swheres.商品編號='s0002'andb.客戶編號=o.客戶編號ando.訂單編號=s.訂單編號<3>按照顧客c0002消費的總額大小順序排訂單編號select訂單編號,總額from訂單where客戶編號='c0001'orderby總額desc<4>查詢訂單編號為00003的配送信息selecto.訂單編號,配送人,from訂單o,配送單swhereo.訂單編號=s.訂單編號ands.訂單編號='00003'<5>查找同樣買了商品編號為s0002的客戶信息select客戶編號,姓名,電話from客戶where客戶編號in<select客戶編號from訂單,訂購where訂單.訂單編號=訂購.訂單編號and訂購.商品編號='s0002'><6>查詢當(dāng)日銷售總額select訂購時間,sum<總額>as營業(yè)額from訂單groupby訂購時間〔選做完成數(shù)據(jù)庫的設(shè)計之后,根據(jù)自己所熟悉的編程語言〔C、C++、JAVA,實現(xiàn)一個簡單的程序,能夠在程序中組裝SELECT語句,鏈接創(chuàng)建的數(shù)據(jù)庫,進(jìn)行查詢,并顯示查詢結(jié)果。若完成,請?zhí)峁┰敿?xì)的代碼清單〔代碼作為附件,附在本報告的最后。用JSP頁面編寫實現(xiàn)如下:8、實驗小結(jié)。在本次實驗中一共建立了9個表,完成了6條Select語句,6條關(guān)于視圖、觸發(fā)器和存儲過程,在語句實現(xiàn)過程中,因為涉及內(nèi)容比較廣,差不多把數(shù)據(jù)庫語句全部復(fù)習(xí)了一遍才開始做,所花的時間較長,但也收益頗豐,對數(shù)據(jù)庫的設(shè)計和實現(xiàn)也有了總體了解。最后在做選做時,選擇了通過網(wǎng)頁的方式實現(xiàn),因為在做專業(yè)實訓(xùn)時也用了JavaEE這項技術(shù),所以實現(xiàn)起來頗為得心應(yīng)手。附件packagecom.ynu.myBusiness.db;importjava.sql.Connection;importjava.sql.SQLException;importjava.sql.ResultSet;importjava.sql.Statement;importcom.devdaily.opensource.database.DDConnectionBroker;publicclassConnectionBrokerimplementsBuildConnection{ privateStringdriver=null; privateStringurl=null; privateStringusername=null; privateStringpassword=null; privateintminConnections=0; privateintmaxConnections=0; privatelongtimeout=0; privatelongleaseTime=0; privateStringlogFile=null; privateDDConnectionBrokerbroker=null; voidsetUp<>{//驅(qū)動包driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";//連接到數(shù)據(jù)庫businessurl="jdbc:sqlserver://:1433;DatabaseName=business"; username="sa"; password="yym"; minConnections=3; maxConnections=6; timeout=100; leaseTime=60000;//日志文件存儲位置 logFile="C:/D/DDConnectionBroker.log"; broker=null; } publicConnectiongetConnection<>throwsSQLException{ try{ //construct〔建立thebroker〔中間人 broker=newDDConnectionBroker<driver,url,username,password, minConnections,maxConnections,timeout,leaseTime,logFile>; } catch<SQLExceptionse>{ //couldnotgetabroker;notmuchreasontogoon System.out.println<se.getMessage<>>; System.out.println<"Couldnotconstructabroker,quitting.">; } //建立broker成功 returnbroker.getConnection<>; } publicvoidfreeConnection<Connectionconn>throwsSQLException{ try{ broker.freeConnection<conn>; } catch<Exceptione>{ System.out.println<"ThrewanexceptiontryingtofreemyConnection:"+e.getMessage<>>; } } publicintgetNumberConnections<>throwsSQLException{ if<broker!=null> returnbroker.getNumberConnections<>; else return-1; } publicConnectionBroker<>{ super<>; setUp<>; }}<%@pagelanguage="java"contentType="text/html;charset=GB2312"pageEncoding="GB2312"%>atement,java.sql.ResultSet,java.sql.Statement"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Inserttitlehere</title></head><body><p>數(shù)據(jù)庫實驗大作業(yè)</p><p>搜索配送單中的數(shù)據(jù)</p><%//從工廠中得到連接 ConnectionFactoryfa

溫馨提示

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

最新文檔

評論

0/150

提交評論