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

【数据库】数据库语言

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都访问一个公共的共享内存。

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

相关文章:

【数据库】数据库语言

1.4 数据库语言 数据库系统提供数据定义语言(DDL)来定义数据库模式,并提供数据操纵语言(DML)来表达数据库的查询和更新。 通过一系列特定的DDL语句来说明数据库系统所采用的存储结构和访问方式,这种特定的…...

javascript单例模式字面量定义的接口和匿名函数定义的接口;他们之间访问私有变量和私有函数之间的区别

javascript的单例模式:即只有一个实例; 模块模式是在单例模式上扩展而来的 //这种是字面量定义了单例对象的公共接口; 字面量对象调用私有变更和私有函数 var Book(function(){let name;checkBookfunction(value){namevalue;}return{setNam…...

啥是大语言模型LLM

引言: 在人工智能的世界里,有一种技术正迅速改变我们与机器交流的方式——这就是大语言模型LLM(Large Language Model)。它们像是拥有海量知识库的超级智能,能够理解和生成人类语言。那么,大语言模型LLM到底…...

vue3之路由导航故障

通常一个导航守卫函数中会发生这四件事之一: 1.通过调用 return false 中断了这次导航 2.通过返回一个新的位置,重定向到其他地方 (例如,return ‘/login’) 3.正常导航到指定路由 4.抛出了一个 Error 检测导航故障 可以使用vue-router提供的…...

Dr4g0n

信息收集 # nmap -sn 192.168.56.0/24 -oN live.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-04 08:52 CST Nmap scan report for 192.168.56.2 Host is up (0.00012s latency). MAC Address: 00:50:56:FE:B1:6F (VMware) Nmap scan report …...

蓝桥杯每日一题:扫雷

题目来源:第十三届蓝桥杯软件赛省赛 B组 在一个 n n n 行 m m m 列 的方格图中有些位置有地雷, 另外一些位置为空 请为每个空位置标一个整数, 表示周围八个相邻的方格中有多少个地雷 输入 : 输入的第一行包含两个整数 n n n , m m m 第 2 行 到 第 n 1 n 1 n…...

net core API 后台系统操作日志的实现思路

net core API 后台系统操作日志的实现思路 系统操作日志的实现思路主要问题不在于写日志和表结构设计上。 主要问题在识别出哪些数据做了修改。并生成日志。 表中数据列众多,且要监控多个表。如果要监控的每个表都去写代码去监控和转换这样的工作量就会比较大。 如,用户表…...

ORACLE 知识整理

目录 一. 插入指定数量的数据二. 索引2.1 创建索引2.2 删除索引 三. 查询计划四. Oracle SQLPlus常用设置五. 增加删除字段 一. 插入指定数量的数据 ⏹当需要向表中插入若干测试数据的时候,可通过下面这种方式造数据 先从DUAL虚拟表中检索后造出10000条数据后&…...

业务服务:redisson

文章目录 前言一、配置1. 添加依赖2. 配置文件/类3. 注入redission3. 封装工具类 二、应用1. RedisUtils工具类的基本使用 三、队列1. 工具类2. 普通队列3. 有界队列(限制数据量)4. 延迟队列(延迟获取数据)5. 优先队列&#xff08…...

面试算法-100-零钱兑换

题目 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的…...

【Leetcode每日一题】 动态规划 - 使用最小花费爬楼梯(难度⭐)(41)

1. 题目解析 题目链接:746. 使用最小花费爬楼梯 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 一、设定状态表 为了解决这个问题,我们首先要明确一个“状态表”。这个状态表其实就是一个记录…...

Springboot旅游管理系统设计与实现

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一、研究背景…...

c++学习笔记(10)

1. 二分答案是一种常用的算法思想,用于解决一些需要枚举所有可能答案的问题。它的基本思想是将问题的答案范围缩小到一半,然后根据一定的条件判断,再将答案范围缩小到一半,直到找到正确的答案或者确定不存在正确答案为止。 下面…...

Visual Studio - 添加快捷键图标

Visual Studio - 添加快捷键图标 1. Text Editor Toolbar Options -> Add or Remove Buttons -> Customize2. Toolbars3. Commands -> Debug4. Add Command...References 1. Text Editor Toolbar Options -> Add or Remove Buttons -> Customize 2. Toolbars B…...

突破边界:Web3开启数字化社会的新纪元

引言 随着科技的不断进步和数字化社会的发展,Web3正逐渐成为了人们关注的焦点。作为新一代互联网的演进形态,Web3具有突破传统边界、实现去中心化的特点,被认为将开启数字化社会的新纪元。本文将深入探讨Web3的概念、特点、应用场景&#xf…...

docker仓库登录及配置insecure-registries的方法

docker仓库登录及配置insecure-registries的方法 这篇文章主要介绍了docker仓库登录配置insecure-registries的方法,docker客户端如果配置中添加了insecure-registary配置,就不需要在docker 客户端配置上对应证书,如果不配置要在/etc/docker/certs.d/目…...

Lambda函数与Selenium WebDriverWait类一起使用

Lambda函数是一种匿名函数,也称为内联函数或者lambda表达式。它们在Python中用于创建简短的、一次性的函数。Lambda函数通常用于在代码中传递函数作为参数,或者在需要一个简单的函数,但不想正式定义一个函数的情况下使用。 Lambda函数的特点…...

V R元宇宙平台的未来方向|V R主题馆加 盟|游戏体验馆

未来,VR元宇宙平台可能会呈现出以下发展趋势和可能性: 全面融合现实与虚拟世界: VR元宇宙平台将更加无缝地融合现实世界和虚拟世界,用户可以在虚拟环境中进行各种活动,与现实世界进行互动,并且体验到更加逼…...

sox命令用法

play input.wav 播放音频 sox input.wav -n stat 查看音频文件信息 soxi input.wav 查看音频文件信息input sox input.wav -n stat -v 不失真最大调整量 sox -v 0.8 input.wav output.wav 调整音量0.8,(大于1为扩大,小于1为缩小) sox *.wav *…...

Android kotlin全局悬浮窗全屏功能和锁屏页面全屏悬浮窗功能二

1.前言 在进行app应用开发中,在实现某些功能中要求实现悬浮窗功能,分为应用内悬浮窗 ,全局悬浮窗和 锁屏页面悬浮窗功能 等,接下来就来实现这些悬浮窗全屏功能,首选看下第二部分功能实现 2.kotlin实现锁屏页面悬浮窗全屏功能二分析 悬浮窗是属于Android系统的一种浮动窗…...

MTKClient实战指南:从环境搭建到故障排查的完整路径

MTKClient实战指南:从环境搭建到故障排查的完整路径 【免费下载链接】mtkclient MTK reverse engineering and flash tool 项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient MTKClient作为一款专注于联发科芯片组设备的开源工具配置方案,提…...

像素幻梦·创意工坊实操手册:批量生成任务队列管理与异步导出机制

像素幻梦创意工坊实操手册:批量生成任务队列管理与异步导出机制 1. 认识像素幻梦创意工坊 Pixel Dream Workshop(像素幻梦创意工坊)是一款基于FLUX.1-dev扩散模型的像素艺术生成工具。它采用16-bit像素风格的现代化界面设计,为创…...

TC264摄像头循迹进阶:从八邻域到逐行遍历的赛道边界鲁棒提取实战

1. 赛道边界提取为什么需要进阶算法 第一次接触智能车摄像头循迹时,很多人会直接用最简单的找中线方法——比如在每一行图像里取左右两边的黑线中点。这种方法对付直道还行,但遇到去年全国大学生智能车竞赛里的环岛元素,或者像三岔路、十字路…...

RTV主题开发终极指南:如何从零开始创建自定义终端Reddit主题

RTV主题开发终极指南:如何从零开始创建自定义终端Reddit主题 【免费下载链接】rtv Browse Reddit from your terminal 项目地址: https://gitcode.com/gh_mirrors/rt/rtv RTV(Reddit Terminal Viewer)是一个强大的终端Reddit浏览工具&…...

MMC整流器平均值模型simulink仿真,19电平,采用交流电流内环,直流电压外环控制,双二...

MMC整流器平均值模型simulink仿真,19电平,采用交流电流内环,直流电压外环控制,双二阶广义积分器锁相环,PI解耦环流抑制器,调制方式为最近电平逼近调制,完美运行。 波形一二为直流侧电压电流&…...

ICLR 2025 技术趋势解码:大模型优化与生成式AI的协同演进

1. 大模型优化的三大技术路线 过去一年我测试了超过20种大模型优化方案,发现当前技术演进主要集中在三个方向:参数压缩、训练加速和推理优化。先说最让我惊喜的轻量化技术,去年帮某电商客户把70B参数的客服模型压缩到3.8G大小,在移…...

Linux进程(下)

上一篇文章介绍了进程的概念和进程的状态,但进程的知识还有很多,本文继续进行讲解。进程的管理指令之前提到过许多对进程进行管理的指令,但没有进行讲解,在这里统一聊聊。核心指令有四个 ps,top,kill&#…...

CCLE数据库实战指南:从数据下载到肝癌细胞系分析

1. CCLE数据库入门指南 第一次接触CCLE数据库时,我和大多数新手一样感到无从下手。这个由Broad研究所维护的癌症细胞系百科全书,包含了超过1000种人类癌症细胞系的基因组、转录组和药理学数据。对于肝癌研究者来说,它就像一座待挖掘的金矿。 …...

订单状态机实战:代码校验 + SQL 幂等一次讲清

这篇不是“先写 SQL 再补代码”,而是从设计层面把代码层状态机和SQL 幂等更新绑定在一起。状态流转(业务真实模型) UNPAID -> PAID -> SHIPPED -> COMPLETED UNPAID -> CANCELED PAID -> REFUNDING -> REFUNDED SHIPPED-…...

Android OTA包极速提取:payload-dumper-go完整实战指南 [特殊字符]

Android OTA包极速提取:payload-dumper-go完整实战指南 🚀 【免费下载链接】payload-dumper-go an android OTA payload dumper written in Go 项目地址: https://gitcode.com/gh_mirrors/pa/payload-dumper-go payload-dumper-go是一款专为Andro…...