这是我参与「第三届青训营 -后端场」笔记创作活动的的第4篇笔记。
RDBMS
事务:是由一组SQL语句组成的一个程序执行单元,它需要满足ACID的特性
ACID:
原子性(Atomicity):一个事务中的所有操作要么全部执行,要么都不执行。
一致性(Consistency):业务逻辑保证完整性和一致性。
隔离性(Isolation):多个事务并发执行时,互相不影响。
持久性(Durability):事务完成之后,对数据库的更改将持久的保存下来,不会因为宕机而被回滚。
DBMS的三种数据模型:
1、网状模型: 网状数据库所基于的网状数据模型建立的数据之间的联系,能反映现实世界中信息的关联,是许多空间对象的自然表达形式.网状数据库所基于的网状数据模型建立的数据之间的联系,能反映现实世界中信息的关联,是许多空间对象的自然表达形式. 1964年,世界上第一个数据库系统——集成数据存储(Integrated Data Storage,lDS )诞生于通用电气公司。IDS是世界上第一个网状数据库,奠定了数据库发展的基础,在当时得到了广泛的应用。在1970s网状数据库系统十分流行,在数据库系统产品中占据主导地位。
优点: 能直接描述现实世界、存取效率较高
缺点: 结构复杂、用户不易使用、访问程序设计复杂
2、层次模型: 1968年,世界上第一个层次数据库——信息管理系统(Information Management System , IMS)诞生于IBM公司,这也是世界上第一个大型商用的数据库系统。层次数据模型,即使用树形结构来描述实体及其之间关系的数据模型。
优点:结构简单、查询效率高、可以提供较好的完整性支持
缺点:无法表示M:N的关系、插入、删除限制多、遍历子节点必须经过父节点·访问程序设计复杂
3、关系模型:1970年,IBM的研究员E.FCodd博士发表了一篇名为"ARelational Model of Data for Large Shared Data Banks'的论文,提出了关系模型的概念,奠定了关系模型的理论基础。1979年Oracle首次将关系型数据库商业化,后续DB2, SAP Sysbase ASE, and Informix等知名数据库产品也纷纷面世。
优点:实体及实体间的的联系都通过二维表结构表示、可以方便的表示M:N关系、数据访问路径对用户透明
缺点:关联查询效率不够高、关系必须规范化
SQL:
SQL语言:语法风格接近自然语言,高度非过程化,面向集合的操作方式,语言简洁,易学易用
SQL过程:客户端对Router发送请求,Router对RDBMS发送SQL请求,RDBMS发送SQL到Parser,Parser发送AST到Optimizer,Optimizer发送Plan到Executor,然后再对数据进行一系列处理,最终返回结果给客户端
Parser(解析器) :解析器(Parser)一般分为词法分析(Lexical analysis )、语法分析( Syntax analysis )、语义分析(Semantic analyzer )等步骤。
Optimizer(优化器) :可分为基于代价的优化和基于规则的优化
Executor(执行器) :有火山模型、向量化、编译执行等情况