如何快速的瞭解某種資料庫
這段時間由於工作需要,接觸了多種資料庫。其中關係型資料庫包括:Oracle、DB2、Informix、Teradata、Netezza、MySQL、MS SQLServer、Sybase、PostgreSQL、Greenplum、浪潮KDB、達夢資料庫、華三MPP Data Engine、GBase、Hive等;NoSQL包括MongoDB、Redis、HBase、Cassandra等。那麼,如何快速的瞭解或者學習某種資料庫?大體可以透過資料庫儲存結構、資料庫邏輯概念和物件結構以及字符集這四個方面快速瞭解或掌握。
0x01 資料庫儲存結構
儲存結構,從儲存裝置上劃分,可以粗略的劃分為兩大類:永續性儲存(如硬碟、SSD等)和臨時性儲存(如記憶體),對應這兩類,資料庫儲存結構可以分為物理結構和記憶體結構。物理結構簡單來說就是在永續性儲存裝置上可見的、物理存在的檔案以及這些檔案的用處和相互依存關係,記憶體結構指的是在記憶體中存在的資料結構以及這些結構的用處和關係。
如Oracle,物理結構包括控制檔案、線上日誌檔案、資料檔案、引數檔案等;記憶體結構包括SGA、PGA等;
如Informix,物理結構包括資料檔案、配置檔案、物理日誌檔案等;記憶體結構包括共享記憶體端等;
如Sybase,物理結構包括裝置檔案、配置檔案、日誌檔案等;記憶體結構包括過程緩衝區、資料緩衝區等。
0x02 資料庫邏輯概念
資料庫邏輯概念,是對物理結構的邏輯封裝,透過增加一系列的概念,便於使用和管理資料庫。
如Oracle,表空間Tablespace用於管理物理儲存、Segment/Extend/Block用於管理資料儲存、User作為容器可用於許可權管理和資料庫物件儲存;
如Teradata,使用者User用於資料的儲存組織和許可權管理、資料庫DB在User下用於資料的劃分和組織等;
如DB2,表空間Tablespace用於物理儲存的管理、User用於許可權管理、Schema作為資料庫物件的儲存容器、BufferPool用於快取的管理等;
如Mongodb,資料庫DB用於儲存管理和資料組織、Collection類似資料表作為資料的儲存管理;
如Redis,Key/Value鍵值對,Key可以是根據業務意義自定義的資訊,Value可以為任意序列化後的二進位制資料或者更高階的Set/List等結構。
0x03 資料庫物件結構
資料庫物件,指的是資料庫Database、使用者User、模式Schema、資料表Table、索引Index、約束Constraint、觸發器Trigger、儲存過程Procedure等物件。透過了解資料庫物件結構,也就基本掌握如何透過DML運算元據庫了。
如Oracle,在同一臺主機上可以有N個資料庫,每個資料庫中可以有N個User(Schema),每個User下有N張表......,連線資料庫後可透過Username.Tablename訪問資料表。值得一提的是,在12.2+版本後,增加了所謂的ContainerDB,其實是在DB和User之間加了一層database,實現了類似SQLServer或者Sybase的物件結構;
如DB2,在同一臺主機上可以有N個資料庫,每個資料庫中可以有N個User,每個User下有N個Schema,每個Schema下有N張表......,可透過Schemaname.Tablename訪問資料表;
如MySQL,在同一臺主機上可以有N個DB Server,每個Server可以有N個DB,每個DB有N個Table,資料表可透過以下方式進行訪問:
database <dbname>
select * from <tablename>
如華三MPP Data Engine,資料庫物件結構基本與MySQL類似;
如MongoDB,在同一臺主機上可以有N個DB Server,每個Server可以有N個DB,每個DB有N個Collection,資料表可透過以下方式進行訪問:
use <database>
db.collectionname.find()
0x04 資料庫字符集
資料庫字符集,在先前文章已有介紹,不再詳述。
如Oracle,字符集有ZHS16GBK、AL32UTF8、WE8ISO8859P1等,其中ZHS(中文)/AL(所有)/WE(西歐)等表示語言,16/32/8表示字元儲存使用位元組數,最後一部分是實際的字符集。
如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編碼)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6906/viewspace-2374926/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 帶你快速瞭解Oracle資料庫提供的恢復機制Oracle資料庫
- 瞭解圖形資料庫資料庫
- SQL稽核 | 如何快速使用 SQLE 稽核各種型別的資料庫SQL型別資料庫
- 瞭解資料庫連線池資料庫
- 瞭解MySQl資料庫目錄MySql資料庫
- GBase 如何批量清空某資料庫中部分表的資料?資料庫
- 安全快速修改Mysql資料庫名的5種方法MySql資料庫
- 一種快速恢復資料庫的方法——Flashback DB資料庫
- 100萬資料,如何快速的匯入資料庫?資料庫
- 一張圖快速瞭解23種設計模式設計模式
- Oracle 如何快速的 duplicate 一個資料庫Oracle資料庫
- 帶你瞭解資料庫中JOIN的用法資料庫
- 帶你瞭解資料庫中group by的用法資料庫
- Oracle資料庫開發——瞭解索引Oracle資料庫索引
- 做大資料必須瞭解的多種處理框架大資料框架
- 資料庫複製技術全面瞭解資料庫
- Oracle資料庫開發——瞭解rowidOracle資料庫
- 快速瞭解jQueryjQuery
- 瞭解資料庫的三級模式和二級映像資料庫模式
- 如何匯出11.2.0.4的某個資料庫使用者許可權及角色並快速複製到另一個同版本的資料庫資料庫
- 如何找到某個 ABAP structure 某欄位的源頭來自哪個資料庫表Struct資料庫
- 讓你詳細的瞭解資料庫防火牆的功能資料庫防火牆
- 一篇文章瞭解Redis資料庫Redis資料庫
- Oracle資料庫開發——瞭解分割槽表Oracle資料庫
- 瞭解oracle資料庫體系結構(3)Oracle資料庫
- 瞭解oracle資料庫體系結構(2)Oracle資料庫
- 瞭解oracle資料庫體系結構(1)Oracle資料庫
- 如何快速使用摩杜雲資料庫RDSMySQL?資料庫MySql
- 如何快速找到 oracle 資料庫的所需要的psuOracle資料庫
- 3分鐘瞭解十種侵入資料庫方法,防患未然早做準備資料庫
- 如何dump某個表的資料快
- 還不瞭解資料庫?Smartbi一文帶你入門資料庫!資料庫
- 快速瞭解 Deno 目前的 APIAPI
- mysqdump 忽略某個資料庫的寫法資料庫
- 帶你瞭解資料庫中事務的ACID特性資料庫
- 關於 NoSQL 資料庫你應該瞭解的 10 件事SQL資料庫
- 如何用exp 匯出 某個表的某幾列資料
- 資料庫連線的方法種種資料庫