基本知识与关系模型

初步认识数据库系统

什么是数据库

(1)数据库与信息管理
数据库是电子化信息的集合,将信息规范化并使之电子化,形成电子信息
‘库’,以便利用计算机对这些信息进行快速有效的存储、检索、统计与管理。
(2)数据库与表
数据库起源于规范化“表(Table)”的处理。
Table: 以按行按列形式组织及展现的数据。
在这里插入图片描述
Database: 相互之间有关联关系的Table的集合。

什么是数据库系统

(1)数据库系统的构成—概念层次
数据库(DB): Database
数据库管理系统(DBMS): Database Management System
数据库应用(DBAP): DataBase Application
数据库管理员(DBA): DataBase Administrator
计算机基本系统
(2)数据库系统:图书管理数据库系统
在这里插入图片描述

什么是数据库管理系统

(1)数据库语言:使用者通过数据库语言利用DBMS操作数据库
数据定义语言(DDL:Data Definition Language)
----DBMS提供给用户,以便用户定义数据格式
数据操纵语言(DML:Data Manipulation Language)
----DBMS提供给用户,以便用户对数据进行操作
数据控制语言(DCL:Data Control Language)
----DBMS提供给用户,以便用户对数据进行控制
数据库各种操作的执行
----DBMS按用户要求进行定义、操纵、控制和维护
在这里插入图片描述
(2)数据库管理系统功能
语言编译器:将用数据库语言书写的内容,翻译成DBMS可执行的命令。例如:DDL编译器,DML编译器,DCL编译器等;
查询优化(执行引擎)与查询实现(基本命令的不同执行算法):提高数据库检索速度的手段;例如贯穿于数据存取各个阶段的优化程序;
数据存取与索引:提供数据在磁盘、磁带等上的高效存取手段。例如:存储管理器,缓冲区管理器,索引/文件和记录管理器等;
通信控制:提供网络环境下数据库操作与数据传输的手段;
事务管理:提供提高可靠性并避免并发操作错误的手段;
故障恢复:使数据库自动恢复到故障发生前正确状态的手段,例如提供了备份、运行日志操控等实用程序;
安全性控制:提供合法性检验,避免非授权非法用户访问数据库的手段;
完整性控制:提供数据及数据操作正确性检查的手段;
数据字典管理:管理用户已经定义的信息;
应用程序接口(API):提供应用程序使用DBMS特定功能的手段;
数据库数据装载、重组等实用程序;
数据库性能分析:统计在运行过程中数据库的各种性能数据,便于优化运行;
在这里插入图片描述

数据库系统的结构抽象与演变

数据库系统的标准结构

模式(Schema)
对数据库中数据所进行的一种结构性的描述,所观察到数据的结构信息,即数据的结构。
视图(View)/数据(Data)
某一种表现形式下表现出来的数据库中的数据。
三级视图
External Schema ---- (External) View
某一用户能够看到与处理的数据的结构描述
(Conceptual) Schema ---- Conceptual View
从全局角度理解/管理的数据的结构描述, 含相应的关联约束,体现在数据之间的内在本质联系
Internal Schema ---- Internal View
存储在介质上的数据的结构描述,含存储路径、存储方式 、索引方式等
两层映射
E-C Mapping:External Schema-Conceptual Schema Mapping
----将外模式映射为概念模式,从而支持实现数据概念视图向外部视图的转换
----便于用户观察和使用
C-I Mapping:Conceptual Schema-Internal Schema Mapping
----将概念模式映射为内模式,从而支持实现数据概念视图向内部视图的转换
----便于计算机进行存储和处理
在这里插入图片描述
逻辑数据独立性
当概念模式变化时,可以不改变外部模式(只需改变E-C Mapping),从而无需
改变应用程序
物理数据独立性
当内部模式变化时,可以不改变概念模式(只需改变C-I Mapping) ,从而不改
变外部模式

数据模式

数据模型
• 规定模式统一描述方式的模型,包括:数据结构、操作和约束
• 数据模型是对模式本身结构的抽象,模式是对数据本身结构形式的抽象
三大经典数据模型
• 关系模型:表的形式组织数据
• 层次模型:树的形式组织数据
• 网状模型:图的形式组织数据
举例
在这里插入图片描述

关系模型之基本概念

关系模型概述

关系模型就是处理Table的,它由三个部分组成:
描述DB各种数据的基本结构形式(Table/Relation)
描述Table与Table之间所可能发生的各种操作(关系运算)
描述这些操作所应遵循的约束条件(完整性约束)

关系运算:关系代数和关系演算;关系演算:元组演算和域演算。

关系的数学定义

在这里插入图片描述
域(Domain)
一组值的集合,这组值具有相同的数据类型,如整数的集合、字符串的集合、全体学生的集合。
集合中元素的个数称为域的基数(Cardinality)。
笛卡尔积(Cartesian Product)
一组域D1 , D2 ,…, Dn的笛卡尔积为:D1×D2×…×Dn = { (d1 , d2 , … , dn) | di∈Di , i=1,…,n },笛卡尔积的每个元素(d1 , d2 , … , dn)称作一个n-元组(n-tuple)
元组
元组(d1 , d2 , … , dn)的每一个值di叫做一个分量(component),元组(d1 , d2 , … , dn)是从每一个域任取一个值所形成的一种组合,笛卡尔积是所有这种可能组合的集合, 即:笛卡尔积是由n个域形成的所有可能的n-元组的集合。
关系
一组域D1 , D2 ,…, Dn的笛卡尔积的子集,笛卡尔积中具有某一方面意义的那些元组被称作一个关系(Relation),由于关系的不同列可能来自同一个域,为区分,需要为每一列起一个名字,该名字即为属性名。
关系可用R(A1:D1 , A2:D2 , … , An:Dn )表示,可简记为R(A1 , A2 , … , An ),这种描述又被称为关系模式(Schema)或表标题(head), R是关系的名字, Ai 是属性, Di 是属性所对应的域, n是关系的度或目(degree), 关系中元组的数目称为关系的基数(Cardinality)。
关系模式R(A1:D1 , A2:D2 , … , An:Dn ) 中属性向域的映象在很多DBMS中一般直接说明为属性的类型、长度等。例如:Student( S# char(8), Sname char(10), Ssex char(2), Sage integer, D# char(2), Sclass char(6) )
关系模式与关系
同一关系模式下,可有很多的关系,关系模式是关系的结构, 关系是关系模式在某一时刻的数据,关系模式是稳定的;而关系是某一时刻的值,是随时间可能变化的。
在这里插入图片描述

关系的特性以及相关概念

理论上,关系的任意两个元组不能完全相同。(集合的要求:集合内不能有相同的两个元素);现实应用中,表(Table)可能并不完全遵守此特性。元组相同是指两个元组的每个分量都相同。
属性不可再分特性:又被称为关系第一范式。
候选码(Candidate Key)/候选键
关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码。
例如:“学生(S#, Sname, Sage, Sclass)”,S#就是一个候选码,在此关系中,任何两个元组的S#是一定不同的,而这两个元组的Sname, Sage, Sclass都可能相同(同名、同龄、同班),所以S#是候选码。
主码(Primary Key)/主键
当有多个候选码时,可以选定一个作为主码。DBMS以主码为主要线索管理关系中的各个元组。
主属性与非主属性
包含在任何一个候选码中的属性被称作主属性,而其他属性被称作非主属性,如 “选课”中的S# , C#为主属性,而Sname, Cname, Grade则为非主属性;最简单的,候选码只包含一个属性,最极端的,所有属性构成这个关系的候选码,称为全码(All-Key)。
外码(Foreign Key)/外键
关系R中的一个属性组,它不是R的候选码,但它与另一个关系S的候选码相对应,则称这个属性组为R的外码或外键。两个关系通常是靠外码连接起来的。

关系模型中的完整性

实体完整性
关系的主码中的属性值不能为空值;空值:不知道或无意义的值;在进行关系操作时,有时关系中的某属性值在当前是填不上的,比如档案中有“生日不详”、“下落不明”、“日程尚待公布”等,这时就需要空值来代表这种情况。数据库中有了空值,会影响许多方面,如影响聚集函数运算的正确性,不能参与算术、比较或逻辑运算等。
参照完整性
如果关系R1的外码Fk与关系R2的主码Pk相对应,则R1中的每一个元组的Fk值或者等于R2 中某个元组的Pk 值,或者为空值。
用户自定义完整性
用户针对具体的应用环境定义的完整性约束条件。

关系模型之关系代数

关系代数操作:集合操作和纯关系操作
(1)集合操作
在这里插入图片描述
(2)纯关系操作
在这里插入图片描述
(3)更名操作

连接分为不等值连接、等值连接,自然连接,外连接(左外连接,右外连接,全外连接)

书写关系代数表达式的基本思路
检索是否涉及多个表,如不涉及,则可直接采用并、差、交、选择与投影,只要注意条件书写正确与否即可,如涉及多个表,则检查能否使用自然连接,将多个表连接起来(多数情况是这样的) ,如不能,能否使用等值或不等值连接,还不能,则使用广义笛卡尔积,注意相关条件的书写,连接完后,可以继续使用选择、投影等运算,即所谓数据库的“选投联”操作

关系模型之关系演算

关系元组演算是以元组变量作为谓词变量的基本对象
关系域演算是以域变量作为谓词变量的基本对象

公式的运算符(与)、(或)、(非)、 (全称量词,全都是)和(存在量词,存在是)

关系域演算语言QBE
QBE: Query By Example,1975年由M. M. Zloof提出,1978年在IBM370上实现,特点:操作独特,基于屏幕表格的查询语言,不用书写复杂的公式,只需将条件填在表格中即可。

关系运算的安全性:不产生无限关系和无穷验证的运算被称为是安全的。

关系运算有三种:关系代数、关系元组演算和关系域演算
三种关系运算都是抽象的数学运算,体现了三种不同的思维,关系代数—以集合为对象的操作思维,由集合到集合的变换,元组演算—以元组为对象的操作思维,取出关系的每一个元组进行验证,有一个元组变量则可能需要一个循环,多个元组变量则需要多个循环,域演算—以域变量为对象的操作思维,取出域的每一个变量进行验证看其是否满足条件。
三种运算之间是等价的,关系代数 与 安全的元组演算表达式 与 安全的域演算表达式 是等价的。即一种形式的表达式可以被等价地转换为另一种形式,三种关系运算都可说是非过程性的,相比之下:域演算的非过程性最好,元组演算次之,关系代数最差,三种关系运算虽是抽象的,但却是衡量数据库语言完备性的基础,一个数据库语言如果能够等价地实现这三种关系运算的操作,则说该语言是完备的,目前多数数据库语言都能够实现这三种运算的操作,在此基础上还增加了许多其他的操作,如赋值操作、聚集操作等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值