資料庫設計

2021-09-11 03:54:40 字數 2276 閱讀 1045

4、為字段選擇合適的資料型別

5、定義約束條件

在設計出e-r圖後,就可以根據該e-r圖生成對應的資料表,具體步驟如下。

(1)為e-r圖中的每乙個實體建立一張對應的資料表。

(2)為每張資料表定義主鍵(一般情況下,會將作為唯一標識的編號作為主鍵)或者外來鍵

(3)建立新資料表表示多對多關係

(4)為字段選擇合適的資料型別

(5)定義約束條件(可選)

在e-r圖中,每個實體通常對應一張資料表。實體的屬性對應於資料表中的字段。在程式的開發過程中,考慮到程式的相容性,通常使用英文的欄位名,所以在轉換的過程中,經常需要將中文的屬性名轉換為對應意義的英文。例如,可以將「書名」屬性轉換為bookname.下面將進行詳細介紹。

例1-1根據前一章節所示的圖書實體:可以得到編號、條形碼、書名、型別、作者、譯者、出版社、**、頁碼、書架、錄入時間、操作員、是否刪除13個字段的圖書資訊表,對應的結構如下: tk_bookinfo(id,barcode,bookname,typeid,author,translator,isbn,page,price,bookcase,intime,operator,del)

由於在設計資料表時,不允許出現完全相同的兩條記錄,所以通常會建立乙個關鍵字(key)字段,用於唯一標識資料表中的每一條記錄。例如,在讀者資訊表中,由於條形碼不允許重複且不允許為空,所以條形碼可以作為讀者資訊表中的關鍵字,另外,在讀者資訊表中,還存在乙個編號字段,該字段也不允許重複,且不許為空,所以編號欄位也可以作為讀者資訊表中的關鍵字。

再設計資料庫時,為每個實體建立對應的資料表後,通常還會為其建立主鍵,建立主鍵表稱為主表。一般情況下,主鍵都是在所有的關鍵字中選擇,在選擇主鍵的時候,一般遵循以下兩條原則。

作為主鍵的關鍵字可以是乙個字段,也可以是字段的組合。

作為主鍵的字段的值必須具有唯一性,並且不能為空(null)。如果主鍵由多個字段構成時,那麼這些欄位都不能為空。

例如,在建立圖書資訊表時,由於編號字段不能重複,並且不能為空,所以id欄位可以作為主鍵。新增主鍵後,tk_bookinfo(id,barcode,bookname,typeid,author,translator,isbn,page,price,bookcase,intime,operator,del)

如果存在兩張資料表,如果表t1中的乙個欄位fk對應於表t2的主鍵pk,那麼欄位fk則稱為表t1的外來鍵,t1稱為外來鍵表或者子表。此時,表t1的字段fk,要麼是表t2的主鍵pk的值,要麼是空值。外來鍵通常是用於實現參照完整性的。

例如,存在一對多關係的兩個實體「圖書」和「出版社」,它們轉換為資料表後,對應的外來鍵關係如下: tb_bookinfo(id,barcode,bookname,typeid,author,translator,isbn,page,price,bookcase,intime,operator,del)

tb_publishing(isbn,pubname)

其中,在tb_bookinfo表中,isbn為外來鍵,在tb_publishing表中,isbn是主鍵。

在資料庫設計過程中,為字段選擇合適的資料型別也非常重要。合適的資料型別可以有效的節省資料庫的儲存空間、提公升資料的計算效能、節省資料的檢索時間,在資料庫管理系統中,常用的資料型別包括字串型別、數值型別和日期時間型別。下面分別進行介紹。

(1)字串型別

字串型別用於儲存一系列的字元。這些字元在使用時是採用單引號括起來的,主要用於儲存不參與運算的資訊。例如,圖書名稱『html5從入門到精通』、條形碼『9787302210335』和isbn『302』都屬於字串型別,雖然後面兩個在外觀上看是整數,但是這些整數只是顯示用的,不參與計算,所以也設定為字串型別。字串型別可以分定長字串型別和變長字串型別。其中,定長字串型別儲存的資料長度都一樣,如果輸入的資料沒有達到要求的長度,那麼會自動用空格補全;而變長字串型別儲存的資料長度與輸入的資料相同(前提是輸入的資料不超出該欄位設定的長度)。

(2)數值型別

數值型別是指可以參與算數運算的型別,他可以分為整型和小數型別,其中小數型別又包括浮點型和雙精度型。例如,圖書的本數就可以設定為整型,而圖書的單價就需要設定為浮點型。

(3)日期時間型別

日期時間型別是指用於儲存日期或者時間的資料型別。通常可以分為日期型別、時間型別和日期時間型別。其中,日期型別儲存的資料是「yyyy-mm-dd」格式的字串;時間型別儲存的資料是「hh:mm:ss」格式的字串,日期時間型別儲存的資料是「yyyy-mm-dd hh:mm:ss」格式的字串。例如,圖書借閱時間就額可以設定為日期事假那型別,因為需要儲存日期和時間。

再設計資料庫時,還可能需要為資料表設定一些約束條件,從而保證資料的完整性。常用的約束條件有以下6中:

資料庫設計 設計資料庫之前

1.考察現有環境 在設計乙個新資料庫時,你不但應該仔細研究業務需求而且還要考察現有的系統。大多數資料庫 專案都不是從頭開始建立的 通常,機構內總會存在用來滿足特定需求的現有系統 可能沒有實 現自動計算 顯然,現有系統並不完美,否則你就不必再建立新系統了。但是對舊系統的研究 可以讓你發現一些可能會忽略...

資料庫設計 設計資料庫之前

1.考察現有環境 在設計乙個新資料庫時,你不但應該仔細研究業務需求而且還要考察現有的系統。大多數資料庫 專案都不是從頭開始建立的 通常,機構內總會存在用來滿足特定需求的現有系統 可能沒有實 現自動計算 顯然,現有系統並不完美,否則你就不必再建立新系統了。但是對舊系統的研究 可以讓你發現一些可能會忽略...

資料庫設計 設計資料庫之前

1.考察現有環境 在設計乙個新資料庫時,你不但應該仔細研究業務需求而且還要考察現有的系統。大多數資料庫 專案都不是從頭開始建立的 通常,機構內總會存在用來滿足特定需求的現有系統 可能沒有實 現自動計算 顯然,現有系統並不完美,否則你就不必再建立新系統了。但是對舊系統的研究 可以讓你發現一些可能會忽略...