个人的数据库笔记
1.begin - 显性开启一个事务
在 MySQL 命令行的默认设置下,事务都是自动提交的,即执行 SQL 语句后就会马上执行 COMMIT
操作。因此要显式地开启一个事务务须使用命令 BEGIN 或 START TRANSACTION,或者执行命令 SET
AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。
参考:
https://www.nowcoder.com/tutorial/10006/19b107c5f4e84544b448af6c52002087
2.共享锁S ,排它锁X:
> 多读单写:
> 数据O上了排它锁X之后,其他事务不能在对数据O再上任何锁
> 。。。上了共享锁S后,o只能被其他事务上共享锁S,不能上X
>
排它锁(Exclusive),又称为X 锁,写锁。
共享锁(Shared),又称为S 锁,读锁。
读写锁之间有以下的关系:
一个事务对数据对象O加了 S 锁,可以对 O进行读取操作,但是不能进行更新操作。加锁期间其它事务能对O 加 S 锁,但是不能加 X 锁。
一个事务对数据对象 O 加了 X 锁,就可以对 O 进行读取和更新。加锁期间其它事务不能对 O 加任何锁。
即读写锁之间的关系可以概括为:多读单写 ———————————————— 版权声明:本文为CSDN博主「寻烟的衣袖」的原创文章,遵循CC
4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_22162093/article/details/108125817
3.数据库三级模式体系结构
数据库系统在三级模式之间提供了两级映像:模式/内模式的映像、外模式/模式的映像。这两级映射保证了数据库中的数据具有较高的物理独立性和逻辑独立性。
•模式/内模式的映像:实现概念模式到内模式之间的相互转换。
•外模式/模式的映像:实现外模式到概念模式之间的相互转换。
数据的独立性是指数据与程序独立,将数据的定义从程序中分离出去,由DBMS负责数据的存储,从而简化应用程序,大大减少应用程序编制的工作量。数据的独立性是由DBMS的二级映像功能来保证的。数据的独立性包括数据的物理独立性和数据的逻辑独立性。
外模式/模式映像:当模式改变时,由数据库管理员对各个外模式