数据库简单认识


数据库简介

所谓数据库,是“按照数据结构来组织、存储和管理数据的仓库”,简而言之,是数据按照某种特定的结构组织起来,以某种特定的方式储存在一个地方(形象地说是一个文件柜),进而方便对这些大量的数据集合进行统一规范的管理。这一电子化的文件柜,就叫做数据库。

不必说当前互联网世界下是一个数据世界,大量的数据产生和膨胀刺激着人们思考如何有效地保存记录数据并且在需要的时候快速检索查询分析;单从计算机程序开发中完善的系统设计与实现来看,用户在某系统中的个人信息、操作服务、属性联系等都需要数据库的存储、管理和保护。作为数据管理的方法和技术,它能更合适地组织数据、更方便地维护数据、更严密地控制数据和更有效地利用数据。


类别

数据库经过了长时间的发展,经历了很多阶段,从类别上看主要分为关系型数据库非关系型数据库

1. 关系型数据库

关系型数据库与常见的表格相似,以行和列的形式存储数据,每个数据表定义好各个字段,根据表的结构存入数据,结构化特征显著。对数据库常见的操作有查询,新增,更新,删除,求和,排序等等,大多数关系型数据库使用结构化查询语言(Structured Query Language)简称SQL来实现这些操作,SQL作为一个综合的、通用的关系型数据库语言,集数据描述、操纵和控制等功能于一体。常见的关系型数据库有Mysql,SqlServer等等。

关系型数据库强调ACID规则,它是关系型数据库的基本理论,具体说来是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),这四个特性针对于数据库事务(transaction)而言,严格遵循以确保正确和可靠。

数据库事务(transaction)是“访问并可能操作各种数据项的一个数据库操作序列”,比如它可以是修改某个用户的账户余额,也可以是仓库存量的记录写入等等,它是逻辑上的划分,可以是一个操作步骤也可以是多个操作步骤(举例:银行转账,先从第一个账户划出款项,再将款项存入第二个账户)。这样看来,事务的执行还蛮简单的,为什么要考虑严格的ACID规则理论呢?原因在于前面所提的是在单用户、单数据库的环境下执行事务,遇上分布式环境、多数据库联机等复杂、可靠性要求大的条件,只有ACID这四个特性才确保了事务的正确性和可靠性。

原子性
一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性
事务的一致性是指事务的执行不能破坏数据库数据的完整性和一致性,一个事务在执行之前和执行之后,数据库都必须处于一致性状态。也就是说,事务执行的结果必须是使数据库从一个一致性状态转变到另一个一致性状态,因此当数据库只包含成功事务提交的结果时,就能说数据库处于一致性状态。而如果数据库系统在运行过程中发生故障, 有些事务尚未完成就被迫中断,这些未完成的事务对数据库所做的修改有一部分已写人 物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。
隔离性
数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。
持久性
事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。 ------来自仙士可博客


2. 非关系型数据库(NoSQL)

非关系型数据库去掉了关系型数据库的关系型特性,数据之间“无关系”,数据库结构简单,容易拓展,能满足随时存储自定义数据格式需求,对于非结构化数据的处理更合适,并且非常适用于大数据处理工作。横向发展、高可用、分布式集群等需求是催生和促进非关系型数据库发展的动力源泉。

在基础理论这块,非关系型数据库对ACID理论进行取舍,不严格遵循ACID理论,而主要的是CAP理论和BASE理论。

CAP理论,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性),不能同时成立。

一致性 是指 “all nodes see the same data at the same time”,即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致;
可用性 是指 “Reads and writes always succeed”,即服务一直可用,而且是正常响应时间;
分区容错性 是指 “the system continues to operate despite arbitrary message loss or failureof part of the system”,即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。

由于CAP理论指出的最多只能通识满足三个特性中的两个,因此出现了三种组合方式:保留CA舍弃P、保留CP舍弃A、保留AP舍弃C。不同的数据库采取的策略不同。


值得注意的是,非关系型数据库没有标准的查询语言(SQL),可能拥有不同的查询API或者查询语言。

非关系型数据库目前有以下几大分类:
① 键值对存储数据库
通常用哈希表实现,这个表中有一个特定的键和一个指针指向特定的数据。主要用于处理大量数据的高访问负载,也用于一些日志系统等等。 数据库举例:Redis

② 列存储
键指向多个列

③ 文档数据库存储
Key-Value对应的键值对,Value为结构化数据

图数据库存储
使用图结构,以点、边为基础存储单元,“点”表示实体,“边”表示实体间的关系。应用于网络的搭建,专注于构建关系图谱。 数据库举例:Neo4j


小结

本文的主要篇幅是对于数据库基础的理论知识做了简单介绍,而不涉及具体某一数据库的实际操作指南。
不管是已经学过并上手某几款数据库的实际使用,还是入门的初学者,对于理论知识的了解和掌握仍然是极其重要的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值