1. 程式人生 > >MySQL 資料庫介紹

MySQL 資料庫介紹

資料庫背景知識
• 資料+庫:將資訊(資料)按照計算機可識別的方式規則存放在磁碟
庫中,並提供一系列可供讀寫的方式
• 相比較於磁碟檔案,資料庫最大的特點是提供了非常靈活的介面、
方式可以獲取完整資料或者特定部分資料的方式(SQL);並提
供了一套完整管理資料的方法(儲存結構,備份恢復等)
• 為什麼要儲存資料?
• 資料要被隨時隨地反覆使用,不是一次性消耗品
• 資料要被記錄,防止遺忘
資料庫背景知識
試想一個學校的選課系統,其實就是程式與後臺資料庫之間的資料
互動。後臺資料庫負責記錄每個課程資訊,學生資訊,學生與課程
的對應關係等。
• 學生登入自己的賬號:程式提取後臺資料庫中登入學生對應學號的所有資訊,並按照
一定的格式展示到電腦上
• 學生選定課程:程式將電腦上的學生新增的資訊按照一定的格式記錄到資料庫中的課

資料庫在企業中的使用
• 企業無論大小,其日常經營活動都會涉及到資料儲存,尤其是互
聯網公司,都會選擇資料庫作為儲存資料的重要甚至唯一渠道,
這些資料涵蓋方方面面:
• 客戶資料
• 員工資料
• 財務資料
• 交易資料
• 物流資料
• 運營資料
• 等等
資料庫發展歷史
• 1964年,美國通用電氣開發出第一套資料庫系統
• 1970年,提出關係型資料庫模型
• 1974年,辯論及研討,確立關係資料庫為現代資料庫產品的主流
• 1974年,第一次提出SQL(Structured Query Language)概念
• 1986年,SQL正式成為關係型資料庫的標準語言,簡稱SQL-86標

• SQL語言陸續經歷了SQL-89標準和SQL-92標準,以及目前的SQL3標

• 網際網路web2.0時代之後,非關係型資料庫陸續火熱起來
常見的資料庫型別
• 關係型資料庫型別
• 目前市場上佔主要份額的資料庫型別,以二維表格(行和列,類似excel)來存
儲資料,表格與表格之間的資料關係用欄位引用來表示
• Oracle, SQL Server, MySQL, DB2等
• 非關係型資料庫型別
• 出現時間較短,拋棄關係型死板的資料儲存方式,提供了更加靈活的方式
• 面向高效能併發讀寫的key-value資料庫:
key-value資料庫的主要特點即使具有極高的併發讀寫效能,Redis,Tokyo Cabinet,Flare就是
這類的代表
• 面向海量資料訪問的文件型資料庫:
這類資料庫的特點是,可以在海量的資料中快速的查詢資料,典型代表為MongoDB以及
CouchDB
• 面向可擴充套件性的分散式資料庫:
這類資料庫想解決的問題就是傳統資料庫存在可擴充套件性上的缺陷,典型代表為Cassandra等
資料庫型別在企業中的選擇
• 常用資料會存放在關係型資料庫中
• 逐步考慮使用非關係型資料庫作為部分業務的支援
•但, 關係型資料庫還是主流
MySQL資料庫介紹
• MySQL是一種開放原始碼的關係型資料庫管理系統(RDBMS),
MySQL資料庫系統使用最常用的資料庫管理語言--結構化查詢語
言(SQL)進行資料庫管理。
• MySQL的歷史最早可以追溯到1979年,那時Oracle也才剛剛開始,
微軟的SQL Server影子都沒有。
• 在2008年1月16號 MySQL被Sun公司收購。
• 2009年,SUN又被Oracle收購
• 體積小、速度快、總體擁有成本低,尤其是開放原始碼這一特點,
使得許多企業選擇了MySQL作為資料庫
資料庫工程師在一般企業中的職責
• 資料庫開發工程師

a. 負責公司業務資料庫系統的模型設計,表結構設計

b. 負責資料處理中的語句實現,儲存過程邏輯實現

c. 負責指導開發人員對語句的效能優化和指導
• 資料庫管理員(database administrator、DBA)

a. 負責公司業務資料庫系統的部署實現

b. 負責資料庫系統的高可用性,備份恢復,效能調憂,監控等實現
• 資料庫架構師

a. 統籌公司業務資料庫系統各個層面的技術實現

b. 指導資料庫開發工程師和管理員在各個環節的工作,提供更優的方案
資料庫工程師在企業中的定位
• 從職能角度
• 資料儼然已經成為所有企業的重要資產,網際網路企業更是將資料作為自
己的生命線,試想一下百度搜索沒有後臺數據、阿里淘寶沒有店鋪和商
品資料會怎樣。一個優秀的資料庫工程師通常掌握著企業的核心價值,
保障資料服務持續正常運轉,所以在公司地位相對比較高。責任越大,
地位越高,薪資越高
• 高速社會要求高速的系統,現在的系統性能瓶頸已經不是傳統的硬體瓶
頸,而是後臺程式和資料處理的瓶頸,優秀的資料庫工程師往往能解決
其效能問題,從而是系統運轉效能提升幾十倍甚至百倍
• 從競爭角度
• 通常資料庫工程師在企業中的人數相比其他技術工程師相對較少(1:10
或更高),“物以稀為貴”,而且通常薪資高低是由你在公司是否可被
替代所決定,同工種下人數較少意味著不可替代
資料庫工程師的薪資情況分析
資料庫工程師的薪資情況分析
資料庫工程師的薪資情況分析
資料庫工程師的薪資情況分析
資料庫工程師的薪資情況分析
資料庫工程師的薪資對比
• 一個工程師的雙倍薪水的真實案例
資料庫工程師職業的優劣勢
• 優勢:
• “不吃青春飯,越老越吃香”:更加看重工作經驗,生命週期長
• 公司地位相對較高,領導比較看重,薪資也相對較高
• 劣勢:
• 和運維體系有交叉,所以會比較辛苦,需要隨時待命,防止資料庫出問

• 同一個公司資料庫崗位人數較少,會比較孤獨
通用資料庫物件中英文介紹
• 資料data
• 指對客觀事件進行記錄並可以鑑別的符號,在計算機系統中儲存為可以被識別的資訊
• 資料庫database
• 存放具體資料的最大的邏輯物件,通常按需求將同一專案所屬的資料統一放在一個數 據庫中,也可以建立多個數據庫
• 資料庫管理系統dbms(database management system)
• 是一種操縱和管理資料庫的大型軟體,用於建立、使用和維護資料庫,簡稱DBMS,目
前分為關係型和非關係型資料庫管理系統兩種
• 關係型資料庫管理系統rdbms(relational dbms)
• 是以關係模型為基礎建立的資料庫管理軟體,典型代表為Oracle, MySQL, SQL Server等
• 例項instance
• 資料庫管理軟體安裝之後在伺服器上啟動起來就稱為啟動了一個例項,通常一個服務 器上只啟動一個數據庫例項,但也有啟動多個例項的,一個例項可以包含多個數據庫
• 資料庫物件database object
• 資料庫中建立的用來儲存,操作資料的物件,比如表,欄位,索引,儲存過程等
通用資料庫物件中英文介紹
• 表table
• 資料庫物件中的一種,用來儲存相同屬性的資料,類似Excel表格的sheet
• 欄位field,列column,屬性attribute
• 表中資料的組成部分,類似Excel表格中的列
• 型別type
• 每個欄位屬性之一,代表該欄位下的所有資料以什麼形式呈現,比如整數、字串等型別
• 鍵值key
• 資料表的一個屬性,可以指定主鍵,外來鍵
• 索引index
• 在資料庫管理系統中通常為加速資料讀取速度而建立的一種資料結構
• 檢視view
• 為(字面上)簡化部分資料的獲取方法而建立的定義
• 儲存過程sp(stored procedure)
• 在資料庫內部建立的具有一系列資料處理邏輯的方法
• 觸發器trigger
• 當資料庫表發生修改操作時自動觸發某些資料處理的方法
通用資料庫物件中英文介紹
• 資料庫伺服器database server
• 特指執行資料庫例項的物理伺服器或者虛擬伺服器
• 主鍵primary key
• 資料表中定義的用來唯一確定表中各行資料的一個或幾個欄位
• 外來鍵forerign key
• 當資料表中的某一個或幾個欄位的值來源於某個父表時,則可以建立兩個表之
間的資料對映關係
• 唯一unique
• Primary key和unique index都可以作為約束表中這一列或幾列的資料不重複
• 效能performance
• 調優tuning
通用資料庫物件中英文介紹
• 備份backup
• 將資料庫中的所有資料和物件或者指定的資料和物件匯出成檔案形式儲存
• 恢復restore
• 利用之前的備份檔案將資料庫中的指定物件和庫還原到備份檔案中的狀態
• 使用者user
• 指為訪問資料庫中的資料而建立的許可權
• 授權grant
• 授予某個資料庫使用者某個許可權的動作
• 回收revoke
• 將某個資料庫使用者的某個許可權回收的動作
• 許可權privilege
通用資料庫物件中英文介紹
• 查詢select
• 資料庫中瀏覽資料所提供的方法
• 修改update
• 資料庫中修改資料所提供的方法
• 刪除delete
• 資料庫中刪除原有資料所提供的方法
• 新增insert
• 資料庫中新增資料所提供的方法
• SQL語句SQL statement
• 對資料庫中資料進行操作、管理的一套語法
• 資料庫架構database architecture
• 指資料庫設計工作中對資料庫一個或多個例項的部署,之間的資料協同,高可 用性,併發性等特性所做的統一規劃
THANKS