工作兩年了,一直做著各種業(yè)務(wù),是時候靜下心來總結(jié)回顧以及復(fù)習(xí)一些知識了,先從第一個專題數(shù)據(jù)庫開始吧。
什么是數(shù)據(jù)庫呢?
數(shù)據(jù)庫(database),顧名思義,就是存儲和管理數(shù)據(jù)的一個程序倉庫,存儲什么數(shù)據(jù)呢,內(nèi)存數(shù)據(jù)么?當(dāng)然不是,存儲的是駐留在內(nèi)存之外的數(shù)據(jù),所以它存儲的肯定是持久型的數(shù)據(jù),不會因為程序結(jié)束了數(shù)據(jù)沒有了,要不然要它也沒用了,數(shù)據(jù)庫必須要具有高的可靠性,因為一般我們存儲的數(shù)據(jù)都是比較重要的,所以數(shù)據(jù)庫必須要考慮硬件故障,軟件故障,斷電,人為攻擊等等方面的因素。數(shù)據(jù)庫數(shù)據(jù)一般會由多個用戶操作的,所以還需要保證數(shù)據(jù)的一致性,支持并發(fā)操作。
總結(jié)如下,數(shù)據(jù)庫具有這些特點:
- 處理大規(guī)模數(shù)據(jù)
- 持久性
- 安全性
- 多用戶操作,并發(fā)操作
- 方便操作
- 高效和高可靠性
數(shù)據(jù)庫管理系統(tǒng)(DBMS)
數(shù)據(jù)庫管理系統(tǒng)(Database Management System 簡稱DBMS)是一種操縱和管理數(shù)據(jù)庫的大型軟件,是用于創(chuàng)建、使用和維護數(shù)據(jù)庫的程序軟件。
1.DBMS的主要功能
- 數(shù)據(jù)定義功能:提供數(shù)據(jù)定義語言(DDL)【drop create alter】
- 數(shù)據(jù)操縱功能:提供數(shù)據(jù)操縱語言(DML)【select insert delete update】
- 數(shù)據(jù)庫運行管理
a.保證數(shù)據(jù)的安全性 b.多用戶對數(shù)據(jù)的并發(fā)使用 c.發(fā)生故障后的系統(tǒng)恢復(fù)
- 數(shù)據(jù)庫的建立和維護功能
- DBMS分類
- 小型數(shù)據(jù)庫: Access foxbase sqlite
- 中型數(shù)據(jù)庫: mysql, sql server infomix posgreSql(開源) MongoDB(開源)
- 大型數(shù)據(jù)庫: Sysbase oracle db2
數(shù)據(jù)庫分類
數(shù)據(jù)庫基于存儲介質(zhì)的不同:進行了分類,分為兩類:
關(guān)系型數(shù)據(jù)庫(SQL)
非關(guān)系數(shù)據(jù)庫(NoSQL : Not Only SQL, 不是關(guān)系型的數(shù)據(jù)庫都叫做非關(guān)系數(shù)據(jù)庫)關(guān)系型數(shù)據(jù)庫:安全(保存磁盤基本不會丟失),容易理解,符合人類的認(rèn)知。但是比較浪費空間(二維表)
非關(guān)系型數(shù)據(jù)庫:效率高,不安全(斷電丟失)
關(guān)系型數(shù)據(jù)庫
1、什么是關(guān)系型數(shù)據(jù)庫?
? 關(guān)系型數(shù)據(jù)庫:是一種建立在關(guān)系模型(數(shù)學(xué)模型)上的數(shù)據(jù)庫。
? 關(guān)系模型:一種所謂建立在關(guān)系上的模型。關(guān)系模型包含三個方面:
? 數(shù)據(jù)結(jié)構(gòu): 數(shù)據(jù)存儲的問題,二維表(有行和列)
? 操作指令集合:所有的SQL語句;
? 完整性約束:表內(nèi)數(shù)據(jù)約束,表與表之間約束(外鍵)
2、關(guān)系型數(shù)據(jù)庫的設(shè)計?
? 關(guān)系型數(shù)據(jù)庫: 從需要存儲的數(shù)據(jù)需求中分析,如果是一類數(shù)據(jù)(實體)應(yīng)該設(shè)計成一張二維
表:表是由表頭(字段名:用來規(guī)定數(shù)據(jù)的名字)和數(shù)據(jù)部分組織(實際存儲的數(shù)據(jù)單位)
? ? ? 二維表:行和列
? ? ? 表頭 字段名1 字段名2
? ? ? 數(shù)據(jù)單元 數(shù)據(jù)1 數(shù)據(jù)2
SQL
SQL: Structured Query Language ,結(jié)構(gòu)化查詢語句(數(shù)據(jù)主要是以查詢?yōu)橹鳎?9%是在進行查詢操作)
SQL分為三個部分
? ? DDL: Data Definition Language 數(shù)據(jù)定義語言,用來維護存儲數(shù)據(jù)的結(jié)構(gòu)(s數(shù)據(jù)庫,
表)代表指令: create,drop, alter等。
? ? DML : Data Manipulation Language ,數(shù)據(jù)操作語言,用來對數(shù)據(jù)進行操作(數(shù)據(jù)表的>> 內(nèi)容),代表指令:insert delete update等。其中DML內(nèi)部又單獨進行了一種分類,DQL(Data Query >> Language):數(shù)據(jù)庫查詢語句,如selectDCL: Data Control Language ,數(shù)據(jù)控制語句,主要負(fù)責(zé)權(quán)限>> 管路(用戶),代表指令:grant、revoke等SQL是關(guān)系型數(shù)據(jù)庫的操作指令,SQL是一種約束,但不強制
(類似W3C),不同的數(shù)據(jù)庫產(chǎn)品(如Oracle, mysql)可能內(nèi)部會有一些細(xì)微的區(qū)別!
小cc提醒您: ? 關(guān)注公眾號回復(fù)mysql,即可獲得一套完美的mysql視頻教程。這里有更多的技術(shù)分享,歡迎來一起交流成長,發(fā)現(xiàn)更多的驚喜。

