精华内容
下载资源
问答
  • 关系模型分三类约束:实体完整性约束、参照完整性约束和用户自定义完整性约束。 前两者是必须满足的条件,称作关系的两个不变性。由DBMS自动支持 实体完整性约束(Entity Integrity Constraint) 此约束指关系的主...
        

    概述

    数据完整性指数据库中数据的正确性、相容性和一致性。包括现实世界中的应用需求的完整性。数据的完整性由完整性规则来定义。

    关系模型的完整性规则是对关系的某种约束,提供一种手段来保证用户对数据库的修改时不会破坏数据库中数据的完整性。保证数据是有意义的。

    关系模型分三类约束:实体完整性约束、参照完整性约束和用户自定义完整性约束。 前两者是必须满足的条件,称作关系的两个不变性。由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,再删除

    更新操作

    结合删除 和 插入操作,先删除再插入。

    展开全文
  • 关系模型的完整性约束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.

    表中的每个条目称为元组 。 您还可以使用术语recordrow

    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(数据库管理系统)将采取措施来帮助我们实现参照完整性。

    翻译自: https://flaviocopes.com/relational-model/

    关系模型的完整性约束

    展开全文
  • 数据完整性的分类在关系模型中,提供了实体完整性,参照完整性,用户定义完整性。二.实体完整性2.1什么是实体?实体是一个数据对象,指的是客观存在并可以相互区分的事物,比如学生,老师等。一个实体在数据库中对应...

    一.数据完整性的分类

    在关系模型中,提供了实体完整性,参照完整性,用户定义完整性。

    二.实体完整性

    2.1什么是实体?

    实体是一个数据对象,指的是客观存在并可以相互区分的事物,比如学生,老师等。一个实体在数据库中对应的是一条记录。

    2.2实体完整性在MySQL中实现

    实体完整性在MySQL中的实现是通过主键约束和候选键约束实现的。

    2.2.1主键约束

    首先,我们来了解一下主键是什么:主键是表中的某一列或者多个列的组合。多个列就是复合主键。

    在MySQL中的主键必须保证一下几个要求:

    1.一个表只能有一个主键,主键可以复合但是只有一个。

    2.唯一性,主键的值在一张表里面是不能重复是唯一的,而且不能为空。

    3.最小化原则,当一个复合主键删除掉复合的某一行后如果这个主键还是复合的,那么就是代表原来那个复合主键没有满足最小化原则。

    2.2.2实现主键

    使用关键字:primary key

    方式一:单列主键

    create table tb(

    tb_pkintprimary key

    );

    方式二:复合主键

    create tabletb(

    tb_idint,

    tb_namevarchar(10),primary key(tb_id,tb_name)

    );

    2.2.3候选键约束

    如果一张表中的某一个列可以唯一标识这张表,又不含其他多于的属性,那么他就是一个候选键。比如学生的学号。

    同样的候选键也是非空并且唯一值,候选键也支持复合。

    2.2.4候选键与主键键

    表中主键只有一个但是候选键可以拥有多。

    两者都会创建索引,主键是priamry key索引,但是候选键是unique索引

    2.2.5实现候选键

    使用关键字unique:

    create tabletb(

    tb_idint,

    tb_namevarchar(10),unique(tb_id,tb_name)

    );

    三.参照完整性

    在现实世界中存在多个对应的关系,那么这个对应关系就是参照完整性,也就是MySQL中的外键。

    3.1参照完整性的定义为(图解):

    33c343988bcfd7cca30d1c9f6efd04b0.png

    3.2参照的完整性语法

    关键字:foreign key

    语法:

    foreign  key   (本身表的列)  references

    从表表名(从表的主键)

    on delete restrict  |  cascade  |  set  null  |  no   action

    on update restrict  |  cascade  |  set  null  |  no   action

    restrict:删除或者更新时,在外间中出现的值操作失败

    cascade:将外键的值一同删除或者更新

    set null :删除更新时外键的值被设置为空

    例子首先说明有两张表:

    create tabletb(

    tb_idint,

    tb_namevarchar(10),foreign key (tb_id) references tb1(tb_id) on delete cascade on update cascade);create tabletb1(

    tb_idint primary key,

    tb_namevarchar(10),unique(tb_id,tb_name)

    );

    3.3注意点

    1.首先从表必须是存在的。

    2.从表必须是主键被参照

    原文:https://www.cnblogs.com/SAM-CJM/p/9703536.html

    展开全文
  • 关系数据模型的操纵与完整性约束关系数据模型的操纵主要包括查询、插入、删除和更新数据,这些操作必须遵循三大完整性约束,分别为: 参照完整性:要求关系中不允许引用不存在的实体 用户自定义完整性:针对某...

    数据模型:

    目前常用的数据模型有层次模型网状模型关系模型。其中层次模型和网状模型统称为非关系模型,现已逐渐被关系模型取代。

    关系数据模型的操纵与完整性约束:

    关系数据模型的操纵主要包括查询、插入、删除和更新数据,这些操作必须遵循三大完整性约束,分别为:

    参照完整性:要求关系中不允许引用不存在的实体

    用户自定义完整性:针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足语义的要求。

    实体完整性:要求每一个表中的主键字段都不能为空或者重复的值。

     

    三级模式与两级映像:

    三级模式为:外模式、模式、内模式,如图所示:

    模式:模式也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,实际上模式是数据库数据在逻辑上的视图。一个数据库只有一个模式。

    外模式:也称为子模式或用户模式,是模式的子集,一个数据库可以有多个外模式。由于各个用户存在不同应用需求,对数据保密的要求存在差异,所以他们的外模式就是不同的。另一方面,一个外模式可以为多个应用程序所使用,但一个应用程序只有一个外模式。

    内模式:内模式也成为存储模式,它是数据物理结构和存储结构的描述,是在数据库内部的表达方式。

    两级映像:外模式/模式映像、模式/内模式映像

    两级映像的结构能使数据库中的数据有较高的逻辑独立性和物理独立性。

    逻辑独立性:当模式改变时(例如,增加新的数据类型、新的数据项、新的关系等),由数据库管理员对各个外模式/模式映像做出改变,可以使外模式保持不变、从而应用程序不必修改,保证了数据的逻辑独立性。

    物理独立性:当数据库的存储结构改变了(例如,采用了更先进的存储结构),有数据库管理员对模式/内模式做出改变,可以使

    模式不变,从而保证数据的物理独立性。

     

    展开全文
  • 关系模型中三类完整性约束: – 实体完整性(Entity Integrity) – 参照完整性(Referential Integrity) – 用户定义的完整性(User-defined Integrity) • 实体完整性和参照完整性是关系模型必须满足的完整性...
  • 我们知道,一种数据模型必须包含三个基本的部分:构造机制(数据结构):主要描述数据的类型、内容、性质以及数据间的联系等。...作为数据库的一种数据模型关系模型提供了一组完整性规则或限制。完整性...
  • 关系模型数据结构非常简单,只包含单一的数据结构---关系 关系有3种类型:基本关系(通常又称基本表...前面说了,关系完整性由包括3个方面:实体完整性、参照完整性和用户定义完整性(前2个是任何关系数据库系...
  • 3.4 关系模型完整性约束 数据完整性是指数据库中存储的数据是有意义的或正确的。关系模型中的数据完整性规则是对关系的某种约束条件。它的数据完整性约束主要包括三大类:实体完整性、参照完整性和用户定义的完整...
  • 原标题:MySQL中的数据完整性约束作者:Airy 在...对关系模型施加完整性约束,是为了在数据库应用中保障数据的正确性和一致性,防止数据库中存在不符合语义、不正确的数据,这也是数据库服务器最重要的功能之一。...
  • 数据完整性约束是对关系模型完整性规则做某种约束条件。主要是保证数据库内应用数据的正确性和一致性,防止数据库中存在不符合语义的,不正确的数据关系模型中的三类约束:一,实体完整性二,参照完整性三,用户...
  • 数据库关系模型的三类完整性约束

    千次阅读 2019-02-25 10:12:10
    关系模型中有三类完整性约束,分别是:实体完整性,参照完整性,用户定义完整性 实体完整性 定义:实体完整性是用于保证关系数据库中每个元组都是可区分的,唯一的。 它的意思就是说数据表中每一行都应该有办法...
  • 稍微区分下概念模型和数据模型,两者本质上都是对现实世界事物的抽象描述,但是概念模型侧重于以简单清晰的方式将模型展现给用户,侧重于模型的表示,而数据模型侧重于数据库的设计(后面会介绍)。也就是说两者的...
  • 本篇主要讲述关系运算和关系完整性约束,理解关系操作的含义,了解传统的集合运算,掌握关系代数中基本关系运算。通过本篇的学习,读者应该能掌握以下内容: ● 集合的合并、交集、求差、乘积操作 ● 关系运算的...
  • 数据完整性约束

    2019-02-28 14:36:45
    数据完整性约束定义:是指数据的正确性和相容性,为了防止数据库中存在不符合语义的数据,防止数据库中存在不正确的数据。在关系模型中提供了三种规则:实体完整性,参照完整性,和用户定义完整性。 实体完整性...
  • 关系完整性约束

    2019-05-17 13:29:32
    关系数据模型中,一般将数据完整性分为3类,即实体完整性、参照完整性、用户自定义完整性。其中实体完整性和参照完整性是关系模型中必须满足的完整性约束条件,用户自定义完整性是为了满足用户对数据的约束条件或...
  • 数据结构(表结构)+关系操作(八个操作)+完整性约束(三个完整性) 实体完整性 在关系表中,所有元组主码的值都不能为空。 参照完整性 在关系模型中,采用给关系定义外键的形式进行关系间属性的引用,从而实现...
  • 数据的完整性约束(因数据模型的不同而不同) 关系数据模型的基础概念 关系:用来描述数据以及数据之间的联系,俗称表 列:字段、属性、数据项、成员 行:元组或记录 域:列的取值范围 关系模式:对关系的...
  • 关系模型=关系数据结构+关系操作集合+关系完整性约束 关系数据结构:关系、关系模式、关系数据库 关系 关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域,每一列称为一个属性,不同的属性要给予...
  • 数据完整性约束是对数据描述的某种约束的条件,在关系型数据库中一般有:完整性约束,实体完整性约束,参照完整性约束和用户自定义完整性约束。  实体完整性约束  在数据库中一张表一般对应一个现实生活中的实体...
  • MySQL中的数据完整性约束

    千次阅读 2017-04-07 00:55:16
    预备阅读:MySQL中常用的数据类型  ...对关系模型施加完整性约束,是为了在数据库应用中保障数据的正确性和一致性,防止数据库中存在不符合语义、不正确的数据,这也是数据库服务器最重要的功能之一。 完整性
  • § 实体完整性 § 参照完整性 § 用户定义的完整性 实体及实体间的联系都用表来表示 表以文件形式存储 § 有的DBMS一个表对应一个操作系统文件 § 有的DBMS自己设计文件结构 优点 § 建立在严格的数学概念的基础上 ...
  • 关系模型关系模型里的基本概念术语对比用关系模型描述事件或行为关系数据模型的操纵2.数据库系统的三级模式结构3.关系的三类完整性约束外码**实体完整性****参照完整性****用户定义的完整性** 0.学习前言 数据库技术...
  • 数据的完整性约束是对数据描述的某种约束条件,关系数据模型可以有三类完整性约束:实体完整性、参照完整性和用户自定义的完整性。 1、实体完整性(entity Integrity) 一个基本关系通常对应现实世界的一个实体...
  • 完整性约束

    2018-11-30 18:45:00
    完整性通常包括域完整性,实体完整性、参照完整性和用户定义完整性,其中域完整性,实体完整性和参照完整性,是关系模型必须满足的完整性约束条件。 域完整性 是指表中的列必须满足某种特定的数据类型约束,其中...
  • 精确地描述了系统地静态特性,动态特性和完整性约束条件(Integerity Constraints) 数据模型有三部分组成 1.数据结构–描述系统地静态特性 2.数据操作–描述系统的动态特性 3.完整性约束 1.数据结构–对系统的静态...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 740
精华内容 296
关键字:

关系数据模型完整性约束