1、关系数据库系统
关系数据库系统:是支持关系数据模型的数据库系统。
理论基础:应用数学方法来处理数据库中的数据。
历史发展:
(最早)1962年CODASYL发表“信息代数”提出将数学方法用于数据处理
(系统)1970年IBM公司的E.F.Codd发表的题为“A Relational Model of Data for Shared Data Banks”的论文,开创了数据库系统新纪元,奠定了关系数据库的理论基础。
产品发展:20世纪70年代末,IBM公司成功研制关系数据库实验系统System R
美国加州大学柏克利分校也研制了Ingres关系数据库实验系统
RDBMS商业化产品:BM DB2、Oracle、Ingres、SYBASE, Informix等
2、相关名词
(1)关系(Relation)。一个关系对应一张二维表,二维表名就是关系名。属性的个数称为“元数”,元组的个数称为“基数”。
(2)元组(Tuple)。表中的每行(记录)就是一个元组。元素(d1,d2,d3,…,dn)叫作一个n元组。
(3)属性(Attribute)。现实世界中事物的某个特征,一般术语又称为字段、数据项。如学生的学号、姓名和年龄等
(4)域(Domain).属性取值范围所对应的值集合。关系模型中,所有域都应是原子数据。如整数、字符串;
注意:非原子数据有集合、记录、数组等 如性别的域为{男,女}, 姓名集合 = {张明,李静,赵丽}
(5)分量(Component)。元组的一个属性值。是每一行对应属性的值,如某行数据中的A001、张三、男、数学。
(6)基数(cardinal number) 某属性的唯一键(distinct Keys)的数量,是衡量数据库大小和复杂度的指标。主键列的基数等于表的总行数 性别列只有男女,基数是2。
(7)目或度(Degree) 元组的属性数量,是衡量数据库规模的指标。主码⊆候选码⊆码。
(8)码(Key),又称键、超码(键),能唯一标识某元组的属性(含冗余) 学生(学号,姓名,年龄,班级)
(9)候选码(Candidate Key) 自身就能决定某元组,但其真子集不能决定的码。学生(学号,身份证号,姓名,年龄)候选码:学号、身份证号主码:学号或身份证号;主属性:学号和身份证号;非主属性:姓名,年龄
(10)主码(Primary Key):或称主键,任意一个候选码。有多个候选码存在时,主码是人为选择的
(11)主属性(Prime attribute) 包含在任何候选码中的属性。
(12)非主属性(None Prime attribute) 不包含在任何候选码中的属性
(13)外码(Foreign key)不是本关系的码,而是其他关系的码(相对关系)。要么为空,要么为其对应码中的值 学生(学号,姓名,性别,专业号);专业(专业号,专业名)。对学生表来说,专业号是学生表的外码。
(14)全码(All-key) 属性组正好是候选码(极端条件) 教学(学生,老师,课程)。
3、笛卡儿积与关系
笛卡尔积(cartesian product)是域上的一种集合运算,可以用二维表来表示。
4、关系的三种类型
(1)基本关系(又称基本表或基表),实际存在,是实际存储数据的逻辑表示
(2)查询表。查询结果对应的表
(3)视图表(又称虚表)。只存放定义,不独立存在,由基本表或其他视图表导出