绪论

1 数据库系统概述:DB、DBS、DBMS、数据管理技术的发展
2 数据库系统的结构
3 数据库系统的组成:三级体系结构、两层映象、数据独立性
4信息、数据、数据处理与数据管理的基本概念;
5数据管理技术发展的三个阶段及各自的优缺点;
6整个数据库系统主要包括数据库、数据库用户、计算机硬件系统和计算机软件系统等几部分;
7数据库系统内部的体系结构:三级模式结构;
8数据库系统的三级抽象和二级映象保证了数据库系统的逻辑独立性和物理独立性
9E-R模型
层次模型、网状模型、关系模型和面向对象模型

文件系统和数据库

文件系统中,应用程序直接访问存储数据的文件;而数据库系统中,应用程序则通过数据库管理系统(DBMS)来访问数据。
数据库系统中,数据不再仅仅为某个程序或用户服务,存储数据的文件也不再需要直接被应用程序管理,而是由一个称为数据库管理系统的软件统一管理。

DBMS在操作系统支持下工作,应用程序在DBMS支持下才能使用数据库。

数据库系统的组成:三级体系结构、两层映象、数据独立性

三级模式结构

二级映象与数据独立性

计算机世界及其有关基本概念

属性

实体所具有的某一特性称为属性

实体

客观存在并且可以相互区别的“事物”称为实体
实体可以是具体的人、事、物,也可以是抽象的事件

实体型

具有相同属性的实体必然具有共同的特征

实体集

同型实体的集合称为实体集

能惟一标识一个实体的属性或属性集称为实体的键

属性的取值范围称为该属性的域

字段(Field)

标记实体属性的命名单位称为字段。

记录(Record)

字段的有序集合称为记录。如,一个学生(990001,张立,20,男,计算机)为一个记录。

文件(File)

同一类记录的集合称为文件。所有学生的记录组成了一个学生文件。

关键字(Key)

能惟一标识文件中每个记录的字段或字段集,称为记录的关键字 。

分量

每一行对应的列的属性值,即为元组中的一个属性值。

关键字(Key)

可惟一标识一个元组的属性或属性集,也称为关系键或主码,如S表中学号可以惟一确定一个学生,为学生关系的主码。

关系模式

关系模式是对关系的描述,是关系模型的“型” 。
一般表示为:关系名(属性1,属性2,……属性n)
如:学生(学号,姓名,性别,年龄,系别)

关系实例

关系实例是关系模式的“值”,是关系的数据,相当于二维表中的数据 。

关系数据库及其运算基础

关系

关系

关系是一种规范化了的二维表中行的集合

每一列中的分量必须来自同一个域,必须是同一类型的数据。
不同的列可来自同一个域,每一列称为属性,不同的属性必须有不同的名字 。
列的顺序可以任意交换
关系中元组的顺序(即行序)可任意
关系中每一分量必须是不可分的数据项

关系的描述称为关系模式(Relation Schema)

R(U,D,DOM,F)
R–关系名
U–属性名集合
D–属性所来自的域
DOM–属性向域的映像集合
F–属性间数据的依赖关系集合

简记为:R(U)或R(A1,A2,…,An)

关系模式

对关系的描述,一般表示为:关系名(属性1,属性2,……属性n),如:学生(学号,姓名,性别,年龄,系别)。

关系数据库与关系数据库模式

主关系键(Primary Key)

从多个候选键中选择一个作为查询、插入或删除元组的操作变量,被选用的候选键称为 主关系键
每个关系必定有且仅有一个主关系键

主属性(Prime Attribute)与非码属性(Non-Prime Attribute)
主属性:包含在主关系键中的各个属性称为主属性
非码属性:不包含在任何候选键中的属性称为非码属性(或非主属性)
全码 :所有属性的组合是关系的候选键

外部关系键

被参照关系的主码和参照关系的外码必须定义在同一个域上

实体完整性(Entity Integrity)

主关系键的值不能为空或部分为空

学生关系中的主关系键“学号”不能为空
选课关系中的主关系键“学号+课程号”不能部分为空,
即“学号”和“课程号”两个属性都不能为空

参照完整性(Referential integrity)

如果关系R2的外部关系键X与关系R1的主关系键相符,则X的每个值或者等于R1中主关系键的某一个值,或者取空值

用户定义完整性(User-defined Integrity)

针对某一具体关系数据库的约束条件

反映某一具体应用所涉及的数据必须满足的语义要求

如:成绩属性的取值范围在0-100之间

关系运算

关系代数

关系代数的运算按运算符的不同主要分为两类:

传统的集合运算:

把关系看成元组的集合,以元组作为集合中元素来进行运算,其运算是从关系的“水平”方向即行的角度进行的。
包括并、差、交和笛卡尔积等运算。

专门的关系运算:

不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算。
包括选取、投影、连接和除法等运算。

相容性定义

设给定两个关系R、S,若满足:
(1) 具有相同的度n;
(2) R中第i个属性和S中第i个属性必须来自同一个域。
则说关系R、S是相容的。
除笛卡尔积外,其他的集合运算要求参加运算的关系必须满足上述的相容性定义。

并(Union) :R∪S={t | t∈R∨t∈S}
差(Difference) :R-S = {t | t∈R∧┐t∈S}
交(Intersection) :R∩S = {t | t∈R∧t∈S}
广义笛卡尔积(Extended Cartesian Product) :
R×S = {tr⌒ts| tr∈R∧ts∈S}

由于传统的集合运算,只是从行的角度进行,而要灵活地实现关系数据库多样的查询操作,必须引入专门的关系运算。
在讲专门的关系运算之前,为叙述上的方便先引入几个概念。
(1)设关系模式为R(A1,A2,……An),它的一个关系为R,t∈R表示t是R的一个元组,t[Ai]则表示元组t中相应于属性Ai的一个分量。
(2)若A={Ai1,Ai2,……,Aik},其中Ai1,Ai2,……,Aik是A1,A2,……,An中的一部分,则A称为属性列或域列,Ã则表示{A1,A2,……,An}中去掉{Ai1,Ai2,……,Aik}后剩余的属性组。t[A]={t[Ai1],t[Ai2],……,t[Aik]}表示元组t在属性列A上诸分量的集合。
(3)R为n目关系,S为m目关系,tr∈R, ts∈S,tr ⌒ ts称为元组的连接(concatenation),它是一个n+m列的元组,前n个分量为R的一个n元组,后m个分量为S中的一个m元组。
(4)给定一个关系R(X,Z),X和Z为属性组,定义当t[X]=x时,x在R中的象集(image set),为Zx={t[Z]|t∈R,t[X]=x},它表示R中的属性组X上值为x的诸元组在Z上分量的集合。

选择运算

是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算

投影运算

是从R中选择出若干属性列,组成新的关系,即对关系在垂直方向进行的运算,从左到右按照指定的若干属性及顺序取出相应列,删去重复元组。记作:
ΠA®={t[A]|t∈R}
其中A为R中的属性列,Π为投影运算符。
从其定义可看出,投影运算是
从列的角度进行的运算;

自然连接

在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉,记为:R*S

等值连接与自然连接的区别

自然连接要求相等属性值的属性名相同,而等值连接不要求
自然连接是去掉重复列的等值连接


外连接

如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)。

左外连接

如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)

右外连接

如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。


除法(Division)

R÷S = {tr[X] | tr∈R∧Πy(S)Yx}

除法运算同时从行和列的角度进行运算,适合于包含“全部”之类的短语的查询。


关系R中,A可以取4个值{a1,a2,a3,a4}。其中:
a1 的象集为{(b1,c2),(b2,c3),(b2,c1)}
a2 的象集为{(b3,c7),(b2,c3)}
a3 的象集为{(b4,c6)}
a4 的象集为{(b6,c6)}
S在(B,C)上的投影为{(b1,c2),(b2,c1),(b2,c3)}
显然,只有a1的象集(B,C)a1包含了S在(B,C)属性组上的投影,所以
R ÷S={a1}

[例2-13] 查询至少选修了C1课程和C3课程的学生学号。

  ΠSNo,CNo(SC)÷ΠCNo(CNo='C1'∨CNo='C3' (C))

只有S4同学的象集至少包含了C1课程和C3课程,因此,查询结果为S4 。

[例2-14] 查询选修了全部课程的学生学号和姓名。

 ΠSNo,CNo(SC)÷ΠCNo(C)*ΠSNo,SN(S)

关系演算

关系演算


ALPHA语言

元组关系演算语言的典型代表是E.F.Codd提出的ALPHA语言,这种语言虽然没有实际实现,但较有名气,INGRES关系数据库上使用的QUEL语言,就是在ALPHA语言的基础上研制的。

下面以教学数据库为例,说明ALPHA语言的使用。

  1. 数据查询

(1)简单查询
例 查询所有学生的数据。

GET W (S)

GET语句的作用是把数据库中的数据读入内存空间W,目标表为学生关系S,代表查询出来的结果,即所有的学生。
冒号后面的操作条件缺省,表示无条件查询。

查询所有被选修的课程号码。
GET W (SC.CNO)

目标表为选课关系SC中的属性CNO,代表所有被选修的课程号码,查询结果自动消去重复行
(2)条件查询
由冒号后面的逻辑表达式给出查询条件,在表达式中可以使用如下三类运算符:
① 比较运算符:>,≥,<,≤,=等于,≠;
② 逻辑运算符:∧(与),∨(或),┐(非)
③ 表示执行次序的括号:()
其中,比较运算符的优先级高于逻辑运算符,可以使用()改变它们的优先级。

查询计算机系工资高于1000元的教师的姓名和工资。
GET W (T.TN,T.SAL):T.DEPT=’计算机’∧T.SAL>1000

目标表为教师关系T中的两个属性SN和SAL组成的属性列表。

(3)排序查询

例:查询S3同学所选课程号及成绩,并按成绩降序排列。
GET W (SC.CNO,SC.SCORE):SC.SNO=’S3’DOWN SC.SCORE
DOWN表示降序,后面紧跟排序的属性名。

升序排列时使用UP

(4)定额查询

例:查询一名男教师的教师号和姓名。
GET W (1) (T.TNO,T.TN):T.SEX=’男’

所谓的定额查询就是通过在W后面的括号中加上定额数量,限定查询出元组的个数。
这里(1)表示查询结果中男教师的个数,取出教师表中第一个男教师的教师号和姓名。
排序和定额查询可以一起使用。

例: 查询年龄最小的一名男教师的教师号和姓名。
GET W (1) (T.TNO,T.TN):T.SEX=’男’ UP T.AGE
此语句的执行过程为:先查询所有男教师的教师号和姓名,再按照年龄由小到大排序,然后找出第一位,也就是年龄最小的男教师。

(5)带元组变量的查询
所谓的元组关系演算就是以元组变量作为谓词变元的基本对象,在关系演算的查询操作时,可以在相应的关系上定义元组变量。
元组变量代表关系中的元组,其取值是在所定义的关系范围内变化,所以也称作范围变量Range Variable,一个关系可以设多个元组变量。

例: 查询S3同学所选课程号。
RANGE SC X
GET W (X.CNO):X.SNO=’S3’

使用RANGE来说明元组变量,X为关系SC上的元组变量。
如果关系的名字很长,使用起来不方便,这时可以设一个名字较短的元组变量来代替关系名,简化关系名,使操作更加方便。

QBE

QBE是Query By Example的缩写,也称为示例查询,它是一种很有特色的屏幕编辑语言,其特点如下:
(1)以表格形式进行操作
每一个操作都由一个或几个表格组成,每一个表格都显示在终端的屏幕上,用户通过终端屏幕编辑程序以填写表格的方式构造查询要求,查询结果也以表格的形式显示出来,所以它具有直观和可对话的特点。
(2)通过例子进行查询
通过使用一些实例,使该语言更易于为用户接受和掌握。
(3)查询顺序自由
当有多个查询条件时,不要求使用者按照固定的思路和方式进行查询,使用更加方便。

使用QBE语言的步骤:
(1)用户根据要求向系统申请一张或几张表格,显示在终端上;
(2)用户在空白表格的左上角的一栏内输入关系名;
(3)系统根据用户输入的关系名,将在第一行从左至右自动填写各个属性名;
(4)用户在关系名或属性名下方的一格内填写相应的操作命令,操作命令包括:P.(打印或显示)、U.(修改)、I.(插入)、D.(删除)。如果要打印或显示整个元组时,应将“P”填在关系名的下方,如果只需打印或显示某一属性,应将“P”填在相应属性名的下方。


注意:只有目标属性包括所有的属性时,将P.填在关系名的下方。
这种语言之所以称为示例查询,就是在操作中采取“示例”的方法,凡用作示例的元素,其下方均加下划线。如上例中的“赵亦”、“女”等均为示例元素,即域变量。示例元素是所给域中可能的一个值,而不必是查询结果中的元素。比如用作示例的学生姓名,可以不是学生表中的学生,只要给出任意一个学生名即可。







数据库------绪论+关系数据库及其运算基础相关推荐

  1. 数据库之关系数据库的关系运算

    关系运算的机理有什么用 我们学习关系运算的机理,对我们理解数据库查询操作非常重要 所以我们进行关系操作时很大程度上需要明白关系操作以及关系之间的逻辑 在我们进行数据库查询操作时,如何规范的使用数据库语 ...

  2. 数据库原理之关系数据库关系运算

    关系数据库关系运算 选择 投影 链接 除运算 选择运算 选择运算是从关系R中选取使逻辑表达式F为 真的元组,是从行的角度进行的运算 投影运算 投影操作主要是从列的角度进行运算,但投影之后不仅取消可原关 ...

  3. 计算机控制基础知识,最新 分析计算机控制系统及其运算基础知识-精品

    分析计算机控制系统及其运算基础知识 系统程序层的工作基础建立在控制系统改造和扩充过的机器,下文就是关于控制系统及其运算基础知识论文. 随着技术的飞进发展,计算机控制系统及其操作过程的运算程序研究已成为 ...

  4. 【数据库】数据库绪论,你都会了吗

    文章目录 一.数据库绪论 1.数据库系统概述 数据(Data) 数据库(Database) 数据库管理系统(DBMS) 数据库管理系统的主要功能 数据库系统(DBS) 2.数据库系统的特点 数据结构化 ...

  5. 数据库原理与应用笔记(一):数据库绪论

    第一章:数据库绪论 1.1数据库系统概述 1.1.1数据库的4个基本概念 1.1.2数据库管理技术的产生和发展 1.1.3数据库系统的特点 1.2数据模型 1.2.1两类数据模型 1.2.2概念模型 ...

  6. MySQL数据库的简单使用(基础篇)

    MySQL数据库的简单使用(基础篇) 学习说明 文章划分 三级模式的理解 安装及配置MySQL 登录MySQL(Windows下) 数据库操作 数据库引擎 MySQL执行外部的.sql文件 数据表的操 ...

  7. MongoDB数据库(了解MongoDB及基础命令,备份数据库)

    文章目录 MongoDB数据库(了解MongDB及基础命令,备份数据库) 什么是MongoDB ? 主要特点 配置mongdb数据库 多实例配置 数据库操作 备份数据库 MongoDB数据库(了解Mo ...

  8. java游戏将相_(Java)算法——位运算基础及基本应用

    位运算基础及基本应用 在处理整形数值时,可以直接对组成整形数值的各个位进行操作.这意味着可以使用屏蔽技术获得整数中的各个位(??) 位运算是针对整数的二进制进行的位移操作 整数 32位 , 正数符号为 ...

  9. tSQLt单元测试的测试驱动数据库开发(TDDD)基础

    This article talks about core concepts of test-driven database development followed by creating simp ...

最新文章

  1. clustalw序列比对_如何做出漂亮的序列比对图——ENDscript/ESPript
  2. 【9.22校内测试】【可持久化并查集(主席树实现)】【DP】【点双联通分量/割点】...
  3. 什么是 SAP SUP - Sybase Unwired Platform
  4. 添加一列_Joom平台CSV文件如何添加产品?CSV文件添加产品流程一览
  5. mysql 分组查出来横向展示_MySQL汇总分析(group by)
  6. mint linux qq,linuxmint系统下安装QQ
  7. 自定义类型详解:结构体(内存对齐、位段) + 枚举 + 联合
  8. 对样式overflow的学习
  9. Wireshark系列之7 利用WinHex还原文件
  10. HOST 文件网页屏蔽广告
  11. 什么是通配符 计算机网络,通配符
  12. 关于Egret项目升级引擎出现的问题
  13. 坚果pro官方固件_锤子坚果Pro(OD103)刷机包_线刷包_救砖包_官方ROM包_固件包下载- 线刷宝ROM中心...
  14. ip okhttp 设置_okhttp3及httpclient中的代理设置
  15. 移动端背景图css6,移动端适配之雪碧图(sprite)背景图片定位
  16. php生成其他网页截图,php实现网页截图
  17. C#开发测量程序-计算坐标方位角
  18. 瑞华吉瑞保重大疾病保险怎么样?好不好
  19. 小型土路肩摊铺机施工步骤与工作原理的特点
  20. apache安装及配置

热门文章

  1. HTML简单静态页面的编写
  2. macbook配置java环境变量_MAC安装JDK及环境变量配置
  3. 【Excle数据透视表】如何让字段标题不显示“求和项”
  4. 敏态下“骨架化、模块化”测试案例编写技术实践
  5. 虚拟linux jdk,虚拟机下Linux安装jdk
  6. Renesas:初步使用CS+ for CC 的注意事项
  7. DICOM医学图像处理:fo-dicom网络传输之 C-Echo and C-Store
  8. 前端字体图标的使用总结
  9. SSH——Hibernate初学者之旅(四)
  10. 一个大学女生发人深省的人生感悟