-
关系模型中设计表时的约束条件
2019-02-26 15:27:19关系模型中设计表时的约束条件 一、介绍 关系模型是目前最重要的也是应用最广泛的数据模型。简而言之,关系就是一张二维表,由行和列组成。关系模型将数据模型组织成表格的形式,这种表格在数学上称为关系 设计...关系模型中设计表时的约束条件 一、介绍
-
关系模型是目前最重要的也是应用最广泛的数据模型。简而言之,关系就是一张二维表,由行和列组成。关系模型将数据模型组织成表格的形式,这种表格在数学上称为关系
-
设计表时,可对表中的一个字段或多个字段的组合设置约束条件,不满足约束条件的数据将被数据库管理系统拒绝录入。约束分为表级约束和字段级约束,表级约束是对表中几个字段的约束,字段级约束是对表中一个字段的约束
二、常见的约束形式
-
1.主键约束
- 主键用来保证表中每条记录的唯一性,因此在设计数据库表时,建议为所有的数据库表都定义一个主键,用于保证数据库表中记录的唯一性。一张表只允许设置一个主键,这个主键可以是一个字段,也可以是一个字段组合。单个字段作为主键时,使用字段级约束;用字段组合作为主键时,则使用表级约束。在录入数据的过程中,必须在所有的主键字段中输入数据,即任何主键字段的值不允许为 null 。如果不在主键字段中输入数据,或输入的数据在表中已经存在,则这条记录将被拒绝。可以在创建表时创建主键,也可以对表中已有的主键进行修改或者增加新的主键
-
2.外键约束
-
外键约束主要用于定义表于表之间的某种关系,对于表 A 来说,外键字段的取值是 null,或者是来自于表 B 的主键字段的取值,表 A 与表 B 必须存放在同一关系型数据库中。外键字段所在的表称为子表,主键字段在的所在的表称为父表,父表与子表之间通过外键字段建立起了外键约束关系,即表 A 称为表 B 的子表,表 B 称为表 A 的父表。子表与父表之间的外键约束关系如下:
-
如果子表的记录 “参照” 了父表的某条记录,则父表中该记录的删除(delete)或修改(update)操作可能以失败告终
-
如果试图直接插入(insert)或者修改(update)子表的 “外键值”,子表中的 “外键值” 必须是父表中的 “主键值” 或者 null,否则插入(insert)或者修改(update)操作失败
-
-
-
3.非空约束
- 如果在一个字段中允许不输入数据,可以将该字段定义为 null,如果在一个字段中必须输入数据,则应当该字段定义为 not null。如果设置某个字段的非空约束,直接在该字段的数据类型后面加上 not null 关键字即可
-
4.唯一性约束
- 如果一个字段值不允许重复,则应当对该字段添加唯一性约束(unique)。与主键约束不同,一张表中可以存在多个唯一性约束。如果设置某个字段的唯一性约束,直接在该字段的数据类型后面加上 unique 关键字即可
-
5.默认约束
- 默认值字段用于指定一个字段的默认值,当尚未在该字段中输入数据时,该字段中将自动填入这个默认值。如果设置某个字段的默认值约束,直接在该字段的数据类型后面加上 “default 默认值” 即可
-
6.检查约束
- 检查(check)约束用于检查字段的输入值是否满足指定的条件,在表中输入或者修改记录时,如果不符合检查约束指定的条件,则数据不能写入该字段
-
7.自增约束
- 自增(AUTO_INCREMENT)约束是 MySQL 唯一扩展的完整性约束,当向数据库表中插入新记录时,字段上的值会自动生成唯一的 ID。在具体设置自增约束时,一个数据库表中只能有一个字段使用该约束,该字段数据类型必须是整型类型。由于设置自增约束后的字段会生成唯一的 ID,所以该字段也经常会被设置为主键
-
8.删除约束
- 在 MySQL 数据库中,一个字段的所有约束都可以用 alter table 命令进行删除
-
-
二维表中的记录和字段,关系中的元组和属性--转载
2014-03-06 20:19:15关系数据库里,关系模式(模型)是型,关系是值,关系模式...关系实质上是一个二维表,表中每一条记录(行)在关系模式中被称为元组,每个字段(列)被称为属性。 前者是描述结构,后者是具体数据。严格上不能划等号。关系数据库里,关系模式(模型)是型,关系是值,关系模式是对关系的描述。关系实质上是一个二维表,表中每一条记录(行)在关系模式中被称为元组,每个字段(列)被称为属性。
前者是描述结构,后者是具体数据。严格上不能划等号。 -
MYSQL中概念模型的基本概念_《数据库原理》知识点之关系模型的基本概念
2021-02-08 00:48:072.1.1 二维表格的基本术语考核要求:达到“识记”层次知识点:主要是一些基本概念(1)二维表格 在关系模型中,一张二维表格对应一个关系。(2)元组(tuple) 表中的一行(即一个记录),表示一个实体;关系是由元组组成的...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 关系模型的形式定义
考核要求:达到“识记”
层次知识点:三个组成部分的了解
关系模型有三个组成部分:
数据结构、数据操作和完整性规则关系模型的的数据结构是关系;
关系模型提供一组完备的高级关系运算(关系代数+关系演算),支持数据库的各种操作;
关系模型包括三类完整性规则。
-
数据库中的关系模型
2020-05-26 15:45:04关系数据库是建立在关系模型上的。而关系模型本质上就是若干个存储数据的二维表,可以把它们看作很多Excel表。 核心概念: 表的每一行称为记录(Record),记录是一个逻辑意义上的数据。 表的每一列称为字段...文章目录
1 数据库中的关系模型
关系数据库是建立在关系模型上的。而关系模型本质上就是若干个存储数据的二维表,可以把它们看作很多Excel表。
核心概念:- 表的每一行称为记录(Record),记录是一个逻辑意义上的数据。
- 表的每一列称为字段(Column),同一个表的每一行记录都拥有相同的若干字段。
- 字段定义了数据类型(整型、浮点型、字符串、日期等),以及是否允许为NULL。注意NULL表示字段数据不存在。一个整型字段如果为NULL不表示它的值为0,同样的,一个字符串型字段为NULL也不表示它的值为空串’’。通常情况下,字段应该避免允许为NULL。不允许为NULL可以简化查询条件,加快查询速度,也利于应用程序读取数据后无需判断是否为NULL。
表与表之间的关系:
和Excel表有所不同的是,关系数据库的表和表之间需要建立“一对多”,“多对一”和“一对一”的关系,这样才能够按照应用程序的逻辑来组织和存储数据。例如,一个班级表:
每一行对应着一个班级,而一个班级对应着多个学生,所以班级表和学生表的关系就是“一对多”:
反过来,如果我们先在学生表中定位了一行记录,例如ID=1的小花,要确定他的班级,只需要根据他的“班级ID”对应的值101找到班级表中ID=101的记录,即六年级一班。所以,学生表和班级表是“多对一”的关系。如果我们把班级表分拆得细一点,例如,单独创建一个教师表:
班级表只存储教师ID:
这样,一个班级总是对应一个教师,班级表和教师表就是“一对一”关系。
参考资料:
-
关系模型的基本概念
2020-12-14 18:32:20关系(Relation) ...在二维表中的行定义,即对关系的描述称为关系模式。 一般表示为(属性1,属性2,…,属性n) 例如:老师的关系模型可以表示为教师(教师号,姓名,性别,年龄,职称,所在系)。 (值)域(d -
在mysql中er是什么模型_数据库设计和ER模型-------之关系模型的基本概念(第二章)...
2021-02-11 21:57:42关系模型的基本术语定义:用二维表格来表示实体集,用关键码表示实体之间联系的数据模型称为关系模型有时也习惯称呼关系为表或表格,元组为行(Row),属性为列。关系中属性个数称为“元数”,元组个数称为“基数”... -
MYSQL中表之间的关系
2019-03-16 15:45:28我们已经知道,关系数据库是建立在关系模型上的。而关系模型本质上就是若干个存储数据的二维表,可以把它们看作很多Excel表。 表的每一行称为记录(Record),记录是一个逻辑意义上的数据。 表的每一列称为字段... -
关系模型介绍
2019-12-06 23:12:40在关系模型的术语中,关系用来指代表,而元组用来这指代行,属性指代的是表中的列。 对于关系的每个属性,都存在一个允许取值的集合,称为该属性的域。 如果域中元素被看作是不可再分的单元,则域是原子的。 空值是... -
关系模型
2016-03-29 17:55:32在二维表中的行定义,即对关系的描述称为关系模式。 元组 在二维表中的一行,称为一个元组。 分量 元组中的一个属性值 键或者码 如果在一个关系中存在这样的一个属性,使得在该关系的任何一个关系状态中的两个... -
mysql是基于关系模型的数据库_MySQL系列:MySQL关系型数据库架构
2021-01-18 21:20:15一、RDBMS关系型数据库管理系统概述1.RDBMS概念RDBMS:关系型数据库管理系统,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系... -
数据库系统概念2关系模型介绍
2021-01-06 09:02:12在关系模型中,关系(relation)用来指代表,元祖(tuple)用来指代行,属性(attribute)指代表中的列 关系实例(relation instance)用来表示一个关系的特定实例,也就是所包含的一组特定的行 对于关系的每个属性... -
SQL学习01----关系数据库中的一些定义
2020-03-03 14:20:45关系数据库由表的集合构成,每个表有...在关系模型中,关系(relation)用来指代表,元组(tuple)用来指代表中的一行,属性(attribute)用来指代表中的一列 对于关系的每个属性,都存在一个允许取值的集合,称为该属性的... -
数据库设计和ER模型-------之关系模型的基本概念(第二章)
2018-01-22 21:10:00关系模型的基本术语 定义:用二维表格来表示实体集,用关键码表示实体之间联系的...超键(Super Kry):在关系中能唯一标识元组的属性集称为关系模型的超键 候选键:不含有多余属性的超键称为候选键 主键:(Pri... -
Oracle数据库中的关系型数据库
2019-05-08 19:26:30Oracle数据库中的关系型数据库 关系型数据库的基础知识 ...①在关系数据模型中,关系可以看成由行和列交叉组成的二维表格 ②表中一行称为一个元组,可以用来标识实体集中的一个实体。(行,记... -
1-2:关系模型介绍
2020-08-12 22:14:57数学术语中,元组是一组值的序列(或列表)。 n个值间的一种联系可在数学上用关于这些值的一个n元组表示。对应表中一行。 关系指表,元祖指代行。 属性指代表中的列。 用关系实例表示一个关系的特定实例。表的实例。... -
1.2.7 关系模型
2019-05-23 14:02:271.关系模型建立在严格的数学概念的基础上的,每个关系的数据结构是一张规范化的二维表。 2.关系:一个关系对应通常说的是一张表。 3.元组:表中的一行即为一个元组。 4.属性:表中的一列即为一个属性,给每一个... -
在access中一列称为_access试题
2020-12-30 20:07:19填空题1.数据库就是以一定的组织方式将相关的数据组织在一起存放在计算机存储器上形成的,能为多个用户共享的,同时与应用程序彼此独立的一组相关数据的集合。...5.在关系模型中,把数据看成一个二维表,每一个二... -
关系数据模型
2008-03-04 23:19:00用二维表表示实体集,用关键...关系具有以下特点: 关系可以看成是由行和列交叉组成的二维表格,它表示一个实体集 表中的一行称为一个元组,可用来表示实体集中的一个实体 表中的列称为属性,列名即为属性名,表中的属 -
XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解
2008-12-05 08:39:07面向对象的思想方法已经非常流行了,在编程语言(例如java,js)中,都运用面向对象的编程思想。在XML中,就是要将网页也作为一个对象来操作和控制,我们可以建立自己的对象和模板。与对象进行交流,如何命令对象,... -
数据库系统概念(第二章:关系模型介绍)
2017-12-04 19:50:47在关系模型的术语中,关系用来指代表,元组用来指代行,属性指代的是表中的列。 用关系实例这个术语来表示一个关系中的特定实例,也就是所包含的一组特定的行。 对于关系的每个属性,都存在一个允许取值的集合,称为... -
(二) 关系数据模型
2019-09-27 19:40:52在关系数据库中,我们用关系来表示实体集和联系集,关系通常使用二维表来表示,对应关系名。表的每一列称为属性(和ER图中的可以认为是一样的);每一行可以称为一条记录;这里每个属性都需要是原子的,这决定了规范的... -
er两个实体之间一定要有关系吗_关系数据模型(一)
2021-01-18 21:14:21声明:最近在准备考试,故...关系是笛卡尔积的子集,即元组的集合,所以,关系中行的次序不重要,且关系(表)中不能包含两个相同的元组(行) 2.用二维表表示关系使得我们可以以任意列次序显示关系,或者说列的顺... -
关系数据模型和范式
2017-03-29 15:40:59一、关系数据模型的特点1、概念单一在关系型数据库中无论是实体还是实体之间的联系都使用关系来表示。 2、规范化在关系型数据库中每一个关系都要满足一定的条件要求,这些条件被称为规范性条件,最基本的是关系中的... -
《数据库系统概念》第二章:关系模型介绍
2018-11-02 14:03:52在关系模型的术语中,关系就用来指代表。 元组(tuple) 指代表中的一行,表示一组值的序列(或列表)。 n个值之间的联系被称为n元组(n-tuple) 属性(attribute) 指代表中的一列。 对于关系的每个... -
mysql一个表中可以有几个主键_数据库 - 我可以在一个表中有多个主键吗?
2021-02-01 22:39:35主键是非常不幸的符号,因为... Boyce,Codd,Date等在关系模型中将这些称为候选键。 然后,当我们为这些实体构建表时,它们的候选键在这些表中成为自然键。 只有通过那些自然键,用户才能唯一地识别表中的行; 因... -
Oracle-03:关系型数据库和非关系的数据库的各自优缺点与区别
2018-05-07 21:28:00------------吾亦无他,唯手熟尔,谦卑若... 在关系模型中,数据结构表示为一个二维表,一个关系就是一个二维表(但不是任意一个二维表都能表示一个关系),二维表名就是关系名。表中的第一行通常称为属性名,表中的...