mysql - 数据CRUD操作的理论基础

标签 mysql sql database relational-database theory

我知道 RDBMS 基于 Relational Model , 由 Relational Algebra 支持.

各种关系代数理论概念,如 Selection , Projection , Joins以 SQL 等查询语言实现。但这些操作主要是CRUD(创建、读取、更新、删除)R(读取)

CRUD 是编程的 chalice ,尤其是在企业界。

我想知道 INSERTS、UPDATES、DELETES 是基于哪种编程语言独立的理论基础(可能是也可能不是数学的)建模的?是否存在这样的理论?

如果它存在,它可能可以解释诸如数据库约束等问题。

例如:

You cannot update a single row (tuple) without specifying a unique column (a WHERE clasue).

或者,

If a one to many relation is deleted, the entity on the many side gets deleted (the table in which the other table's primary key is housed).

为了简单起见,我们假设所有 CRUD 都在仅关系模型上运行。

之所以这么问,是因为我需要对一个希望自动化CRUD的产品做深度研发。 我知道我知道人们已经尝试过但都失败了,但我仍然希望有人指出一些理论基础!

编辑 这也将有助于 ORM 的设计,它可以独立于底层数据库模型生成所有 CRUD 操作

编辑 我刚找到这个链接 -> https://cs.stackexchange.com/questions/43672/a-relational-algebra-extended-to-model-the-full-dml-crud-domain不幸的是,这类似于我不得不问的问题,OP 的问题圈成了一个特定的实现!

最佳答案

在关系术语中,CREATE、UPDATE 和 DELETE 操作都是赋值。例如。将 I 插入 T 可以通过以下方式完成:

T = T UNION I;

任何实用的关系语言都应该为这些操作提供语法快捷方式。参见 Tutorial D例如。

关于mysql - 数据CRUD操作的理论基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31637716/

相关文章:

php - PDOException 类是否继承了Exception 类?

java - 我无法使用java导出数据库。谁能帮我?

php - 我的删除查询不会从 mysql 中删除任何内容

MySQL 强制对主键进行过滤使查询速度更快

sql - 更新主表的复杂sql查询

sql - 根据条件重新启动行号

mysql - 我该如何修复sql中的这个语法错误?

c# - 将 asp.net C# 变量分配给 javascript 数组

php - 如何使用 PHP 从 MySQL 数据库存储和检索图像?

MYSQL反规范化数据查找和删除重复项