久久青草精品A片狠狠,日韩欧美视频一区二区,亚洲国码AV日韩,国产精品黄在

Microsoft SQL Server之數據庫存檔

2009-12-17 14:40:35 10134



本文將為大家講述如何注釋自己的SQL Server,這些原理適用于所有的SQL Server版本,雖然SQL Server 2005及更高的版本包含了一些增強數據存檔功能的巧妙設置。本文大部分涉及的原理也同樣適用于其他的關系數據庫,如Oracle、 MySQL、Microsoft Access和PostgreSQL等。
  數據庫命名規范
  如果你是從頭開始設計一個數據庫,那遵循邏輯數據實體命名規范將是明智之舉。下面為您提供在新數據庫中給對象命名時會用到的一些建議。
  一般命名規范
  如果可以,數據庫名稱應當只使用文字和數據這兩種字符。避免使用連字號,因為之后會給編寫某些T-SQL查詢命令造成困難。
  如果可能,盡量避免在數據庫實例中使用空格符,特別是為表和列命名時。雖然如果用方括號括起來的話,T-SQL還是可以辨認這些實體,不過在某些情況下也有可能導致混淆和代碼錯誤。此外,還要盡量避免在表名和列名中使用T-SQL的保留詞,例如month、year和user等。
  表命名規范
  當我們為表命名時,應當使用與該表存儲的數據相關的名稱。例如,存儲企業員工數據的表可以命名為employees,注意這里使用的是名詞的復數形式,因為一個表里很可能存儲一個以上員工信息。
  有一些程序開發人員會為表名附上像t_這樣的前綴。如果這些表是引用了應用程序的源代碼而來,那么這些前綴就非常有用,這樣能夠使軟件開發團隊一眼就看出來這是一個表,而不是一個視圖或其他被引用的實體。
  給表名附上與其功能相關的前綴(如StudentID_)可以幫助我們把表分門別類。SQL Server 2005引入了模式的概念,可以為表分類。例如StudentsEnrollments數據庫中包含了StudentResources模式,而相關的表(StudentID、StudentAddress、StudentCredits等)就會在SQL Server 管理工作室表列中的這個模式下全部列出。
  外鍵命名規范
  如果能在一個數據表中識別出哪些是外鍵(foreign keys)會非常有用,所以在為外鍵命名的時候,可以添加一些類似于fk_的前綴,這樣可以更直接的從表的字段中看出表的關系。
  存儲過程命名規范
  根據用途來為存儲過程命名是很有意義的。例如,GetUserID、InsertDateOfBirth、UpdateEnrollInfo等等,這樣對于存儲過程的用途就一目了然了。
  有時候,可以適當添加后綴來表示存儲過程的輸入參數。例如GetUserIDByUserNameAndPassword這名稱表示該存儲過程會通過一個用戶名和密碼作為輸入參數返回用戶ID。這可以用來區分功能相似但參數設置不同的存儲過程,還可以添加其他相關的存儲過程,例如GetUserIDByGUID和GetUserIDByApplicantID。這種命名規范的缺陷就是存儲過程的名字會變得很長。
  一些開發人員會用特定的標簽來為所有的存儲程序添加前綴。其中很流行的做法是為存儲程序名添加sp_前綴。不過,這里并不推薦這種做法,原因有二。首先,這對數據庫性能有輕微的影響,因為SQL Server會先在主數據庫中查找所有帶有這個前綴的存儲過程,雖然這會性能的影響很小,不過在高級和企業系統中,影響可能會放大。其次,由于微軟在設計的時候也為系統的存儲過程使用了這個前綴,所以始終存在著這種可能,那就是你為自己的存儲過程起的名字和某個系統存儲過程的名字相同。而且,SQL Server未來發布的版本中可能會引入一個新的系統存儲過程,而這個過程與你現有的用戶存儲過程的名字相同。
  如果你實在想要為自己的存儲過程添加前綴,那么建議你使用usp_或sproc_這樣的前綴。同樣的,你可以為某個函數名加上func_這樣的前綴,特別是在從應用程序源代碼調用存儲程序的時候非常有用,因為這讓軟件開發團隊清楚的了解到這是在調用一個存儲過程。
  SQL存儲過程的存檔
  千萬不要忘記把存儲過程和函數的T-SQL代碼存檔。由于簡單的查詢代碼應該是自注釋的,而存檔將對大型的查詢代碼非常有用。而存儲過程的標準化標頭也非常有用,至少能夠說明該存儲過程的功能。如果手頭上沒有任何源控制系統,在標頭中包括日志變化的內容還能夠幫助我們追蹤變化的發生。
  數據庫對象描述
  能夠對數據庫對象進行描述在某種程度上意味著能夠創建自我存檔的數據庫。
  微軟早在SQL Server 7.0就引入了一個有用的功能,就是通過表設計窗口為某個表添加描述(Description)。SQL Server 2000通過引入擴展屬性(extended properties)加強了這一功能。然而,SQL Server 2000的企業管理器限制了允許屬性編輯的功能。不過在 SQL Server 2005中的SQL Server管理工作室GUI允許對擴展屬性進行編輯。數據庫中的大部分對象(如表、列、視圖、函數、存儲過程和數據庫本身)都具有可編輯的擴展屬性。默認狀態下,只有單一的擴展屬性MS_Description。而且,雖然你可以利用MS_Description擴展屬性來為對象添加描述,但如果沒有第三方加載工具,就算添加了,用處也并不大。

提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: