澳洲
發(fā)布時間:2023-10-27 14:26
這一部分介紹了關(guān)系數(shù)據(jù)庫設(shè)計的基本原則。徹底的數(shù)據(jù)庫設(shè)計支持有效的開發(fā)過程,對于成功的數(shù)據(jù)庫功能和性能至關(guān)重要。
安裝中提供了Demodata示例數(shù)據(jù)庫,并經(jīng)常在文檔中用于說明數(shù)據(jù)庫概念和技術(shù)。
設(shè)計階段
一旦您了解了關(guān)系數(shù)據(jù)庫的基本結(jié)構(gòu),就可以開始數(shù)據(jù)庫設(shè)計過程。設(shè)計數(shù)據(jù)庫是一個根據(jù)業(yè)務(wù)要求開發(fā)和完善數(shù)據(jù)庫結(jié)構(gòu)的過程。
數(shù)據(jù)庫設(shè)計包括以下三個階段:
1. 概念性數(shù)據(jù)庫設(shè)計
2. 邏輯性數(shù)據(jù)庫設(shè)計
3. 物理性數(shù)據(jù)庫設(shè)計
一、概念性設(shè)計
數(shù)據(jù)庫設(shè)計周期中的第一步是為您的業(yè)務(wù)定義數(shù)據(jù)需求。回答這些類型的問題有助于您定義概念性設(shè)計:
• 我的業(yè)務(wù)當(dāng)前使用哪些類型的信息?
• 我的業(yè)務(wù)需要哪些類型的信息?
• 我想從這個系統(tǒng)中獲得什么樣的信息?
• 我的業(yè)務(wù)運行在什么樣的假設(shè)基礎(chǔ)上?
• 我的業(yè)務(wù)有哪些限制?
• 我需要生成什么樣的報告?
• 我將如何使用這些信息?
• 這個系統(tǒng)需要什么樣的安全性?
• 哪些信息可能會擴展?
確定您的業(yè)務(wù)目標并從將使用數(shù)據(jù)庫的不同來源收集信息是一個重要的過程。有了這些信息,您可以有效地定義您的表格和列。
二、邏輯設(shè)計
邏輯數(shù)據(jù)庫設(shè)計幫助您進一步定義和評估您的業(yè)務(wù)信息需求。邏輯數(shù)據(jù)庫設(shè)計涉及描述您需要跟蹤的信息以及這些信息之間的關(guān)系。
一旦您創(chuàng)建了邏輯設(shè)計,您可以與數(shù)據(jù)庫的用戶驗證設(shè)計是否完整和準確。他們可以確定設(shè)計是否包含必須跟蹤的所有信息,以及它是否反映了與業(yè)務(wù)規(guī)則一致所必需的關(guān)系。
創(chuàng)建邏輯數(shù)據(jù)庫設(shè)計包括以下步驟:
1. 根據(jù)您的業(yè)務(wù)要求定義您需要的表格(如在概念性設(shè)計中確定的)。
2. 確定表格之間的關(guān)系(有關(guān)更多信息,請參見“表格關(guān)系”一節(jié))。
3. 確定每個表格的內(nèi)容(列)。
4. 將表格標準化至至少第三范式(有關(guān)更多信息,請參見“標準化”一節(jié))。
5. 確定主鍵(有關(guān)更多信息,請參見“鍵”一節(jié))。
6. 確定每列的值。
表格關(guān)系
在關(guān)系數(shù)據(jù)庫中,表格通過共享一個公共列相互關(guān)聯(lián)。這個列存在于兩個或多個表格中,允許您連接這些表格。有三種類型的表格關(guān)系:一對一、一對多和多對多。
一對一關(guān)系存在于一個表格的每一行與第二個表格中的一個相關(guān)行之間。例如,大學(xué)可能決定將一個教職員工分配給一個房間。因此,在特定時間內(nèi),一個房間只能分配給一個講師。大學(xué)還可能決定一個部門只能有一個院長。因此,只有一個人可以成為一個部門的負責(zé)人。
一對多關(guān)系存在于一個表格的每一行與另一個表格中的多個相關(guān)行之間。例如,一個教師可以教授多門課程。
多對多關(guān)系存在于一個表格的一行與第二個表格中的多個相關(guān)行之間。同樣,那些相關(guān)行在第一個表格中有多行。一個學(xué)生可以注冊多門課程,而課程可以包含多個學(xué)生。
標準化
標準化是一種減少冗余并提高數(shù)據(jù)庫穩(wěn)定性的過程。標準化涉及確定特定數(shù)據(jù)屬于哪個表格以及它與其他數(shù)據(jù)的關(guān)系。您的數(shù)據(jù)庫設(shè)計將導(dǎo)致以數(shù)據(jù)為驅(qū)動,而不是以流程或應(yīng)用程序為驅(qū)動的設(shè)計,從而提供更穩(wěn)定的數(shù)據(jù)庫實現(xiàn)。
當(dāng)您對數(shù)據(jù)庫進行標準化時,您可以消除以下列:
• 包含超過一個非原子值的列。
• 包含重復(fù)或重復(fù)的列。
• 不描述表格的列。
• 包含冗余數(shù)據(jù)的列。
• 可以從其他列派生的列。
第一范式
第一范式中的列具有以下特征:
• 它們只包含一個原子值。
• 它們不會重復(fù)。
第一范式的第一個規(guī)則是您必須將重復(fù)的列或包含多個值的列移至新表格。
標準化到第一范式的表格具有幾個優(yōu)點。例如,在示例數(shù)據(jù)庫的計費表中,第一范式執(zhí)行以下操作:
• 允許您為每個學(xué)生創(chuàng)建任意數(shù)量的交易,而無需添加新列。
• 允許您快速查詢和排序交易數(shù)據(jù),因為您只搜索一個列(交易號)。
• 使用磁盤空間更有效,因為不存儲空列。
第二范式
當(dāng)表格處于第一范式中并且僅包含提供有關(guān)表格主鍵的信息的列時,該表格位于第二范式中。
為了強制執(zhí)行標準化的第二條規(guī)則,您必須將不依賴于當(dāng)前表格的主鍵的列移動到新表格中。
如果一個表格包含冗余數(shù)據(jù),那么它會違反第二范式。這可能導(dǎo)致不一致的數(shù)據(jù),從而使您的數(shù)據(jù)庫缺乏完整性。例如,如果一個學(xué)生更改了她的地址,那么您必須更新所有現(xiàn)有行以反映新地址。任何帶有舊地址的行都會導(dǎo)致不一致的數(shù)據(jù)。
為解決這些差異,識別出在添加交易時保持不變的數(shù)據(jù)。像“學(xué)生姓名”或“街道”這樣的列不屬于交易,并且不依賴于主鍵“學(xué)生ID”,因此將此信息存儲在“學(xué)生”表格中,而不是交易表格中。
標準化到第二范式的表格也具有幾個優(yōu)點。例如,在示例數(shù)據(jù)庫的計費表中,第二范式允許您執(zhí)行以下操作:
• 僅在一行中更新學(xué)生信息。
• 刪除學(xué)生交易而不消除必要的學(xué)生信息。
• 使用磁盤空間更有效,因為不存儲重復(fù)或冗余數(shù)據(jù)。
第三范式
當(dāng)一個表格只包含獨立列時,該表格處于第三范式中。
標準化的第三條規(guī)則是您必須刪除可以從現(xiàn)有列派生的列。例如,對于一個學(xué)生,如果您已經(jīng)有了出生日期列,那么您不必包含年齡列,因為您可以從出生日期計算年齡。
處于第三范式的表格只包含必要的列,因此它使用磁盤空間更有效,因為不存儲不必要的數(shù)據(jù)。
總之,第一、第二和第三范式的規(guī)則規(guī)定每個列值必須完整地是主鍵的事實,除此之外沒有其他事實。
鍵
ODBC鍵是表格的外鍵完整性(RI)約束所定義的列或一組列。換句話說,鍵或鍵的組合充當(dāng)行數(shù)據(jù)的標識符。
有關(guān)引用完整性和鍵的更多信息,請參閱高級操作指南。
三、物理設(shè)計
物理數(shù)據(jù)庫設(shè)計是邏輯設(shè)計的細化;它將邏輯設(shè)計映射到關(guān)系數(shù)據(jù)庫管理系統(tǒng)。在這個階段,您要檢查用戶如何訪問數(shù)據(jù)庫。數(shù)據(jù)庫設(shè)計周期的這一步涉及確定以下類型的信息:
• 您通常將使用的數(shù)據(jù)。
• 需要為數(shù)據(jù)訪問創(chuàng)建索引的列。
• 需要靈活性或增長空間的區(qū)域。
• 是否通過去標準化數(shù)據(jù)庫來提高性能。(要去標準化您的數(shù)據(jù)庫,您需要重新引入冗余以滿足性能要求。)有關(guān)更多信息,請參見標準化。
如果你對此還有疑問,或者有更多關(guān)于學(xué)業(yè)輔導(dǎo)方面需求的話,可以添加微信號:hmkt131聯(lián)系海馬課堂的Joye老師哦。
相關(guān)熱詞搜索: 留學(xué)生課程輔導(dǎo) 澳洲課程輔導(dǎo)