zoukankan      html  css  js  c++  java
  • sql 和 nosql 说明

    在传统的数据库中,

    数据库的格式是由表(table)、行(row)、字段(field)组成的。表有固定的结构,规定了
    每行有哪些字段,在创建时被定义,之后修改很困难。行的格式是相同的,由若干个固定的
    字段组成。每个表可能有若干个字段作为索引(index),这其中有的是主键(primary key),
    用于约束表中的数据,还有唯一键(unique key),确保字段中不存放重复数据。表和表之间
    可能还有相互的约束,称为外键(foreign key)。对数据库的每次查询都要以行为单位,复杂
    的查询包括嵌套查询、连接查询和交叉表查询。
    拥有这些功能的数据库被称为关系型数据库,关系型数据库通常使用一种叫做 SQL
    (Structured Query Language)的查询语言作为接口,因此又称为 SQL 数据库。典型的 SQL 数
    据库有 MySQL、Oracle、Microsoft SQL Server、PostgreSQL、SQLite,等等。


    NoSQL 是 1998 年被提出的,它曾经是一个轻量、开源、不提供SQL功能的关系数据库。
    但现在 NoSQL 被认为是 Not Only SQL 的简称,主要指非关系型、分布式、不提供 ACID①的
    数据库系统。正如它的名称所暗示的,NoSQL 设计初衷并不是为了取代 SQL 数据库的,而
    是作为一个补充,它和 SQL 数据库有着各自不同的适应领域。NoSQL 不像 SQL 数据库一样
    都有着统一的架构和接口,不同的 NoSQL 数据库系统从里到外可能完全不同。

    2. MongoDB
    MongoDB 是一个对象数据库,它没有表、行等概念,也没有固定的模式和结构,所有
    的数据以文档的形式存储。所谓文档就是一个关联数组式的对象,它的内部由属性组成,一
    个属性对应的值可能是一个数、字符串、日期、数组,甚至是一个嵌套的文档。

    下面是一个
    MongoDB 文档的示例:
    { "_id" : ObjectId( "4f7fe8432b4a1077a7c551e8" ),
    "uid" : 2004,
    "username" : "byvoid",
    "net9" : { "nickname" : "BYVoid",
    "surname" : "Kuo",
    "givenname" : "Carbo",
    "fullname" : "Carbo Kuo",
    "emails" : [ "byvoid@byvoid.com", "byvoid.kcp@gmail.com" ],
    "website" : "http://www.byvoid.com",
    "address" : "Zijing 2#, Tsinghua University" }
    }
    上面文档中 uid 是一个整数属性,username 是字符串属性,_id 是文档对象的标识
    符,格式为特定的 ObjectId。net9 是一个嵌套的文档,其内部结构与一般文档无异。从
    格式来看文档好像 JSON,没错,MongoDB 的数据格式就是 JSON ②,因此与 JavaScript 的

    ① ACID 是数据库系统中事务(transaction)所必须具备的四个特性,即原子性(atomicity)、一致性(consistency)、
    隔离性(isolation)和持久性(durability)。
    ② 准确地说,MongoDB 的数据格式是 BSON (Binary JSON),它是 JSON 的一个扩展。

    亲和性很强。在 Mongodb 中对数据的操作都是以文档为单位的,当然我们也可以修改文档
    的部分属性。对于查询操作,我们只需要指定文档的任何一个属性,就可在数据库中将满足
    条件的所有文档筛选出来。为了加快查询,MongoDB 也对文档实现了索引,这一点和 SQL 数
    据库一样。

  • 相关阅读:
    PAT 乙级真题 1013.组个最小数
    PAT 乙级真题 1012.D进制的A+B
    PAT 乙级真题 1011.个位数统计
    PAT 乙级真题 1010.月饼
    PAT 乙级真题 1009.1019.数字黑洞
    PAT 乙级真题 1008.锤子剪刀布
    PAT 乙级真题 1007.A除以B
    PAT 乙级真题 1006.1016.部分A+B
    C++自定义sort函数
    VS2017如何使用scanf函数
  • 原文地址:https://www.cnblogs.com/lizihong/p/4075567.html
Copyright © 2011-2022 走看看