数据库的隔离级别

数据库的隔离级别

在正常的数据库操作中,针对同一个字段的修改行为如何处理,主要取决于数据库的隔离级别(Isolation Level)。隔离级别定义了一个事务可能被其他并发事务影响的程度。以下是四种标准的SQL隔离级别,从最低到最高:读未提交(Read Uncommitted):在这个级别上,一个事务可以读取另一个事务未提交的更改。这可能会导致“脏读”,即一个事务可能会看到另一个事务未提交的“脏”数据。读提交(Read Committed):这个级别保证了一个事务只能读取已经提交的更改。大多数数据库默认设置为此隔离级别。这就意味着事务2需要等待事务1提交后,才能读取并修改同一字段的值。可重复读(Repea...

Mysql 2024-03-21 AM 348℃ 0条
事务类型以及恢复

事务类型以及恢复

T1 完成了提交(COMMIT)并不需要恢复。T2 在最后一个检查点之后提交,需要重做(redo)。T3 在系统崩溃时正在进行中,需要撤销(undo)并重启。T4 与T2相同,也需要重做。T5 在崩溃时也正在进行中,需要撤销并重启。系统崩溃前的最后一个检查点以及事务是否完成了提交在图表上以虚线标记。提交的事务(如T1、T2和T4)在系统恢复后通常不需要进一步的操作,或者根据它们是否在最后一个检查点之后完成,可能需要重做以保证它们的效果被持久化。未完成的事务(如T3和T5)在系统恢复后需要撤销并重启,以确保数据库状态的一致性。在数据库系统中,提交的事务是指已经完成并被确认为永久更改数据库状...

Mysql 2024-03-21 AM 357℃ 0条
事务与回滚

事务与回滚

事务一个事务是一个动作,或一系列动作,由单一用户或应用程序执行,用以读取或更新数据库的内容。一个事务是一个逻辑工作单元,它将数据库从一个一致状态转换到另一个一致状态。事务是以下方面的单元:恢复一致性完整性ACID属性一个事务必须满足ACID属性:原子性事务没有部分事务不能部分执行一致性事务将数据库从一个一致状态转换到另一个一致状态注意:在事务执行过程中,数据库可能会出现不一致,但最终必须保证一致性!隔离性事务的效果在事务完成之前对其它事务不可见持久性一旦事务完成,即使系统随后崩溃,其更新也会保留这些属性确保数据库在处理事务时能够保持数据的完整性和可靠性。原子性意味着事务要么完全执行,要么...

Mysql 2024-03-20 PM 241℃ 0条
数据库完整性

数据库完整性

完整性约束:域约束适用于数据类型属性约束适用于列关系约束适用于单个表中的行数据库约束适用于表与表之间域约束域约束(Domain Constraint)通常是指对数据类型有效值范围的限制。在数据库系统中,你可以为某个特定的数据类型定义一个域,并且规定在这个域中数据可以取的值。这就像是为数据类型设定了一个子集,只有这个子集中的值才是合法的。例如,在SQL中,你可以创建一个颜色的域,只允许某些预定义的颜色作为有效值:CREATE DOMAIN Colour AS VARCHAR(15) CHECK (VALUE IN ('red', 'blue', 'green', 'yellow'));在这...

Mysql 2024-03-19 AM 288℃ 0条
Privileges in SQL

Privileges in SQL

数据库权限分配</span1.GRANT ALL ON Employee TO Manager WITH GRANT OPTION用户Manager可以对Employee表进行任何操作,并且可以允许其他用户做同样的事情(通过使用GRANT语句)。2.GRANT SELECT, UPDATE(Salary) ON Employee TO Finance用户Finance可以查看整个Employee表,并且可以改变其Salary列的值,但不能改变其他任何值或者将他们的权限传递给其他用户。移除权限之前授予的权限可以使用以下语句被撤销:REVOKE <privileges> O...

Mysql 2024-03-19 AM 275℃ 0条