Featured image of post Mssql01

Mssql01

数据

1
描述事物的符号记录

数据库

1
长期存储在计算机内、有组织的、可共享的大量数据的集合

DBMS(Database Manager System)

1
数据库管理软件。如mysql,sqlserver,mariadb,Access等等内部都内置了各种的DBMS,所以也称这些都是DBMS,换言之,目前流行的DBMS有mysql,sqlserver等等

DBS

1
数据库系统也简称为数据库。由数据库,DBMS及其开发工具、应用程序(如学生管理系统的前台界面)、DBA及其用户构成

数据模型

1
2
(1)概念模型:按照用户的观点来对数据和信息建模(很重要,会影响到逻辑模型和物理模型)
(2)逻辑模型和物理模型:主要包括网状模型、层次模型、关系模型等,它是按照计算机系统的观点对数据建模。用于DBMS的实现

数据模型的组成要素

1
2
3
1.数据结构
2.数据操作
3.数据的约束条件

实体

1
如一个学生、老师与院系的工作关系等

属性

1
如学生实体中的姓名、学号等

1
唯一标识实体的属性集。如学生实体的学号

1
属性的取值范围。如性别域(男、女)

实体型

1
实体名及其属性名集合来抽象刻画同类实体。如学生(姓名 学号 班级)就是一个实体型

实体集

1
如全体学生

概念模型标识方法

1
E-R 方法 即实体-联系方法

数据库系统的三级模式

1
模式(逻辑模式)是全体数据,外模式(子模式)是全体数据中的某一部分,内模式也称存储模式

外模式/模式映像

1
2
3
定义了外模式与模式之间的对应关系
每个外模式都对应一个外模式/模式映像(映像数量多个)
映像定义通常包含在各自外模式的描述中

模式/内模式映像

1
2
3
定义了数据全局逻辑结构与存储结构之间的对应关系
数据库中模式/内模式映像是唯一的
该映像的定义通常包含在模式描述中

关系数据模型

其数据结构是一张二维的表格

候选码

1
能够被选为主码的属性或属性组,说明主码不唯一

主属性

定义:包含在任何候选码中的属性(主码一定是候选码,候选码不一定是主码,因为主码是人选的,是随机的) 例:比如,竞赛表(竞赛编号,竞赛名称,竞赛组织者) PS:竞赛名称和竞赛组织者都可以重复

很明显可以看出竞赛编号能够唯一标识整张竞赛表,因此候选码是竞赛编号,并且仅此一个候选码,其他属性都不能唯一标识整张表,所竞赛编号同时也是主码。

这时候判断一下这几个属性 or 属性组是否是主属性,(竞赛编号)(竞赛编号,竞赛名称)(竞赛名称,竞赛组织者),(竞赛编号)只有一个属性,这个属性是主码,主码必定为候选码,因此属性含有一个候选码,这个属性是主属性。(竞赛编号,竞赛名称)有两个属性,其中竞赛编号是候选码,而竞赛名称不是候选码,那他是啥呢~前面有提到了,因为它跟候选码在同一个属性组里,所以,竞赛名称是超码,回过头来,最后得出该属性组含有了一个候选码,因此该属性组中的各个属性都是主属性。(竞赛名称,竞赛组织者)有两个属性,可以看出这两个属性都不是候选码,因此这个属性组不包含候选码,属性组中中得各个元素称为非主属性。

misc

1
主码=主键=主关键字,关键字=候选码 候选关键字=候选码中除去主码的其他候选码

分量

1
如在二位表格中的单元格的值。关系的分量必须是一个不可分的数据项(如工资被分为奖金、工龄、基本,这样对于关系来说是不规范的)

元组

1
表中的每行(即数据库中的每条记录)就是一个元组;元组的个数为基数

目(度)

1
属性个数,也即列数

关系模型中的三类完整性约束

1
2
3
1. 实体完整性
2. 参照完整性
3. 用户定义完整性

实体完整性

1
实体完整性规则规定基本关系的所有主属性不能取空值,当我给某个表设置主键时,由于给主属性设置了空值,始终创建不了主码

参照完整性

1
在关系模型中实体与实体之间的联系都是用关系来描述的,因此存在关系与关系之间的引用



外码
设F是基本关系R中的一个或一组属性,但不是关系R的码。如果F与基本关系S中的主码K相对应,那么F是基本关系R的外码(外码取值可取空值,因为不是主属性;外码可取S中某个元组的主码值)
参照关系
外码所在的关系,即关系R为参照关系
被参照关系(目标关系)
关系S为参照关系

例 1
外码:专业    参照关系:学生关系    被参照关系:专业关系
例 2
外码:学号、课程号    参照关系:选修    被参照关系:学生关系、课程关系
例 3
外码:班长    参照关系:学生关系    被参照关系:学生关系

用户定义完整性

1
2
3
4
例:课程(课程号,课程名,学分) 主码为课程号
- “课程名”属性必须取唯一值
- 非主属性“课程名”不能取空值
- “学分”属性只能取值{1,2,3,4}

关系代数运算的分类

1
2
1.传统的集合运算:并、交、差、广义笛卡尔积
2.专门的关系运算:选择、投影、连接、除

运算符及其对应关系

运算符含义
-
×笛卡尔积
σ选择
π投影
连接
÷

专门的关系运算

1
选择、投影、连接、除

记号

R, t∈ R, t[Ai]

  • 设关系模式为 R(A1,A2,……,An)
  • t∈ R 表示 t 是 R 的一个元组
  • t[Ai]表示元组 t 中对应属性 Ai的一个分量(单元格的值)

A, t[A], $\overline{A}$ 若 A={Ai1,Ai2,……,Aik}

  • 其中 A 称为属性列或者域列
  • t[A]=([t[Ai1],t[Ai2],……,t[Aik])表示元组 t 在属性列 A 上诸分量的集合
  • $\overline{A}$表示{A1,A2,……,An}中去掉{Ai1,Ai2,……,Aik}后剩余的属性列


象集

选择

SnoSnameSsexSageSdept
201215122刘晨19IS
201215125张立19IS
201215122王敏19MA
201215122李勇19CS
201215122大地20IS

例 1 查询信息系(IS)全体学生的信息
$$\sigma_{Sdept=‘IS’}(Student)$$ (字符串使用单引号)

SnoSnameSsexSageSdept
201215122刘晨19IS
201215125张立19IS
201215122大地20IS

例 2 查询信息系年龄小于 20的学生信息
$$\sigma_{Sdept=‘IS’\wedge Sage<20}(Student)$$

SnoSnameSsexSageSdept
201215122刘晨19IS
201215125张立19IS

投影

投影后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)
例 3 求 Student 关系学生姓名和所在系两个属性上的投影:
$$\pi_{Sname,Sdept}(Student)$$

SnameSdept
刘晨IS
张立IS
王敏MA
李勇CS
大地IS

例 4 查询学生关系 Student 中都有哪些系?(涉及去重)

$$\pi_{Sdept}(Student)$$

Sdept
MA
CS
IS

思考:查询信息系年龄<20 岁的学生学号、姓名、年龄?
$$\pi_{Sno,Sname,Sage}(\sigma_{Sdept=‘IS’\wedge Sage<20}(Student))$$

连接(join)

1.普通连接

关系 R

ABC
a1b15
a1b26
a2b38
a2b412

关系 S

BE
b13
b27
b310
b32
b52


两关系做笛卡尔积后结果为

AR.BCS.BE
a1b15b13
a1b15b27
a1b15b310
a1b15b32
a1b15b52
a1b26b13
a1b26b27
a1b26b310
a1b26b32
a1b26b22
a2b38b13
a2b38b27
a2b38b310
a2b38b32
a2b38b52
a2b412b13
a2b212b27
a2b212b310
a2b212b32
a2b212b52

根据C<E,筛选后得

AR.BCS.BE
a1b15b27
a1b15b310
a1b26b27
a1b26b310
a2b38b310

2.等值连接

AR.BCS.BE
a1b15b13
a1b26b27
a1b26b22
a2b38b310
a2b38b32
a2b212b27

3.自然连接
是一种特殊的等值连接

ABCE
a1b153
a1b267
a1b262
a2b3810
a2b382
a2b2127

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

  1. 等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然连接。如上例 R 中的 C 列和 S 中的 E 列可进行等值连接,但因为属性名不同,不能进行自然连接。
  2. 等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接。如上例 R 中的 B 列和 S 中的 B 列进行等值连接时,结果有两个重复的属性列 B,而进行自然连接时,结果只有一个属性列 B

选择、投影、(自然)连接综合例题


$$\pi_{sno,sname}(\sigma_{cno=‘2’}(student\bowtie sc))$$

课后习题

Ruixi-rebirth’s Blog
Built with Hugo
主题 StackJimmy 设计