第一節:資料庫原理
1.1 資料庫管理系統
(1)資料庫是資料的匯集,它以一定形式存于存盤介質上
(2)DBMS是管理資料庫的系統軟體,它實作資料庫系統的各種功能,是資料庫系統的核心
(3)DBA(資料庫管理員)負責資料庫的規劃、設計、協調、維護、管理和性能優化等作業
(4)應用程式指以資料庫為基礎的應用程式
1.2 資料庫管理系統的優點
(1)相互關聯的資料的集合
(2)較少的資料冗余
(3)程式與資料相互獨立
(4)保證資料的安全、可靠
(5)最大限度地保證資料的正確性
(6)資料可以并發使用并能同時保證一致性
1.3 資料庫管理系統的基本功能
(1)資料定義
定義資料型別等
(2)資料處理
增刪改查等
(3)資料安全
權限控制等
(4)資料備份
備份還原等
1.4 資料庫系統架構
(1)單機架構
(2)大型主機/終端架構
(3)主從架構(C/S)
目前主流,用戶訪問量成為瓶頸
(4)分布式架構
解決用戶訪問量瓶頸
1.5 關系型資料庫
(1)關系:關系就是二維表,滿足如下性質:
表中的行、列次序并不重要
(2)行 row:表中的每一行,又稱為一條記錄(record)
(3)列 column:表中的每一列,成為屬性,欄位
(4)主鍵(Primary key):用于唯一確定一個記錄的欄位,避免出現一樣的欄位
(5)域 domain:屬性的取值范圍,如,性別:男、女
(6)主流的關系型資料庫:
MYSQL(MySQL,MariaDB,Percona Server)、PostgreSQL、Oracle、MSSQL、DB2
(7)支持事務 transaction:多個操作被當作一個整體對待
ACID:
A:原子性
所有動作要么都做,要么都不做
C:一致性
資料時時刻刻要保證一致性
I:隔離性
執行多個事務,不能相互影響,各個事務看到的是開始時的資料,而不是dirty data
D:持久性
事務完成,資料永遠更改,擁有持久性
1.6 基本概念
(1)物體 Entity
客觀存在并可以相互區分的客觀事務或抽象事件稱為物體,在 E-R 圖中用矩形框表示物體,把物體名寫在框內,
(2)屬性
物體所具有的特征或性質
(3)聯系:聯系是資料之間的關聯集合,是客觀存在的應用語意鏈
物體內部的聯系:指組成物體的各屬性之間的聯系,如職工物體中,職工號和部門經理號之間有一種關聯關系
物體之間的聯系:指不同物體之間聯系,如學生選課物體和學生基本資訊物體之間
物體之間的聯系用菱形框表示
(4)聯系型別
一對一聯系(1:1)
一對多聯系(1:n)
多對多聯系(n:n)
多構建第三張表實作多對多聯系
(5)約束: constraint,表中的資料要遵守的限制
主鍵:一個或多個欄位的組合,填入的資料必須能在本表中唯一標識本行;必須提供資料,即 NOT NULL,一個表只能有一個
唯一鍵:一個或多個欄位的組合,填入的資料必須能在本表中唯一標識本行;允許為 NULL,一個表可以存在多個
外鍵:一個表中的某欄位可填入的資料取決于另一個表的主鍵或唯一鍵已有的資料
檢查:欄位值在一定范圍內
(6)索引
將表中的一個或多個欄位中的資料復制一份另存,并且此些需要按特定次序排序存盤
(7)關系運算:
選擇:挑選出符合條件的行
投影:挑選出需要的欄位(列)
連接:表間欄位的關聯
(8)資料三要素
資料結構:包括兩類
一類是與資料型別、內容、性質有關的物件,比如關系模型中的域、屬性和關系等;
另一類是與資料之間聯系有關的物件,它從資料組織層表達資料記錄與欄位的結構,
資料的操作:
資料提取:在資料集合中提取感興趣的內容 SELECT
資料更新:變更資料庫中的資料 INSERT、DELETE、UPDATE
資料的約束條件:是一組完整性規則的集合
物體(行)完整性 Entity integrity
主鍵 PK:一張表只能有一個,不能為空
唯一鍵 UK:一張表允許有多個,允許為空 null
域(列)完整性 Domain Integrity
參考完整性 Referential Integrity
外鍵 FK:構建表與表之間的聯系(第三張表),實作多對多聯系
(9)資料模型
資料抽象:
物理層:資料存盤格式,即 RDBMS 在磁盤上如何組織檔案
邏輯層:DBA 角度,描述存盤什么資料,以及資料間存在什么樣的關系
視圖層:用戶角度,描述 DB 中的部分資料
關系模型的分類:
關系模型
基于物件的關系模型
半結構化的關系模型:XML 資料
1.7 簡易資料規劃流程
(1)第一階段:收集資料,得到欄位
收集必要且完整的資料項;轉換成資料表的欄位,
(2)第二階段:把欄位分類,歸入表,建立表的關聯
關聯:表和表間的關系
分割資料表并建立關聯的優點:
節省空間
減少輸入錯誤
方便資料修改
(3)第三階段:
規范化資料庫
1.8 資料庫的正規化分析
范式:不同的規范要求
1NF:無重復的列,每一列都是不可分隔的基本資料項,同一列中不能有多個值,即物體中的某個屬性不能有多個值或者不能有重復的屬性,除去同型別的欄位,就是無重復的列
說明:第一范式(1NF)是對關系模式的基本要求,不滿足第一范式的資料庫就不是關系資料庫
2NF:屬性完全依賴于主鍵,第二范式必須先滿足第一范式,要求表中的每個行必須可以被唯一地區分,通常為表加上一個列,以存盤各個實體的唯一標識 PK,非 PK 的欄位需要與整個 PK 有直接相關性
3NF:屬性不依賴于其它非主屬性,滿足第三范式必須先滿足第二范式,第三范式要求一個資料庫表中不包含已在其它表中已包含的非主關鍵字資訊,非PK的欄位間不能有從屬關系
總結:范式就是用來打破的,為了追求高性能將屬性列于同一張表,但是利用的磁盤空間比較高,
1.9 SQL概念
結構化查詢語言,國際標準語言
SQL解釋器:
資料存盤協議:應用層協議,C/S
S:server,監聽于套接字,接收并處理客戶端的應用請求
C:Client,客戶端程式介面:
CLI
GUI
應用編程介面:
ODBC:Open Database Connectivity
JDBC:Java Data Base Connectivity
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/87928.html
標籤:Linux
上一篇:執行yum list installed | grep xxx 命令時報錯:未提供依賴perl-DBD-SQLite、perl-DBI
下一篇:初步進入Linux世界
