数据库引论笔记(一):关系型数据库基本术语
前言
学习数据库建议先花两个小时实践一下mysql的一些基本操作,一上来直接学各种概念容易头大.mysql开源免费下载比较简单,操作也很容易,csdn上也有很多教学,大家加油!
理论部分的各种术语大家不要纠结字面意思,这些术语一般没什么命名的内核,但是可以作为一种命名约定方便交流,我们只需要记住理解术语的指代的对象即可
关系型数据库基本术语
关系型的数据库(database)由表(table)组成,每张表有多个列(column),列首为属性(attribute)
一.结构
- 术语:
- 关系(relation):用来指代表
- 关系实例(relation instance):表中的一个特定的实例,即某一行数据
- 元组(table):用来指代行
- 属性:用来指代表中的列
- 属性的域(domain):对应某一个属性,其取值范围,或者说是允许取值的集合,称为改属性的域
- eg.
- 关系:整张instructor表
- 属性:(ID,name,dep_name,salary)四个都是instructor关系的属性
二.关系模式
理解此类概念,可以与程序设计语言对照
- 关系:指代表(table),对应与变量(variable)的概念
- 关系模式(relation schema):对应与类型定义的概率,通常约定用一个名字来表示关系模式
struct instructor{
int ID,
char[10] name,
...
}
//对应于关系模式
instructor(ID,name,...)
- 关系实例:前面说过指代具体的一行数据,相当于变量的值
三.码
- 超码(superkey):一个或多个属性的集合,可以在一个关系中唯一标识一行数据(元组),一个表可能有多个superkey!
- 候选码(candidate key):对于一个超码,其子集都不是超码,则称其为候选码,一个表也可能有多个候选码!
- 主码(primary key):由设计者人工选择的候选码,用于唯一标识一行数据
- 外码(foreign key):一个关系模式r1,其属性中若包含了另一个关系模式r2的主码.这些(一个或多个)属性的集合称为参照r2的外码