《NOSQL数据库技术》课件_2020-第4章-文档数据库技术.pptxVIP

  • 1
  • 0
  • 约3.15千字
  • 约 54页
  • 2025-10-21 发布于广东
  • 举报

《NOSQL数据库技术》课件_2020-第4章-文档数据库技术.pptx

目录;2;4.1概述;4.1概述——著名文档数据库;4.1概述——著名文档数据库;4.1概述;4.1概述;8;目录;4.2文档数据库存储逻辑架构;XML文档示例:;4.2.1JSON与BSON;JSON建构基于两种结构:

键值对集合:在键值对集合结构中,每一个数据元素拥有一个键(名称)与一个值。值可以包含数字,字符串等常用结构,或嵌套JSON对象和数组。

数组:在数组中的每一个元素不包含元素名,其值可以为数字,字符串等常用结构,或者嵌套JSON对象和数组。

对象是一个无序的“键值对”集合

以“{”(左大括号)开始,“}”(右大括号)结束。每一个元素名后跟一个“:”(冒号);而元素之间使用“,”(逗号)分隔;

通过obj.key的形式来获取对应的Value;JSON数组是值的有序集合,以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔;

值可以为由双引号包裹的字符串,数值,对象,数组,true,false,null

数据类型相对比较简单;BSON(BinarySerializedDocumentFormat)之名缘于JSON,含义为二进制JSON

BSON是由10gen开发的,主要被用作MongoDB数据库中的数据存储和网络传输格式。

BSON相比JSON而言的优点

在数据访问性能上有很大的提升,BSON将每一个元素的长度存在元素的头部信息中,这样基于读取到的元素长度经过计算就能直接定位到指定的内容上进行读取,数据访问效率更高。

BSON相比JSON数据类型更丰富,如Date和BinData类型。

操作更简单;BSON数据类型:每种类型都有一个数字代号和英文别称

$type运算可以返回field的类型;BSON数据类型:每种类型都有一个数字代号和英文别称;BSON类型示例

字符串

整数

浮点数

日期

数组

嵌套文档

文档数组

;MongoDB数据存储模型逻辑架构中的关键概念有文档、集合、数据库,与关系型数据库MySQL中的行、表、数据库的对应关系

在文档数据库中,数据库包含集合,集合包含文档,每个文档结构可嵌套,文档可表示为树状层次结构。

;1.数据库(Databases)

在将文档加入集合之前,MongoDB需要将集合加到数据库中,一个MongoDB主机上通常会有多个数据库

数据库是用名称作为唯一标识的,可以用几乎任何UTF8字符来命名,数据库名称一般都是小写字母,名称字符长度不能多于64位,不得包含空格、.、$、/、\、\0等特殊字符。

MongoDB有以下4个保留的默认创建的数据库。

admin:这个是根级数据库,从权限的角度来看,是系统管理员级操作的数据库。

local:这个数据库不会被复制,它所存储的任何collections只能在各自的服务器实例上,可以用来存储限于本地单台服务器访问的任意集合。

config:在分布式分片设置时,将用于存储配置相关的信息。

test:默认连接的数据库。

;2.集合(Collection)

集合相当于一个没有固定模式的表。

一个集合就是多个文档的组合。集合是模式自由的,不受类似关系数据库中的关系范式思想的束缚

同一个集合中可以有多种结构的文档。

每个集合是用名字来唯一标识,名称可以是任何UTF8字符

命名限制:system.是作为系统预留的,所以不能以system.作为集合名称前缀,比如system.users保存数据库的用户信息;用户创建集合时也不能用“$”这个保留字。;3.文档(Document)

一个文档相当于RDB中的一行。每个文档是一个结构类似于JSON对象的BSON对象。

每一个文档都有一个特殊的Key,即“_id”,用来作为文档在集合中的唯一标识,文档中各个Key关联着Value。

一个文档包含很多域(field),灵活可变但不能重复

文档中默认会增加名称_id为一个标识字段,用作主键,其值唯一、不可变

文档中的键/值对是有序的,不同序则是不同文档。

命名规范

区分大小写

UTF-8字符,不能包含\0字符(空字符)

.和$有特殊含义,需要避免;存储嵌套结构文档示例如下,其中address为文档类型,scores类型为文档数组类型。通过文档数组可实现一对多关系存储。

{_id:ObjectId(xxxxxxx),

name:Chenwu,

age:21,

address:{

city:Beijing,

country:china,

code:100876

},

scores:[

{name:english,grade:5.0},

{name:chinese,grade:4.0}

]

};集合在主键设计

文档评论(0)

1亿VIP精品文档

相关文档