【数据库系统设计】关系数据库简介(关系模型、关系模式、关系完整性、关系代数)
关系数据库
- 笔记目录
- 关系模型
- 关系数据结构
- 域
- 关系
- 关系模式
- 关系的三类完整性
- 实体元整性(Entity Integrity)
- 参照完整性
- 用户定义的完整性
- 关系代数
- 关系代数运算符
- 传统的集合运算
- 并(Union)∪\cup∪
- 差(Difference)−-−
- 交(Intersection)∩\cap∩
- 笛卡尔积 ×\times×
- 专门的集合运算
- 选择 σ\sigmaσ
- 投影 ⊓\sqcap⊓
- 连接 ⋈⋈⋈
- 等值连接
- 自然连接
- 等值与自然连接例题
- 悬浮元组
- 外连接
- 除运算 ÷\div÷
- 除运算例题
- 小结
- 课后作业
- 课后作业答案
笔记目录
更多内容可以查看笔记目录
关系模型
关系数据结构
单一的数据结构 ---- 关系
现实世界的实体以及实体间的各种联系均用关系来表示
域
域是一组具有相同数据类型的值的集合。例:
- 整数
- 实数
- 介于某个取值范围的整数
- 指定长度的字符串集合
- {男’,‘女’}
关系
关系
- D1×D2×.…×DnD_1×D_2×.…×D_nD1×D2×.…×Dn 的子集叫作在域 D1,D2,…,DnD_1,D_2,…,D_nD1,D2,…,Dn 上的关系,表示为 R(D1,D2…,Dn)R(D1,D2…,Dn)R(D1,D2…,Dn)
R:关系名
n:关系的目或度(Degree)
元组
- 关系中的每个元素 (d1,d2,…,dn)(d_1,d_2,…,d_n)(d1,d2,…,dn) 叫作一个 n元组(n-tuple) 或简称元组,通常用 t 表示。
属性
- 关系中不同列称为属性(Attribute),每个属性有一个名字
- n目关系必有n个属性
码
候选码(Candidate key)
若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码
简单的情况:候选码只包含一个属性全码(All-key)
最极端的情况:关系模式的所有属性是这个关系模式的候选码,称为全码主码
若一个关系有多个候选码,则选定其中一个为主码(Primary key)主属性
主属性是指包含在候选码中的属性。
不包含在任何侯选码中的属性称为非主属性(Non-Prime attribute)或
非码属性(Non-key attribute)
单元关系与二元关系
- 当 n=1 时,称该关系为单元关系(Unary relation)或一元关系
- 当 n=2 时,称该关系为二元关系(Binary relation)
关系模式
关系模式(Relation Schema)是型、关系是值
关系模式是对关系的描述
- 元组集合的结构
- 属性构成
- 属性来自的域
- 属性与域之间的映象关系
- 完整性约束条件
关系的三类完整性
实体元整性(Entity Integrity)
- 关系中元组在组成主码的属性上不能有空值
- 每个关系都应有一个主码
- 每个元组的主码的值应当唯一
- 主属性不为 NULL
- 空值就是“不知道”或“不存在”或“无意义”的值
参照完整性
- 在关系模型中存在着关系与关系间的引用
- 外码(Foreign Key)
例 2.1 :
学生关系中每个元组的“专业号”属性只取两类值:
(1)空值,表示尚未给该学生分配专业
(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配一个不存在的专业
例 2.2 :
选修(学号,课程号,成绩)
“学号”和“课程号”可能的取值:
(1)选修关系中的主属性,不能取空值
(2)只能取相应被参照关系中已经存在的主码值
例 2.3 :
学生(学号,姓名,性别,专业号,年龄,班长)
“班长”属性值可以取两类值:
(1)空值,表示该学生所在班级尚未选出班长
(2)非空值,该值必须是本关系中某个元组的学号值
用户定义的完整性
- 针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求
- 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需由应用程序承担这一功能
例:
课程(课程号,课程名,学分)
- “课程号” 属性必须取唯一值
- 非主属性 “课程名” 也不能取空值
- “学分” 属性只能取值 {1,2,3,4}
关系代数
关系代数是一种抽象的查询语言,它用对关系的运算来表达查询
- 运算对象是关系
- 运算结果亦为关系
- 关系代数的运算符有两类:
集合运算符
专门的关系运算符
关系代数运算符
传统的集合运算
并(Union)∪\cup∪
差(Difference)−-−
交(Intersection)∩\cap∩
笛卡尔积 ×\times×
例如,给出 3 个域:
- D1 = 导师集合SUPERVISOR = {张清玫,刘逸}
- D2 = 专业集合SPECIALITY = {计算机专业,信息专业}
- D3 = 研究生集合POSTGRADUATE = {李勇,刘晨,王敏}
D1,D2,D3的笛卡尔积为:
专门的集合运算
首先给出三张表:学生关系Student、课程关系Course、选修关系SC
- 学生关系 Student
- 课程关系 Course
- 选修关系 SC
选择 σ\sigmaσ
投影 ⊓\sqcap⊓
连接 ⋈⋈⋈
等值连接
自然连接
等值与自然连接例题
例:给出关系 R 和关系S 的表:
悬浮元组
两个关系R和S在做自然连接时,关系R中某些元组有可能在S中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍弃了,这些被舍弃的元组称为悬浮元组。
外连接
除运算 ÷\div÷
除运算例题
解:
小结
关系数据库系统是目前使用最广泛的数据库系统
关系数据库系统与非关系数据库系统的区别:
- 关系系统只有 “表” 这一种数据结构
- 非关系数据库系统还有其他数据结构
课后作业
设有一个 SPJ 数据库,包括 S、P、J 及 SPJ 4 个关系模式:
S(SNO, SNAME, STATUS, CITY);
P(PNO, PNAME, COLOR, WEIGHT);
J(JNO, JNAME, CITY);
SPJ(SNO, PNO, JNO, QTY)。
供应商表 S 由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。
零件表 P 由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。
工程项目表 J 由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。
供应情况表 SPJ 由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为 QTY。
试用关系代数、ALPHA语言、QBE语言完成如下查询:
(1)求供应工程 J1 零件的供应商号码 SNO;
(2)求供应工程 J1 零件Pl的供应商号码 SNO;
(3)求供应工程 J1 零件为红色的供应商号码 SNO;
(4)求没有使用天津供应商生产的红色零件的工程号 JNO;
(5)求至少用了供应商 S1 所供应的全部零件的工程号 JNO。
解:
课后作业答案
(1)(2)(3)没有问题。
(4)第一个式子写成 SPJ 或 J 都行。
(5)错了。
【数据库系统设计】关系数据库简介(关系模型、关系模式、关系完整性、关系代数)相关推荐
- 关系数据模型、基本概念、关系模型的基本术语、关系代数
关系数据模型 关系数据模型 关系模型由关系模型的数据结构.关系模型的操作集合和关系模型的完整性约束三部分组成,这三部分也称为关系模型的三要素. 数据结构 关系数据模型源于数学,它用二维表来组织数据,而 ...
- 从需求出发来看关系模型与非关系模型–关系模型与非关系模型概述
自从NoSQL概念横空出世,关系数据库似乎就成了众矢之的,似乎一夜之间,关系数据库和SQL就成了低效,高成本,速度慢的数据处理模式的代名词.在很多地方都能看到类似:"我的项目初创,应该选择什 ...
- 数据库基础---关系数据库简介和关系代数8种运算方法及例题
关系数据库 关系数据模型 关系是一个数学概念. 当把关系的概念引入到数据库系统作为数据模型的数据结构时,既有所限定和也有所扩充. 关系的数学定义 例: 课程={离散,C语言-..},学生={张三,李四 ...
- (2.2)关系模型之基本关系代数运算
文章目录 1.关系代数 2.基本关系代数运算:选择 3.基本关系代数运算:投影 4.基本关系代数运算:并运算 5.基本关系代数运算:集合差运算 6.笛卡尔积运算 7.更名 1.关系代数 可以用代数.逻 ...
- 数据库中的各种定义,关系、关系模式、关系模型……
原文指路:关系.关系模式.关系模型blablabla- 数据:数据就是数据库中存储的基本数据,比如学生的学号.学生的班级 数据库:存放数据的仓库 数据库管理系统:数据库软件,如MySQL.Oracle ...
- 数据库 2.关系模型
2. 关系模型 2.1 关系结构与约束 关系是使用最广泛的逻辑数据模型. 关系模型涉及:关系结构.关系操作.完整性约束. 关系数据库用一系列表来表达数据以及这些数据之间的联系 列:每个列有个列首,也称 ...
- 第2章 数据库关系模型---数据库原理及应用
目录 第2章 数据库关系模型 本章要求: 1.关系模型的基本概念 关系数据模型-现有主流DBMS支持的逻辑模型 域(Domain):相同数据类型的集合 关系模式:关系名和属性 关系实例: ...
- 数据库 ---- 关系模型
在关系模型中,操作的对象和结果都是二维表,关系模型是目前最流行的数据库模型.支持关系模型的数据库管理系统称为关系数据库管理系统,Access就是一种关系数据库管理系统. 1.基本术语 (1)关系(Re ...
- 数据库MySQL关系模型之基本概念
1.什么是关系模型 1.1关系模型研究什么 一个关系(relation)就是一个Table 关系模型就是处理Table的,它由三个部分组成: 描述DB各种数据的基本结构形式(Table/Relatio ...
- 数据库三种概念模型——层次模型,网状模型,关系模型的优缺点总结
层次模型 优点: 数据结构简单清晰. 因为记录之间的联系用有向边表示,这种联系在DBMS中通常使用指针实现,查询效率高.层次模型数据库性能优于关系数据库,不低于网状数据库. 提供了良好的完整性支持.进 ...
最新文章
- Java获取数据库表的字段信息,及如何将ResultSet转为json
- 循环神经网络:RNN、LSTM、GRU、BPTT
- 前端开发工程师养成记
- java 检测硬盘原理_深入Java核心 Java内存分配原理精讲
- 编写高性能的C#代码(三)使用SPAN
- 简单多边形三角化(暴力)
- 阿里云人脸识别sdk
- 【转】程序在内存中的分布
- Python借助百度搜索引擎爬取Python小屋密切相关文章
- 微软反向 RDP 漏洞补丁不当,第三方 RDP 客户端易受攻击
- Redis 概述、Win 10 下载安装、redis.conf 配置文件详解
- Batch, Iteration,Epoch概念理解
- svn 删除本地和远程仓库上的文件
- 最常用高频汉字前4000
- 达梦共享存储集群DMDSC-2节点部署手册
- 大学英语综合教程二 Unit 7 课文内容英译中 中英翻译
- #深度解析# GAN(生成对抗神经网络)
- 内存分配方式及内存碎片
- 华为手机怎么录屏?十分简单,轻松学会
- GD32报错Feature(s) : RDI, FlashBP, FlashDL, JFlash, GDB