




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
ICS35.240
CCSL70
團(tuán)體標(biāo)準(zhǔn)
T/CESAXXXX—202X
區(qū)塊鏈和分布式記賬技術(shù)面向智能合約的
數(shù)據(jù)處理語言技術(shù)要求
Blockchainanddistributedledgertechnology——Technicalrequirementsofdata
processinglanguageforsmartcontract
(征求意見稿)
在提交反饋意見時(shí),請(qǐng)將您知道的相關(guān)專利連同支持性文件一并附上。
已授權(quán)的專利證明材料為專利證書復(fù)印件或扉頁,已公開但尚未授權(quán)的專利申請(qǐng)
證明材料為專利公開通知書復(fù)印件或扉頁,未公開的專利申請(qǐng)的證明材料為專利申請(qǐng)
號(hào)和申請(qǐng)日期。
202X-XX-XX發(fā)布202X-XX-XX實(shí)施
中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)發(fā)布
T/CESAXXXX—202X
區(qū)塊鏈和分布式記賬技術(shù)面向智能合約的數(shù)據(jù)處理語言技術(shù)要求
1范圍
本文件給出了面向區(qū)塊鏈智能合約數(shù)據(jù)處理的統(tǒng)一底層數(shù)據(jù)模型和數(shù)據(jù)處理語言要求。
本文件適用于指導(dǎo)區(qū)塊鏈平臺(tái)開發(fā)者在區(qū)塊鏈平臺(tái)上進(jìn)行面向智能合約的便捷開發(fā)。
2規(guī)范性引用文件
本文件沒有規(guī)范性引用文件。
3術(shù)語和定義
下列術(shù)語和定義適用于本文件。
3.1
世界狀態(tài)worldstate
用以描述在某一個(gè)時(shí)間點(diǎn)上,區(qū)塊鏈系統(tǒng)內(nèi)所有賬戶相關(guān)信息的完整視圖。
注:“相關(guān)信息”包括賬戶活躍狀態(tài)、賬戶持有人、賬戶余額等。
3.2
當(dāng)前世界狀態(tài)currentworldstate
當(dāng)前時(shí)刻(區(qū)塊鏈最新塊高)的世界狀態(tài)。
3.3
歷史世界狀態(tài)historicalworldstate
世界狀態(tài)的所有歷史版本。
注:同一個(gè)狀態(tài)數(shù)據(jù)會(huì)有多個(gè)版本,按照塊高順序組織。
3.4
數(shù)據(jù)表datatable
保存區(qū)塊鏈數(shù)據(jù)的網(wǎng)格虛擬表。
3.5
系統(tǒng)表systemtable
區(qū)塊鏈系統(tǒng)中原始的、不可更改的,用于保存區(qū)塊數(shù)據(jù)的虛擬表。
3.6
業(yè)務(wù)表businesstable
1
T/CESAXXXX—202X
區(qū)塊鏈系統(tǒng)中,與業(yè)務(wù)相關(guān)的、可通過智能合約進(jìn)行讀寫操作的,用于保存區(qū)塊數(shù)據(jù)的虛擬表。
4縮略語
下列縮略語適用于本文件。
BNF巴科斯范式(Backus-NaurForm)
DDL數(shù)據(jù)定義語言(DataDefinitionLanguage)
DLT分布式記賬技術(shù)(DistributedLedgerTechnology)
DML數(shù)據(jù)操作語言(DataManipulationLanguage)
5總體架構(gòu)
面向智能合約的數(shù)據(jù)處理過程包括,對(duì)區(qū)塊鏈系統(tǒng)數(shù)據(jù)重新規(guī)范整理形成數(shù)據(jù)表,建立統(tǒng)一的數(shù)據(jù)
模型,并根據(jù)統(tǒng)一的數(shù)據(jù)模型定義數(shù)據(jù)處理語言。其中,數(shù)據(jù)處理語言包括數(shù)據(jù)定義語言和數(shù)據(jù)操作語
言??傮w架構(gòu)參見圖1。
數(shù)據(jù)模型包括:
a)區(qū)塊數(shù)據(jù),按照不同數(shù)據(jù)類型分別整理為區(qū)塊表,交易表和回執(zhí)表;
b)狀態(tài)數(shù)據(jù),包括當(dāng)前世界狀態(tài)和歷史世界狀態(tài)。
注1:區(qū)塊表、交易表、回執(zhí)表均為系統(tǒng)表,表屬性為只讀;
注2:當(dāng)前狀態(tài)數(shù)據(jù)和歷史狀態(tài)數(shù)據(jù)分別組織為多張業(yè)務(wù)表,表屬性為讀寫。
數(shù)據(jù)處理語言包括:
a)數(shù)據(jù)定義語言,包括新建數(shù)據(jù)表、更改數(shù)據(jù)表、刪除數(shù)據(jù)表和查詢數(shù)據(jù)表;
b)數(shù)據(jù)操作語言,包括插入數(shù)據(jù)、更新數(shù)據(jù)、刪除數(shù)據(jù)和查詢數(shù)據(jù)。
圖1總體架構(gòu)圖
6統(tǒng)一數(shù)據(jù)模型
2
T/CESAXXXX—202X
6.1概述
為向智能合約提供統(tǒng)一的訪問接口,區(qū)塊鏈平臺(tái)需提供統(tǒng)一的數(shù)據(jù)模型,并將區(qū)塊數(shù)據(jù)、狀態(tài)數(shù)據(jù)
通過統(tǒng)一的組織方式組織為統(tǒng)一模型的數(shù)據(jù),方便實(shí)現(xiàn)各種數(shù)據(jù)之間的交互。不同類型的區(qū)塊鏈數(shù)據(jù)邏
輯關(guān)系見圖2。
圖2不同類型區(qū)塊鏈數(shù)據(jù)邏輯關(guān)系圖
6.2區(qū)塊數(shù)據(jù)
區(qū)塊數(shù)據(jù)按照不同維度,可分為區(qū)塊相關(guān)的數(shù)據(jù)、交易相關(guān)的數(shù)據(jù)和回執(zhí)相關(guān)的數(shù)據(jù)等。為構(gòu)建統(tǒng)
一的數(shù)據(jù)模型,區(qū)塊數(shù)據(jù)采用關(guān)系數(shù)據(jù)表的模型向智能合約展示,方便用戶跨表進(jìn)行靈活處理。
區(qū)塊相關(guān)的數(shù)據(jù)組織為一張獨(dú)立的數(shù)據(jù)表,用以描述區(qū)塊的元數(shù)據(jù),一個(gè)數(shù)據(jù)行代表一個(gè)特定塊高
的區(qū)塊。要求包括:
a)數(shù)據(jù)表為系統(tǒng)表,表模式由區(qū)塊鏈平臺(tái)定義,可命名為“Blocks”;
b)主關(guān)鍵字為塊高,類型為無符號(hào)的64位整數(shù),不應(yīng)為NULL;
c)其他字段描述該區(qū)塊的元信息,具體定義可根據(jù)區(qū)塊鏈平臺(tái)的具體設(shè)計(jì)而定。
交易相關(guān)的數(shù)據(jù)組織為一張獨(dú)立的數(shù)據(jù)表,用以描述交易的元數(shù)據(jù),一個(gè)數(shù)據(jù)行代表一個(gè)特定哈希
的交易。要求包括:
a)數(shù)據(jù)表為系統(tǒng)表,表模式由區(qū)塊鏈平臺(tái)定義,可命名為“Transactions”;
b)主關(guān)鍵字為交易哈希,類型為32字節(jié)的字符串,不應(yīng)為NULL;
c)其他字段描述該交易的元信息,具體定義可根據(jù)區(qū)塊鏈平臺(tái)的具體設(shè)計(jì)而定。
回執(zhí)相關(guān)的數(shù)據(jù)組織為一張獨(dú)立的數(shù)據(jù)表,用以描述交易回執(zhí)數(shù)據(jù),一個(gè)數(shù)據(jù)行代表一個(gè)特定哈希
的交易回執(zhí)。要求包括:
a)數(shù)據(jù)表為系統(tǒng)表,表模式由區(qū)塊鏈平臺(tái)定義,可命名為“Receipts”;
b)主關(guān)鍵字為交易哈希,類型為32字節(jié)的字符串,不應(yīng)為NULL;
c)其他字段描述該回執(zhí)的具體信息,具體定義可根據(jù)區(qū)塊鏈平臺(tái)的具體設(shè)計(jì)而定。
注:系統(tǒng)表是由區(qū)塊區(qū)塊鏈平臺(tái)定義并且寫入數(shù)據(jù)的,其模式及數(shù)據(jù)對(duì)于智能合約來說均為只讀,智能合約不能新
建或者修改系統(tǒng)表的模式,也不能對(duì)表里的數(shù)據(jù)進(jìn)行寫操作。
6.3世界狀態(tài)數(shù)據(jù)
3
T/CESAXXXX—202X
為構(gòu)建統(tǒng)一的數(shù)據(jù)模型,世界狀態(tài)數(shù)據(jù)應(yīng)采用關(guān)系數(shù)據(jù)表的模型向智能合約展示。關(guān)系數(shù)據(jù)表的模
型包括狀態(tài)數(shù)據(jù)原有的主關(guān)鍵字和歷史版本信息,以便區(qū)分同一條數(shù)據(jù)的不同版本。
當(dāng)前世界狀態(tài)組織為多張數(shù)據(jù)表,用以描述業(yè)務(wù)數(shù)據(jù)的最新版本。要求包括:
a)數(shù)據(jù)表為業(yè)務(wù)表,表模式由合約開發(fā)者通過DDL(見6.2)定義,宜為用戶定義的表名添加后
綴“C”,代表“Current”;
b)所有業(yè)務(wù)數(shù)據(jù)列由合約開發(fā)者定義,表示當(dāng)前塊高的業(yè)務(wù)數(shù)據(jù)。
注1:表模式可讀可寫,智能合約可對(duì)表模式進(jìn)行新建、更新、刪除、及查詢操作;
注2:表數(shù)據(jù)可讀可寫,智能合約可以對(duì)表數(shù)據(jù)進(jìn)行插入、更新、刪除、及查詢操作。
歷史世界狀態(tài)組織為多張數(shù)據(jù)表,用以描述業(yè)務(wù)數(shù)據(jù)的歷史版本。要求包括:
a)數(shù)據(jù)表為業(yè)務(wù)表,表模式由合約開發(fā)者通過DDL(見6.2)定義,宜為用戶定義的表名添加后
綴“H”,代表“Historical”。
b)所有業(yè)務(wù)數(shù)據(jù)列由合約開發(fā)者定義,表示特定歷史版本的業(yè)務(wù)數(shù)據(jù)。
c)每個(gè)表實(shí)例對(duì)應(yīng)一個(gè)具體的塊高,塊高信息由區(qū)塊鏈平臺(tái)從當(dāng)前交易的上下文信息當(dāng)中自動(dòng)提
取,智能合約無需指定。
注1:表模式只讀,智能合約只能對(duì)表模式進(jìn)行查詢操作;
注2:表數(shù)據(jù)只讀,智能合約只能對(duì)表數(shù)據(jù)進(jìn)行查詢操作。
7合約數(shù)據(jù)處理語言
7.1概述
面向區(qū)塊鏈智能合約,針對(duì)統(tǒng)一的數(shù)據(jù)模型,區(qū)塊鏈系統(tǒng)應(yīng)提供統(tǒng)一的數(shù)據(jù)處理語言,以便進(jìn)行區(qū)
塊鏈系統(tǒng)進(jìn)行快速、便捷的開發(fā)等操作。
本文件采用BNF范式對(duì)數(shù)據(jù)處理語言進(jìn)行定義。采用以下形式組織:
a)功能描述:對(duì)語句用途簡短描述;
b)語法格式:對(duì)語法的BNF范式定義;
c)語法規(guī)則:BNF范式無法表示的,但而該語句應(yīng)當(dāng)滿足的附加語法限制。
此外,本文件采用BNF范式作為語法表示,具有如下的擴(kuò)展:
a)方括號(hào)([])表示可選元素;
b)省略號(hào)(…)表示可重復(fù)一次或多次的元素;
c)花括號(hào)({})表示元素的組合序列。
本文件采用大寫和小寫字母來區(qū)分常量和變量。大寫字母表示字面量/常量,如CREATETABLE代表
“CREATETABLE”字符串本身。規(guī)則名/變量使用尖括號(hào)包小寫字母來表示,如<tabledefinition>代表
表定義的規(guī)則。逗號(hào),圓括號(hào)也是字面量,代表他們自己本身。
7.2數(shù)據(jù)定義語言
7.2.1概述
數(shù)據(jù)定義語言實(shí)現(xiàn)統(tǒng)一數(shù)據(jù)模型中新建數(shù)據(jù)表、更改數(shù)據(jù)表、刪除數(shù)據(jù)表和查詢數(shù)據(jù)表的操作。以
下內(nèi)容給出了新建數(shù)據(jù)表、更改數(shù)據(jù)表、刪除數(shù)據(jù)表和查詢數(shù)據(jù)表的語句功能描述、語法格式和語法規(guī)
則。
7.2.2新建數(shù)據(jù)表
7.2.2.1功能描述
4
T/CESAXXXX—202X
“新建數(shù)據(jù)表”語句用于定義數(shù)據(jù)表。該操作僅針對(duì)業(yè)務(wù)表,系統(tǒng)表由區(qū)塊鏈平臺(tái)創(chuàng)建,不可更改。
7.2.2.2語法格式
<tabledefinition>::=CREATETABLE<tablename><tableelementlist>
解釋:表定義<tabledefinition>,包含表名<tablename>以及表元素清單<tableelementlist>.
<tableelementlist>::=(<tableelement>[{,<tableelement>}…])
解釋:表元素清單<tableelementlist>,由一個(gè)或者多個(gè)表元素<tableelement>組成。
<tableelement>::=<columndefinition>|<tableconstraintdefinition>
解釋:表元素<tableelement>,可以是一個(gè)列定義<columndefinition>,或者是一個(gè)表約束定義
<tableconstraintdefinition>
<columndefinition>::=<columnname><datatype>[<defaultclause>][<columnconstraint
definition>…]
解釋:列定義<columndefinition>,應(yīng)包含列名<columnname>以及數(shù)據(jù)類型<defaultclause>,
選擇性包含缺省值子句<defaultclause>以及列約束定義<columnconstraintdefinition>,其中列約
束定義可以是一個(gè)或者多個(gè)。
<datatype>::=<characterstringtype>|<numerictype>
解釋:數(shù)據(jù)類型<datatype>表示當(dāng)前數(shù)據(jù)列的類型,可以是字符串類型<characterstringtype>,
或者是數(shù)值類型<numerictype>.
<defaultclause>::=DEFAULT{<literal>|NULL}
解釋:缺省值子句<defaultclause>用于定義當(dāng)前數(shù)據(jù)列的缺省值,該值可以是一個(gè)字面值
<literal>或者NULL.
<columnconstraintdefinition>::=NOTNULL|<uniquespecification>
解釋:列約束定義<columnconstraintdefinition>用于描述當(dāng)前數(shù)據(jù)列的相關(guān)限制條件,如非空
性,唯一性等。
<uniquespecification>::=UNIQUE|PRIMARYKEY
解釋:唯一性說明<uniquespecification>用于描述索引的唯一性,可能的取值為UNIQUE(唯一性
索引)或者PRIMARYKEY(主索引)。如果沒有指定,缺省為非唯一性索引。
<tableconstraintdefinition>::=[<constraintnamedefinition>][<unique
specification>](<columnnamelist>)
解釋:表約束定義<tableconstraintdefinition>用于描述當(dāng)前數(shù)據(jù)表的相關(guān)限制條件,本版本
僅包括索引的聲明。包含可選的約束名定義<constraintnamedefinition>,可選的唯一性說明<unique
specification>,以及列名清單<columnnamelist>。
<constraintnamedefinition>::=CONSTRAINT<constraintname>
5
T/CESAXXXX—202X
解釋:約束名定義<constraintnamedefinition>,由關(guān)鍵字CONSTRAINT以及約束名稱<constraint
name>組成。
<columnnamelist>::=<columnname>[{,<columnname>}…]
解釋:列名清單<columnnamelist>由一個(gè)或者多個(gè)列名<columnname>組成。
7.2.2.3語法規(guī)則
“新建數(shù)據(jù)表”語句的語法規(guī)則包括:
a)不同<tabledefinition>當(dāng)中的<tablename>互不相同;
b)<tabledefinition>應(yīng)至少包含一個(gè)<columndefinition>;
c)由<tabledefinition>定義的表的描述,包含<tablename>和由各個(gè)<columndefinition>指
明的各列的描述,第i個(gè)列描述由第i個(gè)<columnedefinition>給出;
d)在一個(gè)<tabledefinition>里面,不同<columndefinition>當(dāng)中的<columnname>互不相同;
e)由<columndefinition>定義的列的描述,包含<columnname>和由<datatype>指明的數(shù)據(jù)類
型。
7.2.3更改數(shù)據(jù)表
7.2.3.1功能描述
“更改數(shù)據(jù)表”語句用于修改一個(gè)數(shù)據(jù)表的定義。該操作僅針對(duì)業(yè)務(wù)表,系統(tǒng)表由區(qū)塊鏈平臺(tái)創(chuàng)建,
不允許智能合約更改。
7.2.3.2語法格式
<altertablestatement>::=ALTERTABLE<tablename><altertableactionlist>
解釋:表修改語句<altertablestatement>,需要指定表名<tablename>和表修改行為清單。
<altertableactionlist>::=<altertableaction>[{,<altertableaction>
}…]
解釋:表修改行為清單<altertableactionlist>,由一個(gè)或多個(gè)表修改行為<altertableaction>
組成。
<altertableaction>::=<addcolumndefinition>|<dropcolumndefinition>|<addtable
constraintdefinition>|<droptableconstraintdefinition>
解釋:表修改行為<altertableaction>,可能是增加列定義<addcolumndefinition>,刪除列
定義<dropcolumndefinition>,增加表約束定義<addtableconstraintdefinition>,或者刪除表
約束定義<droptableconstraintdefinition>.
<addcolumndefinition>::=ADDCOLUMN<columndefinition>
解釋:增加列定義<addcolumndefinition>,包含關(guān)鍵字ADDCOLUMN以及列定義<column
definition>本身,<columndefinition>的格式和規(guī)則見前面章節(jié)。
<dropcolumndefinition>::=DROPCOLUMN<columnname>
6
T/CESAXXXX—202X
解釋:刪除列定義<dropcolumndefinition>,包含關(guān)鍵字DROPCOLUMN以及列名<columnname>.
<addtableconstraintdefinition>::=ADD<tableconstraintdefinition>
解釋:增加表約束定義<addtableconstraintdefinition>,包含關(guān)鍵字ADD以及表約束定義<table
constraintdefinition>本身。<tableconstraintdefinition>的格式和規(guī)則見前面章節(jié)。
<droptableconstraintdefinition>::=DROP<constraintname>
解釋:刪除表約束定義<droptableconstraintdefinition>,包含關(guān)鍵字DROP以及表約名
<constraintname>.
7.2.3.3語法規(guī)則
“更改數(shù)據(jù)表”語句的語法規(guī)則包括:
a)令T為<tablename>所指定的數(shù)據(jù)表;
b)T應(yīng)是之前定義過的;
c)<columnname>所指定的數(shù)據(jù)列應(yīng)是T的一個(gè)列,但不能是唯一的列;
d)<constraintname>所指定的約束應(yīng)是T的一個(gè)約束。
7.2.4刪除數(shù)據(jù)表
7.2.4.1功能描述
“刪除數(shù)據(jù)表”語句用于刪除整個(gè)數(shù)據(jù)表。該操作僅針對(duì)業(yè)務(wù)表,系統(tǒng)表由區(qū)塊鏈平臺(tái)創(chuàng)建,不允
許智能合約刪除。
7.2.4.2語法格式
<droptablestatement>::=DROPTABLE<tablename>
解釋:表刪除語句<droptablestatement>,包含關(guān)鍵字”DROPTABLE”以及所要?jiǎng)h除的表名稱<table
name>.
7.4.2.3語法規(guī)則
“刪除數(shù)據(jù)表”語句的語法規(guī)則包括:
a)令T為<tablename>所指定的數(shù)據(jù)表;
b)T應(yīng)是之前定義過的。
7.2.5查詢數(shù)據(jù)表
7.2.5.1功能描述
“查詢數(shù)據(jù)表”語句用于列出所有數(shù)據(jù)表的名稱。該操作對(duì)業(yè)務(wù)表和系統(tǒng)表均有效。
7.2.5.2語法格式
<showtablesstatement>::=SHOWTABLES
解釋:表查詢語句<showtablesstatement>只包含關(guān)鍵字“SHOWTABLES”。
7
T/CESAXXXX—202X
7.3數(shù)據(jù)操作語言
7.3.1概述
數(shù)據(jù)操作語言能夠?qū)崿F(xiàn)統(tǒng)一數(shù)據(jù)模型中插入數(shù)據(jù)、更新數(shù)據(jù)、刪除數(shù)據(jù)、查詢數(shù)據(jù)操作。以下內(nèi)容
給出了插入數(shù)據(jù)、更新數(shù)據(jù)、刪除數(shù)據(jù)、查詢數(shù)據(jù)的語句功能描述、語法格式和語法規(guī)則。
7.3.2插入數(shù)據(jù)
7.3.2.1功能描述
“插入數(shù)據(jù)”語句用于在數(shù)據(jù)表中插入新的數(shù)據(jù)行集合。該操作僅針對(duì)業(yè)務(wù)表,系統(tǒng)表由區(qū)塊鏈平
臺(tái)填充數(shù)據(jù)。
7.3.2.2語法格式
<insertstatement>::=INSERTINTO<tablename><insertcolumnsandsource>
解釋:插入語句<insertstatement>,將特定的數(shù)據(jù)<insertcolumnsandsource>,插入到名為
<tablename>的數(shù)據(jù)表。
<insertcolumnsandsource>::=<fromconstructor>|<fromdefault>
解釋:插入數(shù)據(jù)源<insertcolumnsandsource>,可能來自于構(gòu)造器<fromconstructor>,或者
是缺省值<fromdefault>。
<fromconstructor>::=[(<insertcolumnlist>)]VALUES<rowvalueexpressionlist>
解釋:數(shù)據(jù)源構(gòu)造器<fromconstructor>,可以指定要插入的列<insertcolumnlist>,應(yīng)指定要
插入的數(shù)據(jù)清單。
<insertcolumnlist>::=<columnname>[{,<columnname>}…]
解釋:插入列的清單<insertcolumnlist>,由一個(gè)或者多個(gè)列名<columnname>組成,列名之間
使用逗號(hào)分隔。
<rowvalueexpressionlist>::=<rowvalueexpression>[{,<rowvalueexpression>}…]
解釋:行值表達(dá)式清單<rowvalueexpressionlist>,由一個(gè)或者多個(gè)行值表達(dá)式<rowvalue
expression>組成。
<rowvalueexpression>::=[ROW](<rowvalueelement>[{,<rowvalueelement>}…])
解釋:行值表達(dá)式<rowvalueexpression>,由一個(gè)或者多個(gè)行值元素<rowvalueelement>組成。
<rowvalueelement>::=<valueexpression>|NULL|DEFAULT
解釋:行值元素<rowvalueelement>,可能是一個(gè)值表達(dá)式,字符串“NULL”,或者字符串
“DEFAULT”.
<fromdefault>::=DEFAULTVALUES
解釋:缺省數(shù)據(jù)源<fromdefault>,由字符串“DEFAULTVALUES”表示。
8
T/CESAXXXX—202X
7.3.2.3語法規(guī)則
“插入數(shù)據(jù)”語句的語法規(guī)則包括:
a)令T表示<tablename>標(biāo)識(shí)的表,<insertcolumnlist>中的每一個(gè)<columnname>應(yīng)標(biāo)識(shí)T
的一個(gè)列,且同一個(gè)列不應(yīng)標(biāo)識(shí)多于一次。<insertcolumnlist>的省略代表一個(gè)隱式聲明,
該聲明包含T中所有列的升序序列;
b)對(duì)于任意一個(gè)<rowvalueexpression>,其中<rowvalueelement>的個(gè)數(shù)應(yīng)等于<insert
columnlist>中的<columnname>的個(gè)數(shù);
c)如果<rowvalueexpression>的第i項(xiàng)不是NULL或者DEFAULT,則其數(shù)據(jù)類型如下:
1)如果<insertcolumnlist>第i項(xiàng)所對(duì)應(yīng)的列的數(shù)據(jù)類型是長度為L的字符串,則對(duì)應(yīng)插
入值類型應(yīng)為長度小于或等于L的字符串;
2)如果<insertcolumnlist>第i項(xiàng)所對(duì)應(yīng)的列的數(shù)據(jù)類型是精確數(shù)值,則對(duì)應(yīng)插入值類型
應(yīng)為精確數(shù)值。
7.3.3更新數(shù)據(jù)
7.3.3.1功能描述
“更新數(shù)據(jù)”語句用于在數(shù)據(jù)表中更新指定的數(shù)據(jù)行集合。該操作僅針對(duì)業(yè)務(wù)表,系統(tǒng)表由區(qū)塊鏈
平臺(tái)填充數(shù)據(jù),不允許智能合約進(jìn)行修改。
7.3.3.2語法格式
<updatestatement>::=UPDATE<tablename>SET<setclauselist>[WHERE<searchcondition>]
解釋:更新語句<updatestatement>,在名為<tablename>的數(shù)據(jù)表當(dāng)中,針對(duì)所有滿足<search
condition>條件的數(shù)據(jù)行,實(shí)施賦值從句清單<setclauselist>所指定的更新操作。當(dāng)WHERE子句省略
時(shí),更新表中所有數(shù)據(jù)行。
<setclauselist>::=<setclause>[{,<setclause>}…]
解釋:賦值從句清單<setclauselist>,包含一個(gè)或多個(gè)賦值從句<setclause>,從句之間使用
逗號(hào)分隔。
<setclause>::=<columnname>=<valueexpression>|NULL
解釋:賦值從句<setclause>,將名為<columnname>的列,賦值為<valueexpression>或者NULL。
7.3.3.3語法規(guī)則
“更新數(shù)據(jù)”語句的語法規(guī)則包括:
a)令T表示<tablename>標(biāo)識(shí)的表,T不應(yīng)是一個(gè)只讀的表;
b)每一個(gè)<columnname>應(yīng)標(biāo)識(shí)T的一個(gè)列,相同的<columnname>不應(yīng)在同一個(gè)更新語句<update
statement>中多次出現(xiàn);
c)對(duì)于每一個(gè)賦值從句<setclause>,應(yīng)滿足以下條件:
1)如果賦值為NULL,那么<columnname>所指定的列應(yīng)允許為空值;
2)如果<columnname>所對(duì)應(yīng)的列的數(shù)據(jù)類型是長度為L的字符串,則對(duì)應(yīng)<value
expression>的類型應(yīng)為長度小于或等于L的字符串;
9
T/CESAXXXX—202X
3)如果<columnname>所對(duì)應(yīng)的列的數(shù)據(jù)類型是精確數(shù)值,則對(duì)應(yīng)<valueexpression>de類
型應(yīng)為精確數(shù)值。
7.3.4刪除數(shù)據(jù)
7.3.4.1功能描述
“刪除數(shù)據(jù)”語句用于從數(shù)據(jù)表中刪除指定的數(shù)據(jù)行集合。該操作僅針對(duì)對(duì)業(yè)務(wù)表有效,系統(tǒng)表由
區(qū)塊鏈平臺(tái)填充數(shù)據(jù),不允許智能合約進(jìn)行刪除。
7.3.4.2語法格式
<deletestatement>::=DELETEFROM<table_name>[WHERE<search_condition>]
解釋:刪除語句<deletestatement>,從名為<tablename>的數(shù)據(jù)表中,刪除所有滿足條件<search
condition>的數(shù)據(jù)行。
7.3.4.3語法規(guī)則
“刪除數(shù)據(jù)”語句的語法規(guī)則:令T表示<tablename>標(biāo)識(shí)的表,T不應(yīng)是一個(gè)只讀的表。
7.3.5查詢數(shù)據(jù)
7.3.5.1功能描述
“查詢數(shù)據(jù)”語句用于從數(shù)據(jù)表指定的數(shù)據(jù)行中查詢特定的值集合。該操作對(duì)業(yè)務(wù)表和系統(tǒng)表均有
效。
7.3.5.2語法格式
<selectstatement>::=SELECT<selectlist><tableexpression>
解釋:查詢語句<selectstatement>,從表達(dá)式<tableexpression>所指定的數(shù)據(jù)表中,獲取<select
list>所指定的值清單。
<selectlist>::=<valueexpression>[{,<valueexpression>}…]
解釋:查詢清單<selectlist>,包含一個(gè)或多個(gè)值表達(dá)式,表達(dá)式之間使用逗號(hào)分隔。
<tableexpression>::=<fromclause>[<whereclause>][<groupbyclause>]
解釋:表表達(dá)式<tableexpression>,主要包含<fromclause>,可選性包含<whereclause>,<group
byclause>.
<fromclause>::=FROM<tablereference>[{,<tablereference>}…]
解釋:從句<fromclause>,包含一個(gè)或多個(gè)表引用<tablereference>,表引用之間使用逗號(hào)分隔。
<tablereference>::=<tablename>[AS<correlationname>]
解釋:表引用<tablereference>,主要包含表名<tablename>,可選擇性定義相關(guān)名<correlation
name>.
10
T/CESAXXXX—202X
<whereclause>::=WHERE<searchcondition>
解釋:條件從句<whereclause>,主要包含搜索條件<searchcondition>.
<groupbyclause>::=GROUPBY<columnreference>[{,<columnreference>}…]
解釋:分組從句<groupbyclause>,包含一個(gè)或多個(gè)列引用<columnreference>,列引用之間使
用逗號(hào)分隔。
<columnreference>::=[<qualifiedidentifier>.]<columnname>
解釋:列引用<columnreference>,主要包含列名<columnname>,可選擇性包含限定符<qualified
identifier>作為前綴。
7.3.5.3語法規(guī)則
“查詢數(shù)據(jù)”語句的語法規(guī)則包括:
a)令R表示<tableexpression>的結(jié)果;
b)查詢結(jié)果的度等于<selectlist>的基數(shù);
c)每個(gè)<valueexpression>內(nèi)的每個(gè)<columnreference>應(yīng)無歧義的引用R的一個(gè)列;
d)查詢結(jié)果的每個(gè)列與相應(yīng)的<valueexpression>具有相同的數(shù)據(jù)類型,長度,精度,以及標(biāo)度;
e)如果<selectlist>中的第i個(gè)<valueexpression>由單一的<columnreference>組成,則結(jié)
果的第i列是一個(gè)命名列,它的列名就是<columnreference>的<columnname>;否則,該列
是一個(gè)非命名列;
f)當(dāng)且僅當(dāng)查詢結(jié)果的一個(gè)列是命名列,并且只包含非空值,則該列限制為只包含非空值。
11
T/CESAXXXX—202X
附錄A
(資料性)
區(qū)塊鏈底層數(shù)據(jù)分類
區(qū)塊鏈底層數(shù)據(jù)可分為區(qū)塊數(shù)據(jù)和狀態(tài)數(shù)據(jù),其中狀態(tài)數(shù)據(jù)分為當(dāng)前世界狀態(tài)數(shù)據(jù)和歷史世界狀態(tài)
數(shù)據(jù)。三種數(shù)據(jù)的邏輯關(guān)系如A.1所示。
A.1區(qū)塊數(shù)據(jù)
區(qū)塊數(shù)據(jù)是區(qū)塊鏈系統(tǒng)的核心數(shù)據(jù)。一段特定時(shí)間之內(nèi)的交易和回執(zhí)數(shù)據(jù)打包組成一個(gè)區(qū)塊,多個(gè)
區(qū)塊之間通過哈希糾纏的方式組成線性的鏈塊結(jié)構(gòu)。
A.2世界狀態(tài)數(shù)據(jù)
世界狀態(tài)數(shù)據(jù)是區(qū)塊鏈系統(tǒng)的擴(kuò)展數(shù)據(jù),用以描述在某一個(gè)時(shí)間點(diǎn)上,系統(tǒng)內(nèi)所有賬戶的相關(guān)信息,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 加工木材安全合同標(biāo)準(zhǔn)文本
- 勞務(wù)廣告安裝合同范例
- 加盟藝術(shù)培訓(xùn)合同范例
- 企業(yè)簽訂民事合同標(biāo)準(zhǔn)文本
- 中英文補(bǔ)充合同標(biāo)準(zhǔn)文本
- 公司經(jīng)營托管合同標(biāo)準(zhǔn)文本
- 交通管制合同標(biāo)準(zhǔn)文本
- 供貨與安裝合同標(biāo)準(zhǔn)文本
- 個(gè)人承兌合同范例
- 上海彩票合同標(biāo)準(zhǔn)文本
- 少兒繪畫之《跳躍的海豚》
- (高職)國際貿(mào)易理論與實(shí)務(wù)ppt課件(完整版)
- 跨境電商B2B實(shí)務(wù)全套ppt課件完整版教學(xué)教程-最新
- 2022年新高考全國Ⅰ卷英語試題及參考答案
- 湘教版高中地理必修第二冊(cè) 4.3 海洋權(quán)益與我國海洋發(fā)展戰(zhàn)略 教學(xué)課件
- 高血壓護(hù)理查房ppt
- 山西安全資料地標(biāo)表格
- 心理學(xué)專業(yè)英語總結(jié)(完整)
- 第一章 混凝土結(jié)構(gòu)按近似概率的極限狀態(tài)設(shè)計(jì)方法
- 《憲法學(xué)》教案
- 夸美紐斯《大教學(xué)論》PPT課件
評(píng)論
0/150
提交評(píng)論