① 資料庫中常用的英語單詞有哪些
下列是一些資料庫中經常碰到的英文單詞:
Access method(訪問方法):此步驟包括從文件中存儲和檢索記錄。
Alias(別名):某屬性的另一個名字。在SQL中,可以用別名替換表名。
Alternate keys(備用鍵,ER/關系模型):在實體/表中沒有被選為主健的候選鍵。
Anomalies(異常)參見更新異常(update anomalies)
Application design(應用程序設計):資料庫應用程序生命周期的一個階段,包括設計用戶界面以及使用和處理資料庫的應用程序。
Attribute(屬性)(關系模型):屬性是關系中命名的列。
Attribute(屬性)(ER模型):實體或關系中的一個性質。
Attribute inheritance(屬性繼承):子類成員可以擁有其特有的屬性,並且繼承那些與超類有關的屬性的過程。
Base table(基本表):一個命名的表,其記錄物理的存儲在資料庫中。
Binary relationship(二元關系):一個ER術語,用於描述兩個實體間的關系。例如,panch Has Staff。
Bottom-up approach(自底向上方法):用於資料庫設計,一種設計方法學,他從標識每個設計組建開始,然後將這些組件聚合成一個大的單元。在資料庫設計中,可以從表示屬性開始底層設計,然後
將這些屬性組合在一起構成代表實體和關系的表。
Business rules(業務規則):由用戶或資料庫的管理者指定的附加規則。
Candidate key(候選鍵,ER關系模型):僅包含唯一標識實體所必須得最小數量的屬性/列的超鍵。
Cardinality(基數):描述每個參與實體的可能的關系數目。
Centralized approach(集中化方法,用於資料庫設計):將每個用戶試圖的需求合並成新資料庫應用程序的一個需求集合
Chasm trap(深坑陷阱):假設實體間存在一根,但某些實體間不存在通路。
Client(客戶端):向一個或多個伺服器請求服務的軟體應用程序。
Clustering field(群集欄位):記錄總的任何用於群集(集合)航記錄的非鍵欄位,這些行在這個欄位上有相同的值。
Clustering index(群集索引):在文件的群集欄位上定義的索引。一個文件最多有一個主索引或一個群集索引。
Column(列):參加屬性(attribute)。
Complex relationship(復雜關系):度數大於2的關系。
Composite attribute(復合屬性):由多個簡單組件組成的屬性。
Composite key(復合鍵):包含多個列的主健。
Concurrency control(並發控制):在多用戶環境下同時執行多個十五並保證數據完整性的一個DBMS服務。
Constraint(約束):資料庫不允許包含錯誤數據的一致性規則。
Data conversion and loading(數據轉換和載入):資料庫應用生命周期重的一個階段,包括轉換現有數據到新資料庫中以及醬下耨應用程序轉換到新的資料庫上運行。
Data dictionary(數據字典):參見系統目錄(system catalog)。
Data independence(數據獨立性):使用數據的應用程序的數據描述部分。這意味著,如果將新的數據結構添加到資料庫中,或者資料庫中現有的結構被修改了,那麼使用此資料庫的就會受到影響,除
非應用程序不直接依賴於被修改的部分。
Data model(數據模型):描述數據、數據間關系以及數據的約束的概念的一個集成的集合。
Data rendancy(數據冗餘):參見冗餘數據(rendant data)。
Data security(數據安全):包括對資料庫對象(如表和視圖)的訪問和使用以及用戶可以在這些對象上實施的操作。
Database(資料庫):是邏輯上相關的數據(以及這些數據的描述)的一個共享的集合,用於解決公司對信息的需求。
Database design(資料庫設計):資料庫應用生命周期中的一個階段,包括創建一個支持公司的操作和目標的資料庫的設計。
Database integrity(資料庫完整性):指存儲數據的正確定和一致性。完整性通常用約束來表達。
Database Management System,DBMS(資料庫管理系統):一個能夠讓用戶定義、創建和維護資料庫並控制對資料庫的訪問的軟體系統。
Database planning(資料庫規劃):能盡可能有效的實現資料庫應用的各階段的管理活動。
Database server(資料庫伺服器):同伺服器。
DBMS engine(DBMS引擎):同伺服器。
DBMS selection(DBMS選擇):資料庫應用生命周期中的一個階段,包括選擇一個合適的DBMS來支持資料庫應用。
Degree of a relationship(關系的度):一個關系中參與的實體的個數。
Denormalization(反規范化):形式上,這個術語指的是對基本表結構的修改,這樣新的表比原始的表的規范化程度要低。但也可以用此屬於更寬泛地形容將兩個表和並成一個新表的情形,而這個新表
與原來的表具有相同的範式,但比原表包含更多的空值。
Derived attribute(派生屬性):表示其值可以從一個相關屬性和屬性集的值派生得到的屬性,這個屬性在實體中不是必須的。
Design methodology(設計方法學):一種結構化的方法,它使用過程、工具和文檔來支持和簡化設計過程。
Disjoint constraint(無連接約束):描述子類的成員間的關系,並指明超類某個成員是否有可能成為一個或多個子類的成員。
Domain(域):一個或多個屬性的取值范圍。
Entity(實體):具有相同性質的對象的集合,它是由用戶或公司標識並可獨立存在的。
Entity integrity(實體完整性):在一個基本表中,主健列的值不能為空。
Entity occurrence(實體出現):實體中的一個唯一可標識的對象。
Entity-Relationship model(實體關系模型):公司的實體、屬性和關系的詳細邏輯表示。
Fact-finding(事實發現):使用諸如面談和提問等技術收集關於系統的事實、需求和性能的形式化過程。
Fan trap(扇形陷阱):但從第三個實體扇出的兩個實體有1:*關系時出現扇形陷阱,但這兩個實體在他們之間應該有直接關系以提供必要的信息
Field(欄位):同元組(Tuple)。
File(文件):存儲在副主存儲器中的相關記錄的一個命名集合。
File-based system(基於文件的系統):一個文件集合,用來管理(創建、插入、刪除、更新和檢索)一個或多個文件中的數據,並產生基於這些文件中的數據的應用(通常是報表)。
File organization(文件組織):當文件存儲在磁碟上時,對文件中的記錄的安排方式。
First normal form(1NF,第一範式):表中的每個列的交叉處以及記錄包含切進包含一個值的表。
Foreign key(外健):一個表中的一個列或者多個列的集合,這些列匹配某些其他(也可能是同一個)表中的候選鍵。
4GL, Fourth-Generation Language(第四代語言):一種非過程化語言,比如SQL,他只需要用戶定義必須完成什麼操作,4GL負責將所進行的操作翻譯成如何實現這些操作。
Full functional dependency(完全函數依賴):一個列在功能上依賴於復合主健,但不依賴於主健的任何一個子集的條件。
Functional dependency(函數依賴):描述表中列之間的關系。
Generalization(泛化):通過標識實體間的公共特徵使實體間差別最小化的過程。
Generalization hierarchy(泛化層次結構):同類型層次(type hierarchy)。
Global data model(全局數據模型):代表整個公司(和被模型化的公司的一部分)的數據模型。
Implementation(實現):資料庫應用生命周期中的一個階段,包括資料庫和應用程序設計的物理實現。
Index(索引):一種允許DBMS將特定的記錄更快的放置到文件中,從而加快對用戶查詢的響應的數據結構。
Infomation system(信息系統):能夠在整個公司范圍內收集、管理、控制和分發數據/信息的資源。
Inheritance(繼承):參見屬性繼承(attribute inheritance)。
Integrity constaints(完整性約束):防止出現資料庫中的數據不一致的約束。
IS-A hierarchy(IS-A層次結構):同類型層次結構(type hierarchy)。
Local logical data model(局部邏輯數據模型):代表特定用戶視圖或用戶視圖的組合的數據模型。
Logical database design(邏輯資料庫設計):基於特定的數據模型構建公司的數據的模型的過程,但不依賴於特定的DBMS以及其他的物理條件。
Meta-data(元數據):關於數據的數據,參見系統目錄(system catalog)。
Mision objective(使命目標):標識資料庫必須支持的特定任務。
Mission statement(使命語句):定義資料庫應用程序的主要目標。
Multiplicity(多樣性):定義與某個相關實體的一次出現有關的實體的出現數目。
Multi-valued attribute(多值屬性):為一個實體的出現保存多個值的屬性。
Nonkey attribute/column(非鍵屬性/列):不是鍵的一部分的屬性/列。
Normal forms(範式):規范化過程的一個階段。前三個範式分別為第一範式(1NF)、第二範式(2NF)、第三範式(3NF)。
Normalization(規范化):一種產生帶有需要的特性的技術,這種特性能支持用戶和公司的需求。
差不多就是這些了。
② 什麼是反範式
反範式是通過增加冗餘數據或數據分組來提高資料庫讀性能的過程。在某些情況下, 反範式有助於掩蓋關系型資料庫軟體的低效。關系型的範式資料庫即使做過優化, 也常常會帶來沉重的訪問負載。
資料庫的範式設計會存儲不同但相關的信息在不同的邏輯表, 如果這些表的存儲在物理上也是分離的,那麼從幾個表中完成資料庫的查詢可能就會很慢 (比如JOIN操作)。如果JOIN操作的表很多,那麼可能會慢得離譜。 有兩個辦法可以解決這個問題。首選的方法是使邏輯上的設計遵循範式, 但允許資料庫管理系統(DBMS)在磁碟上存儲額外的冗餘信息來加快查詢響應。 在這種情況下,DBMS還要保證冗餘副本與原始數據的一致性。 這種方法通常在SQL中以索引視圖(微軟的SQL Server)或物化視圖(Oracle)實現。 視圖將信息表示為方便查詢的格式,索引確保視圖上的查詢進行了優化。
更常見的做法是對數據做反範式設計。這種方法同樣能提高查詢響應速度, 但此時不再是DBMS而是資料庫設計者去保證數據的一致性。 資料庫設計者們通過在資料庫中創建規則來保證數據的一致性,這些規則叫約束。 這樣一來,資料庫設計的邏輯復雜度就增加了,同時額外約束的復雜度也增加了, 這使該方法變得危險。此外,「約束」在加快讀操作(SELECT)的同時,減慢了寫操作 (INSERT, UPDATE和DELETE)。這意味著一個反範式設計的資料庫, 可能比它的範式版本有著更差的寫性能。
反範式數據模型與沒有範式化的數據模型不同。 只有在範式化已經達到一定的滿意水平並且所需的約束和規則都已經建立起來, 才進行反範式化。例如,所有的關系都屬於第三範式, 連接的關系和多值依賴得到了妥善處理。
③ 資料庫的逆規范化
數據完整性就是說存儲在資料庫中的所有數據值均正確的狀態。只要是所有數據均處在正確的狀態就說這個資料庫中的數據是完整的。而規范化其中之一要求就是要減少資料庫中數據的冗餘來增進數據的一致性。逆規范化,增加數據冗餘很好理解,舉一個例子,比如員工姓名,但就姓名來說在不同的表中所表示的含義可能會不一樣。如果多個表中存在相同的列,比螞乎如員工滑余姓名,此時員工信物滾姓名的信息就存在冗餘了,而這時對此信息的修改就要多增加註意了。如果更改一處的姓名,其它多處的信息也要修改,否則信息就會處於不一致狀態,這樣數據的完整性就收到了影響。
④ 資料庫設計中什麼時候要進行適當的反規范化
1�反規范的好處
是否規范化的程度越高越好?這要根據需要來決定,因為「分離」越深,產生的關系越多,關系過多,連接操作越頻繁,而連接操作是最費時間的,特別對以查詢為主的資料庫應用來說,頻繁的連接會影響查詢速度。所以,關系有時故意保留成非規范化的,或者規范化以後又反規范了,這樣做通常是為了改進性能。
例如帳戶系統中的「帳戶」表B-TB01,它的列busi-balance(企業帳戶的總余額)就違反規范,其中的值可以通過下面的查詢獲得:
select busi-code,sum(acc-balance)
from B-TB06
group by busi-code
如果B-TB01中沒有該列,若想獲得busi-name(企業名稱)和企業毀態帳戶的總余額,則需要做連接操作:
select busi-name,sum(acc-balance)
from B-TB01,B-TB06
where B-TB01.busi-code=B-TB06.busi-code
group by busi-code
如果經常做這種查詢,則就有必要在B-TB01中加入列busi-balance,相應的代價則是必須在表B-TB06上創建增、刪、改的觸發器來維護B-TB01表上busi-balance列的值。類似的情況在決策支持系統中經常發生。
反規范的好處是降低連接操作的需求、降低外碼和索引的數目,還可能減少表的數目,相應帶來的問題是可能出現數據的完整性問題。加快查詢速度,但會降低修改速度。因此決定做反規范時,一定要權衡利弊,仔細分析應用的數據存取需求和實際的性能特點,好的索引和其它方法經常能夠解決性能問題,而不必採用反規范這種方法。
2�常用的反規范技術
在進行反規范操作之前,要充分考慮數據的存取需求、常用表的大小、一些特殊的計算(例如合計)、數據的物理存儲位置等。常用的反規范技術有增加冗餘列、增加派生列、重新組表和分割表。
(1)增加冗餘列是指在多個表中具有相同的列,它常用來在查詢時避免連接操作。例如前面例子中,如果經常檢索一門課的任課教師姓名,則需要做class和teacher表的連接查詢:
select class-name,teacher-name
from class,teacher
where class.teacher-no=teacher.teacher-no
這樣的話就可以在class表中增加一列teacher-name就不需要連接操作了。
增加冗餘列可以在查詢時避免連接操作,但它需要更多的磁碟空間,同時增加表維護的工作量。
(2)增加派生列指增加的列來自其它表中的數據,由它們早猜計算生成。它的作用是在查詢時減少連接操作,避免使用集函數。例如前面所講的賬戶系統中的表B-TB01的列busi-balance就是派生列。派生列也具有與冗餘列同樣的缺點。
(3)重新組表指如果許多用戶需要查看兩個表連接出來的結果數據,則把這兩個表重新組成一個表來減少連接而提高性能。例如,用戶經常需要同時查看課程號,課程名稱,任課教師號,任課教師姓名,則可把表class(class-no,class-name,teacher-no)和表teacher(teacher-no,teacher-name)合並成一個表class(class-no,class-name,teacher-no,teacher-name)。這樣可提高性能,但需要更多的磁碟空間,同時也損失了數據在概念上的獨立性。
(4)有時對表做分割可以提高性能。表分割有兩種方式:
1水平分割:根據一列或多列數據的值把數據行放到兩個獨立的表中。
水平分割通常在下面的情況下使用。
·表很大,分割後可以降低在查詢時需要讀的數據和索引的頁數,同時也降低了索引的層數,纖睜源提高查詢速度。
·表中的數據本來就有獨立性,例如表中分別記錄各個地區的數據或不同時期的數據,特別是有些數據常用,而另外一些數據不常用。
·需要把數據存放到多個介質上。
例如法規表law就可以分成兩個表active-law和inactive-law。activea-authors表中的內容是正生效的法規,是經常使用的,而inactive-law表則使已經作廢的法規,不常被查詢。
水平分割會給應用增加復雜度,它通常在查詢時需要多個表名,查詢所有數據需要union操作。在許多資料庫應用中,這種復雜性會超過它帶來的優點,因為只要索引關鍵字不大,則在索引用於查詢時,表中增加兩到三倍數據量,查詢時也就增加讀一個索引層的磁碟次數。
2垂直分割:把主碼和一些列放到一個表,然後把主碼和另外的列放到另一個表中。
如果一個表中某些列常用,而另外一些列不常用,則可以採用垂直分割,另外垂直分割可以使得數據行變小,一個數據頁就能存放更多的數據,在查詢時就會減少I/O次數。其缺點是需要管理冗餘列,查詢所有數據需要join操作。
3�反規范技術需要維護數據的完整性
無論使用何種反規范技術,都需要一定的管理來維護數據的完整性,常用的方法是批處理維護、應用邏輯和觸發器。
批處理維護是指對復制列或派生列的修改積累一定的時間後,運行一批處理作業或存儲過程對復制或派生列進行修改,這只能在對實時性要求不高的情況下使用。
數據的完整性也可由應用邏輯來實現,這就要求必須在同一事務中對所有涉及的表進行增、刪、改操作。用應用邏輯來實現數據的完整性風險較大,因為同一邏輯必須在所有的應用中使用和維護,容易遺漏,特別是在需求變化時,不易於維護。
另一種方式就是使用觸發器,對數據的任何修改立即觸發對復制列或派生列的相應修改。觸發器是實時的,而且相應的處理邏輯只在一個地方出現,易於維護。一般來說,是解決這類問題的最好的辦法。
⑤ 為什麼數據倉庫可以適當使用反規范化的策略
(嗯...這學期剛學數據倉庫與數據挖掘...)
之所以說是反規范化策略,是因為數據倉庫和傳統的資料庫在設計上是有所不同的,違反了所謂的「規燃空范化」。
1、數據倉庫允許有綜合的導出數據,即允許數據冗餘,以便進行數據的分析、有利於決策。而傳統的數據爛芹是努力在避免數據冗餘,使用範式原理在增強規范性,一般都要達到三範式。
2、數據倉庫中的數據是多粒度的,比如說使用了時間粒度。因為數據倉庫中的保留了歷史數據,它不是實時更新的,所以這些數據都要含時間標記。而這在傳統資料庫中是不需飢段畢要的。
⑥ 理解什麼是資料庫規范化
規范化理論是將一個不合理的關系模式如何轉化為合理的關系模式理論,規范化理論是圍繞範式而建立的。規范化理論認為,一個關系型資料庫中所有的關系,都應滿足一定的規范。規范化理論把關系應滿足的規范要求分為幾級,滿足凳和鎮者最低要求的一級叫做第一範式(1NF),在第一範式的基礎上提出了第二範式(2NF),在第二棗旅盯範式的基礎上又提出了第三範式(3NF),以後又提出了BCNF範式,4NF,5NF。範式的等級越高,應滿足的約束條件也越嚴格。規范的每一級別都依賴於它的前一級別,例如若一個關系模式滿足2NF,則一定滿足1NF。
對以上最簡單的理解就是:資料庫裡面的數據存在多種異常、冗餘或其他有矛盾的地方,而規范化就是消除其中不合適的數據依賴,以解決插入異常、刪除異常、更新異常和數據冗餘問題。為了消除這些問題於是就有了以上幾個範式。
⑦ 理解什麼是資料庫規范化
資料庫規范化說白了就是通過一系列的規則空歲,範式來達到資料庫的合理使用
注意只是合理,比方說減少冗餘,方便讀取、寫入等操作,比方說最簡單的一個欄位不能填寫多項數據,比方說姓名與身份證號不能同一時間寫在一個欄位內等。
但是只是達到一種方便,合理,並不是絕對說一定要規范化
比方說,有一些數據經常使用到,就會反規范化,特意增加冗餘,避免跨表查詢,比方說一些汽車的進貨單,顏色是經常需要看到的數據,如果是規范化,進貨單只有汽車名字與型號,如果要獲取汽車顏色就要跨表查詢汽車更詳細的配置,然後再返回給客戶端,如果這種操作一天之內虧哪要重復無數次,比方說是汽車銷售網站,一天幾萬甚至是幾百萬訪問量,每次都跨表查詢,效率就很低,就為了查詢一個顏色卻要跨表斗空睜查詢,而且顏色欄位佔用不了太多容量,因此會考慮反規范化,增加冗餘,直接在進貨單後面增加顏色欄位,以提升訪問效率
⑧ 1.資料庫邏輯設計階段的主要工作是什麼
e(實體)-r(關系)圖、屬於概念設計階段。需求分析用到的是數據流(程)圖,得到的數據字典。邏輯設計得到關系模式。
⑨ 理解什麼是資料庫規范化
優點是降低冗餘,利於保證數據的一致性和完整性;缺點是過度的規范化,易造成查詢和統計時的效率下降,這主要是由於多表連接所造成的問題。適當的反規范化設計可以提高效率,但最好在那些數據不太發生變化的情況下使用。通常情況下,可以從兩個方面來判斷資料庫是否設計的比較規范。一是看看是否擁有大量的窄表,二是寬表的數量是否足夠的少。若符合這兩個條件,則可以說明這個資料庫的規范化水平還是比較高的。當然這是兩個泛泛而談的指標。為了達到資料庫設計規范化的要求,一般來說,需要符合以下五個要求。要求一:表中應該避免可為空的列。雖然表中允許空列,但是,空欄位是一種比較特殊的數據類型。資料庫在處理的時候,需要進行特殊的處理。如此的話,就會增加資料庫處理記錄的復雜性。當表中有比較多的空欄位時,在同等條件下,資料庫處理的性能會降低許多。所以,雖然在資料庫表設計的時候,允許表中具有空欄位,但是,我們應該盡量避免。若確實需要的話,我們可以通過一些折中的方式,來處理這些空欄位,讓其對資料庫性能的影響降低到最少。一是通過設置默認值的形式,來避免空欄位的產生。如在一個人事管理系統中,有時候身份證號碼欄位可能允許為空。因為不是每個人都可以記住自己的身份證號碼。而在員工報到的時候,可能身份證沒有帶在身邊。所以,身份證號碼欄位往往不能及時提供。為此,身份證號碼欄位可以允許為空,以滿足這些特殊情況的需要。但是,在資料庫設計的時候,則可以做一些處理。如當用戶沒有輸入內容的時候,則把這個欄位的默認值設置為0或者為N/A。以避免空欄位的產生。二是若一張表中,允許為空的列比較多,接近表全部列數的三分之一。而且,這些列在大部分情況下,都是可有可無的。若資料庫管理員遇到這種情況,筆者建議另外建立一張副表,以保存這些列。然後通過關鍵字把主表跟這張副表關聯起來。將數據存儲在兩個獨立的表中使得主表的設計更為簡單,同時也能夠滿足存儲空值信息的需要。要求二:表不應該有重復的值或者列。為了解決這個問題,有多種實現方式。但是,若設計不合理的話在,則會導致重復的值或者列。如我們也可以這么設計,把客戶信息、聯系人都放入同一張表中。為了解決多個聯系人的問題,可以設置第一聯系人、第一聯系人電話、第二聯系人、第二聯系人電話等等。若還有第三聯系人、第四聯系人等等,則往往還需要加入的欄位。所以,在資料庫設計的時候要盡量避免這種重復的值或者列的產生。筆者建議,若資料庫管理員遇到這種情況,可以改變一下策略。如把客戶聯系人另外設置一張表。然後通過客戶ID把供應商信息表跟客戶聯系人信息表連接起來。也就是說,盡量將重復的值放置到一張獨立的表中進行管理。然後通過視圖或者其他手段把這些獨立的表聯系起來。要求三:表中記錄應該有一個唯一的標識符。在資料庫表設計的時候,資料庫管理員應該養成一個好習慣,用一個ID號來唯一的標識行記錄,而不要通過名字、編號等欄位來對紀錄進行區分。每個表都應該有一個ID列,任何兩個記錄都不可以共享同一個ID值。另外,這個ID值最好有資料庫來進行自動管理,而不要把這個任務給前台應用程序。否則的話,很容易產生ID值不統一的情況。要求四:資料庫對象要有統一的前綴名。一個比較復雜的應用系統,其對應的資料庫表往往以千計。若讓資料庫管理員看到對象名就了解這個資料庫對象所起的作用,恐怕會比較困難。而且在資料庫對象引用的時候,資料庫管理員也會為不能迅速找到所需要的資料庫對象而頭疼。其次,表、視圖、函數等最好也有統一的前綴。如視圖可以用V為前綴,而函數則可以利用F為前綴。如此資料庫管理員無論是在日常管理還是對象引用的時候,都能夠在最短的時間內找到自己所需要的對象。要求五:盡量只存儲單一實體類型的數據。這里將的實體類型跟數據類型不是一回事,要注意區分。這里講的實體類型是指所需要描述對象的本身。筆者舉一個例子,估計大家就可以明白其中的內容了。如現在有一個圖書館里系統,有圖書基本信息、作者信息兩個實體對象。若用戶要把這兩個實體對象信息放在同一張表中也是可以的。如可以把表設計成圖書名字、圖書作者等等。可是如此設計的話,會給後續的維護帶來不少的麻煩。遇到這種情況時,筆者建議可以把上面這張表分解成三種獨立的表,分別為圖書基本信息表、作者基本信息表、圖書與作者對應表等等。如此設計以後,以上遇到的所有問題就都引刃而解了。以上五條是在資料庫設計時達到規范化水平的基本要求。除了這些另外還有很多細節方面的要求,如數據類型、存儲過程等等。而且,資料庫規范往往沒有技術方面的嚴格限制,主要依靠資料庫管理員日常工作經驗的累積。第一範式每個分量不可再分第一範式消除了非主屬性對鍵的部分函數依賴,就是第二範式第二範式消除了任何屬性對鍵的傳遞依賴,就是第三範式~
⑩ 請簡要說明資料庫邏輯設計所包含的工作
設計資料庫來的邏輯結構源,與具體的DBMS無關,主要反映業務邏輯。資料庫邏輯設計是整個設計的前半段,包括所需的實體和關系,實體規范化等工作。
資料庫邏輯設計決定了資料庫及其應用的整體性能,調優位置。如果資料庫邏輯設計不好,則所有調優方法對於提高資料庫性能的效果都是有限的。為了使資料庫設計的方法走向完備,資料庫的規范化理論必須遵守。規范化理論為資料庫邏輯設計提供了理論指導和工具,在減少了數據冗餘的同時節約了存儲空間,同時加快了增、刪、改的速度。
另外,在規范的資料庫邏輯設計時,還應考慮適當地破壞規范規則,即反規范化設計,來降低索引、表的數目,降低連接操作的數目,從而加快查詢速度。常用的反規范技術有增加冗餘列、增加派生列、重新組表等。
總之,在進行資料庫邏輯設計時,
一定要結合應用環境和現實世界的具體情況合理地選擇資料庫模式。