数据库系统概论之旅 其一

题外话

此篇博客仅用于自我学习记录,如有和你冲突的想法,就请略过或以网上更准确地定义为主,如有错误后面我会慢慢修正

数据库系统

数据库系统是一个用于操作存放数据的大系统,结构如下图所示,我们将在此讲中来理想化的实现一个数据库系统在这里插入图片描述我们明显的看到数据库系统是由这三个层次组成:内部层次(数据库)、概念层次(数据库管理系统)、外部层次(应用程序)

三个常用数据库系统中的数据处理方案–三大数据模型

我们要想组织操作存储数据库系统中在各层次间不断流动,在数据库中存放数据,我们需要一套完美的解决方案,但伟大的科学家们已经为我们提供了常见的三种数据库系统中的数据处理方案,也就是三大模型,下面我们一一讲解

⭐⭐1.关系模型

当您采用关系模型这一方案设计您的数据库系统的时候,那就您的数据将以的形式存放在数据库

小概念---------------------------------模式、视图---------------------------------------------------

模式:数据库中存放的每张表的表结构在这里插入图片描述
视图:数据库中存放的每张表的表数据
其中第一行称为标题行,每一列称为一个字段,每一行称为一个元组,字段所能取到的所有值的集合称为域,每个值称为列值
在这里插入图片描述
数据库底层存储的模式称为内部模式,数据称为内部视图。数据库操作系统可以看到的是概念视图,模式称为概念模式。应用程序上可以看到的称为外部视图,模式称为外部模式。内部视图模式通过E-C映射为概念视图模式,当内部视图模式改变时只需改变E-C映射即可。概念视图模式通过C-I映射成为外部视图模式,当概念视图模式发生变化时无需改变外部视图模式,只需改变C-I映射即可。

我理解来说,其实上面的模式和视图准确来说应该称作概念模式和概念视图

小概念结束---------------------------------模式、视图----------------------------------------------

采用这一解决方案即采用关系模型来组织您数据库系统中的数据不单单是让您的数据在数据库中以表的形式存放,还需要您以关系模型所规定的一些操作和约束为基础来设计操作数据库的语言以放在操作库管理系统中供管理员等有权限的人直接操作数据库

小概念--------------------------------关系模型所规定的操作以及约束------------------------
关系代数操作:
  1. “并”操作:将R关系(集合)与S关系(集合)做并运算得到 R V S 这一(关系)集合,其中这一集合中的元组是R的全部元组和S的全部元组的集合。
  2. “差”操作:将R关系(集合)与S关系(集合)做差运算得到 R - S 或 S - R这一关系,其中如果是 R - S那么这一集合中的元组就是R关系中全部元组除“去与S中的元组相同的元组所剩下的部分。
  3. “笛卡尔积”操作:将R关系与S关系做笛卡尔积运算得到R X S这一关系,其中这一关系中的每个元组都是<Ri,Si>这样的形势。此处有个数学规律是R的度为r1,元组为r2,S的度为s1,元组为s2,那么 R X S的度为r1 + s1,元组为r2 * s2。
  4. “选择”操作:选择操作得到的关系是将R关系中选择出符合条件的元组所形成的新关系N。
  5. “投影”操作:可以将R关系中的某一列中的全部列值挑出来形成一个新的关系N。
  6. “交”操作:将R和S中的相同元组取出,形成一个新的集合N。该操作可通过“差操作”完成。
  7. “连接”操作:将R与S进行连接,也就是合并为一个表。连接操作基本是换汤不换药,比如1班的成绩和2班成绩需要连接起来好挑选出满足1班成绩大于2班对应排名成绩的人开一个表彰班会,这个表的连接方式就是,先对1班成绩表和2班成绩表进行笛卡尔乘积,然后再从中进行“选择操作”选择出1班成绩大于对应排名的2班成绩的人数。当然也可以选择出成绩相同的学生,但是总体的思路就是“先笛卡尔积再选择”。当然我最想说的一点就是连接分为内连接,左连接,右连接和全连接。
    内连接的意思就是自然连接,将R关系中的外键与S关系中的主键相同的元组进行连接,然后形成一个新关系
    左连接的意思就是R关系中的元组全部保留,其中S关系中与R关系中外键相同的部分进行连接,不相同的部分就不连接。
    右连接与左连接相反。
    全连接就是RS关系元组全部保留,能连上的地方就连,连不上的地方就不连。

关系演算操作:

不知是不是关系代数操作不够直观,该解决方案的操作还有另一种表现形式:关系演算。
关系演算不必记得像上面的关系代数这么多的符号啊操作啊啥的,只需要用一些谓词和集合来表示操作即可,其中关系演算分为元组演算和域演算,元组演算就是最后得到的一个关系(集合)中的都是原来的元组。域演算最后得到的一个关系(集合)中的都是原来关系中视图的某个字段。
在这里我就不多赘述了。


约束
  1. 候选码不是约束,它是关系中的一组可以标识该元组唯一性的属性。但主码是约束,如果只有一个候选码,那么它就是主码。如果有多个候选码,那么你就可以挑出一个作为主码
  2. 外码是约束。外码是用来标注和别的关系进行连接的字段。
  3. 非空是约束。表明该字段的值不能为空。
  4. 检查是约束。表明为一个元组的某个字段赋值时必须要遵循的数据结构。
  5. 唯一是约束。表明该字段中出现的每个值都互不相同。

其中和这些约束有关的概念是三大完整性:实体完整性(主键非空)、参照完整性(外键要么为空,不对应别的表的主码。要么外码就必须能对应上别的表的主码)、用户自定义完整性(对字段取值进行限制)

小概念结束--------------------------关系模型所规定的操作以及约束------------------------

至此,我们就成功的将数据用表的形式放到了数据库中,并且为管理员提供了一些操作去定义操作数据库中的表
什么?你问我应用程序怎么办,很抱歉,这套解决方案不能解决开发应用程序的难题,开发应用程序是归各种各样的框架解决的。

2.层次模型

该解决方案暂不是学习的重点,不知道是不是用的很少?对于这里我仅仅知道使用这套解决方案的数据库中存放数据的数据结构是树

3.网状模型

很抱歉,同上,我仅仅知道采用该方案的数据库中存放数据的数据结构是图,我甚至都不知道这种解决方案所提供的操作和约束都有什么😶‍🌫️

结语

这仅仅是把我昨天学的东西做一个记录。逻辑可能看起来较乱,文章线索可能也存在问题。目前正处于初学状态,如有错请多多多多包涵!以后这个系列的博客肯定还会继续修正完善的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值