當前位置:首頁 » 數據倉庫 » 資料庫程序設計報告
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫程序設計報告

發布時間: 2023-02-18 14:41:20

㈠ 100分求一份資料庫原理課程設計的實驗報告

(圖放不上去呀 我自己做的E-R圖)

計算機科學與信息學院

課程設計報告

課程名稱: 資料庫概論課程設計
專 業: 網路方向
班 級: ====
學 號: ===
姓 名: 閆娟
題 目: 網上購書系統
指導教師: 肖淑芬

2011年6月

目錄
一、課程設計的背景來源 3
二、網上購書系統調查及前景 4
三、網上購書設計思想 4
1、前台系統工作流程 5
2、後台系統工作流程 6
四、網上書店工作過程的內容 6
五、資料庫設計 7
1、數據項 7
2、 數據結構 8
3、關系模式的設計 8
4、視圖的設計 9
六、網上購書E-R圖 10
六、系統的源程序 15
七、系統評價及心得體會 20

一、課程設計的背景來源
1,其實寫這個課程設計寫得比較匆忙,馬上其他可就要考試了,本想找個男的題目來挑戰下自己,後來還是因為時間需要,所以選了個相對來說我們生活比較容易接近的
2,隨著現在社會的發展,網路已經成為一個市場很大的交易平台,很多人由於時間需要或者各方面原因都把網上購物作為一種消費方式,有時我們在書店要花很長時間去找一本書,有時還找不到,記得有次在孝感學院圖書館找一本概率論輔導書,花了很長很長時間呀,所以我深有體會,還是感覺在網上購書比較簡單,方便。
3,班上有很多同學都從事網上購物,我剛好想利用自己的專業知識來學習下這方面的知識,自己查查資料,把這個課程設計做好。

二、網上購書系統調查及前景

人們喜歡通過閱覽書籍拓展自己的知識視野,可在實際生活的購書過程中人們卻遇到了不少麻煩,比如購書人多,挑書難,搬書重等,因此既方便又快捷的網路購書便成為了一種很有潛力的購書消費方式。信息時代,電子商務已經成為我們現實生活中不可缺少的一個重要組成部分,同時它以一種特殊的方式改變著我們的生活。根據調查結果顯示,網民上網以獲取信息為主要目的佔5 3.1%。目前我國上網購物的群體中,絕大多數是年輕人, 他們大多數是收入穩定、文化水平較高的中青年,網上消費已經日益成為他們生活中的一種重要的消費方式,他們成為了最有潛力的未來網上消費者。
三、網上購書設計思想
首先網上購書系統聽起來是個很雜的程序,因為有很多很多書,也有很多很多人來買,但是其實我們簡單的可以把它分為兩個模塊,這樣我們就能很好的理解了,網上書店主要由前台會員管理模塊和後台管理員模塊兩部分組成。
前台功能模塊主要用於實現會員注冊,登錄,修改個人信息,分類查看書目信息、購書、管理購物車、結帳、查看各種服務條款等功能。
後台管理模塊主要用於實現後台管理人員對會員,商品,物流,訂單和系統的管理等功能。
1、前台系統工作流程
首先當我們用戶登陸這個網站時,一開始就會出現讓你登陸,如果是你會員,你可以直接登錄,如果你不是會員,你要注冊個賬號。
1、 當你是會員時,你可以查看你的各項服務,比如說上次你收藏了什麼書籍,以及你喜歡的書的種類,在可以看下前幾次你購買書的情況,在可以修改個人信息,修改密碼等,你也可以查看自己網上交易情況,看下自己買的書的情況,以及看上什麼書了,可以把它放回購物車,方便自己購買。
2、 當你是非會員時,你要先進行注冊,填寫自己的基本信息,當你填好後,你也是其中一員了,你也同樣可以向會員那樣找自己的書了,相對來說比較方便。
3、 還有人不注冊,只是進來逛下網站,看看自己是否有必要買一些書。
2、後台系統工作流程
後台系統工作流程主要用於實現後台管理人員對會員,商品,物流,訂單和系統的管理等功能,他要對會員的登記進行統計,以及購物等方面的內容管理

四、網上書店工作過程的內容

1、管理員信息,包括數據項有:管理員編號、管理員賬號、管理員密碼。
2、會員信息,包括數據項有:會員賬號、會員密碼、會員昵稱、會員E-mail、會員級別(管理員設定)。
3、圖書信息,包括數據項有:圖書編號、圖書名稱、作者、出版社編號、出版日期、圖書類別編號、圖書簡介。
(⑴出版社信息,包括數據項有:出版社編號、出版社名稱。
⑵圖書類別信息,包括數據項有:圖書類別編號、圖書類別名稱。)
4、圖書訂單,包括數據項有:會員賬號、下定單日期、收貨地址、收貨地址郵編、收貨人姓名、收貨人聯系方式、送貨方式編號、總費用、圖書名稱、現已售出量情況。
5、購物車,包括數據項有:會員賬號、每種圖書名稱、每種圖書市場價格、每種圖書網站價格、每種圖書數量、每種圖書的價格、圖書總價。

五、資料庫設計
1、數據項
數據項
數據項名 數據類型 長度 別名 取值范圍
會員編號 字元型 15 會員的編號
姓名 文本型 20 會員的姓名
密碼 文本型 20 會員的密碼
電話 字元型 12 會員的電話
地址 文本型 50 會員的地址
商品編號 字元型 15 商品的編號
類型 文本型 10 商品的類型
名稱 文本型 20 商品的名稱
價格 整型 6 商品的價格
簡介 文本型 500 商品的簡介
圖片 圖片型 商品的圖片
購物車編號 字元型 10 購物車的編號
商品數量 整型 10 購買商品的數量
訂單編號 字元型 15 購物時生成的訂單
訂單日期 時間型 10 購買商品的時間
2、 數據結構
系統需求數據結構
數據結構名 含義說明 組成
會員 記錄會員的基本信息 會員編號、姓名、密碼、電話、地址
商品 記錄銷售商提供的商品信息 商品編號、類型、名稱、價格、簡介、圖片
訂購 記錄會員的購物信息 會員編號、商品編號、訂單編號、訂單日期
購物車 存儲會員需要購買的商品 會員編號、商品編號、購物車編號、商品數量

3、關系模式的設計
會員
數據項名 數據類型 長度 別名 是否為空 主外鍵
會員編號 字元型 15 會員編號 否 主鍵
姓名 文本型 20 姓名 否
密碼 文本型 20 密碼 否
電話 字元型 12 電話 否
地址 文本型 50 地址 否

商品
數據項名 數據類型 長度 別名 是否為空 主外鍵
商品編號 字元型 15 商品編號 否 主鍵
類型 字元型 15 類型 否
名稱 字元型 20 名稱 否
價格 整型 10 價格 否
簡介 文本型 500 簡介
圖片 image型 100 圖片

訂購
數據項名 數據類型 長度 別名 是否為空 主外鍵
會員編號 字元型 15 會員編號 否 外鍵 主鍵
商品編號 字元型 10 商品編號 否 外鍵
訂單編號 字元型 10 訂單編號 否
訂單日期 日期型 10 訂單日期 否

購物車
數據項名 數據類型 長度 別名 是否為空 主外鍵
會員編號 字元型 15 會員編號 否 主鍵
商品編號 字元型 15 商品編號 否
購物車編號 字元型 15 購物車編號 否
商品數量 整型 6 商品數量 否

4、視圖的設計
搜索商品視圖
數據項名 數據類型 長度 別名 是否為空
名稱 字元型 10 名稱 否
類型 字元型 10 類型 否
價格 整型 10 價格 否
簡介 文本型 4 簡介 否

六、網上購書E-R圖

否 是

網上書店系統業務流程:

網上書店前台管理功能結構圖:

六、系統的源程序
ackage cart;
import java.util.Vector;
public class Cart {
Vector v = new Vector();
String act = null;
String item = null;
private void addItem(String id) {
v.addElement(id);
}
private void removeItem(String id) {
v.removeElement(id);
}
public void setItem(String id) {
item = id;
}
public void setAct(String s) {
act = s;
}
public String[] getItems() {
String[] s = new String[v.size()];
v.Into(s);
return s;
}
public void processRequest() {
if (act.equals("add"))
addItem(item);
else if (act.equals("remove"))
removeItem(item);
// reset at the end of the request
reset();
}
// reset
private void reset() {
act = null;
item = null;
}
public void clearAll(){
v.removeAllElements();
}
}

現實頁面信息,提示等操作的設計:
package spage;
import java.sql.*;
public class ShowPage
{
private String str = "";

//顯示頁號為p的一頁(user)
public String printPage(ResultSet rs, int p, int size)
{
str = "";
//將訪問游標定位到頁號為p的頁要顯示的第一條記錄的位置
try {
for(int k=0;k<(p-1)*size;k++)
rs.next();
}
catch(SQLException e) { }
for(int iPage=1; iPage<=size; iPage++) {
str += printRow(rs,iPage,p);
try {
if(!rs.next()) break;
}
catch(Exception e) { }
}
return str;
}
//顯示單行記錄(user)
public String printRow( ResultSet rs ,int i,int p)
{
String temp = "";
try {
int id=rs.getInt("userid");
temp+="<tr align='center' bgcolor='#FFFAF7'>";
temp+="<td><a href='javaScript:seeUser("+id+")'>"+rs.getString("name")+"</a></td>";
temp+="<td>"+rs.getString("sex")+"</td>";
temp+="<td>"+rs.getString("phone")+"</td>";
temp+="<td>"+rs.getString("address")+"</td>";
temp += "<td><a href='updateuser.jsp?updateid="+id+"'>修改</a></td>";
temp += "<td><a href='dealdeleteuser.jsp?delid="+id+"'>刪除</a></td>";
temp += "</tr>";
}
catch(SQLException e) { }
return temp;
}
//顯示頁號為p的一頁(book)
public String bookPage(ResultSet rs, int p, int size,boolean f)
{
str = "";
//將訪問游標定位到頁號為p的頁要顯示的第一條記錄的位置
try {
for(int k=0;k<(p-1)*size;k++)
rs.next();
}
catch(SQLException e) { }
for(int iPage=1; iPage<=size; iPage++) {
str += bookRow(rs,iPage,p,f);
try {
if(!rs.next()) break;
}
catch(Exception e) { }
}
return str;
}
//顯示單行記錄(book)
public String bookRow( ResultSet rs ,int i,int p,boolean f)
{
String temp = "";
try {
int id=rs.getInt("bookid");
temp+="<tr align='center'>";
temp+="<td><a href='detail.jsp?detailid="+id+"'>"+rs.getString("bookname")+"</a></td>";
temp+="<td>"+rs.getString("author")+"</td>";
temp+="<td>"+rs.getString("pubhouse")+"</td>";
temp+="<td>"+rs.getString("price")+"</td>";
if(f)
{
temp+="<td>"+rs.getString("salenum")+"</td>";
temp+="<td><a href='updatebook.jsp?updateid="+id+"'>修改</a></td>";
temp+="<td><a href='dealdeletebook.jsp?delid="+id+"'>刪除</a></td>";
}
else
temp+="<td><a href='dealcart.jsp?dealid="+id+"&act=add'>加入購物車</a></td>";
temp += "</tr>";
}
catch(SQLException e) { }
return temp;
}
//顯示頁號為p的一頁(order)
public String orderPage(ResultSet rs, int p, int size,boolean f)
{
str = "";
//將訪問游標定位到頁號為p的頁要顯示的第一條記錄的位置
try {
for(int k=0;k<(p-1)*size;k++)
rs.next();
}
catch(SQLException e) { }
for(int iPage=1; iPage<=size; iPage++) {
str += orderRow(rs,iPage,p,f);
try {
if(!rs.next()) break;
}
catch(Exception e) { }
}
return str;
}
//顯示單行記錄(order)
public String orderRow( ResultSet rs ,int i,int p,boolean f)
{
String temp = "";
try {
String orderid=rs.getString("orderid");
temp+="<tr align='center'>";
temp+="<td><a href='detailorder.jsp?detailid="+orderid+"'>"+orderid+"</a></td>";
temp+="<td>"+(rs.getString("orderdate")).substring(0,10)+"</td>";
temp+="<td>"+rs.getString("orderstate")+"</td>";
if(f)
{
temp += "<td><a href='javaScript:seeUser("+rs.getString("userid")+")'>"+rs.getString("username")+"</a></td>";
temp += "<td><a href='dealdeleteorder.jsp?delid="+orderid+"'>刪除</a></td>";
}
temp+="</tr>";
}
catch(SQLException e) { }
return temp;
}
}

七、系統評價及心得體會
1、了解很多關於網上購書程序上的知識,要寫這個課程設計,我把有關網上購書的概論也看了下,發現不知道是這個設計太簡單還是怎麼回事,網上出現很多此樣的版本,很有有更新,可能我們對資料庫設計的程序還不是很了解吧。
2,要寫資料庫E-R圖,發現很難畫啊,還要把線段連來連去,覺得在畫圖上面花了很多時間
3,一定要先了解數據情況,要先熟悉了網上購書的基本操作,在開始研究,最好自己去試一下網上購書,我就自己親自去點擊了下網上購書網,然後才下手寫的課程設計。

㈡ 資料庫課程設計實例

資料庫課程設計

題目:小型超市管理系統
1、項目計劃
1.1系統開發目的
(1)大大提高超市的運作效率;
(2)通過全面的信息採集和處理,輔助提高超市的決策水平;
(3)使用本系統,可以迅速提升超市的管理水平,為降低經營成本, 提高效益,增強超市擴張力, 提供有效的技術保障。
1.2背景說明
21世紀,超市的競爭也進入到了一個全新的領域,競爭已不再是規模的競爭,而是技術的競爭、管理的競爭、人才的競爭。技術的提升和管理的升級是超市業的競爭核心。零售領域目前呈多元發展趨勢,多種業態:超市、倉儲店、便利店、特許加盟店、專賣店、貨倉等相互並存。如何在激烈的競爭中擴大銷售額、降低經營成本、擴大經營規模,成為超市營業者努力追求的目標。
1.3項目確立
針對超市的特點,為了幫助超市解決現在面臨的問題,提高小型超市的競爭力,我們將開發以下系統:前台POS銷售系統、後台管理系統,其中這兩個子系統又包含其它一些子功能。
1.4應用范圍
本系統適應於各種小型的超市。
1.5 定義
(1)商品條形碼:每種商品具有唯一的條形碼,對於某些價格一樣的商品,可以使用自定義條形碼。
(2)交易清單:包括交易的流水賬號、每類商品的商品名、數量、該類商品的總金額、交易的時間、負責本次收銀的員工號。
(3)商品積壓:在一定時期內,遠無法完成銷售計劃的商品會造成積壓。
(4)促銷:在一定時期內,某些商品會按低於原價的促銷價格銷售。
庫存告警提示:當商品的庫存數量低於庫存報警數量時發出提示。
(5)盤點:計算出庫存、銷售額、盈利等經營指標。
1.6 參考資料
《資料庫原理及設計》 陶宏才編 清華大學出版社
《SQL Server 2000 實用教程》范立南編 清華大學出版社
《SQL Server 2000 編程員指南》李香敏編 北京希望電子出版社
《輕松搞定 SQL Server 2000 程序設計》Rebecca M.Riordan編
《軟體工程規范》Watts S.Humphrey編 清華大學出版社
《軟體工程理論與實踐》 Shari Lawrence Pfleeger編 清華大學出版社
《軟體需求分析》 Swapna Kishore編 機械工業出版社
《軟體工程思想》 林銳編

2、邏輯分析與詳細分析
2.1系統功能
(1)、零售前台(POS)管理系統,本系統必須具有以下功能:
 商品錄入:根據超巿業務特點制定相關功能,可以通過輸入唯一編號、掃描條形碼、商品名稱等來實現精確或模糊的商品掃描錄入。該掃描錄入方法可以充分保證各種電腦操作水平層次的人員均能准確快速地進行商品掃描錄入。
 收銀業務:通過掃描條形碼或者直接輸入商品名稱(對於同類多件商品採用一次錄入加數量的方式)自動計算本次交易的總金額。在顧客付款後,自動計算找零,同時列印交易清單(包括交易的流水賬號、每類商品的商品名、數量、該類商品的總金額、交易的時間、負責本次收銀的員工號)。如果顧客是本店會員並持有本人會員卡,則在交易前先掃描會員卡,並對所購物品全部實行95折優惠,並將所購物品的總金額累計到該會員的總消費金額中。 會員卡的有效期限為一年,滿一年未續卡者,該會員卡將被注銷。
 安全性:OS登陸、退出、換班與操作鎖定等許可權驗證保護;斷電自動保護最大限度防止意外及惡意非法操作。
 獨立作業:有的斷網收銀即在網路伺服器斷開或網路不通的情況下,收銀機仍能正常作業
(2)、後台管理系統,本系統必須具備以下功能
 進貨管理: 根據銷售情況及庫存情況,自動制定進貨計劃(亦可手工制定修改),可以避免盲目進貨造成商品積壓。 按計劃單有選擇性地進行自動入庫登記。 綜合查詢列印計劃進貨與入庫記錄及金額。
 銷售管理: 商品正常銷售、促銷與限量、限期及禁止銷售控制。 綜合查詢各種銷售明細記錄、各地收銀員收銀記錄以及交結賬情況等。 按多種方式統計生成銷售排行榜,靈活察看和列印商品銷售日、月、年報表。
 庫存管理: 綜合查詢庫存明細記錄。 庫存狀態自動告警提示。如庫存過剩、少貨、缺貨等。軟體為您預警,避免庫存商品積壓損失和缺貨。 庫存自動盤點計算。
 人員管理: 員工、會員、供貨商、廠商等基本信息登記管理。 員工操作許可權管理。 客戶銷售許可權管理。

(3)系統結構
系統總體結構

模塊子系統結構

功能描述:商品錄入子系統要求能快速錄入商品,因此必須支持條形碼掃描。

功能描述:收銀業務子系統能計算交易總額,列印交易清單,並根據會員卡打折。

功能描述:進貨管理子系統可以根據庫存自動指定進貨計劃,進貨時自動等級,以及提供查詢和列印計劃進貨與入庫記錄的功能。

功能描述:銷售管理子系統可以控制某商品是否允許銷售,查詢每種商品的銷售情況並產生年、月、日報表,同時可以生成銷售排行榜。

功能描述:庫存管理子系統提供查詢庫存明細記錄的基本功能,並根據庫存的狀態報警,以及自動盤點計算。

功能描述:人員管理子系統提供基本信息登記管理,員工操作許可權管理,客戶銷售許可權管理的功能。
2.2、流程圖
前台管理系統

頂層DFD圖

第0層DFD圖

第1層DFD圖

2.3、戶類型與職能
(1)、員工(營業員):
 通過商品條形碼掃描輸入商品到購買清單
 操作軟體計算交易總金額
 操作軟體輸出交易清單
 對會員進行會員卡掃描以便打折
(2)、:超市經理
 操作軟體錄入商品,供貨商,廠商
 操作軟體制定進貨計劃
 查詢列印計劃進貨與入庫記錄
 操作軟體控制商品銷售與否
 查詢列印銷售情況
 操作軟體生成銷售排行榜
 查詢庫存明細記錄
 根據軟體發出的庫存告警進行入貨
 操作軟體進行盤點計算
(3)、總經理:
 基本信息登記管理
 員工操作許可權管理
 客戶銷售許可權管理
2.4、統開發步驟
 確定參與者和相關的用況
 為每個用況設計過程
 建立順序圖,確定每個腳本中對象的協作
 創建類,確定腳本中的對象
 設計, 編碼, 測試, 集成類
 為過程編寫系統測試案例
 運行測試案例,檢驗系統
2.5、系統環境需求
 系統模式

本系統採用C/S模式作為開發模式
 硬體環境
伺服器端:
高性能的計算機一台,
普通的雙絞線作為連接。
客戶端: 普通的計算機或者工作站,
普通的雙絞線作為連接。
 軟體環境
伺服器端:安裝SQL Server 2000的伺服器版本,
安裝windows 2000伺服器版本,
配置了諾頓等必須的防毒軟體。
客戶端: 安裝SQL Server2000的伺服器版本,
安裝了VB等可視化開發工具軟體,
安裝windows2000伺服器版本。

2.6、系統安全問題
信息系統盡管功能強大,技術先進,但由於受到自身體系結構,設計思路以及運行機制等限制,也隱含許多不安全因素。常見因素有:數據的輸入,輸出,存取與備份,源程序以及應用軟體,資料庫,操作系統等漏洞或缺陷,硬體,通信部分的漏洞,企業內部人員的因素,病毒,「黑客」等因素。因此,為使本系統能夠真正安全,可靠,穩定地工作,必須考慮如下問題:為保證安全,不致使系統遭到意外事故的損害,系統因該能防止火,盜或其他形式的人為破壞。
 系統要能重建
 系統應該是可審查的
 系統應能進行有效控制,抗干擾能力強
 系統使用者的使用許可權是可識別的
3、基於UML的建模
3.1語義規則
用例模型(use cases view)(用例視圖)的基本組成部件是用例(use case)、角色(actor)和系統(system)。用例用於描述系統的功能,也就是從外部用戶的角度觀察,系統應支持哪些功能,幫助分析人員理解系統的行為,它是對系統功能的宏觀描述,一個完整的系統中通常包含若干個用例,每個用例具體說明應完成的功能,代表系統的所有基本功能(集)。角色是與系統進行交互的外部實體,它可以是系統用戶,也可以是其它系統或硬體設備,總之,凡是需要與系統交互的任何東西都可以稱作角色。系統的邊界線以內的區域(即用例的活動區域)則抽象表示系統能夠實現的所有基本功能。在一個基本功能(集)已經實現的系統中,系統運轉的大致過程是:外部角色先初始化用例,然後用例執行其所代表的功能,執行完後用例便給角色返回一些值,這個值可以是角色需要的來自系統中的任何東西。
UML:是一種標準的圖形化建模語言,它是面向對象分析與設計的一種標准表示;它不是一種可視化的程序設計語言而是一種可視化的建模語言;不是工具或知識庫的規格說明而是一種建模語言規格說明是一種表示的標准;不是過程也不是方法但允許任何一種過程和方法使用它。

用例(use case):

參與者(actor):

3.2、UML模型
3.21、系統UML模型

3.22、子系統UML模型
(1)零售前台(POS)管理系統用例視圖

(2)後台管理系統用例視圖

3.3、系統實現圖

4、超市銷售系統概念設計文檔
(1)、系統ER圖

(2)、系統ER圖說明
1) 商店中的所有用戶(員工)可以銷售多種商品,每種商品可由不同用戶(員工)銷售;
2) 每個顧客可以購買多種商品,不同商品可由不同顧客購買;
3) 每個供貨商可以供應多種不同商品,每種商品可由多個供應商供應。
(3)、視圖設計
1) 交易視圖(v_Dealing)——用於查詢交易情況的視圖;
2) 計劃進貨視圖(v_PlanStock)——用於查詢進貨計劃的視圖;
3) 銷售視圖(v_Sale)——用於查詢銷售明細記錄的視圖;
4) 入庫視圖(v_Stock)——用於查詢入庫情況的視圖。
5、邏輯設計文檔
(1)、系統關系模型
a) 商品信息表(商品編號,商品名稱,價格,條形碼,促銷價格,促銷起日期,促銷止日期,允許打折,庫存數量,庫存報警數量,計劃進貨數,允許銷售,廠商編號,供貨商編號)
b) 用戶表(用戶編號,用戶名稱,用戶密碼,用戶類型)
c) 會員表(會員編號,會員卡號,累積消費金額,注冊日期)
d) 銷售表(銷售編號,商品編號,銷售數量,銷售金額,銷售日期)
e) 交易表(交易編號,用戶名稱,交易金額,會員卡號,交易日期)
f) 進貨入庫表(入庫編號,入庫商品編號,入庫數量,單額,總額,入庫日期,計劃進貨日期,入庫狀態)
g) 供貨商表(供貨商編號,供貨商名稱,供貨商地址,供貨商電話)
h) 廠商表(廠商編號,廠商名稱,廠商地址,廠商電話)

(2)、系統資料庫表結構
資料庫表索引
表名 中文名
MerchInfo 商品信息表
User 用戶表
Menber 會員表
Sale 銷售表
Dealing 交易表
Stock 進貨入庫表
Provide 供貨商表
Factory 廠商表

商品信息表(MerchInfo)
欄位名 欄位類型 長度 主/外鍵 欄位值約束 對應中文名
MerchID int 4 P Not null 商品編號
MerchName Varchar 50 Not null 商品名稱
MerchPrice Money 4 Not null 價格
MerchNum Int 4 Not null 庫存數量
CautionNum Int 4 Not null 庫存報警數量
PlanNum Int 4 null 計劃進貨數
BarCode Varchar 50 Not null 條形碼
SalesProPrice Money 4 促銷價格
SalesProDateS Datetime 8 促銷起日期
SalesProDateE Datetime 8 促銷止日期
AllowAbate Int 4 Not null 允許打折
AllowSale Int 4 Not null 允許銷售
FactoryID Varchar 10 F Not null 廠商編號
ProvideID Varchar 10 F Not null 供貨商編號

用戶表(User)
欄位名 欄位類型 長度 主/外鍵 欄位值約束 對應中文名
UserID varchar 10 P Not null 用戶編號
UserName Varchar 25 Not null 用戶名稱
UserPW Varchar 50 Not null 用戶密碼
UserStyle Int 4 Not null 用戶類型

會員表(Menber)
欄位名 欄位類型 長度 主/外鍵 欄位值約束 對應中文名
MemberID Varchar 10 P Not null 會員編號
MemberCard Varchar 20 Not null 會員卡號
TotalCost Money 4 Not null 累積消費金額
RegDate Datetime 8 Not null 注冊日期

銷售表(Sale)
欄位名 欄位類型 長度 主/外鍵 欄位值約束 對應中文名
SaleID Varchar 10 P Not null 銷售編號
MerChID Varchar 10 F Not null 商品編號
SaleDate Datetime 8 Not null 銷售日期
SaleNum Int 4 Not null 銷售數量
SalePrice Money 4 Not null 銷售單額

交易表(Dealing)
欄位名 欄位類型 長度 主/外鍵 欄位值約束 對應中文名
DealingID Varchar 10 P Not null 交易編號
DealingPrice Money 4 Not null 交易金額
DealingDate Money 4 Not null 交易日期
MemberID Varchar 10 會員卡號
UserName Varchar 10 F Not null 用戶名稱

入庫紀錄表(Stock)
欄位名 欄位類型 長度 主/外鍵 欄位值約束 對應中文名
StockID Varchar 10 P Not null 入庫編號
MerchID Varchar 10 F Not null 入庫商品編號
MerchNum Int 4 Not null 入庫數量
MerchPrice Money 4 Not null 單額
TotalPrice Money 4 Not null 總額
StockDate Datetime 8 Datetime 入庫日期
PlanDate Datetime 8 Datetime 計劃進貨日期
StockState Int 4 Not null 入庫狀態

供貨商表(Provide)
欄位名 欄位類型 長度 主/外鍵 欄位值約束 對應中文名
ProvideID varchar 10 P Not null 供貨商編號
ProvideName Varchar 50 Not null 供貨商名稱
ProvideAddress Varchar 250 供貨商地址
ProvidePhone Varchar 25 供貨商電話

廠商表(Provide)
欄位名 欄位類型 長度 主/外鍵 欄位值約束 對應中文名
FactoryID varchar 10 P Not null 廠商編號
FactoryName Varchar 50 Not null 廠商名稱
FactoryAddress Varchar 250 廠商地址
FactoryPhone Varchar 25 廠商電話
6、物理設計文檔
/*----------創建資料庫----------*/
create database SuperMarketdb
on primary
(
name=SuperMarketdb,
filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.mdf',
size=100MB,
maxsize=200MB,
filegrowth=20MB
)
log on
(
name=SuperMarketlog,
filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.ldf',
size=60MB,
maxsize=200MB,
filegrowth=20MB
)
go

/*----------創建基本表----------*/
use [SuperMarketdb]
go
/*創建交易表*/
CREATE TABLE Dealing (
DealingID int identity(1,1) Primary key ,
DealingDate datetime NOT NULL ,
DealingPrice money NOT NULL ,
UserName varchar(25) NULL ,
MemberCard varchar(20) NULL
)
GO
/*創建廠商表*/
CREATE TABLE Factory (
FactoryID varchar(10) Primary key ,
FactoryName varchar(50) NOT NULL ,
FactoryAddress varchar(250) NULL ,
FactoryPhone varchar(50) NULL
)
GO
/*創建會員表*/
CREATE TABLE Member (
MemberID varchar(10) Primary key ,
MemberCard varchar(20) NOT NULL ,
TotalCost money NOT NULL ,
RegDate datetime NOT NULL
)
GO
/*創建商品信息表*/
CREATE TABLE MerchInfo (
MerchID int identity(1,1) Primary key ,
MerchName varchar(50) Unique NOT NULL ,
MerchPrice money NOT NULL ,
MerchNum int NOT NULL ,
CautionNum int NOT NULL ,
PlanNum int NOT NULL ,
BarCode varchar(20) Unique NOT NULL ,
SalesProPrice money NULL ,
SalesProDateS datetime NULL ,
SalesProDateE datetime NULL ,
AllowAbate int NOT NULL ,
AllowSale int NOT NULL ,
FactoryID int NOT NULL ,
ProvideID int NOT NULL
)
GO
/*創建供應商表*/
CREATE TABLE Provide (
ProvideID varchar(10) Primary key ,
ProvideName varchar(50) NOT NULL ,
ProvideAddress varchar(250) NULL ,
ProvidePhone varchar(25) NULL
)
GO
/*創建銷售表*/
CREATE TABLE Sale (
SaleID int identity(1,1) Primary key ,
MerChID int NOT NULL ,
SaleDate datetime NOT NULL ,
SaleNum int NOT NULL,
SalePrice money NOT NULL
)
GO
/*創建入庫表*/
CREATE TABLE Stock (
StockID int identity(1,1) Primary key ,
MerchID int NOT NULL ,
MerchNum int NOT NULL ,
MerchPrice money NULL ,
TotalPrice money NULL ,
PlanDate datetime NULL ,
StockDate datetime NULL,
StockState int NOT NULL
)
GO
/*創建用戶表*/
CREATE TABLE User (
UserID varchar(10) Primary key ,
UserName varchar(25) NOT NULL ,
UserPW varchar(50) NOT NULL ,
UserStyle int NOT NULL ,
)
GO

/*----------創建表間約束----------*/
/*商品信息表中廠商編號、供應商編號分別與廠商表、供應商表之間的外鍵約束*/
ALTER TABLE MerchInfo ADD
CONSTRAINT [FK_MerchInfo_Factory] FOREIGN KEY
(
[FactoryID]
) REFERENCES Factory (
[FactoryID]
),
CONSTRAINT [FK_MerchInfo_Provide] FOREIGN KEY
(
[ProvideID]
) REFERENCES Provide (
[ProvideID]
)
GO
/*銷售表中商品編號與商品信息表之間的外鍵約束*/
ALTER TABLE Sale ADD
CONSTRAINT [FK_Sale_MerchInfo] FOREIGN KEY
(
[MerChID]
) REFERENCES MerchInfo (
[MerchID]
) ON DELETE CASCADE
GO
/*入庫表中商品編號與商品信息表之間的外鍵約束*/
ALTER TABLE Stock ADD
CONSTRAINT [FK_Stock_MerchInfo] FOREIGN KEY
(
[MerchID]
) REFERENCES MerchInfo (
[MerchID]
) ON DELETE CASCADE
GO

/*----------創建索引----------*/
/*在交易表上建立一個以交易編號、交易日期為索引項的非聚集索引*/
CREATE nonclustered INDEX IX_Dealing ON Dealing(DealingID, DealingDate)
GO
/*在商品信息表上建立一個以商品編號為索引項的非聚集索引*/
CREATE nonclustered INDEX IX_MerchInfo ON MerchInfo(MerchID)
GO
/*在銷售表上建立一個以銷售編號、銷售日期為索引項的非聚集索引*/
CREATE nonclustered INDEX IX_Sale ON Sale(SaleID, SaleDate)
GO
/*在入庫表上建立一個以入庫編號、入庫日期、商品編號為索引項的非聚集索引*/
CREATE nonclustered INDEX IX_Stock ON Stock(StockID, StockDate, MerchID)
GO

/*----------創建視圖----------*/
/*創建用於查詢交易情況的視圖*/
CREATE VIEW v_Dealing
AS
SELECT DealingDate as 交易日期,
UserName as 員工名稱,
MemberCard as 會員卡號,
DealingPrice as 交易金額
FROM Dealing
GO
/*創建用於查詢進貨計劃的視圖*/
CREATE VIEW v_PlanStock
AS
SELECT Stock.StockID as SID,
MerchInfo.MerchName as 商品名稱,
MerchInfo.BarCode as 條形碼,
Factory.FactoryName as 廠商,
Provide.ProvideName as 供貨商,
Stock.MerchNum as 計劃進貨數量,
Stock.PlanDate as 計劃進貨日期
FROM Stock,MerchInfo,Provide,Factory
Where Stock.MerchID = MerchInfo.MerchID
and Provide.ProvideID=MerchInfo.ProvideID
and Factory.FactoryID=MerchInfo.FactoryID
and Stock.StockState=0
GO
/*創建用於查詢銷售明細記錄的視圖*/
CREATE VIEW v_Sale
AS
SELECT MerchInfo.MerchName as 商品名稱,
MerchInfo.BarCode as 條形碼,
MerchInfo.MerchPrice as 商品價格,
Sale.SalePrice as 銷售價格,
Sale.SaleNum as 銷售數量,
Sale.SaleDate as 銷售日期
FROM Sale INNER JOIN
MerchInfo ON Sale.MerChID = MerchInfo.MerchID
GO
/*創建用於查詢入庫情況的視圖*/
CREATE VIEW v_Stock
AS
SELECT MerchInfo.MerchName as 商品名稱,
MerchInfo.BarCode as 條形碼,
Factory.FactoryName as 廠商,
Provide.ProvideName as 供貨商,
Stock.MerchPrice as 入庫價格,
Stock.MerchNum as 入庫數量,
Stock.TotalPrice as 入庫總額,
Stock.StockDate as 入庫日期
FROM Stock,MerchInfo,Provide,Factory
Where Stock.MerchID = MerchInfo.MerchID
and Provide.ProvideID=MerchInfo.ProvideID
and Factory.FactoryID=MerchInfo.FactoryID
and Stock.StockState=1
GO

7、小結
和傳統管理模式相比較,使用本系統,毫無疑問會大大提高超市的運作效率,輔助提高超市的決策水平,管理水平,為降低經營成本, 提高效益,減少差錯,節省人力,減少顧客購物時間,增加客流量,提高顧客滿意度,增強超市擴張能力, 提供有效的技術保障。
由於開發者能力有限,加上時間倉促,本系統難免會出現一些不足之處,例如:
 本系統只適合小型超市使用,不能適合中大型超市使用;
 超市管理系統涉及范圍寬,要解決的問題多,功能復雜,實現困難,但由於限於時間,本系統只能做出其中的一部分功能;
對於以上出現的問題,我們深表歉意,如發現還有其它問題,希望老師批評指正。

㈢ sql server 2000 資料庫實訓報告

要求學生學習並掌握現代計算機信息系統所必備的基礎理論、專業知識、主要的實現手段。具有比較熟練的資料庫應用,信息系統管理技能,並能進行基本的信息系統工程中的需求研究、開發與維護。 二. 專業方向 1.微軟SQL SERVER方向/ORACLE方向 2.信息管理方向 3.財務信息管理方向 三. 具體介紹 (一)微軟SQL SERVER方向 這個方向是和微軟ATA聯合辦學,參加微軟考證,課程考試合格,可以獲取微軟的MCDBA認證證書。 1. 知識能力結構 (1) 具有熟練應用和操作計算機的能力。 (2) 具有較好的英語聽、閱讀能力及簡單的寫作能力。 (3) 熟悉.NET框架平台,熟練基於.NET框架的程序開發。 (4) 熟練掌握SQL Server資料庫,能夠對資料庫進行各種操作。 (5) 掌握計算機網路基本概念,掌握區域網的組建與管理技術,熟練掌握網路操作系統的使用。 2. 就業方向: (1) 各企業事業單位勞動、人事、檔案、財務管理、電子商務及辦公自動化。 (2) 企業ERP系統的開發、實施與維護。 (3)網路組建運行維護、信息管理及資料庫建設。 (4)企業電子商務的實施與系統維護 3. 主要課程介紹 (1)SQL Server 2000 設計與應用 主要講授資料庫技術的基本概念,數據模型和關系資料庫模型,關系資料庫設計理論,SQLserver資料庫設計,數據查詢,高級SQL語言查詢,存儲過程,應用資料庫設計。 (2) ADO.NET 程序設計 操縱資料庫是編寫應用程序的重要環節,單獨開設一門課程講解如何編寫高效、安全、穩定的面向數據的應用程序。 (3)基於.NET 的Web 應用程序設計 介紹設計基於.NET 的Web 應用程序的基本概念,方法和相關配置,是本專業重要的課程。 4. 實踐訓練課程 SQL SERVER程序設計實訓、ASP.NET課程實訓、畢業綜合實訓。 (二)ORACLE方向 這個方向是和ORACLE聯合辦學,參加ORACLE考證,課程考試合格,可以獲取ORACLE的資料庫工程師證書。 1.知識能力結構 (1) 具有熟練應用和操作計算機的能力。 (2) 具有較好的英語聽、閱讀能力及簡單的寫作能力。 (3) 熟悉ORACLE框架平台,熟練基於ORACLE框架的程序開發。 (4) 熟練掌握SQL Server資料庫,能夠對資料庫進行各種操作。 (5) 掌握計算機網路基本概念,掌握區域網的組建與管理技術,熟練掌握網路操作系統的使用。 2.就業方向: (1) 各企業事業單位勞動、人事、檔案、財務管理、電子商務及辦公自動化。 (2) 軟體程序的設計、開發、調試與維護。 (3) 金融證券行情接收、分析、交易,人口、工業、農業等普查。 (4) 工業生產過程自動化控制、農業大棚管理、環境監測、天文計算等。 (5) 網路組建運行維護、信息管理及資料庫建設。 3.主要課程介紹 (1)ORACLE 資料庫及應用 本課程主要介紹ORACLE數據的使用,其中包括SQL語言的基礎基本數據定義、數據操作語句。

㈣ 求一份SQL server資料庫課程設計報告

2.2需求分析
(1)需求分析的任務
需求分析的任務是通過詳細調查現實世界要處理的對象(組織、部門、企業等),充分了解原系統(手工系統或計算機系統)工作概況,明確用戶的各種需求,用通俗的話來講,就是分析了解用戶關心什麼,用戶需要什麼樣的結果,然後在此基礎上分析和設計新系統的資料庫。
需求分析的重點是調查、收集與分析用戶在數據管理中的信息要求、處理要求、安全性與完整性要求。
 信息要求
是指用戶需要從資料庫中獲得信息的內容與性質。由用戶的信息要求可以導出數據要求,即在資料庫中需要存儲哪些數據。
 處理要求
是指用戶要求完成什麼處理功能,對處理的響應時間有什麼要求,處理方式是批處理還是聯機處理。
 安全性與完整性要求
一是指用戶對系統和數據有什麼安全性要求,如不同級別的用戶具有什麼操作許可權和使用哪些數據;二是對數據的輸入和存儲的什麼要求,如數據的長度和范圍、數據的有效性、一致性和唯一性等。
確定用戶的最終需求其實是一件很困難的事,這是因為一方面用戶缺少計算機知識,開始時無法確定計算機究竟能為自己做什麼,不能做什麼,因此無法一下子准確地表達自己的需求,他們所提出的需求往往不斷地變化。另一方面設計人員缺少用戶的專業知識,不易理解用戶的真正需求,甚至誤解用戶的需求。因此設計人員必須與用戶不斷深入地進行溝通和交流,才能逐步得以確定用戶的實際需求。
(2)需求分析的基本步驟
1.調查與初步分析用戶的需求,確定系統的功能邊界
⑴首先調查組織機構情況
⑵然後調查各部門的業務活動情況
⑶協助用戶明確對新系統的各種要求
⑷確定新系統的結構和功能邊界,確定哪些功能由計算機完成或將來由計算機完成,哪些活動由人工完成。

常用的調查方法有:
⑴跟班作業
⑵開調查會
⑶請專人介紹
⑷詢問
⑸問卷調查
⑹查閱記錄
2.生成數據字典
1)數據項條目:數據項是不可再分的數據單位,它直接反映事物的某一特徵。
2)數據結構條目:反映了數據之間的組合關系。
3)數據流條目:數據流是數據結構在系統內傳輸的路徑。
4)數據文件條目:數據文件是數據項停留或保存的地方,也是數據流的來源和去向之一。
5)處理過程條目。
(3) 案例分析:教學管理系統資料庫的需求分析
用戶的需求具體體現在各種信息的提供、保存、更新和查詢上,這就要求資料庫的結構能充分滿足各種信息的輸出和輸入。需求分析階段主要是收集基本數據,確定數據結構及數據處理的流程,組成一份詳盡的數據字典,以便為後面的概念設計和邏輯設計打下基礎。

2.3概念結構設計
概念結構設計是對收集來的信息和數據進行分析整理,確定實體、屬性及聯系,形成獨立於計算機的反映用戶觀點的概念模型。概念設計的重點在於信息結構的設計,它是整個資料庫系統設計的關鍵。
(1)概念結構設計的目標和任務
概念結構設計的目標是產生反映系統信息需求的資料庫概念結構,即概念模式。概念結構是獨立於DBMS和使用的硬體環境的。在這一階段,設計人員要從用戶的角度看待數據以及數據處理的要求和約束,產生一個反映用戶觀點的概念模式,然後再把概念模式轉換為邏輯模式。
概念模型的表示方法很多,其中最著名、最常用的表示方法為實體-聯系方法,這種方法也稱為E-R模型方法,該方法採用E-R圖描述概念模型。
E-R圖提供了表示實體、屬性和聯系的方法,它由以下三個組件構成:
 實體---用矩形表示,矩形框內寫明實體名。
 屬性---用橢圓形表示,並用無向邊將其與相應的實體連接起來。
 聯系---用菱形表示,菱形框內寫明聯系名,並用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯系的類型(1:1、1:n或m:n)。
例如教學管理系統中的學生實體與課程實體的E-R圖如下圖表示:

(2)概念結構設計的過程
●數據抽象
概念結構是對現實世界的一種抽象,所謂抽象就是對實際的人、事、物和概念進行加工處理,抽取所關心的共同特性,用各種概念精確的加以描述,組成某種模型。
在需求分析中,已初步得到了有關各類實體、實體間的聯系以及描述它們性質的數據元素,統稱數據對象。
在這一階段中,首先要從以上數據對象中找出:系統有哪些實體?每個實體有哪些屬性?哪些實體間存在聯系?每一種聯系有哪些屬性?然後就可以做出系統的局部E-R模型和全局E-R模型。
● 局部E-R模型設計
局部E-R模型設計是從數據流圖出發確定實體和屬性,並根據數據流圖中表示的對數據的處理、確定實體之間的聯系。
設計局部E-R圖的步驟是:
1.確定實體類型和屬性
實體和屬性之間沒有嚴格的區別界限,但對於屬性來講,可以用下面的兩條准則作為依據:
1)作為屬性必須是不可再分的數據項,也就是屬性中不能再包含其他的屬性。
2)屬性不能與其他實體之間具有聯系。

2.確定實體間的聯系
依據需求分析結果,考察任意兩個實體類型之間是否存在聯系,若有,則確定其類型(一對一,一對多或多對多)。
3.畫出局部E-R圖
確定了實體及實體間的聯系後,可用E-R圖描述出來。形成局部E-R圖之後,還必須返回去徵求用戶意見,使之如實地反映現實世界,同時還要進一步規范化,以求改進和完善。每個局部E-R圖必須滿足:
(1)對用戶需求是完整的。
(2)所有實體、屬性、聯系都有惟一的名字。
(3)不允許有異名同義、同名異義的現象。
● 全局E-R模型的設計
各個局部E-R模型建立好後,還需要對它們進行合並,集成為一個整體的數據概念結構,即總E-R圖。在合並全局E-R模型時,應注意檢查和消除屬性、命名的沖突及數據冗餘。
(3)案例分析:教學管理系統資料庫的概念結構設計
通過上面的需求分析,就可以進行資料庫的概念結構設計,先對現實當中的人、事、物和概念進行抽象的加工處理,抽取所關心的共同特性,用各種概念進行描述,從中找出能夠滿足用戶需求的各種實體,以及它們之間的關系,並用實體-聯系圖表示出來(即畫出E-R圖),為後面的邏輯結構設計打下基礎。
1、確定實體及其屬性
經過對人工進行的教學管理系統的業務調查,得知系統主要涉及以下幾個實體:
● 學生實體:屬性主要包括班級名稱、學號、姓名、性別、出生日期、民族、政治面貌、來源地、入學成績、學生類別、電話、備注等。
● 教師實體:屬性主要包括教師號、教師姓名、性別、出生日期、所在系、職稱
● 班級實體:屬性主要包括系部名稱、班級號、班級名稱、班主任、學生人數、備注等。
● 系部實體:屬性主要包括系號、系部名稱、班級數等。
● 課程實體:屬性主要包括課程號、課程名、考核方式、學分、學時數等。

2、確定實體之間的聯系
2.4 邏輯結構設計
(1)邏輯結構設計的目標和任務
邏輯結構設計的目標就是把概念結構設計階段設計好的E-R圖轉換為特定的DBMS所支持的數據模型(即層次、網狀、關系模型之一),並對其進行優化。
概念模型向邏輯模型的轉換過程分為3步進行:
(1)把概念模型轉換為一般的數據模型。
(2)將一般的數據模型轉換成特定的DBMS所支持的數據模型。
(3)通過優化方法將其轉化為優化的數據模型。
(2) 概念模型轉換為一般的關系模型
1.實體的轉換規則
將E-R圖中的每一個常規實體轉換為一個關系,實體的屬性就是關系的屬性,實體的碼就是關系的碼。
2.實體間聯系的轉換規則
1)一個1:1聯系可以轉換為各自獨立的關系模式,也可以與任意一端所對應的關系模式合並。
2)一個1 : n聯系可以轉換為各自獨立的關系模式。
3)一個m : n聯系轉換為一個關系模式。轉換的方法為:與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,新關系的碼為兩個相連實體碼的組合
(3) 案例分析:教學管理系統資料庫的邏輯結構設計
邏輯結構設計的任務是把概念結構設計階段設計好的E-R圖轉換為特定的DBMS所支持的數據模型(即層次、網狀、關系模型之一),並對其進行優化,得到滿足用戶要求和系統功能需求的關系模式。
1、 E-R模型轉換為關系模式
將E-R模型轉換成初始關系模式的一般規則是:系統中各個實體轉換為對應的關系模式;實體之間多對多的聯系也轉換為關系模式。
根據轉換規則,可以將系部、班級、學生、教師、課程五個實體轉換成與之對應的五個關系模式;而將學生與課程兩者之間多對多的選修關系以及教師、班級和課程三者之間多對多的開課關系也轉換為關系模式。
2、關系模式的設計
根據上述的轉換結果,在對關系模式中數據進行規范化處理後,得到了符合第三範式的關系模式如下:
學生:{學號、姓名、性別、出生日期、民族、政治面貌、來源地、入學成績、學生類別、班級名稱、電話、備注}
班級:{班級號、班級名稱、班主任、學生人數、系部名稱、備注}
系部:{系號、系部名稱、班級數}
教師:{教師號、教師姓名、性別、出生日期、所在系、職稱}
課程:{課程號、課程名、考核方式、學分、學時數}
選修:{學號、課程號、成績}
開課: {教師號、班級名稱、課程號、開課學期、授課地點}
每個關系模式中帶下劃線的屬性或屬性的組合表示主鍵、帶雙波浪線的屬性表示與之關聯的表的外鍵。
根據系統功能需求,數據採用SQL Server 2000所支持的實際數據模型,也就是資料庫的邏輯結構。啟動SQL Server 2000,創建一個資料庫命名為:jxgl。該資料庫中各個數據表的結構如下面各個表格所示。每個表格對應於資料庫中的一個表。
3、將關系模式轉換為資料庫中的表
按照關系數據模型的結構,將關系模式轉換為關系資料庫中的數據表,轉換的規則是:一個關系模式轉換為一個數據表,關系模式中的每個屬性轉換為數據表中的一個列。同時設置表中各個列的名稱、數據類型、數據寬度以及數據規則,得到如下幾個表:

學生表(student)
列名 類型 寬度 規則
班級名稱 CHAR 20 內容取自班級信息表的班級名稱
學號 CHAR 10 主鍵、長度為10個字元
姓名 CHAR 8
性別 CHAR 2 非空、只能取「男」或「女」
出生日期 DATETIME
民族 CHAR 4 假定只能取以下之一:漢、壯、白、回、苗、滿、其它
政治面貌 CHAR 4 只能取以下之一:黨員、團員、群眾
來源地 CHAR 10
入學成績 INT
學生類別 CHAR 10 假定只能取以下之一:本科、大專(普)、大專(業)、中專、技校、函授、其它
電話 CHAR 11
備注 CHAR 10
註:(1)該表存放全校所有學生的基本信息,每個學生產生一條記錄。
(2)學號的前4位表示年級,第5--8位表示班級號(其中第5-6位表示系號, 第7-8位表示系內班級號),最後兩位是班內的學生編號,在輸入記錄內容時應加以區分。

班級表(class)
列名 類型 寬度 規則
系部名稱 CHAR 10 非空、內容取自系部信息表的系部名稱
班級號 CHAR 4 非空、長度為4個字元
班級名稱 CHAR 20 主鍵
班主任 CHAR 8
學生人數 INT
備注 CHAR 10
註:(1)該表存放全校所有班級的信息,每個班級產生一條記錄。
(2)班級號的前2位表示系號,後兩位為系內的班級編號,在輸入記錄內容時應加以區分。

系部表(department)
列名 類型 寬度 規則
系號 CHAR 2 非空、長度為2個字元
系部名稱 CHAR 10 主鍵
班級數 INT
註:該表存放某校所有的系部信息,每個系部產生一條記錄。

教師表(teacher)
列名 類型 寬度 規則
教師號 CHAR 4 主鍵、長度為4個字元
姓名 CHAR 8
性別 CHAR 2 非空、只能取「男」或「女」
出生日期 DATETIME
職稱 CHAR 6 只能取以下之一:教授、副教授、講師、助教、其他
所在系 CHAR 20 非空、外鍵(內容取自系部表的系部名稱)

課程表(course)
列名 類型 寬度 規則
課程號 CHAR 4 主鍵、長度為4個字元
課程名 CHAR 20
考核方式 CHAR 4 假定只能取以下之一:考試、考查、其他
學分 INT 非空
學時數 INT
註:該表存放某校所有的課程信息,每門課產生一條記錄。

成績表(SC)
列名 類型 寬度 規則
學號 CHAR 8 主鍵、內容取自學生信息表的學生姓名
課程號 CHAR 20 主鍵、內容取自課程信息表的課程名稱
成績 INT
註:該表存放某校所有學生的成績信息,每個學生學習每門課程產生一條記錄。

開課信息表(tcc)
列名 類型 寬度 規則
教師號 CHAR 4 主鍵、內容取自教師信息表的教師號
課程號 CHAR 4 主鍵、內容取自課程信息表的課程號
班級號 CHAR 4 主鍵、內容取自班級信息表的班級號
開課學期 CHAR 20
授課地點 CHAR 20
註:該表存放某校開設課程的信息,每個教師教授某個班級的某門課產生一條記錄。

2. 5 物理設計
資料庫的物理設計目標是在選定的DBMS上建立起邏輯設計結構確立的資料庫結構,這一過程也稱為資料庫的物理實現。它主要包括兩項工作:
一是根據資料庫的結構、系統的大小、系統需要完成的功能及對系統的性能要求,決定選用哪個資料庫管理系統。目前,資料庫產品市場上比較好的產品有:Microsoft SQL Server、Oracle、IBM DB/2,SYBASE等。
二是根據選用的資料庫管理系統的資料庫實現方法來建立用戶資料庫,即創建所需要的資料庫、表及其他資料庫對象。
本系統選用的DBMS是SQL Server 2000,並在該系統上創建用戶資料庫jxgl以及下屬的7個用戶表:student、class、department、teacher、course、sc、tcc,各個表的結構按2.4節第3點各表給出的具體內容設定。

2. 5 實訓二
以小組討論的形式,完成人事工資管理系統用戶資料庫的設計,要求個人寫出用戶資料庫設計的文檔(包括資料庫的需求分析、概念設計、邏輯設計和物理設計,表達方法可參考本章相應內容的案例分析部分),每個小組上交一份本系統用戶資料庫包括的數據表。

第三章 資料庫的數據完整性設計
3.1數據完整性的基本概念及內容
正確創建資料庫後,需要考慮數據的完整性、數據的安全性等要求。數據的完整性主要指數據的正確性、有效性、相容性,強制實施數據完整性可以確保資料庫中的數據的質量。
進行數據完整性設計主要考慮以下幾個方面的內容:
1)表名惟一;
由系統強制實施控制。
2)列名惟一;()
由系統強制實施控制。
3)數據行惟一;
通過設置主鍵約束或觸發器來實施控制。
4)列值非空;
通過設置非空約束來實施控制。
5)列值惟一性
通過設置惟一約束或惟一索引來實施控制。
6)列值滿足一定的條件
通過設置檢查約束或觸發器來實施控制。
7)數據的一致性和有效性
通過設置外鍵約束或觸發器來實施控制。
至於具體要對資料庫的哪一個表的哪一項數據進行什麼樣的數據完整性設計,還應根據用戶的需求來考慮和確定。
3.2 數據完整性的分類與實現方法
在SQL Server關系資料庫中,數據完整性分為以下三類:
1. 域完整性
域完整性是指一個列的輸入有效性,是否允許空值。實現域完整性的方法主要有:限制數據類型(通過設定列的數據類型)、限定格式(通過CHECK約束和規則)或可能值的范圍(通過 FOREIGN KEY 約束、CHECK 約束、DEFAULT定義、NOT NULL定義和規則)以及程序控制。
2. 實體完整性
實體完整性是指保證表中所有的行唯一。實現實體完整性的方法主要有:索引、UNIQUE約束、PRIMARY KEY約束或 IDENTITY屬性以及程序控制。
3. 參照完整性
參照完整性也叫引用完整性。參照完整性確保主鍵(被引用表)和外鍵(引用表)之間的參照關系。它涉及兩個或兩個以上表數據的一致性維護。如student表(稱為引用表、參照表或子表)的class_id列就是參照class表(稱為被引用表、被參照表或父表)的外鍵。參照完整性可以實現以下兩種控制:
(1)存在外鍵時,被參照表中的這一行不能被刪除,主鍵值也不能改變 (以student和class表的「班級名稱」列為例說明)。
(2)若在被參照表中不存在包含相應主鍵的行時,一個外鍵值不能插入參照表中(MsgBox "添加記錄成功!", vbOKOnly + vbInformation, "提示"
End Sub

Private Sub Command5_Click()
rs.Close
Unload Me
End Sub

Private Sub Form_Load()
rs.CursorLocation = adUseClient ' 設置在客戶端創建游標
rs.CursorType = adOpenKeyset '設置游標類型為鍵集類型
rs.LockType = adLockOptimistic '設置打開記錄集時的鎖定類型為樂觀鎖,在執行UPdate方法前不鎖定編輯的數據
rs.Open "select * from teacher", cnn
'在表格上顯示class表的記錄內容
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
'將表格上的數據與文本框或下拉列表框綁定
Set Text1.DataSource = rs
Text1.DataField = "教師號"
Set Text2.DataSource = rs
Text2.DataField = "姓名"
Set Combo1.DataSource = rs
Combo1.DataField = "所在系"
Set Text3.DataSource = rs
Text3.DataField = "出生日期"
Set Text4.DataSource = rs
Text4.DataField = "從教日期"
Set Combo2.DataSource = rs
Combo2.DataField = "性別"
Set Combo3.DataSource = rs
Combo3.DataField = "職稱"
Set Combo4.DataSource = rs
Combo4.DataField = "政治面貌"
Set Combo5.DataSource = rs
Combo5.DataField = "學歷"
Set Text7.DataSource = rs
Text7.DataField = "家庭住址"
Set Text5.DataSource = rs
Text5.DataField = "聯系電話"
Set Text6.DataSource = rs
Text6.DataField = "備注"

'下拉列表框提供班級名稱
Combo1.Clear
rs1.Open "select 系部名稱 from department", cnn
While Not rs1.EOF()
Combo1.AddItem Trim(rs1.Fields("系部名稱"))
rs1.MoveNext
Wend
rs1.Close
End Sub

對其餘幾個表的數據進行增、刪、改操作的窗體的設計方法與上述類擬。

㈤ 求一篇基於web的資料庫設計社會實踐調查報告

《基於web的資料庫設計實踐》
The Database Design Based On WEB Used In Remote Concurrent Design

Abstract: the paper analyses the database characteristics used in the remote concurrent proct design system based on Internet, deeply researches the database structure, interface and the method of the data safety.

Keywords: Internet, remote concurrent design, database based on Web

近年來,隨著Web技術的蓬勃發展,人們已不滿足於只在瀏覽器上獲取靜態的信息,想要通過它發表意見、查詢數據。隨著電子商務的普及人們開始參與一些網路商務活動,這就迫切需要實現Web與資料庫的互連[1]。產品異地並行設計對數據的要求有一定的特殊性,主要有(1)產品數據多種多樣。產品設計,特別是機械產品設計常常是大型而又復雜,在異地通過不同的設計小組,按不同的分工設計同一產品,所要管理和通訊的數據類型隨著分工的不同而有不同的表現形式,如常規的數字組成的數據集,以圖形、圖象形式表達的產品模型數據,以文字形式描述設計的文檔,還有圖表、公式等形式,復雜多樣。(2)產品數據交換頻繁,流量大。產品設計是一個協同工作的創造性集體智慧凝聚的過程,要使設計順利進行,分布在異地的不同設計小組之間就要經常性地進行數據交換,並且有些形式表達的產品數據是較大的文件。(3)產品數據的一致性要求高。分工合作的不同設計小組之間的設計任務是彼此關聯,互相依賴的。如果其中一個數據改變了,相關聯的數據必須跟著改變,在Web資料庫設計時必須考慮數據的一致性問題。(4)產品數據的並發性訪問頻繁。由於異地產品設計的特殊屬性,數據的並發性訪問非常頻繁。所以,進行基於Internet的產品異地並行設計的Web資料庫設計與一般的電子商務不同,要充分考慮以上屬性。本文結合我們近期開發的機械產品異地並行設計系統(RCDS, Remote Concurrent Design System),綜合比較了多種當今流行的網路數據存取技術,設計出可靠安全的資料庫系統。

1 Web資料庫連接方案

1.1資料庫連接方案選擇

RDO、DAO和ADO是比較常見的Web資料庫訪問技術。

DAO (Data Access Objects) 數據訪問對象是第一個面向對象的介面,它含有 Microsoft Jet 資料庫引擎(由 Microsoft Access 所使用),並允許 Visual Basic 開發者通過 ODBC 象連接到其他資料庫一樣,直接訪問到 Access 表。DAO 最適用於單系統應用程序或小范圍本地分布使用,對大范圍的異地並行設計顯得功能不夠強大。

RDO (Remote Data Objects) 遠程數據對象是一個到 ODBC 的、面向對象的數據訪問介面,它同易於使用的 DAO style組合在一起,提供了一個介面,形式上展示出所有 ODBC 的底層功能和靈活性。RDO 在訪問 Jet 或 ISAM 資料庫方面有一定的限制,而且它只能通過現存的 ODBC 驅動程序來訪問關系資料庫。但是,RDO 已被證明是許多 SQL Server、Oracle

以及其他大型關系資料庫開發者經常選用的最佳介面。RDO 提供了用來訪問存儲過程和復雜結果集的更多和更復雜的對象、屬性,以及方法。對異地並行設計Web資料庫來說也不是十分理想。

ADO(ActiveX Data Objects)為ActiveX組件中資料庫訪問組件,ASP就是通過它實現對資料庫的訪問。ADO 是 DAO、RDO 的後繼產物。ADO 2.0在功能上與 RDO 更相似,而且一般來說,在這兩種模型之間有一種相似的映射關系。ADO 「擴展」了 DAO 和 RDO 所使用的對象模型,這意味著它包含較少的對象、更多的屬性、方法(和參數),以及事件。例如,ADO 沒有與 rdoEngine 和 rdoEnvironment 對象相等同的對象,可以包含 ODBC 驅動程序管理器和 hEnv 介面。盡管事實上介面可能是通過 ODBC OLE DB 服務提供程序實現的,但目前也不能從 ADO 中創建 ODBC 數據源。ADO 是為 Microsoft最新和最強大的數據訪問範例 OLE DB 而設計的,是一個便於使用的應用程序層介面。OLE DB 為任何數據源提供了高性能的訪問,這些數據源包括關系和非關系資料庫、電子郵件和文件系統、文本和圖形、自定義業務對象等等。ADO 在關鍵的 Internet 方案中使用最少的網路流量,並且在前端和數據源之間使用最少的層數,所有這些都是為了提供輕量、高性能的介面。同時 ADO 使用了與 DAO和 RDO相似的約定和特性,簡化的語義使它更易於學習。

ADO最早是在IIS中引入的,主要用於ASP,用ADO可以使伺服器端的腳本通過ODBC存取和操縱資料庫伺服器的數據。使用ADO的對象可以建立和管理資料庫的連接,從資料庫伺服器請求和獲取數據,執行更新、刪除、添加數據、獲取ODBC的錯誤信息等。ADO是ASP方案中最具吸引力的資料庫連接控制項,它為用戶提供了連接任何兼容ODBC的資料庫以及創建全功能資料庫應用程序的能力。

ADO具有簡單易用、高速、佔用資源少等的優點。不同於DAO和RDO,ADO有著更高的執行效率。ADO 對象模型如圖1a所示。每個 Connection、Command、Recordset 和 Field 對象都有 Properties 集合,如圖1b所示。

a) b)

圖1 ADO對象模型及屬性

應該說,ADO是微軟的下一代資料庫連接技術,用來全面取代RDO和DAO的數據訪問工具。從發展趨勢來看,ADO今後將逐步替代老的DAO特別是RDO數據訪問介面,成為新的遠程數據訪問方法。所以,選擇ADO作為產品異地並行設計的Web資料庫介面技術是合適的。

1.2 ADO應用分析

ADO 並不是自動和現存的數據訪問應用程序代碼兼容的。當 ADO 封裝 DAO 和 RDO 的功能性的時候,必須將許多語言要素轉換為 ADO 語法。在某些情況下,這將意味著要對現存代碼的某些功能做一個簡單轉換。在其他情況下,最佳的做法可能是用 ADO 的新功能重寫該應用程序。

包含在 DAO 和 RDO 模型中的許多功能被合並為單個對象,這樣就生成了一個簡單得多的對象模型。然而,由於這個原因,起初可能會覺得找到合適的 ADO 對象、集合、屬性、方法,或事件非常困難。與 DAO 和 RDO不同的是,盡管 ADO 對象是分層結構的,但在分層結構范圍之外也是可以創建的。同時,也應當注意,ADO 當前並不支持 DAO 的所有功能。ADO 主要包括 RDO 風格的功能性,以便和 OLE DB 數據源交互,另外還包括遠程和 DHTML 技術。

一般說來,在 ADO 的演化過程中,馬上把大多數 DAO 應用程序(except possibly是那些使用 ODBCDirect 的應用程序)移植到 ADO 上為時太早,因為當前的 ADO 並不支持數據定義 (DDL)、用戶、組等等。不過,如果只將 DAO 用於客戶—伺服器應用程序,並不依賴於 Jet 資料庫引擎或不使用 DDL,那麼就可能移植到 ADO。最終,Microsoft 將提供一個 ADO DDL 組件來幫助進行 DAO 到 ADO 的移植,並為 OLE DB 供應商提供一般的 DDL 支持。

在ASP中使用ADO技術來訪問Web資料庫,其應用前景是無可估量的。原理圖如下:

圖2 ADO在ASP程序中的應用

2 Web資料庫管理系統

常見的資料庫類型有面向對象的資料庫(OODB)和關系型資料庫。OODB對主流資料庫應用開發來說是相當新穎的,使用OODB使應用程序中的數據對象與現實世界中的對象一一對應,面向對象資料庫擴充了對象模型。一個常用的對象模型是由對象資料庫管理組(ODMG)開發出來,具有比傳統的關系資料庫更優越的性能,但畢竟在目前還是一種探索階段,暫時還未有相應的技術普及。

關系資料庫已經是資料庫體系的世界標准。當開發一個數據驅動應用程序時,大多數情況下用戶需要訪問網路(如Internet、Intranet等)上的數據信息,就RCDS就是建立在網路的信息通訊之上,是完全的客戶機/伺服器應用程序。

SQL Server是一個可縮放、高性能的關系型資料庫管理系統(RDBMS),它的設計是為了滿足分布式客戶/伺服器計算的需要,允許客戶應用程序使用幾個特定的工具和技術控制從伺服器檢索的數據。這些包括觸發器、存儲過程和規則的選項。因此,系統採用MS SQL Server7.0作為後台資料庫。

3 Web資料庫結構

數據模型通常有層次模型、網狀模型、關系模型及OO(面向對象)模型等。其中關系模型是建立在數學概念基礎之上的一種模型,由若干個關系框架組成的集合,它也是到目前為止最為成熟的一種資料庫類型。本文RCDS採用MS SQL Server作為後台資料庫,根據資料庫工具和資料庫特點,開發出一套可靠健壯的數據存儲方案。

整個資料庫共有AdminData、ChatNames、DesignUnits、Message、OnlineUnits、Procts、RqtTasks、RqtTaskUnits、RqtDesignUnits、ShareData、Tasks、TaskUnits和UploadFiles等表格。在建立數據模型的時候首先考慮是要避免重復數據,也就是建立規范化資料庫。規范化資料庫可以通過被稱為範式水平的指標來衡量,級別有第一範式、第二範式和第三範式,通常第三範式就是要達到的目標,因為它提供了數據冗餘和開發簡易性之間的最好折衷。

RCDS資料庫正是按照第三範式標准來設計的,它保證了模型的精簡和表格的緊湊性。而第三範式標准也最大發揮了關系資料庫的優勢,圖3是部分表格的視圖鏈接情況。

圖3 關系表格視圖

4.1 並發控制的處理

在多個用戶同時訪問一個資料庫時就產生並發問題,特別是在其中一些用戶對資料庫有添加或刪除修改等操作時,那麼其他所獲得的數據可能是一塌糊塗,甚至造成整個數據訪問的沖突、終止,從而使系統發生混亂以至崩潰。RCDS採用的解決辦法是鎖定技術,總體上分為共享鎖定和排它鎖定兩種類型(如圖4)。前者是指同時有幾個過程共享一個鎖定,比如一個用戶(或客戶)正在讀取一個數據,雖然在這之前他已經對該數據設置了鎖(LOCK),但其他用戶同樣可以(也只能是)讀取它。而排他鎖定一般應用於對數據進行修改或更新(包括添加刪除等)操作,即是用戶在修改一個數據之前設置了鎖定,在一定的時間里其他用戶是不能訪問到該數據的,只有等待鎖定解除(UNLOCK)才能進行訪問到它,當然在計算機處理的時候,其他的用戶一般是感覺不到有這個等待時間的。通過這樣的處理,就保證了數據的一致性。

a) 共享鎖定

b) 排它鎖定

圖4 安全鎖定類型

在ADO進行資料庫操作時,它的鎖定類型相對來說復雜一些。打開記錄集時,可以指定鎖定類型。鎖定類型決定了當不止一個用戶同時試圖改變一個記錄時,資料庫應如何處理。ADO中的鎖定主要有以下四種類型:

l AdLockReadOnly 指定你不能修改記錄集中的記錄

l AdLockPessimistic 指定在編輯一個記錄時,立即鎖定它

l AdLockOptimstic 指定只有調用記錄集的Update方法時,才鎖定記錄

l AdLockBatchOptimstic 指定記錄只能成批地更新

在預設情況下,記錄集使用只讀鎖定。要指定不同的鎖定類型,可以在打開記錄集時包含這些鎖定常量之一。部分代碼如下:

… …

Set MyConn=Sever.CreateObject(「ADODB.Connection」)

//定義資料庫連接MyConn

Set RS=Sever.CreateObject(「ADODB.RecordSet」)

//定義返回數據記錄集

MyConn.Open 「ByktDB.dsn」//建立應用程序與數據源的連接

RS.Open 「SELECT * FROM Mytable」, MyConn, adOpenDynamic, adLockPessimistic

//進行資料庫操作,並且設置鎖定

RS.Close

MyConn.Close

… …

4.2產品數據一致性處理

數據的安全因素除了前面所提到的並行控制之外,還要考慮事務處理。網路資料庫有其不同的地方,例如:假設某個時間有一個設計人員在你的站點上索取一些設計信息,有關的設計信息存儲在兩個表中。一個表用來保存該設計者的信息,另一個表包含了要索取的設計信息。該設計人員的信息已經輸入了第一個表中。但是,就在這時,發生了意外情況,一道閃電擊中了你的伺服器,使第二個表沒有被更新。在這種情況下,一個健壯的系統就必須保證最後的結果是兩個表都沒有被更新過。這時候事務處理就發揮了重要的功效。

使用事務處理,你可以防止第二個表沒有被更新而第一個表被更新的情況出現:當一組語句構成一個事務處理時,如果一個語句沒有執行成功,則所有的語句都不成功。不管是針對多個表,還是進行表內多個記錄的操作,它們所需要的安全保證是一樣的。事務處理的實現代碼如下:

… …

Set MyConn=Sever.CreateObject(「ADODB.Connection」)

MyConn.Open 「ByktDB.dsn」

MyConn.BeginTrans //事務處理開始

MyConn.Execute 「INSERT DataTable(Num) Values(『3628』)」

MyConn.Execute 「INSERT Shipping (Address) VALUES(『Paris,France』)」

MyConn.CommitTrans //事務處理結束

MyConn.Close

… …

在上面這段代碼中,用BeginTrans方法和CommitTrans方法來標記事務處理的開始和結束。在BeginTrans方法被調用之後,CommitTRans方法被調用之前,不管出現什麼錯誤,兩個表都不會被更新,在這個過程中所有處理的數據都保持了完全可靠的一致性。

㈥ 誰可以幫忙做下這個題目呀 資料庫課程設計

資料庫課程設計報告
計網0831資料庫課程設計
1、數據的導入和導出今天是資料庫實習的第一天,對於我們來說資料庫雖然是今年剛剛學過的課程,但是我們已經考試完一段時間了,所以也很久沒有翻書本了,很多知識在剛剛做的時候還是很陌生的,不得不翻一下書本,下面就是在第一天實習中所產生的問題報告和分析結果。
在做實訓前,老師先給我們講了資料庫如何導入EXCL表,在老師的指導下我們學會了,為創建表提供了方便。
首先我們是建立了一個新的KCSJ資料庫,建立的數據語句如下:
用SQL語句在D:\KCSJ下創建課程設計資料庫(KCSJ)
(一)CREATE DATABASE KCSJ
ON
(NAME=KCSJ_DATA,
FILENAME='D:\KCSJ_DATA.MDF')
LOG ON
(NAME=KCSJ_LOG,
FILENAME='D:\KCSJ_LOG.LDF')
將KCSJ.XLS文件中的數據導入KCSJ資料庫中。導入後在資料庫中將生成以下五個基本表:
學生(學號,姓名,性別,年齡,入學成績,班級,籍貫)
成績(學號,課程號,成績)
課程(課程號,課程名,教師名)
三角形(a,b,c,s)
迴文數(A1,A2)
其中:a> 學生、成績、課程、三角形、迴文數是表的名字。
b> 學號、姓名、性別、班級、籍貫、課程名和教師名為字元型,長度分別為10 、10、2、6、8、20、10;
c> 入學成績為整型。
d> 年齡、課程號和成績為整型或微整型。
e> A1為整型;A2為字元型,長度為2。
f> a、b、c為float類型,代表三角形的三邊,s為float類型,代表三角形的面積。
在導入資料庫中KCSJ.XLS文件的數據導入的時候是在所有任務--導入數據—數據源為excel97-2000- 文件位置—導入表中的數據—修改類型和長度 最後確定。
用企業管理器創建資料庫(JW0831),將KCSJ資料庫中的五個表導入該資料庫中。
打開所有任務 導入數據源 選擇KSCJ 資料庫 下一步 再選擇jw0831資料庫 選擇所有 確定 就可以將KCSJ資料庫中的五個表導入該資料庫中。
簡單的結構化查詢
--(1)查詢學生的詳細記錄
select*from 學生
--(2)查詢學生表中前兩個班級(班級名稱不能重復)
select top 2 班級 from 學生
group by 班級
在做本題的時候,由於想的比較復雜,外加題意有點模糊,所以轉了很大一個圈,並在老師的側外指導下通過group by分組才把本題做了出來。
--(3)顯示把 成績表中各科學生的成績加 20 分後的信息
select*from 成績
where 成績='成績'+20
在做本題的時候,由於題意理解錯誤,所以我先用updata語句來進行更新,但是在做到其它題的時候,聽到老師在指導其它同學的時候,把題意一說,我才恍然大悟,自己的方向又錯了。然後又重新思考,接著就做出了上面的答案。
--(4)查詢來自「寧波」 學生的學號、姓名、籍貫
select 學號,姓名,籍貫 from 學生
where 籍貫='寧波'
--(5)查詢選修4號課程且考試成績在70分以上的學生的學號以及所選修的課程號和成績,顯示前3條結果記錄
select top 3*from 成績
where 成績>=70 and 課程號='4'
--(6)查詢入學成績在 300-400 分之內的學生的詳細情況,並按入學成績降序排序 ( 用兩種方法完成 )
select * from 學生
where 300<入學成績 and 入學成績<400 order by 入學成績 desc
select * from 學生
where 入學成績 between 300 and 400 order by 入學成績 desc
--(7)統計學生表中的學生人數
select count(*)from 學生
對於今天的題目做的多了,忽然發現很多題的類型都差不多,都是運用基本的書本知識,然後融會貫通,舉一反三,然後不費吹灰之力就做出來了,我說的不費吹灰之力是簡單的,但是有些還是費了好大一番功夫的。
--(8)查詢學生表中姓李,姓名列包含兩個字的學生的基本情況
select * from 學生
where 姓名 like '李_'
--(9)查詢名字中第 2 個字為『北'的學生的基本信息
select * from 學生
where 姓名 like '_北%
在做這幾道題的時候,我解決了並也明白了—和%得區別和用途
--(10)查詢選修 4 號課程,成績在 80-90 分之間的學生學號和成績
select*from 成績
where 80<=成績 and 成績<90 and 課程號='4'
--(11)查詢 JW0831 班和 JW0551 班學生的姓名、性別及班級(用謂詞查詢 in )
select 姓名,性別,班級 from 學生 where 班級 in('JW0831','JW0551')
group by 姓名,性別,班級
對於本道題拿到的時候,還是愣了一下的,因為我忽然不知道什麼是,對於用謂詞查詢 in,自己不會用,在翻書翻了一遍並且詢問了同學才發現如何去用它。
--(12)查詢缺少成績的學生的學號和相應的課程號
select 學號,課程號 from 成績
where 成績 is NULL
--(13)統計選修了4號課程學生人數
SELECT COUNT(*)AS'人數' FROM 成績 where 課程號='4'
--(14)查詢JW0831班家在河北學生的學號、姓名、性別
select 學號,姓名,性別 from 學生
where 籍貫='河北'and 班級='JW0831'
--(15)檢索劉志生老師所授課程的課程號和課程名。
select 課程號,課程名 from 課程
where 教師名='劉志生'
---(16)檢索年齡大於23歲的男學生的學號和姓名。
select 學號,姓名 from 學生
where 性別='男' and 年齡>23
--(17)查詢學生表中姓李的學生的基本情況
select *from 學生
where 姓名 like '李%'
--(18) 統計學生表中所有學生「入學成績」的平均分、最高分、最低分
select AVG(入學成績) as'平均成績',max(入學成績) as'最高分',min(入學成績) as'最低分'from 學生
--(19)查詢選修了1號或者3號課程,成績及格的學生的學號和成績
select 學號,成績 from 成績
where 成績>=60 and 課程號 in (1,3)
--(20)統計學生表中所有男女生人數
SELECT 性別, COUNT(性別)AS'人數' FROM 學生
group by 性別
對於今天的題除了自己不太熟悉課本知識和同學討論出來的那些分析外,對於其他的題已經沒有什麼問題了,因為我把今天的題做完之後,把報告寫完的同時,對於明天的題我也進行了一番思考,並且還幫助其他同學解決了一些不會的問題。
星期二 天氣 冷 心情 good

3、復雜的結構化查詢
--(1)檢索至少選修劉志生老師所授課程中一門課程的女學生姓名。
select 學生.學號,姓名,性別,課程.課程號 from 學生,成績,課程
where 性別='女' and 課程.課程號 in(select 課程號 from 課程 where 教師名='劉志生')and 學生.學號=成績.學號
and 課程.課程號=成績.課程號
對於今天的課程設計不是像昨天一樣那麼簡單了,簡直是提高了一個很大的層次,簡直是一步三晃啊!不容易啊!就像本題一樣,在查詢的時候要用一個子查詢和三個條件才能把它做出來!
--(2)檢索吳計算同學不學的課程的課程號。
select 課程號 from 課程 where 課程號 not in(select 成績.課程號 from 成績,學生where 姓名='吳計算' and 成績.學號=學生.學號)
在本題中,用的方法還真是一波三折啊!因為如果要查不學的課程,要先查出他學的課程,然後再排掉學過的!充分運用了not in這個語法
--(3)檢索至少選修四門課程的學生學號。
select 學號, count(成績.學號)as '門數' from 成績,課程 where 成績.課程號=課程.課程號
group by 成績.學號
having count(成績.學號)>=4
對於本題的用的是count做統計這個數據語句,外加可以用在group by 語句後的having條件語句。通過本題的聯系,可以很好的運用count 和having語句
--(4)檢索全部學生都選修的課程的課程號與課程名。
select 課程.課程名 ,課程.課程號 from 成績,課程
where 成績.課程號=課程.課程號
group by 課程.課程名,課程.課程號
having count(成績.學號) in (select count(學生.學號)from 學生)
--(5)檢索選修課程包含劉志生老師所授課的學生學號。
select 學號 from 成績,課程
where 教師名='劉志生'and 成績.課程號=課程.課程號
--(6)統計有學生選修的課程門數。
select 學號, count(成績.學號)as '門數' from 成績,課程 where 成績.課程號=課程.課程號
group by 成績.學號
--(7)求選修4號課程的學生的平均年齡。
select AVG(年齡)as'平均年齡',成績.課程號 from 學生,成績
where 課程號='4' and 學生.學號=成績.學號
group by 成績.課程號
--(8)求劉志生老師所授課程的每門課程的學生平均成績。
select avg(成績.成績)as'平均成績',課程.課程號 from 成績,課程
where 教師名='劉志生' and 成績.課程號=課程.課程號
group by 課程.課程號
--(9)統計每門課程的學生選修人數(超過6人的課程才統計)。要求輸出課程號和選修人數,查詢結果按人數降序排列,若人數相同,按課程號升序排列。
select 成績.課程號, count(成績.學號)as '人數' from 成績,課程
where 成績.課程號=課程.課程號
group by 成績.課程號
having count(成績.學號)>=6
order by count(成績.學號) asc
--(10)檢索學號比陸力利同學大,而年齡比他小的學生姓名。
select 學號,姓名 from 學生
where 學號>(select 學號 from 學生 where 姓名='陸力利') and 年齡<(select 年齡 from 學生 where 姓名='陸力利'
--(11)求年齡大於女同學平均年齡的男學生姓名和年齡。
select 姓名,年齡 from 學生
where 性別='男'and 年齡>(select avg(年齡)as'平均年齡'from 學生 where 性別='女')
--(12)統計學生人數超過 5人的班級名稱和對應的人數
select 班級,count(學生.學號)as '人數'from 學生
group by 班級
having count(學生.學號)>=5
--(13)檢索課程號和選修人數,查詢結果按人數升序排列,若人數相同,按課程號降序排列。
select 成績.課程號, count(成績.學號)as '人數' from 成績,課程
where 成績.課程號=課程.課程號
group by 成績.課程號
order by count(成績.學號) asc,成績.課程號 desc
這道題運用很多知識點,不但用了count 統計 還用了 group by 分組 外加排序
--(14)查詢選修課程學生的學號、姓名、所選課程號、取得的成績
select 學生.學號,學生.姓名,成績.課程號,成績.成績 from 學生,成績
where 學生.學號=成績.學號
--(15)查詢學生的學號、課程號和成績等級
select 學號,課程號,成績,(
CASE
WHEN 成績>=90 and 成績<=100 THEN 'A'
WHEN 成績>=80 and 成績<90 THEN 'B'
WHEN 成績>=70 and 成績<80 THEN 'C'
WHEN 成績>=60 and 成績<70 THEN 'D'
ELSE 'E'
END ) as 等級
from 成績
本題運用了一個新的知識點,這個知識點是在老師的ppt課件上找到的,利用這個語句何以很好很方便的為管理系統中的成績分等級,所以在本體中一定要記住本語句的語法如:case when……and then ……else end
今天小結,通過今天一天的課程設計,我覺得我收獲了很多,因為它讓我以前學的不太好的知識點全部都鞏固了一遍,尤其是成績、課程、學生這些表與表的鏈接,每次不是這里連不上就是那裡連不上,但是現在不但可以連上了,還可以幫助其他同學檢查出來錯誤,真是一筆不小的收獲,雖然今天做的題比較難,但是每一次在自己的努力下做出來都會有不小的成就感……
3、復雜的結構化查詢
星期三 天氣 冷 心情 good
外面飄著雪花,美好的一天又已經開始了!實習已經到了一半,離回家的日子也近了很多,所以心情也是越實習越好了!今天的工作當然也完成的比較順利!雖然有的還挺難的!但是相信自己一定就會成功!嘿嘿……看看自己的勞動成果就知道了!
3、復雜的結構化查詢
--(16)查詢選修了英語的學生的姓名和成績;
select 學生.姓名,成績.成績 from 成績,學生,課程
where 課程.課程名='英語'and 學生.學號=成績.學號 and 課程.課程號=成績.課程號
group by 學生.姓名,成績.成績
--(17)分別統計每個班級的男女人數(要求顯示出班級、性別、對應的人數)
SELECT 班級, 性別, COUNT(性別)AS'人數' FROM 學生
group by 班級,性別
--(18)求年齡大於所有女同學年齡的男學生姓名和年齡。
select 姓名,年齡 from 學生
where 性別='男'and 年齡>(select max(年齡) from 學生 where 性別='女')
group by 姓名,年齡

--(19)計算選修了1號課程的學生的平均成績(要求顯示出課程號和對應的平均成績)
select 課程號,avg(成績)as'平均成績'from 成績
where 課程號='1'
group by 課程號

--(20)查詢選修課程學生的學號、姓名、所選課程名、取得的成績
select 學生.學號,姓名,課程.課程名,成績.成績 from 學生,成績,課程
where 學生.學號=成績.學號 and 課程.課程號=成績.課程號
--(21)查詢學生的學號、姓名、性別及所選修各門課程的成績(要求每位學生用一個數據行顯示這些信息)

SELECT 學生.學號, 學生.姓名,學生.性別,
(select 成績 from 成績 where 課程號='1' and 學生.學號=學號) as '數學',
(select 成績 from 成績 where 課程號='2' and 學生.學號=學號) as '英語',
(select 成績 from 成績 where 課程號='3' and 學生.學號=學號) as '計算機基礎',
(select 成績 from 成績 where 課程號='4' and 學生.學號=學號) as '資料庫',
(select 成績 from 成績 where 課程號='5' and 學生.學號=學號) as '政治',
(select 成績 from 成績 where 課程號='6' and 學生.學號=學號) as '體育'

FROM 學生 INNER JOIN 成績 ON 學生.學號=成績.學號
GROUP BY 學生.學號, 學生.姓名,學生.性別
--(22)查詢李路路所學的課程名和對應的成績,並按照成績升序排列。
select 姓名,課程名,成績 from 學生,課程,成績
where 姓名='李路路'and 課程.課程號=成績.課程號 and 學生.學號=成績.學號
order by 成績

--(23)查詢平均成績大於 75 分的課程,要求顯示課程名和平均成績。
select 課程名,avg(成績)as'平均成績' from 課程,成績
where 課程.課程號=成績.課程號
group by 課程名
having avg(成績)>=75
--(24)查詢所選課程平均成績前三名的那些學生的姓名和平均成績。
select top 3 學生.學號,姓名,avg(成績.成績)as'平均成績'from 成績,學生 where 學生.學號=成績.學號 group by 學生.學號,姓名 order by avg(成績.成績) desc

--(25)查詢和李工業在同一個班級的學號和姓名
select 學號,姓名 from 學生
where 班級 in (select 班級 from 學生 where 姓名='李工業')

--(26)查詢JW0831班中入學成績比李里高的學生的姓名
select 姓名 from 學生
where 班級='JW0831' and 入學成績>(select 入學成績 from 學生 where 姓名='李里')

--(27)在學生表中查詢高於入學成績平均分的學生學號、姓名、班級、入學成績
select 學號,姓名,班級,入學成績 from 學生
where 入學成績>(select avg(入學成績)as'平均成績'from 學生)

--(28)查詢沒有選修課程的學生的學號和姓名
select 學生.學號,學生.姓名 from 學生
where 學號 not in(select 學號 from 成績 group by 學號 )

--(29)查詢選修了 5(含5) 門以上課程的學生的姓名。
select 姓名 from 學生,成績,課程 where 成績.課程號=課程.課程號 and 學生.學號=成績.學號
group by 成績.學號,姓名
having count(成績.學號)>=5
--(30)查找同名同姓的學生信息。
select a1.* from 學生 a1,學生 a2
where a1.姓名=a2.姓名 and a1.學號<>a2.學號
星期四 天氣 冷 心情 good
數據管理
--(1)利用學生表創建一個新表(不含數據):優秀(學號,姓名,性別),
--然後在學生表中檢索每一門課程成績都大於等於80分的學生學號、姓名和性別,
--並把檢索到的值送往優秀表中。
select 學號,姓名,性別 into 優秀 from 學生
where 5>6
insert into 優秀 select 學號,姓名,性別 from 學生 where 學號 in (select 學號 from 成績 group by 學號 having min(成績)>=80 )

--(2)把李路路同學的選課和成績全部刪去。
delete from 成績
where 成績 in(select 成績 from 學生,成績 where 學生.學號=成績.學號 and 姓名='李路路')
--(3)把低於總平均成績的女同學成績提高5%。
UPDATE 成績 SET 成績=成績*(1+0.05) WHERE 成績<(select avg(成績.成績)as'平均成績'from 成績) and 學號 in(select 學號 from 學生 where 性別='女')
--(4)把選修數學課不及格的成績全改為空值。
UPDATE 成績 SET 成績=null WHERE 成績<60 AND 課程號=(select 課程號 from 課程 where 課程名='數學')
--(5)在成績表修改4號課程的成績,若成績小於等於75分時提高5%,若成績大於75分時提高4%(用兩個UPDATE語句實現)。
UPDATE 成績 SET 成績=成績*0.5 WHERE 成績<=75 and 課程號='4'
UPDATE 成績 SET 成績=成績*0.4 WHERE 成績>75 and 課程號='4'
--(6)將選修4號課程且成績沒有及格的學生的成績調整為 60 分。
UPDATE 成績 SET 成績=60 WHERE 成績<60 AND 課程號='4'
自定義函數的使用
編寫一函數(hws),判斷一個整數是否為迴文數,若是函數值為「是」,否則為「否」,利用該函數判斷迴文數基本表中A1列的整數是否為迴文數,若是,則A2列的值為「是」,否則為「否」。
create function hws(@A1 int)
returns char(2)
as
begin
declare @y int,@r int,@c char(2),@z int
select @y=0,@z=@A1
while @A1!=0
select @r=@A1%10,@y=@y*10+@r,@A1=@A1/10
if @y=@z
set @c='是'
else
set @c='否'
return @c
end
update 迴文數 set A2=dbo.hws(A1)。
星期五 天氣 冷 心情 good
游標的使用
利用游標可以訪問單獨數據行的特點,逐一對三角形基本表中的數據行(三條邊)進行處理,求三角形的面積。
Declare yb cursor
For
Select*from 三角形
Declare @a float,@b float,@c float,@p float,@s float
Open yb
Fetch next from yb into @a,@b,@c,@s
While @@fetch_status=0
Begin
If @a+@b>@c and @a+@c>@b and @b+@c>@a
select @p=(@a+@b+@c)/2.0,@s=round(sqrt(@p*(@p-@a)*(@p-@b)*(@p-@c)),2)
else
set @s=null
update 三角形 set s=@s where current of yb
fetch next from yb into @a,@b,@c,@s
end
close yb
deallocate yb

心得體會
時光匆匆,一個星期的實習已經接近尾聲了,對於本次的實習心情就是輕松加愉快,收獲也是碩果累累,在老師的安排下,實習的過程是根據每天老師給的任務,按時完成作業然後再把報告寫完根據規劃每天都有條不絮的干著自己的事情,對於我是一個不會安排時間的人,生活中重來沒有規劃,所以事情每次幹完不是緊一陣就是松一陣的,所以通過這次實習中在老師的安排下,自己也懂得了安排時間的重要性,也從中吸取到了一些經驗。
在本次實習中我不僅把本學期學習的資料庫基本知識進行了點到點的復習,也把它進行了鞏固,在原來沒有學好的地方通過本次的實習學的比以前學的更好,不僅如此,我們在做課程設計的時候還學會了獨自的思考和協作,有些知識點我們運用的不是很好,但是後面再老實的幫助和在同學的探討下,最後都把它解決了出來。除此之外,我也感覺到實習並不是因為完成任務而實習,它是為了讓我們更好的掌握知識,並把知識運用到生活中去的,就像藝術一樣,源於生活,而應用於生活一樣。資料庫的學習,也是為了以後生活中方便自己方便他人而學習的。
由於每天緊張的課程,一路都是匆匆來匆匆去,所以一個班同學的交流也是很少的,通過實習所以同學之間交流的機會也就比較多了一點,比才的感覺也因此增進了不少,以上就是本次在實習中所得到的心得,至於沒有感受到的,將在以後的生活中再次的吸取生活中的經驗。來進行學習中的總結。

㈦ sql資料庫課程設計報告

網路即時通信系統是為用戶開發研製的,用戶是系統的最終使用者和評價者,所以在網路通信系統的開發設計的過程中,我們樹立了從用戶的尋求出發,面向用戶,一切為了用戶的觀念,在分析與設計系統的前期,為了保證系統的功能的完善多次尋求周圍同學和老師的意見,了解他們的要求,依照功能完善,界面美觀,操作簡單的原則進行設計 。
嚴格按階段進行
系統的開發設計是一項較大的工程,所以應該將整個系統的開發設計過程劃分為若干階段,相應的階段又要分為若干個不同的步驟,每個階段和步驟都要有明確的工作任務和目標。這種有序的組織安排,條例清楚、層次分明,便於計劃的制定和控制,並且為後續工作的進行奠定了堅實的基礎,提高了工作效率和質量。
採用系統的觀點處理
在系統分析階段,在對原系統進行全面調查和分析的基礎上,構造系統的最佳邏輯模型,使用戶對將來完整系統的輪廓有個初步的了解和認識,以便及時和用戶進行交流和探討,不斷提高系統的完善性。在此基礎上進行系統的物理實現和設計,切實完成邏輯模型的具體功能。邏輯設計和物理實現二者是相輔相成、密不可分的,這樣使系統的設計更加穩妥合理。
整個系統的設計主要採用快速原形法
快速原形法是信息系統設計的一個重要方法。它是根據用戶提出的需求,由用戶和開發者共同確定系統的基本要求和主要功能,並在一個較短的時間內建立一個實驗性的、簡單的信息系統模型,通過用戶不斷提出的意見和建議,對模型進行不斷的修改和完善,直到用戶比較滿意為止,以便形成一個相對穩定、較為理想的管理信息系統。該方法的主要優點。
1.脈絡清楚,所有問題都圍繞一個模型展開,使彼此之間聯系緊密。
2.有助於發現用戶需求,通過對原形和用戶接觸,能夠啟發開發人員去挖掘問題,從而不斷的修正、完善,最終得到一個理想的系統。
3.系統開發效率高,此方法的開發周期短、使用靈活、容易修改,這對於管理體制不夠穩定的系統更加適合。
4.系統的可擴展性好,由於此方法是在原型應用中不斷發展完善和修改的,所以有較強的擴展性。

在進行代碼設計時,遵循了以下原則。
唯一性:在本系統中,每一個代碼都和系統中的每一個對象唯一確定。
標准性:主要體現在對程序文件名命名和對數據文件命名的標准化上,遵循簡單扼要,方便適用的原則。一目瞭然,無重復現象。為了系統維護人員便於進行系統維護,使用了統一的標准。
合理性:系統中代碼設計與編碼對象的分類相適應,以使代碼對編碼對象的分類據有標志作用。
簡單性:在設計過程中採用Code-Behind代碼分離,使資料庫操作代碼和前端調用代碼分離,頁面修改容易。
適應性:在代碼設計過程中,代碼反映了編碼對象的特點,便於識別和記憶,使系統維護人員容易了解和掌握,便於進行維護工作。
系統總體功能結構
網路通信系統包含以下主要功能。
用戶注冊;用戶登錄;
查找好友;查看好友資料;
添加好友;
刪除好友;
發送消息;
發送文件.
資料庫表主要用來存放用戶的注冊信息和用戶的好友資料,可利用兩張資料庫表來 存放用戶信息和用戶好友的資料。包括用戶的號碼,昵稱,密碼,在線與否,ip地址,資料,頭像號,性別,E-mail和籍貫等信息。其中,用戶昵稱和密碼是必需的欄位;在線與否是由系統自動設置的;其餘的信息是可選的欄位。
課題整體以JAVA為平台,採用Eclipse開發工具,並使用SQL Server 2000管理資料庫數據開發而成的基於Socket的集中式網路通信系統,系統採用客戶機/伺服器(C/S)的模式設計,是一個三層C/S結構,資料庫伺服器、應用程序伺服器端 、應用程序客戶端。系統採用C/S結構,可以將任務合理分配到客戶機端和伺服器端 ,從而降低了系統的通信開銷。
客戶層。
客戶層是應用程序的用戶介面部分,它擔負著用戶與應用間的對話功能,用於檢查用戶的輸入數據,顯示應用的輸出數據,為了直觀的進行操作,客戶層需要使用圖形用戶介面,若聊天用戶變更,系統只需改寫顯示控制和數據檢查程序即可,而不會影響其他兩層。
服務層。(功能層)
服務層相當於應用的本體,它是將具體的業務處理邏輯編入程序中。在應用設計中,必須避免在表示層和功能層之間進行多次的數據交換,這就需要盡可能進行一次性的業務處理達到優化整體設計的目的。
數據層
數據層是DBMS,本系統使用了Microsoft 公司的SQL Ssever2000資料庫伺服器來管理數據。SQL Ssever2000能迅速的執行大量數據的更新和檢索,因此,從功能層傳送到數
據層的要求一般都使用SQL語言。

㈧ 資料庫應用課程設計的報告

資料庫課程設計報告 目錄目錄……………………………………………………………………………………1一.設計目標…………………………………………………………………………2二.系統介紹…………………………………………………………………………2三.資料庫設計……………………………………………………………………....2 1.需求分析……………………………………………………………………….2 2.概念結構設計………………………………………………………………….3 (1)實體設計………………………………………………………………..3 (2)ER圖……………………………………………………………………3 3.邏輯結構設計………………………………………………………………….4四.應用程序設計……………………………………………………………………4 1.delphi7.0開發環境……………………………………………………………4 2.軟體分析…………………………………………………………………..…4 (1)軟體的需求分析………………………………………………………..4 (2)軟體的基本功能………………………………………………………..5 3.軟體的設計與實現…………………………………………………………….6 五.實現的應用系統介紹…………………………………………………………….8 1.系統模塊…………………………………………………………………….8 2. 文件簡介…………………………………………………………………….8 3 .系統運行…………………………………………………………………….8 六.總結………………………………………………………………………………17 一.設計目標理論應用--運用資料庫設計理論設計一個較完善的有實際意義的資料庫結構;工具使用--掌握目前流行資料庫管理系統工具和前端應用開發工具;應用開發--為資料庫開發相應應用程序,構成完整的資料庫應用系統;報告編寫--用文字處理軟體編寫高質量的設計報告。二.系統簡介名稱:超市進銷存管系統功能:基於超市管理的全面自動化,減少入庫管理、出庫管理及庫存管理中的漏洞,節約不少管理開支,增加企業收入。 實現對產品的增加、修改、刪除、以及日常查詢,對產品的出庫、入庫進行管理。同時對營銷狀況進行簡單的分析,並可以導出各種查詢報表。資料庫:ACCESS實現:Delphi 7.0系統構架:C/S(Client/Server )三.資料庫設計.1.需求分析:超市進銷存管理系統2.概念結構設計(1)實體設計商品信息(商品編號,商品名稱,商品單位,商品單價,類別,產地,說明)進貨信息(進貨編號,商品編號,進貨單價,進貨數量,進貨時間,經手人,供貨單位)出貨信息(出貨編號,商品編號,出貨單價,出貨數量,經手人,接收人及說明等)庫存信息(商品編號,庫存說明,說明等)用戶信息(用戶名,密碼,用戶類型)(2)E-R圖包含說明產地商品單價商品類別商品名稱商品編號商 品經手人進貨數量進貨時間進貨單價商品編號進貨編號供貨單位進貨記錄商品編號出貨數量接收人經手人出貨單價出貨編號出貨時間出貨記錄庫存記錄說明商品編號庫存說明111n3.邏輯結構設計關系模型(第1數據項為主鍵)商品信息(商品編號,商品名稱,商品單位,商品單價,類別,產地,說明)進貨信息(進貨編號,商品編號,進貨單價,進貨數量,進貨時間,經手人,供貨單位)出貨信息(出貨編號,商品編號,出貨單價,出貨數量,經手人,接收人及說明等)庫存信息(商品編號,庫存說明,說明等)用戶信息(用戶名,密碼,用戶類型)出貨商品金額(出貨時間,出貨單價,出貨數量,出貨金額)進貨商品金額(進貨時間,進貨單價,進貨數量,進貨金額)四.應用程序設計1.Delphi 7.0 開發環境 Delphi被稱為第四代編程語言,它具有簡單、高效、功能強大的特點。和VC相比,Delphi更簡單、更易於掌握,而在功能上卻絲毫不遜色;和VB相比,Delphi則功能更強大、更實用。可以說Delphi同時兼備了VC功能強大和VB簡單易學的特點。它一直是程序員至愛的編程工具。 Delphi 7的集成開發環境(1DE)和Delphi以前的版本基本一致。它把單、多個工具欄及一組窗口和應用程序設計在一起,將代碼以事件的形式與界面的每一元素建立聯系,使用戶很方便地在這個高度集成的開發環境的組成和各種輔助工具的使用方法和使用技巧。2.軟體分析(1)軟體的需求分析: 開發本軟體的主要目的是為了優化超市的日常管理。採用計算機管理信息系統為實現超市管理科學化和現代化,給它帶來了明顯的經濟效益和社會效益 (2)軟體的基本功能與說明: a.商品信息管理商品信息管理:用來管理系統中要用來進行進貨,出貨操作的商品的信息,包括添加,修改,刪除和查詢信息。其中,查詢可以進行精確查詢和模糊快速查詢。任意時刻,生成當前表格報表。 b. 用戶管理1.用戶添加該許可權只有管理員擁有,可以添加臨時用戶,或者增設管理員用戶。2.用戶刪除該許可權只有管理員擁有,可以刪除用戶。3.用戶密碼修改用來修改登陸用戶的密碼,長時間地使用一個密碼可能會使密碼不安全,導致整個系統的不安全,因此有必要定期修改密碼。 c. 營銷分析1.綜合分析某一時間段內,將該超市的進貨總額、出貨總額進行統計,並算出總盈利;將庫存中的商品總量統計出來。用戶可以列印分析所得報表。同時提供進貨情況查詢、出貨情況查詢、庫存情況查詢。2.日分析某一天中,將該超市的進貨總額、出貨總額進行統計,並算出總盈利;將庫存中的商品總量統計出來。用戶可以列印分析所得報表。 d. 日常操作商品進貨操作:用來完成商品的進貨操作。商品出貨操作:用來完成商品的出貨操作。進行進貨操作時,進貨編號以及進貨時間是自動生成的,無需改動,否則會出現錯誤。所生成的商品編號為該種類型商品的最大編號,且後面有提示用戶允許的編號范圍,超出此范圍會出錯,如果編號方式正確且大於最大編號,確定添加後會提示用戶填寫新加商品的相關信息。進行出貨操作時,出貨編號自動生成,用記無須改動。在出貨單價小於進貨的最小單價時會詢問是否繼續出貨,出貨數量不能大於庫存數量。e.信息查詢1.庫存信息查詢:用來查詢庫存的商品的信息,可以按照商品編號,商品名稱和商品類別來查詢,可以將查詢結果列印輸出。該查詢可以精確查找某一確定的商品的庫存信息,並將其列印輸出。同時,該查詢可以根據商品的庫存量來將商品中庫存不足、庫存飽和、庫存過剩的商品一一列出並提供列印輸出功能。2.進貨信息查詢:用來查詢商品的進貨記錄,可以按照商品編號,商品名稱,商品類別,經手人和進貨日期查詢,可以將查詢結果輸出。該查詢可以精確查找某一確定的商品或全部商品某一確定時間段的進貨情況,並將其列印輸出。同時以圖表的形式分析該種商品的進貨價格走勢分析圖。3.出貨信息查詢:用來查詢商品的出貨記錄,可以按照商品編號,商品名稱,商品類別,經手人和出貨日期查詢,可以將查詢結果列印輸出。該查詢可以精確查找某一確定的商品或全部商品某一確定時間段的出貨情況,並將其列印輸出。同時以圖表的形式分析該種商品的出貨價格走勢分析圖。3.軟體設計與實現添加、修改、刪除是通過delphi自帶函數實現的。查詢是通過添加SQL語句或者直接在access中建立相對的查詢(如出貨商品金額、進貨商品金額查詢)實現的。(1).程序實現//添加adoquery1.Close;adoquery1.SQL.Clear;adoquery1.SQL.Add('select * from 進貨信息' );adoquery1.Open ;adoquery1.Append;adoquery1.fieldbyname('進貨編號').asstring:=edit1.Text;adoquery1.fieldbyname('商品編號').asstring:=edit2.Text;adoquery1.fieldbyname('進貨單價').asstring:=edit3.Text;adoquery1.fieldbyname('進貨數量').asstring:=edit4.Text;adoquery1.fieldbyname('進貨時間').asstring:=edit5.Text;adoquery1.fieldbyname('經手人').asstring:=combobox5.Text;adoquery1.fieldbyname('供貨單位').asstring:=edit7.Text;adoquery1.Post;快速添加:adoquery1.Append;//刪除一條記錄if Application.MessageBox('真的要刪除當前所選記錄嗎?','刪除確認',MB_YESNOCANCEL+MB_ICONQUESTION+MB_DEFBUTTON3)<>IDYES then abortelseadoquery1.delete;//修改一條記錄if Application.MessageBox('真的要修改當前所選記錄嗎?','修改確認',MB_YESNOCANCEL+MB_ICONQUESTION+MB_DEFBUTTON3)<>IDYES then AdoQuery1.CancelUpdateselseadoquery1.edit;//對表的排序procere TForm2.DBGrid1TitleClick(Column: TColumn);var i : integer;beginfor i:= 1 to DBGrid1.Columns.Count dobegin//恢復所有標題字體為默認DBGrid1.Columns[i-1].Title.Font.Color := clWindowText;DBGrid1.Columns[i-1].Title.Font.Style := [];end;if ADOQuery1.Sort<>(Column.FieldName+' ASC') then //判斷原排序方式beginADOQuery1.Sort := Column.FieldName+' ASC';Column.Title.Font.Color := clRed; //改變標題行字體為紅色,表示當前的排序方式為升序Column.Title.Font.Style := [fsBold];endelse beginADOQuery1.Sort := Column.FieldName+' DESC';Column.Title.Font.Color := clBlue; //改變標題行字體為紅色,表示當前的排序方式為降序Column.Title.Font.Style := [fsBold];end;end;//查詢示例adoquery2.close;adoquery2.sql.clear;adoquery2.SQL.Add('select distinct(進貨信息.進貨編號),商品信息.商品名稱,進貨信息.商品編號,商品信息.類別,進貨信息.進貨單價,進貨信息.進貨數量,進貨信息.進貨時間,進貨信息.經手人,進貨信息.供貨單位 from 進貨信息,商品信息 where 商品信息.商品編號=進貨信息.商品編號 and ');adoquery2.SQL.Add('進貨時間>=#'+DateToStr(DateTimePicker1.Date)+'# and 進貨時間<=#'+DateToStr(DateTimePicker2.Date+1)+'#');adoquery2.Open;*五.實現的應用系統介紹1.系統的模塊(1)主界面模塊Form1(2)信息管理模塊Form2,form18(3)日常操作模塊Form3(4)信息管理模塊Form5(5) 用戶管理模塊Form14(6)系統管理模塊用戶登陸:form8關於系統:form10退出系統:from11()登陸窗體Form82.文件簡介:(1)文件help包括生成jun_help幫助的所有源程序。(2)文件image系統所有用到的圖片文件(3) 文件project系統可執行文件project.exe。系統資料庫超市進銷存儲管理系統.mdb(4) 文件sounds系統所有用到的聲音文件(5) 文件unit_date系統自動生成的相關文件3.系統運行:1.歡迎:2.到達主界面後,提示登陸(系統管理—登陸系統)。用戶可以查看幫助獲得系統的相關信息:3.用戶登陸界面:4.若用戶為管理員,則可以進行用戶管理操作。用戶有權添加、修改、刪除其它用戶。5.若用戶為普通用戶,則用戶只能對自己的相關信息進行修改,添加用戶、刪除用戶不可用。6.商品信息管理模塊商品信息管理:用來管理系統中要用來進行進貨,出貨操作的商品的信息,包括添加,修改,刪除和查詢信息。其中,查詢可以進行精確查詢和模糊快速查詢。任意時刻,生成當前表格報表。7.營銷分析模塊:1).綜合分析某一時間段內,將該超市的進貨總額、出貨總額進行統計,並算出總盈利;將庫存中的商品總量統計出來。用戶可以列印分析所得報表。同時提供進貨情況查詢、出貨情況查詢、庫存情況查詢。2).日分析某一天中,將該超市的進貨總額、出貨總額進行統計,並算出總盈利;將庫存中的商品總量統計出來。用戶可以列印分析所得報表。8.商品進出貨操作模塊:1)進行進貨操作時,進貨編號以及進貨時間是自動生成的,無需改動,否則會出現錯誤。所生成的商品編號為該種類型商品的最大編號,且後面有提示用戶允許的編號范圍,超出此范圍會出錯,如果編號方式正確且大於最大編號,確定添加後會提示用戶填寫新加商品的相關信息。2)進行出貨操作時,出貨編號自動生成,用記無須改動。在出貨單價小於進貨的最小單價時會詢問是否繼續出貨,出貨數量不能大於庫存數量。9.信息查詢模塊:1).庫存信息查詢:用來查詢庫存的商品的信息,可以按照商品編號,商品名稱和商品類別來查詢,可以將查詢結果列印輸出。該查詢可以精確查找某一確定的商品的庫存信息,並將其列印輸出。同時,該查詢可以根據商品的庫存量來將商品中庫存不足、庫存飽和、庫存過剩的商品一一列出並提供列印輸出功能。2).進貨信息查詢:用來查詢商品的進貨記錄,可以按照商品編號,商品名稱,商品類別,經手人和進貨日期查詢,可以將查詢結果輸出。該查詢可以精確查找某一確定的商品或全部商品某一確定時間段的進貨情況,並將其列印輸出。同時以圖表的形式分析該種商品的進貨價格走勢分析圖。3).出貨信息查詢:用來查詢商品的出貨記錄,可以按照商品編號,商品名稱,商品類別,經手人和出貨日期查詢,可以將查詢結果列印輸出。該查詢可以精確查找某一確定的商品或全部商品某一確定時間段的出貨情況,並將其列印輸出。同時以圖表的形式分析該種商品的出貨價格走勢分析圖。10關於系統模塊:11.用戶管理模塊:1).用戶添加該許可權只有管理員擁有,可以添加臨時用戶,或者增設管理員用戶。2).用戶刪除該許可權只有管理員擁有,可以刪除用戶。3).用戶密碼修改用來修改登陸用戶的密碼,長時間地使用一個密碼可能會使密碼不安全,導致整個系統的不安全,因此有必要定期修改密碼。12.退出系統模塊:

㈨ 數據結構實驗的實驗報告怎麼寫

資料庫課程設計
「資料庫課程設計」是資料庫系統及應用課程的後續實驗課,是進一步鞏固學生的資料庫知識,加強學生的實際動手能力和提高學生綜合素質。
一、 課程設計目的
課程設計為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結合起來,鍛煉學生的分析解決實際問題的能力。提高學生適應實際,實踐編程的能力。課程設計的目的:
1. 加深對資料庫原理、程序設計語言的理論知識的理解和應用水平;
2. 在理論和實驗教學基礎上進一步鞏固已學基本理論及應用知識並加以綜合提高;
3. 學會將知識應用於實際的方法,提高分析和解決問題的能力,增強動手能力;
4. 為畢業設計和以後工作打下必要基礎。
二、課程設計要求
運用資料庫原理的基本理論與應用知識,在微機RDBMS(SQL Server)的環境上建立一個資料庫應用系統。要求把現實世界的事物及事物之間的復雜關系抽象為信息世界的實體及實體之間聯系的信息模型,再轉換為機器世界的數據模型和數據文件,並對數據文件實施檢索、更新和控制等操作。
1. 用E-R圖設計選定題目的信息模型;
2. 設計相應的關系模型,確定資料庫結構;
3. 分析關系模式各屬於第幾範式,闡明理由;
4. 設計應用系統的系統結構圖,確定系統功能;
5. 通過設計關系的主碼約束、外碼約束和使用CHECK實現完整性控制;
6. 為參照關系設計插入、刪除、修改觸發器;
7. 實現應用程序設計、編程、優化功能;
8. 對系統的各個應用程序進行集成和調試,進一步優化系統功能、改善系統用戶界面完成實驗內容所指定的各項要求;
9. 分析遇到的問題,總結並寫出課程設計報告;
10. 自我評價
三、實驗環境
開發環境VC++、C#、ASP或JAVA;ODBC/JDBC;資料庫SQL Server
四、上機實現內容
1. 創建資料庫的結構
2. 創建各基本表的結構
3. 編制系統各功能模塊,完成數據的管理(增、刪、改)及統計查詢。對於程序運行界面不做考核的重點。
五、課程設計考核
1.對學生到實驗室的情況進行不定時統計;
2.出勤率+課程設計報告+課程設計所開發的應用系統+其他(上機抽查和提問)=綜合評定成績。
3.課程設計結束時請將下列資料上交:
(1) 課程設計報告;
(2) 所開發的應用系統的源程序、安裝和使用說明;
(3) 將(1)(2)中的資料壓縮成一個壓縮包,壓縮包文件的命名規則:班級+學號(末2位)+姓名(例如:計科090101王鵬曉);
(4) 班長將本班每人的(3)中的壓縮包刻錄成光碟連同列印的課程設計報告收齊,交給任課教師。
附錄﹑課程設計題目
題目1:課程設計選題管理系統(1,24)
包括三大模塊:
 課程設計題目維護與查詢:題目的添加、修改和刪除;按題目類型、名稱和關鍵字查詢以及已選與未選題目的查詢;
 學生信息維護與查詢;
 學生選題維護與管理:學生選題及查詢;
具體功能細化:
 前台學生選題:學生上網登錄系統進行選題;
 前台教師出題:
 教師添加、修改和刪除題目;
 教師確認學生的選題;
 後台管理出題和選題
 添加用戶及許可權

題目2:書店管理系統(23)
包括四大模塊:
 售書(圖書銷售管理及銷售統計,查詢)
 進書(通過書目,向發行商下定單訂購圖書)
 庫存(圖書庫存,統計)
 相關查詢

題目3:圖書館管理系統(11)
包括四大模塊:
 圖書的查詢
 借書
 還書
 圖書的預約

題目4:庫存管理系統(8)
包括四大模塊:
 商品目錄建立
 商品入庫管理
 商品出庫管理
 商品庫存查詢
題目5:工資管理系統(1 人)41
包括四大模塊:
 系統數據初始化
 員工基本信息數據的輸入、修改、刪除;
 員工個人信息及工資表的查詢;
 員工工資的計算;
參考數據如下:
 員工基本狀況:包括員工號、員工姓名、性別、所在部門、工資級別、工資等級等。
 工資級別和工資金額:包括工資等級、工資額。
 企業部門及工作崗位信息:包括部門名稱、工作崗位名稱、工作崗位工資等。
 工齡和工資金額:包括工齡及對應工資額。
 公司福利表:包括福利名稱、福利值。
 工資信息:包括員工號、員工姓名、員工基礎工資、員工崗位工資、員工工齡工資、公司福利、員工實得工資。
題目6:酒店客房管理系統 (1 人)14,26
包括四大模塊:
 前台操作:包括開房登記、退房結賬和房狀態查看
 預訂管理:包括預訂房間、預訂入住和解除預訂
 信息查詢:包括在住客人列表、預訂客人列表和歷史客人列表
 報表統計:包括開房記錄統計、退房結賬和預訂房間統計
 員工基本信息數據的輸入、修改、刪除;
參考數據如下:
 住店管理:客人姓名、證件號碼、房號、入住時期、預計離開日期、結賬離開日期、應付金額
 客人信息:姓名、性別、證件類型、證件號碼、聯系電話
 房間信息:房號、房類型、價格、押金、房狀態 預訂房間
 客人姓名、性別、房類型、房號、價格、證件類型、證件號碼、聯系電話、入住日期、預計離開日期、歷史信息

題目7:旅行社管理信息系統(1 人)3
包括如下模塊:
 旅遊團隊、團隊團員及旅遊路線相關信息的輸入
 旅遊團隊、團隊團員及旅遊路線相關信息的維護(修改、瀏覽、刪除和撤銷)
 旅遊團隊管理信息的查詢(如按團隊編號)
 團隊團員基本情況的查詢(可選多種方式)
 旅遊路線相關信息的查詢(如按線路編號)
 旅遊路線排行榜發布。
 數據備份,更改密碼。
參考數據如下:
 團員信息表(路線編號,團隊編號,團員編號,姓名,性別,電話,通信地址,身份證號碼, 團費交否,備注)
 線路信息表(路線名稱,團費,簡介,圖形,路線編號)
 團隊信息表(團隊編號,路線編號,團員人數,出發日期,返程日期)
 旅遊團隊信息表(團隊編號,團隊負責人,團員人數,建團時間,是否出發,團費,盈虧)
密碼信息(操作員,密碼)
題目8:報刊訂閱管理系統 (1 人)25,35
包括如下模塊:
 登錄功能:登錄統為身份驗證登錄。分為管理員登錄和一般用戶登錄。分別通過不 同的用戶名和密碼進入報刊訂閱管理界面,新的用戶需要注冊。
 錄入新信息功能:對於管理員,包括新用戶信息和新報刊信息的錄入功能,信息一旦 提交就存入到後台資料庫中;普通用戶自行注冊進行可以修改個人信息。
 訂閱功能:用戶可以訂閱報刊,系統自動計算所需金額,並顯示在界面上;管理員不 可訂閱報刊,必須以用戶身份訂閱報刊。
 查詢功能:用戶可以查詢並顯示自己所訂閱的信息;管理員可以按人員、報刊、部門 分類查詢。查詢出的信息顯示在界面上,並且可以預覽和列印出結果。
 統計功能:管理員可以按用戶、部門、報刊統計報刊的銷售情況,並對一些重要的訂 閱信息進行統計;普通用戶可以統計出自己的訂閱情況,並且可以預覽和列印出結果。
 系統維護功能:數據的安全管理,主要是依靠管理員對資料庫里的信息進行備份和恢 復,資料庫備份後,如果出了什麼意外可以恢復資料庫到當時備份的狀態,這提高了系統和 數據的安全性,有利於系統的維護
參考數據如下:
 管理員表(Adminuser) :管理員名、密碼。
 部門表(Department) :部門號,部門名。
 用戶表(Users) :用戶賬號、密碼、真實姓名、身 份證號、聯系電話,聯系地址,部門號(和部門表有關)等。
 報刊類別表(NewspaperClass) :分類編號、 分類名稱。
 報刊信息表(Newspaper) :報刊代號、報刊名稱、出版 報社、出版周期、季度報價、內容介紹、分類編號(和報刊類別表有關)等。
 訂單表(Order) :訂單編號、用戶編號、報刊代號、訂閱份數、訂閱月數等。
題目9:計算機等級考試教務管理系統(2 人)32
包括四大模塊:
 用戶設置:對考點代碼,考點名稱進行設置,設置用戶與密碼;系統復位:即清除上一次考試數據(在之前存入歷史)
 報名管理: 報各庫錄入(姓名不能不空,之間不能有空格) 增加、刪除、修改、瀏覽
 准考證管理:准考證生成規則:xxx+yy+zz+kk,其中 XXX 為考點代碼;YY 為語言代碼,XX 為考場號,KK 為座位號 同一級別、語言應根據報名初始庫信息按隨機數生成准考證,同一考點最多可有 99*30=2970 名考生;如已生成准考證號,再重新生成准考證號,應該給予提示。 准考證列印
 考務管理:考生信息查詢、瀏覽、列印
 成績管理:成績數據錄入、接收 成績合成(總成績=筆試成績*0.6+上機成績*0.4),按大於或等於 60 合格
參考數據如下:
 初始報名表(准考證號(為空) ,報名號(主鍵) ,級別+語言種類(外鍵) ,姓名,性別, 出生年份,民族,身份證號,聯系地址,聯系電話,照片,備注,參加培訓)
 含准考證號的報名表(准考證號(為主鍵) ,報名號,級別+語言種類(外鍵) ,姓名,性別, 出生年份,民族,身份證號,聯系地址,聯系電話,照片,備注,參加培訓)
 成績表(准考證號,筆試成績,上機成績,總成績) 級別語言代碼表(級別語言代碼,級別+語言)
 用戶信息表(考點代碼,考點名稱,用戶名,密碼)
題目10:人事管理系統(1 人)21
包括四大模塊:
 登錄管理:包括操作員管理,口令設置,許可權管理
 人員管理:包括人事數據維護、人事信息查詢和人事信息統計
 工資管理
 部門管理:包括部門表,職稱表和年份表
 查詢及報表列印
參考數據如下:
 人事表(編號,姓名,性別,出生日期,工作日期,部門代碼,職稱,婚否,簡歷,相片)
 工資表(基本工資,崗位津貼,獎勵,應發工資,水電,保險,實發工資)
 部門表(代碼,部門名稱)
 職稱表(職稱代碼,職稱名稱)
 年份表(年份代碼,年份名稱)
 操作員表(操作員代碼,操作員姓名,口令,部門,電話)
系統日誌表(操作員代號,操作員姓名,登錄時間,離開時間)
題目11:商品銷售管理系統(1 人)19
包括四大模塊:
 用戶登錄
 基本信息管理:包括銷售情況、商品信息、庫存表、員工表等信息的錄入、瀏覽、修改、撤銷、刪除和查詢等
 商品銷售管理:包括商品售出、退回和入庫
 盤點:包括庫存檔點、當日銷售盤點
參考數據如下:
 商品信息表(商品編號,商品名稱,品牌,型號,銷售單價) 商品編號=類別代碼(1 位)+品名代碼(1 位)+品牌代碼(2 位)+型號代碼(2 位)
 銷售情況表(成交編號,商品編號,銷售數量,總金額,銷售日期,員工編號)
 庫存表(商品編號,供貨商編號,進貨日期,進貨價,庫存數量)
 員工表(員工編號,員工姓名,性別,基本工資,職務,密碼)
 供貨商表(供貨商編號,供貨商名稱,所在地,聯系電話)
 員工資料表(員工編號,員工姓名,是否黨員,簡歷,照片)
題目12:學生成績管理系統(1 人)29
包括四大模塊:
 基本數據管理:包括院系管理,專業管理(設置院系下面的專業),班級管理(設置專業下面的班級),課程管理(設置相應專業下面的課程)
 學生信息管理:包括基本信息錄入、基本信息修改
 學生成績管理:包括學生成績錄入、學生成績修改
 信息查詢:包括基本信息查詢、成績信息查詢、學校人數統計
 系統管理:用戶管理、數據備份和系統幫助
參考數據如下:
 院系信息(院系代碼,院系名稱)
 院系專業信息(班級、院系代碼,專業)
 學生基本信息(班號,學號,姓名,性別,出生年月,籍貫,政治面貌,身份證號,入學年月,家庭地址,郵政編碼,圖片信息,備注)
 學生成績表(學號,課號,成績,備注)
 課程表(課號,課程名稱,學期,備注)
 班表(班號,班級名稱)
 用戶信息表(用戶名,密碼,用戶標識)
題目13:火車售票管理系統(4 人)36
包括四大模塊:
 售票管理
 訂票管理
 信息查詢
 系統維護
參考數據如下:
 車次信息表(車次,始發站,終點站,發車時間,到達時間)
 訂票信息表(車次,座位號,發車時期,發車時間,座位等級,票價)
 車次座位等級分配及座位佔用表(車次,座位號,座位等級,票價,佔用標志)
 用戶信息表(用戶名,密碼,用戶標識)
題目14:小型物業管理系統(1 人)
包括四大模塊:
 房源管理:對原始資料的錄入、修改、查詢和刷新。一般用戶可以查詢與房間有關 的統計資料;物業主管可其進行增、刪、改、插等操作
 租房管理:對房產出租,退租以及租房面積調整。其中物業主管可對其進行房租金 額計算和收款操作,一般用戶對其查詢
 水電處理:根據租房資料,結合當月水、電量進行分攤,完成應收水電費。其中物 業主管對其進行計算,其他查詢
 交款處理:提供收款和發票列印以及交款數據查詢
 查詢處理:對租房資料、交款資料,發票資料進行查詢
參考數據如下:
 房源資料(名稱,面積,月租,物業,倉庫)
 租房資料(名稱,面積,單位,月租,物業,押金,倉庫)
 水電資料(單位,電量,水量,電費,水費)
 交費資料(收費項目,應收日期,應收金額,已收金額,未收金額,本次收款)
 發票資料(單位,房租,電費,水費,物業)
 許可權資料(用戶,密碼,房源管理,租房管理,水電管理,交費管理,發票管理,系統維護) 其中系統管理員,有權進行系統維護;單位內部物業主管,有權進行物業資源調配、單元出 租,退租和收款開票操作;物業管理員,有權進行水電處理和收款處理等操行;租戶代表, 有權進行種類費的查詢操作
題目15:機房收費管理系統(1 人)7,34
包括四大模塊:
 登錄模塊
 上機管理模塊 說明:上機登記時,余額不足 3 元或卡處於掛失狀態,則拒絕登記 每位同學的一次上機形成一條記錄,每 36S 遍歷一次上機記錄表,對表中所有正上機欄位為 TRUE 的記錄的上機用時增加 36S,同時從上機卡表的余額減少
 上機卡管理模塊
 充值掛失模塊
 查找統計模塊:統計某天上機的總時數、每次上機的平均時數和機房的收入;某學 生上機的次數、上機總時數、每次上機平均時間;掛失和查詢余
參考數據如下:
 上機卡(卡號,姓名,專業班級,余額,狀態) 狀態的取值有:正常(能自費上機)
 掛失上機記錄(卡號,上機日期,開始時間,上機用時,正上機,管理號代碼),上機用時記錄學生上機時間(S);正上機是一個布爾型,為 True 表示正上機,每 36 秒刷新 其上機用時並扣除上機費用,為 False 表示上機結束。上機記錄表永久保存,用於事後查詢 和統計 管理員(代碼,姓名,口令)

題目16:高校葯房管理(1 人)31
包括四大模塊:
 基礎數據處理:包括醫生和葯劑師名單的錄入,修改,刪除及查詢
 營業數據處理:包括葯品進貨上櫃,處理劃價,配葯,櫃存葯品查詢,處方綜合查 詢,交接班結轉清。
參考數據如下:
 葯品信息表(貨號,貨名,計量單位,進貨數量,進貨單價,出售單價,進貨日期,收貨人 和供應商)
 處方信息(編號,患者姓名,醫生姓名,葯劑師姓名,處方日期,配葯日期) 處方葯品信息(處方編號,葯品貨號,計量單位,配葯數量,銷售單價,已配葯否)
 醫生名單和葯劑師名單表(姓名)

題目17:考勤管理系統(2 人)40
包括四大模塊:
 記錄每個員工每天所有進入公司的時刻和離開公司的時刻。
 每天結束時自動統計當天的工作時間
 每天結束時自動統計當天遲到或早退的次數。
 對於彈性工作制,每天結束時自動統計當月的工時,並自動算出當月欠缺或富餘的 時間
 每個月末統計該月的工作時間判斷是束足夠
 每個月末統計該月的工作天數並判斷是否足夠
 管理人員查詢並修改工作時間(特殊情況下修改)
 管理人員賬戶管理(如設置密碼等)
 管理人員設定早退及遲到的條件,每個月的工作時間
 管理人員設定每個月的工作日期及放假日期
參考數據如下:
 員工信息(工號,姓名,年齡,入職時間,職位,性別,密碼)
 配置信息(上班時間小時,上班時間分鍾,下班時間小時,下班時間分鍾,每天工作時間)
 每月統計數據表(工號,姓名,剩餘的時間,遲到的次數,早退的次數,工作天數)
 每天統計信息表(工號,姓名,小時,分鍾,動作,時間) 其中動作指的時入或離開公司

題目18:單位房產管理系統(2 人)33,10
包括四大模塊:
 系統模塊:完成資料庫維護、系統關閉功能
 物業費用模塊:完成本月物業的計費、歷史資料查詢和財務部門介面傳送數據、物 業相關費用單價設置
 房屋資源模塊:對房屋資源進行添加、列表顯示、查詢
 職工信息模塊:對職工進行添加、列表顯示、查詢以及相應部門、職務進行維護
 幫助模塊:對用戶使用本系統提供在線幫助
參考數據如下:
 職工(編號,姓名,性別,參加工作時間,行政職務,專業技術職務,評上最高行政職務時 間,評上最高專業技術職務時間,雙職工姓名,現居住房號,檔案號,房產證號,所在部門 編號,是否為戶主)
 部門(編號,部門名稱) 住房級別表(編號,級別,住房標准,控制標准,級別分類)
 房產情況(編號,房號,使用面積,現居住人 id,上一個居住人 id,最早居住人 ID,陽檯面積)
 物業費用(編號,房號,水基數,水現在值,電基數,電現在值,燃氣基數,燃氣現在值, 當前年份,當前月份)
 價格標准(編號,水單價,電單價,燃氣單價)
題目19:標准化考試系統 (2 人)15,39
功能要求: 設計一個簡單的標准化考試系統,僅有單項選擇題、多項選擇題和判斷題功能即可。
包括四大模塊:
 題庫管理:實現試題的錄入、修改、刪除功能;
 考試子系統:能夠實現考生做題、結果自動存入到資料庫中,有時間提示;
 選擇身份(登錄)功能:系統能夠記錄考生輸入的登錄信息及交卷信息;
 自動評分功能:考生交卷後能自動評分;
 查看成績功能:能夠查詢考生相關信息(包含成績等)。
參考數據如下:

其它可供選擇的題目:
網上教務評教系統130,127,133 16
學生日常行為評分管理系統232,110,230
網上鮮花店 38
基於BS結構的工藝品銷售系統12
基於BS結構的校園二手物品交易網站 37
大學生就業管理系統201,208,234
題庫及試卷管理系統

資料庫原理及應用
課程設計報告
題目: 課程設計選題管理系統

所在學院:
班 級:
學 號:
姓 名: 李四
指導教師:

2011年12月 日
目錄
一、 概述
二、需求分析
三、概念設計
四、邏輯設計
五、系統實現
六、小結
一、概述