数据库的设计建立
??????? 一般將數據庫設計 分為6個階段,包括系統規劃,需求分析,概念設計,邏輯設計,物理設計,系統實施,咱們重點講解邏輯設計,物理設計
&數據庫的邏輯設計
1.1關系數據庫設計基礎
???? 現實世界中的對象為實體,是客觀存在并可相互區別的事物,事物可以指實際的東西也可指抽象的事物還可以指事物與事物的聯系)
?1.1.1.實體與關系表
??????? ? ????? 實體是用來描述現實世界中事物及其聯系的,把組合在一起的同類事物叫做實體集,即性質相同的同類事物的集合。這里的同類是指同一實體集合中的每個實體具有相同的特征要求·
?????????? ?? ?? 用來表示實體某一方面的特性叫屬性,例如人的姓名,年齡,職務,專長等表示了人的5個方面的特性,特性是對同類的限定,人類可以根據需要選擇其中的某些特性,甚至賦予新的特性,如職工編號。如果把人作為認識管理的對象,可用職工編號姓名,性別,年齡等特性描述,如果把人作為財務管理的對象,可用職工編號,姓名,基本工資,工齡工資等特性來描述。
??? ???????? ???? 實體是通過屬性來體現的,因此實體是相關屬性的集合,例如,職工編號001,姓名馬華騰,基本工資6000.工齡工資500等屬性的集合,表示馬化騰的工資清單這樣一個實體。
????????????????? 實體是千差萬別的,即使是同類實體也各不相同,因而不可能有兩個實體在所有的屬性上是相同的。實體集合有一個或一組特殊的屬性,能夠唯一表示實體集合中的每個實體,能將一個實體與其他實體區分開來的屬性集叫做實體標識符。
????????????????? 在關系型數據庫Oralce中,把實體集表示為表,實體表示為表中的行,屬性表示為表中的列,實體表示符表示為關鍵字或主碼。
1.1.2.實體間的聯系
??????? ?????????? 在一個數據庫中,一般具有幾個,幾十個,幾百個實體集合,集合之間不是孤立的,是有聯系的。兩個集合之間的聯系就是兩個屬性或者兩個實體集合之間的聯系
????????????????? (1)一對一聯系
???????????????????? 如果實體集EA中的任何一個實體僅對應于實體集EB中一個實體,則稱EA對EB是一對一聯系。以1:1表示,即專業與系部的關系,一個系部只能有一個系主任
?????????????????? (2)一對多(多對一)聯系
??????????????????? 如果實體集EA中至少有一個實體對應于實體集EB中一個以上的實體,反之,實體集EB中任一實體至多對應于實體集EA中的一個實體,則稱實體集EA對實體集EB是一對多關系,以1:N表示(實體集EB對實體集EA是多對一關系,以N:1表示)。例如班級與學生的關系,一個班級可以有多么學生,一個學生只能屬于一個班級。
??????????????????? (3)多對多聯系
???????????????????? 如果實體集EA中至少有一個實體對應于實體集EB中一個以上實體:反之,實體集EB中也只是有一個實體對應于實體集EA中一個以上實體,則稱A與B是多對多關系,以N:M表示,例如學生與課程之間的關系,一名學生可以學習多門課程,多門學生可以學習一門課程。
1.2關系數據庫的規范化
????????????????????? 關系數據庫中的關系需要滿足一定的要求這些要求被稱為范式。,規范化的關系數據庫有助于消除表中的冗余與不一致性,數據庫的設計主要是數據庫模式的設計,關系模式的設計將直接影響數據庫的質量
????????????????????? 1.第一范式
???????????????????? 如何一個實體(表)的所有屬性都是不可分割的,即表中的每一行和每一列均有一個值,并且永遠不會是一組值,這表被稱為滿足1NF(第一范式定義的數據庫中不包含任何多值屬性)
???????????????????? 2.第二范式
????????????????????? 第二范式允許數據庫中用多個屬性作為主碼(主碼是實體實例的唯一標識符),在包括多個碼的表中,如何函數依賴于碼中的一部分來確定信息,則違反了第二范式
???????????????????? 3第三范式
???????????????????? 每個非關鍵子子列都獨立于其他非關鍵子列,并依賴于關鍵字,第三范式指數據庫中不能存在傳遞函數依賴關系
???????????????????? 4Boyce-Codd范式BCNF
?????????????????? 在表中,可以將其中一列或多列指定為主碼,也可以指定其他某些列為候選碼,表中也存在其他屬性。不考慮候選碼,唯一的函數依賴關系存在于表中的每個屬性與整個主碼之間。(消除主屬性對碼的部分和傳遞依賴)
&數據庫的物理設計
數據庫邏輯確定后,在此基礎上就可以設計一個有效,可實現的數據庫物理結構。數據庫物理結構有時候也被稱為存儲結構。物理設計包括某些操作約束,如響應時間和存儲要求等。數據庫的物理設計的主要任務是:對數據庫中數據在物理設備上的存放結構和存取方法進行設計??????????????????? 1.設計步驟
??????????????????? (1)存儲記錄結構設計,包括記錄的組成,數據項的類型和長度,以及邏輯記錄到存儲記錄的映射。還要對數據項類型特征做分析,對存儲記錄進行格式化,并決定如何進行數據壓縮或代碼化
?????????????????????? (2)確定數據存儲方式,物理設計最重要的一個考慮,就是把存儲記錄在全范圍內進行物理安排
??????????????????????????? 順序存放:平均查詢次數為該關系中記錄個數的二分之一
??????????????????????????? 哈希存放:查詢次數有哈希算法決定
??????????????????????????? 索引存放:要確定建立何種索引,及建索引的表和屬性
??????????????????????????? 聚簇存放:記錄聚簇是將不同類型的記錄分配到相同的物理區域中去以充分利用物理順序性的優點,從而提高訪問速度,即把經常在一起使用的記錄聚簇在一起,以減少物理i/o次數。
??????????????????????? (3)設計訪問方法,訪問方法設計為存儲在物理設備上的數據提供存儲結構和查詢路徑
??????????????????????? (4)完整性和安全性考慮。根據邏輯設計文檔中提供的對數據庫的約束條件以及具體的數據庫管理系統dbms,操作系統os的性能特征和硬件環境,設計數據庫的完整性和安全性措施。
??????????????????????? (5)形成物理設計文檔。包括存儲記錄格式,存儲記錄位置分布及方法方法,滿足的操作需求,并給出硬件和軟件系統的約束。
???????????????????????? 在物理設計中,注意物理數據的獨立性。所謂物理數據的獨立性,指消除由于物理數據結構變動而引起對應用程序的修改
??????????????????????? 2.設計性能 ?
??????????????????????? 數據庫的性能用時間 空間 開銷來衡量。
??????????????????????? 要提高數據庫物理性能,有下面一些基本考慮
??????????????????????? (1)為表和索引建立不同的表空間,禁止在系統表空間中放入非核心Oracle系統成分的對象,確保數據表空間和索引空間位于不同的磁盤驅動器上
???????????????????????? (2)了解終端客戶如何訪問數據,如果可能,將經常同時查詢和頻繁查詢的對象防止不同的物理磁盤上
???????????????????????? (3)當數據庫包含允許用戶并行訪問不同數據元素的大對象數據時,將大對象數據分割存放在多個磁盤上
???????????????????????? (4)在獨立的各盤上至少創建兩個用戶定義的回滾段表空間,以存放用戶自己的回滾段。在初始化文件中安排回滾段的次序,使他們在多個磁盤間進行切換。
???????????????????????? (5)將重做日志放在一個讀寫較少的盤上。對于每個oracle實例要建立2個以上的重做日志組,同坐的兩個成員放在不同的設備上
????????????????????????? (6)確立表和索引的大小,這決定了保持他們所需的表空間的尺寸,也決定了哪些表空間物理地裝在哪些盤上和哪些表空間可以結合在一起。
??????????????????????????? 對于不同的應用環境,對數據庫物理結構有不同的要去。用戶可以根據特定的應用環境對數據庫的要去,設計對于數據庫的物理結構,使得數據庫能夠支持企業計算。
????????????????
總結
- 上一篇: Oracle版本号的含义
- 下一篇: 神舟Z7 KP5D1驱动