01-MongoDb 数据库介绍、安装、使用

365 阅读8分钟

1、为什么使用数据库

在开发中,很多时候需要存在网站的业务数据。这些业务数据都是需要长期存储起来,方便下次的使用。

  1. 注册时候的用户名和密码信息。下次登录的时候进行校验
  2. 购买商品后的订单信息。方便日后查看,日后退款
  3. 一般的评论信息。方便日后查看
  4. 评论,回复。方便日后查看

1.1、数据库的分类:

  1. 广义数据库:指的是能够提供存储的工具都可以叫做数据库。

    • 文本文件 .txt .json
    • excel
    • access
  2. 狭义数据库:一般是指的是非常专业的软件,可以提供存储的同时,还可以提供非常强大(按条件检索)的检索能力。

    1. 关系型数据库
      1. MySQL web领域 免费的,开源
      2. sqlserver
      3. Oracle web领域较少 商业领域,公司内部,银行;企业内部 收费的,商业
      4. db2
      5. ....
    2. 非关系型数据库
      1. memcache 内存缓存系统
      2. redis web
      3. mongodb 存储能力,检索
      4. ....
  3. 数据库和文件的主要区别

    • 数据库和文件都提供了存储的能
    • 数据库有数据库表、行和列的概念,让我们操作操作数据更方便,提供了强大的检索能力
    • 数据库提供了非常方便的接口,可以让 nodejs、php java go很方便的实现增删改查功能

2、关系型数据库

2.2、基本概念

  1. 什么是关系型 数据库

    答:关系型数据库用于来体现我们现实生活中的实体之间的关系的。实体是通过二维表进行描述的。然后表的结构也是固定,由行和列构成的。并且每行的记录的结构一致,每列的数据的类型也是一致的。并且表和表之间是存在关系的,我们把他们叫做实体关系,简写E_R(Entity_Relationship)有专门的软件可以描述这种实体关系,一般我们称之为 E_R 建模

  2. 关系型数据库的特点

    1. 数据表

    2. 数据库

    3. 操作的语言: sql ( struct query language) 结构化的查询语言,属于第四代编程语言,形如

      select name, age, address from userTable where id = 1;
      
  3. 关系型数据库如何使用?

    1. 安装关系型数据库的软件
    2. 这种软件都是 c/s 架构
    3. 启动服务器端
    4. 通过客户端连接服务器端
    5. 在客户端发生 sql 语句
    6. 服务端响应sql操作,然后把响应的结果返回给客户端
    7. 客户端渲染响应的结果
  4. 什么是 实体?

    答:现实生活中的任何东西都可以被叫做实体(entity)。

  5. 如何去描述一个实体?

    答:一般来说我们对一类实体进行高度的抽象,得出其具有的共同的特征,当把这些特征提取出来后,我们会使用一个由 构成的二维结构来组织我们的数据,由 行 和 列 构成的二维结构我们称之为 数据表,由多个 数据表 构成的一个集合我们叫做数据库。现实生活中,实体和实体之间是存在关系的,我们也可以这种关系映射到 数据表 和 数据表 之间。实体之间常见的关系有三种:

    • 一对一的关系:人和身份证
    • 一对多的关系:人和房产
    • 多对多的关系:人和朋友

    人员表

    id name age weight eduction height
    1 张三 12 120 本科 170
    2 张三 12 120 大专 175
    3 七八 23 120 中专 183

    身份证表

    id card_id address date ....
    1 42102218888000x 广东省广州市xxx xxx-xxx
    2 421022188118000x 广东省广州市xxx xxx-xxx
    3 42102214588000x 广东省广州市xxx xxx-xxxx

    房产表

    id house_id address belogoTo ...
    1 xxx 广东省广州市天河区xxx路xxx号
    2 xxx 广东省广州市天河区xxx路xxx号
    3

    朋友表

    id name age tel xxx
    1 马武 12 xxxx
    2 七八1 23 xxxx
    • 自增数据字段一定是主键
    • 但是主键不一定自增;但是主键主键唯一

    体验一下MySQL的基本使用,不要求掌握

    1. show databases; 查看这个MySQL软件管理的数据库有哪些

    2. create database dbName dbName 是用户自定义的数据库的名称

    3. create table tableName ( id int , name varchar(100) ); 创建数据表

    4. use dbName 切换到某个数据库

    5. show tables; 查看数据库下的数据表

    6. desc dbName; 查看表的结果

    7. insert into dbName values(1, 'andy');

    8. select * from dbName; 查看数据表里面的记录

    9. select name, id from dbName; 获取记录的指定字段

3、 非关系型数据库 (NoSql) 介绍

3.1 NoSQL介绍

由于互联网的迅速发展,云计算与 Web2.0。这样大量的交互给数据库提出了更高的性能要 求,传统的关系型数据库,虽然具备良好的事物管理,但在处理 大量数据的应用时很难在性能上满足设计要求。 NoSQL就是主要为了解决当下大量高并发高要 求的数据库应用需求,关系型数据库具有严格的参照性,一致性,可用性,原子性,隔离性等特点,因此会产生一些例如表连接等操作,这样会大大降低系统的性能。而在当前很多应用场景下对性能的要求远远强于传统数据库关注的点,NoSQL就是为了解决大规模数据与多样数据种类等问题,尤其是其中大数据的相关问题。

NoSQL(NoSQL = Not Only SQL ),意即“SQL,它指的是非关系型的数据库,是以 key-value 形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说遵循 SQL标准、ACID属性、表结构等等。NoSQL最早被提出是在 20世纪 80年代,在当时更多是强调的是与关系型数据库区别对待,最近这些年被提及的更多是强调协助解决大数据等相关问题。NoSQL在大数据时代有自己的意义。

3.2 NoSQL应用情况介绍

国内的互联网蓬勃发展,不仅涌现出 BAT(百度,阿里巴巴,腾讯)之类的巨头,也带动了整个互联 网行业的发展,大量的创业型公司如春笋般的涌出,在国家层面也提出了“互联网+”和“万众创业”的口号。更多传统的行业也开始拥抱互联网。但是无论是做所谓的生态平台还是传统业务的转型,涉及到的业务是多种多样的。这个时候企业架构师对于应用系统的核心——数据库管理不仅有传统的SQL选项也有了,NoSQL这种适合特定场景需求的选项。

NoSQL数据库在以下的这几种情况下比较适用:

  • 1、数据模型比较简单
  • 2、需要灵活性更强的 IT系统
  • 3、对数据库性能要求较高
  • 4、不需要高度的数据一致性
  • 5、对于给定 key,比较容易映射复杂值的环境

3.3 NoSQL发展现状

  • 国外: Google的 BigTable 和 Amazon的 Dynamo 使用的就是 NoSQL型数据库。

  • 国内:百度、阿里、腾讯、新浪微博、豆瓣社区等..

4、什么时候建议使用 NoSql

  • 1、对数据库高并发读写的需求
  • 2、对海量数据的高效率存储和访问的需求
  • 3、对数据库的高可扩展性和高可用性的需求

5、NoSql和传统数据库简单对比

  • 非结构型数据库。没有行、列的概念。用JSON来存储数据。
  • 集合就相当于“表”,文档就相当于“记录”。

6、NoSql种类

nosql-database.org/

7、MongoDb介绍

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的 bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。

8、 MongoDb安装

  • 官网:www.mongodb.com/

  • 手册:docs.mongodb.org/manual/

    1. 双击 MongoDB软件下一步下一步安装
    1. 安装完成配置环境变量 C:\Program Files\MongoDB\Server\3.0\bin 加入到 path环境变量中
  • 3.打开 cmd输入:mongo命令看看是否成功

9、客户端管理 MongoDb 服务

  1. 新建一个存放数据库的文件夹,注意:不能有中文和空格,建议不要放在 C盘
  2. 启动 MongoDb服务,服务端:mongod.exe 开启数据库服务
    //--dbpath就是选择数据库文档所在的文件夹。也就是说,mongoDB中
    // 真的有物理文件,对应一个个数据库。
    // 注意:一定要保持,这个 CMD 不能动了,不能关,不能   ctrl+c。
    
    mongod --dbpath C:\mongodb
    
  3. 客户端输入 mongo 命令连接服务端
    mongo [dbName] ip:port