数据库常识日常汇总

一,数据库的范式

  1. 第一范式:是指数据库表中的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。即:列不可分
  2. 第二范式:是在第一范式基础上建立的,首先要满足第一范式的所有特征;其次必须有一个主键;最后没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。比如主键为(CouID,StuID),没有包含在主键中的列“学生课程成绩”既要依赖课程号CouID,也要依赖学生号StuID,不能只依赖一方。即有主键,必须完全依赖
  3. 第三范式:是在第二范式的基础上建立的,首先要满足第二范式的所有特征;其次不能有非主属性的传递函数依赖。即无传递依赖
    传递依赖:非主键列A依赖于非主键列B,非主键列B依赖于主键。
  4. BCNF范式(BCNF):在第三范式的基础上,消除据库的范式
  5. 第一范式:是指数据库表中的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。即:列不可分。 2. 第二范式:是在第一范式基础上建立的,首先要满足第一范式的所有特征;其次必须有一个主键;最后没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。比如主键为(CouID,StuID),没有包含在主键中的列“学生课程成绩”既要依赖课程号CouID,也要依赖学生号StuID,不能只依赖一方。即有主键,必须完全依赖。 3. 第三范式:是在第二范式的基础上建立的,首先要满足第二范式的所有特征;其次不能有非主属性的传递函数依赖。即无传递依赖传递依赖:非主键列A依赖于非主键列B,非主键列B依赖于主键。 4. BCNF范式(BCNF):在第三范式的基础上,消除主属性对码的部分和传递函数依赖

二、数据库的特征

数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。一般分为关系型数据库(MySql,Oracle)与非关系型数据库。

  1. 数据结构化:整体数据的结构化,这是数据库的最主要的特征之一。这里所说的“整体”结构化,是指在数据库中的数据不再仅针对某个应用,而是面向全组织;不仅数据内部是结构化,而且整体式结构化,数据之间有联系;
  2. 数据的共享性高冗余度低、易扩充:因为数据是面向整体的,所以数据可以被多个用户、多个应用程序共享使用,可以大大减少数据冗余,节约存储空间,避免数据之间的不相容性与不一致性;
  3. 数据的独立性高:物理独立性是指数据在磁盘上的数据库中如何存储是由DBMS管理的,用户程序不需要了解;逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的;
  4. 数据由DBMS统一管理与控制。

三、数据库的索引

索引是一个单独的、物理的数据库结构,是数据库的一个表中所包含的值的列表,其中注明了表的各个值所在的存储位置。索引是依赖于表建立的,提供了编排表中数据的方法。
实际上,一个表的存储是由两部分组成的,一部分用来存放表的数据页面,另一部分存放索引页面,索引就存放在索引页面。通常,索引页面相对于数据页面来说小得多。当进行数据检索时,系统先搜索索引页面,从中找到所需数据的指针,再通过指针从数据页面中读取数据。从某种程度上,也可以把数据库看成一本书,把索引看作书的目录,通过目录来查找书中的信息。

  1. 索引的优点
    大大加快数据的检索速度,这也是创建索引的最主要的原因;
    加速表和表之间的连接;
    使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间;
    通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
  2. 索引的缺点
    时间方面:创建索引和维护索引要耗费时间,具体地,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度;
    空间方面:索引需要占物理空间。

四、数据库事务

事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。
事务四大特征:原子性、隔离性、一致性、持久性
   eg:A——B转帐,对应于如下两条sql语句
  update from account set money=money+100 where name=‘B’;
   update from account set money=money-100 where name=‘A’;

1)原子性(Atomicity)
原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。
2) 一致性(Consistency)
一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。
拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。
3)隔离性(Isolation)
隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。
4)持久性(Durability)
持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作

声明:菜鸟学习路上的总结,若有误请您指正,若侵权请您联系我,若转载请您附上链接。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值