首先我们知道数据模型的三要素:数据结构,数据操作和完整性约束。

1.关系的数据结构

1.1关系的定义

域:一组具有相同数据类型的值的集合。

笛卡儿积:给定一组域D1,D2,D3....Dn,它们之中可以有相同的域。所以这n个域的笛卡儿积可以表示为

D1xD2x...xDn={ (d1,d2,...,dn) | di属于Di,i=1,2,3,...,n }

其中每个元素(d1,d2,..dn)称为一个元组,简称元组。   每个di称为一个元组分量。

关系:D1xD2x...Dn中某个有一定定义的子集叫做在域D1,D2,...Dn上的关系,表示为R(D1,D2,...,Dn)。R为关系的名字,n是关系的目或度。

关系模型的数据结构非常简单,只包含单一的数据结构------关系。(这也是数据模型的优点,简单的数据结构)

1.2关系模型的相关概念

概念模型中实体的属性,域,实体型,实体集在关系模型中分别用关系的属性,域,关系模式,关系实例来表示。

属性:

对关系中元组的分量的描述,用属性名表示,与定义关系的一组域对应。在同一关系中,属性名不能相同。

例如:学生可以用姓名,性别,年龄等属性来描述。

域:

属性的取值范围。

不同属性可以有相同的域。(一般要求所有的域都是原子数据的集合。这种限制称为第一范式条件)

关系模式:

关系的描述称为关系模式。

可形式化表示为

R(U,D,Dom,F)

其中R为关系名,U为组成关系R的属性集合,D为属性组U中属性来自的域,Dom为属性向域的的映像的集合,F为属性间数据  的依赖关系集合。

关系模式通常可以表示为(A1,A2,A3,...,An),其中A1,A2,...,An为属性名,域名及属性向域的映像常常直接说明为属性的类型和长度。例如,学生(姓名,性别,年龄)

关系实例:

一个给定关系的某一时刻的元组的集合,即当前关系的值。关系R的实例记为r(R)。

关系模式是关系的型的描述,是静态的,稳定的。而关系实例(值)是关系的“当前”元组的集合,是动态的,随时间不断变化的,其变化通过关系的元组的改变表现出来的。

从程序设计语言角度来看,“关系”的概念对应“变量”,“关系模式”和“关系实例”相当于变量的类型定义和变量的值。

候选键:

若关系中的某一属性或属性集能唯一标识一个元组,而任意一个真子集无该性质,则称为该属性或属性集为关系的候选键。(即候选键是能唯一标识一个元组的最小属性集)

例如,学生(姓名,性别,年龄),其中的姓名可以当候选键。

每个至少含有一个候选键,若一个关系有多个候选键,可以选择其中一个为主键。

包含候选键的属性集称为超键。超键能唯一标识元组,但不具有最小化性质。

若关系只有一个候选键,且这个候选键包含关系的所有属性,则称这个候选键为全键。

主属性:

构成候选键的每个属性称为主属性。

不包含候选键中的属性称为非主属性。

外键:

若关系R的一个属性(集)F与关系S的主键K对应,即关系R中的某个元组的F上的值也是关系S中某个元组的Ks上的值,则称为该属性(集)F为关系R的外键。

例如,学生(学号,姓名,性别,年龄),学号为主键;

课程(课程号,课程名,先修课程号),课程号为主键;

选课(学号,课程号,成绩),其中学号和课程号为主键。

所以“课程”关系的“先修课程号”引用了“课程”关系的“课程号”属性,是“课程”关系的外键,“选课”关系中的“学号”和“课程号”又分别引用了“学生”关系和“选课”关系中的属性,也是这两个关系的外键。

1.3关系的性质

当关系作为关系数据模型的数据结构时,需要给予如下的限定和扩充:

(1)限定关系数据模型中的关系必须是有限集合。

(2)通过为关系的每个属性附加一个属性名来取消元组分量的有序性。

所以归纳起来有如下性质:

1,元组个数有限性。

2,属性名唯一性。

3,属性的次序无关性。

4,元组的唯一性。

5,元组的次序无关性,即元组的顺序可以任意交换。关系是元组的集合,而不是元组的列表。

6,元组分量的原子性。

7,分量值域同一性。

1.4关系与二维表

从用户角度来看,关系模型的数据结构就是一张二维表,表中的每行对应一个元组,表中每列对应一个取值域。

表和关系实际上是不同的,表现在如下几方面:

(1)表中各列从左到右是有序,而关系中的属性是任意的。

(2)表中各行从上到下是有序的,而关系中元组的次序是任意的。

(3)表中可能包含重复的行,而关系中不能有重复的元组。

(4)表中至少有一个列,而关系可以存在没有任何属性,相当于空集合。

(5)表中可以包括空行,但关系中不允许。

(6)表是“平面的”或“二维的”,而关系是“n维的”,是n个域上的一个n元组的集合。

1.5关系数据库

在关系模型中,数据库是由一个或多个关系组成。数据库的关系模式集合叫做关系数据库模式,或数据库模式。

在某一应用领域中,描述所有实体集及实体之间联系所形成的关系的集合就构成了一个关系数据库。

本文章参考宋金玉 陈萍 陈刚 编著《数据库原理与应用》

数据库原理与应用--------------关系数据库理论(一)相关推荐

  1. 【数据库原理 • 三】关系数据库标准语言SQL

    前言 数据库技术是计算机科学技术中发展最快,应用最广的技术之一,它是专门研究如何科学的组织和存储数据,如何高效地获取和处理数据的技术.它已成为各行各业存储数据.管理信息.共享资源和决策支持的最先进,最 ...

  2. 【数据库原理实验(openGauss)】实验报告

    <数据库系统原理实验>报告 文章目录 <数据库系统原理实验>报告 一.实验课程性质和教学目标 二.实验课程教学基本要求 三.实验教学内容 实验一 认识DBMS系统 (一)实验目 ...

  3. 数据库原理与应用课程知识点

    数据库原理与应用课程知识点 文章目录 数据库原理与应用课程知识点 **第一章 绪论** 数据.数据库.数据库管理系统.数据库系统的概念 数据管理技术发展的三个阶段及各阶段的优缺点 概念模型中的基本术语 ...

  4. 考研复试数据库原理面试题(四)—关系数据库设计与设计理论

    写作目的:为了应对考研复试中的面试,我整理了导师可能提问的地方,力求用口语化的语言描述出来. 这只是一部分,陆续还有数据库原理的其它章节,还会推出数据结构.计算机网络复试题整理. 数据库原理我的参考书 ...

  5. 【数据库原理及应用】经典题库附答案(14章全)——第六章:关系数据库设计过程

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  6. 【数据库原理及应用】经典题库附答案(14章全)——第五章:关系数据理论

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  7. 【数据库原理及应用】经典题库附答案(14章全)——第二章:关系数据库知识

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  8. 二、数据库原理-设计理论

    第一章 关系数据库设计理论   第一节  完整性 关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则.完整性通常包括实体完整性,参照完整性和用户定义完整性. 一.实体完 ...

  9. 《数据库原理与应用(第3版)》——第3章 关系数据库

    本节书摘来自华章出版社<数据库原理与应用(第3版)>一 书中的第3章,作者:何玉洁,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第3章 关系数据库 关系数据 ...

最新文章

  1. python使用imbalanced-learn的RandomUnderSampler方法进行下采样处理数据不平衡问题
  2. (转载)如何学好iphone游戏开发
  3. 多线程解决rospy.spin()语句之后,程序不再往下执行问题
  4. Linux命令之 —— grep \ls \ ll \ sed \ bg fg \ ipset \ wc \ ifconfig \ awk
  5. 解决JavaOpenCV的内存问题
  6. 鸿蒙首饰用什么合成,天下HD鸿蒙炼炉是什么?鸿蒙炼炉讲解
  7. 二 面向对象三大特性
  8. 浪潮n系列服务器指示灯_【科恩电气】通用薄型区域传感器 NA2N系列
  9. HOW TO:在 Visual C++ .NET 中从 System::String* 转换为 Char*
  10. 【嵌入式Linux】嵌入式Linux驱动开发基础知识之Pinctrl子系统和GPIO子系统的使用
  11. Java——链表的增删查改
  12. Android 直播调研
  13. HDFS中NameNode和Secondary NameNode
  14. 如何使用 Firebase 建立短網址?
  15. WannaCry勒索病毒分析 **下**
  16. [计算几何] (二维)圆与直线的交点
  17. 网页注册页面html代码,网页代码
  18. 齐二TK6916/20/26/32系列数控落地铣镗床简介7
  19. 实现用户自定义表单,自定义工作流
  20. docker -v :rw :ro

热门文章

  1. 台式电脑组装机相关知识之处理器(CPU)篇
  2. python安装出错0x80072ee7_如何在Windows系统上安装Python?
  3. 投资学股票交易日志汇总
  4. 关于QQ pc端撤回破解
  5. android6 miui9分屏,小米MIUI9重磅新功能曝光:分屏、画中画,更流畅省电
  6. 如何不用APP保存闪照
  7. 巴克码及其应用(VDES)
  8. Pr 入门教程如何在时间轴上修剪剪辑?
  9. Excel - 学习 - 笔记5: Excel 函数 - vlookup 函数
  10. Android初级开发(九)——网络交互—HttpURLConnection