数据库进阶之路系列---数据库基本认知

对于前端开发工作者而言,很多人都在犹豫或者迷茫于是否要学习数据库,作为一名资深高级前端,个人认为数据库是有必要学习的,而且还要学好。

理由有三:

1,学习数据库能够帮助我们更好的理解项目整体设计模式(架构师框架思维)

2,学习数据库能够提高数据结构设计和应用(架构师底层模型)

3,掌握数据库可以提升前端开发工作者的核心竞争力(架构师思维广度)

言归正传,下面介绍一下数据库:

数据库(DataBase):数据库是按照数据结构来组织、存储和管理数据的仓库。

数据库管理系统(Database Management SystemDBMS):是专门用于管理数据库的计算机系统软件。

数据库管理系统的作用:

1,为数据库提供数据的定义、建立、维护、查询和统计等操作,

2,完成对数据完整性、安全性进行控制。

数据库分类:关系型数据库,非关系数据库

关系型数据库:

采用了关系模型来组织数据的数据库。

关系模型是指二维表格模型,关系型数据库是指由二维表及其之间的联系所组成的一个数据组织。

优缺点:

优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

非关系型数据库:

非关系型数据库:指非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统。

关于ACID
一般来说,事务是必须满足4个条件(ACID)::
原子性(Atomicity,或称不可分割性)、
一致性(Consistency)、
隔离性(Isolation,又称独立性)、
持久性(Durability)。

原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环
节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一
样。

一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预
设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。

隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于
交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read 
committed)、可重复读(repeatable read)和串行化(Serializable)。

持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

非关系型数据库结构:

非关系型数据库以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,不局限于固定的结构,可以减少一些时间和空间的开销。

优点:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。

缺点:
只适合存储一些较为简单的数据,对于需要进行较复杂查询的数据,关系型数据库显的更为合适。不适合持久存储海量数据

非关系型数据库的分类和比较:
1、文档型
2、key-value型
3、列式数据库
4、图形数据库

 

 

参考:

https://www.jianshu.com/p/fd7b422d5f93

https://blog.csdn.net/aaronthon/article/details/81714528

https://www.runoob.com/mysql/mysql-transaction.html

 

 

 

 

你可能感兴趣的:(数据库)