目前主流的數據庫介紹篇
作者:尹正傑
版權聲明:原創作品,謝絕轉載!否則將追究法律責任。
一.數據庫背景知識
1>.什么是數據庫?
將信息(數據)按照計算機可識別的方式規則存放在磁盤庫中,並提供一系列可供讀寫的方式。相比較與磁盤,數據庫最大的特點是提供了非常靈活的接口,方式可以獲取完整數據或者特定部分數據的方式(SQL),並提供一套完整管理數據的方法(存儲結構,備份恢復等)
2>. 為什么要存儲數據?
第一:數據要被隨時隨地反復使用,不是一次性消耗品,第二:數據要被記錄,防止遺忘。
二.數據庫在企業中的使用
企業無論大小,其日常經營活動都會涉及到數據存儲,尤其是互聯網公司,都會選擇數據庫作為存儲數據的重要甚至唯一渠道,這些數據涵蓋方方面面:
1>.客戶數據
2>.員工數據
3>.財務數據
4>.交易數據
5>.物流數據
6>.運營數據
三.數據庫發展歷史
1>.1964年,美國通用電氣開發出第一套數據庫系統;
2>.1970年,提出關系型數據庫模型;
3>.1974年,辯論及研討,確立關系數據庫為現代數據庫產品的主流;
4>.1974年,第一次提出SQL(Structured Query Language)概念;
5>.1986年,SQL正式成為關系型數據庫的標准語言,簡稱SQL-86標准;
6>.SQL語言陸續經歷了SQL-89標准和SQL-92標准,以及目前的SQL3標准;
7>.互聯網web2.0時代之后,非關系型數據庫陸續火熱起來;
四.常見的數據庫類型
1>.關系型數據庫類型
目前市場上占主要份額的數據庫類型,以二維表格(行和列,類似excel)來存儲數據,表格與表格之間的數據關系用字段引用來表示。
常見的代表有:Oracle,SQL Server,MySQL,DB2等。
2>.非關系型數據庫類型
出現時間較短,拋棄關系型死板的數據存儲方式,提供了更加靈活的方式。
面向高性能並發讀寫的key-value數據庫(key-value數據庫的主要特點即使具有極高的並發讀寫性能,Redis,Tokyo Cabint,Flare就是這類的代表)。
面向海量數據訪問的文檔型數據庫(這類數據庫的特點是,可以在海量的數據中快速的查詢數據,典型代表為MangoDB以及CouchDB)。
面向可擴展性的分布式數據庫(這類數據庫想解決的問題就是傳統數據庫存在可擴展性上的缺陷,典型代碼為Cassandra等)。
五.數據庫類型在企業中的選擇
1>.常用數據會存放在關系型數據庫中;
2>.逐步考慮使用非關系型數據庫作為部分業務的支持;
3>.但關系型數據庫還是主流;
六.MySQL數據庫介紹
1>.MySQL是一種開放源代碼但關系型數據庫管理系統(RDBMS),MySQL數據庫系統使用最常用但數據庫管理語言,結構化查詢語言(SQL)進行數據庫管理。
2>.MySQL的歷史最早可以追溯到1979年,那時Oracle也才剛剛開始,微軟的SQL Server影子都沒有。
3>.在2018年1月16號,MySQL被Sun公司收購。
4>.2009年,SUN又被Oracle收購。
5>.體積小,速度快,總體擁有成本低,尤其是開放源碼這一特點,使得許多企業選擇了MySQL作為數據庫。
七.數據庫工程師在一般企業中的職責
1>.數據庫開發工程師
負責公司業務數據庫系統的模型設計,表結構設計;
負責數據處理中的語句實現,存儲過程邏輯實現;
負責指導開發人員對語句的性能優化和指導;
2>.數據庫管理員(database administrator,簡稱DBA)
負責公司業務數據庫系統的部署實現;
負責數據庫系統的高可用性,備份恢復,性能調優,監控等實現;
3>.數據庫架構師
統籌公司業務數據庫系統各個層面的技術實現;
指導數據庫開發工程師和管理員在各個環境的工作,提供更優的方案;
八.數據庫工程師在企業中的定位
1>.從職能角度
數據儼然已經成為所有企業的重要資產,互聯網企業更是將數據作為自己的生命線,試想一下百度搜索沒有后台數據,阿里淘寶每一店鋪和商品數據會怎樣。一個優秀的數據庫工程師通常掌握着企業的核心價值,保障數據持續正常運轉,所以在公司地位相對比較高。責任越大,地位越高,薪資越高。
高速社會要求高速的系統,現在的系統性能瓶頸已經不是傳統的硬件瓶頸,而是后台程序后數據處理的瓶頸,優秀的數據庫工程師往往能解決其性能問題,而是后台程序和數據處理的瓶頸,優秀的數據庫工程師往往能解決其性能問題,從而是系統運轉性能提升幾十倍甚至百倍。
2>.從競爭角度
通常數據庫工程師在企業中的人數相比其他技術工程師相對較少(1:10 或者更高),“物以希為貴”,而且通常薪資高低是由你在公司是否可被替代所決定,同工種下人數較少意味着不可替代。
九.數據庫工程師職業的優劣勢
1>.優勢
“不吃青春飯,越老越吃香”:更加看中工作經驗,生命周期長。
公司地位相對較高,領導比較看重,薪資也相對較高。
2>.劣勢
和運維體系有交叉,所以會比較辛苦,需要隨時待命,防止數據庫出問題。
同一個公司數據庫崗位人數較少,會比較孤獨。
十.通用數據庫對象中英文介紹
1>.數據data
指對客觀時間進行記錄並可以鑒別對符號,在計算機系統中存儲為可以被識別的信息。
2>.數據庫database
存放具體數據的最大的邏輯對象,通常按需求將同一個項目所屬的數據統一放在一個數據庫中,也可以創建多個數據庫。
3>.數據庫管理系統dbms(database management system)
是一個鍾操縱和管理數據庫的大型軟件,用於簡歷,使用和維護數據庫,簡稱DBMS,目前分為關系型和非關系型數據庫管理系統兩種。
4>.關系型數據庫管理系統rdbms(relational dbms)
是以關系模型為基礎建立的數據庫軟件,典型代表為Oracle,MySQL,SQL Server等。
5>.實力instance
數據管理軟件安裝之后在服務器上啟動起來就稱為啟動了一個實例,通常一個服務容器上只啟動一個數據庫實力,但也有啟動多個實例的,一個實例可以包含多個數據庫。
6>.database object
7>.表table
數據庫對象中的一種,用來存儲相同屬性的數據,類似Excel表格的sheet。
8>.字段field,列column,屬性attribute
表中數據的組成部分,類似Excel表格中的列。
9>.類型type
每個字段屬性之一,代表該字段下的所有數據以什么形式呈現,比如整數、字符串等類型。
10>.鍵值key
數據表的一個屬性,可以指定主鍵,外鍵。
11>.索引index
在數據庫管理系統中通常為加速數據讀取速度而創建的一種數據結構。
12>.視圖view
為(字面上)簡化部分數據的獲取方法而創建的定義
13>.存儲過程sp(stored procedure)
在數據庫內部創建的具有一系列數據處理邏輯的方法
14>.觸發器trigger
當數據庫表發生修改操作時自動觸發某些數據處理的方法
特指運行數據庫實例的物理服務器或者虛擬服務器。
16>.主鍵primary key
數據表中定義的用來唯一確定表中各行數據的一個或幾個字段。
17>.外鍵foreign key
當數據表中的某一個或幾個字段的值來源於某個父表時,則可以創建兩個表之 間的數據映射關系。
18>.唯一unique
Primary key和unique index都可以作為約束表中這一列或幾列的數據不重復
19>.性能performance
20>.調優tuning
將數據庫中的所有數據和對象或者指定的數據和對象導出成文件形式存儲。
22>.恢復restore
利用之前的備份文件將數據庫中的指定對象和庫還原到備份文件中的狀態。
23>.用戶user
指為訪問數據庫中的數據而創建的權限。
24>.授權grant
授予某個數據庫用戶某個權限的動作。
25>.回收revoke
將某個數據庫用戶的某個權限回收的動作
26>.權限privilege
數據庫中瀏覽數據所提供的方法。
28>.修改update
數據庫中修改數據所提供的方法。
29>.刪除delete
數據庫中刪除原有數據所提供的方法。
30>.添加insert
數據庫中新增數據所提供的方法。
31>.SQL語句SQL statement
對數據庫中數據進行操作、管理的一套語法。
32>.數據庫架構database architecture
指數據庫設計工作中對數據庫一個或多個實例的部署,之間的數據協同,高可 用性,並發性等特性所做的統一規划。