邏輯結構設計
- 簡介
目的:将E-R圖中的實體、屬性和聯系轉換成為“關系模式”。
所謂關系模式,具有“關系型資料庫”的特點——可以了解為表和字段,但是不必考慮資料類型、索引等細節。
任務:将實體模型轉換成特定的DBMS所支援的資料模型的過程。
DBMS:資料庫管理系統
- 初始關系模型設計
(1)實體轉關系遵循的原則:
- 實體轉為表,屬性轉為作字段。
- 聯系轉為表,相連實體的主鍵轉為字段、聯系自身的屬性轉為字段。
(2)實體間關系的轉換:
分為三種——1:1、1:n,m:n
1:1關系——獨立建表,随意并入
可以獨立成表,也可以與任意一端所對應的表合并。
如——原實體對應關系模式分别為:
- 班級(班号,專業)
- 班長(學号,姓名)
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CZyczNjJWN2ImZhZGOlRTO5kzM1czY3QmMwcTM1QGN08CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
有三種方式建表:
=====================
①獨立成一張表——沒什麼意義,還多一張表:
- 班級(班号,專業)
- 班長(學号,姓名)
- 班級·班長( 班号,班長學号 )
=====================
②将關系“管理”合并到實體“班級”對應的模式後為:
- 班級(班号,專業, 班長學号 )
- 班長(學号,姓名)
=====================
③關系“管理”也可以合并到實體“班長”對應的模式,将關系“管理”合并到實體“班級”對應的模式後為:
- 班級(班号,專業)
- 班長(學号,姓名, 班号 )
1:n關系——獨立建表,并入多表
可以獨立建表,也可以與n端所對應的表合并。
①獨立建表
- 系(系号,系名,系主任)——實體表
- 教師(編号,姓名,性别,職稱)——實體表
- 管理(教師編号,系号)——關系表
============================
②合并到實體“教師”:
- 系(系号,系名,系主任)
- 教師(教師号,姓名,職稱,性别, 系号 )
注意:隻能合并到“多”的一端。
m:n關系——獨立成表,主鍵全收
關系隻能獨立成表,自身的屬性也轉換為字段,相連的實體的主鍵也轉換為字段,并作為新表的聯合主鍵。
如——
- 課程( 課程号 ,課程名,學時,類别) 實體表
- 學生( 學号 ,姓名,性别,專業,出生日期,照片) 實體表
- 選修( 學号,課程号 ,分數) 關系表
=====================
三個或三個以上實體間的多元關系轉換為一個獨立的表,轉換方式同m:n關系。
- 關系模式規範化
範式定義 ——符合某一種級别的關系模式的集合,表示一個關系内部各屬性之間的聯系的合理化程度。
說人話——一張資料表的表結構所符合的某種設計标準的級别。
資料庫範式分為1NF,2NF,3NF,BCNF,4NF,5NF。
BCNF:Boyce-Codd Normal Form(巴斯-科德範式)
符合高一級範式的設計,必定符合低一級範式。例如符合2NF的關系模式,必定符合1NF。
第一範式——每一個分類必須是一個不可分的資料項。屬性不可再分,確定每列的原子性。
(簡單了解:每個表的每個字段不能再拆分)第二範式——每個表隻描述一件事情,每條記錄有唯一辨別列。
(簡單了解:每個表都有主鍵)第三範式——資料庫表中不包含已在其它表中已包含的非主關鍵字資訊。
(簡單了解:從表隻引用主表的主鍵,不得包含其他資訊)