一、定义并理解下列术语,说明它们之间的联系和区别

1.域,笛卡尔积,关系,元组,属性

2.候选码,主码,外部码

3.关系模式,关系,关系数据库

1.(1)域:一种具有相同数据类型的值的集合。
(2)笛卡尔积:给定一组域D1,D2,…,Dn,这些域可以是相同的D域。这组域的笛卡尔积为
1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}
(3)关系:在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为R(D1,D2,…,Dn)
(4)元组:关系中的每个元素是关系中的元组。笛卡尔集中的每个一个元素(dl,d2,…, dn)称为一个n元组或简称为元组(Tuple),元素中的每一个值di叫做一个分量(Component)。
(5)属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。

2.(1)候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidatekey)。
(2)主码:若一个关系有多个候选码,则选定其中一个为主码(Primarykey)。
(3)外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码K相对应,则称F是基本关系R的外部码(Foreignkey),简称外码。基本关系尺称为参照关系(Referencingrelation),基本关系S称为被参照关系(Referencedrelation)或目标关系(Tatgetrelation)。关系R和S可以是相同的关系。

3.(1)关系模式:关系的描述称为关系模式(RelationSchema)。它可以形式化地表示为R(U,D,DOM,F)其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。
(2)关系:在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为R(D1,D2,…,Dn)关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的;而关系是动态的、随时间不断变化的,因为关系操作在不断更新着数据库中的数据。
(3)关系数据库:关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。

二、试述关系模型的完整性规则。在参照完整性中,什么情况下外码属性的值可以为空值?

答:

  • 关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。
    (1)实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。.
    (2)参照完整性规则:若属性(或属性组) F是基本关系R的外码,它与基本关系S
    的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F.上的值
    必须为下面二者之一:
    ●或者取空值(F的每个属性值均为空值);
    ●或者等于S中某个元组的主码值。
    (3)用户定义的完整性:针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。

  • 项目在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定。但前提条件是该外部码属性不是其所在关系的主属性。
    例如,在下面的“学生”表中,“专业号”是一个外部码,不是学生表的主属性,可以为空。其语义是,该学生的专业尚未确定。
    学生(学号,姓名,性别,专业号,年龄)
    专业(专业号,专业名)
    而在下面的“选修”表中的“课程号”虽然也是一个外部码属性,但它又是“选修”表的主属性,所以不能为空。因为关系模型必须满足实体完整性。
    课程(课程号,课程名,学分)
    选修(学号,课程号,成绩)

三、设有一个SPJ数据库,包括S、P、J及SPJ4个关系模式:

S(SNO,SBAME,STATUS,CITY);

P(PNO,PNAME,COLOR,WEIGHT);

J(JNO,JNAME,CITY);

SPJ(SNO,PNO,JNO,QTY).

供应商表S由供应商代码(SNO),供应商姓名(SNAME),供应商状态(STATUS),供应商所在城市组成(CITY)。

零件表P由零件代码(PNO),零件名(PNAME),颜色(COLOR),重量(WEIGHT)组成。

工程项目表(JNO),工程项目名(JNAME),工程项目所在城市(CITY)组成。

供应情况表SPJ由供应商代码(SNO),供应商姓名(SNAME),供应商状态(STATUS),供应数量(QTY),表示某供应商供应某种零件给某工程项目的数量为QTY。

今有若干数

1)求供应工程J1零件的供应商号码SNO:

πSno(σSno=‘J1’(SPJ))

2)求供应工程J1零件P1的供应商号码SNO:

πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))

3)求供应工程J1零件为红色的供应商号码SNO:

πSno(σPno=‘P1‘(σCOLOR=’红‘ (P)∞SPJ))

4)求没有使用天津供应商生产的红色零件的工程号JNO:

πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P)

5)求至少用了供应商S1所供应的全部零件的工程号JNO:

πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))

四、关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算?

答:并、差、笛卡尔积、 投影和选择5种运算为基本的运算,其他3种运算,即交、连接和除,均可以用这5种基本运算来 表达。
交: R∩S=R-(R-S) 或 R∩S=S-(S-R)
连接: = AθB(R×S) = A=B(R×S) R∞S=∏ ( R.B=S.B(R×S))
除: R÷S =∏X®-∏X(∏X®×∏Y(S)-R)

数据库作业3:第二章课后题(关系数据库及相关概念)相关推荐

  1. 计算机网络第八版——第二章课后题答案(超详细)

    第二章 该答案为博主在网络上整理,排版不易,希望大家多多点赞支持.后续将会持续更新(可以给博主点个关注~ 第一章 答案 [2-01]物理层要解决哪些问题?物理层的主要特点是什么? 解答:物理层考虑的是 ...

  2. 数据库原理第四章课后题答案(第四版)

    一.选择题 1. B    2. B    3. D    4. B    5. C 6. D    7. B    8. D    9. D    10. D 11. A   12.C   13.D ...

  3. 数据库原理第六章课后题答案(第四版)

    一.选择题 1. B    2. C    3. C    4. A    5. C 6. B    7. C    8. B    9. D    10. C 11. D   12. B   13. ...

  4. 基于案例的软件构造教程第二章课后题答案

    这篇文章只提供题号为 奇数 的答案,因为是我们的NT老师要求的 1.名词解释:分解,模块化,逐步求精,软件测试,测试需求,测试设计,测试覆盖,软件调试,缺陷,软件质量,编程风格. 分解:把一个大的.错 ...

  5. 华文慕课北大操作系统陈向群第二章课后题解析

    1.(5分) 控制和状态寄存器用于控制处理器的操作,在某种特权级别下可以访问.修改.下列哪一个不是控制和状态寄存器 A. 程序计数器(PC) B. 指令寄存器(IR) C. 程序状态字(PSW) D. ...

  6. R语言:第4章课后题及附加作业

    R语言:第4章课后题及附增作业 第4章课后题 1.求最值及中位数 2.绘制正态曲线 3.练习条件分支语句 4.判断101~200的素数个数 5.练习自定义函数 第4章附增作业 1.找3的倍数 2.编写 ...

  7. C++面向对象的程序设计谭浩强 第六章课后题

    以往章节 C++面向对象的程序设计谭浩强 第二章课后题 C++面向对象的程序设计谭浩强 第三章课后题 C++面向对象的程序设计谭浩强 第四章课后题 C++面向对象的程序设计谭浩强 第五章课后题 C++ ...

  8. 04737 c++ 自学考试2019版 第二章课后程序设计题 3

    /* * 04737 c++ 自学考试2019版 第二章课后练习 * 程序设计题 3 * 需求:设计并实现一个类MyLine */ //标准流 #include<iostream> //科 ...

  9. 04737 c++ 自学考试2019版 第二章课后程序设计题 2

    /* * 04737 c++ 自学考试2019版 第二章课后练习 * 程序设计题 2 * 需求:设计并实现二维坐标系下点的类Point.... */ //标准流 #include<iostrea ...

最新文章

  1. Java IO 4 : RandomAccessFile
  2. “二子乘舟”的故事很难讲
  3. 【汇编语言(第3版)王爽】试验7 寻址方式在接过话数据访问中的应用(代码+注释)
  4. Windows Server 2008 R2安装Zune 4.0解决方法
  5. 【开源项目】特斯拉+树莓派实现车牌识别检测系统
  6. Java程序员最值得学习的10大技术
  7. 入门机器学习(十五)--无监督学习(K均值)
  8. 《人月神话》读后感一
  9. inDesign教程,如何创建杂志风标注?
  10. PHP分批次处理数据
  11. Express框架学习笔记-静态资源的处理
  12. GEM TSU Interface Details and IEEE 1588 Support
  13. Linux下source命令详解
  14. 使用管理员权限强制删除文件夹
  15. 什么是Xcelsius
  16. 查杀计算机病毒,计算机病毒查杀
  17. java 实现 微博_java实现的新浪微博分享代码实例
  18. web开发表情包---微信表情
  19. IllegalArgumentException :argument type mismatch
  20. fpm工作流程(转)--写的很完整很明白

热门文章

  1. 硬盘分区 硬盘分区 硬盘分区
  2. 2021-2025年中国SWIR-InGaAs光电二极管线阵行业市场供需与战略研究报告
  3. 电商双11美妆数据分析
  4. Cesium学习四:使用entity绘制polygon
  5. 【老鸟进阶】deepfacelab合成参数详解
  6. RK3399 Android7.1修改安兔兔等第三方软件读到的内核版本信息
  7. 7-1 电话聊天狂人 (25分) PTA 数据结构
  8. 苹果手机点击事件无效的解决办法
  9. 孙悟空吃蟠桃c语言编程,孙悟空吃蟠桃歇后语
  10. 全球与中国菱镁矿和水镁石市场现状及未来发展趋势