关系模型基本概念
- 格式:doc
- 大小:34.00 KB
- 文档页数:3
关系模型的基本概念关系模型是数据库设计中常用的一种模型,用于组织和表示数据。
关系模型基于关系代数和集合论的理论基础,其核心概念包括:1. 表(Table):表是关系模型中的基本结构,用于存储数据。
表由行和列组成,每一行表示一个记录,每一列表示一个属性。
表有时也被称为关系。
2. 元组(Tuple):表中的一行被称为元组。
每个元组包含表中所有属性的数据值。
例如,一个包含学生信息的表可能有一行数据表示一个学生的信息。
3. 属性(Attribute):表中的一列被称为属性。
每个属性存储特定类型的数据,例如姓名、学号、成绩等。
属性也被称为字段或列。
4. 域(Domain):属性的取值范围被称为域。
域定义了属性可以包含的所有合法值。
例如,在一个表示性别的属性中,域可能是{男, 女}。
5. 关键字(Key):关键字是能够唯一标识表中元组的一个或一组属性。
一个表可以有一个或多个关键字。
主关键字通常用于唯一标识元组。
6. 关系代数:关系代数是一组基本的操作,用于处理关系数据库中的数据。
这些操作包括选择、投影、连接、并、差等,它们用于从一个或多个关系中获取所需的数据。
7. 外键(Foreign Key):外键是一个表中的列,其值与另一个表的主键相对应,用于建立表之间的关系。
外键用于维护表之间的引用完整性。
8. 范式(Normalization):范式是一种设计原则,目的是减少数据冗余并提高数据库的一致性。
常见的范式包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等。
9. SQL(Structured Query Language):SQL是一种用于管理和查询关系数据库的标准化语言。
它包括数据查询、插入、更新、删除等操作。
这些基本概念构成了关系数据库管理系统(RDBMS)中的关键元素,帮助数据库设计人员组织和管理数据。
通过良好的关系模型设计,可以实现数据的高效存储、检索和维护。
关系模型关系模型的概念,源于数据库领域。
它是一种用于描述和分析实体之间联系的模型,可以帮助我们理解各种事物之间的联系和行为。
关系模型通常由实体、属性和关系三个要素构成。
本文将介绍关系模型的基本概念和原理,并探讨其应用于不同领域的可能性。
首先,我们来了解一下关系模型的基本要素。
实体是指现实世界中具体存在的事物,可以是人、物、事件等。
属性是描述实体特征的性质,例如人的姓名、年龄、性别等。
关系则是不同实体之间的联系,可以是一对一、一对多或多对多的关系。
关系模型可以用表格或图形的形式进行展示。
在表格中,每一行表示一个实体,每一列表示一个属性,不同的单元格则记录了实体与属性之间的关系。
这种结构化的方式使得我们能够通过查询、分析和处理实体和属性之间的关系,从而更好地理解事物的内在机制。
关系模型在数据库中得到广泛应用。
通过建立实体与属性之间的关系,我们可以用数据库来存储和管理大量的数据。
例如,在一个人力资源管理系统中,我们可以建立一个员工表,其中记录了每位员工的姓名、工号、职位等属性。
这样一来,我们就可以根据需要查询员工的信息,比如按照职位筛选出所有经理级别的员工。
除了在数据库领域,关系模型还可以应用于其他诸多领域。
在社交网络中,我们可以用关系模型来分析不同用户之间的关系,从而推荐可能感兴趣的内容给他们。
在经济学中,我们可以通过建立企业与市场之间的关系模型,来研究市场供求关系和价格变动。
在生物学中,关系模型可以帮助我们理解生物体的进化、群体行为和遗传变异。
然而,关系模型也存在一些局限性。
首先,关系模型侧重于描述实体之间的关系,而对于实体的特征和行为则不够详细。
例如,在一个医院管理系统中,关系模型可以描述医生和患者之间的关系,但无法描述医生的专业技能和患者的病情。
其次,关系模型假设实体之间的关系是静态的,而现实世界中的关系往往是动态变化的。
因此,在某些情况下,我们可能需要扩展关系模型或采用其他模型来更好地描述实体和关系之间的动态性。
21723读书笔记关系模式的基本概念21/7/23 读书笔记⽬录数据挖掘导论关系模型的基本概念关系模型的数据结构——关系模型⼀般由数据结构、操作集合和约束性条件构成。
关系,就是关系模型的数据结构。
关系是动态的,我们认为在关系数据库系统中关系就是数据,因此数据更新时发⽣改变,关系也会随之改变。
对于关系的形式化定义,基于以下概念:域:⼀组数据类型相同的值的集合,⽐如所有正整数、{东,南,西,北}等。
笛卡尔积:⼀组域之间构成的完全的笛卡尔积。
笛卡尔积可以以每个域为列、每种组合情况为⾏,构成⼀张表。
元组:每种组合情况对应⼀个元组,⼜可称为⼀条记录关系:笛卡尔积的⼀个⼦集,其关联的域的数量称为关系的⽬或度。
关系可以表⽰为⼀张表。
在笛卡尔积基础上的限定与扩充:笛卡尔积中,⼀个元组中域具有先后次序;关系中,列的次序可以任意交换,⾏的顺序也可以任意交换;笛卡尔积中,每个元组中的元素还可以是⼀个集合;关系中,限定元组中的任⼀个元素必须是原⼦化的,不可再分(表中不能有表)属性:由于域可以相同,我们对每个列对应称为属性,不同列之间即使对应的域相同,但是属性不同。
关系的⼀个域可以对应多种属性,每种属性只能属于⼀个域。
候选码:关系中的某个属性的值能唯⼀标识⼀个元组,符合这个要求的属性的集合构成候选码主码:从候选码中选出⼀个属性作为主码主属性:候选码中所有的属性都称为主属性关系模式:关系所关联的属性集合,以及属性与域之间的对应关系,构成⼀个关系模式。
关系模式是静态的,其在数据库进⾏更新的过程中保持不变。
关系数据库系统是⽀持关系模型的数据库系统。
关系数据库系统与关系模式是两个层次的概念,他们都由型与值两⽅⾯组成。
型是静态的、稳定的,值是在数据库更新过程中不断改变的。
关系数据库的型 = 关系数据库模式 = 对若⼲域的定义 + 对这些域上的关系模式的定义关系数据库的值 = 若⼲关系模式在特定时刻对应关系的集合 = 若⼲关系模式的值的集合关系模式的型 = 属性的集合 + 属性与域之间映像的集合关系模式的值 = 关系 = 特定时刻内该关系模式描述下的取值注意涉及的关系模式和关系都可能被称为关系,需要我们根据上下⽂加以区分。
关系模式的概念关系模型的概述
E.F.Codd提出
1. 基本操作
2. 基本结构
3. 完整性约束
运算
1. 关系代数:基于集合的运算,⼀次⼀个集合
2. 关系演算
元组演算:基于逻辑的演算
域演算:基于⽰例的演算
什么是关系
域:具有相同的数据类型
笛卡尔积:所有可能的n元组的集合
关系:⼀组域的笛卡尔积的⼦集
关系模式:R{A1,A2,A3,A4}其中n为度,元组的基数为其常数
关系的特性
每个列的分量来⾃同⼀个域,是同⼀类型的数据
关系以内容来区分,⽽不是属性在关系上的位置来区分
必须满⾜第⼀范式
1. 候选键:属性组,唯⼀区分⼀个元组,去掉某⼀个属性,它就不具有这⼀性质
2. 主键:当有多个候选码时,选择⼀个作为主码
3. 外键:关系R中的属性组,在R中不是候选键,却在关系S中是候选键
关系模型的完整性约束
1. 实体完整性约束:关系的主码不能为空值
2. 参照完整性约束:关系S中的外键值要么为空值,要么为关系R中主键值
3. ⽤户⾃定义完整性:⽤户根据具体环境定义的完整性约束。
关系模型的概念和定义并解释关系模型是数据管理领域中最常用的一种数据模型,它用于描述和组织数据在数据库中的存储和关联方式。
关系模型是基于关系代数和关系演算理论的数学模型,其核心思想是将数据组织为二维的表格形式,由行和列来表示关系的元组和属性。
本文将从关系模型的概念、定义、特点和基本结构等方面阐述关系模型的本质和原理。
1.概念和定义关系模型是由埃德加·科德提出的,旨在解决传统的人工记录方式的缺点。
关系模型的核心是关系,它是指在一定的关系模式(Schema)下,由n个元组组成的二维表格,每个元组表示一个实体,每个属性表示一个特征。
关系模式是关系的逻辑模型,用于描述关系中的属性和约束条件。
关系模式可以看做是关系的模板,其中包括属性的名称、类型、长度等。
关系模型的基本定义包括以下几个要素:-域(Domain):数据元素的集合,用来描述属性的取值范围。
每个属性都需要指定一个域,比如姓名属性的域可以是字符串的集合,年龄属性的域可以是整数的集合。
-属性(Attribute):关系表格中的列,用来描述实体的特征。
每个属性都有一个名称和所属的域。
-元组(Tuple):关系表格中的行,用来描述一个实体的具体信息。
-关系(Relation):关系模型的基本单位,由关系表格组成,每个关系都有一个名称(relation name)和一个关系模式(relation schema)。
2.关系模型的特点关系模型具有以下几个核心特点:-基于关系代数和关系演算理论:关系模型的设计基础是关系代数和关系演算理论,这两者是描述和操作关系的数学工具。
-结构化数据:关系模型使用结构化的表格形式来组织数据,每个表格都有明确定义的列和行,使数据的结构清晰可见。
-独立于物理存储:关系模型与实际的物理存储方式无关,可以在不同的数据库系统中实现。
-数据的唯一性:关系模型要求每个关系中的元组都是唯一的,不能存在重复的数据。
-数据的一致性和完整性:关系模型支持定义各种约束条件来保证数据的一致性和完整性,比如主键约束、外键约束、唯一约束等。
一.关系数据模型的数据结构关系数据模型的数据结构一.引言在计算机科学中,关系数据模型是一种用于管理和组织数据的结构化方法。
它建立在关系代数和关系演算的基础上,通过使用表格(被称为关系)来表示数据,并通过定义关系之间的关联和约束来描述数据之间的关系。
二.关系数据模型的基本概念1. 关系关系是关系数据模型的基本单元,它由具有相同结构的元组组成。
元组是关系中的行,每个元组包含一组属性或字段,这些属性描述了元组所代表的实体或对象。
2. 属性属性是关系中的列,它描述了元组所代表的实体或对象的特征。
每个属性都有一个名称和一个数据类型。
3. 元组元组是关系中的行,每个元组代表一个实体或对象。
每个元组的属性值被称为元组的实例。
主键是关系中的一个或多个属性,它们唯一地标识了关系中的每个元组。
主键的值不能重复,并且不能为空。
5. 外键外键是一个或多个属性,它们建立了其他关系之间的联系。
外键属性的值必须是已经存在于相关关系的主键中的值。
6. 关系之间的关系关系之间的关系可以通过在关系中添加外键来建立。
这种关系称为关联关系,它表示了不同关系之间的联系。
三.关系数据模型的操作1. 查询查询操作用于从关系中检索数据。
查询可以根据指定的条件和约束从关系中选择特定的数据。
2. 插入插入操作用于向关系中插入新的元组。
插入操作必须满足关系的约束条件。
3. 更新更新操作用于修改关系中的现有元组的属性值。
删除操作用于从关系中删除一个或多个元组。
四.关系数据模型的约束1. 实体完整性约束实体完整性约束确保关系中的每个元组都具有唯一的主键值。
2. 参照完整性约束参照完整性约束确保外键值必须引用已存在于其他关系中的主键值。
3. 唯一性约束唯一性约束确保关系中指定的属性值是唯一的。
4. 空值约束空值约束确保关系中指定的属性值不为空。
五.本文档涉及附件附件:<附件名称>六.本文所涉及的法律名词及注释1. 法律名词一:注释一解释或定义该法律名词一的含义。
简述关系模型的三要素关系模型是数据库设计中最为重要的概念之一,它是建立在数学理论基础上的一种数据模型。
关系模型主要由三个要素组成,分别是关系、属性和域。
一、关系关系是关系模型中最基本的概念,它用来描述现实世界中的一个实体集合。
关系可以看作是一个二维表格,由若干行和若干列组成。
每一行代表一个实体,每一列代表一个属性。
关系中的每个元素都是一个单一的、不可再分的数据项,被称为一个关系实例或元组。
关系的表头是属性名,表体是实际数据。
关系具有以下特点:1.关系中的元组是无序的,即关系中的元组是没有先后顺序的。
2.关系中的属性是有序的,属性的顺序是固定的。
3.关系中的元组是唯一的,不存在重复的元组。
每个元组都有一个唯一标识符,被称为主键。
二、属性属性是关系模型中关系表格中的列,用来描述关系中的某个特征。
一个关系可以包含多个属性,每个属性具有一个唯一的名称,并且具有一个确定的数据类型。
属性可以分为主属性和外属性,主属性是关系中唯一标识一个元组的属性,外属性是关系中非主属性。
属性具有以下特点:1.属性是原子的,即属性的值不可再分。
2.属性具有确定的数据类型,如整数、字符、日期等。
3.属性的取值范围是有限的,每个属性都有一个域,域是属性的所有可能取值的集合。
三、域域是属性的取值范围,它是属性的所有可能取值的集合。
域可以是有限的,也可以是无限的。
一个属性的域可以根据需要定义,域可以是数字、字符、日期等。
总结:关系模型的三要素——关系、属性和域——是数据库设计中最为重要的概念。
关系用来描述现实世界中的实体集合,属性用来描述关系中的特征,域是属性的取值范围。
通过合理地使用这三个要素,可以构建出高效、可靠的数据库系统,实现对数据的有效管理和利用。
数据库设计与关系模型考试(答案见尾页)一、选择题1. 关系模型的基本概念是什么?A. 数据库管理系统(DBMS)B. 数据库模式(Schema)C. 数据库索引D. 数据库事务2. 在关系模型中,如何表示一个实体集及其属性?A. 表(Table)B. 索引(Index)C. 触发器(Trigger)D. 规则(Rule)3. 在关系数据库中,什么是主键(Primary Key)?A. 用于唯一标识表中每一行的一个或一组属性B. 用于限制表中记录数量的约束C. 用于定义表之间关系的约束D. 用于快速检索表中特定行的子查询4. 什么是外键(Foreign Key)?A. 用于在两个表之间建立联系的属性B. 用于唯一标识表中每一行的一个或一组属性C. 用于限制表中记录数量的约束D. 用于快速检索表中特定行的子查询5. 什么是规范化(Normalization)?A. 一种设计数据库的方法,旨在消除数据冗余并提高数据完整性B. 一种用于优化数据库性能的技术C. 一种用于定义表之间关系的约束D. 一种用于快速检索表中特定行的子查询6. 在关系数据库中,什么是第二范式(Second Normal Form, NF)?A. 一个表已经符合第一范式,并且所有非主键列都完全依赖于整个主键B. 一个表已经符合第一范式,并且所有非主键列都完全依赖于主键C. 一个表已经符合第二范式,并且所有非主键列都完全依赖于整个主键D. 一个表已经符合第二范式,并且所有非主键列都完全依赖于主键7. 在关系数据库中,什么是第三范式(Third Normal Form, NF)?A. 一个表已经符合第二范式,并且所有非主键列都直接依赖于主键B. 一个表已经符合第二范式,并且所有非主键列都直接依赖于主键C. 一个表已经符合第三范式,并且所有非主键列都直接依赖于主键D. 一个表已经符合第三范式,并且所有非主键列都直接依赖于主键8. 在关系数据库中,什么是候选键(Candidate Key)?A. 一个表中能够唯一标识一行数据的属性或属性组合B. 一个表中能够唯一标识一行数据的属性或属性组合C. 一个表中能够唯一标识一行数据的属性或属性组合D. 一个表中能够唯一标识一行数据的属性或属性组合9. 在关系数据库中,什么是主键约束(Primary Key Constraint)?A. 一个表中用于唯一标识一行数据的属性或属性组合B. 一个表中用于唯一标识一行数据的属性或属性组合C. 一个表中用于唯一标识一行数据的属性或属性组合D. 一个表中用于唯一标识一行数据的属性或属性组合10. 在关系数据库中,什么是外键约束(Foreign Key Constraint)?A. 一个表中用于唯一标识一行数据的属性或属性组合B. 一个表中用于唯一标识一行数据的属性或属性组合C. 一个表中用于唯一标识一行数据的属性或属性组合D. 一个表中用于唯一标识一行数据的属性或属性组合11. 在关系数据库中,以下哪个不是关系模型的基本组成部分?A. 关系B. 属性C. 域D. 键12. 在关系数据库中,什么是主键?A. 用于唯一标识表中的每一行数据B. 用于唯一标识表中的每一列数据C. 用于唯一标识整个表的数据D. 用于唯一标识表中的一组记录13. 在关系数据库中,什么是外键?A. 用于唯一标识表中的每一行数据B. 用于唯一标识表中的每一列数据C. 用于建立两个表之间的联系D. 用于唯一标识表中的一组记录14. 在关系数据库中,什么是超键?A. 由多个属性组合而成的集合,可以唯一标识表中的每一行数据B. 由多个属性组合而成的集合,可以唯一标识表中的每一列数据C. 由多个属性组合而成的集合,可以唯一标识表中的某一组记录D. 由多个属性组合而成的集合,可以唯一标识整个表的数据15. 在关系数据库中,什么是候选键?A. 由多个属性组合而成的集合,可以唯一标识表中的每一行数据B. 由多个属性组合而成的集合,可以唯一标识表中的每一列数据C. 由多个属性组合而成的集合,可以唯一标识表中的某一组记录D. 由多个属性组合而成的集合,可以唯一标识整个表的数据16. 在关系数据库中,什么是主键约束?A. 确保列中的值不重复B. 确保列中的值不为空C. 确保列中的值唯一D. 确保行与列之间的关系不变17. 在关系数据库中,什么是外键约束?A. 确保列中的值不重复B. 确保列中的值不为空C. 确保列中的值唯一D. 确保行与列之间的关系不变18. 在关系数据库中,什么是唯一约束?A. 确保列中的值不重复B. 确保列中的值不为空C. 确保列中的值唯一D. 确保行与列之间的关系不变19. 在关系数据库中,什么是检查约束?A. 确保列中的值不重复B. 确保列中的值不为空C. 确保列中的值唯一D. 确保行与列之间的关系不变20. 在关系数据库中,什么是触发器?A. 一种数据库对象,用于在特定事件发生时自动执行一系列操作B. 一种数据库对象,用于在特定事件发生时插入新记录C. 一种数据库对象,用于在特定事件发生时更新现有记录D. 一种数据库对象,用于在特定事件发生时删除记录21. 在关系模型中,如何表示两个表之间的关联?A. 使用字段B. 使用索引C. 使用主键和外键D. 使用视图22. 以下哪个不是关系数据库中的基本关系运算?A. 选择(SELECT)B. 投影(PROJECT)C. 连接(JOIN)D. 并集(UNION)23. 在关系数据库中,如何确保数据的完整性?A. 使用约束(如主键、外键、唯一性约束)B. 使用触发器C. 使用存储过程D. 使用事务24. 什么是规范化?它在关系数据库设计中的作用是什么?A. 规范化是将数据分解为多个相关表的简单查询B. 规范化是通过消除数据冗余来提高数据一致性的过程C. 规范化是将数据分散到多个数据库中以提高性能D. 规范化是通过对数据进行分类来提高查询效率25. 在关系数据库中,什么是视图?A. 一种虚拟表,其内容由查询定义,基于一个或多个实际表B. 一种数据库对象,用于存储用户自定义的数据类型和函数C. 一种数据库对象,用于存储和管理复杂的数据结构D. 一种数据库对象,用于执行复杂的查询和计算26. 在关系数据库中,什么是存储过程?A. 一种存储在数据库中的预编译SQL语句,可由用户调用执行B. 一种存储在客户端计算机上的程序,可由用户直接执行C. 一种存储在数据库中的查询,可由其他程序调用执行D. 一种存储在数据库中的数据,可直接被用户访问和使用27. 数据库设计的基本步骤是什么?A. 概念设计、逻辑设计、物理设计B. 逻辑设计、物理设计、概念设计C. 物理设计、概念设计、逻辑设计D. 概念设计、物理设计、逻辑设计28. 在关系模型中,如何表示一个实体集?A. 使用表格B. 使用记录C. 使用字段D. 使用键29. 关系模型的三大特性是什么?A. 可复用性、可持久性、完整性B. 可串行化、原子性、一致性C. 可更新性、多对一关系、复合属性D. 唯一性、传递性、双向性30. 什么是外键?它有什么作用?A. 用于唯一标识表中的一个属性B. 用于建立两个表之间的联系C. 用于唯一标识表中的一行D. 用于定义表的约束条件31. 什么是规范化?为什么它很重要?A. 规范化是将数据分解为多个相关表的过程B. 规范化是为了减少数据冗余C. 规范化是为了提高数据查询效率D. 规范化是为了确保数据的完整性和一致性32. 在关系数据库中,什么是级联操作?A. 当插入或更新一个表中的数据时,自动更新另一个表中的相关数据B. 当删除一个表中的数据时,自动删除另一个表中的相关数据C. 当修改一个表中的数据时,自动修改另一个表中的相关数据D. 当查询一个表中的数据时,自动查询另一个表中的相关数据33. 什么是SQL注入攻击?如何防止它?A. SQL注入攻击是利用SQL代码注入到Web应用程序中,以获取未经授权的数据访问权限B. 防止SQL注入攻击的方法包括使用参数化查询、严格的输入验证、使用适当的错误处理机制等C. SQL注入攻击是一种网络安全威胁,旨在破坏数据库结构D. 以上都不是34. 在数据库设计中,如何处理多对多关系?A. 使用连接表B. 使用子表C. 使用视图D. 使用计算列35. 什么是事务?为什么它需要ACID特性?A. 事务是一组必须全部完成或全部不完成的数据库操作B. 事务需要ACID特性(原子性、一致性、隔离性、持久性)以确保数据的完整性和一致性C. 事务是一种数据库对象,用于执行一组操作D. 以上都不是36. 在关系型数据库中,以下哪个不是关系模型的基本组成部分?A. 实体B. 属性C. 关系D. 命名空间37. 在关系型数据库中,关系模型的主要目的是什么?A. 存储大量数据B. 管理数据C. 提供数据完整性D. 支持复杂查询38. 在关系型数据库中,什么是主键?A. 用于唯一标识表中的每一行数据的字段或字段组合B. 用于唯一标识表中的每一列数据的字段或字段组合C. 用于唯一标识表中的每一行的数据D. 用于唯一标识表中的每一列的数据39. 在关系型数据库中,外键的作用是什么?A. 确保引用完整性B. 增加数据冗余C. 提高查询效率D. 减少数据冗余40. 在关系型数据库中,什么是范式?A. 一组规则,用于确保数据库模式的规范化B. 一组规则,用于确保数据库模式去规范化C. 一组规则,用于确保数据库模式冗余D. 一组规则,用于确保数据库模式非冗余41. 在关系型数据库中,第二范式(NF)要求什么?A. 所有非主键字段都完全依赖于主键B. 所有非主键字段都直接依赖于主键C. 所有非主键字段都部分依赖于主键D. 所有非主键字段都不依赖于主键42. 在关系型数据库中,第三范式(NF)要求什么?A. 所有非主键字段都直接依赖于主键B. 所有非主键字段都完全依赖于主键C. 所有非主键字段都部分依赖于主键D. 所有非主键字段都不依赖于主键43. 在关系型数据库中,什么是索引?A. 一种数据结构,用于快速查找表中的特定行B. 一种数据结构,用于快速查找表中的特定列C. 一种数据结构,用于快速查找表中的特定行和列D. 一种数据结构,用于快速查找表中的所有行和列44. 在关系型数据库中,什么是事务?A. 一组操作,必须在数据库中原子性地执行B. 一组操作,必须在数据库中顺序性地执行C. 一组操作,必须在数据库中选择性地执行D. 一组操作,必须在数据库中并发地执行45. 在关系型数据库中,什么是触发器?A. 一种存储在数据库中的程序,用于在特定事件发生时自动执行B. 一种存储在数据库中的程序,用于在特定条件满足时执行C. 一种存储在数据库中的程序,用于在特定时间执行D. 一种存储在数据库中的程序,用于在特定用户登录时执行二、问答题1. 什么是关系模型?请简要描述其基本概念和组成部分。
2.1.1 二维表格的基本术语
考核要求:达到“识记”
层次知识点:主要是一些基本概念
(1)二维表格在关系模型中,一张二维表格对应一个关系。
(2)元组(tuple)表中的一行(即一个记录),表示一个实体;关系是由元组组成的。
(3)关系:是一个元数为K(K>=1)的元组的集合。
一张二维表格对应一个关系。
表中的一行称为关系的一个元组;表中的一列称为关系的一个属性。
在关系模型中,对关系作了下列规范性的限制:关系中每一个属性值都是不可分解的;
关系中不允许出现相同的元组(没有重复元组);
不考虑元组间的顺序,即没有行序;在理论上,属性间的顺序(即列序)也是不存在的;
但在使用时按习惯考虑列的顺序。
(4)超键(Super Key):在关系中能唯一标识元组的属性集称为关系模式的超键;
(5)候选键(Candidate Key):不含有多余属性的超键称为候选键;
(6)主键(Primary Key):用户选作元组标识的一个候选键。
在以上概念中,主键一定可作候选键,候选键一定可作超键;反之,则不成立。
比如,在学生表中,如果有“学号”、“姓名”、“出生年月”等字段,其中学号是唯一的,那么(学号)属于超键,(学号,姓名)的组合也是超键。
同时,(学号)是候选键,而(学号,姓名)由于含有多余属性,所以不是候选键。
在这三个概念中,主键的概念最为重要,它是用户选作元组标识的一个关键字。
如果一个关系中有两个或两个以上候选键,
用户就选其中之一作为主键。
2.1.2 关系模式、关系子模式和存储模式
考核要求:达到“识记”
层次知识点:三种模式的理解
(1)关系模式:关系模型的定义包括:模式名,属性名,值域名以及模式的主键。
它仅仅是对数据特性的描述,不涉及到物理存储方面的描述。
(2)子模式:子模式是用户所用到的那部分数据的描述。
除了指出用户数据外,还应
指出模式和子模式之间的对应性。
(3)存储模式:关系存储时的基本组织方式是文件,元组是文件中的记录。
几个模式的理解(教材30页的例子):
在教学模型中,有实体类型“学生”,其属性有学号S#、SNAME、AGE、SEX分别表示学生的学号、姓名、年龄、性别;实体类型“课程”的属性C#、CNAME、TEACHER分别表示课程号、课程名和任课教师名。
学生用S表示,课程用C表示,S和C之间有M:N联
系,联系类型SC的属性是GRADE.
关系模式为:
学生关系S (S#、SNAME、AGE、SEX)
课程关系C(C#、CNAME、TEACHER)
学习关系SC(S#、C#、GRADE)
以下则为关系子模式:
成绩关系子模式G (S#、SNAME、C#、GRADE,GRADE),它对应的数据来自关
系S和SC.
2.1.3 关系模型的三类完整性规则
考核要求:达到“领会”
层次知识点:三类完整性规则的理解
(1)实体完整性规则要求关系中元组在组成主键的属性上不能有空值。
如果出现空值,那么主键值就起不了唯一标识元组的作用。
(对关系主键的约束)
(2)参照完整性规则要求外键值必须是另一个关系的主键的有效值,或者是空值。
(对关系外键的约束)外键:(外来关键字)将一个关系的主键(比如学生关系S中的S#)放到另一个关系(比如SC)中,此时称S#是关系SC的外键。
注意事项:
外键和相应的主键可以不同名,只要定义在相同值于域上即可;
两个关系可以是同一个关系模式,表示了属性之间的联系。
外键值是否允许空,应视具体情况而定
假设数据库有如下关系:
学生关系S (S#、SNAME、AGE、SEX)
课程关系C(C#、CNAME、TEACHER)
学习关系SC(S#、C#、GRADE)
那么(1)S#是关系S的主键,因此在关系S中不能为空;(实体完整性规则)
(2)C#是关系C的主键,因此在关系C中不能为空;(实体完整性规则)
关系SC中:
S#、C#的组合为主键,因此S#、C#不能为空;(实体完整性规则)
S#是来自S的外键,因此它必须和关系S中某个元组的S#相同。
(参照完整性规则)C#是来自C的外键,因此它必须和关系C中某个元组的C#相同。
(参照完整性规则)
(3)用户定义的完整性规则:这是针对某一具体数据的约束条件,由应用环境决定,例如,学生的年龄限制为15~30周岁。
用户定义的完整性规则反映某一具体应用涉及的数据必须满足的语义要求。
系统提供定义和检验这类完整性的机制。
2.1.4 关系模型的形式定义
考核要求:达到“识记”
层次知识点:三个组成部分的了解
关系模型有三个组成部分:
数据结构、数据操作和完整性规则关系模型的的数据结构是关系;
关系模型提供一组完备的高级关系运算(关系代数+关系演算),支持数据库的各种操
作;
关系模型包括三类完整性规则。