精华内容
下载资源
问答
  • 定义 关系的定义可以用下面这样一个公式来给出。 R ⊆ (D1×D2×D3 · · · ×Dn) (关系用符号 R 表示,属性用...域与数学函数定义域一样,指的是“属性取值集合”。我们假设属 性 a1 可以取 1 种值,属性

    定义

    关系的定义可以用下面这样一个公式来给出。

    R ⊆ (D1×D2×D3 · · · ×Dn)
    

    (关系用符号 R 表示,属性用符号 Ai 表示,属性的定义域用符号 Di 表示)
    这个公式读作“关系 R 是定义域 D1, D2, …, Dn 的笛卡儿积的子集”。
    公式很简洁,为了便于理解,我们再举个简单的例子解释一下。首先假设
    有 3 个属性 a1、 a2、 a3,然后我们描述一下它们的定义域。这里说的定义
    域与数学中函数的定义域一样,指的是“属性的取值集合”。我们假设属
    性 a1 可以取 1 种值,属性 a2 可以取 2 种值,属性 a3 可以取 3 种值。各
    属性对应的定义域分别叫作 d1、 d2、 d3
    在这里插入图片描述

    笛卡儿积

    使用这 3 个定义域生成关系时,最大的元组数是
    多少?答案是 6。计算方法很简单,就是 1×2×3 = 6。全部的元组如下
    表所示。
    在这里插入图片描述

    这个关系 R1 就是笛卡儿积。笛卡儿积是指“使用各个属性的定义域
    生成的组合数最多的集合”
    。因此通过上面 3 个定义域生成的所有关系
    Rn,都是这个笛卡儿积的子集。例如除了 R1,我们还可以定义 R2,将
    R2 定义成由“R1 中的第 1 行和第 2 行”组成的关系。需要注意的是,元
    组个数为 0 的关系也是满足定义的

    这就是我们平时说到关系模型或者关系数据库时所说的“关系”
    (relation)的含义。最早给出这个定义的是关系模型的提出者 Codd,但是“关
    系”这个词并不是他发明的。集合论很早就把“两个集合的笛卡儿积的子
    集”称为“二元关系”了。

    关系的定义域

    定义域其实就是(现代编程语言中的)
    数据类型。我们先看一个例子,下面是一段用 Pascal 语言写的代码。
    type Da

    y = { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
    var Today : Day;
    

    这段代码中,用户定义的数据类型为 “Day”(可取的值刚好有 7 个),
    然后用户定义的与该类型相关的变量为 “Today”(只能取上面定义的 7 个
    值)。这种情况看起来很像是一种拥有**名为 “Day” 的定义域以及定义于其上的属性 “Today” 的关系数据库。**

    现在的DBMS有定义域吗?

    实现了定义域的 DBMS 很少——这种说法严格来讲是不正确的。因
    为对于比较初级的定义域,正好相反,几乎所有的 DBMS 都已经实现了。
    这些定义域主要是
    字符型、数值型等叫作标量类型的数据类型。因为它们
    对属性的取值范围有约束,所以尽管有局限性,但是标量类型也是定义域
    的一种。不能往声明为 INTEGER 型的列中插入 abc 这样的字符串。我们
    还可以使用 CHECK 约束,执行比针对声明为标量类型的列进行的约束更为
    严格的约束。例如,给声明为字符型的列加上约束,限制该列只能取值为’m’
    和 ‘f’,就可以写成 CHECK (sex IN (‘m’, ‘f’))
    因此,现在的 DBMS 是具备简单的定义域功能的,只不过比较初级。
    将数据库比作编程语言的话,可以说现在的 DBMS 相当于只能使用系统
    定义好的类型,不能由用户自定义类型的编程语言

    值(value)和变量(variable)

    一般提到“关系”这个词时,如果不加特殊说明,指的都是“关系变量”。而关系值指的是关系变量在某一时刻取的值。
    实际上或许我们也可以说,
    值就是变量的时间切片(time-slice)

    存在“关系的关系”吗

    这个问题可以替换成“存在递归的关系吗”或者“定义域中可以包含
    关系吗”。
    “关系的关系”在逻辑上是可能存在的。但是,为此必须定义能够使
    定义域包含关系的谓词,而且如果再考虑对关系的量化,就需要实现二阶
    谓词逻辑,因此实现“关系的关系”非常困难。
    因此这里我们只简单地了解一下描述这种现实中还不存在的“关系的
    关系”的关系模型大概是什么样子。首先请看一个具体的表。
    在这里插入图片描述
    虽然这张表看起来有点杂乱,但“关系的关系”的关系模型就是这个
    样子。正如字面意思所示,这是一种“关系之中还有关系”或者“表中还
    有表”的状态。像这样包含关系的列(属性)叫作关系值属性(relationvalued attribute),现在有很多关于它在关系模型中的应用的研究。
    不管怎样,如果接受了这种“关系的关系”,那么自然就能进一步扩
    展到“关系的关系的关系”或者“关系的关系的关系的关系”这样更高阶
    的关系。当然它们也都是嵌套式的递归结构。
    这种递归关系与目录结构是一样的。就像目录中可以放置目录或者
    文件一样,关系中可以放置关系值或者标量值。因此高阶的关系又是树形
    结构。
    文件系统与数据库的目的都是提高数据的存储效率,因此从提高效率
    的角度来说,两者都采用树形结构是理所当然的。只不过如今的关系数据
    库只定义了一阶关系,拿文件系统类比的话,相当于“只能定义一层目录
    的文件系统”。在这一点上,比起文件系统,关系数据库的表达能力稍微
    弱一些。
    能够定义高阶关系的 DBMS 还没出现,但是标准 SQL 语言已经支持
    了数组类型和集合类型的变量,因此关系模型正朝着能够处理复合型数据
    的方向发展。 C.J. Date 等人甚至还断言道:真正的关系系统就是支持关系
    值等全部复合型数据的系统。也许十年以后,真的会出现能够定义高阶关
    系的DBMS.

    关系的封闭性与UNIX中管道的类比

    关系的封闭性与UNIX中管道的概念很像,拿它类比的话可能会容易理解一些。UNIX中的文件也一样具有封闭性,可以作为各种命令的输入或者输出。因此,可以像cat text.txt | sort +1 | more这样将命令组合在一起来编写脚本。这种写法让UNIX的脚本编程变得非常灵活。

    关系运算在形式上与水桶接龙是一样的。关系运算符代表人,关系或文件代表人与人之间传递的水桶。只不过在传递过程中内容是有变化的,这一点和火灾现场的水桶接龙不同,因为水桶中的水是不会发生变化的。
    在这里插入图片描述
    多数初次接触UNIX的人会觉得很惊讶,因为在UNIX系统中,从设备到控制台,一切都可以当作“文件”来处理。因为从外观上来看,设备只不过是/dev目录下的一个普通文件而已。这也是UNIX系统追求文件的封闭性的结果。表达UNIX设计理念的词语之一就是“泛文件主义”,说成“一切皆文件主义”应该也可以。而且,在UNIX中,文件对于Shell命令是封闭的;
    同样地,在关系模型中,关系对关系运算符也是封闭的。关于这一点,从“SQL中SELECT子句的输入输出都是表”也能得到证明。SELECT子句其实就是以表(关系)为参数,返回值为表(关系)的函数。有时SELECT子句查询不到一条数据,然而这时会返回“空集”,而不是不返回任何内容。只不过,因为我们没法实际看到,所以不好确认。仿照UNIX起名字的话,关系数据库的这个特性可以叫作“泛关系主义”。上面两个例子中的封闭性原本是来自数学的概念。数学中会根据“对于什么运算是封闭的”这样的标准,将集合分为各种类型。这些对某种运算封闭的集合在数学上称为“代数结构”。例如,按照对四则运算是否封闭,我们可以把集合分为下面几类。
    1. 群(group):对加法和减法(或者乘法和除法)封闭
    2. 环(ring):对加法、减法、乘法封闭
    3. 域(filed):对加法、减法、乘法、除法封闭,即可以自由进行四则运算
    如果要举个关于“群”的具体示例,那么最简单的就是整数集了,因为任何两个整数之间进行加法或者减法运算,结果一定还是整数。整数集也是环,但却不是域,关于原因,看一个例子就知道了。比如1÷2的结果是小数,不满足封闭性。如果将整数集扩展成有理数集或者实数集的话,那么结果就满足域的条件了。这是因为,使用实数自由地进行四则运算后,运算结果还是实数
    在这里插入图片描述

    展开全文
  • 数据库的事物ACID是指什么

    千次阅读 2018-04-25 11:27:02
    任何一个SQL语句错误,那么执行所有SQL必须撤销一致性:数据库事务不能破坏关系数据完整性以及业务逻辑上一致性隔离性:指的是在并发环境,当不同事务同时操作相同数据,每个事务都有自己...

    ACID分别是Atomic(原子性),Consistency(一致性),Isolation(隔离性),Durability(持久性)的英文缩写


    原子性:只有数据库的所有操作,全部执行成功,才算整个事务的成功;任何一个SQL语句错误,那么执行的所有SQL必须撤销

    一致性:数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性

    隔离性:指的是在并发环境中,当不同的事务同时操作相同的数据,每个事务都有自己的完整数据空间

    持久性:只要事务成功结束,他对数据库的操作更新就永久的保存下来。(发生生系统崩溃,重启数据库后,数据库能回复到事务成功后的状态)

    展开全文
  • 文章目录一、关系型数据库1.1 关系型数据库中核心元素1.2 常用的关系型数据库二、非关系型数据库2.1 常见的非关系型数据库 一、关系型数据库 采用了关系模型来组织数据的数据库,简单来说,关系模型的就是二维表格...

    一、关系型数据库

    采用了关系模型来组织数据的数据库,简单来说,关系模型指的就是二维表格模型,好比Excel文件中的表格,强调用表格的方式存储数据(有字段,表与表之间还有关系)

    1.1 关系型数据库中核心元素

    • 数据行
    • 数据列
    • 数据表
    • 数据库(数据表的集合)

    1.2 常用的关系型数据库

    • Oracle
    • Microsoft SQL Server
    • MySQL
    • SQLite(手机端的)

    二、非关系型数据库

    即NoSQL(not only SQL),非关联型的,强调Key-Value的方式存储数据

    2.1 常见的非关系型数据库

    • MongoDB
    • Redis
      目前关系型数据库比较热门。
    展开全文
  • 数据库中数据表示记录,例如,在学生管理数据库中,记录学生信息包括学号、姓名、性别、年龄、籍贯和联系电话等,这些信息就是数据。 信息是指对数据进行加工处理后提取对人类社会实践和生产活动产生决策影响...

    在学习数据库之前,应该先理解什么是数据。本节先介绍数据以及数据库的概念,再对关系型数据库和非关系型数据库的优缺点进行分析。

    描述事物的符号称为数据。数据有多种表现形式,可以是数字,也可以是文字、图形、图像、声音、语言等。在数据库中数据表示记录,例如,在学生管理数据库中,记录学生的信息包括学号、姓名、性别、年龄、籍贯和联系电话等,这些信息就是数据。

    信息是指对数据进行加工处理后提取的对人类社会实践和生产活动产生决策影响的数据。信息就是数据中所包含的意义。未经过加工的数据只是一种原始材料,它的价值在于记录了客观世界的事实。

    例如“2016010102,张三,男,26,山西,计算机学院,185********”,对于这条学生记录,了解其含义的人会得到这样的信息:张三的学号是 2016010102,今年 26 岁,山西人,就读于计算机学院,他的联系电话是 185********;而不了解其语义的人则无法理解其含义。所以,数据和信息是不可分的。

    数据库(Database)指长期存储在计算机内的、有组织的、可共享的数据集合。通俗的讲,数据库就是存储数据的地方,就像冰箱是存储食物的地方一样。在生活中,每个人都在使用数据库。当我们在电话簿里查找名字时,就是在使用数据库。在某个浏览器上进行搜索时,也是在使用数据库。以及平时我们登录网络,也需要依靠数据库验证自己的名字和密码。即便是在使用 ATM 机时,也要利用数据库进行 PIN 码验证和余额检查。

    数据库实际上就是一个文件集合,是一个存储数据的仓库,本质就是一个文件系统,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查操作。

    在日常生活中,人们可以直接用中文、英文等自然语言描述客观事物。在计算机中,则要抽象出对这些事物感兴趣的特征,并组成一个记录来描述。

    数据库管理系统(DBMS)是数据库系统的核心软件之一,是位于用户与操作系统之间的数据管理软件,用于建立,使用和维护数据库。它的主要功能包括数据定义、数据操作、数据库的运行管理、数据库的建立和维护等几个方面。

    我们常说 XX 数据库,其实实质上是 XX 数据库管理系统。目前,较为流行的数据库管理系统有 MySQL、SQL Server、Oracle 和 DB2 等。

    数据库有两种类型,分别是关系型数据库和非关系型数据库。

    关系型数据库

    关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。简单说,关系型数据库是由多张能互相连接的表组成的数据库。

    优点

    • 都是使用表结构,格式一致,易于维护。
    • 使用通用的 SQL 语言操作,使用方便,可用于复杂查询。
    • 数据存储在磁盘中,安全。

    缺点

    • 读写性能比较差,不能满足海量数据的高效率读写。
    • 不节省空间。因为建立在关系模型上,就要遵循某些规则,比如数据中某字段值即使为空仍要分配空间。
    • 固定的表结构,灵活度较低。

    常见的关系型数据库有 Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access 和 MySQL 等。

    非关系型数据库

    非关系型数据库又被称为 NoSQL(Not Only SQL ),意为不仅仅是 SQL。通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定。

    优点

    • 非关系型数据库存储数据的格式可以是 key-value
      形式、文档形式、图片形式等。使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
    • 速度快,效率高。 NoSQL 可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘。
    • 海量数据的维护和处理非常轻松。
    • 非关系型数据库具有扩展简单、高并发、高稳定性、成本低廉的优势。
    • 可以实现数据的分布式处理。

    缺点

    • 非关系型数据库暂时不提供 SQL 支持,学习和使用成本较高。
    • 非关系数据库没有事务处理,没有保证数据的完整性和安全性。适合处理海量数据,但是不一定安全。
    • 功能没有关系型数据库完善。

    常见的非关系型数据库有 Neo4j、MongoDB、Redis、Memcached、MemcacheDB 和 HBase 等。

    展开全文
  • 要想理解关系型数据库与非关系型数据库,首先得理解:关系数据库中的关系指什么? 先来看一道题: 关系型数据库中所谓的“关系是指( ) A.各个记录中的数据彼此间有一定的关联关系 B.是指数据模型符合...
  • 什么是关系数据库

    2018-09-28 19:52:00
    关系型数据库里有三个关系,实体对象和元数据的关系(主码)。实体对象之间的关系(外键);记录之间的关系(元数据相同,内容类型不同。类型特指:空,有,长,短)。 1、关系型数据库里面的表,二维关系的...
  •  采用了关系模型来组织数据的数据库,简单来说一张二维表,而表中的数据之间有关系 其中的代表有:mysql、sql server 、oracle 特点:  》:事务的一致性(ACID)原子性、一致性、隔离性、持久性  》:....
  • 什么是数据库中的“数据冗余”?

    万次阅读 2018-11-13 21:03:36
    关系数据库中的数据冗余主要是指关系数据库中同一信息数据的重复存贮。 数据冗余浪费了宝贵的资源,应尽量减少。但关系数据库中为实现一些功能有些数据冗余是必需的。必需的数据冗余主要用于以下用途: ...
  • 它基本上是指通过引用表2中的字段来约束表1中的字段。 2.有两个表,第一个表创建外键表,因为第一个外键,主键可以被引用。在oracle数据库中怎样创建主外键关系在oracle 的sqlplus 中写什么sql语句...
  • 什么是数据库? 数据库就是用来存放数据的仓库,它一...RDBMS又称关系型数据库管理系统,建立在关系模型基础上的数据库,通过集合代数等数学概念和方法来处理数据库中的数据。 常见RDBMS的产品有: Mysql : ...
  • Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念 ...用户通过查询来检索数据库中的数据,而查询一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据
  • 什么是数据库

    2021-03-08 18:52:49
    层次模型网状模型关系模型关系型数据库建立在关系数据模型基础上的数据库,借助集合代数概念和方法处理数据库中的数据,同时也一个被组织成拥有正式描述性的表格。该形式的表格实质装载数据项的收集体,这些...
  • 数据库的关系

    2018-10-24 22:31:10
    什么是关联(association) 1.1 关联类之间的引用关系。如果类A与类B关联,那么被引用的类B将被定义为类A的属性。例如: ...#关键点都在数据库中的外键上面,请好好理解下面这二句SQL和一对多及...
  • 什么是数据库 ...假如现在一所学校校长想要把学校资源如:班级,学生保存在数据库中。这里我们就可以使用关系型数据库来保存,首先我们可以通过一张表来保存班级信息,另一张表保存学生信息。并...
  • 什么是数据库 数据库按照数据结构来组织,存储和管理数据的仓库,我们用关系型数据库(RDBMS)来存储和管理大... 数据表:表数据的矩阵,一个数据库中的表像一个表格。 冗余:存储两倍的数据,降低了性能,...
  • 所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。 (一张数据表中的任何非主键字段都全部依赖于主键字段,没有任何非主键字段只依赖于主键字段的一部分) 第三范式:3NF 任何非主属性不依赖于其它非主属性。 ...
  • 系型数据库通过外键关联来建立表与表之间的关系,非关系型数据库通常数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定 非关系型数据库通常数据以对象的形式存储在数据库中 ...
  • 什么是关系模型,简单说,关系模型就是二维表格模型,而一个关系数据库就是由二维表及其之间联系所组成一个数据组织。 关系模型常用概念: 1、关系 可以理解为一张二维表,每个关系都有一个关系名,在...
  • 目录什么数据库数据库的认识它和数据结构区别数据库的分类关系数据库(RDBMS)非关系数据库两者区别基本知识点汇总为什么用...是指采用了关系模型(二维表格模型)来组织数据的数据库。如: Oracle:适合
  • 关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个...
  • 什么是关系模型,简单说,关系模型就是二维表格模型,而一个关系数据库就是由二维表及其之间联系所组成一个数据组织。 关系模型常用概念: 1、关系 可以理解为一张二维表,每个关系都有一个关系名,在...
  • 什么是NoSQL数据库

    2014-07-21 23:24:20
    普通的关系数据库以行为单位来存储数据的,擅长进行以行为单位的读入处理,比如特定条件数据的获取。因此,关系型数据库也被称为面向行的数据库。相反,面向列的数据库是以列为单位来存储数据的,擅长以列为...
  • 关系数据库,建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。 关系模型 现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系模型由关系数据结构、关系操作...

空空如也

空空如也

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

数据库中的关系是指什么