數據庫理論基本匯總
數據的時代特征:
涉及的數據量大
數據不隨程序的結束而消失
數據被多個應用程序共享
大數據
數據庫的發展史
萌芽階段————文件系統
使用磁盤文件來存儲數據
初級階段————第一代數據庫
出現了網狀模型、層次模型的數據庫
中級階段————第二代數據庫
關系型數據庫和結構化查詢語言
高級階段————新一代數據庫
“關系—對象”型數據庫
文件管理系統的缺點
編寫應用程序不方便
數據冗余不可避免
應用程序依賴性
不支持對文件的並以訪問
數據間聯系弱
難以按用戶視圖表示數據
無安全控制功能
數據庫管理系統的優點:
相互關聯的數據的集合
較少的數據冗余
程序與數據相互獨立
保證數據的安全、可靠
最大限度地保證數據的正確性
數據可以並發使用並能同時保證一致性
數據庫管理系統:
數據庫是數據的匯集,它以一定的組織形式存於存儲介質上
DBMS是管理數據庫的系統軟件,它實現數據庫系統的各種功能。是數據庫系統的核心
DBA:負責數據庫的規劃、設計、協調、維護和管理等工作
應用程序指以數據庫為基礎的應用程序
數據庫管理系統的基本功能:
數據定義
數據處理
數據安全
數據備份
數據庫系統的架構:
單機架構
大型主機/終端架構
主從式架構(C/S)
分布式架構
關系型數據庫:
關系:關系就是二維表。並滿足如下性質:
表中的行、列次序並不重要
行row:表中的每一行,又稱為一條記錄
列column:表中的每一列,稱為屬性,字段
主鍵(Primary key):用於惟一確定一個記錄的字段
域domain:屬性的取值範圍,如,性別只能是‘男’和‘女’兩個值
關系數據庫:
RDBMS:
MySQL:MySQL, MariaDB, Percona Server
PostgreSQL: 簡稱為pgsql, EnterpriseDB
Oracle:
MSSQL:
DB2:
`事務transaction:多個操作被當作一個整體對待
ACID:
A:原子性
C:一致性
I:隔離性
D:持久性
實體—聯系模型E—R
實體Entity
客觀存在並可以相互區分的客觀事物或抽象事件稱為實體
在E—R圖中用矩形框表示實體,把實體名寫在框內
屬性:
實體所具有的特性或性質
聯系
聯系是數據之間的關聯集合,是客觀存在的應用語義鏈
實體內部的聯系:指組成實體的各屬性之間的聯系。如職工實體中,職工號和部門經理號之間有一種關聯關系
實體之間的聯系:指不同實體之間聯系。例學生選課實體和學生基本信息實體之間
實體之間的聯系用菱形框表示
聯系類型:
聯系的類型:
一對一聯系(1:1)
一對多聯系(1:n)
多對多聯系(m:n)
數據三要素:
數據結構:
包括兩類,一類是與數據類型、內容、性質有關的對象,比如關系模型中的域、屬性和關系等;另一類是與數據之間聯系有關的對象,它從數據組織層表達數據記錄與字段的結構
數據的操作:
數據提取:在數據集合中提取感興趣的內容。(SELECT)
數據更新:變更數據庫中的數據。(INSERT, DELETE, UPDATE)
數據的約束條件:是一組完整性規則的集合
實體(行)完整性Entity integrity
域(列)完整性Domain Integrity
參考完整性Referential Integrity
簡易數據規劃流程:
第一階段:收集數據,得到字段
收集必要且完整的數據項
轉換成數據表的字段
第二階段:把字段分類,歸入表,建立表的關聯
關聯:表和表間的關系
分割數據表並建立關聯的優點
節省空間
減少輸入錯誤
方便數據修改
第三階段:
規範化數據庫
數據庫的正規化分析:
RDMBS設計範式基礎概念:
設計關系數據庫時,遵從不同的規範要求,設計出合理的關系型數據庫,這些不同的規範要求被稱為不同的範式,各種範式呈遞次規範,越高的範式數據庫冗余越小
目前關系數據庫有六種範式,一般來說,數據庫只需滿足第三範式(3NF)即可
範式:
1NF:無重復的列,第一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。除去同類型的字段,就是無重復的列
說明:第一範式(1NF)是對關系模式的基本要求,不滿足第一範式(1NF)的數據庫就不是關系數據庫
2NF:屬性完全依賴於主鍵,第二範式必須先滿足第一範式,要求表中的每個行必須可以被唯一地區分。通常為表加上一個列,以存儲各個實例的唯一標識PK,非PK的字段需要與整個PK有直接相關性
3NF:屬性不依賴於其它非主屬性,滿足第三範式必須先滿足第二範式。第三範式要求一個數據庫表中不包含已在其它表中已包含的非主關鍵字信息,非PK的字段間不能有從屬關系
SQL概念:
SQL:Structure Query Language
結構化查詢語言
SQL解釋器:
數據存儲協議:應用層協議,C/S
S:server,監聽於套接字,接收並處理客戶端的應用請求
C:client
程序接口
CLI
GUI
應用編程接口
ODBC: Open Database Connectivity
JDBC: Java Data Base Connectivity
約束:
約束:constraint,表中的數據要遵守的限制
主鍵:一個或多個字段的組合,填入的數據必須能在本表中唯一標識本行;必須提供數據,即不能為空(NOT NULL),一個表只能有一個
惟一鍵:一個或多個字段的組合,填入的數據必須能在本表中唯一標識本行;允許為NULL,一個表可以存在多個
外鍵:一個表中的某字段可填入的數據取決於另一個表的主鍵或唯一鍵已有的數據
檢查:字段值在一定範圍內
基本概念:
索引:將表中的一個或多個字段中的數據復制一份另存,並且此些需要按特定次序排序存儲
關系運算:
選擇:挑選出符合條件的行
投影:挑選出需要的字段
連接:表間字段的關聯
數據模型:
數據抽象:
物理層:決定數據的存儲格式,即RDBMS在磁盤上如何組織文件
邏輯層:描述存儲什麽數據,以及數據間存在什麽樣的關系
視圖層:描述DB中的部分數據
關系模型的分類:
關系模型
基於對象的關系模型
半結構化的關系模型:XML數據
MariaDB的特性:
MariaDB的特性:
單進程,多線程
插件式存儲引擎:存儲管理器有多種實現版本,功能和特性可能均略有差別;用戶可根據需要靈活選擇
存儲引擎也稱之為“表類型”
(1)更多的存儲的存儲引擎
MyISAM ==> Aria
InnoDB ==> XtraDB
Mysql5.5.8開始innoDB引擎是MYSQL默認引擎
InnoDB對比MyISAM的最大特點就是InnoDB支持事務
(2)諸多擴展和新特性
(3)提供了較多測試組件
(4)開源
本文出自 “12028281” 博客,謝絕轉載!
數據庫理論基本匯總