【数据库】第二章 关系数据库 各种概念

2.1 关系数据结构及形式化定义

2.1.1 关系

1.域(Domain)

【定义】域是一组具有相同数据类型的值的集合

【例】整数,实数,介于某个取值范围的整数,指定长度的字符串集合,{"男","女"}等等

2.笛卡尔积

【定义】给定一组域,,这些域可以是相同的。的笛卡尔积为:

。所有域的所有取值的一个组合。

其实就是交叉组合

笛卡尔乘积乘出来的结果比较全面,但是部分对我们来说是没有意义的。比如上面一个学生只能在一个专业,而不能同时在计算机专业和信息专业。

元组(Tuple)

笛卡尔积中的每一个元素(d1,d2,...dn)称作一个n元组(n-tuple)或简称元组(Tuple)

(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨)等都是元组 就是前面关系模型中的一行

分量(Component)

笛卡尔积元素中的每一个值id称作一个分量(记录当中每一个值都是分量)

【例】张清玫,计算机专业,李勇,刘晨等都是分量。

也就是属性 关系模型中的一小格(分量)。

基数(其实也就是种类)
(Cardinal number)(实际上指这个域里面能取几个值,就比如说导师D1这个域,它的基数是2)为有限集,其基数为zhe,则的基数M为:

笛卡尔积的表示方法:

笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域(也就是属性范围)。

3. 关系(Relation)笛卡尔积的有意义子集

R表示关系名 就比如下面学生信息就是关系名 里面D就是属性 属性个数是关系的目或度

元组表示一行 tuple

码:

是一个(或者多个)属性 但是这个属性可以唯一确定一个元组(一行)

某一属性组 不是某一属性

候选码:比如学生的学号 身份证号都可以作为候选码

全码

所有属性组(全部属性的集合)都是这个关系模式的候选码 所有的属性加起来才能成为候选码(不能说每一个都能成 比如学生选课 必须学号加上课号才能确定一个元组)

主码

若一个关系有多个候选码,则选定其中一个称为主码

关系跟笛卡尔积的区别 笛卡尔积是所有的元组组合 关系是有实际意义的笛卡尔积的子集

基本关系 是实际存在的表查询表是结果对应的表 比如下面两个选课表和学生信息表 我要查年纪和选课 返回的就是查询表 并且由于这个表示有两个基本表导出来的 因此又是虚表

1.同质的意思就是同样的性质 同样的取值范围

2.同一个域 这个域可以说很大 比如年龄和学号都是整数

6.分量:笛卡尔积每一个元素的值 也就是关系模型中每一个小格子

不能合并单元格


2.1.2 关系模式

1.什么是关系模式?

关系模式是对关系的描述 关系模型是模型 关系是值

(1)元组集合的结构(每一行的构成)

属性构成、属性来自的域、属性和域之间的映射关系

(2)一个关系通常由赋予它的元组语义确定

(3)现实的世界中还存在着完整性约束

2.关系模式的表示方式(了解)

区别和关系的表示:R(D1,D2,...Dn)

3.关系模式与关系


2.1.3 关系数据库

1. 关系数据库

给定的一个应用领域中所有关系的集合构成一个关系数据库 比如学生管理系统 有学生信息表 选课表 成绩表等

2.关系数据库的型与值


2.1.4 关系模型的存储结构(了解)


2.2 关系数据结构

2.2.1 基本关系操作

一、常用的关系操作

查询:选择 投影 并 差 笛卡尔积

投影:选择其中一或多列


2.2.2 关系数据库的分类


2.3 关系的完整性

2.3.1 实体完整性

若属性A是基本关系R的主属性,则属性A不能取空值(空值就是不知道 不存在 或无意义的值)比如身份证号

实体完整性规则规定基本关系的所有主属性都不能取空值

R(D1,D1,D3)画下横线的是主码 不能重复且不能为空(主体完整性)

2.3.2 参照完整性

1.关系间的引用

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

比如这个表的属性 也是另外一个表的属性

这里画横线是指 学生关系里引用的是专业关系的主码专业号,而不是专业号也是自己的主码

那什么是参照完整性呢?指的就是 引用的值只能是被引用关系里的值

关系一对一

2.外码

外码:一个或一组属性与别的关系的主码相对应 而不是自己所在关系的码 则称这个或组属性为这个关系的外码,比如前面专业号是学生表的属性,不是码;但是与专业表的主码对应,这时候我们说专业号是学生表的外码;学生表为参照关系, 专业表为被参照关系

但是上面第二张图 对于选修表来说 尽管(学号,专业号)来自于另外两个关系的主码 但是这两个属性同时是选修成绩表的主码 所以不能说他们(属性组)是选修表的外码

(学号,专业号)不是外码 但是学号和专业号是外码

说明:

3. 参照完整性规则

外码要么取空值(班长) 要么取被参照关系里某个元组的主码值


2.3.3 用户定义的完整性

相关推荐
youshang520i2 小时前
Gbase 8s 不能参考一个未设日志的外在数据库
数据库
宇宙的尽头是PYTHON2 小时前
开窗函数简单的排序row_number() rank() densite()
数据库
心止水j2 小时前
hbase 电商2
数据库·windows·hbase
Blockbuater_drug2 小时前
SDF 格式文件的前世今生:从化学信息学基石到 AI 时代的分子通用语言
数据库·人工智能·化学信息学·sdf格式
Chloeis Syntax3 小时前
MySQL初阶学习日记(7)--- 事务
java·数据库·笔记·学习·mysql
奔跑吧 android3 小时前
【ubuntu】【unattended-upgrades 介绍】
服务器·数据库·ubuntu
l1t3 小时前
PostgreSQL在psql中执行INSERT语句时不显示插入条数信息的方法
数据库·postgresql
越甲八千3 小时前
SQL注入
数据库·sql·oracle
安当加密3 小时前
数据库密码还在 Git 里?用 SMS凭据管理系统实现生产/开发环境隔离
数据库·git