数据库原理及应用_数据库基础_第4章关系模型的基本理论_关系模型基本概念

前言

"<数据库原理及应用>(MySQL版)".以下称为"本书"中4.1节内容

引入

关系模型是目前最流行的RDBMS(关系型数据库管理系统)的基础.本章主要讲关系代数和关系运算.

4.1关系模型的基本概念

基本术语

1)关系

用于描述数据的一张二维表.如前所述,二维表第一行是关系模式,由各种属性组成;其他行是"元组".

2)域

指列(属性)的取值范围 .这里还需要指出列(属性)有数据类型,在数据类型基础上再提取值范围.本书P102举了个例子,属性"性别"的域为(男,女,NULL),他的数据类型是++字符串++,NULL适用于各种数据类型,表示空.

3)候选键

又称候选码.他能唯一标识关系中的元组的最小属性集合.++一个关系可能有多个候选键++.重点是唯一确定,

本书举的例子中,如果有重名,但重名学生的性别不同,则姓名+性别可以做候选键,有一个小bug---如果有两个人名称和性别都相同,则姓名+性别不可做候选键(这种几率很小,但严格上讲仍有可能).读者考虑没有重名的情况下,姓名+性别不可以做候选键,"姓名"一项可以,性别属于多余,两者加一起不是标识元组的++最小属性集合++.

4)主键

又称主码 ,他能唯一标识关系中的元组的最小属性集合.用户可以从关系的候选键中指定一个作为关系的主键.一个关系最多只能指定一个主键,作为主键的列不能取NULL值.

5)主属性、非主属性、全码

候选键中所有属性均称为主属性. 与之对应,非候选键的属性称为非主属性.

**当关系中所有属性的组合是该关系的一个候选码,称为全码.**全码的条件是必须全部属性放一起才能标识该元组的唯一性,同时也是他的主码.

这三项放一起,是因为暂时看不出他们有什么用.

6)外键

当关系R中的某属性K是另一个关系S中的主键,则称该属性K是关系R的外键.通过外键可以建立两表间的联系 .有了前面的查询做基础,很容易理解外键的概念:外键是两表属性之间的桥梁.

关系的特征

关系的特征关注点在于"唯一"

1)列是同质的.列的取值来自同一个域

2)不同列可以取自同一个域

3)各列顺序理论上可以无序,使用时考虑习惯.

4)任意两个元组的候选码不能相同.

因为候选码是表内元组唯一标识,所以不能相同.例如学生表内不能有两个相同学号.

5)行的顺序无所谓,可以任意交换

6)分量必须取原子值,即每个分量都必须是不可分的数据项.

本书P103和P104举了个例子,不能称为表的是表4-2,在EMPNO为7499的员工处,MGR项出现了两个值.

在本书P104特别强调了:这些规范条件中最基本的一条是,关系的每一个分量必须是一个不可分的数据项.

=============================内容分割线↓===================================

以下为笔者发散思考,不保证对错.

在关系模型中,分量必须是一个不可分的数据项,意味着关系模型容量"有限".每个属性的取值只能是VCHAR,CHAR,INT(DECIMAL),BOOL,DATETIME中的一个值.最大的问题是***++不能表示集合++***.

例如 如果现在要设计一个表,里面内容有学生家庭情况表,学生评价,该怎么办?

|----|----|-------|------|
| 学生表 ||||
| | | | |
| 学号 | 姓名 | 学生家庭表 | 学生评价 |

其中嵌套了另一张表(学生家庭表),学生评价(单独文件).可以想到的办法是,"学生评价"做成一个.txt文件(或其他类型文件),把和所有学生评价的txt文件放入一个文件夹,学生评价这一栏填入文件名,如张三评价.txt.如下图所示

|----|----|-------|----------|
| 学生表 ||||
| | | | |
| 学号 | 姓名 | 学生家庭表 | 学生评价 |
| 1 | 张三 | 2 | 张三评价.txt |

但这不属于关系模型,是非关系模型?由此可见非关系模型也是从关系模型发展而来.如果上述非关系模型要成立,则需要和表相关的内容上增加:

1.数据类型设计:对学生家庭表而言,要设计一个表类型.当然由于他仍然是一个表,所以不算新加入的内容,txt文件也不需要新的设计.这个例子中没有新数据类型的设计,假设要有一张"人际关系图",那么就需要设计一个"图"的数据结构,并在相应位置填入指向图对象的指针.

|-----|------|-----|----|
| 学生家庭表 ||||
| | | | |
| 家庭号 | 本人姓名 | 父亲 | 母亲 |
| 2 | 张三 | 张某某 | 某某 |

2.容器:一个新文件夹,里面放所有的学生评价的txt文件

3.对应的算法---增删改查.

两者对比:关系模型的特点是简单直观,1是1,2是2.

非关系模型信息量大,但针对每个表需要更多空间放置数据

=============================内容分割线↑===================================

从关系模型到非关系模型的拓展,基于一个理念:无论数据大小,都是以指针表示.

小结

关系模型基本概念的整理,以及非关系模型的思考

相关推荐
曾经的三心草3 小时前
微服务的编程测评系统20-虚拟机-nginx-部署
数据库·nginx·微服务
望获linux3 小时前
【Linux基础知识系列:第一百一十六篇】使用mt进行磁带驱动管理
java·linux·运维·服务器·数据库·windows·嵌入式软件
品牌AI前线4 小时前
Few-Shot Prompting 实战:用5个例子让GPT-4学会复杂任务
服务器·数据库·人工智能
小毛驴8504 小时前
maven 常用指令
java·数据库·maven
YoungUpUp4 小时前
【SQL Server 2022】保姆级SQL Server 详细图文下载安装教程
数据库·sql·sqlserver·sql server·sql server数据库·sql server 2022·sql 数据库
知彼解己5 小时前
Redis 集群模式与高可用机制
数据库·redis·缓存
GBASE5 小时前
GBASE南大通用政企行业案例-国家电网公司“网上国网”项目
数据库
GBASE5 小时前
DB-Engines数据库排行榜9月榜单速递
数据库
IvorySQL5 小时前
PostgreSQL 中唯一索引的工作原理
数据库·postgresql