哈尔滨工业大学-数据库系统(基本知识与关系模型1)
生活随笔
收集整理的這篇文章主要介紹了
哈尔滨工业大学-数据库系统(基本知识与关系模型1)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第1講-初步認識數據庫系統
什么是數據庫
-
關系中的概念 :
表 / 關系
表名 / 表標題(格式) / 表內容(值)
列 / 字段 / 屬性 / 數據項
行 / 元組 / 記錄 -
而 數據庫(Database)就是 相互有關聯關系的若干Table的 集合
什么是數據庫系統
數據庫系統(工作環境):
數據庫DataBase(DB)
數據庫管理系統DBMS
數據庫應用DBAP
數據庫管理員DBA
計算機基本系統
- 區別 :
- 數據庫系統是一個這樣的大的環境
- 而 數據庫管理系統 只是一個管理數據庫的一個軟件
什么是數據庫管理系統(用戶角度)
用戶角度看數據庫管理系統的功能
- 數據庫定義 :數據定義語言DDL;定義數據庫中Table的名稱、標題
- 數據庫操作 :數據操縱語言DML;向數據庫的Table中增、刪、改、查
- 數據庫控制 :數據控制語言DCL;控制數據庫中數據的使用-哪些用戶可以使用,哪些不可以
- 數據庫維護 :一系列程序(實用程序/例行程序);轉儲/恢復/重組/性能檢測/分析
數據庫語言
- 使用者通過數據庫語言利用DBMS操作數據庫
- SQL語言 :結構化的數據庫語言
- SQL語言 分為 DDL、DML、DCL
- 一條數據庫語言語句相當于高級語言的一個或多個循環程序
- 數據庫語言可以嵌入到高級語言(宿主語言)中使用 -> 嵌入式數據庫語言
什么是數據庫管理系統(系統角度)
從系統實現角度看DBMS的功能
- DBMS為完成DB管理,在后臺運行著一系列程序
- DBMS系統可越過 操作系統 直接管理
第2講-數據庫系統的結構抽象與演變
數據庫系統的標準結構
數據 與 數據的結構-模式
- 模式Schema :數據的結構
對數據庫中數據所進行的一種結構性的描述
所觀察到數據的結構信息 - 視圖View/數據Data :展現的數據
某一種表現形式下表現出來的數據庫中的數據
三級模式兩層映像
兩層映像 :
- E-C Mapping :將外模式映射為概念模式;從而支持實現 數據概念視圖 向 外部視圖 的轉換;便于 用戶觀察和使用
- C-I Mapping :將概念模式映射為內模式;從而支持實現 數據概念視圖 向 內部視圖 的轉換;便于 計算機進行存儲和處理
兩個獨立性
- 邏輯數據獨立性 :當概念模式變化時,可以不改變外部模式(只需改變E-C Mapping),從而無需改變應用程序
- 物理數據獨立性 :當內部模式變化時,可以不改變概念模式(只需改變C-I Mapping),從而無需改變外部模式
什么是數據模型
三大經典數據模型
- 關系模型 : 表 的形式組織數據
- 層次模型 : 樹 的形式組織數據
- 網狀模型 : 圖 的形式組織數據
關系模型
層次模型
網狀模型
數據庫系統的演變與發展
- 由 層次模型數據庫、網狀模型數據庫 到 關系數據庫
層次模型與網狀模型數據庫 :數據之間的關聯關系由復雜的指針系統來維系
關系數據庫 : 數據之間的關聯關系由Table中屬性的值來表征,結構描述簡單 - 由 關系數據庫 到 對象關系數據庫、面向對象數據庫
關系數據庫 :按行按列形式組織數據 :關系的第1范式;數據項的不可再分;關系運算 :關系代數、元組演算、域演算 -> 標準SQL
面向對象數據庫 :O-O 與 SQL 的結合;支持復雜的數據類型(行對象、列對象、結構對象、聚集對象),數據封裝與抽象數據結構;類、繼承、封裝、多態
XML數據庫 :半結構化數據庫 ;數據交換;數據 與 數據的語義
第3講-關系模型之基本概念
什么是關系模型
- 關系模型的三個要素 :基本結構、基本操作、完整性約束
- 關系運算 :關系代數和關系演算
- 關系演算 :元組演算 和 域演算
- 關系代數 :基于集合的運算,即,操作的對象及結果都是集合
- 元組演算 :基于邏輯的運算
- 域演算 :基于示例的運算
什么是關系
- “列”的取值范圍“域” :一組值的集合,這組值具有相同的數據類型;集合中元素的個數稱為 域的基數
- “元組”及所有可能組合成的元組 :笛卡爾積;笛卡爾積是由n個域形成的所有可能的n-元組集合;若DiD_iDi?的基數為mim_imi?,則笛卡爾積的基數,即元組個數為m1?m2?m_1*m_2*m1??m2??
- 由于笛卡爾積中的所有元組并不都是有意義的,因此:關系 :一組域的笛卡爾積的子集
關系有什么特性
- 列是同質
- 理論上, 關系 的任意兩個元組不能完全相同;現實應用中, 表Table 可能并不完全遵守
- 屬性不可再分特性 :又被稱為 關系第一范式(前面有舉例(不能是 聚集對象 之類的))
候選碼與外碼
- 候選碼/候選鍵 :關系中的一個 屬性組 ,其值能唯一標識一個元組;若從該屬性組中去掉任何一個屬性,它就不具有這一性質了;有時,關系中有很多組候選碼
- 主碼/主鍵 :當有多個候選碼(也就是說有很多組)時,可以選定一個作為主碼;DBMS以主碼為主要線索管理關系中的各個元組
- 主屬性 :包含在 任何一個 候選碼中的屬性;而其他屬性被稱作 非主屬性;最極端的,所有屬性構成這個關系的候選碼,稱為 全碼(例如,關系“教師授課”)
- 外碼/外鍵 :不是本關系的候選碼,但它與另一個關系的候選碼相對應;兩個關系通常是靠外碼連接起來的(例如,關系”合同“中的客戶號)
關系模型的完整性
- 空值 :不知道、不存在或無意義的值
- 參照完整性 :如果關系R1的外碼Fk與關系R2的主碼Pk相對應,則R1中的每一個元組的Fk值或者等于R2中某個元組的Pk值,或者為空值
- 用戶自定義完整性 :用戶針對具體的應用環境定義的完整性約束條件
第4講-關系模型之關系代數
什么是關系代數
- 基于集合
- 基本操作(并、差、笛卡爾積(廣義積)、選擇、投影和更名);擴展操作(交、連接、關系除)
并相容性的概念
- 某些關系代數操作,需滿足“并相容性”
- 關系R與關系S存在相容性 當且僅當 :
1)屬性數目相同
2)關系R的第i個屬性的域必須和關系S的第i個屬性的域相同
并操作
- R U S
- 滿足并相容
- 在合并時去掉重復的元組
- “或者。。或者。。” 通常意義是 并運算 的要求
差操作
- R - S
- 滿足并相容
- 出現在R中 但不出現在S中
- “是。。但不含。。” 通常意義是 差運算 的要求
廣義笛卡爾積操作
- R X S
- 關系R與關系S的( 廣義笛卡爾積 廣義積 積 笛卡爾積) 也是一個關系
- 由關系R中的元組 與 S的元組 進行所有可能的拼接構成
選擇操作
- 關系R,同時給一個選擇的條件,選擇運算結果也是一個關系
- 從關系R中選擇出滿足給定條件的 元組 構成
- 條件書寫很重要,注意運算符的優先次序,從高到低為 括弧;比較;非;交;并
投影操作
- 關系R,投影運算結果也是一個關系
- 從關系R中選出屬性包含在條件A中的 列 構成
交操作
- R ^ S
- 滿足并相容
- 交運算可以通過差運算來實現 :R^S=R-(R-S)
- “既。。又。。” 通常意義是 并運算 的要求
theta-連接操作
- 投影和選擇操作只是對單個關系(表)進行操作,對多個表之間操作就需要theta-連接操作
- 關系R和關系S的theta-連接 由 關系R和S的 笛卡爾積 中,選取 R中屬性A 與 S中屬性B 之間滿足theta條件的 元組構成
等值連接
- 由關系R和關系S的笛卡爾積中選取R中屬性A與S中屬性B上 值相等 的元組構成
- 當theta-連接中運算符為“=”時,就是等值連接
自然連接操作
- 由關系R和關系S的笛卡爾積中選取 相同屬性組B上值相等 的元組構成
- 自然連接是一種特殊的 等值連接
- 要求R和S必須由相同的屬性組,值也必須相等 才可以連接
- 連接后去除重復的列
應用關系代數操作訓練
- 第二個方案中,做了自然連接以后,還是原先三個屬性,因此,仍然是不行的
除操作
外連接操作
總結
以上是生活随笔為你收集整理的哈尔滨工业大学-数据库系统(基本知识与关系模型1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黑马程序员pink老师前端入门教程,零基
- 下一篇: Maven自动化构建工具