資料庫系統專題期末報告 線上水果購買系統 ──水果天堂 指導老師:黃三益 博士 第三組 組 長:柯志銘(n954120014) 指導老師:黃三益 博士 第三組 組 長:柯志銘(n954120014) 組 員:吳佳駿(m9526406005) 林獻斌(m9526406099) 郭健宏(m9621801006) 中華民國97年1月23日
報告大網 資料和功能分析 ERD 關聯綱目 關聯綱目的SQL定義 程式系統架構及工具 系統的URL、可執行的時間和執行方式 程式執行流程 程式執行畫面 感想 第三組 水果天堂
資料和功能分析(1/3) 資料和功能分析 水果天堂網站,提供各農會產銷之優質水果,網站採會員制,需成 為網站之會員才能購買水果,所販售之各種水果均為盒裝,網頁中 之單價均為每盒之價格。 線上水果購買系統的需求如下: 會員(Member):包括會員編號(mId,亦是會員登入之帳號)、姓名 (m_name)、地址(address)、電話(phone)、電子郵件(email)及密碼 (password),其中會員編號為唯一。 產品(Products):即本網站所販售之各種水果;包括產品編號 (prod_num)、產品敍述(description)、每箱之單價(unit_price)及水果照 片之連結(image),其中產品編號為唯一。 第三組 水果天堂
資料和功能分析(2/3) 資料和功能分析(續) 訂單(Orders):為會員之下單資料;包括訂單編號(order_num)、訂 單日期(order_date)、付款日期(paid_date)及送貨地址(pro_address), 其中訂單編號為唯一;送貨地址預設為會員之地址,若會員欲將 產品送至指定地點,則由會員自行輸入送貨地址;會員下單時必 需記錄每個產品的序號(item_num)、數量(quantity)及總價 (total_price)。 供應商(Supplier):即供應本網站水果產品之各地農會;包括供應 商編號(supp_code)及供應商名稱(supp_name),其中供應商編號為 唯一。 第三組 水果天堂
資料和功能分析(3/3) 資料和功能分析(續) 員工(Employee):為網站資料維護人員;包括員工編號(eId,亦是 員工登入之帳號)、員工姓名(e_name)及密碼(e_password),其中員 工編號為唯一。員工在管理產品時必需記錄日期(date)。 貨運公司(Deliver):本網站所販售之水果產品均由貨運公司宅配到 府;包括貨運公司編號(dId)、貨運公司名稱(d_name)、連絡人姓 名(d_conn)及電話(d_phone),其中貨運公司編號為唯一。 縣市代碼對照(Hsienshi):為方便員工處理產品以使貨運公司能快 速將產品送至會員指定地點,而將縣市資料獨立出來;包括縣市 代碼(hsienshi_code)及縣市名稱(hsienshi_name),其中縣市代碼為 唯一。 第三組 水果天堂
ERD 第三組 水果天堂 會員 Member 員工 Employee 產品 Products 貨運公司 Deliver 供應商 編號 mId 姓名 m_name 電子郵件 email 電話 phone 地址 address 密碼 password 縣市編號 hsienshi_code 縣市名稱 hsienshi_name 員工 Employee eId e_name e_password 產品 Products 貨運公司 Deliver 供應商 Supplier 管理 Manages 明細 Items 送貨 Delivery 1 N M order_num 日期 order_date 付款日期 paid_date 送貨地址 pro_address dId 公司名稱 d_name 連絡人 d_conn d_phone supp_code 名稱 supp_name 產品敍述 description 序號 item_num 總價 total_price 數量 quantity 單價 unit_price 照片連結 image prod_num 縣市代碼 Hsienshi 位於 Locate date 確認 Comfirms 訂單 Orders 第三組 水果天堂
關聯綱目 第三組 水果天堂 會員 Member 訂單 Orders 產品 Products 供應商 Supplier 明細 Items 員工 Employee 貨運公司 Deliver 編號 mId 姓名 m_name 電話 phone 地址 address 電子郵件 email 密碼 password 縣市代碼 hsienshi_code 縣市名稱 hsienshi_name 訂單編號 order_num 會員編號 貨運公司編號 dId 訂單日期 order_date 付款日期 paid_date 送貨地址 pro_address 產品編號 prod_num 員工編號 eId 產品敍述 description 單價 unit_price 照片連結 image 供應商編號 supp_code 供應商名稱 supp_name 序號 item_num 數量 quantity 總價 total_price 員工姓名 e_name e_password 貨運公司名稱 d_name 連絡人 d_conn d_phone Hsienshi 管理 Manages 日期 setup_date 第三組 水果天堂
關聯綱目的SQL定義 CREATE TABLE Hsienshi (hsienshi_code CHAR(3), hsienshi_name CHAR(10) NOT NULL, PRIMARY KEY (hsienshi_code)); CREATE TABLE Member (mId INT(4), m_name CHAR(16) NOT NULL, phone CHAR(12) NOT NULL, address CHAR(30) NOT NULL, email CHAR(30), password CHAR(10), hsienshi_code CHAR(3), PRIMARY KEY (mId) FOREIGN KEY (hsienshi_code) REFERENCES Hsienshi(hsienshi_code)); CREATE TABLE Deliver (dId INT(4), d_name CHAR(10) NOT NULL, d_conn CHAR(10) NOT NULL, d_phone CHAR(10) NOT NULL, PRIMARY KEY (dId)); 第三組 水果天堂
關聯綱目的SQL定義(續) CREATE TABLE Orders (order_num INT IDENTITY(101,1), mId INT(4) NOT NULL, dId INT(4) NOT NULL, order_date DATETIME NOT NULL, paid_date DATETIME, pro_address CHAR(20) NOT NULL, PRIMARY KEY (order_num), FOREIGN KEY (mId) REFERENCES Member (mId) ON UPDATE CASCADE, FOREIGN KEY (dId) REFERENCES Deliver (dId)); CREATE TABLE Employee (eId CHAR(5), e_name CHAR(10) NOT NULL, e_password CHAR(12) NOT NULL, PRIMARY KEY (eId)); 第三組 水果天堂
關聯綱目的SQL定義(續) CREATE TABLE Products (prod_num INT(4), eId CHAR(5) NOT NULL, description CHAR(15) NOT NULL, unit_price INT(4) NOT NULL, image CHAR(20), PRIMARY KEY (prod_num), FOREIGN KEY (eId) REFERENCES Employee (eId)); CREATE TABLE Supplier (supp_code CHAR(3), supp_name CHAR(15) NOT NULL, PRIMARY KEY (supp_code)); 第三組 水果天堂
關聯綱目的SQL定義(續) CREATE TABLE Items (order_num INT(4), prod_num INT(4), supp_code CHAR(3), item_num INT(4), quantity INT(4) NOT NULL, total_price MONEY(8) NOT NULL, PRIMARY KEY (order_num, prod_num, supp_code, item_num), FOREIGN KEY (order_num) REFERENCES Orders (order_num), FOREIGN KEY (prod_num) REFERENCES Products (prod_num), FOREIGN KEY (supp_code) REFERENCES Supplier (supp_code)); CREATE TABLE Manages (prod_num INT(4), eId CHAR(5) NOT NULL, setup_date DATETIME NOT NULL, PRIMARY KEY (prod_num, eId), FOREIGN KEY (eId) REFERENCES Employee(eId)); 第三組 水果天堂
程式系統架構及工具 作業系統:Windows標準平台。 資料庫:MS SQL Server資料庫。 Application Server DB-SQL Server DB Server Internet Information Services (IIS) 瀏覽器 作業系統:Windows標準平台。 資料庫:MS SQL Server資料庫。 Application Server Internet Information Services (IIS)。 ADO (Active Data Objects) Driver。 Client:MS Internet Explorer。 Network:TCP/IP protocol。 開發工具及程式語言 開發工具:Dreamwaver、Notepad。 程式語言:ASP。 第三組 水果天堂
系統的URL、可執行的時間和執行方式 專案網址:http://203.95.191.21:81/default.htm 登入帳號及密碼 會員部分提供三組帳號及密碼分別為 1001/111111 1002/222222 1003/333333 後台管理員工之帳號及密碼為 2008/fruit 可執行時間至97年2月底。 執行方式:瀏覽器使用Internet Explorer。 第三組 水果天堂
prod_add.asp prod_write.asp 程式執行流程 專案首頁 default.htm 會員註冊 Register.asp 會員資料寫入 mem_into.asp 更改會員資料 account.asp 資料變更寫入 mem_edit.asp 查詢所有會員資料 allmember.asp 新增水果商品 prod_add.asp prod_write.asp 登出回首頁 out.asp 瀏覽水果 product.asp 查詢水果query.asp 購買水果,加入購物車 buy.asp 購物車 cart.asp 結帳 pay.asp 查看歷史購買紀錄 history.asp 登出 logout.asp 後台管理頁面 em.htm 登入 login.asp 後台管理登入 em_login.asp 後台管理主介面 manage.htm 賣場首頁 shopping.htm / main.htm 第三組 水果天堂
程式執行畫面(1/13) 程式執行畫面 首頁登入畫面 第三組 水果天堂
程式執行畫面(2/13) 程式執行畫面(續) 水果天堂主要賣場網頁 第三組 水果天堂
程式執行畫面(3/13) 程式執行畫面(續) 以「橘子」為條件的搜尋畫面 第三組 水果天堂
程式執行畫面(4/13) 程式執行畫面(續) 選擇水果種類與數量,並將其加入購物車 第三組 水果天堂
程式執行畫面(5/13) 程式執行畫面(續) 購物車內之產品明細 第三組 水果天堂
程式執行畫面(6/13) 程式執行畫面(續) 查詢歷史訂單 第三組 水果天堂
程式執行畫面(7/13) 程式執行畫面(續) 會員資料修改 第三組 水果天堂
程式執行畫面(8/13) 程式執行畫面(續) 會員登出晝面 第三組 水果天堂
程式執行畫面(9/13) 程式執行畫面(續) 新會員註冊 第三組 水果天堂
程式執行畫面(10/13) 程式執行畫面(續) 後端管理介面 第三組 水果天堂
程式執行畫面(11/13) 程式執行畫面(續) 會員資料總覽 第三組 水果天堂
程式執行畫面(12/13) 程式執行畫面(續) 水果出貨訂單表 第三組 水果天堂
程式執行畫面(13/13) 程式執行畫面(續) 新增水果 第三組 水果天堂
感想(1/4) 感想 志銘 碩專二年級才來修這門課真的需要很大的勇氣,很累但很充實是上 完這門課的感受,對老師的上課方式是一種全新的體驗,先聽影音檔的 講解,再聽老師的補充說明及同學的習題講解,有事半功倍的效果,也 逼自己要跟上每個星期的進度,這對學習效果有很大的幫助。 我自己本身在沒修這門課之前僅懂一些簡單的SQL語法,在DBMS 方面也只接觸過SQL Server,修完課之後才發現別有洞天,不止接觸到 了ORACLE,另外感覺收獲最大的部分是ERD、資料儲存結構、查詢處 理與最佳化及交易管理;ERD提供了塑模很好的工具,可以將Mini- world用圖形表示出來再轉成關聯綱目;查詢處理與最佳化及交易管理 的介紹,讓我們了解資料庫的運作方式,可以藉由一些方法來改善查詢 效率,這對未來設計資料庫系統時會有很大的幫助。 老師藉由專案的方式讓我們由ERD開始,一步一步的把系統建立起 來,唯本組成員對撰寫程式方面不太熟,參考學長姐的專案並找了一些 相關書籍,拼拼湊湊也把期中專案做了小小的修正,總算把專案給做出 來了,雖然和老師要求的(使用ORACLE資料庫)不一樣,但畢竟大家 都盡力了,重要的是我們都學到很多,感謝同組成員的合作。 第三組 水果天堂
感想(續) 佳駿 我是一個學分班的學生,在上課前早有耳聞,資料庫是一門非常硬的課程,所以 這學期就只選這門課,打算來好好搞定一下。 感想(2/4) 感想(續) 佳駿 我是一個學分班的學生,在上課前早有耳聞,資料庫是一門非常硬的課程,所以 這學期就只選這門課,打算來好好搞定一下。 果然,這門課真的是硬的不得了,對於我這種沒有資料庫背景的人來說,讀的可以說是非常吃力,不只是倒吃甘蔗,根本就是整包黃連直接吞下肚,苦阿…呵呵。所幸,遇到的是一個脾氣非常好的教授,所以雖然苦,但是總是撐過來了。 基本上,我是滿喜歡老師這種課前看影音檔的方式來作課前預習,這種影音品質好太多了,不但是課前預習好用,期中期末考更是方便我倒轉倒轉再倒轉了好幾次以便看到懂為止,實在很讚。不過,我想建議若能在章節習題上也可先錄影解幾題的話,就更好了。因為有些章節,尤其是後面幾章,光是看錄影檔看一 兩次,看都有點模糊,更不用說解題了,若是有幾題可以參考,就完美了。 在專題製作方面,由於先前沒什麼ASP的背景,上完課後也才發現,程式語言像ASP等 ,在本課程中是屬於課本範圍外的知識範疇。對我而言是比較辛苦的一塊,所以像連結資料庫的語法等,就搞了一段時間,還好ASP 發展已有一段時間,可供參考的資料還算多,勉強可以應付專題的需求。但還是建議未來可以考慮把程式語言納入課程的一部分。 很高興這學期修了黃老師的資料庫,獲益良多是基本的,也很高興跟各位同組學習,大家辛苦了。 第三組 水果天堂
感想(3/4) 感想(續) 獻斌 由於平時工作上會接觸到資料庫系統(ERP),然而學生對於資料庫的理論還處於一知半解的階段,因此加選了本課程-資料庫的核心理論與實務。 平時的上課方式須先在家裡看影音檔,分組的方式做完課本及額外的習題,課堂上則討論及講解習題的部份,加上作業,期中/期末考及專案的實作,因此整個課程學習下來覺得很緊密,課堂講解時老師也不厭其煩的針對同學不懂的部份加強講解,感覺的到老師對的用心,現在回想起來,在這段期間學到很多資料庫相關知識,也從和同學的討論上得到很多相關的資訊。 在還沒修這門課之前,以為使用資料庫時只要把相關的屬性欄位建立好之後就可以使用了,然而修了這門課之後,我才了解資料庫的使用之前必須先做需求分析,資料庫規劃的好壞更影響後面程式撰寫的便利性。 在專案的部份更可以讓我們把課堂上理論基礎印證到實作上,從題目的訂定、功能需求面、到規劃設計ERD、轉成關聯綱目、建立Table、撰寫SQL語法,到後面的程式撰寫,更讓我們為了去完成專案而學習網頁及ASP程式的撰寫,真是受益良多。 再次的感謝老師對這門課的用心及教導,謝謝。 第三組 水果天堂
感想(4/4) 感想(續) 健宏 修完「資料庫的核心理論與理論」這門課,和學長們的感覺一樣– 硬、紥實、印象深刻。全部的課程,除了ERD的體會外,課程後半段的 進階正規化、資料儲存結構、進階的查詢處理與最佳化、交易管理等, 幾乎是全新的體驗,雖然用在研讀教材、影音檔、習題的學習時間很長, 但卻使自已對於資料庫的系統運作更加了解,對於以後系統運作效率的 掌控、改善,也提供了一個明確的努力方向。 課程上要求的「ORACLE資料庫專案實作」,提供了實際了解 ORACLE資料庫的機會,雖然剛開始對於使用ORACLE資料庫的壓力很 大,幾乎是修這門課,除了時間外,最大的不確定因素,然而透過文件 的研讀、網站上提供的範例及同學的互相討論,也在跌跌撞撞中,對 ORACLE資料庫有了一些了解與體會,受益良多。惟因時間上的不允許, 未能透過專案實作,體會系統運作效率的改善,感到有點可惜,在此借 寫感想的機會,建請老師在設計專案實作時,使同學可以有改善系統運 作效率的需求。 最後真心感謝老師如此用心的設計課程內容及教導,讓我學到許多 資料庫的相關知識,懇請老師能繼續延續這樣的教學方式。 第三組 水果天堂
簡報完畢 敬請指教 第三組 水果天堂