本文主要借MySQL数据库介绍数据库中表之间的关系。
=====================================================================
- 数据的原子性
原子性数据(Atomic Data)即为在能够准确描述事物的同时,最小块的数据。
对于一个字段(列)来说,若该列所包含的数据所符合原子性数据的要求,则该列中的数据不会存在多个类型相同的值,否则则该字段的数据不具有原子性。
如下表所示,其食材列则不具有原子性,因为该列包含了许多食材原料,如果想查找出含有某一原料的食物将显得非常麻烦,需要用到额外的字符串处理函数。
食物名称 |
食材 |
面包 |
面粉,牛奶,鸡蛋 |
牛肉面 |
牛肉,面条,香菜 |
。。。 |
。。。 |
对于一张数据表来说,若该表符合原子性数据的要求,则其中不会同时存在多个相同数据类型的字段(列)。
如下表所示,改表中字段“学生1”,“学生2”,“学生3”和“学生4”都表示的是上某位老师课的学生的姓名,各个字段包含的其实是同类型的数据,因此,该表也不符合
老师 |
学生1 |
学生2 |
学生3 |
学生4 |
赵一 |
李三 |
左四 |
陈五 |
龙六 |
王二 |
左四 |
龙六 |
何七 |
李三 |
。。。 |
。。。 |
。。。 |
。。。 |
。。。 |
下表为符合数据原子性的表。
食物 |
商户名称 |
厨师 |
价格 |
豆沙包 |
狗不理包子店 |
狗不理 | <