什么是數(shù)據(jù)庫忠寻?
數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織惧浴、存儲(chǔ)和管理數(shù)據(jù)的倉庫,
每個(gè)數(shù)據(jù)庫都有一個(gè)或多個(gè)不同的API用于創(chuàng)建锡溯,訪問赶舆,管理,搜索和復(fù)制所保存的數(shù)據(jù)祭饭。
我們也可以將數(shù)據(jù)存儲(chǔ)在文件中芜茵,但是在文件中讀寫數(shù)據(jù)速度相對(duì)較慢。
所以倡蝙,現(xiàn)在我們使用關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)來存儲(chǔ)和管理的大數(shù)據(jù)量九串。所謂的關(guān)系型數(shù)據(jù)庫,是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫寺鸥,借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)猪钮。
RDBMS即關(guān)系數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System)的特點(diǎn):
1.數(shù)據(jù)以表格的形式出現(xiàn)
2.每行為各種記錄名稱
3.每列為記錄名稱所對(duì)應(yīng)的數(shù)據(jù)域
4.許多的行和列組成一張表單
5.若干的表單組成database
RDBMS 術(shù)語
在我們開始學(xué)習(xí)MySQL 數(shù)據(jù)庫前,讓我們先了解下RDBMS的一些術(shù)語:
數(shù)據(jù)庫: 數(shù)據(jù)庫是一些關(guān)聯(lián)表的集合胆建。
數(shù)據(jù)表: 表是數(shù)據(jù)的矩陣烤低。在一個(gè)數(shù)據(jù)庫中的表看起來像一個(gè)簡單的電子表格。
列: 一列(數(shù)據(jù)元素) 包含了相同的數(shù)據(jù), 例如郵政編碼的數(shù)據(jù)笆载。
行:一行(=元組扑馁,或記錄)是一組相關(guān)的數(shù)據(jù),例如一條用戶訂閱的數(shù)據(jù)凉驻。
冗余:存儲(chǔ)兩倍數(shù)據(jù)腻要,冗余降低了性能,但提高了數(shù)據(jù)的安全性涝登。
主鍵:主鍵是唯一的雄家。一個(gè)數(shù)據(jù)表中只能包含一個(gè)主鍵。你可以使用主鍵來查詢數(shù)據(jù)胀滚。
外鍵:外鍵用于關(guān)聯(lián)兩個(gè)表趟济。
復(fù)合鍵:復(fù)合鍵(組合鍵)將多個(gè)列作為一個(gè)索引鍵乱投,一般用于復(fù)合索引。
索引:使用索引可快速訪問數(shù)據(jù)庫表中的特定信息咙好。索引是對(duì)數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu)篡腌。類似于書籍的目錄。
參照完整性: 參照的完整性要求關(guān)系中不允許引用不存在的實(shí)體勾效。與實(shí)體完整性是關(guān)系模型必須滿足的完整性約束條件嘹悼,目的是保證數(shù)據(jù)的一致性。
MySQL數(shù)據(jù)庫
MySQL 是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)层宫,由瑞典 MySQL AB 公司開發(fā)杨伙,目前屬于 Oracle 公司。MySQL 是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng)萌腿,關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中限匣,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性毁菱。
MySQL 是開源的米死,所以你不需要支付額外的費(fèi)用。
MySQL 支持大型的數(shù)據(jù)庫贮庞÷屯玻可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。
MySQL 使用標(biāo)準(zhǔn)的SQL數(shù)據(jù)語言形式窗慎。
MySQL 可以運(yùn)行于多個(gè)系統(tǒng)上物喷,并且支持多種語言。這些編程語言包括C遮斥、C++峦失、Python、Java术吗、Perl尉辑、PHP、Eiffel较屿、Ruby和Tcl等材蹬。
MySQL 對(duì)PHP有很好的支持,PHP是目前最流行的Web開發(fā)語言吝镣。
MySQL 支持大型數(shù)據(jù)庫,支持5000萬條記錄的數(shù)據(jù)倉庫昆庇,32位系統(tǒng)表文件最大可支持4GB末贾,64位系統(tǒng)支持最大的表文件為8TB。
MySQL 是可以定制的整吆,采用了GPL協(xié)議拱撵,你可以修改源碼來開發(fā)自己的 MySQL 系統(tǒng)辉川。
常見數(shù)據(jù)庫有哪些?
關(guān)系型數(shù)據(jù)庫是目前最受歡迎的數(shù)據(jù)庫管理系統(tǒng)拴测,技術(shù)比較成熟乓旗,常見的關(guān)系型數(shù)據(jù)庫有mysql 、SQL Server集索、Oracle屿愚、Sybase、DB2等务荆。
1妆距、MySQL
My SQL是一個(gè)多用戶、多線程的SQL數(shù)據(jù)庫函匕,MySQL是目前最受歡迎開源的SQL數(shù)據(jù)庫管理系統(tǒng)娱据,與其他的大型數(shù)據(jù)庫Oracle、DB2盅惜、SQL Server等相比中剩,MySQL雖然有它的不足之處,但絲毫也沒有減少它受歡迎的程度抒寂。對(duì)于個(gè)人或中小型企業(yè)來說结啼,MySQL的功能已經(jīng)夠用了, MySQ L又是開源軟件蓬推,因此沒有必要花大精力和大價(jià)錢去使用大型付費(fèi)數(shù)據(jù)庫管理系統(tǒng)了妆棒。MySQL的最初的核心思想,主要是開源沸伏、簡便易用糕珊。
AMP是最強(qiáng)大的網(wǎng)站解決方案,Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一組常用來搭建一個(gè)強(qiáng)大的Web應(yīng)用程序平臺(tái).
特點(diǎn):
1、MySQL是開源免費(fèi)的毅糟。
2红选、MySQL服務(wù)器是可靠的、易于使用的姆另、快速的喇肋。
3、MySQL服務(wù)器工作在客戶/服務(wù)器或嵌入系統(tǒng)中迹辐。
4蝶防、MySQL軟件很多。
5明吩、MySQL是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng)间学。
2、SQL Server
SQL Server是由微軟公司開發(fā)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),一般用于Web上存儲(chǔ)數(shù)據(jù)低葫。SQL Server 提供了眾多功能详羡,如對(duì)XML和Internet標(biāo)準(zhǔn)的豐富支持,通過Web對(duì)數(shù)據(jù)輕松安全的訪問嘿悬,具有靈活的实柠、安全的、和基于Web的應(yīng)用程序管理等善涨,及容易操作的操作界面窒盐,受到廣大用戶的喜愛躯概。
特點(diǎn):
1、集成了MS公司的各類產(chǎn)品及資源娶靡,提供了強(qiáng)大的可視化界面、高度集成的管理開發(fā)工具姿锭,在快速構(gòu)建商業(yè)智能(BI)方面頗有建樹塔鳍。
3、Oracle
Oracle是甲骨文公司的一款關(guān)系數(shù)據(jù)庫管理系統(tǒng)呻此。到目前仍在數(shù)據(jù)庫市場(chǎng)上占有主要份額。在數(shù)據(jù)庫領(lǐng)域一直處于領(lǐng)先地位焚鲜,由于有先進(jìn)技術(shù)的不斷更新,目前Oracle產(chǎn)品覆蓋甚廣忿磅,成為了世界上使用最廣泛的關(guān)系數(shù)據(jù)系統(tǒng)之一糯彬。由于其誕生早、結(jié)構(gòu)嚴(yán)謹(jǐn)葱她、高可用撩扒、高性能等特點(diǎn)吨些,使其在傳統(tǒng)數(shù)據(jù)庫應(yīng)用中大殺四方,金融豪墅、通信、能源螃诅、運(yùn)輸啡氢、零售术裸、制造等各個(gè)行業(yè)的大型公司基本都是用了Oracle亭枷,早些年的時(shí)候,世界500強(qiáng)幾乎100%都是Oracle的用戶叨粘。
特點(diǎn):
1、數(shù)據(jù)的大量性
2升敲、數(shù)據(jù)的保存的持久性
4、數(shù)據(jù)的共享性
5瘪撇、數(shù)據(jù)的可靠性
4港庄、DB2
IBM公司研制的一種關(guān)系型數(shù)據(jù)庫系統(tǒng)倔既。DB2主要應(yīng)用于大型應(yīng)用系統(tǒng),具有較好的可伸縮性渤涌,可支持從大型機(jī)到單用戶環(huán)境把还,應(yīng)用于OS/2、Windows等平臺(tái)下吊履。 DB2提供了高層次的數(shù)據(jù)利用性、完整性率翅、安全性、可恢復(fù)性腺晾,以及小規(guī)模到大規(guī)模應(yīng)用程序的執(zhí)行能力辜贵,具有與平臺(tái)無關(guān)的基本功能和SQL命令悯蝉。
特點(diǎn):
1托慨、DB2采用了數(shù)據(jù)分級(jí)技術(shù),能夠使大型機(jī)數(shù)據(jù)很方便地下載到LAN數(shù)據(jù)庫服務(wù)器蕉世,使得客戶機(jī)/服務(wù)器用戶和基于LAN的應(yīng)用程序可以訪問大型機(jī)數(shù)據(jù),并使數(shù)據(jù)庫本地化及遠(yuǎn)程連接透明化狠轻。
2、它以擁有一個(gè)非常完備的查詢優(yōu)化器而著稱向楼,其外部連接改善了查詢性能,并支持多任務(wù)并行查詢逻卖。
3、DB2具有很好的網(wǎng)絡(luò)支持能力评也,每個(gè)子系統(tǒng)可以連接十幾萬個(gè)分布式用戶戈鲁,可同時(shí)激活上千個(gè)活動(dòng)線程,對(duì)大型分布式應(yīng)用系統(tǒng)尤為適用婆殿。