精华内容
下载资源
问答
  • 桌面型数据库

    千次阅读 2010-11-13 14:40:00
    今天要做一个桌面工具,要用本地数据库。 而且是delphi开发   这个数据库的选型就成了问题, 几经上网查阅, 选定sqllite, 原因有2, 使用体积小, 和使用用户貌似比较多     ...

    今天要做一个桌面工具,要用本地数据库。 而且是delphi开发

     

    这个数据库的选型就成了问题, 几经上网查阅, 选定sqllite, 原因有2, 使用体积小, 和使用用户貌似比较多

     

     

    这里是他的老家:

     

    http://www.sqlite.org/

     

    另外一个工具, 不可缺少:

     

    http://www.itwriting.com/blog/?page_id=659

     

     

     

    展开全文
  • 什么是数据库

    万次阅读 多人点赞 2018-07-27 16:16:03
    到底什么是数据库呢?我们可以从其名字来说,数据库的意思是数据的集合,如果这样来理解的话,在电脑上我们把照片放到同一个文件夹下,那么这个文件夹就是一个照片数据库;把文档资料放到一个文件夹,那么这个文件夹...

    生活中常用数据库

    数据库,对于初学者来说会有一定迷惑。到底什么是数据库呢?我们可以从其名字来说,数据库的意思是数据的集合,如果这样来理解的话,在电脑上我们把照片放到同一个文件夹下,那么这个文件夹就是一个照片数据库;把文档资料放到一个文件夹,那么这个文件夹也是一个数据库。这样理解并没错,这种数据库是我们生活中常见的数据库。

    计算机中的数据库

    在计算机编程之中,数据库的定义和生活中有一定的区别。同样是数据的集合这没有变,但是多了一些条件限定,每一种类型数据集合里面的数据都有固定的内容结构。

    1. 数据库中的数据都有一定规律结构,相同类型的数据放在一起,不同类型的数据之间相互隔离
    2. 数据库由统一的规则来读写,有SQL语言专门用来读写数据库,一般都是用程序来读写数据库的内容。
      这里写图片描述

    每一个表里面的数据的结构都是一样的,这类似我们常用的Excel表格,在标题栏固定后,下面的数据都是按照标题栏的结构来写入的。
    这里写图片描述

    常用的数据库

    常用的数据库有Access、Oracle、Mysql、SQL Server、SQLite等。那么用户想要选择一个数据库,什么样的数据库才是最能满足用户自身需求的呢?

    1. Access数据库
      这款数据库是由微软发布的,是一款关联式数据序管理型系统的数据库,通常是被用来开发Web应用程序这些应用程序都利用Asp技术在IIs上运行,但是由于Access是小型的数据库,在很多的使用上都有着局限性,而且如果过多的数据库访问量还会造成数据库的性能极具下降。
    2. MySQL数据库
      这款数据库是一款小型数据库管理系统的数据库,其开发公司是瑞典MySQLAB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
    3. SqlServer数据库
      这款数据库的特点是真正的客户/服务器体系结构,并且出十是图形化的用户界面,使数据库管理方式更加直观和简单。它还提供了丰富的编程接口工具为用户进行程序设计提供了更大的选择余。在使用上也是非常广泛的。
    4. Oracle数据库
      这是一款比较典型的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。
    5. SQLite数据库
      这是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。这款数据库的运行处理速度比Mysql、PostgreSQL这两款都要快。

    访问数据库的方式

    常用的数据库有DB2 、Oracle、Mysql、SQL Server、SQLite等。这些数据库的使用都需要安装相应的软件,启动数据库后我们才可以访问数据库里面的内容。而访问其内容的方式并不是用鼠标直接打开数据库文件查看,一般都是用数据库管理工具或者编写程序来访问数据库。当然,数据库和访问数据库可以不在同一个位置,也就是说数据库在北京,你在深圳写一段代码可以去访问它。
    这里写图片描述

    数据库管理工具

    数据库中的表在设计设计阶段一般是用管理工具来设计的。用代码去设计数据的过程很繁琐而且很容易出错。对于初学者,推荐使用相应的数据库管理工具,简洁形象,可以更快的掌握各个知识要点。下面是一些常用的数据库管理工具:

    1. phpMyAdmin
      phpMyAdmin是最常用的MySQL维护工具,是一个用PHP开发的基于Web方式架构在网站主机上的MySQL管理工具,支持中文,管理数据库非常方便。不足之处在于对大数据库的备份和恢复不方便。
      这里写图片描述
    2. MySQLDumper
      MySQLDumper使用PHP开发的MySQL数据库备份恢复程序,解决了使用PHP进行大数据库备份和恢复的问题,数百兆的数据库都可以方便的备份恢复,不用担心网速太慢导致中间中断的问题,非常方便易用。这个软件是德国人开发的,还没有中文语言包。
      这里写图片描述
    3. Navicat
      Navicat是一个桌面版MySQL数据库管理和开发工具。和微软SQLServer的管理器很像,易学易用。Navicat使用图形化的用户界面,可以让用户使用和管理更为轻松。支持中文,有免费版本提供。这里写图片描述
    4. MySQL Workbench
      为数据库管理员、程序开发者和系统规划师提供可视化设计、模型建立、以及数据库管理功能。它包含了用于创建复杂的数据建模ER模型,正向和逆向数据库工程,也可以用于执行通常需要花费大量时间和需要的难以变更和管理的文档任务。MySQL工作台可在Windows,Linux和Mac上使用。这里写图片描述
    展开全文
  • 2.什么是关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中...

    1.数据库

    按照早期的数据库理论,比较流行的数据库模型有三种,分别为层次式数据库、网状数据库和关系型数据库。而在当今的互联网中,最常见的数据库模型主要是两种,即SQL关系型数据库和NoSQL非关系型数据库。

    2.什么是关系型数据库

    关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组。

    3.常用名词介绍

    3.1. 数据库(Database,简称DB)是按照数据结构来组织、存储和管理数据的仓库;

    3.2. 数据库管理系统(Database Managerment System,简称DBMS):管理数据库的软件;

    3.3. SQL可分为:

    • 3.3.1 数据定义语言(DDL):Data Defintion Language;
        数据定义语言(DDL):Data Defintion Language
        · 用于建立、修改、删除数据对象;
    
        · 包括:
        - CREATE:创建表或其他对象结构;
        - ALTER:修改表或其他对象的结构;
        - DROP:删除表或其他对象结构;
        - TRUNCATE:删除表数据,保留表结构;
    
    • 3.3.3 事务控制语言(TCL): Transaction Control Language;
        数据操作语言(DML):Data Manipulation Language
        · 用于改变数据表中的数据;
        · 和事务相关,执行完成后需要经过事务控制语句提交后才真正的将改变应  用到数据库中;
    
        · 包括:    
         - INSERT:将数据插入到数据库中;
         - UPDATE:更新数据表中已存在的数据;
         - DELETE:删除数据表中的数据;
    
    • 3.3.4 数据查询语句(DQL): Data Query Language;
        数据查询语句(DQL): Data Query Language
        · 用来查询所需要的数据;
        · SELECT语句;
    
    • 3.3.5 数据控制语言(DCL):Data Control Language;
        数据控制语言(DCL):Data Control Language
        · 用于执行权限的授予和回收操作;
    
        · 包括:
          - GRANT:授予,用于给用户或角色授予权限;
          - REVOKE:用于回收用户或角色已有的权限;
          - CREATE USER:创建用户;
    
    • 3.3.6 数据操作语言(DML):Data Manipulation Language;

    • 3.3.7 事务控制语言(TCL): Transaction Control Language;

        事务控制语言(TCL): Transaction Control Language
        · 用来维护数据一致性的语句
    
        · 包括:
          - COMMIT:提交,确认已经进行的数据改变;
          - ROLLBACK:回滚,取消已经进行的数据改变;
          - SAVEPOINT:保存点,使当前事务可以回退到指定的保存点,便于取消   部分改变;
    

    3.4 ACID事务

    • 3.4.1 原子性(Atomicity)
      事务必须是一个自动工作的单元,要么全部执行,要么全部不执行。
    • 3.4.2 一致性(Consistent)
      事务结束的时候,所有的内部数据都是正确的。
    • 3.4.3 隔离性(Isolation)
      并发多个事务时,各个事务不干涉内部数据,处理的都是另外一个事务处理之前或之后的数据。
    • 3.4.4 持久性(Durability)
      事务提交之后,数据是永久性的,不可再回滚。

    4.主流关系型数据库

    先来一下排名,此排名截至到2020年10月
    在这里插入图片描述

    如果需要关注实时排名可以关注:https://db-engines.com/en/ranking

    4.1 Oracle 数据库

    4.1.1 介绍

    1. Oracle是著名的Oracle(甲骨文)公司的数据库产品;
    2. Oracle是世界上第一个商品化的关系型数据库管理系统;
    3. Oracle采用标准SQL(结构化查询语句),支持多种数据类型,提供面向对象的数据支持,具有第四代语言开发工具;支持UNIX、WINDOWS、OS/2等多种平台;

    4.Oracle19c和20c的新特性:https://www.modb.pro/doc/1291?leiZH

    4.1.2 优点

    1. Oracle 能在所有主流平台上运行(包括 windows)完全支持所有工业标准采用完全开放策略使客户选择适合解决方案对开发商全力支持。
    2. Oracle 并行服务器通过使组结点共享同簇工作来扩展windownt能力提供高用性和高伸缩性簇解决方案windowsNT能满足需要用户把数据库移UNIXOracle并行服务器对各种UNIX平台集群机制都有着相当高集成度。
    3. 获得最高认证级别的ISO标准认证。
    4. Oracle 性能高 保持开放平台下TPC-D和TPC-C世界记录。
    5. Oracle 多层次网络计算支持多种工业标准用ODBC、JDBC、OCI等网络客户连接。
    6. Oracle 长时间开发经验完全向下兼容得广泛应用地风险低。

    4.1.3 缺点

    1. 对硬件的要求很高。
    2. 价格比较昂贵。
    3. 管理维护麻烦一些。
    4. 操作比较复杂,需要技术含量较高。


    4.2 MySQL数据库概述

    4.2.1 介绍

    1. MySQL是开放源码的小型关系型数据库管理系统,广泛应用在中小型网站中;
    2. 总体拥有成本低,规模较Oracle和DB2小
    3. 2008年1月16日,Sun收购了MySQL;2009年4月20日,SUN被Oracle公司收购了,所以现在MySQL是属于Oracle的;

    4.2.2 优点

    1. 体积小、速度快、总体拥有成本低,开源,提供的接口支持多种语言连接操作。
    2. 支持多种操作系统。
    3. MySQL 的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的MySQL 能很容易充分利用CPU。
    4. MySQL 有一个非常灵活而且安全的权限和口令系统。当客户与MySQL 服务器连接时,他们之间所有的口令传送被加密,而且MySQL 支持主机认证。
    5. MySQL 能够提供很多不同的使用者界面,包括命令行客户端操作,网页浏览器,以及各式各样的程序语言界面,例如 C++,Perl,Java,PHP,以及Python。你可以使用事先包装好的客户端,或者干脆自己写一个合适的应用程序。MySQL可用于 Unix,Windows,以及OS/2等平台,因此它可以用在个人电脑或者是服务器上。

    4.2.3 缺点

    1. 不支持热备份。
    2. MySQL不支持自定义数据类型
    3. MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变。
    4. MySQL对存储过程和触发器支持不够良好。
    5. 尽管 MySQL 理论上仍是开源产品,也有人抱怨它诞生之后更新缓慢。然而,应该注意到有一些基于 MySQL 并完整集成的数据库(如 MariaDB),在标准的 MySQL 基础上带来了额外价值。
    6. MySQL对XML支持不够良好

    4.2.3 何时使用 ?

    1. 分布式操作:
      当你需要的比SQLite可以提供的更多时,把MySQL包括进你的部署栈,就像任何一个独立的数据库服务器,会带来大量的操作自由和一些先进的功能。
    2. 高安全性:
      MySQL的安全功能,用一种简单的方式为数据访问(和使用)提供了可靠的保护。
    3. Web网站 和 Web应用:
      绝大多数的网站(和Web应用程序)可以忽视约束性地简单工作在MySQL上。这种灵活的和可扩展的工具是易于使用和易于管理的——这被证明非常有助于长期运行。
    4. 定制解决方案:

    如果你工作在一个高度量身定制的解决方案上,MySQL能够很容易地尾随和执行你的规则,这要感谢其丰富的配置设置和操作模式。



    4.3 SQL Server数据库概述

    4.3.1 介绍

    1. MicrosoftSQL Server是微软的产品,运行在Windows NT服务器上;
      优点

    4.3.2 优点

    1. 易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等;
    2. 为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。 作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServer是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言 (XML)的核心支持以及在Internet上和防火墙外进行查询的能力;

    4.3.3 缺点

    1. SQL Server 只能windows上运行,没有丝毫开放性操作系统,系统稳定对数据库十分重要,WindowsX系列产品偏重于桌面应用,NT server只适合小型企业,而且windows平台可靠性、安全性和伸缩性非常有限。
    2. SQL server 并行实施和共存模型并成熟难处理日益增多用户数和数据卷伸缩性有限;
    3. 没有获得任何安全证书。
    4. SQL Server 多用户时性能佳。


    4.4 PostgreSql数据库

    4.3.1 介绍

    PostgreSQL是一个自由的对象-关系数据库服务器(数据库管理系统),支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引。免费使用、修改、和分发 PostgreSQL。

    4.4.2 优点

    1. PostgreSQL 是一个开源的,免费的,同时非常强大的关系型数据管理系统。
    2. PostgreSQL 背后有热忱而经验丰富的社区,可以通过知识库和问答网站获取支持,全天候免费。
    3. 即使其本身功能十分强大,PostgreSQL 仍附带有许多强大的开源第三方工具来辅助系统的设计、管理和使用。
    4. 可以用预先存储的流程来程序性扩展 PostgreSQL ,一个高级的关系型数据库理应如此。
    5. PostgreSQL 不只是一个关系型数据库,还是一个面向对象数据库——支持嵌套,及一些其他功能。

    4.4.3 缺点

    1. 对于简单而繁重的读取操作, 超过了 PostgreSQL 的杀伤力,可能会出现比同行(如MySQL)更低的性能。
    2. 按给出的该工具的性质,从普及度来说它还缺乏足够后台支撑,尽管有大量的部署——这可能会影响能够获得支持的容易程度。


    4.5 Access DB

    4.5.1 介绍

    1. Microsoft Access只是Microsoft整体数据管理产品战略的一部分。它基于Access Jet数据库引擎以自己的格式存储数据。像关系数据库一样,Microsoft Access也允许链接相关信息。

    4.4.2 优点

    1. Access数据库是Windows平台上最为兼容的文件型数据库

    4.4.3 缺点

    1. Access数据库存在文件上限2G大小的问题,单文件无法超过2G大小,如果一个表的内容超过2G便是灾难
    2. 独占数据库,无法多连接操作
    3. 没有事务的概念


    4.6 Sqlite数据库

    4.6.1 介绍

    SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2019年已经有19个年头,SQLite也迎来了一个版本 SQLite 3已经发布。

    4.6.2 优点

    1. 轻量级:SQLite是轻量级的,没有客户端和服务器端之分,并且是跨平台的关系型数据库。SQLite是一个单文件的,可以copy出来在其他地方用。
    2. 绿色版:SQLite的另外一个特点是绿色:它的核心引擎本身不依赖第三方的软件,使用它也不需要“安装”。所以在部署的时候能够省去不少麻烦。
    3. 单一文件:所谓的“单一文件”,就是数据库中所有的信息(比如表、视图、触发器、等)都包含在一个文件内。这个文件可以copy到其它目录或其它机器上,也照用不误。
    4. 跨平台/可移植性:如果光支持主流操作系统,那就没啥好吹嘘的了。除了主流操作系统,SQLite还支持了很多冷门的操作系统。我个人比较感兴趣的是它对很多嵌入式系统(比如Android、WindowsMobile、Symbin、Palm、VxWorks等)的支持。
    5. 内存数据库(in-memory database):这年头,内存越来越便宜,很多普通PC都开始以GB为单位来衡量内存(服务器就更甭提了)。这时候,SQLite的内存数据库特性就越发显得好用。

    4.6.2 缺点

    1. 并发访问的锁机制:SQLite在并发(包括多进程和多线程)读写方面的性能一直不太理想。数据库可能会被写操作独占,从而导致其它读写操作阻塞或出错。
    2. SQL标准支持不全:在它的官方网站上,具体列举了不支持哪些SQL92标准。我个人感觉比较不爽的是不支持外键约束。
    3. 网络文件系统(以下简称NFS):有时候需要访问其它机器上的SQLite数据库文件,就会把数据库文件放置到网络共享目录上。这时候你就要小心了。当SQLite文件放置于NFS时,在并发读写的情况下可能会出问题(比如数据损坏)。原因据说是由于某些NFS的文件锁实现上有Bug。
    4. 授权协议(License):SQLite使用的是PublicDomain协议,这是最爽一种,可以放心大胆地用。
    5. 用户的普及程度:最近这几年,使用SQLite的人越来越多(从Google Trends可以反应出来)。包括一些大公司也开始把它整合到产品中(比如Google的Gears、Apple的Safari、Adobe的AIR)。这说明它的健壮性、稳定性等方面不会有太大问题。
      6.开发的活跃程度:如果到SQLite的Change Log上大致了解一下,可以看出最近5年基本上每1-2个月都会有更新。说明开发的活跃度还是非常高的。

    5.关系型数据库能干什么

    从数据结构上来看关系型数据库就是列表、集合。
    如:所有人的基本信息[UserInfo]

    idnameagesex
    1张三16
    2李四17
    3王五18
    4赵六19

    通过以上的简单的结构固化的存储在关系型数据库中,当需要使用时使用,如需要查询年龄在17岁以上人的信息时.

    select * from UserInfo where age>17

    查询结果为:

    idnameagesex
    3王五18
    4赵六19

    基于以上的基本功能逐步演变有:

    • 联表查询
    • 视图
    • 事务
    • 日志
    • 备份与恢复
    • 迁移
      等等

    6 关系数据库在某些方向上存在的乏力与瓶颈

    1. 传统的关系数据库具有不错的性能,高稳定型,久经历史考验,而且使用简单,功能强大,同时也积累了大量的成功案例。在互联网领域,MySQL成为了绝对靠前的王者,毫不夸张的说,MySQL为互联网的发展做出了卓越的贡献。
    2. 在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。
    3. 到了最近10年,网站开始快速发展。火爆的论坛、博客、sns、微博逐渐引领web领域的潮流。在初期,论坛的流量其实也不大,如果你接触网络比较早,你可能还记得那个时候还有文本型存储的论坛程序,可以想象一般的论坛的流量有多大。

    这个时候就出现如下几个方面的数据库开始在各自的业务场景下搔首弄姿

    6.1 HBase

    HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
    Hbase是一种NoSQL数据库,这意味着它不像传统的RDBMS数据库那样支持SQL作为查询语言。Hbase是一种分布式存储的数据库,技术上来讲,它更像是分布式存储而不是分布式数据库,它缺少很多RDBMS系统的特性,比如列类型,辅助索引,触发器,和高级查询语言等待。那Hbase有什么特性呢?如下:

    6.1.1 特性

    1. 强读写一致,但是不是“最终一致性”的数据存储,这使得它非常适合高速的计算聚合
    2. 自动分片,通过Region分散在集群中,当行数增长的时候,Region也会自动的切分和再分配
      自动的故障转移
      Hadoop/HDFS集成,和HDFS开箱即用,不用太麻烦的衔接
      丰富的“简洁,高效”API,Thrift/REST API,Java API
      块缓存,布隆过滤器,可以高效的列查询优化
      操作管理,Hbase提供了内置的web界面来操作,还可以监控JMX指标
      什么时候用Hbase?

    6.1.2 Hbase不适合解决所有的问题:

    首先数据库量要足够多,如果有十亿及百亿行数据,那么Hbase是一个很好的选项,如果只有几百万行甚至不到的数据量,RDBMS是一个很好的选择。因为数据量小的话,真正能工作的机器量少,剩余的机器都处于空闲的状态
    其次,如果你不需要辅助索引,静态类型的列,事务等特性,一个已经用RDBMS的系统想要切换到Hbase,则需要重新设计系统。
    最后,保证硬件资源足够,每个HDFS集群在少于5个节点的时候,都不能表现的很好。因为HDFS默认的复制数量是3,再加上一个NameNode。
    Hbase在单机环境也能运行,但是请在开发环境的时候使用。

    6.1.3 优势

    1. 存储容量大,一个表可以容纳上亿行,上百万列;
    2. 可通过版本进行检索,能搜到所需的历史版本数据;
    3. 负载高时,可通过简单的添加机器来实现水平切分扩展,跟Hadoop的无缝集成保障了其数据可靠性(HDFS)和海量数据分析的高性能(MapReduce);
    4. 在第3点的基础上可有效避免单点故障的发生。

    6.1.4 缺点

    1. 基于Java语言实现及Hadoop架构意味着其API更适用于Java项目;
    2. node开发环境下所需依赖项较多、配置麻烦(或不知如何配置,如持久化配置),缺乏文档;
    3. 占用内存很大,且鉴于建立在为批量分析而优化的HDFS上,导致读取性能不高;
    4. API相比其它 NoSql 的相对笨拙。

    6.1.5 适用场景

    1. bigtable类型的数据存储;
    2. 对数据有版本查询需求;
    3. 应对超大数据量要求扩展简单的需求。

    6.2 Redis

    Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。目前由VMware主持开发工作。

    6.2.1. 特点

    1. 数据格式

    Redis 通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash/Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)五种类型,操作非常方便。比如,如果你在做好友系统,查看自己的好友关系,如果采用其他的key-value系统,则必须把对应的好友拼接成字符串,然后在提取好友时,再把value进行解析,而redis则相对简单,直接支持list的存储(采用双向链表或者压缩链表的存储方式)。

    ⑴ String
    string 是 Redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个key对应一个value。
    string 类型是二进制安全的。意思是 Redis 的 string 可以包含任何数据。比如 jpg 图片或者序列化的对象 。
    string 类型是 Redis 最基本的数据类型,一个键最大能存储512MB。
    ⑵ Hash
    Redis hash 是一个键值对集合。
    Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
    ⑶ List
    Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
    ⑷ Sets
    Redis的Set是string类型的无序集合。 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
    ⑸ sorted sets/zset
    Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

    1. 性能
      Redis数据库完全在内存中,因此处理速度非常快,每秒能执行约11万集合,每秒约81000+条记录(测试数据的可参考这篇《Redis千万级的数据量的性能测试》)。
      Redis的数据能确保一致性——所有Redis操作是原子性(Atomicity,意味着操作的不可再分,要么执行要么不执行)的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。

    2. 持久化
      通过定时快照(snapshot)和基于语句的追加(AppendOnlyFile,aof)两种方式,redis可以支持数据持久化——将内存中的数据存储到磁盘上,方便在宕机等突发情况下快速恢复。

    3. CAP类别
      属于CP类型(了解更多)。

    4. Node下的使用
      node 下可使用 node_redis 来实现 redis 客户端操作:

    6.2.3. 优势

    1. 非常丰富的数据结构;
    2. Redis提供了事务的功能,可以保证一串 命令的原子性,中间不会被任何操作打断;
    3. 数据存在内存中,读写非常的高速,可以达到10w/s的频率。

    6.2.3. 缺点

    1. Redis3.0后才出来官方的集群方案,但仍存在一些架构上的问题(出处);
    2. 持久化功能体验不佳——通过快照方法实现的话,需要每隔一段时间将整个数据库的数据写到磁盘上,代价非常高;而aof方法只追踪变化的数据,类似于mysql的binlog方法,但追加log可能过大,同时所有操作均要重新执行一遍,恢复速度慢;
    3. 由于是内存数据库,所以,单台机器,存储的数据量,跟机器本身的内存大小。虽然redis本身有key过期策略,但是还是需要提前预估和节约内存。如果内存增长过快,需要定期删除数据。

    6.2.4. 适用场景

    适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。更具体的可参照这篇《Redis 的 5 个常见使用场景》译文。

    在这篇文章中,我们将阐述 Redis 最常用的使用场景,以及那些影响我们选择的不同特性。
    
    1、会话缓存(Session Cache)
    最常用的一种使用Redis的情景是会话缓存(session cache)。用Redis缓存会话比其他存储(如Memcached)的优势在于:Redis提供持久化。当维护一个不是严格要求一致性的缓存时,如果用户的购物车信息全部丢失,大部分人都会不高兴的,现在,他们还会这样吗?
    幸运的是,随着 Redis 这些年的改进,很容易找到怎么恰当的使用Redis来缓存会话的文档。甚至广为人知的商业平台Magento也提供Redis的插件。
    
    2、全页缓存(FPC)
    除基本的会话token之外,Redis还提供很简便的FPC平台。回到一致性问题,即使重启了Redis实例,因为有磁盘的持久化,用户也不会看到页面加载速度的下降,这是一个极大改进,类似PHP本地FPC。
    再次以Magento为例,Magento提供一个插件来使用Redis作为 全页缓存后端。
    此外,对WordPress的用户来说,Pantheon有一个非常好的插件   wp-redis,这个插件能帮助你以最快速度加载你曾浏览过的页面。
    
    3、队列
    Reids在内存存储引擎领域的一大优点是提供 list 和 set 操作,这使得Redis能作为一个很好的消息队列平台来使用。Redis作为队列使用的操作,就类似于本地程序语言(如Python)对 list 的 push/pop 操作。
    如果你快速的在Google中搜索“Redis queues”,你马上就能找到大量的开源项目,这些项目的目的就是利用Redis创建非常好的后端工具,以满足各种队列需求。例如,Celery有一个后台就是使用Redis作为broker,你可以从 这里去查看。
    
    4、排行榜/计数器
    Redis在内存中对数字进行递增或递减的操作实现的非常好。集合(Set)和有序集合(Sorted Set)也使得我们在执行这些操作的时候变的非常简单,Redis只是正好提供了这两种数据结构。所以,我们要从排序集合中获取到排名最靠前的10个用户–我们称之为“user_scores”,我们只需要像下面一样执行即可:
    当然,这是假定你是根据你用户的分数做递增的排序。如果你想返回用户及用户的分数,你需要这样执行:
    ZRANGE user_scores 0 10 WITHSCORES
    Agora Games就是一个很好的例子,用Ruby实现的,它的排行榜就是使用Redis来存储数据的,你可以在 这里看到。
    
    5、发布/订阅
    最后(但肯定不是最不重要的)是Redis的发布/订阅功能。发布/订阅的使用场景确实非常多。我已看见人们在社交网络连接中使用,还可作为基于发布/订阅的脚本触发器,甚至用Redis的发布/订阅功能来建立聊天系统!(不,这是真的,你可以去核实)。
    
    Redis提供的所有特性中,我感觉这个是喜欢的人最少的一个,虽然它为用户提供如果此多功能。
    

    6.3 MongoDB

    MongoDB 是一个高性能,开源,无模式的文档型数据库,开发语言是C++。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。

    6.3.1. 特点

    1. 数据格式
      在 MongoDB 中,文档是对数据的抽象,它的表现形式就是我们常说的 BSON(Binary JSON )。
      BSON 是一个轻量级的二进制数据格式。MongoDB 能够使用 BSON,并将 BSON 作为数据的存储存放在磁盘中。
      BSON 是为效率而设计的,它只需要使用很少的空间,同时其编码和解码都是非常快速的。即使在最坏的情况下,BSON格式也比JSON格式再最好的情况下存储效率高。

    6.3.2. 优势

    1. 强大的自动化 shading 功能(更多戳这里);
    2. 全索引支持,查询非常高效;
    3. 面向文档(BSON)存储,数据模式简单而强大。
    4. 支持动态查询,查询指令也使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
    5. 支持 javascript 表达式查询,可在服务器端执行任意的 javascript函数。

    6.3.3. 缺点

    1. 单个文档大小限制为16M,32位系统上,不支持大于2.5G的数据;
    2. 对内存要求比较大,至少要保证热数据(索引,数据及系统其它开销)都能装进内存;
    3. 非事务机制,无法保证事件的原子性。

    6.3.4. 适用场景

    1. 适用于实时的插入、更新与查询的需求,并具备应用程序实时数据存储所需的复制及高度伸缩性;
    2. 非常适合文档化格式的存储及查询;
    3. 高伸缩性的场景:MongoDB 非常适合由数十或者数百台服务器组成的数据库。
    4. 对性能的关注超过对功能的要求。

    6.4 Neo4j

    1. 在高速发展的互联网应用中,业务需求的频繁变更和数据的快速增长都要求数据库必须具有很强的适应能力。Neo4j图数据库正是一个能够适应这种业务需求不断变化和大规模数据增长而产生的数据库,它不但具有很强的适应能力,而且能够自始至终保持高效的查询性能。
    2. 现实世界中的一切事物都处在联系之中,如人际关系、电脑网络、地理数据、分子结构模型等,无一不处在纷繁复杂的联系之中。这种联系形成了一种互相关联的数据,联系才是数据的本质所在。传统的关系型数据库并不能很好地表现数据的联系,而一些NoSQL(Not Only SQL,非关系型数据库)数据库又不能表现数据之间的联系。同样是NoSQL的Neo4j图数据库是以图的结构形式来存储数据的,它所存储的就是联系的数据,是关联数据本身。
    3. 关联数据中的联系本来就很复杂,若要在关系型数据库中使用结构化形式来表现这种联系,则一般不能直接表示,处理起来既烦琐又费事,并且随着数据的不断增长,其访问性能将日趋下降。无数的开发人员和数据库管理人员都或多或少地使用过关系型数据库,在其应用的规模化进展过程中,对于数据库的性能优化往往捉襟见肘、陷入窘境。Neo4j没有模式结构的定义,也不需要这些定义,它使用非结构化的方式来存储关联数据,所以能够直接表现数据的关联特性。
    4. Neo4j不管是与关系型数据库相比,还是与其他NoSQL数据库相比,都具有很多前所未有的优势,这可以从以下几个方面来分析,主要表现为查询的高性能、设计的灵活性和开发的敏捷性等。

    6.3.2. 优点:

    数据的插入,查询操作很直观,不用再像之前要考虑各个表之间的关系。
    提供的图搜索和图遍历方法很方便,速度也是比较快的。

    6.3.2. 缺点:

    最不能让人忍受的就是极慢的插入速度。可能是因为创建节点和边的时候需要保存一些额外信息(为了查询服务)。不知道是不是我代码的问题,插入10000个节点,10000条边花了将近10分钟…
    超大节点。当有一个节点的边非常多时(常见于大V),有关这个节点的操作的速度将大大下降。这个问题很早就有了,官方也说过会处理,然而现在仍然不能让人满意。
    提高数据库速度的常用方法就是多分配内存,然而看了官方操作手册,貌似无法直接设置数据库内存占用量,而是需要计算后为其”预留“内存…

    1. 适用场景
      鉴于其明显的优缺点,Neo4j适合存储”修改较少,查询较多,没有超大节点“的图数据。

    另外,针对Neo4j的缺点,有一款使用混合索引的数据库Arangodb也许是一个不错的考虑对象。根据其官网的说明,Arangodb不仅具有一般图形数据库的优点,而且在各种操作的速度上领先于Neo4j。

    https://www.arangodb.com/2016/04/index-free-adjacency-hybrid-indexes-graph-databases/

    ,10000条边花了将近10分钟…
    超大节点。当有一个节点的边非常多时(常见于大V),有关这个节点的操作的速度将大大下降。这个问题很早就有了,官方也说过会处理,然而现在仍然不能让人满意。
    提高数据库速度的常用方法就是多分配内存,然而看了官方操作手册,貌似无法直接设置数据库内存占用量,而是需要计算后为其”预留“内存…

    1. 适用场景
      鉴于其明显的优缺点,Neo4j适合存储”修改较少,查询较多,没有超大节点“的图数据。

    另外,针对Neo4j的缺点,有一款使用混合索引的数据库Arangodb也许是一个不错的考虑对象。根据其官网的说明,Arangodb不仅具有一般图形数据库的优点,而且在各种操作的速度上领先于Neo4j。

    https://www.arangodb.com/2016/04/index-free-adjacency-hybrid-indexes-graph-databases/

    https://www.arangodb.com/2015/10/benchmark-postgresql-mongodb-arangodb/

    展开全文
  • 数据库 一、概念 数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。 ...三、NoSQL与关系型数据库的区别 存储方式 传统的关系型数...

    数据库

    一、概念

    1. 数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合

    2. 数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。

    二、分类

    1. 关系型数据库

    2. NOSQL

    三、NoSQL与关系型数据库的区别

    1. 存储方式

      传统的关系型数据库采用表格的储存方式, 数据以行和列的方式进行存储,要读取和查询都十分方便。

      非关系型数据不适合这样的表格存储方式,通常以数据集的方式,大量的数据集中存储在一起,类似于键值对、图结构或者文档

    2. 存储结构

      关系型数据库按照结构化的方法存储数据, 每个数据表都必须对各个字段定义好(也就是先定义好表的结构),再根据表的结构存入数据,这样做的好处就是由于数据的形式和内容在存入数据之前就已经定义好了,所以整个数据表的可靠性和稳定性都比较高,但带来的问题就是一旦存入数据后,如果需要修改数据表的结构就会十分困难。

      NoSQL数据库由于面对的是大量非结构化的数据的存储,它采用的是动态结构,对于数据类型和结构的改变非常的适应,可以根据数据存储的需要灵活的改变数据库的结构。

    3. 存储规范

      关系型数据库为了避免重复、规范化数据以及充分利用好存储空间,把数据按照最小关系表的形式进行存储,这样数据管理的就可以变得很清晰、一目了然,当然这主要是一张数据表的情况。如果是多张表情况就不一样了,由于数据涉及到多张数据表,数据表之间存在着复杂的关系,随着数据表数量的增加,数据管理会越来越复杂。

      NoSQL数据库的数据存储方式是用平面数据集的方式集中存放,虽然会存在数据被重复存储,从而造成存储空间被浪费的问题(从当前的计算机硬件的发展来看,这样的存储空间浪费的问题微不足道),但是由于基本上单个数据库都是采用单独存放的形式,很少采用分割存放的方式,所以这样数据往往能存成一个整体,这对于数据的读写提供了极大的方便。

    4. 扩展方式

      关系型数据库将数据存储在数据表中,数据操作的瓶颈出现在多张数据表的操作中,而且数据表越多这个问题越严重,如果要缓解这个问题,只能提高处理能力,也就是选择速度更快性能更高的计算机,这样的方法虽然可以一定的拓展空间,但这样的拓展空间一定有非常有限的,也就是关系型数据库只具备纵向扩展能力。

      NoSQL数据库由于使用的是数据集的存储方式,它的存储方式一定是分布式的,它可以采用横向的方式来开展数据库,也就是可以添加更多数据库服务器到资源池,然后由这些增加的服务器来负担数据量增加的开销。

    5. 查询方式

      关系型数据库采用结构化查询语言(即SQL)来对数据库进行查询,SQL早已获得了各个数据库厂商的支持,成为数据库行业的标准,它能够支持数据库的CRUD(增加,查询,更新,删除)操作,具有非常强大的功能,SQL可以采用类似索引的方法来加快查询操作。

      NoSQL数据库使用的是非结构化查询语言(UnQL),它以数据集(像文档)为单位来管理和操作数据,由于它没有一个统一的标准,所以每个数据库厂商提供产品标准是不一样的,NoSQL中的文档Id与关系型表中主键的概念类似,NoSQL数据库采用的数据访问模式相对SQL更简单而精确。

    6. 规范化

      在数据库的设计开发过程中开发人员通常会面对同时需要对一个或者多个数据实体(包括数组、列表和嵌套数据)进行操作,这样在关系型数据库中,一个数据实体一般首先要分割成多个部分,然后再对分割的部分进行规范化,规范化以后再分别存入到多张关系型数据表中,这是一个复杂的过程。好消息是随着软件技术的发展,相当多的软件开发平台都提供一些简单的解决方法,例如,可以利用ORM层(也就是对象关系映射)来将数据库中对象模型映射到基于SQL的关系型数据库中去以及进行不同类型系统的数据之间的转换。

      对于NoSQL数据库则没有这方面的问题,它不需要规范化数据,它通常是在一个单独的存储单元中存入一个复杂的数据实体。

    7. 事务性

      关系型数据库强调ACID规则(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)),可以满足对事务性要求较高或者需要进行复杂数据查询的数据操作,而且可以充分满足数据库操作的高性能和操作稳定性的要求。并且关系型数据库十分强调数据的强一致性,对于事务的操作有很好的支持。关系型数据库可以控制事务原子性细粒度,并且一旦操作有误或者有需要,可以马上回滚事务。而NoSQL数据库强调BASE原则(基本可用(Basically Availble)、软状态(Soft-state)、最终一致性(Eventual Consistency)),它减少了对数据的强一致性支持,从而获得了基本一致性和柔性可靠性,并且利用以上的特性达到了高可靠性和高性能,最终达到了数据的最终一致性。

      NoSQL数据库虽然对于事务操作也可以使用,但由于它是一种基于节点的分布式数据库,对于事务的操作不能很好的支持,也很难满足其全部的需求,所以NoSQL数据库的性能和优点更多的体现在大数据的处理和数据库的扩展方面。

    8. 读写性能

      关系型数据库十分强调数据的一致性,并为此降低读写性能付出了巨大的代价,虽然关系型数据库存储数据和处理数据的可靠性很不错,但一旦面对海量数据的处理的时候效率就会变得很差,特别是遇到高并发读写的时候性能就会下降的非常厉害。

      NoSQL数据库相对关系型数据库优势最大的恰恰是应对大数据方面,也就是对于大量的每天都产生非结构化的数据能够高性能的读写,这是因为NoSQL数据库是按key-value类型进行存储的,以数据集的方式存储的,因此无论是扩展还是读写都非常容易,并且NoSQL数据库不需要关系型数据库繁琐的解析,所以NoSQL数据库大数据管理、检索、读写、分析以及可视化方面具有关系型数据库不可比拟的优势。

    9. 授权方式

      关系型数据库常见的有Oracle,SQLServer,DB2,Mysql,除了Mysql大多数的关系型数据库如果要使用都需要支付一笔价格高昂的费用,即使是免费的Mysql性能也受到了诸多的限制。

      对于NoSQL数据库,比较主流的有redis,HBase,MongoDb,memcache等产品,通常都采用开源的方式,不需要像关系型数据库那样,需要一笔高昂的花费。

    关系型数据库

    一、概念

    1. 在一个给定的应用领域中,所有实体实体之间联系的集合构成一个关系数据库。

    2. 关系数据库的型与值

      关系数据库的型称为关系数据库模式,是对关系数据库的描述,若干域的定义,在这些域上定义的若干关系模式;

      关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库。

    二、分类

    1. 桌面数据库

      例如Access、FoxPro和dBase等

      桌面数据库用于小型的、单机的应用程序,它不需要网络和服务器,实现起来比较方便,但它只提供数据的存取功能。

    2. 客户/服务器数据库

      例如SQL Server、Oracle和Sybase等

      客户/服务器数据库主要适用于大型的、多用户的数据库管理系统,应用程序包括两部分:一部分驻留在客户机上,用于向用户显示信息及实现与用户的交互;另一部分驻留在服务器中,主要用来实现对数据库的操作和对数据的计算处理。

    三、关系模型结构

    1. 单一的数据结构----关系(表文件)

      关系数据库的表采用二维表格来存储数据,是一种按行与列排列的具有相关信息的逻辑组,它类似于Excle工作表。

      一个数据库可以包含任意多个数据表。

      在用户看来,一个关系模型的逻辑结构是一张二维表,由行和列组成。这个二维表就叫关系,通俗地说,一个关系对应一张表。

    2. 元组(记录)

      表中的一行即为一个元组,或称为一条记录。

    3. 属性(字段)

      数据表中的每一列称为一个字段,表是由其包含的各种字段定义的,每个字段描述了它所含有的数据的意义,数据表的设计实际上就是对字段的设计。

      创建数据表时,为每个字段分配一个数据类型,定义它们的数据长度和其他属性。

      字段可以包含各种字符、数字、甚至图形。

      如错误!未找到引用源。

    4. 属性值

      行和列的交叉位置表示某个属性值,如“数据库原理”就是课程名称的属性值。

    5. 主码

      主码(也称主键或主关键字),是表中用于唯一确定一个元组的数据。

      关键字用来确保表中记录的唯一性,可以是一个字段或多个字段,常用作一个表的索引字段。

      每条记录的关键字都是不同的,因而可以唯一地标识一个记录,关键字也称为主关键字,或简称主键。

      如错误!未找到引用源。

    6. 属性的取值范围。

    7. 关系模式

      关系的描述称为关系模式。

      对关系的描述,一般表示为:关系名(属性1,属性2…属性n)。

      例如上面的关系可描述为:课程(课程号、课程名称、学分、任课老师)。

    非关系型数据库

    一、概念

    1. 非关系型数据库是分布式的非关系型的不保证遵循ACID原则的数据存储系统。

    2. NoSQL最常见的解释是“non-relational”, “Not Only SQL”也被很多人接受。

    二、分类

    1. 键值对存储(key-value)

      代表软件:Redis

      优点:查找速度快

      缺点:数据无结构化,通常只被当作字符串或者二进制数据

      应用场景:内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。

      数据模型:Key 指向 Value 的键值对,通常用hash table来实现

    2. 列存储

      代表软件:Hbase

      优点:查找速度快,可扩展性强,更容易进行分布式扩展

      缺点:功能相对局限

      应用场景:分布式的文件系统

      数据模型:以列簇式存储,将同一列数据存在一起实现

    3. 文档数据库存储

      代表软件:MongoDB

      优点:数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构

      缺点:查询性能不高,而且缺乏统一的查询语法。

      应用场景:Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容)

      数据模型:Key-Value对应的键值对,Value为结构化数据

    4. 图形数据库存储

      代表软件:InfoGrid

      优点:利用图结构相关算法。比如最短路径寻址,N度关系查找等

      缺点:很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。

      应用场景:社交网络,推荐系统等。专注于构建关系图谱

      数据模型:图结构

    三、特点

    1. 易扩展

      NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间,在架构的层面上带来了可扩展的能力。

    2. 大数据量,高性能

      NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache。NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说性能就要高很多。

    3. 灵活的数据类型

      NoSQL无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是——个噩梦。这点在大数据量的Web 2.0时代尤其明显。

    4. 高可用

      NoSQL在不太影响性能的情况,就可以方便地实现高可用的架构。比如Cassandra、HBase模型,通过复制模型也能实现高可用。

    四、应用场景

    1. 数据模型比较简单

    2. 需要灵活性更强的IT系统

    3. 对数据库性能要求较高

    4. 不需要高度的数据一致性

    5. 对于给定key,比较容易映射复杂值的环境

    展开全文
  • 常见的nosql数据库

    2014-11-09 16:03:52
    1、MongoDB ...当数据量达到50GB以上的时候,MongoDB的数据库访问速度是MySQL的10倍以上。MongoDB的并发读写效率不是特别出色,根据官方提供的性能测试表明,大约每秒可以处理0.5万~1.5万次读写请求。Mong
  • 常见主流数据库分类

    千次阅读 2016-10-14 09:54:08
    DB2是IBM著名的关系型数据库产品,DB2系统在企业级的应用中十分广泛。截止2003年,全球财富500强(Fortune 500)中有415家使用DB2,全球财富100强(Fortune100)中有96家使用DB2,用户遍布各个行业。2004年IBM的DB2...
  • 关系型数据库种类

    2019-09-29 12:52:07
    常见主流数据库分类: DB2,Oracle,Informix,Sybase,SQLServer,PostgreSQL,mySQL,... DB2是IBM著名的关系型数据库产品,DB2系统在企业级的应用中十分广泛。截止2003年,全球财富500强(Fortune500)中有415家使用...
  • 常见数据库的分析

    2017-02-13 14:30:01
    Access是一种桌面数据库,只适合数据量少的应用,或者是单机的程序,这样子访问的效率特别高。Access数据库有一定的极限,当数据量达到100M的时候,会出现服务器假死,或者消耗掉服务器的内存导致服务器崩溃。 2 . ...
  • 几种常见的内嵌数据库

    万次阅读 2010-06-30 16:58:00
    因笔者最近有一个项目要使用内嵌数据库,在对内嵌数据库选型上纠结了一段时间,以下则是对各个内嵌数据库的整理总结给大家共享。
  • 常见数据库有<关系数据库系统>: ORACLE(甲骨文)、DB2、SQL Server、Sybase、Informix、MySQL、VF、Access等。 其实数据库系统几乎支持所有的操作系统,也就是...DB2是IBM著名的关系型数据库产品,DB2系统在...
  • 5种关系型数据库

    2019-10-02 04:02:53
     目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。国际国内的主导关系型数据库管理系统有Oracle、Sybase...
  • 常见内存数据库介绍

    2011-11-23 13:46:10
    一、什么是内存数据库 传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,由于对磁盘读写数据的操作一...
  • Oracle数据库主要应用范围:传统大企业、大公司、政府、金融、证券等等。MySQL数据库被广泛应用在大中小型网站、互联网领域、游戏公司、电商...Access数据库微机数据库,Access是入门级小型桌面数据库,性能安全性都
  • 大型数据库有:Oracle、Sybase、DB2、SQL server 小型数据库有:Access、MySQL等。   1. IBM 的DB2  作为关系数据库领域的开拓者和领航人,IBM在1977年完成了System R系统的原型,1980年开始提供...
  • 目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。国际国内的主导关系型数据库管理系统有Oracle、Sybase、...
  • 什么是 SQLITE 数据库

    千次阅读 2010-09-13 11:29:00
    SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作...
  • 几种关系型数据库的区别

    千次阅读 2018-07-20 20:07:03
    纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式MyISAM。MyISAM数据库 与磁盘非常地兼容而不占用过多的CPU和内存。MySQL可以运行于Windows 系统而不会发生冲突,在UNIX或类似UNIX系统上运行则更好。...
  • 桌面轻量级数据库

    千次阅读 2012-09-29 12:55:16
    经观察大部分的小系统都是用Access数据库,有的系统为了掩盖数据库的类型,把数据文件后缀名改了,其实只要改回到mdb,用Access打开,数据一目了然,其实Access数据库本身有很多的问题:性能不行;数据不安全,用户...
  • 数据库

    千次阅读 2015-09-19 10:10:48
    数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种...
  • MySQL是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中...
  • 何谓SQL Server数据库?与Access数据库什么区别

    千次阅读 热门讨论 2012-08-07 20:33:57
    它与Access数据库什么区别呢?  Access是由微软发布的关联式数据库管理系统。它结合了Microsoft Jet Database Engine和图形用户界面两项特点,是Microsoft Office的系统程序之一。Access具有
  • SuperMap数据库常见问题与解决方案

    千次阅读 2020-12-31 14:57:02
    (1)问:把文件工作空间另存为MySQL数据库型工作空间时重新打开工作空间失败,并且报错:sxw中读取XML信息失败。 答:在my.ini中max_allowed_packet这个值太小了没法传输进去,导致保存失败了,将值改大一些即可...
  • 关系型数据库管理系统简介

    千次阅读 2016-01-04 23:30:59
    1.为什么使用数据库? a.数据库:在计算机上集中存放数据的地方,是相关数据的集合,可提供对数据的集中控制。 b.数据库集中控制的优点:  1.降低存储数据的冗余度: 多个访问相同数据,减少重复的数据。  ...
  •  作为关系数据库领域的开拓者和领航人,IBM在1977年完成了System R系统的原型,1980年开始提供集成的数据库服务器—— System/38,随后是SQL/DSforVSE和VM,其初始版本与SystemR研究原型密切相关。DB2 forMVSV1 在...
  • 几个关系型数据库各方面比较

    千次阅读 2018-07-03 09:44:52
    DB2是IBM著名的关系型数据库产品,DB2系统在企业级的应用中十分广泛。截止2003年,全球财富500强(Fortune&nbsp;500)中有415家使用DB2,全球财富100强(Fortune100)中有96家使用DB2,用户遍布各个行业。2004年...
  • 数据库简介

    千次阅读 2018-06-21 15:20:20
    目录一、数据库概要1.1、发展历史1.1.1、人工处理阶段1.1.2、文件系统1.1.3、数据库管理系统1.2、常见数据库技术品牌、服务与架构1.3、数据库分类1.3.1、关系型数据库1.3.2、非关系型数据库1.4、数据库规范化1.4.1....
  • 数据库常见面试题20道

    千次阅读 2018-05-28 14:51:44
    是一个小型的关系型数据库管理系统,支持Linux,mac,windows 等操作系统,与oracle,sqlserver,db2相比功能较弱 1.sql server 只能在Windows 上运行,开放性不够,但真正的c/s,图形化用户界面,有丰富的编程接口,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,964
精华内容 7,985
关键字:

常见的桌面型数据库是什么