关系型数据库和非关系型数据库

关系 的个人理解:关系就是表内数据之间的、表之间的关系。表内数据是严格的对应关系,字段缺一不可,值缺一不可,也就是一致的数据结构,这也就是 django 新增字段时,需要删掉数据,重新 migrate。
表之间的关系三种:一对一、一对多、多对多。关系模型指的就是二维表格模型;
关系型数据库以行和列的形式存储数据,行和列的形式被称为表,表是由一组相关实体组成的集合。一组表组成了数据库。表中的一行称为关系的一个元组,用来存储事物的一个实例;表中的一列称为关系的一个属性,用来描述实体的某一特征。表内字段的组成一样,即便某个数据不需要某个字段,系统也会强加上这个字段及默认值,这种结构便于表与表之间进行操作,但它也是关系数据库性能瓶颈的一个因素。
1.关系型数据库理论 - ACIDACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。A – Atomicity – 原子性一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有被执行过一样。C – Consistency – 一致性在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。I – Isolation – 隔离性数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。D – Durability – 持久性事务处理结束后,对数据的修改是永久的,即便系统故障也不会丢失。
2.优缺点关系型数据库的优势:容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;保持数据的一致性(事务处理)由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)支持SQL,可以进行Join等复杂查询(几张表之间)关系型数据库的不足:不擅长的处理大量数据的写入处理为有数据更新的表做索引或表结构(schema)变更字段不固定时应用对简单查询需要快速返回结果的处理非关系数据库结构不固定,集合内数据字段可以不一样,自由度高,可以减少一些时间和空间的开销。四大类型:键值对存储(key-value),文档存储(document store:mongodb),基于列的数据库(column-oriented),还有就是图形数据库(graph database)主流的非关系型数据库有 NoSql、MongoDB、Cloudant、特征:1、使用键值对存储数据;2、分布式;3、一般不支持ACID特性;4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。优点:1、无需经过sql层的解析,读写性能很高;2、基于键值对,数据没有耦合性,容易扩展;3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。缺点:1、不提供sql支持,学习和使用成本较高;2、无事务处理,附加功能bi和报表等支持也不好;关系与非关系型数据库NoSQL,指的是非关系数据库。由上面的叙述可以看到关系型数据库中的表都是存储一下格式化的数据结构,每个元组字段的组成都是一样的,即使不是每个元组都需要所有的字段,但数据库会为每个元组都分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系数据库性能瓶颈的一个因素。而非关系数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加或减少一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。用户用查询(Query)来检索数据库中的数据。一个Query是一个用于指定数据库中行和列的SELECT语句。关系型数据库通常包含下列组件:  客户端应用程序(Client)  数据库服务器(Server)  数据库(Database)  Structured Query Language(SQL)Client端和Server端的桥梁,Client用SQL来象Server端发送请求,Server返回Client端要求的结果。现在流行的大型关系型数据库有IBM DB2、IBM UDB、Oracle、SQL Server、SyBase、Informix等。  关系型数据库管理系统中储存与管理数据的基本形式是二维表。关系型数据库是一组已经被组织为表结构的信息的集合。这些信息以表的形式被存储于磁盘、磁带等物理介质中。每个表可以有多行,而每行又被拆分成多列。关系型数据库一整套数学理论基础,例如关系代数和关系运算是关系型数据库的只要理论基础。日常生活中我们对表结构非常熟悉,例如学生的成绩表,课程表等,这些表格都是以行和列的二维方式来将信息组织在一起。这些信息可以以各种形式存在,例如打印在纸上,显示在电脑的屏幕上,记录在人们的脑海里,存在服务器的磁盘里等等。现在需要一种方便的手段来管理这些信息,最好是随时能查询,新增,删除和更新的,这就是数据关系:·关系是满足一定条件的二维表,表中的一行称为关系的一个元组,用来存储事物的一个实例;表中的一列称为关系的一个属性,用来描述实体的某一特征。表是由一组相关实体组成的集合。所以表和实体集这两个词常常可以交替使用。·关系是一个行与列交叉的二维表,每一列(属性)的所有数据都是同一种数据类型,每一列都有唯一的列名,列在表中的顺序无关紧要;表中的任意两行(元组)不能相同,行在表中的顺序也无关紧要关系的特征:·关系的每一行定义实体集的一个实体,每一列定义实体的一个属性·每一行必须有一个主码,主码是一个属性组(可以是一个属性),它能唯一标识一个实体·每一列表示一个属性,且列名不能重复·列的每个值必须与对应属性的类型相同·列有取值范围,称为域·列是不可分割的最小数据项·行、列的顺序对用户无关紧要关系型数据库与NOSQL关系型数据库把所有的数据都通过行和列的二元表现形式表示出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值