7.4-文档型数据库-1.pptx
7.4 文档型数据库1 数据库原理及应用电子科技大学-张凤荔数据库系统原理与开发文档数据库的基本概念MongoDB基本概念 MongoDB数据模型 MongoDB数据库【本节学习目标】2 数据库原理及应用电子科技大学-张凤荔数据库系统原理与开发一、文档数据库的基本概念文档是处理信息的基本单位。一文档可以很长、很复杂、可以无结构一个文档对包含的数据类型和内容进行“自我描述”。XML文档、HTML文档和JSON 文档嵌入式文档-文档存储模型支持嵌套结构每个文档的ID就是它唯一的键,ID在一个数据库“集合”中是唯一的,检索排序的ID性能好。3 数据库原理及应用电子科技大学-张凤荔数据库系统原理与开发二、MongoDB数据库MongoDB 是基于分布式文件存储的开源数据库系统。将数据存储为一个文档,数据结构由键值对组成,字段值可以包含其他文档,数组及文档数组。name:Wangxin,status:student groups:course,experiment每一行的存储格式为 field:value。每个文档可以匹配所表示实体的数据域。数据关系有两种:引用和嵌入文档。写操作在文档级别是原子性的,没有单个写操作对超过一个文档或者超过一个集合是原子性的。4 数据库原理及应用电子科技大学-张凤荔数据库系统原理与开发MongDB的特点模式自由;支持动态查询;支持完全索引,包含内部对象;支持查询;支持复制和故障恢复;使用高效的二进制数据存储,包括大型对象(如视频等);自动处理碎片,以支持云计算层次的扩展性;支持多种语言;文件存储格式为BSON(一种JSON的扩展);通过网络访问。5 数据库原理及应用电子科技大学-张凤荔数据库系统原理与开发三、mongoDB的数据模型基本的概念是文档、集合、数据库。文档是MongoDB中数据的基本单元集合可以被看作没有模式的表,每个实例都可容纳多个独立数据库,每个数据库都有自己的集合和权限。层次关系:文档集合-数据库。6 数据库原理及应用电子科技大学-张凤荔数据库系统原理与开发1.文档多个键及其关联的值有序地放置在一起就是文档。文档是一组键值(key-value)对(即BSON)。文档不需要设置相同的字段,相同的字段不需要相同的数据类型。一个文档包含一组字段,每一个字段都是一个key/value对,其中key必须为字符串类型,value包含string,int,float,timestamp,binary 等类型,或一个文档,或数组类型7 数据库原理及应用电子科技大学-张凤荔数据库系统原理与开发文档中值的数据类型1)String字符串。2)Integer整型数值。3)Boolean布尔值。4)Double双精度浮点值。5)Min/Max keys BSON元素的最低值和最高值相对比。6)Array数组或列表或多个值存储为一个键。7)Timestamp时间戳。8)Object用于内嵌文档。9)Null 用于创建空值。10)Symbol符号,基本上等同于字符串类型,11)Date日期时间12)Object ID 对象 ID,类似唯一主键,用来生成和排序,13)Binary Data二进制数据。14)Code代码类型。用于在文档中存储 JavaScript 代码。15)Regular expression正则表达式类型。8 数据库原理及应用电子科技大学-张凤荔数据库系统原理与开发单值文档、多值文档单键值文档“userName”:“BBS11”,多键值文档 _id:ObjectId(580dfe72729),name:test,add:china,文档中的键/值对是有序的。文档中的值可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。MongoDB文档不能有重复的键。文档的键是字符串。文档中的值不仅可以是字符串,也可以是其他数据类型(或者嵌入其他文档)9 数据库原理及应用电子科技大学-张凤荔数据库系统原理与开发2.集合collection把一组相关的文档放到一起组成了集合集合是模式自由的,一个集合里面的文档可以是各式各样的。例如:下面的两个文档可以出现在同一集合中。“name”:”arthur”“name”:”arthur”,”sex”:”male”MongoDB提供了一些特殊功能的集合,例如:capped collection、system.indexes、system.namespaces等。10 数据库原理及应用电子科技大学-张凤荔数据库系统原理与开发元数据的集合collection元数据是定义数据的数据,数据库的信息是存储在集合中。名字空间.system.*是包含多种系统信息的特殊集合(Collection),dbname.system.namespaces数据库中所有名字空间;dbname.system.indexes所有索引;dbname.system.profile数据库概要(profile)信息dbname.system.users数据库的用户;dbname.local.sources复制对端(slave)的服务器信息和状态。11 数据库原理及应用电子科技大学-张凤荔数据库系统原理与开发3.数据库database多个文档组成集合,数据库由多个集合组成MongoDB实例可承载多个数据库,互相之间彼此独立开发中通常将一个应用(或同一种业务类型)的所有数据存放到同一个数据库中;磁盘上,MongoDB将不同数据库存放在不同文件中。一个MongoDB 实例可以包含一组数据库,一个数据库可以包含一组集合(Collection集合),一个集合可以包含一组文档。一个mongodb中可以建立多个数据库。系统数据库包括:admin、local、config等12 数据库原理及应用电子科技大学-张凤荔数据库系统原理与开发本节学习结束!