RDBMS是什么
关系数据库管理系统(RDBMS)是一种基于 E. F. Codd 发明的关系模型的数据库管理系统(DBMS)。
什么是表(Table)?
在 RDBMS 中,数据被存储在一种称为表(Table)的数据库对象中,它和 Excel 表格类似,都由许多行(Row)和列(Column)构成。每一行都是一条数据,每一列都是数据的一个属性,整个表就是若干条相关数据的。表是关系型数据库中最常见、最简单的数据存储形式。
下面是一个名为“website”的网站信息表的示例:
+----+----------------+----------------------------+-----+-------+---------+---------+
| id | name | url | age | alexa | uv | country |
+----+----------------+----------------------------+-----+-------+---------+---------+
| 1 | 百度 | https://www.baidu.com/ | 21 | 4 | 5010.5 | CN |
| 2 | 淘宝 | https://www.taob网站站点" rel="nofollow" />
+----------------------------+
| url |
+----------------------------+
| https://www.baidu.com/ |
| https://www.taob网站站点" rel="nofollow" />
程序员往往不刻意区分字段(Field)和列(Column)的概念,而是将它们等同看待,因此您可以说“website 表的 age 字段”,也可以说“website 表的 age 列”,它们都是等价的。为了加深读者理解,本教程也不区分字段和列的概念,而是将它们混用。
什么是记录(Record)?
数据表中的每一行数据都称为一条记录(Record),有多少行数据就有多少条记录。
字段是从垂直方向看表中的数据,记录是从水平方向看表中的数据。上表website 共有 8 条记录,以下是第 3 条记录:
+----+----------------+----------------------------+-----+-------+---------+---------+
| 3 | C语言中文网 | http://c.biancheng网站站点" rel="nofollow" />
程序员往往也不刻意区分记录(Record)和行(Row)的概念,而是将它们等同看待,因此您可以说“website 表的第 3 条记录”,也可以说“website 表的第 3 行”,它们都是等价的。为了加深读者理解,本教程也不区分记录和行的概念,而是将它们混用。
什么是空值(NULL)?
字段的取值可以为 NULL,此时意味着该字段是空的,没有任何值,所以 NULL 被称为“空值”。更多内容请转到《SQL NULL》。注意,NULL 和零值不一样,和包含空白符(空格、缩进、换行等)的字段也不一样,NULL 字段是指在添加记录的时候留空的字段,也即不为该字段指定任何值。
SQL 约束
约束(Constraint)是指表的数据列必须强行遵守的规则,这些规则用于限制插入表中的数据的值,这样能够确保每份数据的准确定和可靠性。
约束可以是列级别,也可以是表级别;列级约束仅作用于某一列,而表级约束则作用于整张表。
下面是 SQL 常用的一些约束:
约束
说明
NOT NULL
非空约束,确保列中不能有 NULL 值。
DEFAULT
默认约束,如果未指定值,那么列将提供默认值。
UNIQUE
约束,确保列中所有的值都不相同。
PRIMARY KEY
主键,用来标识数据表中的每一行/记录。
FOREIGN KEY
外键,用于将两个表连接在一起,让两个表的数据保持同步。
CHECK
检查性约束,用于限定列的取值范围。
INDEX
索引,用于快速从数据库中检索或者获取数据。
数据的完整性
每个 RDBMS 都存在以下几种类别的数据完整性:
实体完整性:表中的一行(一条记录)代表一个实体,表中不能有重复的行。
域完整性:域也即字段,域完整性用来保证字段的取值是理的。
引用完整性:一个表中的字段可以引用另外一个表中的记录。如果某条记录被另外一个表中的字段引用,那么该记录不能被删除。
自定义完整性:除了以上三种基本的完整性约束,不同版本的 RDBMS 在实现时,还可以根据其具体的应用环境,自己制定一些其它的完整性约束。
数据库范式
设计关系型数据库时,需要遵守一些特定的规范才能设计出理的数据库,这些规范就称为“范式”,满足不同程度的规范就是不同的范式。范式的目的在于:
消除冗余数据,比如,不应该将两份相同的数据存储到不同的表中;
确保数据之间的关联性是有意义的。
以上两点不但能减少数据库占用的存储空间,还能确保数据之间有清晰的逻辑关系。
关系型数据库之父 Edgar Frank "Ted" Codd 提出了六种范式,但是从长期实践看,三种范式更具有实际的意义。满足要求的叫范式,简称 1NF;在范式的基础上满足进一步要求的称为第二范式,简称 2NF;以此类推,在第二范式的基础上满足更加进一步要求的称为第三范式,简称 3NF。
遵守的范式级别越高,数据的冗余越少,下一级别的范式包含上一级别的所有范式;也就是说,范式级别越高越严格。
- 随机文章
- 饿了么红包怎么用(饿了么红包怎么用微信支付)
- 儿童教育文章(儿童教育)
- 光遇花手先祖位置(安卓光遇手花先祖)
- 广州4a广告公司(广州4a广告公司创意总监年薪)
- 抖音卡(抖音卡顿怎么解决)
- 兵马俑(兵马俑介绍和历史背景)
- 陈武简历
- 帆船比赛(帆船比赛视频)
- 海猫鸣泣之时游戏(海猫鸣泣之时游戏在哪玩)
- 韩国媳妇和小雪(韩国媳妇和小雪的父亲工资是多少)
- 鬼泣5攻略(鬼泣5攻略第三关怎么跳)
- 地球日主题(2020年世界地球日主题)
- 和柳亚子(和柳亚子先生于田)
- 冰客(冰客果汁)
- yy魔兽(yy魔兽世界)
- 充值卡代理(充值卡代理加盟)
- 拆奶罩
- 郭妮小说(恶魔的法则郭妮小说)
- 东天目山(东天目山景区)
- 杭同(杭同培训中心怎么样)
- 蝙蝠给人类的一封信(蝙蝠给人类的一封信)
- 服饰加盟(服饰加盟店招商)
- 疯狂填字(疯狂填字5)
- 观音普门品(观音普门品念诵全文)
- 河北省大运会(河北省大运会时间)
- 哈利波特官网(哈利波特官网在哪里)
- 骇客神条(骇客神条怎么辨别真假)
- 杜星霖(杜星霖图片)
- 查传倜(查传倜个人生活)
- 广州晓港公园(广州晓港公园正门图片)
