數(shù)據(jù)庫(kù)課程設(shè)計(jì)--網(wǎng)上禮品銷售系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告</b></p><p><b>  —網(wǎng)上禮品銷售系統(tǒng)</b></p><p><b>  設(shè)計(jì)時(shí)間</b></p><p>  2013年12月22日——12月27日</p><p><b>  設(shè)計(jì)地點(diǎn)</b

2、></p><p><b>  設(shè)計(jì)目的</b></p><p>  1、鞏固學(xué)習(xí)Oracle基礎(chǔ)知識(shí)方面的基本算法,進(jìn)一步熟悉基本概念。</p><p>  2、熟練在Oralce中的操作,了解基本的流程。</p><p>  3、培養(yǎng)查閱資料,獨(dú)立思考問(wèn)題的能力。</p><p><

3、;b>  設(shè)計(jì)小組成員</b></p><p><b>  指導(dǎo)老師</b></p><p><b>  設(shè)計(jì)課題</b></p><p>  經(jīng)過(guò)小組組員的討論,決定選取:網(wǎng)上禮品銷售系統(tǒng)</p><p><b>  理由:</b></p>&

4、lt;p>  1、綜合度高,有利于大家熟練掌握和運(yùn)用Oracle中的存儲(chǔ)過(guò)程、函數(shù)、觸發(fā)器、索引等功能的編寫。</p><p>  2、整個(gè)系統(tǒng)簡(jiǎn)潔明了,是我們常接觸的數(shù)據(jù)庫(kù),適于現(xiàn)在階段的我們。</p><p>  3、代碼編寫涉及面廣,利用提高綜合應(yīng)用能力,加強(qiáng)Oracle理論知識(shí)的掌握, </p><p>  全

5、面學(xué)習(xí)Oracle。</p><p>  基本思路及關(guān)鍵問(wèn)題的解決方法</p><p>  基本思路:該系統(tǒng)主要實(shí)現(xiàn)了網(wǎng)上禮品銷售的一般流程,可以實(shí)現(xiàn)基本的功 </p><p>  能。從消費(fèi)者查看禮品,下訂單到禮品店確認(rèn),發(fā)貨,物流進(jìn)展等功能都可以在這個(gè)系統(tǒng)體現(xiàn)。其中包括消費(fèi)者子模塊,店家子模塊,禮品信息子模塊,禮品類別子模塊,訂單子模塊和物流子模塊等六個(gè)子系統(tǒng)子

6、模塊。</p><p><b>  詳細(xì): </b></p><p>  消費(fèi)者子模塊包括用戶名,用戶密碼,姓名,地址,電子郵件和電話等信息</p><p>  店家子模塊包括用戶,用戶密碼,姓名和聯(lián)系電話</p><p>  禮品子模塊包括禮品編號(hào),商品類別,商品名稱,銷售價(jià)格,銷售數(shù)量和商品詳細(xì)信息</p>

7、;<p>  禮品類別子模塊包括分類編號(hào)和分類名稱</p><p>  物流子模塊包括物流號(hào),訂單號(hào),發(fā)貨時(shí)間,發(fā)貨地址,收貨時(shí)間和收貨地址</p><p>  訂單子模塊包括訂單號(hào),禮品號(hào),用戶,訂購(gòu)時(shí)間,訂購(gòu)數(shù)量和銷售總價(jià) </p><p><b>  3.功能:</b></p><p>  用戶

8、(消費(fèi)者和店家)可以對(duì)各自的部分信息進(jìn)行修改,如地址,電子郵件和</p><p>  電話,其他模塊信息一旦確認(rèn)后就不可再更改,加強(qiáng)系統(tǒng)的安全性。</p><p>  在現(xiàn)在競(jìng)爭(zhēng)激烈的電子商務(wù)中,系統(tǒng)的安全性和穩(wěn)定性是首要的選擇,其次是提 </p><p>  供完善的服務(wù)流程。當(dāng)然實(shí)際上的網(wǎng)上購(gòu)物系統(tǒng)要比這個(gè)復(fù)雜的多,在這里只是</p><

9、;p>  做了一個(gè)系統(tǒng)的抽象和簡(jiǎn)單建模,實(shí)際上還要包括更多更復(fù)雜的子模塊和交互性</p><p>  設(shè)置來(lái)提高系統(tǒng)的可操作性。</p><p><b>  功能模塊圖:</b></p><p><b>  系統(tǒng)層次結(jié)構(gòu)圖</b></p><p><b>  3.ER圖</b&

10、gt;</p><p><b>  轉(zhuǎn)化為關(guān)系模型:</b></p><p>  消費(fèi)者(用戶名,密碼,姓名,地址,電話,電郵)</p><p>  禮品店(店家,密碼,姓名,電話)</p><p>  禮品(禮品編號(hào),類別,價(jià)格,數(shù)量,詳細(xì)信息)</p><p>  訂單(訂單號(hào),禮品編號(hào),用戶

11、,訂購(gòu)時(shí)間,訂購(gòu)數(shù)量,銷售總價(jià))</p><p>  物流(物流號(hào),訂單號(hào),發(fā)貨時(shí)間,發(fā)貨地址,收貨時(shí)間,收貨地址)</p><p>  確認(rèn)(消費(fèi)者用戶名,禮品店名,買家確認(rèn),賣家確認(rèn))</p><p>  銷售(用戶名,禮品編號(hào),銷售總量,銷售總價(jià))</p><p>  下單(用戶名,禮品編號(hào),訂單號(hào))</p><p&

12、gt;  跟蹤(物流號(hào),訂單號(hào),到達(dá)時(shí)間,到達(dá)地點(diǎn))</p><p><b>  數(shù)據(jù)庫(kù)各對(duì)象及作用</b></p><p>  Tablespace and datafile(表空間和數(shù)據(jù)文件)</p><p>  數(shù)據(jù)庫(kù)、表空間和數(shù)據(jù)文件緊密關(guān)聯(lián),但是它們還是有重要的區(qū)別:</p><p>  ??一個(gè)Oracle由

13、一個(gè)或多個(gè)邏輯存儲(chǔ)單位組成,這些單位叫做表空間,表空間負(fù)責(zé)保存數(shù)據(jù)庫(kù)所有的數(shù)據(jù)。</p><p>  ??Oracle數(shù)據(jù)庫(kù)的每個(gè)表空間由一個(gè)或多個(gè)叫做數(shù)據(jù)文件的文件組成,數(shù)據(jù)文件是Oracle所運(yùn)行的操作系統(tǒng)上的文件。</p><p>  ??一個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)在構(gòu)成數(shù)據(jù)庫(kù)中表空間的數(shù)據(jù)文件上。例如,一個(gè)最簡(jiǎn)單的數(shù)據(jù)庫(kù)可能只有一個(gè)表空間和一個(gè)數(shù)據(jù)文件。另一個(gè)數(shù)據(jù)庫(kù)可能擁有三個(gè)表空間,每

14、個(gè)有兩個(gè)數(shù)據(jù)文件(整體上就是六個(gè)數(shù)據(jù)文件)。</p><p>  create tablespace test1 datafile 'H:\oracle\test1.dbf';</p><p><b>  size 20m</b></p><p>  extent management local autoallocate;&l

15、t;/p><p><b>  Table(表) </b></p><p><b>  用于存放數(shù)據(jù)</b></p><p>  Constraints(約束)</p><p>  約束作用:用來(lái)保持?jǐn)?shù)據(jù)的完整性,防止無(wú)效數(shù)據(jù)進(jìn)入到數(shù)據(jù)庫(kù)中。oracle數(shù)據(jù)庫(kù)中提供的5種約束,都是限定某個(gè)列或者列的組合

16、的。1、主鍵約束(PRIMARY KEY):在一個(gè)表中能唯一的標(biāo)識(shí)一行。主鍵可以限定在多個(gè)列上。2、唯一鍵約束(UNIQUE key):在一個(gè)表中能唯一的標(biāo)識(shí)一行,唯一鍵也可以限定在多個(gè)列上。主鍵和唯一鍵的區(qū)別:a、一個(gè)表中最多只能有一個(gè)主鍵??梢远鄠€(gè)唯一鍵。b、主鍵所限定的列不能為null,唯一鍵所限定的列可以為null.3、外鍵約束(FOREIGN key):   引用表:有外鍵約束的列所

17、在的表。   被引用表:外鍵所引用的列。被引用的列只能是主鍵或者唯一鍵。4、非空約束(NOT null):表示該列上的數(shù)據(jù)不能有null值。5、檢查性約束(check):表示該列上的數(shù)據(jù)必須滿足某一個(gè)條件表達(dá)式。</p><p><b>  Index(索引)</b></p><p>  建立索引的目的是加快對(duì)表中記錄的查找或排序,

18、為表設(shè)置索引要付出代價(jià)的:</p><p>  一是增加了數(shù)據(jù)庫(kù)的存儲(chǔ)空間;</p><p>  二是在插入和修改數(shù)據(jù)時(shí)要花費(fèi)較多的時(shí)間(因?yàn)樗饕惨S著而動(dòng))。</p><p><b>  View(視圖)</b></p><p>  視圖是從一個(gè)或幾個(gè)基本表(或視圖)導(dǎo)出的表。它與基本表不同,是一個(gè)虛表。數(shù)據(jù)庫(kù)只存放

19、視圖的定義,而不存放視圖對(duì)應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在原來(lái)的基本表中。所以基本表中的數(shù)據(jù)發(fā)生變化,從視圖中查詢出的數(shù)據(jù)也就隨之改變了。從這個(gè)意義上講,視圖就像一個(gè)窗口,透過(guò)它可以看到數(shù)據(jù)庫(kù)中自己感興趣的數(shù)據(jù)及其變化。 視圖使用的時(shí)候跟表一樣。主要作用是不讓所有的人都能看到整張表。比如有個(gè)員工信息表,里面有聯(lián)系方式,薪資等,可能只希望HR能看到薪資,其他人只能看到聯(lián)系方式,那么就可以使用視圖來(lái)實(shí)現(xiàn)。</p><p

20、>  合理地使用視圖能夠帶來(lái)許多好處:1、單源表視圖   視圖的數(shù)據(jù)可以只取自一個(gè)基本表的部分行、列,這樣的視圖行列與基本表行列對(duì)應(yīng)。這樣定義的視圖一般可以進(jìn)行查詢和更改數(shù)據(jù)操作。2、多源表視圖   視圖的數(shù)據(jù)可以來(lái)自多個(gè)表中,這樣定義的視圖一般只用于查詢,不用于修改數(shù)據(jù)。3、在已有視圖上定義的新視圖   可以在視圖上再建立視圖,這時(shí)作為數(shù)據(jù)源的視

21、圖必須是已經(jīng)建立好的。4、帶表達(dá)式的視圖   在定義基本表時(shí),為減少數(shù)據(jù)庫(kù)中的冗余數(shù)據(jù),表中只存放基本數(shù)據(jù),由基本數(shù)據(jù)經(jīng)過(guò)各種計(jì)算派生出的數(shù)據(jù)一般是不存儲(chǔ)的。但由于視圖中的數(shù)據(jù)并不實(shí)際存儲(chǔ),所以定義視圖時(shí)可以根據(jù)需要設(shè)置一些派生屬性列,在這些派生屬性列中保存經(jīng)過(guò)計(jì)算的值。這些派生屬性由于在基本表中并不實(shí)際存在,因此,也稱它們?yōu)樘摂M列。包含虛擬列的視圖也稱為帶表達(dá)式的視圖。5、含分組統(tǒng)計(jì)信息的視圖 

22、;  含分組統(tǒng)計(jì)信息的視圖是指定義視圖的查詢語(yǔ)句中含有GROUP BY子句,這樣的視圖只能用于查詢,不能用于修改數(shù)據(jù)。</p><p>  Sequence(序列)</p><p>  序列(SEQUENCE)是序列號(hào)生成器,可以為表中的行自動(dòng)生成序列號(hào),產(chǎn)生一組等間隔的數(shù)值(類型為數(shù)字)。其主要的用途是生成表的主鍵值,可以在插入語(yǔ)句中引用,也可以通過(guò)查詢檢查當(dāng)前值,或使序列

23、增至下一個(gè)值。</p><p>  調(diào)試過(guò)程中出現(xiàn)的問(wèn)題及相應(yīng)解決方法</p><p>  在調(diào)試過(guò)程中,主要出現(xiàn)的問(wèn)題在于存儲(chǔ)過(guò)程、游標(biāo)、函數(shù)以及觸發(fā)器的建立時(shí)出現(xiàn)的編譯性錯(cuò)誤。通過(guò)資料的查詢問(wèn)題得以解決。</p><p><b>  課程設(shè)計(jì)心得體會(huì)</b></p><p>  通過(guò)兩周的設(shè)計(jì)和開(kāi)發(fā),我們終于完成了學(xué)

24、生信息管理系統(tǒng),在此過(guò)程中,我們學(xué)會(huì)了很多有用的東西,綜合能力提高許多。在編程的過(guò)程中,回顧了以前所學(xué)的知識(shí),通過(guò)這個(gè)課程設(shè)計(jì),把學(xué)到的知識(shí)充分應(yīng)用了,檢驗(yàn)了自我,并且通過(guò)和別人一起合作,學(xué)到了新的知識(shí),特別是團(tuán)隊(duì)精神。因?yàn)橐粋€(gè)人所學(xué)的知識(shí)不可能面面俱到的,只有通過(guò)合作,發(fā)揮自己的優(yōu)點(diǎn),體現(xiàn)團(tuán)隊(duì)精神,才能使任務(wù)完成的更加出色,通過(guò)這次設(shè)計(jì),我們感覺(jué)到了團(tuán)隊(duì)合作在軟件開(kāi)發(fā)過(guò)程中的重要性,一個(gè)人是沒(méi)有辦法完成一個(gè)號(hào)的項(xiàng)目的,通過(guò)這次設(shè)計(jì),親

25、身體驗(yàn)了系統(tǒng)開(kāi)發(fā)的全過(guò)程,在實(shí)踐中了解系統(tǒng)設(shè)計(jì)開(kāi)發(fā)的步驟、流程以及思路,增長(zhǎng)了系統(tǒng)開(kāi)發(fā)方面的見(jiàn)識(shí),我們深刻認(rèn)識(shí)到以前所學(xué)的基礎(chǔ)課程的重要性,也使我們掌握了很多新的知識(shí),特別是課堂上無(wú)法學(xué)到的東西,體會(huì)到了理論和實(shí)踐相結(jié)合的重要性。</p><p>  由于設(shè)計(jì)時(shí)間較短,且受知識(shí)和技術(shù)水平的限制,所以該系統(tǒng)還會(huì)有很多不盡人意的地方,比如功能不全,出錯(cuò)處理不夠等多方面問(wèn)題。系統(tǒng)開(kāi)發(fā)是一個(gè)不斷完善的過(guò)程,只有在實(shí)際的使

26、用過(guò)程中才能不斷的發(fā)現(xiàn)問(wèn)題,從而再加以改進(jìn)升級(jí)。而在系統(tǒng)設(shè)計(jì)過(guò)程中,難免會(huì)出現(xiàn)一些預(yù)測(cè)不到的異常,這些異??赡茉谙到y(tǒng)測(cè)試階段檢測(cè)不出,只有用戶在使用過(guò)程中才能發(fā)現(xiàn)。</p><p>  總的來(lái)說(shuō),盡管這次作業(yè)還存在很多問(wèn)題,但是通過(guò)這次設(shè)計(jì),我們學(xué)到了許多書本上學(xué)不到的知識(shí),增強(qiáng)了自己的動(dòng)手能力和自信心,為我們以后的工作積累了寶貴的財(cái)富,而且讓我們明白了團(tuán)隊(duì)合作的重要性。</p><p>

27、  源程序(每句語(yǔ)言要詳細(xì)解釋)</p><p><b>  庫(kù)的創(chuàng)建</b></p><p>  //Tablespace test1創(chuàng)建,大小20m</p><p>  create tablespace test1 datafile 'H:\oracle\test1.dbf';</p><p>&l

28、t;b>  size 20m</b></p><p>  extent management local autoallocate;</p><p>  //建立數(shù)據(jù)庫(kù)用戶,數(shù)據(jù)庫(kù)名(tingxins/tingxins)默認(rèn)表空間為users,臨時(shí) </p><p><b>  表空間為temp</b></p>

29、<p>  create user tingxins identified by tingxins</p><p>  default tablespace users</p><p>  temporary tablespace temp</p><p>  quota 20m on test1;</p><p>  grant

30、dba to tingxins;//授予tingxins用戶dba權(quán)限</p><p><b>  表創(chuàng)建</b></p><p>  customers表:</p><p>  Create table customers(</p><p>  Userid varchar2(10) primary key,</

31、p><p>  Password varchar2(10) not null,</p><p>  Name varchar2(10) not null,</p><p>  Address varchar2(20),</p><p>  Email varchar2(20),</p><p>  Telephone va

32、rchar2(20));</p><p>  merchants表:</p><p>  Create table merchants(</p><p>  Muserid varchar2(10) primary key,</p><p>  Mpassword varchar2(10) not null,</p><p

33、>  Mname varchar2(10) not null,</p><p>  Mtelephone varcher2(10));</p><p><b>  goods表:</b></p><p>  create table goods(</p><p>  Goodid varchar2(10) prim

34、ary key,</p><p>  Typeid varchar2(10)not null,</p><p>  Goodname varchar2(10) foreign key,</p><p>  Saleprice number not null,</p><p>  Salecount number,</p><

35、;p>  Detail varchar2(100));</p><p>  goodstype表:</p><p>  create table goodstype(</p><p>  Typeid varchar2(10) primary key,</p><p>  Typename varchar2(10)not null);&

36、lt;/p><p><b>  order表:</b></p><p>  Create table order(</p><p>  Ordered varchar2(10) primary key,</p><p>  Goodid varchar2(10) foreign key,</p><p&g

37、t;  Userid varchar2(10) foreign key,</p><p>  Ordertime date not null,</p><p>  Totalprice number);</p><p>  logistics表:</p><p>  Create table logistics(</p><

38、;p>  Logisticsid varchar2(10) primary key,</p><p>  Ordered varchar2(10) foreign key,</p><p>  Dispatchtime date not null,</p><p>  Dispatchaddress varchar2(20) not null,</p&g

39、t;<p>  Receivetime date,</p><p>  Receiveaddress varchar2(20));</p><p><b>  confirm表:</b></p><p>  Create table confirm(</p><p>  Userid varchar2(10

40、) foreign key,</p><p>  Muserid varchar2(10) foreign key,</p><p>  Uconfirm number check(uconfirm =0or uconfirm=1),</p><p>  Mconfirm number check(mconfirm=0 or mconfirm=1),</p&g

41、t;<p>  Consraint confirm_pk primary key (userid,muserid)</p><p><b>  );</b></p><p><b>  sale表:</b></p><p>  Create table sale(</p><p>  

42、Muserid varchar2(10) foreign key,</p><p>  Goodid varchar2(10) foreign key,</p><p>  Salecount number,</p><p>  Totalprice number,</p><p>  Constraint sale_pk primary k

43、ey (muserid,goodid));</p><p>  ordering表:</p><p>  Create table ordering(</p><p>  userid varchar2(10) foreign key,</p><p>  Goodid varchar2(10) foreign key,</p>

44、<p>  Ordered varchar2(10) foreign key,</p><p>  Constraint ordering_pk primary key (userid,goodid,ordered));</p><p><b>  track表:</b></p><p>  Create table track(&

45、lt;/p><p>  Logisticid varchar2(10)foreign key,</p><p>  Ordered varchar2(10) foreign key,</p><p>  Arrivetime date,</p><p>  Arriveaddress varchar2(10));</p><p

46、><b>  索引</b></p><p>  如在customers 表中的address 列建立唯一索引:</p><p>  Create unique index index_address on customers(address);</p><p>  2.使goods 表的salecount 列按降序排列: </p&g

47、t;<p>  Create index index_desc on goods (salecount desc); </p><p><b>  存儲(chǔ)過(guò)程</b></p><p>  1.不帶參數(shù)的存儲(chǔ)過(guò)程</p><p>  Create or replace procedure tingxins selectall<

48、/p><p><b>  As</b></p><p><b>  Begin</b></p><p>  Select * from customers where address like’廣東省%’</p><p><b>  End</b></p><p

49、><b>  帶參數(shù)的存儲(chǔ)過(guò)程</b></p><p>  Create or replace procedure tingxins.updategoods(p_salecount </p><p>  in number)</p><p><b>  As </b></p><p>&

50、lt;b>  Begin</b></p><p>  Update goods set saleprice=saleprice *p_salecount where </p><p>  salecount=p_salecount;</p><p><b>  End;</b></p><

51、p><b>  參考文獻(xiàn):</b></p><p>  [1] Oracle 從入門到精通/明日科技編著?!本呵迦A大學(xué)出版社,2012.9</p><p>  [2][美]Richard Anderson, Chris Blexrud著.ASP3高級(jí)編程[M].劉福太,張立民,金慧琴,梁發(fā)麥等譯.北京:機(jī)械工業(yè)出版社,2000.408-458.</p&

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論