程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 項目小結之數據庫設計

項目小結之數據庫設計

編輯:關於SqlServer

最近做了一個小項目完整的數據庫設計,想總結一些設計上的所得,希望大家多多指教。

有時一個項目,普通程序員一般不會去接觸數據庫設計,一般都有專業的DBA或是老程序員去設計,下 面是我推測的幾點可能原因:

1:新手對項目了解不深,正好這是老鳥的長處。

2:新手對局部的關注往往大於整體,很難考慮的特別周全。

3:數據庫設計的好壞在某種程度上直接影響項目的復雜度以及性能。

第一:我們要知道什麼是范式,為什麼說到數據庫設計總要提到一個名詞:范式。范式:符合某一種 級別的關系模式的集合。設計數據庫必須遵循一定的規則,在關系數據庫中,這種規則就是范式。

第二:范式的分類。關系數據庫中的關系必須滿足一定的要求,目前關系數據庫有六種范式:第一范 式、第二范式、第三范式、第四范式、第五范式和第六范式。滿足最低要求的是第一范式,其余范式以次 類推。這麼多的分類並不一定要求全部滿足,平時我們通常是達到第三范式就行。

第三:范式的作用?

1:優點:是將其轉化為一些表的過程,這種方法可以使從數據庫得到的結果更加明確。

2:缺點:可能使數據庫產生重復數據,從而導致創建多余的表。

3:是在識別數據庫中的數據元素、關系,以及定義所需的表和各表中的項目這些初始工作之後的一個 細化的過程。

4:設計范式是數據庫設計所需要滿足的規范,滿足這些規范的數據庫是簡潔的、結構明晰的,也不會 發生插入、刪除和更新操作異常。反之則給編程人員制造麻煩,可能存儲了大量不需要的冗余信息。 

下面來簡單介紹下前三種范式:

一:第一范式。是對關系模式的基本要求,不滿足第一范式的數據庫就不是關系數據庫。 所謂第一范 是指數據庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有 多個值或者不能有重復的屬性。如果出現重復的屬性,就可能需要定義一個新的實體,新的實體由重復的 屬性構成,新實體與原實體之間為一對多關系。這個單一屬性由基本類型構成,包括整型、實數、字符型 、邏輯型、日期型等。 例如有一張存儲文件的表,正確應該是這樣:可以看到這個表包含了好幾個列,如 果我們把這些信息都放在一列裡面那麼就不滿足上面定義的1NF了。

create table Regulations (
   ID                   int                   identity,
   Title                nvarchar(200)        null,
   FileAddress          varchar(255)         null,
   OpenDate             datetime             null,
   TypeID               int                  null,
   PostDate             datetime             null,
   constraint PK_REGULATIONS primary key (ID)
)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved