各种范式是条件递增的联系,越高的范式数据库冗余越小。常用的数据库三大范式为:
第一范式(1NF):每个列都不可以再拆分,强调的是列的原子性。第一范式要求数据库中的表都是二维表。
第二范式(2NF):在第一范式的基础上,一个表必须有一个主键,非主键列 完全依赖 于主键,而不能是依赖于主键的一部分。
第三范式(3NF):在第二范式的基础上,非主键列只依赖(直接依赖)于主键,不依赖于其他非主键。
作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/database-handbook/px999r/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
各种范式是条件递增的联系,越高的范式数据库冗余越小。常用的数据库三大范式为:
第一范式(1NF):每个列都不可以再拆分,强调的是列的原子性。第一范式要求数据库中的表都是二维表。
第二范式(2NF):在第一范式的基础上,一个表必须有一个主键,非主键列 完全依赖 于主键,而不能是依赖于主键的一部分。
第三范式(3NF):在第二范式的基础上,非主键列只依赖(直接依赖)于主键,不依赖于其他非主键。
作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/database-handbook/px999r/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
事务是一个不可分割的工作逻辑单元。如果任意一个操作失败,那么整组操作即为失败,会回到操作前状态或者是上一个节点。
因此,事务是保持 逻辑数据一致性 和 可恢复性 的重要利器。而锁是实现事务的关键,可以保证事务的完整性和并发性
DBMS 采用 锁机制 来实现事务的隔离性。当多个事务同时更新数据库中相同的数据时,只允许 持有锁的事务 能更新该数据,其他事务必须等待,直到前一个事务释放了锁,其他事务才有机会更新该数据。
char 与 varchar 的区别
char 表示定长字符串,长度是固定的,最多能存放的字符个数为 255,和编码无关;而 varchar 表示可变长字符串,长度是可变的,最多能存放的字符个数为 65532;
使用 char 时,如果插入数据的长度小于 char 的固定长度时,则用空格填充;
因为固定长度,char 的存取速度比 varchar 快很多,同时缺点是会占用多余空间,属于空间换时间;