(5)数据库理论与E-R图
数据库理论(Database Theory)是在创建数据库的过程涉及创建现实世界的抽象模型;将现实世界的概念作为实体表示在数据库中。E-R图(Entity Relationship Diagramming)用于表示数据模型的图形工具/关系的抽象,主要用于数据库设计阶段,通过实体(Entity)、属性(Attribute)和关系(Relationship)来描述数据之间的结构和联系,例如大学生实体、大学课程实体之间存在选修关系,学生实体具有姓名、学号等属性,课程实体有编号、课程名、学分等属性,这个选修关系就表示学生和课程之间的联系,当然学生和课程联系上之后,考完试还会有成绩等属性。
(6)事务
数据库事务(Database Transaction)是指的是一组不可分割的数据库操作序列。事务具有ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),这些属性确保了数据库操作的可靠性和数据的完整性。例如一个银行数据库,需要实现从账户A向账户B转账的功能,这个操作需要确保两个账户的余额更新是原子的,即要么全部成功,要么全部失败,可以将SQL语句集合为事务,将账户A转出和账户B转入作为事务提交。
-
原子性(Atomicity):在这个例子中,转账操作包括两个更新操作,要么全部成功(账户A扣除100元,账户B增加100元),要么全部失败(如果其中一个操作失败,事务会被回滚,账户余额保持不变)。
-
一致性(Consistency):事务确保在转账前后,账户A和账户B的总余额保持不变。例如,转账前总余额为1500元,转账后仍为1500元,保证数据库的完整性约束不被破坏。
-
隔离性(Isolation):如果多个事务同时进行转账操作,隔离性确保每个事务的执行结果不会受到其他事务的干扰。例如,两个事务同时从账户A向账户B和账户C转账,隔离性保证每个事务都能正确地更新账户余额。
-
持久性(Durability):一旦事务提交,账户余额的更改将被永久保存,即使系统发生故障也不会丢失。数据库系统通过日志记录等机制来保证持久性。
(7)数据库原则
数据一致性和完整性原则
- 数据一致性:确保数据库中的数据在逻辑上是一致的,没有矛盾。例如,如果一个学生的成绩在不同的表中记录,这些记录应该是一致的。
- 数据完整性:保证数据的准确性和可靠性,通常通过约束条件来实现,如:
- 实体完整性:确保每个表中的每个记录都是唯一的,通常通过主键约束来实现。
- 参照完整性:确保表之间的关系是正确的,通常通过外键约束来实现,防止引用不存在的记录。
- 用户定义完整性:根据业务需求定义的特定约束,如成绩字段的值应在0到100之间。
数据独立性原则
- 数据独立性:指数据的存储与应用程序的逻辑分离,使得数据的修改不会影响应用程序的运行。数据独立性分为:
- 物理数据独立性:数据的物理存储结构(如存储位置、存储方式)的改变不会影响应用程序的运行。
- 逻辑数据独立性:数据的逻辑结构(如表结构、字段名)的改变不会影响应用程序的运行。
数据安全性原则
- 数据安全性:保护数据库中的数据不被非法访问、篡改或丢失。通常通过以下措施实现:
- 用户认证:确保只有授权用户才能访问数据库。
- 访问控制:对不同用户设置不同的访问权限,限制用户对数据的访问范围和操作类型。
- 数据加密:对敏感数据进行加密存储和传输,防止数据泄露。
数据可维护性原则
- 可维护性:数据库设计应便于维护和更新。良好的数据库设计应:
- 结构清晰:表结构和关系设计合理,易于理解和修改。
- 易于扩展:随着业务的发展,能够方便地添加新的数据表或字段。
- 减少冗余:避免数据冗余,减少数据更新时的复杂性和错误。
性能优化原则
- 性能优化:设计数据库时应考虑查询和更新的效率,以提高系统的响应速度和处理能力。常见的优化措施包括:
- 合理使用索引:为经常查询的字段建立索引,加快查询速度。
- 优化查询语句:编写高效的SQL查询语句,减少不必要的数据扫描和计算。
- 合理设计表结构:根据数据的使用情况合理设计表结构,如适当的数据分区和归一化处理。
可扩展性原则
- 可扩展性:数据库设计应具有良好的可扩展性,能够适应业务需求的变化和数据量的增长。例如:
- 支持水平扩展:能够通过增加服务器数量来提高系统的处理能力。
- 支持垂直扩展:能够通过升级服务器的硬件配置来提高系统的性能。