-
关系模型的完整性约束_关系模型
2020-09-01 05:02:06关系模型的完整性约束The Relational Model is the most popular of the logic data models, and it’s at the basis of SQL databases. 关系模型是最流行的逻辑数据模型 ,它是SQL数据库的基础。 The Relational...关系模型的完整性约束
The Relational Model is the most popular of the logic data models, and it’s at the basis of SQL databases.
关系模型是最流行的逻辑数据模型 ,它是SQL数据库的基础。
The Relational Model is based on two simple concepts:
关系模型基于两个简单的概念:
tables
桌子
relations
关系
The relational model dates back to 1969 and the work of Edgar F. Codd, an English computer scientist. Although as computer programmers we’re used to look with curiosity at new shiny things, a technology that can be central in everything about computers for 50 years is definitely worth studying.
关系模型的历史可以追溯到1969年,是英国计算机科学家Edgar F. Codd的工作。 尽管作为计算机程序员,我们习惯于好奇地研究新事物,但50年来,在计算机的所有方面都处于核心地位的技术绝对值得研究。
The fact that the model is based upon tables makes it very intuitive to use, because we are used to using tables to organize things. Think about an Excel spreadsheet, for example.
该模型基于表的事实使其使用起来非常直观,因为我们习惯于使用表来组织事物。 例如,考虑一个Excel电子表格。
With SQL-based databases, like PostgreSQL, Oracle, MySQL, SQLite and MS SQL Server, and many others, the data analyzed using the ER Model can be modeled using the relational model and be almost immediately transformed into a SQL database format, which can be considered a real-world implementation of the relational model, but we’ll talk about this in other posts.
对于基于SQL的数据库,例如PostgreSQL,Oracle,MySQL,SQLite和MS SQL Server等,可以使用关系模型对使用ER模型分析的数据进行建模,并几乎立即将其转换为SQL数据库格式,从而可以被认为是关系模型的实际实现,但我们将在其他文章中讨论。
In this post I want to talk about the theory and the concepts that the relational model is based upon, not expressed in mathematical terms but what it means in practice.
在这篇文章中,我想谈谈关系模型所基于的理论和概念,不是用数学术语来表达,而是在实践中意味着什么。
If you’re a student, you might find that what I write here is not what is written on your textbook, but maybe you can read it more easily to grasp the more formal concepts expressed in your learning material.
如果您是学生,您可能会发现我在这里写的不是您教科书上写的,但也许您可以更轻松地阅读它,以掌握学习材料中表达的更正式的概念。
桌子 (Tables)
In a relational model, a table is a collection of items.
在关系模型中, 表是项目的集合。
It is organized in rows and columns:
它按行和列进行组织:
Name Age Flavio 36 Roger 7 Syd 6 名称 年龄 弗拉维奥 36 罗杰 7 赛德 6 元组 (Tuples)
Each entry in the table is called a tuple. You can also use the terms record or row.
表中的每个条目称为元组 。 您还可以使用术语record或row 。
A tuple represents a row of the table, like this:
元组代表表的一行,如下所示:
Flavio 36 弗拉维奥 36 属性 (Attributes)
An attribute is one single item in the tuple.
属性是元组中的一项。
In this example:
在此示例中:
Flavio 36 弗拉维奥 36 “Flavio” is an attribute. 36 is another attribute.
“ Flavio”是一个属性。 图36是另一个属性。
元组是唯一的 (Tuples are unique)
Every tuple in the table is unique.
表格中的每个元组都是唯一的。
In the relational model, we can’t have duplicate data, meaning every row in the table must be different in at least one attribute.
在关系模型中,我们不能有重复的数据,这意味着表中的每一行在至少一个属性上必须不同。
关系键 (The relation key)
The thing that ensures a tuple is unique is the relation key.
确保元组唯一的是关系键 。
The key is one attribute that must uniquely identify a tuple.
关键字是一个必须唯一标识元组的属性。
If the relation key is a set of attributes, it must be non-redundant. This means that if we remove one of the attributes of the key, the key can’t guarantee its uniqueness.
如果关系键是一组属性,则它必须是非冗余的 。 这意味着,如果我们删除键的属性之一,则键不能保证其唯一性。
If more than one keys can be determined, one of those keys will be identified as the primary key.
如果可以确定一个以上的键,则这些键之一将被标识为主键 。
密钥完整性约束 (Key integrity constraint)
They key attribute(s) of any tuple in the table must never be null, and must never repeat.
它们在表中任何元组的键属性都不能为null ,也不能重复 。
Given a key, we must be able to point to a specific tuple/row without ambiguity.
给定一个密钥,我们必须能够毫无歧义地指向一个特定的元组/行。
域约束 (The domain constraints)
Every attribute has rules about what value it can hold.
每个属性都有关于它可以保持什么值的规则 。
If we decide to store numbers, we can’t store strings, for example. And we might decide to not store strings longer than 10 characters for names.
例如,如果决定存储数字,则不能存储字符串。 并且我们可能决定不存储长度超过10个字符的字符串作为名称。
We can also call this type.
我们也可以称这种类型 。
参照完整性约束 (The referential integrity constraint)
If a table contains reference to a secondary table, or other tuples in the same table, then we must abide to rules that prevent the reference to break.
如果一个表包含对辅助表或同一表中其他元组的引用,则我们必须遵守防止引用中断的规则。
In particular, we must avoid breaking the reference by:
特别是,我们必须避免通过以下方式破坏引用:
- avoiding deleting or editing the primary key of the record that we point to, in the other table. 避免在另一个表中删除或编辑我们指向的记录的主键。
- avoid inserting a new record with a non-existing key to point to in the other table. 避免插入一个不存在的键指向另一个表中的新记录。
- avoid changing the key of the record we point to, without ensuring that the new key exists in the other table. 避免更改我们指向的记录的键,而不必确保新键在另一个表中存在。
A DBMS (Data Base Management System) will implement measures to help us implement referential integrity.
DBMS(数据库管理系统)将采取措施来帮助我们实现参照完整性。
关系模型的完整性约束
-
关系模型的完整性约束
2018-07-29 00:11:11关系模型的完整性规则是对关系的某种约束条件。关系的完整性约束分为三类: 实体完整性:关系必须有主键,且不能为空; 参照完整性:维护实体之间的引用关系,外键可以为空,或者其值为参照关系对应的主键值; ...关系模型的完整性规则是对关系的某种约束条件。关系的完整性约束分为三类:
实体完整性:关系必须有主键,且不能为空;
参照完整性:维护实体之间的引用关系,外键可以为空,或者其值为参照关系对应的主键值;
用户定义的完整性:由应用环境决定,针对具体关系数据库的约束条件。
-
关系模型中设计表时的约束条件
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 命令进行删除
-
-
关系数据模型要素之关系完整性约束
2020-12-16 08:20:07关系模型的完整性规则是对关系的某种约束,提供一种手段来保证用户对数据库的修改时不会破坏数据库中数据的完整性。保证数据是有意义的。 关系模型分三类约束:实体完整性约束、参照完整性约束和用户自定义完整性...概述
数据完整性指数据库中数据的正确性、相容性和一致性。包括现实世界中的应用需求的完整性。数据的完整性由完整性规则来定义。
关系模型的完整性规则是对关系的某种约束,提供一种手段来保证用户对数据库的修改时不会破坏数据库中数据的完整性。保证数据是有意义的。
关系模型分三类约束:实体完整性约束、参照完整性约束和用户自定义完整性约束。 前两者是必须满足的条件,称作关系的两个不变性。由DBMS自动支持
实体完整性约束(Entity Integrity Constraint)
此约束指关系的主属性,主码不能为空,在关系数据库系统中,一个关系对应一张表,实体完整性指在数据存储数据的表中,主键/码不能取控值 NULL
参照完整性约束 (Referential Integrity Constraint)
现实世界中实体之间往往存在某种联系,在关系模型中这种联系通过关系来描述
参照完整性约束就说定义外码和主码之间的引用规则,是对关系间引用数据的一种限制。若属性(属性组)X 是基本关系 R 的外码,它与基本关系 S 的主码 Y 对应,那么 R 中每个元组在 F 上的值要么取 NULL,要么等于 S中对应元组的主码值。 R 和 S 可以是不同的关系,也可以是同一关系。
如:
教师(职工号,姓名,性别,系编号) 系(系编号,系名,办公地点)
上述两个关系之间存在属性的引用,系编码既是
系
关系的主码又是教师
关系的外部码。那么教师
关系中系编码属性的取值需要参照系
关系中系编码的值或为 NULL。用户定义完整性约束 (User-defined Integrity constraint)
此约束针对某一应用环境的完整性约束条件,反映了某一具体应用所涉及的数据应满足的要求。关系模型提供定义和检验的机制,此类规则一般在建立数据库表的同时进行定义,如果某些条件未建立在库表一级,则应在各个模块的具体编程中通过程序进行检查和控制。
关系模型完整性约束检验 重点
在对数据库进行修改时须检验是否满足对上述三类完整性约束
插入操作
首先检查实体完整性约束,检查插入行在主码属性上的值是否已存在,不存在,可以执行插入,否则不可插入。再检查参照完整性约束,如果是向被参照关系插入,则不需要考虑此约束;如果向参照关系插入,则检查插入行在外码属性上的值是否已在相应被参照关系的主码属性中存在,存在,可插入,否则不可插入,或者将插入行的外码属性的值改为NULL,再插入,最后检查自定义完整性约束,包括数据的类性、精度、取值范围、是否允许空值、是否有默认值等,满足即可执行插入操作,否则给出错误信息。
删除操作
一般只需对被参照关系检查参照完整性约束。如果主键被引用则不可删,或将参照关系中对应行的外码属性改为为NULL,再删除
更新操作
结合删除 和 插入操作,先删除再插入。
-
数据库关系模型(约束和触发器)
2020-04-23 16:43:37• 关系:是用于描述数据的一张二维表,组成表的行称为元组,组成表的列称为属性。 • 域(Domain):指列(或属性)的取值范围。 • 候选键(Candidate Key):也称为候选码。能唯一的标识关系中每一个元组的... -
关系数据模型常见约束的语法总结
2019-03-09 09:52:00Default的设定 表定义时设定default create table pub( pub_id char(4) not null, pub_name varchar(40) null, city varchar(20) default 'Pasa', state char(2) default 'CA') SQL中字符型数据必须用单引号... -
(2.1)关系模型之关系结构和约束
2020-02-11 10:56:22数学上,把一系列域上的笛卡尔积的子集称之为关系 eg: (1)examinee表 每个行列单元都是不能再分的原子值; 不允许重复出现完全相同的行; 每个行列单元都是不能再分的原子值; 行列次序无要求,但是不能出现重复... -
数据库关系模型的三类完整性约束
2019-02-25 10:12:10关系模型中有三类完整性约束,分别是:实体完整性,参照完整性,用户定义完整性 实体完整性 定义:实体完整性是用于保证关系数据库中每个元组都是可区分的,唯一的。 它的意思就是说数据表中每一行都应该有办法... -
数据库关系模型完整性约束
2019-12-08 20:47:30一、实体完整性(要求有唯一健) ...二、参照完整性(外键的参照)(引用完整性约束) 参照完整性要求关系中不允许引用不存在的实体。设定相应的更新删除插入规则来更新参考表。 例如表sutdent(有i... -
数据库之关系模型的组成,特点以及完整性约束
2019-11-21 22:36:52关系模型的组成: 数据结构(表结构)+关系操作(八个操作)+完整性约束(三个完整性) 实体完整性 在关系表中,所有元组主码的值都不能为空。 参照完整性 在关系模型中,采用给关系定义外键的形式进行关系间属性... -
在mysql支持关系模型中_MySQL支持关系模型中、和三种不同的完整性约束
2021-01-30 23:37:23MySQL支持关系模型中、和三种不同的完整性约束答:实体完整性;列完整性\n\n\n\n参照完整性;实体完整性\n\n\n\n用户定义的完整性;参考完整性“三农”问题是指( )答:农业问题 农村问题 农民问题关系模式的候选码... -
关系数据模型的数据结构及约束定义
2019-03-09 09:35:00数据的完整性约束(因数据模型的不同而不同) 关系数据模型的基础概念 关系:用来描述数据以及数据之间的联系,俗称表 列:字段、属性、数据项、成员 行:元组或记录 域:列的取值范围 关系模式:对关系的... -
关系模型中的三类完整性约束:实体完整性、参照完整性和用户定义完整性
2019-08-30 09:06:07数据完整性 要想了解这三类完整性约束首先要了解什么是数据完整性。数据完整性是指数据库中存储的数据是有意义的或正确的,和现实世界相符。...实体完整性和参照完整性是关系模型必须满足的完整性约束... -
结合函数映射与循环一致性约束的模型簇对应关系计算
2021-01-26 22:24:12利用循环一致性约束,将两两模型的映射关系转化为三维模型簇的多路对应关系。实验结果表明,本算法在一定程度上减小了三维模型间对应关系的等距误差,不仅可以实现两个模型间的对应关系计算,还适用于计算等距或近似... -
《数据库原理与应用(第3版)》——3.4 关系模型的完整性约束
2017-05-02 16:01:003.4 关系模型的完整性约束 数据完整性是指数据库中存储的数据是有意义的或正确的。关系模型中的数据完整性规则是对关系的某种约束条件。它的数据完整性约束主要包括三大类:实体完整性、参照完整性和用户定义的完整... -
应试笔记2:关系模型=关系数据结构+关系操作集合+关系完整性约束、基本表的性质、主码和主属性、五种基本...
2019-03-26 20:39:30关系模型=关系数据结构+关系操作集合+关系完整性约束 关系数据结构:关系、关系模式、关系数据库 关系 关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域,每一列称为一个属性,不同的属性要给予... -
关系模型关系模型
2016-10-15 11:11:00关系模型研究的内容 一个关系就是一个Table,关系模型就是处理...定义表的约束与操作的约束 关系模型三要素 基本结构 (Table) 基本操作(U、-、X、σ、π、÷、∩) 完整性约束(实体完整、参照完整、用户... -
04) DBMS中的关系数据模型:概念、约束及示例
2020-06-23 08:31:43关系模型(RM)将数据库表示为关系的集合。关系不过是一张数据值表,表中的每一行代表一组相关数据值。表中的这些行表示现实世界的实体或关系。 表名和列名有助于解释每一行中值的含义,数据表示为一组关系。在关系... -
《数据库技术原理与应用教程》一3.5.3关系模型的数据结构、操纵和约束
2017-06-23 11:28:003.5.3关系模型的数据结构、操纵和约束 关系是一种数学理论,运用这种理论所得到的逻辑模型称关系模型,关系模型由关系数据结构、关系操纵及关系约束三部分组成。 1 关系数据结构 (1)表结构关系模... -
关系模型
2018-07-11 18:31:41关系模型 关系模型组成的三要素 ...关系模型的完整性规则是对关系的某种约束条件 实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动... -
mysql支持关系模型中哪些完整性约束_MySQL基础笔记(二) 完整性约束
2021-01-19 03:41:06我们知道,一种数据模型必须包含三个基本的部分:构造机制(数据结构):主要描述数据的类型、内容、性质以及数据间的联系等。...作为数据库的一种数据模型,关系模型提供了一组完整性规则或限制。完整性... -
关系数据模型、基本概念、关系模型的基本术语、关系代数
2020-12-31 10:47:18关系模型由关系模型的数据结构、关系模型的操作集合和关系模型的完整性约束三部分组成,这三部分也称为关系模型的三要素。 数据结构 关系数据模型源于数学,它用二维表来组织数据,而这个二维表在关系数据库中称为... -
关系模型的组成
2019-06-19 19:12:56关系模型由关系数据结构、(关系操作集合)和(关系完整性约束)三部分组成。 -
关系模型中三类完整性约束以及解释
2018-12-09 19:27:111、实体完整性:所谓的实体完整性就是指关系(所谓的关系就是表)的主码不能取空值; 比如学生表的主码通常是取学号为主码 2、参照完整性:是指参照关系中每个元素的外码要么为空(NULL),要么等于被参照关系中某个元素... -
数据库技术课程复习2---关系模型,三级模式结构和完整性约束
2020-07-11 17:38:24关系模型关系模型里的基本概念术语对比用关系模型描述事件或行为关系数据模型的操纵2.数据库系统的三级模式结构3.关系的三类完整性约束外码**实体完整性****参照完整性****用户定义的完整性** 0.学习前言 数据库技术... -
关系模型-数据结构、完整性约束、关系代数
2012-12-21 17:23:30关系模型的数据结构非常简单,只包含单一的数据结构---关系 关系有3种类型:基本关系(通常又称基本表或者基表)、查询表和视图表 1、基本表示实际存在的表,是实际存储数据的逻辑表示 2、查询表是查询结果对应的... -
关系模型的基本概念
2019-05-03 12:21:24一、关系模型的三要素: 关系数据结构:关系模型中只包含单一的数据结构----关系,在用户看来关系模型中数据的逻辑结构是一张扁平的二维表 关系操作(操作对象和结果都是集合): 查询:选择、投影、连接、并、... -
数据库系统概论 第七章 数据库设计(3)扩展E-R...向关系模型的转换,联系,设计用户子模式,数据模型的优化
2020-06-27 13:50:19为了增强和丰富基本E-R模型的表达能力。 进行了哪些扩展?我们介绍主要的3种扩展: ISA联系 基数约束 PART-OF联系 1.ISA联系 有的实体型是某个实体型的子类型,这种父类0子类的联系称为ISA联系,表示is a...
-
Navicat Premium.rar
-
Java常问基础面试题(一)while循环和do循环有什么不同?
-
PHP SOCKET编程
-
《A Survey of the Recent Architectures of Deep Convolutional Neural Networks》
-
MySQL 事务和锁
-
投标方法论
-
实现 MySQL 读写分离的利器 mysql-proxy
-
OpenStack-T版——keystone认证服务+实验!
-
2021年 系统分析师 系列课
-
根据经纬度获取两点之间的距离 -- 腾讯地图(PHP后台)
-
NFS 实现高可用(DRBD + heartbeat)
-
不同的进程是否能够共享fd
-
2014年重庆理工大学《信息管理学》两套期末考试试卷.pdf
-
2014年重庆理工大学《数据库技术2》期末考试试卷.pdf
-
2014年重庆理工大学《面向对象程序设计》期末考试试卷 .pdf
-
FactoryTalk View StudioV10.0备份HMI步骤.docx
-
各公司仿真器仿真的三大步骤各用的具体工具
-
2021-03-04
-
基于Flink+Hudi构建企业亿级云上实时数据湖教程(PC、移动、小
-
2021-03-04