精华内容
下载资源
问答
  • 在互联网时代背景下,传统单一的数据库的时代已经过去,对于数据库的新需求在不断出现,随着这些新的需求越来越广泛地被提出,越来越多的企业意识到,采用传统的数据库应对不同需求这种一刀切的.

    引言

    如今,数据作为生产要素重要性已不言而喻,数据能力成为企业必不可少的核心能力之作为企业数字化转型重要的一环,我们依然迫切需要数据库来帮助存储和操作这些数据,充分有效地管理和利用各类数据资产。数据存储和操作是以业务连续性为目标,包括存储数据的设计、实现和支持活动,以及在整个数据生命周期中,从计划到销毁的各种操作活动。

    在互联网时代背景下,传统单一的数据库的时代已经过去,对于数据库的新需求在不断出现,随着这些新的需求越来越广泛地被提出,越来越多的企业意识到,采用传统的数据库应对不同需求这种一刀切的方式已经不再奏效。

    本文首先阐述了数据库和数据库管理系统的概念,并对目前常见的几种数据库进行了介绍,分析了专用数据库相比于传统数据库的优势所在,然后重点对满足不同应用场景的8种专用数据库进行了详细说明,最后分享了传统数据库向专用数据库迁移的案例,旨在帮助读者在设计应用时选择正确的数据库。

    什么是数据库?

    1.1

    数据库概念

    维基百科上对数据库的定义:以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。一个数据库由多个表空间构成。

    百度百科上对数据库的定义:是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

    数据库(Database,英文简称 DB)是一个以某种有组织的方式存储的数据集合。可以理解为是一个存放计算机数据的仓库,这个仓库按照一定的数据结构(即数据的组织形式或数据之间的联系)来对数据进行组织和存储,我们可以通过数据库提供的多种方法来管理其中的数据。

    1.2

    数据库管理系统

    数据库管理系统(Database ManagementSystem,英文简称DBMS)是为管理数据库而设计的电脑软件系统,是一种系统软件,负责数据库中的数据组织、数据操作、数据维护、控制及保护和数据服务。数据库管理系统是数据系统的核心,主要功能有:数据模式定义、数据存取的物理构建、数据操纵、数据的完整性、安全性定义和检查、数据库的并发控制与故障恢复、数据的服务。我们常见的数据管理系统如:Oracle、SQL Server、MySQL、Accees、Sybase、DB2等。

    1.3

    数据库和数据库管理系统的关系

    数据库和数据库管理系统在IT软件中扮演着不可或缺的角色。比如某公司建设了员工管理系统,员工的信息都会存放在数据库中。当登录员工管理系统查询某员工的工资信息时,部署在服务器上的程序会连接数据库管理系统进行查询,并从数据库中取出该员工的工资数据,最后显示到前端系统页面上。

    查询数据的过程

    数据库种类及应用场景介绍

    一般来说,数据库按照组织式分为两大类:关系型数据库和非关系型数据库。

    1.关系型数据库是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过这些关联的表格分类、合并、连接或选取等运算来实现数据的管理。

    2.非关系型数据库又称NoSQL,由于数据类型多种多样,关系型数据库并不适用于所有的数据,因此针对不同的数据类型,出现了不同的 NoSQL,NoSQL的产生并不是要彻底否定关系型数据库,而是作为传统数据库的有效补充。

    关系型SQL与非关系型NoSQL对比表

    注:关系型数据库的ACID:

    A (Atomicity) 原子性:就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。比如银行转账,从A账户转5元至B账户,分为两个步骤:从A账户取5元;存入5元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了5元。

    C (Consistency) 一致性:一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。例如现有完整性约束a+b=10,如果一个事务改变了a,那么必须得改变b,使得事务结束后依然满足a+b=10,否则事务失败。

    I (Isolation) 独立性:是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。例如:现有有个交易是从A账户转5元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的5元的。

    D (Durability) 持久性:指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

    CAP理论的C就是一致性(Consistency),A就是可用性(availability),可以理解为是否可获取数据,以及获取数据的速度;P就是分区容忍度(partion tolerance),指的是系统中的数据分布性的大小对系统的正确性,性能的影响(一定程度上就是可扩展性)。

    2.1

    关系数据库

    关系数据库是使用最广泛的数据库,采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。主要结构为:库+表+表之间的关系+字段。

    关系数据库表示例表

    关系数据库把复杂的数据结构归结为简单的二元关系(二维表),如上图所示是一个二维表的示例,通常该表第一行为字段名称,描述该字段的作用,下面是具体的数据。在定义该表时需要指定字段的名称及类型。目前主流的关系型数据库有OracleL、SQL Server、DB2、MySQL、PostgreSQL等。

    2.2

    非关系数据库

    常见的非关系型数据库有键值数据库、列存储数据库、文档数据库、图数据库、时序数据库、搜索引擎数据库等,这些常见数据库的主要特点及应用场景如下表所示。

    几种常见非关系数据库的主要特点及应用场景

    2.2.1 键值数据库

    键值数据库可以被看作一个非常大的哈希表,该表在唯一的键下存储了一些值。存储的值可以通过键或者部分键高效地检索到。键值数据库使用简单的键值方法来存储数据。键值数据库将数据存储为键值对集合,其中键作为唯一标识符。键值数据库中的键可以包含多个元素,甚至可以排序以提高查询效率。一些键值数据库允许使用键的前缀进行查找,从而可以使用复合键。 

    例如,我们将客户ABC的订单存储在键/值数据库中,可以使用客户ID作为键的前缀,结合订单号组成键“ABC-001”来存储订单。可以使用整个键来检索特定的订单,也可以使用“ABC”前缀检索客户ABC的所有订单。

    2.2.2 列存储数据库

    列存储数据库又被称为面向可扩展性的分布式数据库,它反转了传统的行存储数据库,将数据存储存在列族中,一个列族存储经常被一起查询的相关数据。如下表所示为人员信息表:

    对于行存储数据库,表中的数据是以行为单位逐行存储在磁盘上的;而对于列存储数据库,表中的数据则是以列为单位逐列存储在磁盘中。下图是传统行数据库和列数据库表中数据在磁盘上的存储形式的差异对比。

    列存储解决的主要问题是数据查询问题,这部分数据库通常用来应对分布式存储的海量数据,典型的产品应用如Hbase。

    2.2.3 文档数据库

    文档数据库是一种非关系数据库,将半结构化数据存储为文档,其中文档包括 XML、YAML、JSON、BSON、office 文档等不同格式。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。

    简而言之,就是将数据保存到以上类似格式的文档中,数据库中的每个记录都是以文档形式存在的,相互之间不再存在关联关系。文档数据库所存放的文档,就相当于键值数据库所存放的“值”。

    2.2.4 图数据库

    图数据库顾名思义,就是一种存储图形关系的数据库,而图模型是图数据库中的重要概念。图模型由两个要素组成:节点和边,每个节点代表一个实体(人、地点、事物等),每条边代表两个节点之间的连接,这种通用结构可以对各种场景进行建模,如社交网络以及由关系定义的任何其他事物。

    如下所示的图模型中包含 3个节点:中国、北京、长城。其两条边分别是:长城是北京的著名景点、北京属于中国。

    从上面的图模型可以看出,图数据库的目标就是基于图模型以一种直观的方式模拟这些关系,可以很好地分析实体之间的关系。

    2.2.5 时序数据库

    在介绍时序数据库前先了解下时序数据,时序数据是按照时间顺序记录系统、设备状态变化的数据,普遍存在于IT基础设施、运维监控系统和物联网中。在有时间的坐标中将这些数据点连成线,往前看可以做成多纬度报表,揭示其趋势性、规律性、异常性;往后看可以建立数学模型、做统计分析,预测事物发展趋势。

    时序数据库就是存放时序数据的数据库,并且需要支持时序数据的快速写入、持久化、多纬度的聚合查询等基本功能。相比于传统数据库仅仅记录了数据的当前值,时序数据库则记录了所有的历史数据。同时时序数据的查询也总是会带上时间作为过滤条件。

     

    下面对时序数据库的数学模型做下简单介绍:

    • metric:度量的数据集,类似于关系型数据库中的table

    • point:一个数据点,类似于关系型数据库中的row

    • timestamp:时间戳,表征采集到数据的时间点

    • tag:维度列,代表数据的归属、属性,表明是哪个设备/模块产生的,一般不随着时间变化,供查询使用

    • field:指标列,代表数据的测量值,随时间平滑波动,不需要查询

    时序数据库基本概念图

    如上表中,度量为Wind,每一个数据点都具有一个timestamp,其中有两个field:风向、速度,两个tag:设备编号、城市。根据表中第一行和第三行的数据可知,存放的都是sensor号码为95D8-791的设备,属性城市是北京。随着时间的变化,风向和风速都发生了变化,风向从24.2变成25.6,风速从3.6变成了3.3。

    2.2.6 搜索引擎数据库

    搜索引擎数据库通常用于搜索保存在其他存储和服务中的数据。搜索引擎数据库可以对大量的数据建立索引,并提供近实时的索引查询。搜索引擎数据库是应用在搜索引擎领域的数据存储形式,由于搜索引擎会爬取大量的数据,并以特定的格式进行存储,这样在检索的时候才能保证性能最优。

    搜索引擎数据库除了搜索像网页这样的非结构化的数据,许多应用程序还使用它为其他数据库中的数据提供结构化和即时搜索功能。有一些数据库也能提供全文索引功能,但是搜索数据库还具备通过词干和泛化将单词缩减为词根的功能。

    三 为什么越来越多的企业选择专用数据库?

    “原来数据库分发方式是怎么样的?一家企业要买数据库,比如Oracle,首先要买一年或者两年的授权,第二要买跑数据库的硬件,第三还得买数据库相关的服务,包括固件更新、维护升级等等。传统的数据库购买流程是一个非常沉重的过程,投入会非常大”,相信很多IT从业人员对这句话深有感触。传统商用数据库是集中式架构,在扩展性和灵活上先天不足,比如传统的商业数据库可能仅仅软件安装就需要一整天的时间,需要配置各种补丁等,需要有专业的DBA(数据库管理员)来完成这样的服务,如果需要扩展通常只能是纵向扩展,为此需要购买昂贵的设备,投资不菲。

    传统数据库架构面向早期业务模型,包括传统数据库的售卖方式、使用方式、服务方式,在数字化的背景和海量数据存储的诉求下,已经不能满足大多数企业的诉求。从技术角度来看,云计算已经发展到非常成熟的阶段,并且被广泛认可,云计算由量变到质变的过程,给数据库带来了颠覆,核心是云计算彻底改变了数据库的分发方式。

    专用数据库相比于传统数据库在成本、安全性、操作及效率4个方面具有更适应现代IT技术快速发展的优势:

    传统数据库VS专用数据库

    可以看到,在实际业务运营过程中有各种不同的数据管理需求的时候,就需要迁移到专用的数据库来。自我管理的这些数据库和分析服务,因为耗时、管理起来复杂性很高,尤其是硬件、软件的安装,同时数据库的性能、可用性又遇到很多的挑战,又不像在云上那么容易的进行扩展。那么迁移到专用数据库有什么好处呢?下图为在AWS上的全托管服务和自己管理的区别。

    自我管理与AWS完全托管的区别

    全托管的服务之下,对于用户来说,只需要去关注几个事情:应用层的架构设计、采用什么样的数据库、解决什么样的场景问题、查询构造、怎么去优化SQL查询语句或是NoSQL的查询方式。剩下的与数据库本身相关的工作,比如故障的转移、备份和恢复、隔离和安全、行业合规、补丁修复、监控、维护等,都可以交给AWS来做。这样一来,用户可以更加专注于业务本身的创新,而不是把时间浪费在数据库这种非常耗时、耗精力的基本维护上。

    展开全文
  • 现在需要恢复之前的数据库文件。 1.原先的MySQL数据文件: 数据库默认的文件路径是C:\ProgramData\MySQL\MySQL Server 5.5\data ProgramData是个隐藏文件夹, 如类型是MyISAM, 数据文件则以Table.frm、Table.MYD...

    情景:由于电脑加了一个固态硬盘,重装系统。之前的MySQL启动不了,于是重新安装了。现在需要恢复之前的数据库文件。

    1.原先的MySQL数据文件

    数据库默认的文件路径是C:\ProgramData\MySQL\MySQL Server 5.5\data

    ProgramData是个隐藏文件夹,

    如类型是MyISAM, 数据文件则以Table.frm、Table.MYD、Table.MYI

    如类型是InnoDB, 数据文件则存储在”$innodb_data_home_dir/″中的ibdata1文件中(一般情况),结构文件存在于table_name.frm中.

    此次操作对应的数据表为Innodb引擎,data文件夹中存在数据表的frm文件

    我电脑加了固态硬盘,原先的文件还在之前的硬盘上

    2.新数据库的数据文件:

    3.数据拷贝:

    Windows的服务中停止MySQL服务。

    新数据库中的这些文件不用动:

    把之前的数据库文件夹复制过来,各个文件夹里都是对应表的.frm文件。其中ibdata1文件替换新数据库的ibdata1文件。(ibdata1是记录数据库之前操作记录的文件)

    4.重启MySQL服务

    数据库已经出现,表也出现了。能打开表查看表中的数据则是还原数据成功。

    5.遇到的问题

     打不开表,报table xxx doesn't exist

    重新安装mysql,同样方式拷贝数据库文件,即可

    展开全文
  • 采用原始采用率19980Hz封装的wav文件,请使用MATLAB或Audition打开,直接使用播放器可能不支持这个采样率 用于语音增强、音源分离、语音可懂度增强、语音合成、语音识别等在噪声环境下的鲁棒性检测。 本资源别于...
  • 乱ol原始数据库

    2013-07-31 13:58:51
    乱(Ran)ol原始数据库 转自 -- ragezone.com
  • c#连接数据库原始方法 c#连接数据库原始方法 自己留着用
  • 查询数据库原始数据

    2019-05-14 17:33:37
    mysql数据库 #查询指定数据库中的表信息 select table_name,table_comment,create_time,engine from information_schema.tables where table_schema = (select database()) -- 查询指定表的信息 select table_name,...

    mysql数据库

    #查询指定数据库中的表信息
    select table_name,table_comment,create_time,engine from information_schema.tables where table_schema = (select database())
    -- 查询指定表的信息
    select table_name,table_comment,create_time,engine from information_schema.tables where table_schema = (select database()) and table_name = 'user'
    /*查指定数据库中有几张表*/
    select count(1) from information_schema.tables where table_schema = (select database())
    #查询指定表的列信息
    select column_name,column_comment,data_type,column_key,extra from information_schema.columns where table_schema = (select database()) and table_name = 'user'
    
    展开全文
  • Bizi-ScreenTimeApp:项目包含使用Rest API的后端以及原始数据库代码
  • 在读取原始数据的时候会可能属性名的名字与要建立的表的名字不符,这个时候就要为读取到的数据重新命名属性名。 如果数据中存在中文,还要声明数据库的编码。 在原始表中可能会重复数据,需要事先将重复数据...
    1. 在读取原始数据的时候会有可能属性名的名字与要建立的表的名字不符,这个时候就要为读取到的数据重新命名属性名。
    2. 如果数据中存在中文,还要声明数据库的编码。
    3. 在原始表中可能会有重复数据,需要事先将重复数据进行删除,然后再做其他处理。
    4. 在设置主键的时候会发现有些数据的主键相同,但是其他属性值不同,需要对已经插入到数据库中的数据进行更新操作。
    5. 如果一张表中存在外键,则要首先保证外键所在的表已经存在在数据库中。
    6. 如果一张表中存在外键,还要保证要插入的tuple所对应的外键值在外键所在的表中已经存在。
    7. 如果一张表中存在外键,还要注意外键在这张表中的类型与它的原始表中的类型一致或者可比较,否则就会出现因外键规则报错的问题。
    展开全文
  • 今天小编就为大家分享一篇Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML)),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 安装版的旧(原始数据库是在Data文件夹里面 解压版本的位置 无论卸载或者安装哪个版本,里面数据库都是可以相互恢复(复制)的。 如果以前是安装版,后来还是安装版,直接把以前的Data文件夹进行复制就行了,...
  • 常用内存数据库介绍

    万次阅读 2018-07-09 23:18:55
    1. 内存数据库简介 1.1 概念 一、什么是内存数据库 传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,...
  • 多年来,地质原始资料始终散落在各基层地勘单位中保管,介绍了地质原始资料的分类管理的内容及现状,阐述了改善原始地质资料管理的必要性及改进手段,结合实际阐述了地质资料数据库建立应做的工作以及数据库将为日后实现...
  • 生物信息学数据库分类概览

    万次阅读 2018-11-24 18:55:07
    生物与计算机的结合让生物进入大数据时代,为方便管理各种生物数据,科学家们开发...元数据库,合并不同来源的相关数据以更新的或更加方便的形式提供新的数据,通俗的讲就是数据库数据库,代表性的数据库主要以...
  • CK+原数据库,和已标记的327个序列情绪,和已分类的每个人每类表情图片的三帧,均为百度网盘地址
  • 32.下列哪些是开源数据库?(多选) A. MySQL B. Oracle C. MongoDB D. HBase E. SQL Server F. Redis 正确答案是:ACDF 数据库基础面试32题 开源数据库是免费的社区数据库,其源代码可供...
  • Octillery是用于数据库分片的Go包。 它可以与每个OR Mapping库(xorm,gorp,gorm,dbr ...)一起使用,实现数据库/ sql接口或原始SQL。
  • 该项目以非常原始的方式在数据库之间传输数据。 动机 该项目的目的是养成一定的习惯。 这些习惯; 在开始一个项目并按照特定步骤进行该项目之前,先进行单元测试,文档字符串,日志记录,计划。 安装 该项目是在基于...
  • databasesourcecode:Python实战之数据库应用和数据获取随书原始代码
  • 基于链表的C语言实现的原始数据库,涵盖的算法冒泡排序、折半查找。
  • oracle数据库tnsnames.ora原始文件

    热门讨论 2014-03-25 11:31:35
    oracle数据库的配置文件,用于进行连接配置
  • 第一步,在tomcate/conf/context下面加入以下资源定义标签,包含JNDI命名,授权,类型,数据库驱动类,数据库连接路径,帐号,密码,最大活动数,最小空闲数,最大等待数等信息  auth="Container"  type...
  • 解析AIS 将 AIS 原始数据解析为文本文件或 postgres 数据库
  • 国内外常用数据库介绍

    千次阅读 2020-08-03 13:36:30
    中国知识基础设施工程(China National Knowledge Infrastructure,CNKI)是由清华同方光盘股份有限公司、清华大学中国学术期刊电子杂志社、光盘国家工程研究中心联合建设的综合性文献数据库,于1999年6月在CERNET上...
  • 常用图像数据库

    千次阅读 2018-10-15 09:59:42
    1,http://www.multitel.be/cantata/ 这个网址提供了大量的视频和图像的数据库下载索引,并相应的介绍,强烈推荐!大家慢慢去找寻自己的惊喜吧 2,http://www.cvpapers.com/datasets.html CVDatasets on the web ...
  • 目前Mysql中存储了大量的原始数据,现在一个大数据可视化平台,需要从Mysql中获取数据。 由于原始库数据量很大,故需要根据大数据可视化平台的数据需要提取到可视化结果库中, 请问什么开源技术可以实现?
  • 本篇关于文摘型数据库的常用知识常用文摘型数据库文摘数据库文摘数据库的特点和作用著名的中外文文摘数据库Web of Science 检索与利用SCIESSCI合理的创建标题,助于目录的生成如何改变文本的样式插入链接与图片...
  • 全面解析国内6大传统数据库

    千次阅读 2020-08-22 07:30:52
    目前来看,国产传统数据库厂商竞争格局已初显端倪。从市场份额角度分析武汉达梦和南大通用作为第一梯队地位稳固。而随着我国数据库行业的不断成长,一批国产优秀数据库纷纷涌现。2017 年Gart...
  • 分布式数据库的优势是将IO分散在不同的Physical Disk上,每次查询都由多台Server的CPU,I/O共同负载,通过各节点并行处理数据来提高性能,劣势是消耗大量的网络带宽资源,管理难度大。在SQL Server 2012 版本中,...
  • 展示原生的JDBC连接数据库,以及存在的问题。 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 351,466
精华内容 140,586
关键字:

原始数据库有哪些