筆試面試那件小事(資料庫-範式),筆試範式

來源:互聯網
上載者:User

筆試面試那件小事(資料庫-範式),筆試範式

1>相關概念和知識

資料依賴:反映一個關係內部屬性與屬性之間的約束關係,是現實世界屬性相互聯絡的抽象,屬於資料內在的性質和語義的體現

 

正常化理論:是用來設計良好的關係模式的基礎。它通過分解關係模式來消除其中不合適的資料依賴,以解決插入異常、刪除異常、更新異常和資料冗餘問題

 

函數依賴:簡單的說,對於關係模式的兩個屬性子集X和Y,若X的任一取值都能唯一確定Y的值,那麼則稱Y函數依賴於X,記為X->Y

 

非平凡函數依賴:對於關係模式的兩個屬性子集X和Y,如果X->Y,但是Y不是X的子集,那麼就稱X->Y為非平凡函數依賴

 

完全函數依賴:對於關係模式的兩個屬性子集X和Y,如果X->Y,並對於X的任何一個真子集X',都有X‘->Y,稱為完全函數依賴

 

範式:指符合某一種層級的關係的集合。

 

1NF:若關係模式的所有屬性都是不可分的基本資料項目,則該關係屬於1NF

 

2NF:1NF關係模式如果同時滿足每一個非主屬性完全依賴於碼,則該關係模式為2NF

 

3NF:若關係模式的每一個非主屬性,既不部分依賴於碼,也不傳遞依賴於碼,則該關係模式為3NF

 

BCNF:若一個關係模式的每個決定因素都包含碼,則該關係模式為BCNF

 

資料庫設計:是指對於一個給定的應該環境,構造最佳化的資料邏輯模式和物理結構,並據此建立資料庫及其應用系統,使之能夠有效儲存和管理資料,滿足各種使用者的應用需求,包括資訊管理需求和資料庫操作需求。

 

資料庫設計的6個基本步驟:需求分析、概念結構設計、邏輯結構設計、物理結構設計、資料庫實現、資料庫運行和維護

 

概念結構設計:是指需求分析得到的使用者需求抽象為資訊結構。代表E-R圖構建

 

邏輯結構設計:將概念結構模型(E-R圖),轉化為某個DBMS系統支援的資料模式。代碼E-R轉為關係資料模式

 

物理結構設計:為一個給定的邏輯資料模型選取一個合適應用環境的物理結構過程。包括設計資料的儲存結構與存錢方法

 

抽象:指對實際的人、物、事和概念進行人為處理,抽取所關心的共同特徵,忽略非本質的細節。

 

資料庫設計必須遵循<結構設計和行為設計>相結合的原則

 

資料字典主要包括資料項目、資料結構、資料流、資料存放區和處理過程5個部分

 

三種常見抽象方法:分類、聚集和概括

 

局部E-R圖之間的衝突主要表現在屬性衝突、命名衝突和結構衝突三個方面

 

資料庫常用的存取方法:索引方法、聚簇方法和HASH方法

 

確定資料存放位置和儲存結構需要考慮的因素主要有:存取時間、空間利用率和維護代價

 

&&&&&&&&&&&&資料庫的範式&&&&&&&&&&&&&

1>第一範式(1NF)無重複的列

第一範式(1NF)中資料庫表的每一列都是不可分割的基本資料項目

同一列中不能有多值

即實體中的某一屬性不能有多個值或者不能有重複的屬性。不滿足1NF的資料庫不是關聯式資料庫

 

2>第二範式(2NF)屬性完全依賴於主鍵(消除部分函數依賴)

滿足第二範式必須先滿足第1範式

第二範式要求資料庫表中的每一個執行個體或者元組必須可以被唯一的區分

 

3>第三範式(3NF)消除傳遞依賴

 

例子:在設計資料庫表結構之前,我們先確定一下要設計的內容包含哪些。學號、學生姓名、年齡、課程、課程學分、系別、學科成績、系辦公地址、系辦電話等資訊。為了更好的理解資訊,將上述資訊分為以下幾個方面:

學生資訊包括哪些

學生選了哪些課,成績是什麼

每個課程的學分是多少

學生屬於哪個系,系的基本資料是什麼

首先第一範式(1NF):資料庫表中的欄位都是單一屬性,不可再分。這個單一屬性由基本類型構成,包括整數、字元、邏輯型、日期型等。目前在任何的關聯式資料庫中不允許將一列分成多列,因此做出的資料庫都符合第一範式的資料庫

 

考慮第2範式,先把所有的資訊放到一個表中(學號,學生姓名,年齡,性別,課程,課程學分,系別,學科成績,系辦地址,系辦電話)並且存在下列的依賴關係。

1)(學號)->(姓名,年齡,性別,系別,系辦地址,系辦電話)

2)(課程名稱)->(學分)

3)(學號,課程)->(學科成績)

根據依賴關係我們產生三個表:

學生:student(學號,姓名,年齡,性別,系別,系辦地址,系辦電話)

課程:Course(課程名稱,學分)

選課關係:selectCourse(學號,課程名稱,成績)

對照第二範式的要求,上述表已經滿足第二範式。如果一個資料庫不滿足第2範式,則會產生:

資料冗餘,更新異常,刪除異常等;例如同一課程由n個學生選修,那麼學分就重複了n-1次,同一個學生選修了m個課程,那麼他的名字就重複多次

若調整了某一門課程的學分,則所有的學分都得更新,否則會出現一門課程多種學分的情況。假設一批學生已經選修完了課程,要將這些記錄從資料庫中刪除,那麼會連同課程的資訊被一道刪除。

 

接下來再考慮將資料庫改成滿足第3範式的資料庫表:

看上面的學生表Student(學號,姓名,年齡,性別,系別,系辦公地址,系辦電話),單一碼為學號。並且系辦地址和系辦電話依賴於系別。存在傳遞函數依賴。

將學生表拆成兩個表:

學生(學號,姓名,年齡,性別,系別)

系別(系別,系辦地址,系辦電話)

上述關係滿足三範式。


資料庫範式問題 急

答案:第一範式
我言簡意賅的給你介紹一二三範式的定義吧
滿足第二範式的前提是滿足第一範式, 滿足第三範式的前提是滿足第二範式,以此類推 總共有6級範式.但常用的是123級範式.
第一範式,是關係型資料庫必須滿足的基本要求,不滿足第一範式的資料庫就不是關係型資料庫.
所謂第一範式就是:資料庫種的每一列都是不可分割的基本資料項目,(如每一條記錄都是不重複的,但是每一列的值卻有重複的,因為課程與專業是多對多的關係)同一列中不能有多個值,及實體中的某個屬性不能有多個值或者不能有重複值.(如 一個課程號對應一個課程名.)
第二範式:要求資料庫表中的執行個體或行必須能唯一的被標識(就是要求有一個代理主鍵,比如說用序列產生一個不重複的ID作為標識)
第三範式:是要求一個資料庫表中不包含 已在其他表中包含的非主關鍵字資訊.(如 部門表 儲存的是部門編碼 部門名稱 地址.那麼在員工表中 儲存的就是員工編碼 部門編碼 以及其他的員工個人資訊,卻不能包含部門名稱 或者地址之類的欄位列).
看完這些,相信你能很快明白為什麼 你提出的問題是第一範式了.簡單的儲存一個實體的描述資訊,不考慮主鍵,不考慮與其他表的關係,那麼就是關係型資料庫的最低要求. 第一範式.
 
資料庫範式一道習題

(1)符合第一範式,每一列都是不可分割的基本資料項目。
不符合第二範式,因為主鍵應該是圖書編號+讀者號(假設一個人只節某本書一次,否則主鍵還要加借出日期),但書名和作者只有圖書編號決定,這就不符合第二範式的屬性完全依賴於主鍵。
(2)要把拆分成三個關係:
1 圖書 (圖書編號,書名,作者)
2 讀者 (讀者號,讀者名)
3 圖書管理 (圖書編號,讀者號,借出日期,應還日期)
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.