关系型数据库和非关系型数据库
关系型:MySQL,Oracle,SqlServer。
非关系型:Redis,memcache,mogodb,hadoop等。
二、什么是MySQL?MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属Oracle旗下产品。MySQL 是开源免费的,并且方便扩展。
三、数据库三大范式是什么?第一范式:列不可再分。
第二范式:在第一范式上,行可以唯一区分,主键约束。
第三范式:在第一第二范式上,表的非主属性不能依赖与其他表的非主属性,外键约束。
1、第一范式(1st NF - 列都是不可再分)
第一范式的目标是确保每列的原子性:如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)。
2、第二范式(2nd NF- 每个表只描述一件事情)
首先满足第一范式,并且表中非主键列不存在对主键的部分依赖。 第二范式要求每个表只描述一件事情,是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性。
3、第三范式(3rd NF- 不存在对非主键列的传递依赖)
第三范式定义是,满足第二范式,并且表中的列不存在对非主键列的传递依赖,是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。 除了主键订单编号外,顾客姓名依赖于非主键顾客编号。
范式化设计:
优点:可以尽量得减少数据冗余,使得更新快,体积小。
缺点:对于查询需要多个表进行关联,减少写得效率增加读得效率,更难进行索引优化。
反范式化:
优点:可以减少表得关联,可以更好得进行索引优化。
缺点:数据冗余以及数据异常,数据得修改需要更多的成本。
四、什么是视图?视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查操作,视图通常是由一个表或多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。视图在数据库中不存储数据值,即不占空间。只在系统表中存储对视图的定义。 视图实际上就是一条SELECT语句,类似windows中的快捷方式。
五、视图的意义?视图的意义在于两个方面:
1)简化复杂查询。如果需要经常执行某项复杂查询,可以基于这个复杂查询建立视图,此后查询此视图即可。
2 )限制数据访问。视图本质上就是一条SELECT语句,所以当访问视图时,只能访问到所对应的SELECT语句中涉及的列,对基表中的其它列起到安全和保密的作用。
六、视图的优点?(1) 视图能够简化用户的操作;
(2) 视图使用户能以多种角度看待同一数据;
(3) 视图为数据库提供了一定程度的逻辑独立性;
(4) 视图能够对机密数据提供安全保护。



