您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)怎么快速的了解某種數(shù)據(jù)庫的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
這段時間由于工作需要,接觸了多種數(shù)據(jù)庫。其中關(guān)系型數(shù)據(jù)庫包括:Oracle、DB2、Informix、Teradata、Netezza、MySQL、MS SQLServer、Sybase、PostgreSQL、Greenplum、浪潮KDB、達夢數(shù)據(jù)庫、華三MPP Data Engine、GBase、Hive等;NoSQL包括MongoDB、Redis、HBase、Cassandra等。那么,如何快速的了解或者學(xué)習(xí)某種數(shù)據(jù)庫?大體可以通過數(shù)據(jù)庫存儲結(jié)構(gòu)、數(shù)據(jù)庫邏輯概念和對象結(jié)構(gòu)以及字符集這四個方面快速了解或掌握。
存儲結(jié)構(gòu),從存儲設(shè)備上劃分,可以粗略的劃分為兩大類:持久性存儲(如硬盤、SSD等)和臨時性存儲(如內(nèi)存),對應(yīng)這兩類,數(shù)據(jù)庫存儲結(jié)構(gòu)可以分為物理結(jié)構(gòu)和內(nèi)存結(jié)構(gòu)。物理結(jié)構(gòu)簡單來說就是在持久性存儲設(shè)備上可見的、物理存在的文件以及這些文件的用處和相互依存關(guān)系,內(nèi)存結(jié)構(gòu)指的是在內(nèi)存中存在的數(shù)據(jù)結(jié)構(gòu)以及這些結(jié)構(gòu)的用處和關(guān)系。
如Oracle,物理結(jié)構(gòu)包括控制文件、在線日志文件、數(shù)據(jù)文件、參數(shù)文件等;內(nèi)存結(jié)構(gòu)包括SGA、PGA等;
如Informix,物理結(jié)構(gòu)包括數(shù)據(jù)文件、配置文件、物理日志文件等;內(nèi)存結(jié)構(gòu)包括共享內(nèi)存端等;
如Sybase,物理結(jié)構(gòu)包括設(shè)備文件、配置文件、日志文件等;內(nèi)存結(jié)構(gòu)包括過程緩沖區(qū)、數(shù)據(jù)緩沖區(qū)等。
數(shù)據(jù)庫邏輯概念,是對物理結(jié)構(gòu)的邏輯封裝,通過增加一系列的概念,便于使用和管理數(shù)據(jù)庫。
如Oracle,表空間Tablespace用于管理物理存儲、Segment/Extend/Block用于管理數(shù)據(jù)存儲、User作為容器可用于權(quán)限管理和數(shù)據(jù)庫對象存儲;
如Teradata,用戶User用于數(shù)據(jù)的存儲組織和權(quán)限管理、數(shù)據(jù)庫DB在User下用于數(shù)據(jù)的劃分和組織等;
如DB2,表空間Tablespace用于物理存儲的管理、User用于權(quán)限管理、Schema作為數(shù)據(jù)庫對象的存儲容器、BufferPool用于緩存的管理等;
如Mongodb,數(shù)據(jù)庫DB用于存儲管理和數(shù)據(jù)組織、Collection類似數(shù)據(jù)表作為數(shù)據(jù)的存儲管理;
如Redis,Key/Value鍵值對,Key可以是根據(jù)業(yè)務(wù)意義自定義的信息,Value可以為任意序列化后的二進制數(shù)據(jù)或者更高級的Set/List等結(jié)構(gòu)。
數(shù)據(jù)庫對象,指的是數(shù)據(jù)庫Database、用戶User、模式Schema、數(shù)據(jù)表Table、索引Index、約束Constraint、觸發(fā)器Trigger、存儲過程Procedure等對象。通過了解數(shù)據(jù)庫對象結(jié)構(gòu),也就基本掌握如何通過DML操作數(shù)據(jù)庫了。
如Oracle,在同一臺主機上可以有N個數(shù)據(jù)庫,每個數(shù)據(jù)庫中可以有N個User(Schema),每個User下有N張表......,連接數(shù)據(jù)庫后可通過Username.Tablename訪問數(shù)據(jù)表。值得一提的是,在12.2+版本后,增加了所謂的ContainerDB,其實是在DB和User之間加了一層database,實現(xiàn)了類似SQLServer或者Sybase的對象結(jié)構(gòu);
如DB2,在同一臺主機上可以有N個數(shù)據(jù)庫,每個數(shù)據(jù)庫中可以有N個User,每個User下有N個Schema,每個Schema下有N張表......,可通過Schemaname.Tablename訪問數(shù)據(jù)表;
如MySQL,在同一臺主機上可以有N個DB Server,每個Server可以有N個DB,每個DB有N個Table,數(shù)據(jù)表可通過以下方式進行訪問:
database <dbname>
select * from <tablename>
如華三MPP Data Engine,數(shù)據(jù)庫對象結(jié)構(gòu)基本與MySQL類似;
如MongoDB,在同一臺主機上可以有N個DB Server,每個Server可以有N個DB,每個DB有N個Collection,數(shù)據(jù)表可通過以下方式進行訪問:
use <database>
db.collectionname.find()
數(shù)據(jù)庫字符集,在先前文章已有介紹,不再詳述。
如Oracle,字符集有ZHS16GBK、AL32UTF8、WE8ISO8859P1等,其中ZHS(中文)/AL(所有)/WE(西歐)等表示語言,16/32/8表示字符存儲使用字節(jié)數(shù),最后一部分是實際的字符集。
如DB2 LUW,常用字符集有GBK、819(即ISO8859P1)、1208(即Unicode,使用UTF8編碼)
如Sybase,常用字符集有EUCGB(即GB2312)、CP850、GB18030、ISO_1(即ISO8859P1)、Roman8(在HP-UX下的默認字符集)
如MySQL,常用字符集有Latin1(即ISO8859P1)、UTF8、GBK
如Teradata,常用字符集有Latin、Unicode(使用UTF16編碼)
感謝各位的閱讀!關(guān)于“怎么快速的了解某種數(shù)據(jù)庫”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。