数据库系统课程总结

数据库系统课程总结

一、概述

1、数据库系统:数据库、数据库管理系统,应用程序构成了数据库系统。

  • 数据库:大量的、有组织的、结构化的、长期存储的、共享的数据的集合,把不同用户的数据按照统一结构存在了数据库中。
  • dbms:数据库管理系统,负责对数据库中的数据进行管理和维护,提供给用户访问接口。
  • 应用程序是为了满足某一类用户的需求,和dbms相连,将数据展现给用户。

2、DBMS的优点:控制数据冗余,同一个数据表示为多种信息,数据共享,提高了完整性一致性,提高了安全性。
DBMS的缺点:企业使用费用高,需要硬件配置,需要学习成本,需要管理维护。

二、关系模型

1)数据模型表示实体类型及实体类型间联系的模型
2)数据模型的三级模式、两级映射,分为外模式、概念模式、内模式
3)关系的数据结构非常单一,n个集合的笛卡尔乘积的子集,数据之间通过主码、外码联系。
数据操作有传统的集合操作交并补,也有选择投影连接除法。
实体的完整性,即主码不能为空;参照的完整性,外键一定是参考另外一个关系的主码,要么取值为空,要么为它所参考的值;用户定义的完整性约束,用户自己根据业务的需求定义一些约束。
4)关系的并交差:当两个关系具有相同的维或度时才能操作
选择操作:不改变列 投影:只保留列
自然连接:相同属性取值相等连接,若没有相同属性就是笛卡尔乘积
外连接:左外连接,左边的关系不丢失行
除法:
数据库系统课程总结

三、数据库设计

数据库系统生存周期模型及各阶段主要任务与目标;概念设计任务与目标,概念设计技术—ER建模;逻辑设计任务与目标,ER模型向关系模型转化过程;关系模式规范化理论。

  • 数据库设计分三个阶段:概念、逻辑、物理

生存周期:
1)数据库规划和系统定义
2)需求收集和分析
3)数据库设计 DBMS的选择
4)应用程序的设计 原型法或采用瀑布模型

四、事务管理

  • 事务:完成用户业务,与数据库一次或多次交互的逻辑单位

  • ACID:原子性、一致性、隔离性、持久性

  • 原子性:一个事务要么都做,要么都不做。

  • 一致性:更新某个外键时,根据用户的设定,会同时更新或禁止更新

  • 隔离性:并发事务之间不能相互影响

  • 持久性:事务一经提交,永久有效。

  • 并发控制协议保证隔离性,

  • 恢复协议保证原子性和持久性

  • 触发器机制保证一致性

五、其中的问题

  • 脏读:指一个事务A正在访问数据,并且对该数据进行了修改,但是这种修改还没有提交到数据库中(也可能因为某些原因Rollback了)。这时候另外一个事务B也访问这个数据,然后使用了这个被A修改的数据,那么这个数据就是脏的,并不是数据库中真实的数据。这就被称作脏读。把数据库事务隔离级别调整到READ_COMMITTED
  • 不可重复读:指在一个事务A内,多次读同一个数据,但是事务A没有结束时,另外一个事务B也访问该同一数据。那么在事务A的两次读数据之间,由于事务B的修改导致事务A两次读到的数据可能是不一样的。这就发生了在一个事务内两次读到的数据不一样,解决办法:把数据库事务隔离级别调整到REPEATABLE_READ
  • 幻读:指一个事务A对一个表中的数据进行了修改,而且该修改涉及到表中所有的数据行;同时另一个事务B也在修改表中的数据,该修改是向表中插入一行新数据。那么经过这一番操作之后,操作事务A的用户就会发现表中还有没修改的数据行,就像发生了幻觉一样。这就被称作幻读。解决办法:把数据库事务隔离级别调整到SERIALIZABLE_READ

六、提高查询性能

  • 索引提高查询性能原理;索引类型及应用;查询性能分析方法,查询分析结果理解与问题发现;能够根据实际情况正确运用索引提高查询性能。