數(shù)據(jù)庫原理 及應(yīng)用(餐飲管理系統(tǒng))
《數(shù)據(jù)庫原理 及應(yīng)用(餐飲管理系統(tǒng))》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫原理 及應(yīng)用(餐飲管理系統(tǒng))(31頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、內(nèi)蒙古科技大學(xué) 課程設(shè)計說明書(論文) 課程名稱:數(shù)據(jù)庫原理及應(yīng)用 題 目:餐飲管理系統(tǒng) 學(xué)生姓名:朱文濤 學(xué) 號:1176807418 專 業(yè):計算機科學(xué)與技術(shù) 班 級:計算機4班 指導(dǎo)教師:余金林 31 內(nèi)蒙古科技大學(xué)課程設(shè)計任務(wù)書 課程名稱 數(shù)據(jù)庫原理及應(yīng)用 設(shè)計題目 餐飲管理系統(tǒng) 指導(dǎo)教師 余金林 時間 一、教學(xué)要求 1.從附錄一中選擇一個題目進(jìn)行數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計。 2.功能設(shè)計:用Visual FoxPro,Visual Basic、PB等開發(fā)工具與數(shù)據(jù)庫管理系統(tǒng)SQL-SEVER或Access制作
2、一個小型管理系統(tǒng)。所設(shè)計的小型管理系統(tǒng)應(yīng)包含輸入輸出、查詢、插入、刪除等基本功能。設(shè)計課題可以從候選的項目中選出,根據(jù)題目的基本需求,畫出流程圖,編寫程序,并寫出詳細(xì)的設(shè)計說明書。(本項實際系統(tǒng)設(shè)計與實現(xiàn)可選,但必須有功能設(shè)計過程) 3.?dāng)?shù)據(jù)庫的設(shè)計: 根據(jù)數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計過程,通過需求分析和系統(tǒng)分析,進(jìn)行數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計等工作: l 概念結(jié)構(gòu)設(shè)計的E-R圖 l 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計是以表格的形式說明數(shù)據(jù)庫中有幾個表,每個表的表名以及每個表的各字段名,類型和約束(主、外碼); l 確定表之間的關(guān)聯(lián)(一對一、一對多、多對多) l 運用數(shù)據(jù)庫理論確定每個表至少屬于3N
3、F。 二、設(shè)計資料及參數(shù) 設(shè)計題目:餐飲管理系統(tǒng)(題目等級50) 1、設(shè)備信息 2、餐具信息 3、員工信息 4、餐桌信息:餐桌的編號、類型(8人桌、10人桌、圓桌、方桌、雅間、大堂等) 5、進(jìn)貨信息:原材料的進(jìn)貨信息 6、銷售信息:核心。包括點菜、做菜、上菜等信息 7、菜品信息 三、設(shè)計要求及成果 1.按照數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計步驟進(jìn)行數(shù)據(jù)庫結(jié)構(gòu)設(shè)計。 2.使用開放工具及數(shù)據(jù)庫管理系統(tǒng)開放應(yīng)用系統(tǒng)(可選)。 3.書寫論文(具體要求見論文模板)。 四、進(jìn)度安排 1.安排工作。 2、數(shù)據(jù)庫結(jié)構(gòu)設(shè)計、功能設(shè)計。 3、檢查E-R圖,關(guān)系表。 4、應(yīng)用系統(tǒng)驗收。 5
4、、上交論文。 五、評分標(biāo)準(zhǔn) 1.?dāng)?shù)據(jù)庫結(jié)構(gòu)正確性(30%)。 2.?dāng)?shù)據(jù)庫結(jié)構(gòu)復(fù)雜性(20%)。 3.設(shè)計報告完成的質(zhì)量(30%)。 4.出勤(10%)。 5.軟件(10%)。 6.成績采用五級分制評定。 六、建議參考資料 1、《數(shù)據(jù)庫系統(tǒng)教程》(第三版) 施伯樂等著 高等教育出版社 目錄 一、系統(tǒng)分析簡介 6 二、需求分析 7 三、總體設(shè)計 8 3.1項目規(guī)劃 8 3.2流程設(shè)計 9 3.3 E-R圖 11 3.4模型圖 14 3.5數(shù)據(jù)字典 15 3.6 數(shù)據(jù)表 18 四、 查
5、詢 21 五、數(shù)據(jù)庫代碼 24 六、參考文獻(xiàn) 29 ? 摘 要 隨著我國市場經(jīng)濟(jì)的快速發(fā)展,各行業(yè)都呈現(xiàn)出生機勃勃的發(fā)展景象,其中餐飲業(yè)的發(fā)展尤為突出。近兩年來已呈現(xiàn)出高速發(fā)展的態(tài)勢。但在快速發(fā)展的同時,餐飲業(yè)在日常經(jīng)營管理中仍普遍采用手工管理方式,整體科技含量低。隨著餐飲企業(yè)規(guī)模和數(shù)量的不斷增長,手工管理模式無論是在工作效率、人員成本還是提供決策信息方面都已難以適應(yīng)現(xiàn)代化經(jīng)營管理的要求,因此制約了整個餐飲業(yè)的規(guī)?;l(fā)展和整體服務(wù)水平的提升。有效的管理成為了一個難題,為能有效的解決這些問題提高企業(yè)的經(jīng)濟(jì)效益,在這些中小型飯店中采用工作流技
6、術(shù),結(jié)合飯店綠色管理內(nèi)容,實施計算機管理信息系統(tǒng)不視為一條有效的解決途徑。 本論文主要針對中小型飯店餐飲管理中的一些問題,將其與計算機信息管理系統(tǒng)結(jié)合起來,實現(xiàn)中小型飯店管理信息計算機化、系統(tǒng)化,將中小型飯店管理中的工作流轉(zhuǎn)化成比較科學(xué)化、規(guī)范化的業(yè)務(wù)流程,使管理基礎(chǔ)數(shù)據(jù)更加準(zhǔn)確化,管理人員擺脫了事務(wù)性工作,轉(zhuǎn)而從事管理專業(yè)工作,為經(jīng)營決策提供了快捷和強大的數(shù)據(jù)支持。把計算機用于餐飲企業(yè)管理,可在很大程度上提高管理者分析和決策的科學(xué)性,提高經(jīng)營管職水平,帶來更多的顧客,使企業(yè)取得更好的經(jīng)濟(jì)效益。 關(guān)鍵詞: 計算機信息管理系統(tǒng),中小型飯店, 餐飲管理
7、 一、系統(tǒng)分析簡介 1.1 課題背景 民以食為天,隨著人民生活水平的提高,餐飲業(yè)在服務(wù)行業(yè)中占有越來越重要的地位。努力在當(dāng)前餐飲行業(yè)日趨激烈的競爭中脫穎而出,已成為每位餐飲業(yè)經(jīng)營者所追求的目標(biāo)。 經(jīng)過多年發(fā)展,餐飲管理已經(jīng)逐漸由定性管理,進(jìn)入到重視定量管理的科學(xué)階段。眾所周知,在定量管理的具體實現(xiàn)方法和手段方面,最有效的工具就是電腦管理。傳統(tǒng)的手工操作管理存在著許多無法避免的問題,該系統(tǒng)將能大大的降低許多問題,減輕人力與物力。 1.2 系統(tǒng)開發(fā)的意義 本系統(tǒng)屬于小型的餐飲管理系統(tǒng),可以有效地對中小型餐廳消費進(jìn)行管理,本系統(tǒng)應(yīng)達(dá)到以下目標(biāo): 系統(tǒng)采用人機交互的方式,界面美觀
8、友好,信息查詢靈活、方便,數(shù)據(jù)存儲安全可靠。 實現(xiàn)對餐廳顧客開臺、點菜/加菜、賬目查詢和結(jié)賬等操作。 對用戶輸入的數(shù)據(jù),進(jìn)行嚴(yán)格的數(shù)據(jù)檢驗,盡可能的避免人為錯誤。 實現(xiàn)對消費賬目自動結(jié)算。 實現(xiàn)對消費的歷史記錄進(jìn)行查詢。 系統(tǒng)應(yīng)最大限度地實現(xiàn)易維護(hù)性和易操作性。 1.3 系統(tǒng)開發(fā)及運行環(huán)境 系統(tǒng)開發(fā)平臺:Microsoft Visual Studio 2008 系統(tǒng)開發(fā)語言:T-SQL 數(shù)據(jù)庫管理系統(tǒng)軟件:SQL Server 2008 二、需求分析 2.1 餐飲管理系統(tǒng)的可行性分析 2.1.1 技術(shù)水平分析 本軟件采用Microsoft Vi
9、sual Studio 2008為前臺開發(fā)工具,SQL Server 2008數(shù)據(jù)庫作為后臺數(shù)據(jù)庫支持。本軟件專為中小型餐廳消費管理而設(shè)計,本軟件可在Win7/XP 上運行,不用專業(yè)人士去配制服務(wù)器可以直接安裝使用,具有很好的可移植性,有良好的中文界面,操作簡便,適合餐飲服務(wù)人員使用。 2.1.2 經(jīng)濟(jì)效益分析 本軟件能在很大程度上解決中小型餐廳的消費管理,方便對顧客的消費進(jìn)行管理,本系統(tǒng)運行時能在主菜單上看到當(dāng)前的桌臺情況——是否被占用,能很好分配顧客的用餐,顧客點菜時能很好的進(jìn)行記錄,有方便的結(jié)賬功能,直接計算出找零,本系統(tǒng)還能對桌臺信息進(jìn)行管理,方便以后的增加與減少桌臺,同時也能方便
10、的對服務(wù)人員的信息進(jìn)行管理,有系統(tǒng)數(shù)據(jù)庫備份功能,防止系統(tǒng)在死機的情況下丟失大量重要信息。 2.1.3 市場分析 現(xiàn)如今餐飲業(yè)發(fā)展壯大迅速,擁有一套良好的餐飲管理系統(tǒng)能在很大程度上解決許多問題,方便對服務(wù)人員的管理,以及內(nèi)部的一些信息變化的管理——如菜品、、價格、桌臺、人員,還能很好的管理顧客的點菜、查詢消費記錄、結(jié)賬,這將能改善傳統(tǒng)意義上的管理,使管理變得方便并且有效,所以本系統(tǒng)有著很好的市場需求前景。 2.2 餐飲管理系統(tǒng)的需求分析 通過實際了解,要求本系統(tǒng)具有以下功能: 系統(tǒng)采用人機交互的方式,信息查詢靈活、方便,數(shù)據(jù)存儲 安全可靠。 實現(xiàn)對餐廳顧客開臺、點菜/加菜、賬目查詢
11、和結(jié)賬等操作。 對用戶輸入的數(shù)據(jù),進(jìn)行嚴(yán)格的數(shù)據(jù)檢驗,盡可能的避免人為錯誤。 三、總體設(shè)計 3.1 項目規(guī)劃 餐飲管理系統(tǒng)主要由用戶登錄、桌臺信息管理、服務(wù)員信息管理、修改密碼、開臺、取消開臺、點/加菜、消費查詢、數(shù)據(jù)庫管理和退出等模塊組成,具體規(guī)劃如下。 (1) 用戶登錄模塊 該模塊主要用于管理員登陸進(jìn)行管理,登錄成功情況下才能進(jìn)入系統(tǒng)功能主界面,根據(jù)權(quán)限顯示其能管理范圍。 (2) 桌臺信息管理模塊 該模塊主要用于管理桌臺的信息,可以設(shè)置桌臺名稱,桌臺位置等等。 (3) 服務(wù)員信息管理模塊 該模塊主要用于方便對服務(wù)人員的信息進(jìn)行管理。 (4) 進(jìn)貨信
12、息管理模塊 該模塊主要用于管理進(jìn)貨的各種信息。 (5) 餐具信息管理模塊 該模塊主要用于實現(xiàn)對餐具的管理。 (6) 菜品信息管理模塊 該模塊主要用于實現(xiàn)直觀的了解菜品的各種信息。 (7) 設(shè)備信息管理模塊 該模塊主要用于實現(xiàn)對店里設(shè)備的管理。 (8) 顧客點菜信息管理模塊 該模塊主要用于實現(xiàn)對來就餐的客人的消費狀況進(jìn)行實時的了解。 3.2 流程設(shè)計 圖3.1 餐飲管理系統(tǒng)業(yè)務(wù)流程圖 圖3.2 功能模塊圖 圖3.3 總體流程圖 3.3 E-R圖 l
13、 圖3.4 圖3.5 圖3.6 l 圖3.7 l 圖3.8 l 圖3.9 l 圖3.10 圖3.11 3.4 模型圖 圖3.12 概念模型圖 圖3.13 物理模型圖 3.5 數(shù)據(jù)字典 E_Num:此種顏色為主鍵。 W_Waiter
14、Name:此種顏色為外鍵。 設(shè)備信息(Equipment) 表3.14 字段名稱 字段含義 字段類型 是否為主鍵 是否非空 是否唯一 E_Name 設(shè)備名稱 Varchar(50) 否 是 是 E_Num 設(shè)備編號 int 是 是 否 E_Use Time 設(shè)備使用時間 Varchar(50) 否 是 否 E_Price 設(shè)備價格 Money 否 是 否 E_Quantity 數(shù)量 int 否 是 否 餐具信息(Tableware) 表3.15 字段名稱 字段含義 字段類型 是否為主鍵 是否非空 是
15、否唯一 T_Name 餐具名稱 Varchar(50) 是 是 是 T_Num 餐具編號 int 否 是 否 T_Price 餐具價格 Money 否 是 否 TableNum 桌號 int 否 是 否 Quantity 數(shù)量 int 否 是 否 用戶信息(Userlogin) 表3.16 字段名稱 字段含義 字段類型 是否為主鍵 是否非空 是否唯一 UserName 用戶名 Varchar(50) 是 是 否 Userpwd 登錄密碼
16、 Varchar(50) 否 是 否 員工信息(Waiter) 表3.17 字段名稱 字段含義 字段類型 是否為主鍵 是否非空 是否唯一 W_WaiterName 員工姓名 Varchar(50) 是 是 是 W_WaiterNum 員工編號 int 否 是 否 Sex 性別 Char(10) 否 是 否 Age 年齡 Char(10) 否 是 否 Tel 電話號碼 int 否 是 否 CardNum 證件號 int 否 是 否
17、W_Login 管理員 Varchar(50) 否 是 否 桌臺信息(Room) 表3.18 字段名稱 字段含義 字段類型 是否為非鍵 是否為空 是否唯一 RoomName 桌臺名稱 Char( 10 ) 否 是 是 RommNum 桌臺編號 int 是 是 否 RoomPosition 桌臺位置 Char( 10 ) 否 是 否 RoomType 桌臺類型 Char( 10 ) 否 是 否 RoomStatus 桌臺狀態(tài) Varchar
18、(50) 否 是 否 GuestName 客人姓名 Varchar(50) 否 是 否 WaiterNum 服務(wù)員編號 Varchar(50) 否 是 否 W_WaiterName 員工名 Char(10) 否 是 否 進(jìn)貨信息(Purchase) 表3.19 字段名稱 字段含義 字段類型 是否為主鍵 是否非空 是否唯一 P_Time 進(jìn)貨時間 Date&time 是 是 是 P_Num 進(jìn)貨編號 int 否 是 否 P_Name 進(jìn)貨名稱
19、Varchar(50) 否 是 否 P_UsePrice 進(jìn)貨價格 Money 否 是 否 P_Waiter 進(jìn)貨員工 Varchar ( 50 ) 否 是 否 P_foodtype 進(jìn)貨菜品類型 Char(10) 否 是 否 W_WaiterName 員工名 Char(10) 否 是 否 菜品信息(Food) 表3.20 字段名稱 字段含義 字段類型 是否為主鍵 是否非空 是否唯一 Foodtype 菜品類型 Char(10) 是 是 是 Foodnum
20、 菜品編號 int 否 是 否 FoodName 菜品名稱 Varchar(50) 否 是 否 Foodprice 菜品價格 Money 否 是 否 G_FoodName 菜名 Varchar(50) 否 是 否 顧客點菜信息(Guestfood) 表3.21 字段名稱 字段含義 字段類型 是否為主鍵 是否非空 是否唯一 G_FoodName 菜品名稱 Varchar(50) 是 是 是 FoodPrice 消費金額 Money 否 是 否
21、 G_WaiterName 服務(wù)員名稱 Char(10) 否 是 否 G_FoodNum 菜品數(shù)量 int 否 是 否 DateTime 就餐時間 Date&time 否 是 否 G_RoomNum 桌臺編號 int 否 是 否 G_Foodtype 點菜類型 Char(10) 否 是 否 G_GuestName 點菜客人 Varchar(50) 否 是 否 W_WaiterName 服務(wù)員 Char(10) 否 是 否 3.6 數(shù)據(jù)表 設(shè)備信息 表Equipment用于保存設(shè)備的基本信息,該表的結(jié)構(gòu)
22、如圖3.22所示 圖3.22 菜品信息 表Food用于保存菜品的基本信息,該表的結(jié)構(gòu)如圖所示 圖3.23 點菜信息 表Guestfood用于保存顧客點菜的詳細(xì)信息,該表的結(jié)構(gòu)如圖所示。 圖3.24 進(jìn)貨信息 表Purchase用于保存進(jìn)貨的詳細(xì)信息,該表的結(jié)構(gòu)如圖所示。
23、 圖3.25 桌臺信息 表Room用于保存桌臺的一些有關(guān)信息,該表的結(jié)構(gòu)如圖所示。 圖3.26 餐具信息 表Tableware用于保存餐具的一些有關(guān)信息,該表的結(jié)構(gòu)如圖所示。 圖3.27 用戶信息 表Userlogin用于保存登錄用戶基本信息,表的結(jié)構(gòu)如圖所示。 圖3.28 員工信息 表Waiter用于保存餐廳服務(wù)人員的一些基本信息,表的
24、結(jié)構(gòu)如圖所示。 圖3.29 四、查詢 (1) 創(chuàng)建單表查詢 USE CANYIN_db SELECT Food.FoodName 名稱,Food.FoodPrice 價格 FROM Food WHERE Food.Foodtype='肉'; 圖 4.1 USE CANYIN_db SELECT Food.Foodtype,Food.FoodName FROM Food WHERE Food.Foodn
25、um='2001'; 圖4.2 USE CANYIN_db SELECT Guestfood.FoodPrice,Guestfood.G_Foodtype FROM Guestfood WHERE Guestfood.G_FoodNum='2001'; 圖4.3 (2) 創(chuàng)建多表查詢 USE CANYIN_db SELECT Food.FoodName 菜名稱,Food.FoodPrice 價格,Guestfood.G_WaiterName 服務(wù)員 FRO
26、M Food,Guestfood WHERE Food.Foodtype='肉' AND Food.FoodName=Guestfood.G_FoodName 圖4.4 USE CANYIN_db SELECT Food.Foodtype,Food.FoodName,Guestfood.G_WaiterName 服務(wù)員 FROM Food,Guestfood WHERE Food.Foodnum='2001' AND Food.FoodName=Guestfood.G_FoodName
27、 圖4.5 USE CANYIN_db SELECT Guestfood.FoodPrice,Guestfood.G_Foodtype,Food.FoodName FROM Food,Guestfood WHERE Food.Foodnum='2001' AND Food.FoodName=Guestfood.G_FoodName 圖4.6 ( 3 ) 創(chuàng)建視圖 CREATE VIEW Purchase2 AS SELECT P_Time,P_Num FROM Purchase GO
28、 USE CANYIN_db; SELECT*FROM Purchase; 圖4.7 五、數(shù)據(jù)庫代碼 建庫: CREATE DATABASE [CANYIN_db] ON PRIMARY ( NAME='CANYIN_db', FILENAME='E:\數(shù)據(jù)庫\CANYIN.mdf', SIZE=20MB, MAXSIZE=50MB, FILEGROWTH=15% ) LOG ON ( NAME='CANYIN_log', FILENAME='E:\數(shù)據(jù)庫\CANYIN_log.ldf',
29、 SIZE=20MB, MAXSIZE=50MB, FILEGROWTH=10% ) GO 建表: use CANYIN_db CREATE TABLE Equipment ( E_Name varchar(50) Primary key, E_Num int not null, E_UseTime varchar(50) not null, E_Price money not null, E_Quantity int not null ); CREATE TABLE Tableware ( T_Name varchar(50) Primary Ke
30、y, T_Num int not null, T_Price money not null, TableNum int not null, Quantity int not null ); CREATE TABLE Userlogin ( Login varchar(50) Primary Key, UserName varchar(50) not null, Userpwd varchar(50) not null ); CREATE TABLE Waiter ( W_WaiterName varchar(50) Primary Key, W_W
31、aiterNum int not null, Sex char(10) not null, Age char(10) not null, Tel int not null, CardNum int not null, W_Login varchar(50) not null ); CREATE TABLE Room ( RoomName char(10) not null, RoomNum int Primary Key, RoomPosition char(10) not null,
32、RoomType char(10) not null, RoomStatus varchar(50) not null, GuestName varchar(50) not null, WaiterNum varchar(50) not null ); CREATE TABLE Purchase ( P_Time datetime Primary Key, P_Num int not null, P_Name varchar(50) not null, P_UsePrice money not null, P_Waiter varchar(50) not null,
33、 P_foodtype char(10) not null ); CREATE TABLE Food ( Foodtype char(10) Primary Key, Foodnum int not null, FoodName varchar(50) not null, FoodPrice money not null ); CREATE TABLE Guestfood ( G_FoodName varchar(50) Primary Key, FoodPrice money not null, G_WaiterName varchar(50) not null
34、, G_FoodNum int not null, DateTime datetime not null, G_RoomNum int not null, G_Foodtype char(10) not null, G_GuestName varchar(50) not null ); 心得體會 經(jīng)過兩個周的《數(shù)據(jù)庫原理及應(yīng)用》課程設(shè)計,使我對數(shù)據(jù)庫的操作操作和實現(xiàn)有了進(jìn)一步的提高。 從懵懵懂懂到駕輕就熟,我了
35、解了數(shù)據(jù)庫的實現(xiàn)對于我還有很大的困難,并且對《數(shù)據(jù)庫原理及應(yīng)用》這個課程還有很多疑問和疑惑。在做這次課設(shè)的過程中,使我發(fā)現(xiàn)了我對于使用SQL Server 還有缺陷,也可以說是不熟練,因為有些元素的位置在我放進(jìn)去之后的錄入過程中才發(fā)現(xiàn)操作的很不舒服,有些外鍵設(shè)置完之后還會出現(xiàn)新的問題,所以,對這門學(xué)科的學(xué)習(xí)和理解我還有待進(jìn)一步的提高。 其次,通過這次課設(shè)我也了解到了團(tuán)隊的重要性。小組與小組之間,小組內(nèi)部成員之間都可以有交流和研究,才能使得我的課設(shè)做的自認(rèn)為很完善。
36、 六、參考文獻(xiàn) [1]. 施伯樂.數(shù)據(jù)庫系統(tǒng)教程(第三版),北京:高等教育出版社,2011 [2]. 王英英.SQL Server 2012從零開始學(xué),北京:清華大學(xué)出版社,2012 致謝 本文從選題、構(gòu)思、提綱擬訂、資料收集、論文寫作及修改至最后定稿,歷時將近兩周,在這段時間內(nèi), 老師為我的課題傾入了大量的心血,給予了我豐富的建議和悉心的指導(dǎo)。設(shè)計臨近尾聲,我對老師表示衷心的感謝。他是一位非常優(yōu)秀的年輕老師,知識淵博,嚴(yán)謹(jǐn)負(fù)責(zé),做事態(tài)度非常認(rèn)真,他優(yōu)良的風(fēng)范深深地影響著我,讓我擁有了正確的學(xué)習(xí)態(tài)度和對科學(xué)的嚴(yán)謹(jǐn),順利地完成了課
37、程設(shè)計。 另外,我要感謝學(xué)院使我學(xué)到了很多知識,得到了鍛煉。同時也非常感謝所有關(guān)心過我、幫助過我的老師和同學(xué)們。我會再接再厲,更上一層樓。 最后向所有支持和曾經(jīng)幫助過我的人表示衷心的感謝! 附錄 SQL編程規(guī)范 一、sql書寫規(guī)范: 二、書寫優(yōu)化性能建議 三、其他經(jīng)驗性規(guī)則 一、sql書寫規(guī)范: 1、系統(tǒng)保留字、內(nèi)置函數(shù)名、sql保留字大寫。 2、連接符or、in、and、以及=、<=、>=等前后加上一個空格。 3、對較為復(fù)雜的sql語句加上注釋,說明算法、功能。 注釋風(fēng)格:注釋單獨成行、放在語句前面。 (1) 應(yīng)
38、對不易理解的分支條件表達(dá)式加注釋; (2) 對重要的計算應(yīng)說明其功能; (3) 過長的函數(shù)實現(xiàn),應(yīng)將其語句按實現(xiàn)的功能分段加以概括性說明; (4) 每條SQL語句均應(yīng)有注釋說明(表名、字段名)。 (5) 常量及變量注釋時,應(yīng)注釋被保存值的含義(必須),合法取值的范圍(可選) (6) 可采用單行/多行注釋。(-- 或 /* */ 方式) 4、SQL語句的縮進(jìn)風(fēng)格 (1) 一行有多列,超過80個字符時,基于列對齊原則,采用下行縮進(jìn) (2) where子句書寫時,每個條件占一行,語句令起一行時,以保留字或者連接符開始,連接符右對齊。 5、多表連接時,使用表的別名來引用列。 6、供別的
39、文件或函數(shù)調(diào)用的函數(shù),絕不應(yīng)使用全局變量交換數(shù)據(jù); 如例(1) 二、書寫優(yōu)化性能建議 1、避免嵌套連接。例如:A = B and B = C and C = D 2、where條件中盡量減少使用常量比較,改用主機變量 3、系統(tǒng)可能選擇基于規(guī)則的優(yōu)化器,所以將結(jié)果集返回數(shù)據(jù)量小的表作為驅(qū)動表(from后邊最后一個表)。 4、大量的排序操作影響系統(tǒng)性能,所以盡量減少order by和group by排序操作。 如必須使用排序操作,請遵循如下規(guī)則: (1) 排序盡量建立在有索引的列上。 (2) 如結(jié)果集不需唯一,使用union all代替union。 5、索引的使
40、用。 (1) 盡量避免對索引列進(jìn)行計算。如對索引列計算較多,請?zhí)嵴埾到y(tǒng)管理員建立函數(shù)索引。 (2) 盡量注意比較值與索引列數(shù)據(jù)類型的一致性。 (3) 對于復(fù)合索引,SQL語句必須使用主索引列 (4) 索引中,盡量避免使用NULL。 (5) 對于索引的比較,盡量避免使用NOT=(!=) (6) 查詢列和排序列與索引列次序保持一致 6、盡量避免相同語句由于書寫格式的不同,而導(dǎo)致多次語法分析。 7、盡量使用共享的SQL語句。 8、查詢的WHERE過濾原則,應(yīng)使過濾記錄數(shù)最多的條件放在最前面。 9、任何對列的操作都將導(dǎo)致表掃描,它包括數(shù)據(jù)庫函數(shù)、計算表達(dá)式等等,查詢時要盡可能將操作
41、移至等號右邊。 10、in、or子句常會使用工作表,使索引失效;如果不產(chǎn)生大量重復(fù)值,可以考慮把子句拆開;拆開的子句中應(yīng)該包含索引。 三、其他經(jīng)驗性規(guī)則 1、盡量少用嵌套查詢。如必須,請用not exist代替not in子句。如例(2) 2、用多表連接代替EXISTS子句。如例(3) 3、少用DISTINCT,用EXISTS代替 如例(4) 4、使用UNION ALL、MINUS、INTERSECT提高性能 5、使用ROWID提高檢索速度。對SELECT得到的單行記錄,需進(jìn)行DELETE、UPDATE操作時,使用ROWID將會使效率大大提高。 6、使用優(yōu)化線索機制進(jìn)行訪問路徑控制。 7、使用cursor時,顯示光標(biāo)優(yōu)于隱式光標(biāo)
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中語文作文素材:30篇文學(xué)名著開場白
- 初中語文答題技巧:現(xiàn)代文閱讀-說明文閱讀知識點總結(jié)
- 初中語文作文十大??荚掝}+素材
- 初中語文作文素材:描寫冬天的好詞、好句、好段總結(jié)
- 初中語文必考名著總結(jié)
- 初中語文作文常見主題總結(jié)
- 初中語文考試??济偨Y(jié)
- 初中語文必考50篇古詩文默寫
- 初中語文易錯易混詞總結(jié)
- 初中語文228條文學(xué)常識
- 初中語文作文素材:30組可以用古詩詞當(dāng)作文標(biāo)題
- 初中語文古代文化常識七大類別總結(jié)
- 初中語文作文素材:100個文藝韻味小短句
- 初中語文閱讀理解33套答題公式
- 初中語文228條文學(xué)常識總結(jié)