数据库 关系模型的基本概念「建议收藏」

数据库 关系模型的基本概念「建议收藏」关系模型中:关系、目或度、关系模式、域、元组、属性、分量、主码、外码等名词的解释。

大家好,又见面了,我是你们的朋友全栈君。

关系(Relation

D1 × D2 × ··· × Dn 的子集叫做在域D1,D2,···,Dn 上的关系,表示为 R(D1,D2,···,Dn ),其中R就是关系名,n就是目或度。
一个关系对应一张二维表,二维表就是关系名。

  • 例如,下图中的整个二维表的值就是一个关系
    01

目 或 度(degree

二维表关系R(D1,D2,···,Dn )中的 n 就是关系的

关系模式(Relation Schema

在二维表中的行定义,即对关系的描述称为关系模式。

  • 一般表示为(属性1,属性2,…,属性n)
  • 例如:老师的关系模型可以表示为教师(教师号,姓名,性别,年龄,职称,所在系)。

(值)域(domain

域是一组具有相同数据类型的值的集合。
二维表中每列对应一个域。

  • 表述的是属性值的取值范围为值域。同一种类型的数据集合,都是某一个事物的值的集合。
  • 例如:自然数、整数、{男,女}、不大于10的正整数等。
  • 例如:上述关系中的D1 = 学号集合 = {S3001,S3002,S4001}; D2 = 姓名集合 = {张明,李静,赵丽} 等就是域。

元组(tuple

笛卡尔积中每一个元素(d1,d2,···,dn),叫作一个n元组(n-tuple)或简称元组。
二维表中每行对应一个元组。
关系是一张表, 表中的每行(即数据库中的每条记录)就是一个元组;

  • 在二维表里,元组也称为行。
  • 例如:关系中的某一行
    02

属性(attribute

在二维表中为了区分不同的域而对每列取一个名字,称为属性。
属性的个数称为关系目或度,即 n目关系必有n个属性。
列的值称为属性值;

  • 例如:二维表中的学号、姓名、性别等都是属性。
    03

分量(component

元素中每一个值 di 都叫做一个分量
为每一行对应的列的属性值,即元组中的一个属性值。

  • 例如:关系中某一行中的S3001、张明、男、外语等等。

候选码 (候选建)(candidate key

若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码

  • 例如:在选课表中,只有属性组“学号”和“课程号”才能唯一地标识一个元组,则候选键为(学号,课程号)。
    04

主码(primary key

在一个关系的若干候选码中指定一个用来唯一标识该关系的元组,则称这个被指定的候选码称为主关键字,或简称为主键、关键字、主码
主码不一定只有一个,但是一定要有。

  • 在有多个候选码的情况下,主码是由人为选择的。

主属性 & 非主属性(prime attribute & non-prime attribute

关系中包含在任何一个候选码中的属性称为主属性,不包含在任何一个候选码中的属性为非主属性非码属性(non-key attribute

  • 例如关系中的学号、课程号就是主属性;而性别、年龄就是非主属性或非码属性。

    01

全码(all-key

在最极端条件下,关系模式中的所有属性都是这个关系模式的候选码,称为全码

外码(foreign key)

一个关系R中的一个属性是另外一个关系F中的主码,则关系R中的这个属性称为外码。

  • 有两个实体:其中加粗的属性是主码。
  • 学生(学号,姓名,性别,专业号);专业(专业号,专业名)
  • 则对专业表来说:专业号是专业表的主码;
  • 对学生表来说:专业号是学生表的外码;学号是学生表的主码;

笛卡尔积(cartesian product

笛卡尔积是域上的一种集合运算。

  • 给定一组域D1,D2,···,Dn,允许其中的某些域是相同的,D1,D2,···,Dn的笛卡尔积为:D1 × D2 × ··· × Dn = {(d1,d2,···,dn)| di ∈ Di,i = 1,2,···,n}

资料参考

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160188.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【日常】如何将微信中对方所撤回的消息恢复?——电脑PC端微信教程:附源码[通俗易懂]

    【日常】如何将微信中对方所撤回的消息恢复?——电脑PC端微信教程:附源码[通俗易懂]1前言寻找微信撤回的图片是不少人一直在寻找的方法但苦于在网上一直找不到结果因此本文提出了一种可以找到微信撤回图片的方法。区别于网上其他的不可用代码,本文能成功恢复!2原理之前的说法是,工程师并没有真正把撤回的图片删除,而是加密后藏起来了。其实这样说并不严谨,经过后续测试,发现PC端的确如此,而手机端(Android)撤回的图片是有删除的,但是删除的不干净。2.1PC端微信所有接收到的图片都储在:C:\Users\你的用户名\Documents\WeChatFiles\wxid_你

    2022年6月23日
    55
  • linux系统查看版本命令,Linux系统查看系统版本命令[通俗易懂]

    linux系统查看版本命令,Linux系统查看系统版本命令[通俗易懂]以下操作在centos系统上实现,有些方式可能只适用centos/redhat版本系统uname-a|uname-r查看内核版本信息[root@node1~]#uname-aLinuxnode12.6.32-573.el6.x86_64#1SMPThuJul2315:44:03UTC2015x86_64x86_64x86_64GNU/Linux[root@n…

    2022年8月21日
    11
  • idea项目打包成war_war文件打成war包

    idea项目打包成war_war文件打成war包IntelliJIDEA将项目打包war包1、准备工作IntelliJIDEA开发工具可以正常运行的Java项目2、打包war包流程使用快捷键Ctrl+Alt+Shift+s或者鼠标点击选中项目名按F4打开ProjectStructure界面选择Artifacts,点击右边+,依次选择WebApplication:Archive和For’myP…

    2025年7月29日
    1
  • 权限持久化—映像劫持检测(Shift后门)[通俗易懂]

    权限持久化—映像劫持检测(Shift后门)[通俗易懂]映像劫持说白了还是利用了windows的一些特性,当你点击可执行文件进行执行时,系统并不会直接就对可执行文件进行执行,而是首先对注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ImageFileExecutionOptions,这个路径下面如果存在和该程序名称完全相同的子键,就查询对应子健中包含的“Dubugger”键值名,并用其指定的程序路径来代替原始的程序,之后执行的是遭到“劫持”的虚假程序。比较常用的是.

    2022年9月17日
    0
  • 时间序列预测(四)—— LSTM模型「建议收藏」

    时间序列预测(四)——LSTM模型文章链接(一)数据预处理(二)AR模型(自回归模型)(三)Xgboost模型(四)LSTM模型(五)Prophet模型(自回归模型)模型原理  LSTM(Long-shorttimememory,LSTM)模型,亦即是长段时间模型。LSTM的原理这篇博客讲的十分的清楚,建议英语好的小伙伴直接去看原文,我这里就大致的翻译精简一下。  人类天…

    2022年4月11日
    353
  • pycharm怎么逐步调试_pycharm的debug失效

    pycharm怎么逐步调试_pycharm的debug失效前言Debug调试,是一项学习编程人员的重要技能。只有当你学会debug了以后,才可以正确的知道程序的走向流程是如何的,今天就来给大家介绍一下pycharm中的debug功能!debug的前世在正式讲解之前,先来了解下debug这个词的由来,就像我们初学Python时,先要了解下它历史的由来。1937年,美国青年霍华德·艾肯找到IBM公司为其投资200万美元研制计算机,第一台成品…

    2022年8月26日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号