Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
642b40f5
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
642b40f5
编写于
9月 23, 2022
作者:
L
lihuihui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改数据管理子系统readme文档
Signed-off-by:
N
lihuihui
<
lihuihui29@huawei.com
>
上级
bef44ba4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
28 addition
and
50 deletion
+28
-50
zh-cn/readme/figures/数据管理子系统架构图.png
zh-cn/readme/figures/数据管理子系统架构图.png
+0
-0
zh-cn/readme/分布式数据管理子系统.md
zh-cn/readme/分布式数据管理子系统.md
+28
-50
未找到文件。
zh-cn/readme/figures/数据管理子系统架构图.png
0 → 100644
浏览文件 @
642b40f5
40.9 KB
zh-cn/readme/分布式数据管理子系统.md
浏览文件 @
642b40f5
...
@@ -2,9 +2,13 @@
...
@@ -2,9 +2,13 @@
-
[
简介
](
#section11660541593
)
-
[
简介
](
#section11660541593
)
-
[
目录
](
#section161941989596
)
-
[
目录
](
#section161941989596
)
-
[
说明
](
#section1312121216216
)
-
[
组件说明
](
#section1312121216216
)
-
[
本地数据管理说明
](
#section129654513264
)
-
[
分布式数据对象
](
#section129654513264
)
-
[
分布式数据服务说明
](
#section1961602912224
)
-
[
数据共享
](
#section1961602912224
)
-
[
分布式数据服务
](
#section1961602912225
)
-
[
首选项
](
#section1961602912226
)
-
[
关系型数据库
](
#section1961602912227
)
-
[
相关仓
](
#section1371113476307
)
-
[
相关仓
](
#section1371113476307
)
...
@@ -14,22 +18,13 @@
...
@@ -14,22 +18,13 @@
分布式数据管理子系统支持单设备的各种结构化数据的持久化,以及跨设备之间数据的同步、共享功能。开发者通过分布式数据管理子系统,能够方便地完成应用程序数据在不同终端设备间的无缝衔接,满足用户跨设备使用数据的一致性体验。
分布式数据管理子系统支持单设备的各种结构化数据的持久化,以及跨设备之间数据的同步、共享功能。开发者通过分布式数据管理子系统,能够方便地完成应用程序数据在不同终端设备间的无缝衔接,满足用户跨设备使用数据的一致性体验。
-
本地数据管理
提供单设备上结构化数据的存储和访问能力。使用SQLite作为持久化存储引擎,提供了多种类型的本地数据库,分别是关系型数据库(Relational Database,RDB)和轻量级偏好数据库(Preferences),用以满足使用不同数据模型对应用数据进行持久化和访问的需求。
-
分布式数据服务
分布式数据服务支持数据跨设备相互同步,为用户提供在多种终端设备上一致的数据访问体验。通过结合帐号、应用和数据库三元组,分布式数据服务对数据进行隔离。在通过可信认证的设备间,分布式数据服务支持数据相互同步,提供跨设备的数据访问。
**子系统架构**
**子系统架构**
**图 1**
子系统架构图
<a
name=
"fig4460722185514"
></a>
**图 1**
子系统架构图
<a
name=
"fig4460722185514"
></a>
![](
figures/
zh-cn_image_0000001115748088
.png
)
![](
figures/
数据管理子系统架构图
.png
)
## 目录<a name="section161941989596"></a>
## 目录<a name="section161941989596"></a>
...
@@ -37,65 +32,48 @@
...
@@ -37,65 +32,48 @@
```
```
distributeddatamgr/ # 子系统目录
distributeddatamgr/ # 子系统目录
├── relational_store # 关系型数据库目录
├── data_object # 分布式数据对象目录
└── data_share # 数据共享目录
└── datamgr_service # 数据服务目录
└── kv_store # Key-Value数据库目录
└── kv_store # Key-Value数据库目录
└── data_object # 分布式数据对象目录
└── preferences # 首选项目录
└── preferences # 首选项目录
└──
data_share # 数据共享
目录
└──
relational_store # 关系型数据库
目录
third_party/ # 开源软件目录
third_party/ # 开源软件目录
├── flatbuffers # flatbuffers代码目录
├── flatbuffers # flatbuffers代码目录
└── sqlite # SQLite代码目录
└── sqlite # SQLite代码目录
```
```
## 说明<a name="section1312121216216"></a>
## 组件说明<a name="section1312121216216"></a>
### 本地数据管理说明<a name="section129654513264"></a>
-
关系型数据库
以下是几个基本概念:
- **关系型数据库**
创建在关系模型基础上的数据库,以行和列的形式存储数据。
- **结果集**
指用户查询之后的结果集合,可以对数据进行访问。结果集提供了灵活的数据访问方式,可以更方便的拿到用户想要的数据。
- **SQLite数据库**
一款轻量级的数据库,是遵守ACID的关系型数据库组件。它是一个开源的项目
-
轻量级偏好数据库
以下是几个基本概念:
### 分布式数据对象<a name="section129654513264"></a>
- **Key-Value数据库**
分布式数据对象管理框架是一款面向对象的内存数据管理框架,向应用开发者提供内存对象的创建、查询、删除、修改、订阅等基本数据对象的管理能力,同时具备分布式能力,满足超级终端场景下,相同应用多设备间的数据对象协同需求。
一种以键值对存储数据的一种数据库。Key是关键字,Value是值
。
分布式数据对象提供JS接口,让开发者能以使用本地对象的方式使用分布式对象。分布式数据对象支持的数据类型包括数字型、字符型、布尔型等基本类型,同时也支持数组、基本类型嵌套等复杂类型
。
- **非关系型数据库**
### 数据共享<a name="section1961602912224"></a>
区别于关系数据库,不保证遵循ACID(Atomic、Consistency、Isolation及Durability)特性,不采用关系模型来组织数据,数据之间无关系,扩展性好
。
**数据共享(Data Share)**
提供了向其他应用共享以及管理其数据的方法,支持同个设备上不同应用之间的数据共享
。
- **偏好数据**
### 分布式数据服务<a name="section1961602912225"></a>
用户经常访问和使用的数据
。
分布式数据服务(Distributed Data Service,DDS) 提供不同设备间数据库数据分布式的能力。通过结合帐号、应用和数据库三元组,分布式数据服务对数据进行隔离。在通过可信认证的设备间,分布式数据服务支持数据相互同步,为用户提供在多种终端设备上一致的数据访问体验
。
### 首选项<a name="section1961602912226"></a>
**首选项(Preferences)**
主要提供轻量级Key-Value操作,支持本地应用存储少量数据,数据存储在本地文件中,同时也加载在内存中,所以访问速度更快,效率更高。首选项提供非关系型数据存储,不宜存储大量数据,经常用于操作键值对形式数据的场景。
### 分布式数据服务说明<a name="section1961602912224"></a>
1.
本模块提供首选项的操作类,应用通过这些操作类完成首选项操作。
2.
借助getPreferences,可以将指定文件的内容加载到Preferences实例,每个文件最多有一个Preferences实例,系统会通过静态容器将该实例存储在内存中,直到主动从内存中移除该实例或者删除该文件。
3.
获取Preferences实例后,可以借助Preferences类的函数,从Preferences实例中读取数据或者将数据写入Preferences实例,通过flush将Preferences实例持久化。
分布式数据服务(Distributed Data Service,DDS) 提供不同设备间数据库数据分布式的能力,主要采用KV数据模型:
### 关系型数据库<a name="section1961602912227"></a>
-
**KV数据模型**
**关系型数据库(Relational Database,RDB)**
是一种基于关系模型来管理数据的数据库。OpenHarmony关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制。
“KV数据模型”是“Key-Value数据模型”的简称,“Key-Value”即“键-值”。它是一种NoSQL类型数据库,其数据以键值对的形式进行组织、索引和存储
。
OpenHarmony关系型数据库底层使用SQLite作为持久化存储引擎,支持SQLite具有的所有数据库特性,包括但不限于事务、索引、视图、触发器、外键、参数化查询和预编译SQL语句
。
KV数据模型适合不涉及过多数据关系和业务关系的业务数据存储,比SQL数据库存储拥有更好的读写性能,同时在分布式场景中降低了数据库版本兼容和数据同步过程中冲突解决的复杂度而被广泛使用。分布式数据库也是基于KV数据模型,对外提供KV类型的访问接口。
## 相关仓<a name="section1371113476307"></a>
## 相关仓<a name="section1371113476307"></a>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录