当前位置: 首页 > article >正文

【数据库】数据库语言

1.4 数据库语言

数据库系统提供数据定义语言(DDL)来定义数据库模式,并提供数据操纵语言(DML)来表达数据库的查询和更新。

通过一系列特定的DDL语句来说明数据库系统所采用的存储结构和访问方式,这种特定的DDL称作数据存储和定义语言。

域约束。每个属性都必须对应一个所有可能的取值构成的域。声明一个属性属于某个具体的域就相当于约束它可以取的值。

引用完整性。希望能确保一个关系中给定属性集上的取值也在另一关系的某一属性的取值中出现。

DDL的输出放在数据字典中,数据字典包含元数据,元数据是关于数据的数据。

1.4.3 数据操纵语言

基本上有两种类型的数据操纵语言:

过程化的DML:要求用户指定需要什么数据以及如何获得这些数据。

声明化的DML:只要求用户指定需要什么数据,而不必指明如何获得这些数据。

1.4.5 从应用程序访问数据库

SQL的计算和动作必须用一种宿主语言来写,比如Java或Python,在其中使用嵌入式SQL查询来访问数据库中的数据。

应用程序就是用来以这种方式与数据库进行交互的程序。

为了访问数据库,需要将DML语句从宿主发送到执行这些语句的数据库。

1.6 数据库引擎

数据库系统被划分为多个模块,每个模块完成整个系统的一个功能。数据库系统的功能部件大致可分为存储管理器、查询管理器部件和事务管理部件。

1.6.1 存储管理器

存储管理器是数据库系统中负责在数据库中存储的低层数据与应用程序以及向系统提交的查询之间提供接口的部件。

存储管理器将各种DML语句翻译成底层文件系统命令。因此,存储管理器负责数据库中数据的存储、检索和更新。

存储管理器部件包括:

权限及完整性管理器,检测是否满足完整性约束,并检查试图访问数据的用户的权限。

事务管理器,它保证即使系统发生了故障,数据库也保持在一致的状态,并保证并发事务的执行不发生冲突。

文件管理器,它管理磁盘存储空间的分配,管理用于表示磁盘上所存储信息的数据结构。

缓冲区管理器,负责将数据从磁盘上取到内存中,并决定哪些数据应被缓冲存储在内存中。

数据文件,它存储数据库自身。

数据字典,存储关于数据库结构的元数据,特别是数据库模式。

索引,它提供对数据项的快速访问。

1.6.2 查询处理器

DDL解释器:解释DDL语句并将这些定义记录在数据字典中。

DML编译器:将查询语言中的DML语句翻译为包括一系列查询执行引擎能理解的低级指令的执行方案。

1.6.3 事务管理

原子性和持久性的保证是数据库系统自身的职责,是恢复管理器的职责。

当几个事务并发地对数据库进行更新时,即使每个单独的事务都是正确的,数据的一致性也可能被破坏。

并发控制管理器控制并发事务间的相互影响,保证数据库的一致性。事务管理器包括并发控制管理器和恢复管理器。

集中式结构可以应用在共享内存的服务器体系结构中,该结构有多个CPU进行并行处理,但是所有的CPU都访问一个公共的共享内存。

为扩展到更大的数据规模和更高的处理速度,研究人员设计了运行在多台机器的集群上的并行数据库。更进一步,分布式数据库允许跨地域地对多台分离的机器进行数据存储和查询处理。


http://www.kler.cn/a/273798.html

相关文章:

  • PostgreSQL 18新特性之uuidv7函数
  • Fastapi + vue3 自动化测试平台(1)--开篇
  • SpringBoot日常:集成Kafka
  • Profinet转EtherNet/IP网关连接AB PLC的应用案例
  • 自动驾驶控制与规划——Project 6: A* Route Planning
  • 使用Registry explore实现法医检查练习
  • mudo服务器测试二
  • Visual Studio配置libtorch(cuda安装一步到位)
  • camelot pdf提取表格实践(记录)
  • 计算机网络拓扑结构
  • 通过spring boot/redis/aspect 防止表单重复提交【防抖】
  • 一键制作iOS上架App Store描述文件教程
  • 从SQL质量管理体系来看SQL审核(2) - SQL质量标准
  • 优化选址问题 | 粒子群算法求解物流选址问题含Matlab源码
  • Transformer的前世今生 day03(Word2Vec
  • 内盘期货交易系统的全开源代码
  • 代码随想录算法训练营第day31|455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和
  • 安装vcenter管理esxi
  • SD卡RAW故障解析与数据恢复全攻略
  • 24计算机考研调剂 | 【官方】山东师范大学(22自命题)
  • C#,图论与图算法,图(Graph)广度优先遍历(BFS,Breadth First Search)算法与源代码
  • android api 34 编译ffmpeg with libfdk-aac
  • Linux docker1--环境及docker安装
  • 【Excel自动化办公】使用openpyxl对Excel进行读写操作
  • 服务器病毒木马通用排查处理应急响应流程
  • 使用RabbitMQ,关键点总结