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