第2章 数据库关系模型---数据库原理及应用

目录

第2章        数据库关系模型

本章要求:

1、关系模型的基本概念

关系数据模型-现有主流DBMS支持的逻辑模型

域(Domain):相同数据类型的集合

关系模式:关系名和属性

关系实例:具体的数据集合

一、关系的数学定义

笛卡尔积可以写成一个二维表

关系(Relation):笛卡尔积的子集

数学意义上的关系:可无限个元组,元组元素不可交换

数据库的关系:有限的元组,元组元素可交换

4、说明

5、关系的性质

二、关系模型

1、单一的数据结构:关系(二维表):记录一个班的人的成绩,一个人为记录,一个人的数据库成绩为字段,一个人的学号、身份证号为关键字

2、关系模式:关系的描述:关系数据库包括所有关系

简单地讲:关系数据模型是表现为二维表的形式

3、关系的三种类型

(二)关系操作

1、种类:查询和维护

2、特点:

三)关系模型的三类完整性

1、实体完整性(Entity Integrity):主属性不空

2、参照完整性(Referential  Integrity),也叫引用完整性:引入外部关系的主属性为空或外部值

3、用户定义的完整性:约束条件

2、RDBS的数据操纵语言:关系代数

一、传统的集合运算:并交差笛卡尔积

(1) UNION(并):R∪S:相加除同

(2) INTERSECT (交):R∩S:相同的出来

(3) SET-DIFFERENCE(差):R-S:属于R不属于S

(4) CROSS-PRODUCT(积):R ×S:如图所示

专门的关系运算

选择与投影操作

1、选择:在关系R中选出满足F条件的行形成新的关系

2、投影:在关系R中选出几列形成新的关系

 3、连接(Join)

种类:条件连接、等值连接、自然连接、外连接

(1) Condition Joins(条件连接):两个表中满足条件的行,组成新的表

 (2)等值连接 (Equijoin):两个表中属性相等的行组成新的行

(3) Natural Join(自然连接):列名字相同的列,属性相同提出来

4、除(Division):过于复杂且不常用,了解即可

5、外连接(Outer Joins)

外连接的种类:左右全

说明:

左外连接

右外连接

 全外连接

PostgreSQL数据库关系操作实践

一、项目案例——选课管理系统数据库关系表实践

(1) 使用pgAdmin4创建数据库

指定数据库名和拥有者

 数据库创建成功

 课程表(COURSE)

教师表(TEACHER)

开课计划表(PLAN)

学生表(STUDENT)

选课注册表(REGISTER)

学院信息表(COLLEGE)

使用pgAdmin 4创建PostgreSQL数据库表

 使用pgAdmin 4创建学院信息表(COLLEGE)

使用pgAdmin 4创建教师信息表(TEACHER) 

使用pgAdmin 4给教师信息表(TEACHER)创建外键约束 

 使用pgAdmin 4给教师信息表(TEACHER)创建外键约束的处理

 使用pgAdmin 4给教师信息表(TEACHER)创建check约束

单元测试

第2章 数据库关系模型-单元测验-数据库与机器学习_aiqq136的博客-CSDN博客第2章 数据库关系模型---数据库与机器学习作业常用的关系查询操作包括选择、投影、连接、并、交等。 v实体完整性是指关系表的属性组成必须是完整的。 x自然连接是一种等值连接。 v在参照完整性中,可以定义级联操作。 v用户自定义完整性可以实施数据的业务约束。 v每个关系是一个二维表,但二维表不一定是关系。 v关系中复合键至少包含两个属性。 v代理键是为了唯一标识关系的不同元组,需要在表单或报表中显示出来。 x...https://blog.csdn.net/aiqq136/article/details/123429997

第3章        数据库操作SQL语言

第4章        数据库设计与实现

第5章        数据库管理

第6章        数据库应用编程

第7章        NoSQL数据库技术


第2章        数据库关系模型

本章要求:

1、掌握关系、关系模式、关系数据库等基本概念

2、掌握关系的三类完整性的含义

3、掌握关系代数运算

4、PostgreSQL项目实践

1、关系模型的基本概念

层次、网状数据库结构复杂,需要使用者有较强专业知识,使用很不方便。

程序员必须经过良好的培训,对所使用的系统有深入的了解才能用好系统。

关系数据库是应用集合的方法来处理数据的。

它具有结构简单、理论基础坚实、数据独立性高以及提供非过程性语言等优点。

关系数据模型-现有主流DBMS支持的逻辑模型

关系的概念:用于描述数据本身、数据之间联系,俗称“表”。

第2章 数据库关系模型---数据库原理及应用_第1张图片

(Domain):相同数据类型的集合

是一组具有相同数据类型的值的集合,具有数据类型及长度、域名、取值范围。

关系模式:关系名和属性

由关系名、各个属性、属性的域以及属性的依赖关系构成。

关系实例:具体的数据集合

由真实记录或元组构成的集合,称为关系实例,简称关系;

每个元组的字段必须对应关系模式中的字段。

一、关系的数学定义

笛卡尔积(Cartesian Product):设D1、D2、…、Dn是n个域, 则它们的笛卡尔积为

D1×D2×…×Dn={(d1,d2,…,dn) | di ∈ Di, i=1,2,…,n}

其中每一个元素称为一个n元组(n-tuple), 简称元组;

元组中的每个值di称为一个分量(component).

例子:D1={1,2,3}        D2={4,5}

D1xD2={(1,4)(1,5)(2,4)(2,5)(3,4)(4,5)}

(1,4)是二元组,其中1为分量

笛卡尔积可以写成一个二维表

例如:

设 D1={张三,李四},

D2={数学,语文},

D3={优,良}

则D1×D2×D3可用二维表表示为:

第2章 数据库关系模型---数据库原理及应用_第2张图片

关系(Relation):笛卡尔积的子集

笛卡尔积D1×D2×…×Dn的子集合,记作 R(D1,D2,…,Dn)

R:关系名

n为关系的目或度

数学意义上的关系:可无限个元组,元组元素不可交换

(1)笛卡尔积不满足交换律:元组元素不可交换

即:(d1,d2,…,dn) ≠ (d2,d1,…,dn)

(2)数学意义的关系可以是无限个元组的集合。

数据库的关系:有限的元组,元组元素可交换

数学意义的关系不适合数据库的实际应用,必须做如下限制:

(1)数据库关系模型中的关系必须是有限的元组集合

(2)数据库关系模型中的属性列表的顺序是可交换的,允许任意顺序;具有数据库中关系满足交换律

4、说明

① 关系是一个二维表。

② 每行对应一个元组。

③ 每列可起一个名字,称为属性。属性的取值范围为一个域,元组中的一个属性值是一个分量。

5、关系的性质

① 列是同质的,即每列中的数据必须来自同一个域

② 每一列必须是不可再分的数据项(不允许表中套表,即满足第一范式)

③ 不能有相同的行

④ 行、列次序无关

二、关系模型

三部分:关系数据结构、关系操作集合、关系的完整性

(一)数据结构

1、单一的数据结构:关系(二维表):记录一个班的人的成绩,一个人为记录,一个人的数据库成绩为字段,一个人的学号、身份证号为关键字

不论是实体还是实体间的联系都用关系表示

  • 实体值 → 关系的元组,在关系数据库中通常称为记录
  • 属性值 → 元组的分量,在关系数据库中通常称为字段
  • 关键字(码):唯一标识一个元组的属性组

关键字可以有多个,统称候选关键字

在使用时,通常选定一个作为主关键字

关键字的诸属性称为主属性,其它为非主属性

2、关系模式:关系的描述:关系数据库包括所有关系

包括关系名、诸属性名属性域约束、属性间的依赖

一个元组为关系的一个值,也称为记录

关系数据库模式:对关系数据库的描述,包括域的定义及在域上定义的所有关系模式

关系数据库:所有实体及实体间联系的关系的集合。是某时刻所有关系模式对应的关系的集合。

简单地讲:关系数据模型是表现为二维表的形式

如:学生的基本信息

学号

姓名

住址

20060101

04-201

排球

20060102

魏明

04-203

足球

20060103

王昆

05-102

羽毛球

20060104

程香

05-102

羽毛球

20060105

刘鹏

04-405

游泳

20060106

王德

04-203

排球

20060107

04-205

20060108

04-102

20060109

程文

05-304

乒乓

3、关系的三种类型

基本关系:客观存在的基本表

查询表:由基本表按一定条件检索得到的结果

视图(View): 从一个或多个基本关系上导出的关系。它不对应实际的存储数据,是一个虚关系,然而可永久存在。相当于关系模型的外模式。

由于二维表的存储策略非常简单,关于数据库的物理存储完全由DBMS自动完成。因此,在关系模型中不需要与内模式相应的概念。

(二)关系操作

1、种类:查询和维护

查询操作:选择、投影、连接、除、并、交、差

维护操作:增加、删除、更新

2、特点:

① 集合操作,一次操作

② 可存取多个元组

③ 非过程化语言:用户只需告诉做什么(What)不需告诉怎么做(How)

④ 数据定义DDL、数据操纵DML、数据控制语言集成在一起DCL:权限控制、完整性控制等

  • 一次一集合(关系型)
  • 一次一记录(非关系型)

三)关系模型的三类完整性

1、实体完整性(Entity Integrity):主属性不空

基本关系的所有主属性不能取空值

原因:基本关系<--->实体集

--->实体必可区分(标识符)

--->主关键字是唯一性标识,故不能空

2、参照完整性(Referential  Integrity),也叫引用完整性:引入外部关系的主属性为空或外部值

若基本关系R含有与另一个基本关系S的主关键字相对应的属性组F(F称为R的外键外部码),

则R中每个元组在F上的值或为空值,或等于S中某个元组的主关键字值。

例: 职工关系 EMP(ENO,ENAME,DNO)

部门关系 DEPT(DNO,DNAME)    

DNO为DEPT的主关键字

DNO为EMP的外键,只能取空值或DEPT中某关键字的值

又如:学生关系(SNO,SNAME,AGE,SEX)

课程关系(CNO,CNAME)

选课关系(SNOCNO,G)

3、用户定义的完整性:约束条件

用户自定义完整性是针对某一具体关系数据库的约束条件,

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

主要包括非空约束、唯一约束、检查约束、缺省值约束、外键约束

注意:定义完整性约束后,当数据库数据发生变化时,DBMS会自动检查,从而不必在应用程序中作检查

2、RDBS的数据操纵语言:关系代数

关系代数的运算对象是关系,运算结果也为关系。

其运算按运算符的不同可分为两类。

一、传统的集合运算:并交差笛卡尔积

1、并(Union):R ∪ S = { t | t∈R∨t∈S}

2、交(Intersection):R ∩ S = { t | t∈R∧t∈S}

3、差(Difference): R − S = { t | t∈R∧t\notinS}

4、笛卡尔积(广义): R × S = { \widehat{t_{r}t_{s}} | tr ∈ R ∧ ts ∈ S}

(1) UNION(并):R∪S:相加除同

概念:包含R和S中的所有元组,要求R和S兼容(字段个数、类型[名字]) ,结果模式与R一致。

第2章 数据库关系模型---数据库原理及应用_第3张图片

(2) INTERSECT (交):R∩S:相同的出来

概念:包含R、S中相同的元组,R、S须兼容。

第2章 数据库关系模型---数据库原理及应用_第4张图片

(3) SET-DIFFERENCE(差):R-S:属于R不属于S

概念:包含在R中而不在S中的元组,R、S兼容。

第2章 数据库关系模型---数据库原理及应用_第5张图片

(4) CROSS-PRODUCT(积):R ×S:如图所示

概念:结果包含R和S中所有字段。如果有相同的字段名,

则在结果字段来源的表。也叫“笛卡尔乘积”。

第2章 数据库关系模型---数据库原理及应用_第6张图片

说明:

①以上定义中,R、S本身也可以是关系代数表达式;

②由于R∩S=R-(R-S),故R∩S实际上是多余的 。

专门的关系运算

学生-课程数据库:学生Student、课程Course和选修SC

第2章 数据库关系模型---数据库原理及应用_第7张图片

选择与投影操作

1、选择:在关系R中选出满足F条件的行形成新的关系

(Selection),又称限制(Restriction),从行的角度的运算

σF(R):在关系R中选出满足条件F的元组形成新的关系。(F:条件表达式)

2、投影:在关系R中选出几列形成新的关系

(Projection)从列的角度的运算

πA(R):在R中选出若干属性列组成一个新关系。(A:属性组)

投影后若有重复行,则自动保留一个
 

  • 共同点:为一元关系操作符。
  • 选择:从关系实例中选择出满足条件的行。操作符:σ
  • 投影:从关系实例中抽出所需的一列或多列。操作符:π
  • 条件表达式中的比较操作符:>,>=,<,<=,=,≠。

第2章 数据库关系模型---数据库原理及应用_第8张图片

 第2章 数据库关系模型---数据库原理及应用_第9张图片

第2章 数据库关系模型---数据库原理及应用_第10张图片

 3、连接(Join)

从两个关系的笛卡尔积中选取属性间 满足条件AθB的元组。

A:R中属性
B:S中属性
θ:比较运算符

连接是同时处理多个关系的重要运算

  • 若仅有θ为等号的条件,称为等值连接
  • 当θ为等号且A、B两属性相同时,称为自然连接
  • 自然连接将去掉重复属性

种类:条件连接、等值连接、自然连接、外连接

(1) Condition Joins(条件连接):两个表中满足条件的行,组成新的表

概念:

 说明:条件c会用到R和S的属性,如R.name,R.i(位置)。

第2章 数据库关系模型---数据库原理及应用_第11张图片

例5: 关系R和关系S 如下所示第2章 数据库关系模型---数据库原理及应用_第12张图片

 (2)等值连接 (Equijoin):两个表中属性相等的行组成新的行

概念:是条件连接的特例,即连接条件由等式组成,如

R.name1=S.name2。

从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:

示例

 

第2章 数据库关系模型---数据库原理及应用_第13张图片

(3) Natural Join(自然连接):列名字相同的列,属性相同提出来

概念:是等值连接的特例,即:等式中所涉及的字段名相同,

这时可忽略连接条件,即为:

 第2章 数据库关系模型---数据库原理及应用_第14张图片

4、除(Division):过于复杂且不常用,了解即可

用途:在表达某些查询时有用,例如“查询已选修了所有课程的学生学号”。

商并不经常使用,所以,数据库系统并没有将其作为实际操作符来实现。

概念:如存在R(X,Y)和S(Y,Z)两个关系,X,Y, Z 分别为属性组

(如: X={x1,x2,…,xn},即X是由n列构成 ,Y,Z类似),

则R ÷ S结果得到一个新的关系P(X),

P是 R中满足下列条件的元组在 X属性列上的投影:

元组在X上分量值x的像集Yx包含S在Y上投影的集合。

其中Yx为X在R中的象集,x = tr[X],即x在R中存在与∏y(S)中的每个元素对应的记录,除操作是同时从行和列角度进行运算。

示例:

设关系定购和零件数据,如表1和表2,求定购÷零件

第2章 数据库关系模型---数据库原理及应用_第15张图片

第2章 数据库关系模型---数据库原理及应用_第16张图片

 R÷S的具体计算过程如下:

① 找出关系R和关系S中相同的属性,即Y属性。在关系S中对Y做投影(即∏Y(S));

② 设被除关系R与S的不相同的列为 X,对关系R在X上做消除重复值的投影(即: ∏x(R) );

③ 对①②步求出的关系做笛卡尔积: ∏x(R)×∏Y(S)

④ 对③步的结果与R做差: (∏x(R) ×∏Y(S))-R

⑤ 对④步的结果做投影∏x((∏x(R) ×∏Y(S))-R)

⑥ R÷S就是②-⑤.

示例:计算定购÷零件的过程

第2章 数据库关系模型---数据库原理及应用_第17张图片

5、外连接(Outer Joins)

概念:涉及有空值的自然连接,是自然连接的特例 。

说明:自然连接是寻找相同字段值相等的行

但如果一个关系中的该字段在另一关系中没有相等值的行,

自然连接不会显示该行,而外连接则将以NULL值形式显示该行。

外连接的种类:左右全

① 左外连接(LEFT OUTER JOIN)

② 右外连接(RIGHT OUTER JOIN)

③ 全外连接(FULL OUTER JOIN)

说明:

① 与外连接对应,前面三种连接为内连接(Inner Join);

② 关系代数中没有外连接的描述,但SQL标准中有相应的三种外连接查询语句;

左外连接

对于RS,如果在S中没有匹配R的行,则以NULL值表示,

最后的结果是以左边的关系R为准,即左边关系中的所有行均应出现在结果中,如果在S中没有对应的行,则以NULL表示之。

 第2章 数据库关系模型---数据库原理及应用_第18张图片

右外连接

对于RS,如果在R中没有匹配S的行,则以NULL值表示,最后的结果以右边的关系S为准。

第2章 数据库关系模型---数据库原理及应用_第19张图片

 全外连接

对于RS,没有匹配的R和S的行,也都出现于结果中

第2章 数据库关系模型---数据库原理及应用_第20张图片

PostgreSQL数据库关系操作实践

  • 掌握创建PostgreSQL关系数据库方法
  • 掌握在PostgreSQL数据库中创建关系表方法
  • 掌握在PostgreSQL数据库中定义关系表的主键、代理键与外键方法
  • 掌握在PostgreSQL数据库中定义关系表的实体完整性、参照完整性、用户自定义完整性方法

一、项目案例——选课管理系统数据库关系表实践

本节将围绕 “ 选课管理系统 ” 项目案例,在PostgreSQL数据库中创建关系表及其完整性约束,并理解本章所学习的关系模型基本概念和关系操作原理。

选课管理数据库(CurriculaDB)

• 课程表(COURSE)

• 教师表(TEACHER)

• 开课计划表(PLAN)

• 学生表(STUDENT)

• 选课注册表(REGISTER)

• 学院信息表(COLLEGE)

(1) 使用pgAdmin4创建数据库

第2章 数据库关系模型---数据库原理及应用_第21张图片

指定数据库名和拥有者

第2章 数据库关系模型---数据库原理及应用_第22张图片

 数据库创建成功

第2章 数据库关系模型---数据库原理及应用_第23张图片

 课程表(COURSE)

字段名称

字段编码

数据类型

字段大小

必填字段

是否为键

课程编号

CourseID

文本

4

主键

课程名

CourseName

文本

20

课程类别

CourseType

文本

10

学分

CourseCredit

数字

短整型

学时

CoursePeriod

数字

短整型

考核方式

TestMethod

文本

10

教师表(TEACHER)

字段名称

字段编码

数据类型

字段大小

必填字段

是否为键

教师编号

TeacherID

文本

4

主键

姓名

TeacherName

文本

10

性别

TeacherGender

文本

2

职称

TeacherTitle

文本

6

所属学院

CollegeID

文本

3

外键

联系电话

TeacherPhone

文本

11

开课计划表(PLAN)

字段名称

字段编码

数据类型

字段大小

必填字段

是否为键

开课编号

CoursePlanID

自动编号

长整型

代理键

课程编号

CourseID

文本

4

外键

教师编号

TeacherID

文本

4

外键

地点

CourseRoom

文本

30

时间

CourseTime

文本

30

备注

Note

文本

50

学生表(STUDENT)

字段名称

字段编码

数据类型

字段大小

必填字段

是否为键

学号

StudentID

文本

13

主键

姓名

StudentName

文本

10

性别

StudentGender

文本

2

出生日期

BirthDay

日期

短日期

专业

Major

文本

30

手机号

StudentPhone

文本

11

选课注册表(REGISTER)

字段名称

字段编码

数据类型

字段大小

必填字段

是否为键

注册编号

CourseRegID

自动编号

长整型

代理键

开课编号

CoursePlanID

数字

长整型

外键

学号

StudentID

文本

13

外键

备注

Note

文本

30

学院信息表(COLLEGE)

字段名称

字段编码

数据类型

字段大小

必填字段

是否为键

学院编号

CollegeID

文本

3

主键

学院名称

CollegeName

文本

40

学院介绍

CollegeIntro

文本

200

学院电话

CollegeTel

文本

30

使用pgAdmin 4创建PostgreSQL数据库表

第2章 数据库关系模型---数据库原理及应用_第24张图片

 使用pgAdmin 4创建学院信息表(COLLEGE)

第2章 数据库关系模型---数据库原理及应用_第25张图片

第2章 数据库关系模型---数据库原理及应用_第26张图片

使用pgAdmin 4创建教师信息表(TEACHER) 

第2章 数据库关系模型---数据库原理及应用_第27张图片

第2章 数据库关系模型---数据库原理及应用_第28张图片

使用pgAdmin 4给教师信息表(TEACHER)创建外键约束 

第2章 数据库关系模型---数据库原理及应用_第29张图片

 使用pgAdmin 4给教师信息表(TEACHER)创建外键约束的处理

第2章 数据库关系模型---数据库原理及应用_第30张图片

 使用pgAdmin 4给教师信息表(TEACHER)创建check约束

第2章 数据库关系模型---数据库原理及应用_第31张图片

单元测试

第2章 数据库关系模型-单元测验-数据库与机器学习_aiqq136的博客-CSDN博客第2章 数据库关系模型---数据库与机器学习作业常用的关系查询操作包括选择、投影、连接、并、交等。 v实体完整性是指关系表的属性组成必须是完整的。 x自然连接是一种等值连接。 v在参照完整性中,可以定义级联操作。 v用户自定义完整性可以实施数据的业务约束。 v每个关系是一个二维表,但二维表不一定是关系。 v关系中复合键至少包含两个属性。 v代理键是为了唯一标识关系的不同元组,需要在表单或报表中显示出来。 x...https://blog.csdn.net/aiqq136/article/details/123429997

第3章        数据库操作SQL语言

第4章        数据库设计与实现

第5章        数据库管理

第6章        数据库应用编程

第7章        NoSQL数据库技术

你可能感兴趣的:(数据库,数据库,机器学习,linq)