天天看點

使用者自定義屬性表結構設計_通俗資料庫設計(3)邏輯結構設計

邏輯結構設計

  • 簡介

目的:将E-R圖中的實體、屬性和聯系轉換成為“關系模式”。

所謂關系模式,具有“關系型資料庫”的特點——可以了解為表和字段,但是不必考慮資料類型、索引等細節。

任務:将實體模型轉換成特定的DBMS所支援的資料模型的過程。

DBMS:資料庫管理系統
  • 初始關系模型設計

(1)實體轉關系遵循的原則:

  • 實體轉為表,屬性轉為作字段。
  • 聯系轉為表,相連實體的主鍵轉為字段、聯系自身的屬性轉為字段。

(2)實體間關系的轉換:

分為三種——1:1、1:n,m:n

1:1關系——獨立建表,随意并入

可以獨立成表,也可以與任意一端所對應的表合并。

如——原實體對應關系模式分别為:

  • 班級(班号,專業)
  • 班長(學号,姓名)
使用者自定義屬性表結構設計_通俗資料庫設計(3)邏輯結構設計

有三種方式建表:

=====================

①獨立成一張表——沒什麼意義,還多一張表:

  • 班級(班号,專業)
  • 班長(學号,姓名)
  • 班級·班長( 班号,班長學号

=====================

②将關系“管理”合并到實體“班級”對應的模式後為:

  • 班級(班号,專業, 班長學号
  • 班長(學号,姓名)

=====================

③關系“管理”也可以合并到實體“班長”對應的模式,将關系“管理”合并到實體“班級”對應的模式後為:

  • 班級(班号,專業)
  • 班長(學号,姓名, 班号

1:n關系——獨立建表,并入多表

可以獨立建表,也可以與n端所對應的表合并。

使用者自定義屬性表結構設計_通俗資料庫設計(3)邏輯結構設計

①獨立建表

  • 系(系号,系名,系主任)——實體表
  • 教師(編号,姓名,性别,職稱)——實體表
  • 管理(教師編号,系号)——關系表

============================

②合并到實體“教師”:

  • 系(系号,系名,系主任)
  • 教師(教師号,姓名,職稱,性别, 系号
注意:隻能合并到“多”的一端。

m:n關系——獨立成表,主鍵全收

關系隻能獨立成表,自身的屬性也轉換為字段,相連的實體的主鍵也轉換為字段,并作為新表的聯合主鍵。

如——

使用者自定義屬性表結構設計_通俗資料庫設計(3)邏輯結構設計
  • 課程( 課程号 ,課程名,學時,類别) 實體表
  • 學生( 學号 ,姓名,性别,專業,出生日期,照片) 實體表
  • 選修( 學号,課程号 ,分數) 關系表

=====================

三個或三個以上實體間的多元關系轉換為一個獨立的表,轉換方式同m:n關系。
  • 關系模式規範化
範式定義 ——符合某一種級别的關系模式的集合,表示一個關系内部各屬性之間的聯系的合理化程度。

說人話——一張資料表的表結構所符合的某種設計标準的級别。

資料庫範式分為1NF,2NF,3NF,BCNF,4NF,5NF。

BCNF:Boyce-Codd Normal Form(巴斯-科德範式)

符合高一級範式的設計,必定符合低一級範式。例如符合2NF的關系模式,必定符合1NF。

第一範式——每一個分類必須是一個不可分的資料項。屬性不可再分,確定每列的原子性。

(簡單了解:每個表的每個字段不能再拆分)

第二範式——每個表隻描述一件事情,每條記錄有唯一辨別列。

(簡單了解:每個表都有主鍵)

第三範式——資料庫表中不包含已在其它表中已包含的非主關鍵字資訊。

(簡單了解:從表隻引用主表的主鍵,不得包含其他資訊)