STSdb 4.0 入門說明文檔(有部分刪減)- NoSQL


STSdb 4.0 說明文檔

 介於本人英語水平有限,如果有任何錯誤請留言,謝謝。

簡單實例

  1. 打開數據庫並且創建一個簡單的表

      2.從表中讀取

         

 

             存儲引擎

                           STSdb 4.0 的存儲引擎是基於瀑布樹TM 實現的。存儲引擎提供了兩種數據結構—XIndexXFile。一個存儲引擎可以包含多個 XIndex表和多個XFile文件。

 

             XIndex

                         XIndex是一個已經排序的鍵值存儲映射(表)。我們可以在一個存儲引擎中利用不同類型的鍵值打開不同屬性的表。並且在每個表的行數上沒有任何限制。

 

     提示:engine.Commit() 提交所有已經刷新的表的更改。在正式發布的每個表,Commit() 方法將會被忽略

 

  1. XIndex<TKey,TRecord> 支持的類型

         

            TKeyTRecord支持的類型有:

                     1.1. 基本類型—Boolean,Char,SByte,Byte,Int16,UInt16,Int32,UInt32,Int64,UInt64,Single,Double,Decimal,DateTime,String,byte[];

                     1.2. 擁有默認構造函數的類或結構體,並且特性的類型是公共的,類型是1.1.中指定的

                     1.3. 擁有默認構造函數的類或結構體,並且特性的類型是公共的,類型是1.1.和1.2.中指定的

                                如例子,如果我們擁有以下兩種類型:

                                           

 

                               我們可以打開不同類型的表:

                                           

                                           

                                     乃至:

                                           

                            至於復合鍵,引擎比較子鍵,在排序已經聲明的特性。

  

            2.XIndex<TKey,TRecord> 方法

                             XIndex<TKey,TRecord> 實現了 IIndex<TKey,TRecord> 接口。

              基本用戶方法:

                        

                        

                           默認的XIndex枚舉正序遍歷表的行

                                      Forward() 方法正序遍歷表的行 

                                      Backward() 方法反序遍歷表的行

 

                                     FindNext() 返回大於或等於指定行的第一個(如果存在)

                                     FindAfter() 返回大於指定行的第一個(如果存在)

                                     FindPrev() 返回小於或等於指定行的第一個(如果存在)

                                     FindBefore() 返回小於指定行的第一個(如果存在)

 

                                    FirstRow 返回鍵最小的那一行

                                    LastRow 返回鍵最大的那一行

                         異步改變XIndex的內容的方法——他們會產生一定的操作在瀑布樹中

                          -          This[TKey key] set;

                          -          Replace(TKey key, TRecord record);

                          -          Delete(TKey key);

                          -          Clear();

 

        3.XIndex<TKey,TRecord> 基礎

                      正如我們所提到的,每個儲存引擎可以處理不同類型的XIndex<TKey,TRecord> 表.每個TKeyTRecord可以是任何基本類型、結構體或者類。但是在所有的情況下,每個XIndex<TKey,TRecord> 使用一個指定的非通用 XIndex 表來存儲它的數據。

                                      

                     當一個 XIndex<TKey,TRecord> 被創建后,它將利用.NET表達式自動生成並且編譯轉換代碼以便將每個TKeyTRecord 對象轉換成能夠支持 IData 對象。因此,從一個數據庫的觀念來看,XIndex<TKey,TRecord> 經過應用數據層和內置數據層之間的轉換層之后快速的呈現。即使開發者可能使用了自定義類型的應用數據,也保證了內置存儲的獨立性。

 

        4.XIndex 和IData 繼承

                   XIndex 表和內部繼承的IData一起工作。在STSdb 4.0 中被忽略

                 

            當前版本的TKeyTRcord最大可以支持64個位置。每個位置可以是任何基本類型。

 

            以下代碼演示了直接使用非通用的XIndex的情況

                

 

               

         數據轉換器將會盡力的將IData類型轉換成應用類型。他們由XIndex<TKey,TRecord>XIndex表之間的轉換層構成。所有轉換器看起來像:

               

        每個XIndex<TKey,TRecord> 實例自動實現兩種數據轉換 - 一種是keys另一種是records。那么每個輸入的TKey/TRecord對象會被轉換成適當的IData對象。同樣的,每個來自XIndexIData對象都已經被隱藏的轉換成了TKey/TRecord.

        假設我們現在有以下類:

               

       如果我們有XIndex<long,Tick>

             

       然后XIndex表將會被以下兩種類型的,keysrecords打開:

            

      我們可以同時打開后台的 XIndex

            

      最終 tabletable2 將會得到同樣的數據

 

     如果我們決定擴展Tick類的property,改成非基本類型。

           

      然后后台XIndex將會采用以下類型被打開

         

     如果我們決定排除 Symbol Timestamp 並且采用他們作為復合鍵:

        

        

      然后后台XIndex將會采用以下類型打開:

         

XFile

      STSdb 4.0 通過使用XFile以支持稀疏的文件。我們可以跟使用.NET流一樣使用XFile。

         

 

注:新版中部分方法已經與本教程有一定的出入


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM