1. 程式人生 > >MySQL的一些概念

MySQL的一些概念

集合 要求 號碼 visio 16px 關系圖 width exce 兩個

數據庫與服務器、客戶端的層次關系

技術分享圖片

關於數據庫

程序中需要存儲數據的方式:

1 變量(列表、元組、集合、字典、嵌套)

2 外存(文件)(*.ini)

3 表格、Excel(*.xls、*.xlsx、*.csv)

4 結構化數據庫

數據庫中的基本概念

記錄(Record):數據庫中的一行

字段(Field):數據庫中的一列

實體(Entity):現實中客觀存在並可以被區分的事物。比如:學生、課程

屬性(Attribute):實體鎖具有的特征。比如:對於學生實體,所體現的屬性有:學號、姓名、年齡、性別

關系(RelationShip):實體與實體之間的依賴。包括:一對一、一對多、多對多。

以上三者(實體、屬性、關系)可以組成ER圖(實體關系圖)

通過Visio的數據庫模型圖建立表:

建表的時候需要考慮範式的約束

一般有如下範式:1NF 2NF 3NF BCNF 4NF 5NF

1NF:屬性不可分

姓名

電話號碼

年齡

座機

手機

張三

020-84444444

13777777777

23

李四

020-85555555

13888888888

34

如上,因為電話屬性可以拆分為座機和手機,所以不滿足1NF,修改如下:

姓名

座機

手機

年齡

張三

020-84444444

13777777777

23

李四

020-85555555

13888888888

34

2NF:符合1NF。非主屬性完全依賴於關鍵字

學號

姓名

課程編號

考試成績

101

張三

201

73

102

李四

202

53

該表中的依賴關系:

學號——姓名

(學號、課程編號)——考試成績

該表的關鍵字是:(學號、課程編號)

這裏的非主屬性姓名依賴於學號,是關鍵字的一部分,而不是全部。所以不滿足2NF

需要拆分成兩個表

學號

姓名

101

張三

102

李四

學號

課程編號

考試成績

101

201

73

102

202

53

這樣就滿足2NF了

3NF:符合1NF和2NF,並且消除傳遞依賴

學號

課程編號

老師

職稱

101(張三)

201(高等數學)

張老濕

磚家

102(李四)

202(大學英語)

陳教授

叫獸

103(王五)

202(大學英語)

陳教授

叫獸

顯然滿足1NF

該表的關鍵字是:(學號、課程編號)。後面的非主屬性完全依賴於關鍵字,所以滿足2NF

(學號、課程編號)——上課老師

老師——職稱

像這種A依賴於B,B依賴於C的設計,就稱為傳遞依賴,是不滿足3NF

需要拆分成兩個表

學號

課程編號

老師

101(張三)

201(高等數學)

張老濕

102(李四)

202(大學英語)

陳教授

103(王五)

202(大學英語)

陳教授

老師

職稱

張老濕

磚家

陳教授

叫獸

這樣就滿足了3NF的標準了

後面還有BCNF、4NF、5NF。但是我們設計數據庫一般要求達到3NF即可

MySQL的一些概念