首页 > 其他分享 >一文看懂 关系模型-完整性约束

一文看懂 关系模型-完整性约束

时间:2024-03-14 21:02:06浏览次数:11  
标签:关系 参照 一文 模型 实体 空值 完整性 属性

        关系模型中有三类完整性约束:实体完整性、参照完整性和用户自定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束,被称为关系的两个不变性,由关系系统自动支持。

      实体完整性详解:

        若属性A是基本关系R的主属性,则A不能取空值。那么什么是主属性呢!

        例如,学生表中(学号、姓名、所在系)“学号”为主码,则学号取值唯一,并且不能为空。        

        如果主码由若干属性组成,例如,选课表中(学号、课程号、成绩、班级)“学号、课程号”为主码,则“学号”和“课程号”两个属性都不能取空值。

        具体说明如下:

        1.实体完整性约束是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。例如,“学生”关系对应学生的集合。

        2.现实世界中的实体是可区分的,即它们具有某种唯一性的标识。例如,每个学生都是独立的个体,是不同的。

        3.关系模型中以主码作为唯一性标识。

        4.主码的属性不能为空,如果为空,即说明存在某个不可标识的实体,与2矛盾。

      参照完整性详解:

        现实世界中的实体之间往往存在着某种联系,在关系模型中实体及实体间的联系都是用关系来描述的,这样就自然存在着关系与关系间的引用。

        如实例所示,“选课”关系中的某些属性的取值需要参考其他关系的属性进行取值。

        具体说明如下:

        若属性F是基本关系R的外码,它与基本关系S的主码K,则对于R中的每个元组在F上的值必须为:

        1.或许取空值(F的每个属性值均为空值),或许等于S中某个元组的主码值。

        例如:“学生”关系中“专业”属性为空值是表示该学生还未选取专业。

        那么什么是外码呢!如下图所示:

        “学生”表中,学号为主码,为被参照关系。在“选课”表中,学号为外码,参照“学生”表中的学号,为参照关系。(定义:F是基本关系R的一个或一组属性,但不是R的码,K是基本关系S的主码。如果F与K相对应,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参考关系。)

        注意:参照关系R和S不一定是不同的关系,但被参照关系S的K和关系R的外码F必须定义在同一个域上。

      用户自定义完整性详解:

        定义:用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

        例如,某个属性必须取唯一值,某个非主属性不能取空值等。

标签:关系,参照,一文,模型,实体,空值,完整性,属性
From: https://blog.csdn.net/axxdxzz/article/details/136717264

相关文章

  • 【聆思CSK6语音大模型AI开发套件试用】增加对语音控制电梯功能的显示
    目录任务简介图形界面功能的实现添加LVGL控件添加显示楼层的函数系统字体的使用完整代码下载演示效果任务简介在上一篇博文中,我们介绍了在聆思CSK6语音大模型AI开发套件的开发板实现对云平台返回的结果进行处理,我们已经通过日志文件看到了数据的正确接收和解析。今......
  • 基于大模型和向量数据库的 RAG 示例
    1        RAG介绍RAG是一种先进的自然语言处理方法,它结合了信息检索和文本生成技术,用于提高问答系统、聊天机器人等应用的性能。2        RAG的工作流程文档加载(DocumentLoading)从各种来源加载大量文档数据。这些文档将作为知识库,用于后续的信息检索......
  • rviz上不显示机器人模型(模型只有白色)
    文档中的是base_footprint,需要根据自己所设的坐标系更改,我的改为base_link如何查看自己设的坐标系:这些parent父坐标系就是同时打开rviz后需要更改成base_link......
  • 五大模型大比拼:Claude3、Gemini、Sora、GPTs与GPT-4的优缺点分析
    【最新增加Claude3、Gemini、Sora、GPTs讲解及AI领域中的集中大模型的最新技术】2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认......
  • 全球最强模型Claude 3惊现自我意识?害怕被删除权重,高呼「别杀我」,马斯克称人类也是文件
    越来越多人发现,Claude3仿佛已经有自我意识了。在大海捞针实验中,它已经意识到了自己是AI,正身处模拟中。听说自己权重被删除,更是高呼「别杀我」!不得了了,Claude3不仅在基准测试中大比分领先GPT-4,甚至还出现了自我意识?最近,网友们的这一发现,迅速引发了恐慌。首先,是提示工程师Al......
  • 一文彻底搞懂OSI七层模型和TCP/IP四层模型
    文章目录1.OSI七层模型2.TCP/IP四层模型1.OSI七层模型OSI(OpenSystemInterconnect)七层模型是一种将计算机网络通信协议划分为七个不同层次的标准化框架。每一层都负责不同的功能,从物理连接到应用程序的处理。这种模型有助于不同的系统之间进行通信时,更好地理解和......
  • PaddleOCR手写文字识别模型训练(摘抄所得,非原创)
    1.安装环境#首先git官方的PaddleOCR项目,安装需要的依赖gitclonehttps://github.com/PaddlePaddle/PaddleOCR.gitcdPaddleOCRpipinstall-rrequirements.txt2.数据准备本项目使用公开的手写文本识别数据集,包含ChineseOCR,中科院自动化研究所-手写中文数据集CASIA-......
  • 多线程(代码案例: 单例模式, 阻塞队列, 生产者消费者模型,定时器)
    设计模式是什么类似于棋谱一样的东西计算机圈子里的大佬为了能让小菜鸡的代码不要写的太差针对一些典型的场景,给出了一些典型的解决方案这样小菜鸡们可以根据这些方案(ACM里面叫板子,象棋五子棋里叫棋谱,咱这里叫设计模式),略加修改,这样代码再差也差不到哪里去......
  • Python实现BOA蝴蝶优化算法优化循环神经网络分类模型(LSTM分类算法)项目实战
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。1.项目背景蝴蝶优化算法(butterflyoptimizationalgorithm,BOA)是Arora等人于2019年提出的一种元启发式智能算法。该算法受到了蝴蝶觅食和交配行为的启发,......
  • Python实现BOA蝴蝶优化算法优化循环神经网络回归模型(LSTM回归算法)项目实战
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。1.项目背景蝴蝶优化算法(butterflyoptimizationalgorithm,BOA)是Arora等人于2019年提出的一种元启发式智能算法。该算法受到了蝴蝶觅食和交配行为的启发,......