1.數據存儲階段
1、人工管理階段
- 結繩記事
![數據庫是個啥東西](http://p2.ttnews.xyz/loading.gif)
- 甲骨
![數據庫是個啥東西](http://p2.ttnews.xyz/loading.gif)
- 紙
人工管理階段,數據都是靠人工進行整理和保存,使用起來很不方便。不便於查詢、共享、保存。
2、文件系統階段
- 磁盤
文件系統階段,將數據存儲在磁盤上,數據都是以文件的形式出現,通過文件系統管理。相對於人工管理方便的多,但是在查詢數據內容時,還不是很方便。
3、數據庫系統階段
- 數據庫
數據庫是指長期存儲在計算機內、有組織的數據集合。簡而言之,數據庫就是一個存儲數據的地方。表是數據庫中存儲數據的基本單位,數據按照分類存儲到不同的表中,能夠非常高效的查詢其中的數據。
網頁中顯示的商品信息
數據庫中存儲的商品數據
真實的商品
2.RDBMS-關係型數據庫系統
Relational Database Management System
關係型數據庫系統
通過表來表示關係
- 當前主要使用兩種類型的數據庫:關係型數據庫、非關係型數據庫,我們主要學習主流的關係型數據庫
- 所謂的關係型數據庫RDBMS,是建立在關係模型基礎上的數據庫,藉助於集合代數等數學概念和方法來處理數據庫中的數據
- 查看數據庫排名:https://db-engines.com/en/ranking
- 關係型數據庫的主要產品:
- oracle:在以前的大型項目中使用,銀行,電信等項目
- mysql:web時代使用最廣泛的關係型數據庫
- ms sql server:在微軟的項目中使用
- sqlite:輕量級數據庫,主要應用在移動平臺
關係型數據庫核心元素
- 數據行(一條記錄)
- 數據列(字段)
- 數據表(數據行的集合)
- 數據庫(數據表的集合,一個數據庫中能夠有 n 多個數據表)
3.SQL-結構化查詢語言
Structured Query Language
結構化查詢語言
在數據庫中進行操作的語言,稱為sql,結構化查詢語言,當前關係型數據庫都支持使用sql語言進行操作,也就是說可以通過 sql 操作 oracle,sql server,mysql,sqlite 等等所有的關係型的數據庫
- sql語言主要分為:
- DQL:數據查詢語言,用於對數據進行查詢,如select
- DML:數據操作語言,對數據進行增加、修改、刪除,如insert、udpate、delete
- TPL:事務處理語言,對事務進行處理,包括begin transaction、commit、rollback
- DCL:數據控制語言,進行授權與權限回收,如grant、revoke
- DDL:數據定義語言,進行數據庫、表的管理等,如create、drop
- CCL:指針控制語言,通過控制指針完成表的操作,如declare cursor
- 對於測試工程師來講,重點是數據的查詢,需要熟練編寫DQL,其它語言如TPL、DCL、CCL瞭解即可
- SQL 是一門特殊的語言,專門用來操作關係數據庫
- 不區分大小寫
MySQL 簡介
- 點擊查看MySQL官方網站
- MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB公司開發,後來被Sun公司收購,Sun公司後來又被Oracle公司收購,目前屬於Oracle旗下產品
特點
- 使用C和C++編寫,並使用了多種編譯器進行測試,保證源代碼的可移植性
- 支持多種操作系統,如Linux、Windows、AIX、FreeBSD、HP-UX、MacOS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris等
- 為多種編程語言提供了API,如C、C++、Python、Java、Perl、PHP、Eiffel、Ruby等
- 支持多線程,充分利用CPU資源
- 優化的SQL查詢算法,有效地提高查詢速度
- 提供多語言支持,常見的編碼如GB2312、BIG5、UTF8
- 提供TCP/IP、ODBC和JDBC等多種數據庫連接途徑
- 提供用於管理、檢查、優化數據庫操作的管理工具
- 大型的數據庫。可以處理擁有上千萬條記錄的大型數據庫
- 支持多種存儲引擎
- MySQL 軟件採用了雙授權政策,它分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇MySQL作為網站數據庫
- MySQL使用標準的SQL數據語言形式
- Mysql是可以定製的,採用了GPL協議,你可以修改源碼來開發自己的Mysql系統
- 在線DDL更改功能
- 複製全局事務標識
- 複製無崩潰從機
- 複製多線程從機