1、列举常见的关系型数据库和非关系型都有那些?
关系型数据库:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL
非关系型数据库:NoSql、Cloudant、MongoDb、redis、HBase
两种数据库之间的区别:
关系型数据库:
关系型数据库的特性
1、关系型数据库,是指采用了关系模型来组织数据的数据库;
2、关系型数据库的最大特点就是事务的一致性;
3、简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
关系型数据库的优点
1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;
2、使用方便:通用的SQL语言使得操作关系型数据库非常方便;
3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率;
4、支持SQL,可用于复杂的查询。
关系型数据库的缺点
1、为了维护一致性所付出的巨大代价就是其读写性能比较差;
2、固定的表结构;
3、高并发读写需求;
4、海量数据的高效率读写;
非关系型数据库
非关系型数据库的特性
1、使用键值对存储数据;
2、分布式;
3、一般不支持ACID特性;
4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
非关系型数据库的优点
1、无需经过sql层的解析,读写性能很高;
2、基于键值对,数据没有耦合性,容易扩展;
3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,
而关系型数据库则只支持基础类型。
非关系型数据库的缺点
1、不提供sql支持,学习和使用成本较高;
2、无事务处理,附加功能bi和报表等支持也不好;
2、MySQL常见数据库引擎及比较?
常见的数据库引擎是MyiSAM和inmoDB
比较:
MyISAM:
1、它不支持事务,也不支持外键,其优势是访问的速度快
innoDB:
1、InnoDB支持事务安全,对比MyISAM引擎,InnoDB写的效率差一些,并且会占据更多的磁盘空间。
2、MySQL支持外键的存储引擎只有InnoDB
3、简述数据三大范式?
第一范式( 1NF): 字段具有原子性,不可再分。
第二范式( 2NF):是在第一范式( 1NF) 的基础上建立起来的,要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列, 以存储各个实例的惟一标识。 这个惟一属性列被称为主关键字或主键。
第三范式( 3NF): 必须先满足第二范式( 2NF)。 简而言之, 第三范式( 3NF) 要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。所以第三范式具有如下特征:1, 每一列只有一个值。2, 每一行都能区分。3, 每一个表都不包含其他表已经包含的非主关键字信息。
4、什么是事务?什么是锁?MySQL如何支持事务?
事务:主要用于处理操作量大,复杂度高的数据。一般来说,事务是必须满足4个条件(ACID):
原子性:所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完