數據庫,一個咱們經常提到的名詞,可是你有沒有想過,它究竟是什麼意思呢,而咱們常說的 MySQL、Oracle 等又到底指什麼呢?數據庫
數據庫(DataBase),簡稱 DB,是數據庫是存儲數據的集合,你能夠把它理解爲多個數據表。數據庫是「按照數據結構來組織、存儲和管理數據的倉庫」,是一個長期存儲在計算機內的、有組織的、有共享的、統一管理的數據集合。編程
數據庫是以必定方式儲存在一塊兒、能與多個用戶共享、具備儘量小的冗餘度、與應用程序彼此獨立的數據集合,可視爲電子化的文件櫃——存儲電子文件的處所,用戶能夠對文件中的數據進行新增、查詢、更新、刪除等操做。segmentfault
數據庫的概念實際包括兩層意思:安全
數據庫管理系統( Database Management System )是一種操縱和管理數據庫的大型軟件,用於創建、使用和維護數據庫,簡稱 DBMS。它對數據庫進行統一的管理和控制,以保證數據庫的安全性和完整性。用戶經過 DBMS訪問數據庫中的數據,數據庫管理員也經過DBMS進行數據庫的維護工做。數據結構
DBMS 能夠支持多個應用程序和用戶用不一樣的方法在同時或不一樣時刻去創建,修改和詢問數據庫。大部分 DBMS 提供數據定義語言 DDL(Data Definition Language)和數據操做語言 DML(Data Manipulation Language),供用戶定義數據庫的模式結構與權限約束,實現對數據的追加、刪除等操做。編程語言
在生活中咱們經常提到的 MySQL、Oracle 等,雖然叫的都是數據庫,但其實嚴格意義上來講,它們應該是數據庫管理系統,即 DBMS。spa
數據庫系統(Database System),簡稱 DBS,是由數據庫及其管理軟件組成的系統。操作系統
其軟件主要包括操做系統、各類宿主語言、實用程序以及數據庫管理系統。數據庫由數據庫管理系通通一管理,數據的插入、修改和檢索均要經過數據庫管理系統進行。數據管理員負責建立、監控和維護整個數據庫,使數據能被任何有權使用的人有效使用。數據庫管理員通常是由業務水平較高、資歷較深的人員擔任。設計
DBS 是更大的概念,包括了數據庫、數據庫管理系統以及數據庫管理人員 DBA。3d
那咱們呢平時使用的 SQL 又是什麼呢?
SQL 是一門結構化查詢語言( Structured Query Language ),是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關係數據庫系統。
須要注意的是,SQL 是針對關係型數據庫系統,與之相對應的就是 NoSQL 的非關係數據庫,如 key-value 型的 Redis、文檔型的 MongoDB。
咱們平常工做中使用的數據庫 MySQL、Oracle 等數據庫管理系統,都遵循 SQL 語言,所以,咱們能夠經過 SQL 來操做 DBMS。
按照功能,SQL 能夠分爲4個部分:
2019 年 5 月 DB-Engines 公佈的 DBMS 的排名中,Oracle 與 MySQL 佔據了前兩位,這也是咱們平常中使用較多的數據庫。
1979 年 RSI(關係軟件有限公司)發佈了 Oracle 第二版(實際上是初版),它是它是第一個商用的 RDBMS(關係型數據庫管理系統),隨後被賣給了軍方客戶。隨着 Oracle 的火熱,RSI 也改名爲 Oracle 公司,目前 Oracle 數據庫最新版本爲 Oracle Database 12c。
MySQL是 1995 年誕生的開源數據庫管理系統,由於免費,廣受好評。2008 年 SUN 收購了 MySQL,然而在 2010 年 SUN 又被 Oracle 收購,因而 Oracle 擁有了 MySQL 的管理權,而這也使得 Oracle 在數據庫領域中成爲絕對的領導者。
在 Oracle 收購 MySQL 的同時,MySQL 的創造者擔憂 MySQL 有閉源的風險,所以建立了 MySQL 的分支項目 MariaDB,MariaDB 在絕大部分狀況下都是與 MySQL 兼容的,而且增長了許多新的特性,好比支持更多的存儲引擎類型。
Oracle是商業數據庫,費用不菲,而 MySQL 做爲開源軟件,則是基本免費的,於是不少企業選擇使用 MySQL,尤爲在中國,由於阿里的帶動,更是推進了 MySQL 的發展。