diff --git a/README_zh.md b/README_zh.md index 847fb29a..dcd3b2cd 100644 --- a/README_zh.md +++ b/README_zh.md @@ -1,24 +1,18 @@ -# 本地数据管理组件 +# 本地数据管理组件 +## 简介 +### [关系型数据库(Relational Database,RDB)](relational_store/README_zh.md) -- [简介](#section11660541593) - - [关系型数据库(RDB)](relational_store/README_zh.md) - - [首选项(Preferences)](preferences/README_zh.md) - - [数据共享(DataShare)](data_share/README_zh.md) - - [轻量系统KV数据库(Lightweight KV store)](kv_store/README_zh.md) -- [目录](#section161941989596) -- [相关仓](#section1371113476307) +是一种基于关系模型来管理数据的数据库。OpenHarmony关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制。 +### [首选项(Preferences)](preferences/README_zh.md) -## 简介 +主要提供轻量级Key-Value操作,支持本地应用存储少量数据,数据存储在本地文件中,同时也加载在内存中,所以访问速度更快,效率更高。首选项提供非关系型数据存储,不宜存储大量数据,经常用于操作键值对形式数据的场景。 +### [数据共享(DataShare)](data_share/README_zh.md) -**关系型数据库(Relational Database,RDB)** 是一种基于关系模型来管理数据的数据库。OpenHarmony关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制。 +主要用于应用管理其自身数据,同时支持同个设备上不同应用间的数据共享。 +### [轻量系统KV数据库(Lightweight KV store)](kv_store/README_zh.md) -**首选项(Preferences)** 主要提供轻量级Key-Value操作,支持本地应用存储少量数据,数据存储在本地文件中,同时也加载在内存中,所以访问速度更快,效率更高。首选项提供非关系型数据存储,不宜存储大量数据,经常用于操作键值对形式数据的场景。 - -**数据共享(DataShare)** 主要用于应用管理其自身数据,同时支持同个设备上不同应用间的数据共享。 - -**轻量系统KV数据库(Lightweight KV store)** 依托当前公共基础库提供的KV存储能力开发,为轻量系统设备应用提供键值对数据管理能力。在有进程的平台上,KV存储提供的参数管理,供单进程访问不能被其他进程使用。在此类平台上,KV存储作为基础库加载在应用进程,以保障不被其他进程访问。 - -## 目录 +依托当前公共基础库提供的KV存储能力开发,为轻量系统设备应用提供键值对数据管理能力。在有进程的平台上,KV存储提供的参数管理,供单进程访问不能被其他进程使用。在此类平台上,KV存储作为基础库加载在应用进程,以保障不被其他进程访问。 +## 目录 ``` //foundation/distributeddatamgr/appdatamgr @@ -27,10 +21,7 @@ ├── preferences # 首选项(Preferences) └── relational_store # 关系型数据库(RDB) ``` - - -## 相关仓 - +## 相关仓 - [分布式数据管理子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%88%86%E5%B8%83%E5%BC%8F%E6%95%B0%E6%8D%AE%E7%AE%A1%E7%90%86%E5%AD%90%E7%B3%BB%E7%BB%9F.md) - [**distributeddatamgr\_appdatamgr**](https://gitee.com/openharmony/distributeddatamgr_appdatamgr/blob/master/README_zh.md) diff --git a/kv_store/README_zh.md b/kv_store/README_zh.md index 313fb9f0..76444e89 100644 --- a/kv_store/README_zh.md +++ b/kv_store/README_zh.md @@ -1,29 +1,26 @@ -# 轻量系统KV数据库(Lightweight KV store) +# 轻量系统KV数据库(Lightweight KV store) -- [本地数据管理组件](../README_zh.md) -- [简介](#section11660541593) - - [轻量系统KV数据库(Lightweight KV store)](#section762641474721) -- [目录](#section161941989596) -- [轻量系统KV数据库(Lightweight KV store)](#section762641474722) - - [说明](#section1944481420489) - - [约束](#section1944481420490) -- [相关仓](#section1371113476307) - -## 简介 +## [本地数据管理组件](../README_zh.md) +## 简介 **轻量系统KV数据库(Lightweight KV store)** 依托当前公共基础库提供的KV存储能力开发,为轻量系统设备应用提供键值对数据管理能力。在有进程的平台上,KV存储提供的参数管理,供单进程访问不能被其他进程使用。在此类平台上,KV存储作为基础库加载在应用进程,以保障不被其他进程访问。 -### 轻量系统KV数据库(Lightweight KV store) - > 当前先支持轻量键值(KV)本地数据存储能力,后续会逐步支持其他更丰富的数据类型。 > > 轻量键值(KV)数据:数据有结构,文件轻量,具有简易事务性,单独提供一套专用的键值对接口 分布式数据管理服务在不同平台上,将数据操作接口形成抽象层用来统一进行文件操作,使厂商不需要关注不同芯片平台文件系统的差异。 +KV存储能力继承自公共基础库原始设计,在原有能力基础上进行增强,新增提供数据删除及二进制value读写能力的同时,保证操作的原子性; + +>- 轻量系统普遍性能有限,内存及计算能力不足,对于数据管理的场景大多读多写少,且内存占用敏感; +>- 平台使用的文件操作接口是由文件系统提供,一般来说文件操作接口本身并不是进程安全的,请格外注意; +>- 轻量系统,存在不具备锁能力的情况,不提供锁的机制,并发由业务保证,若需要提供有锁机制,则需要提供hook,由业务进行注册。 + + **目前,在轻量系统上默认关闭该特性,需要使用时请用户修改vendor_hisilicon仓配置以开启。** -## 目录 +## 目录 ``` //foundation/distributeddatamgr/appdatamgr/kv_store @@ -34,17 +31,7 @@ ├── interfaces # 接口代码 └── inner_api # 内部接口声明 ``` - -## 轻量系统KV数据库(Lightweight KV store) - -### 说明 - -KV存储能力继承自公共基础库原始设计,在原有能力基础上进行增强,新增提供数据删除及二进制value读写能力的同时,保证操作的原子性; - ->- 轻量系统普遍性能有限,内存及计算能力不足,对于数据管理的场景大多读多写少,且内存占用敏感; ->- 平台使用的文件操作接口是由文件系统提供,一般来说文件操作接口本身并不是进程安全的,请格外注意; ->- 轻量系统,存在不具备锁能力的情况,不提供锁的机制,并发由业务保证,若需要提供有锁机制,则需要提供hook,由业务进行注册。 -### 约束 +## 约束 - KV大小及可存储条目数在平台可承受内可修改配置,轻量系统默认为小于Key(32byte),Value(512byte),通过修改编译宏修改; @@ -54,10 +41,7 @@ KV存储能力继承自公共基础库原始设计,在原有能力基础上进 - 对于指定路径仅支持创建数据库单例,不支持同一路径创建多数据库实例对象。 -## 相关仓 - - -## 相关仓 +## 相关仓 - [分布式数据管理子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%88%86%E5%B8%83%E5%BC%8F%E6%95%B0%E6%8D%AE%E7%AE%A1%E7%90%86%E5%AD%90%E7%B3%BB%E7%BB%9F.md) diff --git a/preferences/README_zh.md b/preferences/README_zh.md index 5e8cda60..a696a5d5 100644 --- a/preferences/README_zh.md +++ b/preferences/README_zh.md @@ -1,43 +1,15 @@ -# 首选项(Preferences) +# 首选项(Preferences) -- [本地数据管理组件](../README_zh.md) -- [简介](#section11660541593) - - [首选项(Preferences)](#section1287582752719) -- [目录](#section161941989596) -- [首选项(Preferences)](#section762641474720) - - [约束](#section1944481420489) -- [相关仓](#section1371113476307) +## [本地数据管理组件](../README_zh.md) -## 简介 +## 简介 **首选项(Preferences)** 主要提供轻量级Key-Value操作,支持本地应用存储少量数据,数据存储在本地文件中,同时也加载在内存中,所以访问速度更快,效率更高。首选项提供非关系型数据存储,不宜存储大量数据,经常用于操作键值对形式数据的场景。 -### 首选项(Preferences) - 1. 本模块提供首选项的操作类,应用通过这些操作类完成首选项操作。 2. 借助getPreferences,可以将指定文件的内容加载到Preferences实例,每个文件最多有一个Preferences实例,系统会通过静态容器将该实例存储在内存中,直到主动从内存中移除该实例或者删除该文件。 3. 获取Preferences实例后,可以借助Preferences类的函数,从Preferences实例中读取数据或者将数据写入Preferences实例,通过flush将Preferences实例持久化。 -**图 2** 首选项运行机制 - -![](figures/zh-cn_首选项运行机制.png) - -## 目录 - -``` -//foundation/distributeddatamgr/appdatamgr/preferences -├── frameworks # 框架层代码 -│ └── js # JS API的实现 -│ │ └── napi # napi代码实现 -│ └── native # 内部接口实现 -├── interfaces # 接口代码 -│ └── inner_api # 内部接口声明 -└── test # 测试用例 - ├── js # js用例 - └── native # C++用例 -``` -## 首选项(Preferences) - 以下是几个基本概念: - **Key-Value数据库** @@ -52,8 +24,25 @@ 用户经常访问和使用的数据。 +**图 2** 首选项运行机制 -### 约束 +![](figures/zh-cn_首选项运行机制.png) + +## 目录 + +``` +//foundation/distributeddatamgr/appdatamgr/preferences +├── frameworks # 框架层代码 +│ └── js # JS API的实现 +│ │ └── napi # napi代码实现 +│ └── native # 内部接口实现 +├── interfaces # 接口代码 +│ └── inner_api # 内部接口声明 +└── test # 测试用例 + ├── js # js用例 + └── native # C++用例 +``` +## 约束 Key键为String类型,要求非空且长度不超过80个字符。 @@ -61,7 +50,7 @@ Key键为String类型,要求非空且长度不超过80个字符。 存储的数据量应该是轻量级的,建议存储的数据不超过一万条,否则会在内存方面产生较大的开销。 -## 相关仓 +## 相关仓 - [分布式数据管理子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%88%86%E5%B8%83%E5%BC%8F%E6%95%B0%E6%8D%AE%E7%AE%A1%E7%90%86%E5%AD%90%E7%B3%BB%E7%BB%9F.md) diff --git a/relational_store/README_zh.md b/relational_store/README_zh.md index a81542aa..91d54b48 100644 --- a/relational_store/README_zh.md +++ b/relational_store/README_zh.md @@ -1,27 +1,32 @@ -# 关系型数据库(Relational Database,RDB) +# 关系型数据库(Relational Database,RDB) -- [本地数据管理组件](../README_zh.md) -- [简介](#section11660541593) - - [关系型数据库(RDB)](#section1589234172717) -- [目录](#section161941989596) -- [关系型数据库(RDB)](#section101010894114) - - [约束](#section18387142613414) -- [相关仓](#section1371113476307) +## [本地数据管理组件](../README_zh.md) -## 简介 +## 简介 **关系型数据库(Relational Database,RDB)** 是一种基于关系模型来管理数据的数据库。OpenHarmony关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制。 - -### 关系型数据库(RDB) - + OpenHarmony关系型数据库底层使用SQLite作为持久化存储引擎,支持SQLite具有的所有数据库特性,包括但不限于事务、索引、视图、触发器、外键、参数化查询和预编译SQL语句。 -**图 1** 关系型数据库运作机制 +以下是几个基本概念: +- **关系型数据库** + + 创建在关系模型基础上的数据库,以行和列的形式存储数据。 + +- **结果集** + + 指用户查询之后的结果集合,可以对数据进行访问。结果集提供了灵活的数据访问方式,可以更方便的拿到用户想要的数据。 + +- **SQLite数据库** + + 一款轻量级的数据库,是遵守ACID的关系型数据库组件。它是一个开源的项目。 + +**图 1** 关系型数据库运作机制 ![](figures/zh-cn_关系型数据库运作机制.png) -## 目录 +## 目录 ``` //foundation/distributeddatamgr/appdatamgr/relational_store/ @@ -36,30 +41,13 @@ OpenHarmony关系型数据库底层使用SQLite作为持久化存储引擎,支 └── native # C++用例 ``` -## 关系型数据库(RDB) - -以下是几个基本概念: - -- **关系型数据库** - - 创建在关系模型基础上的数据库,以行和列的形式存储数据。 - -- **结果集** - - 指用户查询之后的结果集合,可以对数据进行访问。结果集提供了灵活的数据访问方式,可以更方便的拿到用户想要的数据。 - -- **SQLite数据库** - - 一款轻量级的数据库,是遵守ACID的关系型数据库组件。它是一个开源的项目。 - - -### 约束 +## 约束 数据库中连接池的最大数量是4个,用以管理用户的读写操作。 为保证数据的准确性,数据库同一时间只能支持一个写操作。 -## 相关仓 +## 相关仓 - [分布式数据管理子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%88%86%E5%B8%83%E5%BC%8F%E6%95%B0%E6%8D%AE%E7%AE%A1%E7%90%86%E5%AD%90%E7%B3%BB%E7%BB%9F.md)