新聞中心
隨著數(shù)據(jù)處理的需求不斷增大,越來越多的公司開始向數(shù)據(jù)庫二次開發(fā)培訓和技術(shù)方案尋求幫助。數(shù)據(jù)庫二次開發(fā)能夠?qū)⒔?jīng)驗豐富的專業(yè)人員和強大的技術(shù)結(jié)合起來,在對數(shù)據(jù)進行操作時提供更高效、更準確的解決方案。通過參加數(shù)據(jù)庫二次開發(fā)培訓,人們可以掌握一些列有助于打造高效數(shù)據(jù)處理能力的技術(shù)。

1.了解數(shù)據(jù)庫管理系統(tǒng)的基本知識
數(shù)據(jù)庫二次開發(fā)的之一步是深入學習數(shù)據(jù)庫管理系統(tǒng)的基本知識。要理解數(shù)據(jù)庫系統(tǒng)如何存儲數(shù)據(jù)、如何管理數(shù)據(jù)、如何保護數(shù)據(jù)等各種問題。此外,還需要了解結(jié)構(gòu)化查詢語言(SQL)的基本操作,以及如何通過SQL訪問和更新數(shù)據(jù)。
2.精通數(shù)據(jù)庫表格設(shè)計
數(shù)據(jù)庫表格的設(shè)計可以直接影響到數(shù)據(jù)處理的效率和準確性。因此,在數(shù)據(jù)庫二次開發(fā)培訓中,需要學習如何設(shè)計合理的數(shù)據(jù)庫表格結(jié)構(gòu)。這包括了解數(shù)據(jù)庫表格中各種數(shù)據(jù)類型,如何使用主鍵和外鍵關(guān)系等等。通過掌握這些技能,開發(fā)人員可以更好地管理數(shù)據(jù)、提高性能并減少數(shù)據(jù)冗余。
3.掌握數(shù)據(jù)庫編程
數(shù)據(jù)庫二次開發(fā)培訓涉及到數(shù)據(jù)庫編程的學習。開發(fā)人員可以使用各種編程語言(如Java、Python等)編寫腳本來訪問和管理數(shù)據(jù)庫。編寫程序可以自動完成復雜的數(shù)據(jù)處理任務(wù)、自定義數(shù)據(jù)查詢并生成數(shù)據(jù)報表。此外,程序化的數(shù)據(jù)庫管理可以提高數(shù)據(jù)處理的速度,減少人為錯誤。
4.熟悉數(shù)據(jù)庫的安全管理
數(shù)據(jù)庫的安全管理是數(shù)據(jù)庫二次開發(fā)培訓中的一個關(guān)鍵方面。開發(fā)人員必須了解數(shù)據(jù)庫系統(tǒng)的安全和隱私問題,并掌握如何設(shè)置、管理和保護連接和數(shù)據(jù)庫的權(quán)限。此外,開發(fā)人員必須具備處理暴力破解攻擊和其他安全問題的技能,確保敏感數(shù)據(jù)不被竊取、篡改或破壞。
5.掌握數(shù)據(jù)分析和報表生成技能
隨著各種數(shù)據(jù)集的不斷增長,在數(shù)據(jù)處理引擎內(nèi)生成分析和報告已經(jīng)成為數(shù)據(jù)分析和業(yè)務(wù)決策的關(guān)鍵環(huán)節(jié)。在數(shù)據(jù)庫二次開發(fā)培訓中,學員可以掌握數(shù)據(jù)分析和報表生成的技能。通過深入學習各種方法和工具,開發(fā)人員可以提供更準確、實時和有用的數(shù)據(jù)分析和報表。
總而言之,雖然數(shù)據(jù)庫二次開發(fā)技術(shù)早已被廣泛應用,但是,更多企業(yè)面臨著數(shù)據(jù)集增大及需求擴大的問題。因此,這些公司需要依靠數(shù)據(jù)庫二次開發(fā)培訓程序,培養(yǎng)專業(yè)人員的相關(guān)技能,提高數(shù)據(jù)庫處理的能力。通過掌握基本的數(shù)據(jù)庫管理、編程、安全和數(shù)據(jù)分析技能,他們可以更好地管理和處理數(shù)據(jù),并得到更好的業(yè)務(wù)成果。
相關(guān)問題拓展閱讀:
- 如何用SQL2023建立一個簡單的公司數(shù)據(jù)庫
如何用SQL2023建立一個簡單的公司數(shù)據(jù)庫
E文悉哪四級過了吧?看SQL2023里的示例數(shù)據(jù)庫AdventureWorks
基本公司的數(shù)據(jù)庫需要的他都有亮陸友了,敬槐要是特定公司的特定業(yè)務(wù),改下也可以用,反正只會多不會少
一份設(shè)計合理的數(shù)據(jù)庫,對程序開發(fā)可以達到事半功倍的效果,對于后期維護、二次開發(fā)的重要性更是不言而喻。
數(shù)據(jù)設(shè)計、實現(xiàn)過程中的注意事件(個人觀點):
1.命名規(guī)范:
1)表:模塊前綴+英文單詞,如 BBS_UserInfo;
2)字段:表前綴+英文單詞,如 U_Name;
2.三大范式:
盡量滿足數(shù)據(jù)庫設(shè)計三大范式。
之一范式(1NF)是指數(shù)據(jù)庫表的每一列都是不可分割的基本數(shù)據(jù)項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。
第二范式(2NF):要求數(shù)據(jù)庫表中的每個實例或行必須可以被惟一地區(qū)分,數(shù)據(jù)庫表中不存在非關(guān)鍵字段對任一候選關(guān)鍵字段的部分函數(shù)依賴(部分函數(shù)依賴指的是存在組合關(guān)鍵字中的某些字段決定非關(guān)鍵字段的情況),也即所有非關(guān)鍵字段都完全依賴于任意一組候選關(guān)鍵字。
第三范式(3NF):要求一個數(shù)據(jù)庫表中不包含已在其它表中已包含的非主關(guān)鍵字喊讓信息,在第二范式的基礎(chǔ)上,數(shù)據(jù)表中如果不存在非關(guān)鍵字段對任一候選關(guān)鍵字段的傳遞函數(shù)依賴則符合第三范式。
3.數(shù)據(jù)結(jié)構(gòu):
建立必要的主外鍵關(guān)系、建立好多表查詢聯(lián)合查詢、復雜條件查詢的儲存過程等等。
4.保留數(shù)據(jù)庫設(shè)計文檔(這點對于二次開發(fā)尤為重要)。
友情分灶滲鉛割線(以下為收藏資料,已忘記原出處)
1數(shù)據(jù)庫表及字段命名、設(shè)計規(guī)范
1.1數(shù)據(jù)庫表數(shù)據(jù)庫表的命名規(guī)范:
?表的前綴應該用系統(tǒng)或模塊的英文名的縮寫(全部大寫或首字母大寫)。如果系統(tǒng)功能簡單,沒有劃分為模塊,則可以以系統(tǒng)英文名稱的縮寫作為前綴,否則以各模塊的英文名稱縮寫作為前綴。例如:如果有一個模塊叫做BBS(縮寫為BBS),那么你的數(shù)據(jù)庫中的所有對象的名稱都要加上這個前綴:BBS_ + 數(shù)據(jù)庫對象名稱,BBS_CustomerInfo標示論壇模塊中的客戶信息表
?表的名稱必須是易于理解,能表達表的功能的英文單詞或縮寫英文單詞,無論是完整英文單詞還是縮寫英文單詞,單詞首字母必須大寫。如果當前表可用一個英文單詞表示的,請用完整的英文單詞來表示;例如:系統(tǒng)資料中的客戶表的表名可命名為:SYS_Customer。如果當前表需用兩個或兩個以上的單詞來表示時,盡量以完整形式書寫,如太長可采用兩個英文單詞的縮寫形式;例如:系統(tǒng)資料中的客戶物料表可命名為:SYS_CustItem。
?表名稱不應該取得太長(一般不超過三個英文單詞)。
?在命名表時,用單數(shù)形式表示名稱。例如,使用 Employee,而不是 Employees。
?對于有主明細的表來說。明細表的名稱為:主表的名稱 + 字符Dts。例如:采購定單的名稱為:PO_Order,則采購定單的明細表為:PO_OrderDts
?對于有主明細的表來說,明細表必須包含兩個字段:主表關(guān)鍵字、SN,SN字段的類型為int型,目的為與主表關(guān)鍵字聯(lián)合組成明細表的關(guān)鍵字,以及標示明細記錄的先后順序,如1,2,3……。
?表必須填寫描述信息
?后臺表名盡量與前臺表名相同,后有的表應以_b作為后綴。如r_gggd_b
1.2表字段
? 命名規(guī)范
數(shù)據(jù)庫字段的命名必須遵循以下規(guī)范:
?采用有意義的字段名。字段的名稱必須是易于理解,能表達字段功能的英文單詞或縮寫英文單詞,單詞首字母必須大寫,一般不超過三個英文單詞。例如:人員信息表中的號碼可命名為:Telephone或Tel。產(chǎn)品明細表中的產(chǎn)品名稱可用ProductName表示。(推薦一般用完整的英文單詞)。
?系統(tǒng)中所有屬于內(nèi)碼字段(僅用于標示唯一性和程序內(nèi)部用到的標示性字隱好段),名稱取為:“ID”,采用整型或長整型數(shù),具體根據(jù)可能的數(shù)據(jù)量確定,增加記錄時取更大值加1,該字段通常為主關(guān)鍵字。
?系統(tǒng)中屬于是業(yè)務(wù)范圍內(nèi)的編號的字段,其代表一定的業(yè)務(wù)信息,比如資料信息和單據(jù)的編號,這樣的字段建議命名為:“Code”,其數(shù)據(jù)類型為varchar,該字段需加唯一索引。
?在命名表的列時,不要重復表的名稱;例如,在名為 Employee 的表中避免使用名為 EmployeeLastName 的字段。
?不要在列的名稱中包含數(shù)據(jù)類型。
?設(shè)計規(guī)范
?所有字段在設(shè)計時,除以下數(shù)據(jù)類型timestamp、image、datetime、alldatetime、uniqueidentifier、binary、sql_variant、binary 、varbinary外,必須有默認值。字符型的默認值為一個空字符值串’’;數(shù)值型的默認值為數(shù)值0;邏輯型的默認值為數(shù)值0;
其中:系統(tǒng)中所有邏輯型中數(shù)值0表示為“假”;數(shù)值1表示為“真”。
datetime、alldatetime類型的字段沒有默認值,必須為NULL。
?當字段定義為字符串形時建議使用varchar而不用nvarchar。
?建議在大多數(shù)表中(如報銷單,申請單),應都有以下字段:
字段名說明類型默認值
CreatorID創(chuàng)建者int0
CreatedTime創(chuàng)建時間DatetimeNULL
?字段的描述
數(shù)據(jù)庫中每個字段的描述(Description)如下:
?盡量遵守第三范式的標準(3NF)。
?表內(nèi)的每一個值只能被表達一次
?表內(nèi)的每一行都應當被唯一的標示
?表內(nèi)不應該存儲依賴于其他鍵的非鍵信息
?如果字段事實上是與其它表的關(guān)鍵字相關(guān)聯(lián)而未設(shè)計為外鍵引用,需建索引。
?如果字段與其它表的字段相關(guān)聯(lián),需建索引。
?如果字段需做模糊查詢之外的條件查詢,需建索引。
?除了主關(guān)鍵字允許建立簇索引外,其它字段所建索引必須為非簇索引。
?字段必須填寫描述信息
2存貯過程命名及設(shè)計規(guī)范
2.1命名規(guī)范
存貯過程的命名請遵循以下命名規(guī)范:USP _ + 系統(tǒng)模塊縮寫(與表前綴類似)+_ + 功能標識 + 代表存貯過程操作的主要表名(不帶前綴)或功能的英文單詞或英文單詞縮寫。
如果一個存貯過程只對一個表進行操作,建議存貯過程的名稱就用存貯過程所操作的表的表名(不帶前綴)。這樣有利于根據(jù)表名找到相應的存貯過程。
為了在眾多的存貯過程中能很快的找到并維護存貯過程,我們按存貯過程的作用將系統(tǒng)的存貯過程
進行以下的分類及命名:(以下示例假設(shè)存貯過程所在的模塊名為ORG)
作用之一前綴第二前綴名
(功能標識)示例
用于新增的存貯過程USP_ORGAddUSP_ORG_Add_Employee
用于修改的存貯過程USP_ORGUptUSP _ORG_Upt_Employee
用于刪除的存貯過程USP_ORGDelUSP _ORG_Del_Employee
用于單據(jù)查詢的存貯過程USP_ORGQryUSP _ORG_Qry_Employee
用于報表統(tǒng)計的存貯過程USP_ORGRptUSP _ORG_Rpt_GetEmployee
用于一些特殊過程處理的存貯過程USP_ORGOthUSP _ORG_Oth_SetSystemMessage
如果系統(tǒng)中的存貯過程只有一級,則遵照以上規(guī)則命名,如果存在多級,則需要區(qū)分其屬于哪一級,具體為:USP + 所屬的級次 + _ + 后面的部分
例如:
1.USP1_ORG_Add_Subject(沒有調(diào)用其它存貯過程)
2.USP2_ORG_Upt_Subject(調(diào)用了第1級的存貯過程)
3.USP3_ORG_Qry_Subject(調(diào)用了第2級的存貯過程)
2.2設(shè)計規(guī)范
在存貯過程中必須說明以下內(nèi)容:
目的:說明此存貯過程的作用。
作者:首次創(chuàng)建此存貯過程的人的姓名。在此請使用中文全名,不允許使用英文簡稱。
創(chuàng)建日期:創(chuàng)建存貯過程時的日期。
修改記錄:
修改記錄需包含修改順序號、修改者、修改日期、修改原因,修改時不能直接在原來的代碼上修改,也不能刪除原來的代碼,只能先將原來的代碼注釋掉,再重新增加正確的代碼。修改順序號的形式為:log1,log2,log3。。。,根據(jù)修改次數(shù)順序增加,同時在注釋掉的原來的代碼塊和新增的正確代碼塊前后注明修改順序號。
對存貯過程各參數(shù)及變量的中文注解。
示例如下:
/*
目的:根據(jù)部門與物料和會計區(qū)間查詢生產(chǎn)現(xiàn)場領(lǐng)料匯總報表
作者:李奇
創(chuàng)建日期:
*/
/*
修改順序號:log1
修改者:劉敏
修改日期:2023.12.22
修改原因:(具體原因詳細描述)
*/
CREATE PROCEDURE .
@ProductionType int=1, –生產(chǎn)類型(1-自制;0-委外加工)
@DeptID int=0,生產(chǎn)部門
@ItemID int=0,物料
@StartDate datetime=”,–會計區(qū)間開始日期
@EndDate datetime=”–會計區(qū)間截止日期
AS
/*
log1 old
–自制領(lǐng)料
INSERT INTO #LMSDts
SELECT dbo.iStockBill.DeptID, dbo.fDept.DeptName,
dbo.mLMS.ItemID AS ItemInterID, dbo.fItem.ItemID, dbo.fItem.ItemName,
ISNULL(dbo.fItem.Model, N”) AS Model, ISNULL(dbo.fUnit.UnitName, N”)
AS UnitName, dbo.mLMS.Qty, dbo.mLMS.TransType, dbo.mWO.OrderType,
dbo.mLMS.CreateTime
end log1 old
*/
–log1 new
–自制領(lǐng)料
INSERT INTO #LMSDts
SELECT dbo.iStockBill.DeptID, dbo.fDept.DeptName,
dbo.mLMS.ItemID AS ItemInterID, dbo.fItem.ItemID, dbo.fItem.ItemName,
ISNULL(dbo.fItem.Model, N”) AS Model, ISNULL(dbo.fUnit.UnitName, N”)
AS UnitName, dbo.mLMS.Qty, dbo.mLMS.TransType, dbo.mWO.OrderType,
dbo.mLMS.CreateTime
–end log1 new
3 視圖命名規(guī)范
3.1命名規(guī)范
視圖的命名請遵循以下命名規(guī)范:UV _ + 系統(tǒng)模塊縮寫(與表前綴類似)+_ + 功能標識 + 代表視圖查詢的主要表名(不帶前綴)或功能的英文單詞或英文單詞縮寫。
如果一個視圖只對一個表進行查詢,建議視圖的名稱就用視圖所查詢的表的表名(不帶前綴)。這樣有利于根據(jù)表名找到相應的視圖。
為了在眾多的視圖中能很快的找到并維護視圖,我們按其作用將系統(tǒng)的視圖
進行以下的分類及命名:(以下示例假設(shè)視圖所在的模塊名為ORG)
作用之一前綴第二前綴名
(功能標識)示例
用于單據(jù)查詢的視圖UV_ORGQryUV_ORG_Qry_Employee
用于報表統(tǒng)計的視圖UV_ORGRptUV_ORG_Rpt_GetEmployee
用于一些特殊過程處理的視圖UV_ORGOthUV_ORG_Oth_SetSystemMessage
如果系統(tǒng)中的視圖只有一級,則遵照以上規(guī)則命名,如果存在多級,則需要區(qū)分其屬于哪一級,具體為:UV + 所屬的級次 + _ + 后面的部分
例如:
UV1_ORG_Add_Subject(沒有調(diào)用其它視圖)
UV2_ORG_Upt_Subject(調(diào)用了第1級的視圖)
UV3_ORG_Qry_Subject(調(diào)用了第2級的視圖)
3.2 設(shè)計規(guī)范
在視圖中必須說明以下內(nèi)容:
目的:說明此視圖的作用。
創(chuàng)建者:首次創(chuàng)建此視圖的人的姓名。在此請使用中文全名,不允許使用英文簡稱。
修改者、修改日期、修改原因:如果有人對此視圖進行了修改,則必須在此視圖的前面加注修改者姓名、修改日期及修改原因。
對視圖各參數(shù)及變量的中文注解。
示例如下:
/*
目的:查詢本月所要培訓的科目
創(chuàng)建:加菲貓
時間:
修改者:Dyan 修改日期:
修改原因及內(nèi)容:學員不需要培訓,將不需要培訓的課程去掉。
修改者:周明 修改日期:
修改原因及內(nèi)容:增加一門新課程
*/
CREATE VIEW dbo.USP_AddSubject
AS
SELECT SubjectIId AS 課程編號
FROM dbo.ZfLocaleDecide
3.3 存儲過程和事務(wù)處理
如果事務(wù)處理在存儲過程返回時的嵌套層次與執(zhí)行時的層次不同,SQL Server會顯示信息提示事務(wù)處理嵌套失控。因為存儲過程并不異常終止該批處理,在執(zhí)行和確認隨后的語句時,過程內(nèi)的rollback tran 會導致數(shù)據(jù)完整性損失。
在編寫存儲過程時,應遵守以下原則:
1.過程對@@trancount應無凈改變。
2.僅當存儲過程發(fā)出begin tran語句時,才發(fā)出rollback tran。
3.4 其他注意事項
存儲過程應該堅實可靠的,因為它們是駐留在服務(wù)器中,被頻繁使用的。應仔細檢查參數(shù)的有效性,并在有問題時返回出錯信息。應確保參數(shù)的數(shù)據(jù)類型和被比較的欄的數(shù)據(jù)類型匹配,從而避免數(shù)據(jù)類型匹配錯誤。在每個SQL語句之后要檢查@@error。
4觸發(fā)器編碼規(guī)范
4.1命名規(guī)范
觸發(fā)器名為相應的表名加上后綴
Insert觸發(fā)器加’_i’,Delete觸發(fā)器加’_d’,Update觸發(fā)器加’_u’,如:r_bch_i,r_bch_d,r_bch_u。
4.2 設(shè)計規(guī)范
在觸發(fā)器中必須說明以下內(nèi)容:
目的:說明此觸發(fā)器的作用。
創(chuàng)建者:首次創(chuàng)建人的姓名。在此請使用中文全名,不允許使用英文簡稱。
修改者、修改日期、修改原因:如果有人對此視圖進行了修改,則必須在此視圖的前面加注修改者姓名、修改日期及修改原因。
對其中各參數(shù)及變量的中文注解。
4.3范例
下面通過一個例子,說明觸發(fā)器編程中應遵守的規(guī)范:
/* delete related r_a according to deleted table */
CREATE TRIGGER r_a_d ON r_a
FOR DELETE
AS
IF @@ROWCOUNT = 0 -no rows deleted
RETURN
/* delete r_b table related to deleted table */
DELETE r_b
FROM r_b b, deleted d
WHERE b.id=d.id
IF @@ERROR != 0
BEGIN
RAISERROR(“Error occurred deleting related records”, 16, 1)
ROLLBACK TRAN
END
RETURN
作以下幾點說明:
1.檢查是否有行被修改。注意:不論數(shù)據(jù)是否被修改,觸發(fā)器都會引發(fā),執(zhí)行情況取決于T-SQL語句的執(zhí)行,而和任何潛在的where子句是否執(zhí)行無關(guān)。
2.因為被刪除行在該表中不再可用,所以應在被刪除的表中查看。
3.檢查T-SQL語句的返回代碼,以捕獲任何出錯條件。
4.4 事務(wù)過程中的觸發(fā)器
1.觸發(fā)器內(nèi)的rollback將所有工作返回至最外層的begin tran,完成觸發(fā)器內(nèi)的處理并異常終止當前的批處理。
2.不可以從觸發(fā)器內(nèi)部返回至某個已命名的事務(wù)過程,這將產(chǎn)生運行錯誤,掛起所有工作并終止批處理。
5 SQL語言編碼規(guī)范
5.1所有關(guān)鍵字必須大寫。
如:INSERT、UPDATE、DELETE、SELECT及其子句。
IF……ELSE、CASE、DECLARE等。
所有函數(shù)及其參數(shù)中除用戶變量以外的部分必須大寫。
?在定義變量時用到的數(shù)據(jù)類型必須小寫。
?所有關(guān)鍵字必須大寫
5.2注釋
注釋可以包含在批處理中。在觸發(fā)器、存儲過程中包含描述性注釋將大大增加文本的可讀性和可維護性。本規(guī)范建議:
1、注釋以英文為主。
實際應用中,發(fā)現(xiàn)以中文注釋的SQL語句版本在英文環(huán)境中不可用。為避免后續(xù)版本執(zhí)行過程中發(fā)生某些異常錯誤,建議使用英文注釋。
2、注釋盡可能詳細、全面。
創(chuàng)建每一數(shù)據(jù)對象前,應具體描述該對象的功能和用途。
傳入?yún)?shù)的含義應該有所說明。如果取值范圍確定,也應該一并說明。取值有特定含義的變量(如boolean類型變量),應給出每個值的含義。
3、注釋語法包含兩種情況:單行注釋、多行注釋
單行注釋:注釋前有兩個連字符(–),最后以行尾序列(CR-LF)結(jié)束。一般,對變量、條件子句可以采用該類注釋。
多行注釋:符號/*和*/之間的內(nèi)容為注釋內(nèi)容。對某項完整的操作建議使用該類注釋。
4、注釋簡潔,同時應描述清晰。
5函數(shù)注釋:
編寫函數(shù)文本–如觸發(fā)器、存儲過程以及其他數(shù)據(jù)對象–時,必須為每個函數(shù)增加適當注釋。該注釋以多行注釋為主,主要結(jié)構(gòu)如下:
/************************************************************************
*name: –函數(shù)名
*function : –函數(shù)功能
*input: –輸入?yún)?shù)
*output : –輸出參數(shù)
*author : –作者
*CreateDate :-創(chuàng)建時間
*UpdateDate : –函數(shù)更改信息(包括作者、時間、更改內(nèi)容等)
*************************************************************************/
CREATE PROCEDURE sp_xxx
…
5.3條件執(zhí)行語句if…else
條件語句塊(statenemt block,以 begin…end為邊界)僅在if子句的條件為真時才被執(zhí)行。
為提高代碼的可讀性,建議嵌套不多于5層。還有,當嵌套層次太多時,應該考慮是否可以使用case語句。
5.4重復執(zhí)行while和跳轉(zhuǎn)語句goto
需要多次執(zhí)行的語句,可以使用while結(jié)構(gòu)。其中,控制while循環(huán)的條件在任何處理開始之前需要先執(zhí)行一次。循環(huán)體中的保留字break無條件的退出while循環(huán),然后繼續(xù)處理后續(xù)語句;保留字continue重新計算while條件,如果條件為真,則從循環(huán)開始處重新執(zhí)行各語句。
使用跳轉(zhuǎn)語句goto和標簽label也可以方便地實現(xiàn)循環(huán)和其他更靈活的操作。SQL SERVER僅具有單通道語法分析器,因此不能解析對尚未創(chuàng)建的對象所做的前向參考。換言之,跳轉(zhuǎn)到某標簽的后續(xù)語句應該是可執(zhí)行的(如不存在可能尚未創(chuàng)建的數(shù)據(jù)對象)。
5.5書寫格式
數(shù)據(jù)庫服務(wù)器端的觸發(fā)器和存儲過程是一類特殊的文本,為方便開發(fā)和維護,提高代碼的易讀性和可維護性。規(guī)范建議按照分級縮進格式編寫該文本。
順序執(zhí)行的各命令位于同一級;條件語句塊(statenemt block,以 begin…end為邊界)位于下一級,類推。
SQL語句是該文本的主體。為適應某些教復雜的用戶需求,SQL語句可能比較龐大。為方便閱讀和維護,規(guī)范建議按照SQL語句中系統(tǒng)保留字的關(guān)鍵程度再劃分為三級。具體分級請參照下表。其中,非系統(tǒng)保留字(如字段名、數(shù)據(jù)表名、標點符號)相對本級保留字再縮進一級。多個連續(xù)的非保留字可以分行書寫,也可以寫在同一行。當WHERE包含的條件子句教復雜時,應該每行只寫一個條件分句,并為重要的條件字句填寫單行注釋。
在保證基本縮進格式的前提下,可以通過對齊某些重要關(guān)鍵字(如條件關(guān)鍵字AND、OR,符號 = 、 等)來進一步提高文本的易讀性和可維護性。
相鄰兩級的縮進量為10個空格。這也是ISQL編輯器默認的文本縮進量。另外,在ISQL編輯器中,一個TAB鍵也相當于10個空格。
6數(shù)據(jù)對象的國際化
6.1關(guān)于數(shù)據(jù)對象的命名
數(shù)據(jù)對象和變量的命名一律采用英文字符。禁止使用中文命名。其他命名注意事項和規(guī)范請參考2命名規(guī)則。
6.2關(guān)于RAISERROR
SQL SERVER 系統(tǒng)的RAISERROR命令能夠把某個出錯情況返回給調(diào)用過程,這對說明調(diào)用過程的執(zhí)行情況很有必要;同時可以部分避免客戶端的冗余操作。另外,結(jié)合系統(tǒng)存儲過程sp_addmessage和sp_dropmessage可以方便實現(xiàn)數(shù)據(jù)對象在SQL SERVER端的國際化。
SQL SERVER的MASTER數(shù)據(jù)庫中有錯誤信息數(shù)據(jù)表syessages,專門用于存儲系統(tǒng)和用戶的錯誤提示及相關(guān)信息(如錯誤ID號、錯誤等級、狀態(tài))。用戶可以調(diào)用sp_addmessage和sp_dropmessage預先將各類錯誤信息記入該數(shù)據(jù)表。其中,不同的錯誤信息用錯誤ID號區(qū)分。在編寫存儲過程代碼時,調(diào)用RAISERROR函數(shù)從錯誤信息表syessages中引用相關(guān)錯誤ID號的錯誤信息。
由于0~50000的值是保留為 SQL SERVER使用的,所以用戶自定義錯誤信息的錯誤ID號必須大于50000。
RAISERROR的語法如下:
RAISERROR ({msg_id | msg_str}, severity, state )
本規(guī)范建議存儲過程以RAISERROR和RETURN返回。
舉例如下:
l之一步:生成該錯誤信息
/*insert a error message into the master..syessages*/
sp_addMessage,16 ,’Can”t update the primary key from table %s’
l第二步:執(zhí)行存儲過程sp_xxx,異常返回時引用上述錯誤信息
CREATE PROCEDURE sp_xxx
BEGIN
…
RAISERROR(50001 ,16 ,1 ,’r_a’) — Can”t update the primary key from table r_a
ROLLBACK TRAN
RETURN(1)
END
l第三步:在DELPHI調(diào)用中,通過EDBEngineError捕捉該錯誤
try
sp_test.execProc ;
except
on e :EDBEngineError
if e.errors.errorcode =then
/*hint ‘Can”t update the primary key from table r_a’*/
showMessage(e.errors.message)
end ;
l第四步:當不再使用該錯誤信息時,應該從錯誤信息表中刪除相應數(shù)據(jù)
sp_dropMessage 50001
l第五步:錯誤提示信息國際化
用相應語言替換master..syessages表中用戶自定義的錯誤消息即可。
首先寫好數(shù)據(jù)庫需求分析。根據(jù)公司的業(yè)務(wù)來設(shè)計好這個數(shù)據(jù)庫中的表。
其次 畫好E-R圖。
最來根據(jù)前陪老局面的建立數(shù)據(jù)庫。
更好用存儲過程把數(shù)據(jù)庫寫出來。以便好好的把數(shù)據(jù)庫有備份。
有問題找我 !含遲 QQ:或者
QQ驗證問題解決蘆讓了 你可以加了 不好意思啊!
這屬于信息資源規(guī)劃的內(nèi)容。
主要思想是根據(jù)數(shù)據(jù)流圖劃分主游亮巧題數(shù)據(jù)庫神鍵。
你先把公司里所有相關(guān)的表格,文件之類收集起來。(跟你的系統(tǒng)有關(guān)的)
然后分析數(shù)據(jù)的流動,劃分職能域,劃分主題數(shù)據(jù)庫,并把鍵蘆數(shù)據(jù)庫根據(jù)需要歸納到第二或第三范式,基本就夠用了。
你好.
像敗胡賣你做漏的情況,從頭學來不及,
你可以參考我做的一個OA項目的視頻,有完整操作和分析,設(shè)計和建立察逗數(shù)據(jù)庫的視頻.
0901班項目設(shè)計ERP之OA關(guān)于數(shù)據(jù)庫二次開發(fā)培訓的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享文章:數(shù)據(jù)庫二次開發(fā)培訓——打造高效數(shù)據(jù)處理能力(數(shù)據(jù)庫二次開發(fā)培訓)
當前路徑:http://m.fisionsoft.com.cn/article/dhchijp.html


咨詢
建站咨詢
