數據庫是一個以某種有組織的方式存儲的數據集合。也就是:保存有組織數據的容器(一個文件或一組文件)數據庫
毫無疑問,數據庫是用來存儲數據的。咱們對excel確定不會陌生,excel也是用來存儲數據。那既然有excel這樣很是好用的軟件了,爲何須要數據庫呢??數組
數據庫就解決了上面的問題,而且數據庫以特殊的機制管理數據文件,對數據有極高的讀寫速度,大大超過了操做系統對常規文件的讀寫速度。安全
數據庫系統由三個層次組成:markdown
咱們在現實生活中描述一個事物是很是簡單的,看到「一棵樹」,就說是「一棵樹」。網絡
但怎麼把「一棵樹「在計算機描述起來呢??計算機只識別0和1,」一棵樹「是不能直接存儲到計算機上的!數據結構
因而乎,咱們就把」一棵樹「抽象出來,造成信息世界的概念模型。而後將概念模型的形式化成是DBMS支持的數據模型,存儲在計算機中。編碼
簡單來講:數據描述就是將現實世界中的實物抽象出來,造成概念模型。把概念模型的形式轉換成是DBMS支持的類型,而後存儲到計算機中!操作系統
數據模型主要用來描述數據!上邊已經說了,當咱們想在計算機上存儲現實事物的數據時,須要先抽象成概念模型。將概念模型轉換成DBMS支持的數據模型,就能夠把事物存儲到計算機中!指針
數據模型通常由三個部分組成:excel
數據模型也經歷了一個發展階段:
①:層次模型,是一種樹型(層次)結構來組織數據的數據模型。
優勢:
缺點:
②:網狀模型, 是用有向圖結構來組織數據的數據模型
優勢:
缺點:
③:關係模型,是一種用二維表格結構表示數據及數據之間聯繫的數據模型。
關係模型是咱們如今用得最多的數據模型。
優勢:
缺點:
咱們對照着課程關係表來說解吧:
客觀存在並可相互區別的事物稱之爲實體。能夠當作是Java類
例子:(課程關係表)就是一個實體。
實體所具備的某一特性稱之爲屬性。能夠當作是Java類的成員變量。屬性在數據庫中又稱爲字段(或者是列)
例子:(課程名),(課程號)、(學時)就是屬性名。
除含有屬性名所在的行以外的其餘行稱之爲元組。
下面的每一行數據都稱之爲元組
(C401001 數據結構 70)
(C401002 操做系統 80)
(C402001 計算機原理 60)
碼也被稱做是關鍵字。它能夠惟一標識一個實體。
候選碼和主碼:
例子:郵寄地址(城市名,街道名,郵政編碼,單位名,收件人)
它有兩個候選鍵:{城市名,街道名} 和 {街道名,郵政編碼}
若是我選取{城市名,街道名}做爲惟一標識實體的屬性,那麼{城市名,街道名} 就是主碼
關係名和其屬性集合的組合稱之爲關係模式。
關係模式例子:課程關係表(課程號,課程名,學時)
提示:關係模型就是關係模式組成的集合
關係模型要求元組的每個份量都是原子性的,也就是說,它必須屬於某種元素類型,如Integer、String等等,不能是列,集合,記錄,數組!
域就表明着該元組中每一個份量的類型,從上面的圖咱們能夠看出,它的域是這樣的:課程號:string,課程名:string,學時:int
數據庫的體系內部結構咱們能夠分爲三層:
三級模式的位置:
三級模式的做用:
邏輯模式是對數據庫所有數據的總體邏輯結構的描述。
例子:如今我有一個數據庫,操做權限、角色、用戶之間的關係
因而有了如下的關係模式
在數據庫中全部關係模式的集合就組成了邏輯模式!
外模式是對數據庫用戶能看見和使用的局部數據邏輯結構的描述,是與某一應用有關的數據的邏輯表示。
外模式是能夠有多個的,外模式是用戶和DBAS的接口,是對局部邏輯結構的描述!
當用戶應用程序只須要顯示用戶名稱和密碼時:
在數據庫中操做局部邏輯結構就稱做爲外模式!
內模式是對數據庫表物理存儲結構的描述。它定義了數據的內部記錄類型、記錄尋址技術、索引和文件的組織方式及數據控制方面的內容
兩級映像分別是:
提出兩級映射的概念有什麼用呢?爲何須要有這兩級映像呢??
也就說:在改變內部結構的時候,只要不會觸及外部的數據時,外部的數據並不須要作改變。兩級映像概念的提出也就是程序中耦合的問題!