關係型資料庫的定義及設計思路
1、關係型資料庫
關係型資料庫:是一種建立在關係模型(數學模型)上的資料庫。
關係模型:一種所謂建立在關係上的模型。關係模型包含三個方面:
數據:數據存儲的問題,二維表(有行和列)
操作指令集合:所有SQL語句
完整性約束:表內數據約束(欄位與欄位),表與表之間約束(外鍵)
2、關係型資料庫的設計
關係型資料庫:從需要存儲的數據需求中分析,如果是一類數據(實體)應該設計成一張二維表;表是由表頭(欄位名:用來規定數據的名字)和數據部分組成(實際存儲的數據單元)
二維表:行和列
表頭 | 欄位名1 | 欄位名2 |
數據單元 | 數據1 | 數據線 |
以實際的案例來進行分析:分析一個教學系統,講師負責教學,教學生,在教室裡面教學生
①找出系統中所存在的實體:講師表,學生表,班級表
②找出實體中應該存在的數據信息
講師:姓名,性別,年齡,工資……
學生:姓名,性別,學號,學科……
班績:班級名字,教室編號……
關係型資料庫:維護實體內部,實體與實體之間的聯繫
實體內部聯繫:每個學生都有姓名,性別,學科信息
姓名 | 性別 | 學號 | 學科 | 年齡 |
陳滔 | 女 | 030310303 | 化學工程 | 22 |
杜洪 | 男 | 030320305 | 化工原理 | |
付威 | 030330303 | 物理化學 |
第二行的所有欄位,都是在描述陳明這個學生(內部聯繫);第二列只能放性別(內部約束)——實體內部的聯繫
關係型資料庫的特點之一:如果有表中對應的某一個欄位沒有值(數據),但是系統依然要分配空間:關係型資料庫比較浪費空間
實體與實體之間的聯繫:每個學生肯定屬於某個班級,每個班級一定有多個學生(一對多)
第二行的所有欄位,都是在描述陳明這個學生(內部聯繫);第二列只能放性別(內部約束)——實體內部的聯繫
關係型資料庫的特點之一:如果有表中對應的某一個欄位沒有值(數據),但是系統依然要分配空間:關係型資料庫比較浪費空間
實體與實體之間的聯繫:每個學生肯定屬於某個班級,每個班級一定有多個學生(一對多)
姓名 | 性別 | 學號 | 學科 | 年齡 |
陳滔 | 女 | 030310303 | 化學工程 | 22 |
杜洪 | 男 | 030320305 | 化工原理 | |
付威 | 030330303 | 物理化學 |
班級表
班級名稱 | 教室編號 |
化工原理 | B203 |
物理化學 | A305 |
問題:從上述兩個表中能否確定哪個學生屬於哪個班級或者哪個班級有哪些學生?
解決方案:在學生表中增加一個班級欄位來指向班級(必須能夠唯一的找到一個班級信息)
姓名 | 性別 | 學號 | 學科 | 年齡 | 班級信息 |
陳滔 | 女 | 030310303 | 化學工程 | 22 | 化工原理 |
杜洪 | 男 | 030320305 | 化工原理 | 物理化學 | |
付威 | 030330303 | 物理化學 | 物理化學 |
學生實體與班級實體的關聯關係——實體與實體之間的關係