Alex_McAvoy

想要成为渔夫的猎手

【概述】

关系操作 中,简单介绍了关系模型中的常用操作和关系查询语言,目前,在关系数据库领域,SQL 是最常用的关系数据语言,其是以关系代数为核心的,本篇将对关系代数进行简单介绍

关系代数是一种抽象的关系数据语言,其通过代数运算方式表示关系查询,所谓代数运算,是将一定的运算符作用于一定的运算对象上,通过形成表达式以得到预期的运算结果,所以运算对象运算符运算结果是代数运算的三大要素

阅读全文 »

【基本关系操作】

关系模型给出了关系操作的能力说明,但未对关系数据库管理系统语言给出具体的语法要求,也就是说不同的关系数据库管理系统(RDBMS)可以定义、开发不同的语言来实现这些操作

关系操作的特点是集合操作,即操作的对象和结果都是集合,一次查询后全表搜索,然后一次性返回所有满足条件的元组的集合,这种操作方式也称为一次一集合(set-at-a-time)方式,相应的,非关系数据模型的操作方式是一次一记录(record-at-a-time)方式

阅读全文 »

【关系数据结构的形式化定义】

关系模型的数据结构十分简单,在用户角度来看关系模型中数据的逻辑结构只是一张二维表,虽然简单,但却能表示现实世界中实体以及实体间的各种联系,在 数据库关系模型 中,已经介绍了关系模型与其基本概念,但关系模型实质上是建立在集合代数基础上的,这里从集合论角度,给出关系数据结构的形式化定义

阅读全文 »

【概述】

链式队列是采取链式存储的队列,其不存在队列满而导致上溢的情况,通常设计为一个带头结点的单链表,其有两个指针,队头指针向队头结点,尾指针指向队尾结点

链式队列的实现类如下:

阅读全文 »

【概述】

由于顺序队列中的假溢出会造成极大的空间浪费,为避免这种浪费,对可采用以下两种方法来克服:

  1. 将队列中所有元素均向低地址区移动
  2. 将存储队列的数组头尾相接,当存放到 $n$ 地址后,下一个地址就翻转为 $1$
阅读全文 »

【概述】

关系模型是最重要的一种逻辑模型,在数据库领域上,当前的研究工作都是以关系方法为基础,目前常见的数据库系统基本都是采用关系模型作为数据的组织方式,即关系型数据库

关系模型建立在严格的数学概念的基础上,可以描述一对一一对多多对多的联系,同时概念单一,实体、各类联系、对数据的检索结果都用关系来表示,具有更高的数据独立性、更好的安全保密性,此外存取路径对用户透明,用户只要指出干什么,不必详细说明怎么干,简化了数据库建立的过程,也精简了程序员的工作

阅读全文 »

【概述】

数据库领域主流的逻辑模型随着时代的发展不断在变化,格式化模型(层次模型、网状模型)在 20 世纪 70 年代到 80 年代初期十分流行,占据主导地位,但现在已逐渐被关系模型的数据库系统取代

同时,自 80 年代面向对象技术在计算机各领域广泛应用后,数据库领域针对于面向对象方法也进行了研究,这就有了面向对象模型,之后为进一步支持面向对象模型,许多数据库厂商对关系模型进行了扩展,这就产生了对象关系数据模型

阅读全文 »

【概述】

顺序队列是采取顺序方式存储的队列,利用一组地址连续的存储单元自队首到队尾存放数据元素,并通过队首指针来指示当前队首元素位置,通过队尾指针来指示当前队尾元素的下一位置

对于存储空间的分配,若采用静态分配方式,一经分配不可修改,若采用动态分配方式,分配后在 $O(n)$ 的时间复杂度内可以更改

阅读全文 »

括号匹配问题是指,在给出一个包含 ({[)}] 的序列,问这个序列的括号是否匹配

解决括号匹配问题的基本思想是:

  1. 扫描整个序列,遇到左括号时,令左括号入栈,遇到右括号时,令左括号出栈,进行匹配操作
  2. 若出栈的左括号与当前右括号不匹配,则整个序列不匹配
  3. 若栈为空,且扫描到右括号,则整个序列不匹配
  4. 若扫描完序列后,栈中仍有左括号(判断栈是否为空即可),则整个序列不匹配
阅读全文 »