sql – dbms中的原子性是什么

我在1NF形式的DBMS中读过类似下面的内容.

有一句话如下:

“Every column should be atomic.”

任何人都可以通过一个例子向我解释一下吗?

最佳答案

“Every column should be atomic.”

Chris Date说:“请仔细注意,不仅仅是整数3之类的简单事物是合法的值.相反,值可以是任意复杂的;例如,值可能是几何点,或多边形,或X射线,XML文档,指纹,数组,堆栈,列表或关系(等等).“[1]

他还说,“当且仅当在relvar的每个合法值中,每个元组对每个属性只包含一个值时,relvar在1NF中.”[2]

他一般不鼓励使用原子这个词,因为它含有令人困惑的内涵.单值可能是一个更好的术语.

例如,像’2014-01-01’这样的日期是单个值.这不是不可分割的;相反,它显然是可分割的.但dbms使用具有部分的单个值执行两项操作之一. dbms要么返回这些值作为整体,要么dbms提供操作部件的函数. (客户端不必编写代码来操作部件.)[3]

在日期的情况下,SQL可以

>返回整个日期(SELECT CURRENT_DATE),
>返回日期的一个或多个部分(EXTRACT(YEAR FROM CURRENT_DATE)),
>加上和减去间隔(CURRENT_DATE INTERVAL’1’天),
>从另一个日期减去一个日期(CURRENT_DATE – DATE’2014-01-01′),

等等.在这个(狭义)方面,SQL是非常关系的.

>数据库系统简介,第8版,第113页.强调原文.
>同上,第358页.
>在“用户定义”类型的情况下,“用户”被假定为数据库程序员,而不是数据库的客户端.

转载注明原文:sql – dbms中的原子性是什么 - 代码日志