一、数据库类型
mysql数据库属于关系型数据库,关系型数据库就是建立在关系模型基础上的数据库,关系模型是由关系数据结构,关系操作集合,关系完整性约束三部分组成。
二、关系型数据库的优点
1、结构简单,易于维护:都是使用表结构,格式一致
2、使用方便、灵活:使用标准查询语言SQL,允许用户几乎毫无差别地从一个产品到另一个产品存取信息。与关系数据库接口的应用软件具有相似的程序访问机制,提供大量标准的数据存取方法。
3、复杂操作:可以进行join等复杂查询
4、保持数据的一致性
三、关系型数据库设计范式
1、保证每列的原子性,如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。第一范式的合理遵循需要根据系统的实实际需求来定。
2、第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
3、满足第三范式,必须先满足第二范式。简而言之,第三范式要求一个数据库表中不包含已在其它表中已包含的非主键字段。就是说,表的信息,如果能够被推导出来,就不应该单独的设计一个字段来存放(能尽量外键join就用外键join)。
四、mysql事务
1、原子性
事务的最小工作单元,要么全成功,要么全失败
2、一致性
事务开始和结束后,数据库的完整性不会被破坏
3、隔离性
不同事务之间互不影响
4、持久性
事务提交后,对数据的修改是永久性的,即使系统故障也不会丢失
五、隔离级别
1、未提交读,脏读
一个事务读取到另一个事务未提交的数据
2、已提交读,不可重复读
一个事务因读取到另一个事务已提交的update。导致对同一条记录读取两次以上的结果不一致
3、可重复读,幻读
一个事务因读取到另一个事务已提交的insert数据。导致对同一张表读取两次以上的结果不一致
4、串行化
以上3种隔离级别都允许对同一条记录进行读-读、读-写、写-读的并发操作,如果我们不允许读-写、写-读的并发操作,可以使用SERIALIZABLE 隔离级别
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通