目录

第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支持的逻辑模型

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

(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可用二维表表示为:

关系(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∧tS}

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

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

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

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

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

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

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

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

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

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

说明:

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

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

专门的关系运算

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

选择与投影操作

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

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

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

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

(Projection)从列的角度的运算

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

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

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

3、连接(Join)

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

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

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

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

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

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

概念:

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

例5: 关系R和关系S 如下所示

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

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

R.name1=S.name2。

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

示例

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

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

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

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,求定购÷零件

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就是②-⑤.

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

5、外连接(Outer Joins)

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

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

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

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

外连接的种类:左右全

① 左外连接(LEFT OUTER JOIN)

② 右外连接(RIGHT OUTER JOIN)

③ 全外连接(FULL OUTER JOIN)

说明:

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

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

左外连接

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

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

右外连接

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

全外连接

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

PostgreSQL数据库关系操作实践

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

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

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

选课管理数据库(CurriculaDB)

• 课程表(COURSE)

• 教师表(TEACHER)

• 开课计划表(PLAN)

• 学生表(STUDENT)

• 选课注册表(REGISTER)

• 学院信息表(COLLEGE)

(1) 使用pgAdmin4创建数据库

指定数据库名和拥有者

数据库创建成功

课程表(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数据库表

使用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. 东北大学软件学院数据库系统概述第二章(关系模型)

    数据库第二章(关系模型) 目录 数据库第二章(关系模型) 1.关系数据库的结构: 2.基本关系代数运算 3.其他关系代数运算 4.扩展关系代数运算 5.空值 6.修改数据库 1.关系数据库的结构: 定 ...

  2. ECMALL数据库关系模型的实现

    2019独角兽企业重金招聘Python工程师标准>>> 所谓模型,则是一个一个的数据实体,换句话说就是一个数据表,你可以基于这个模 型,调用model.base.php中的数据库操作 ...

  3. 思辨领域模型-- DDD≠数据库关系模型

    Eric Evans的<领域驱动设计>问世已经14年之久,到今天几乎所有业务团队都或多或少有涉及DDD.然而如果较真会发现,认真遵循DDD设计原则的团队仍是少数,在多数团队的现都是:**领 ...

  4. 【MySQL】使用Visio绘制数据库关系模型图

    使用Visio绘制数据库关系模型图 1 新建项目 文件-新建–软件和数据库-数据库模型图 点击后,出现如下界面: 2 绘制 左侧"实体关系"中将"实体"形状拖放 ...

  5. NER依存关系模型:原理,建模及代码实现

    NER依存关系模型:原理,建模及代码实现 seq2seq理论基础 NER依存关系建模 代码实现 命名实体识别(Named Entity Recognization, NER)是AI任务中重要的一类,而 ...

  6. 数据库关系模型与关系运算---2022.2.13

    关于外模式,模式,内模式的理解 可以看到用不同的语句进行表示: 关系的性质 概念模式/内模式映射是物理独立性的关键: 外模式/概念模式映射就是逻辑独立性的关键 候选键 (最小组成的超键) 关系中的一个 ...

  7. 数据库关系模型的三类完整性约束

    关系模型中有三类完整性约束,分别是:实体完整性,参照完整性,用户定义完整性 实体完整性 定义:实体完整性是用于保证关系数据库中每个元组都是可区分的,唯一的. 它的意思就是说数据表中每一行都应该有办法将 ...

  8. 数据库 ---- 关系模型

    在关系模型中,操作的对象和结果都是二维表,关系模型是目前最流行的数据库模型.支持关系模型的数据库管理系统称为关系数据库管理系统,Access就是一种关系数据库管理系统. 1.基本术语 (1)关系(Re ...

  9. 数据库关系模型和关系运算[姊妹篇.第三弹]

    随着ORM框架的日益流行,如今的码农们直接操作数据库语法的越来越少了,一顿orm语法操作猛如虎,一遇问题问题便靓仔语塞.这种情况不在少数,就如我的工作中,我所知道的同事和实习生当中,就有不少人非常喜欢 ...

最新文章

  1. 同时tar解压多个文件
  2. java基础之 “==”和“ equals”以及instanceof的区别
  3. POJ 3279(Fliptile)题解
  4. html怎么鼠标经过添加蒙版遮罩,js实现鼠标移动到图片产生遮罩效果
  5. HTML5 基础知识(二)
  6. 深入理解右值引用,move语义和完美转发
  7. 大数据产品的备份及恢复
  8. java的基础语法和数据类型,IDEA
  9. 监督学习 | ID3 决策树原理及Python实现
  10. django学习笔记01
  11. 维纳过程(Wiener Process)与高斯过程(Gaussian Process)
  12. android下利用高德地图获取经纬度等定位信息
  13. php实现飘窗,装配式飘窗的制作方法
  14. 《运营之光》读书笔记
  15. 基于Outline构建团队的知识库 (上篇)
  16. M1芯片处理器mac能用的AI(llustrator CC 2021 直装版M1优化版)解决M1版MAC安装AI闪退问题 完美支持M1芯片处理器
  17. android手机连接电脑,安卓手机连接电脑的方法
  18. Java Web完整学习记录
  19. LINUX 字体装在哪个文件夹里
  20. 一首特别适合冥想的音乐

热门文章

  1. SpringMVC学习系列(六)------图片的上传
  2. Numpy_v1_数组创建
  3. 一个查询手机号码归属地,运营商,区号信息的 Go 库
  4. 小红书运营技巧分享:新用户如何种草小红书
  5. 医疗YY0505思维导图总结
  6. 关于Bing壁纸获取无法打开图片
  7. springboot 上传文件报错:java.io.IOException: The temporary upload location [/tmp/tomcat.xxx] is not valid
  8. 6-2 简单实现x的n次方 (10 分)
  9. echart 超炫3d地图
  10. 前端必读2.0:如何在React 中使用SpreadJS导入和导出 Excel 文件