当前课程知识点:大学计算机基础 > 第七章 数据库技术 > 7-4 关系模型的数据结构 > 7-4 关系模型的数据结构
大家已经知道了
数据库和数据库系统的基本知识
这一节我们来学习关系数据库的建立
在1970年,关系数据库之父埃德加·科德
首次提出了关系数据库模型之后
由于关系模型具有坚实的数学基础
而且简单明了
一经推出就受到了
学术界和产业界的高度重视和广泛的响应
迅速成为数据库市场的主流
并且保持市场的统治地位至今
即便目前数据库领域的研究
融合了许多其它领域的技术成果
但这些研究工作
大多是以关系模型为基础的
在学习关系数据库的建立之前
我们要先来了解一下
关系数据库的基础知识
首先介绍一下数据模型
设计者,程序员和终端用户
他们以不同的方式看待数据
那么到底该用哪种表现形式描述数据呢
是用文字,数值还是声音,图形
另外,用什么结构
描述数据和数据之间的联系呢
是用层次,网状还是关系
这是数据库系统考虑的问题
模型是现实世界当中
事物特征的抽象和模拟
例如在建筑界
使用一个叫做沙盘的模型
它是对建筑物结构和地理位置的模拟
数据模型是模型的一种
它是现实世界中
事物的数据特征的抽象和模拟
数据模型就是设计者,程序员,终端用户
这三者沟通的桥梁
是数据库的框架
关系模型是数据模型的一种
是关系数据库系统实现的理论基础
由数据结构,数据操作和数据完整性约束
这三个部分组成
我们分别介绍一下这三个部分
首先来介绍一下关系模型的数据结构
在信息世界中我们将客观存在的
并且能够相互区别的事物称为实体
例如学生A是一个实体
学生B也是一个实体
同一个班所有的学生
就构成了一个实体集
实体所具有的特征把它称为属性
例如学生有学号,姓名,性别,班级等属性
不同的实体依靠不同的属性值来区分
每个属性的取值范围称为值域
例如,性别这个属性
它的值域就只有男和女两个字符
在实体所有的属性集中
能唯一的区分
每一个实体的最小的属性集合称为键
例如每个学生的学号都不相同
因此学号就可以作为学生的键
实体间的联系
对应了现实世界当中事物间的关系
实体间的联系有三种类型
一对一的联系
一对多的联系
和多对多的联系
例如学校与校长之间
系和系主任之���
就是一对一的联系
一个学校有一个校长
一个系有一个系主任
那班级和学生之间
院系和教师之间
他们就是一对多的联系
一个班级有多名学生
一个院系又有多名老师
学生和课程之间,课程与教师之间
这是多对多的联系
一个学生可以修读多门课程
而一门课程又可以有多名学生修读
一门课程有多位授课老师
而一名老师也可以教授多门课程
在关系模型中
无论是实体还是实体间的联系
我们都用关系来表示
每个关系的数据结构
是一个规范化的二维表
在这个二维表当中每一行称为元组
也叫记录
那每一列是一个属性,称为字段
例如身份证号码,学号,姓名都是属性
关系中元组的一个属性值称为分量
例如201056463,李惠,都是分量
在关系中能唯一区分
每一个元组的最小的属性集合称为候选键
例如用身份证号码,学号,姓名,性别
班级等属性来描述学生
那么身份证号码和学号都有唯一性
我们可以通过身份证号码或者学号
唯一地确定出每一个元组
因此学号和身份证号码都是关系的候选键
每一个关系至少要有一个候选键
一般我们从候选键当中
选取其中的一个作为主键来区分元组
例如我们就用学号作为学生关系的主键
若关系A中的一个属性或者属性集
是关系B的候选键
则将该属性或者属性集称为A的外键
关系模式相当于一个表的抽象框架
是相对稳定的
当我们往框架里填入具体的数据之后
每一个元组就成为关系的实例
关系实例会随着数据的插入,删除,修改
而经常发生变化
关系模型对关系进行了规范化的限制
要求关系必须满足以下这些性质
第一个就是元组的有限性
即二维表当中行的个数是有限的
第二是元组的各异性
即每个元组都不能相同
第三是元组次序的任意性
二维表当中行的次序是可以任意交换
对关系不会产生任何影响
第四是字段的各异性
一个二维表当中不能存在相同的属性名
第五是字段的同质性
即二维表当中同一列的数据
必须是一种数据类型和来自同一个值域的
例如,在成绩关系当中
课程号这一列的属性必须是数字
我们可以规定它的取值范围
在1000到1099之间
第六就是字段次序的任意性
�����定义关系模式的时候字段的先后次序
不会影响关系的实际的意义
但是关系模式一旦定义之后
不能再随意地调换
字段在元组当中的顺序了
否则就会引起歧义
最后一点就是分量的原子性
关系当中每一个元组
它的分量都是不可分割的数据项
不允许表中有表
例如大家看到这个例子当中成绩这个属性
被分成了语文和数学两个部分
不符合分量的原子性
必须将表当中嵌套的表拆分
直到每个元组的分量都不能再分为止
我们得将成绩拆分成
语文成绩和数学成绩两个属性
在关系模型中
实体间的联系是通过在其对应的关系当中
包含相同的字段来实现的
例如在学生和课程之间
存在着多对多的联系
一个学生可以选修多门课程
一门课程可以由多个学生同时选修
那多对多的联系
实际上是两个一对多联系的组合
在实际应用当中,任何多对多的联系
都要拆成多个一对多的联系来处理
因此我们可以用这些关系模式
来描述学生选课这一事实
包括学生关系,课程关系和成绩关系
学生和成绩之间一对多的关系
通过在两个关系当中
包含相同的字段学号来实现
那课程和成绩之间一对多的关系
通过是在两个关系当中
包含相同的课程号来实现的
也可以用实体关系图简称E-R图
来表示学生选修课程
在设计数据库时
我们常用到E-R图
来表示实体和它们之间的联系
在E-R图当中,矩形表示的是实体
椭圆形表示实体的属性
而菱形表示的是实体之间的联系
从图中我们可以看出
在学生和成绩之间存在着一对多的联系
一个学生可以选修多门课程
因而有多个成绩记录
而每一条成绩记录只能属于某一个学生
同样,在课程与成绩之间
也存在着一对多的联系
一门课程可以由多个学生同时选修
因而有多个成绩记录
而每一条成绩记录只能与某一门课程相关
在成绩关系中学号是外键
课程号也是外键
同时学号与课程号的组合
又构成了成绩关系的主键
由此我们可见
外键实现了实体间的联系
通过外键课程号
我们可以在课程关系中找到课程的学分
通过外键学号
可以在学生关系中找到对应的学生的姓名
因此要进行诸如
王东同学已经获得多少学分这样的统计
我们只需要经过一定的关系运算
就可以实现了
大家自己尝试一下吧
在解决实际问题时
我们可以将问题所涉及到的实体
以及实体之间的相互联系
用关系模式来描述
这样就会得到一系列
和问题相关的关系模式
这些关系模式的集合
组成了一个关系数据库模式
例如刚才我们给出的
描述学生选课这一事实当中
学生,课程和成绩这三个关系模式
就构成了一个关系数据库模式
关系数据库模式是一个抽象的框架
但它也是搭建一个数据库的基础
当关系实例被填入之后
那这个关系实例的集合
就组成了关系数据库实例
最后我们总结一下
这一节我们主要介绍了
关系模型的数据结构
在关系模型中
无论是实体还是实体之间的联系
都用关系来表示
而每个关系的数据结构
是一个规范化的二维表
谢谢大家的观看
-1-1 计算机的诞生
--第一章 习题1
--计算机的诞生1
--计算机的诞生2
-1-2 计算机的分类
--第一章 习题2
--计算机的分类
-1-3 计算机的应用领域
--第一章 习题3
-1-4 计算机系统组成
--第一章 习题4
--计算机系统组成1
--计算机系统组成2
-1-5 计算机思维的定义
--第一章 习题5
--计算思维1
-1-6 计算思维的特点
--第一章 习题6
--计算思维2
-1-7 计算思维的应用案例
--第一章 习题7
--计算思维3
-第一章 章测试
-2-1 进位计数制表示方法
--第二章 习题1
-2-2 进位计数制的相互转换
--第二章 习题2
--进位计数制2
-2-3 整数的表示方法
--第二章 习题3
--整数的表示1
-2-4 浮点数表示方法
--第二章 习题4
--浮点数的表示1
-2-5 BCD格式表示法
--第二章 习题5
--BCD码
-2-6 算术运算
--2-6 算术运算
--第二章 习题6
-2-7 运算溢出及判断
--第二章 习题7
--运算的溢出
-2-8 逻辑运算
--2-8 逻辑运算
--第二章 习题8
--逻辑运算
-2-9 ASCII编码
--第二章 习题9
-2-10 Unicode编码
--第二章 习题10
-2-11汉字编码
--2-11汉字编码
--第二章 习题11
--汉字编码
-2-12数据校验编码
--第二章 习题12
--数据校验编码
-第二章 章测试
-3-1中央处理器
--3-1中央处理器
--第三章 习题1
--中央处理器
-3-2 存储器
--3-2 存储器
--第三章 习题2
--存储器1
--存储器2
--存储器3
-3-3 总线和接口
--第三章 习题3
--总线
-3-4 外部设备
--3-4 外部设备
--第三章 习题4
--外部设备
-3-5 冯.诺依曼体系结构
--第三章 习题5
-3-6 计算机常用性能指标
--第三章 习题6
--性能指标1
--性能指标2
-3-7嵌入式系统
--第三章 习题7
--嵌入式系统
-3-8哈佛体系结构
--第三章 习题8
--哈佛体系结构
-3-9 DSP简介
--3-9DSP简介
--第三章 习题9
--DSP
-3-10 虚拟台式计算机模拟器
--虚拟桌面架构
-3-11 4位计算机模拟器
-第三章 章测试
-4-1计算机软件分类
--第四章 习题1
--软件分类
-4-2软件的工作模式
--第四章 习题2
--软件的工作模式
-4-3软件的安装方法
--第四章 习题3
--软件安装
-4-4计算机软件生命周期
--第四章 习题4
--生命周期1
--生命周期2
--生命周期3
--软件测试1
--软件测试2
-4-5计算机软件开发过程模型
--第四章 习题5
- 4-6 常用软件介绍-办公软件
--第四章 习题6
-办公软件实例1 文字处理软件
-办公软件实例2 电子表格软件
-办公软件实例3 演示文稿软件
-4-7 常用软件介绍-多媒体创作软件
--第四章 习题7
-多媒体创作软件实例1 音频处理软件
-多媒体创作软件实例2 图像处理软件
-多媒体创作软件实例3 动画制作软件
-多媒体创作软件实例4 视频处理软件
-4-8 常用软件介绍-网页制作软件
--第四章 习题8
-第四章 章测试
-5-1 操作系统概述
--第五章 习题1
--操作系统
--操作系统分类
--操作系统管理
-5-2 Windows 7基本操作
--第五章 习题2
-5-3 Windows 7文件管理
--第五章 习题3
-5-4 Windows 7程序管理
--第五章 习题4
-5-5 Windows 7系统安全
--第五章 习题5
--操作系统安全
-5-6 Windows 7计算机管理
--第五章 习题6
-5-7 Dos命令
--第五章 习题7
--dos
-5-8 Windows 7常用软件
--第五章 习题8
-5-9 Linux操作系统
--第五章 习题9
--Linux
-5-10 手机操作系统
--第五章 习题10
-5-11 虚拟机及Vmware介绍
--第五章 习题11
--虚拟机
--虚拟机使用
-第五章 章测试
-6-1 算法基础
--6-1 算法基础
--第六章 习题1
-6-2 程序设计语言分类
--第六章 习题2
-6-3 程序设计过程
--第六章 习题3
-6-4 程序设计方法
--第六章 习题4
-6-5 程序设计语言基本要素(一)
--第六章 习题5
-6-6 程序设计语言基本要素(二)
--第六章 习题6
-6-7 Python简介及编程环境配置
--第六章 习题7
-6-8 程序设计应用举例
--第六章 习题8
-第六章 章测验
-7-1 数据库技术概述
--第七章 习题1
--信息和数据
-7-2 数据库管理系统
--第七章 习题2
--数据库管理系统
-7-3 数据库系统的组成与功能
--第七章 习题3
--独立性
--数据库系统分类
-7-4 关系模型的数据结构
--第七章 习题4
--E-R图
--三级模式结构
-7-5 关系模型的数据操作及完整性约束
--第七章 习题5
--关系模型
--数据库范式
--完整性约束
-7-6 Access数据库的建立
--第七章 习题6
--Access
-7-7 Access的数据查询
--第七章 习题7
-第七章 章测试
-8-1计算机网络概述
--第八章 习题1
--定义
-8-2网络分类
--8-2网络分类
--第八章 习题2
--分类
-8-3数据传输
--8-3数据传输
--第八章 习题3
--数据传输
-8-4网络拓扑结构
--第八章 习题4
--网络拓扑结构
-8-5网络体系结构
--第八章 习题5
--网络体系结构
-8-6网络互连
--8-6网络互连
--第八章 习题6
--网络互连
-8-7Internet基础:TCP╱IP协议结构
--第八章 习题7
--TCP/IP模型
--IP协议
-8-8Internet基础:IP地址
--第八章 习题8
--IP地址
-8-9Internet基础:域名系统
--第八章 习题9
--域名
-8-10Internet基础:Internet的基本服务
--8-10Internet基础:Internet的基本服务
--第八章 习题10
--Internet
-8-11Internet基础:Internet的接入
--第八章 习题11
-第八章 章测试
-9-1信息安全的基本概念
--第九章 习题1
--信息安全的CIA
--攻击与防御
-9-2 密码技术及应用
--第九章 习题2
--数字签名
-9-3防火墙技术
--9-3防火墙技术
--第九章 习题3
--防火墙的分类
--防火墙的基本特性
-9-4恶意软件
--9-4恶意软件
--第九章 习题4
--恶意软件类型
-9-5入侵检测技术
--第九章 习题5
--入侵检测概念原理
--入侵检测分类
-第九章 章测试
-10-1 云计算
--10-1 云计算
--第十章 习题1
-10-2大数据
--10-2大数据
--第十章 习题2
-10-3物联网
--10-3物联网
--第十章 习题3
-10-4机器学习
--10-4机器学习
--第十章 习题4
-10-5人工智能
--10-5人工智能
--第十章 习题5
-10-6物联网应用
-第十章 章测验
-1-0 准备步骤
--1-0 准备步骤
-1-1 台式机组装
-1-2 笔记本电脑组装
-3-1 启动和退出Word
-3-2 创建、编辑和保存Word文档
-3-3 封面的制作
--封面的制作-1
--封面的制作-2
--封面的制作-3
--封面的制作-4
-3-4 长文档编辑
--长文档编辑
-3-5 页面插入与目录
-3-6 页眉页脚与页码
-3-7 完成文档
-4-1 创建和编辑Excel表格
-4-2 简单公式和函数
-4-3 插入图表
--4-3 插入图表
-4-4 电子表格中数据的管理
-5-1 创建演示文稿与添加幻灯片
-5-2 编辑演示文稿
-5-3 设置演示文稿外观
-5-4 交互式演示文稿的设置
-5-5 设置演示文稿动画和音乐
-5-6 演示文稿放映
-6-1 图像的修饰
-6-2 淡黄色的记忆
-6-3 心形贺卡
--6-3 心形贺卡
-6-4 燃烧字
--6-4 燃烧字
-6-5 闻味的小狗狗
-6-6 换脸
--6-6 换脸
-7-1 逐帧动画的制作
-7-2 动作补间动画的制作
-7-3 形状补间动画的制作
-8-1 网站制作前期工作
-8-2 在Dreamweaver中建立和管理站点
-8-3设计制作网站主页
-8-4 制作网站导航栏
-8-5 修饰美化页面
-8-6 填写页面内容
-8-7 设计制作次级页面并建立链接
-9-1 Python的下载
-9-2 Python的安装
-9-3 IDLE的使用
-9-4 求矩形的周长和面积
-9-5 求三角形的面积
-9-6 求素数
--9-6 求素数
-10-1 数据库的建立
-10-2 SQL的应用
-11-1 Packet Tracer简介及下载方法
-11-2 有线网络的组网与配置
-11-3 无线网络的组网及无线路由配置
-12 无线网络安全配置