数据库3.2号作业 / 数据库的术语解释 / 关系代数

Olinda ·
更新时间:2024-11-13
· 846 次阅读

下面介绍一些数据库基本的术语,最后面有一道关系代数的题目:
⍢⃝⍤⃝⍨⃝∵⃝⍥⃝⍩⃝⃜

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

       1.域:
              定义: 每个属性的取值范围对应一个值的集合,称为该属性的域(domain)。

              解释: 例如{1,2} 、大于0且小于一百的整数………可以称之为域( 域是有相同数据类型值的集合)

       2.笛卡尔积:
              定义: 又称直积,结果是有序对的集合,(对于X × Y来说)有序对第一个对象是属于X的一个成员,有序对第二个对象是属于Y的一个成员。
              解释: 比如:集合X = { w , e },集合Y = { 1 , 2 , 3 },则两个集合的笛卡尔积为{ (w , 1) , (w , 2) , (2 , 3) , (e , 1) , (e , 2) , (e , 3) }。

       3.关系:
              定义: 关系模型中的单一的数据结构,可以理解为一张二维表(属性名+表名+数据),关系可以有三种类型:
                   基本表(实际存在的表,是实际存储数据的逻辑表示)
                   查询表(查询结果对应的表)
                   视图表(由基本表或其他视图表导出的表,不对应实际存储的数据);
              解释: 比如:现实世界中的实体以及实体之间的联系我们用一种结构类型来描述,我们称之为关系(一张表)。

       4.元组:
              定义: 给定一组可相同的域(n个),他们的笛卡尔积的每一个元素,称为n元组,简称元组。
              解释: 通俗来说,元组就是二维表中的行

       5.属性:
              定义: 在现实世界中,一个事物常常取若干特性来描述,这些特性称为属性。
              解释: 通俗来说,属性就是二维表中的列。

以上五条之间的联系:

         就像上面提到的:关系可以说是一张二维表,元组可以说是关系的行;属性可以说是关系的列,笛卡尔积可以说是在属性(列)上的一种运算。

       1.候选码:
              定义: 候选码: 关系中的某一属性组的值能够唯一标识一个元组,而其子集不能,则该属性组为候选码
              解释: 表的所有记录都有个不同的候选码;
                          不能为空;
                          通俗来说是能够唯一标识一条记录的最小属性集;

       2.主码:
              定义: 若一个关系中有多个候选码,则选定其中的一个作为主码
              解释: 是从候选码里人为挑选的一条;
                          一个数据表只能有一个主码;
                          所有的记录的主键取值都不同;
                          不能为空

       3.外码:
              定义: 如果一个关系中的一个属性是另外一个关系中的主码则这个属性为外码。
              解释: 外码并不一定要与相应的主码同名;
                          为了便于识别,当外码与相应的主码属于不同关系时,我们可以给他们取相同的名字;
                          外码能反映两个关系之间的一对多或多对多的关系

以上三条之间的联系:

         是能够唯一标识一条记录的最小属性集,主码是从候选码中人为的挑选出来的一条。

       1.关系:
              定义: 请见本文上方(属性名+表名+数据)

       2.关系模式:
              定义: 对关系的描述方式。(属性名+表名)
              解释: 一般表示为:关系名(属性1、属性2、……、属性n)
              例如:学生(学号,姓名,年龄)。
              要求:关系的每一个分量必须是不可分的数据项,并且关系必须是规范化的。

       3.关系数据库:
              定义: 在一定范围内,所有实体及实体之间联系集合构成一个关系数据库。

以上三条之间的联系:

         关系是关系模式在某一时刻的状态或内容。
         关系模式是静态的、稳定的;关系是动态的、随时间不断变化的。我们可以把关系模式和关系统称为关系;
         关系数据库是按照关系模型建立的数据库。

对于关系的进一步解释:

         首先,我们新建两张表(名称分别为father和mother),father表如下所示:


父亲表

        mother表如下:


在这里插入图片描述

        这里我们对其进行求笛卡尔积,结果如下:


在这里插入图片描述

        我们得到一张新表,这张表中有多条元组,我们规定一种“关系”,就是父亲i母亲i 是一家人。否则不是一家人。则我们可以从结果表中抽出下表:

父亲 母亲
父亲1 母亲1
父亲2 母亲2
父亲3 母亲3

        我们称这张表中的“一家人”为 关系

下面我们来做一道练习题

题目:假设有一个SPJ数据库,包括S、P、J以及SPJ四种关系模式

1. S(SNO,SNAME,STATUS,CITY); 2. P(PNO,PNAME,COLOR,WEIGHT): 3. J(JNO,JNAME,CITY); 4. SPJ(SNO,PNO,JNO,QTY).

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

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

        工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。

        今有若干数据如下:


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

        接下来我们用关系代数表示以下查询:
               (1)求供应工程J1零件的供应商号码SNO;
                   ΠSNO(σJNO=′J1′(SPJ))\Pi_{SNO}( \sigma_{JNO = 'J1'}(SPJ))ΠSNO​(σJNO=′J1′​(SPJ))


在这里插入图片描述

               (2)求供应工程J零件P1的供应商号码SNO;
                   ΠSNO(σJNO=′J1′∧PNO=′P1′(SPJ))\Pi_{SNO}( \sigma_{JNO = 'J1' \wedge PNO = 'P1'}(SPJ))ΠSNO​(σJNO=′J1′∧PNO=′P1′​(SPJ))


在这里插入图片描述

               (3)求供应工程JI零件为红色的供应商号码SNO;
                   ΠSNO(ΠSNO,PNO(σJNO=′J1′(SPJ))⋈ΠPNO(σCOLOR=′红′(P)))\Pi_{SNO(\Pi_{SNO , PNO}(\sigma_{JNO = 'J1'}(SPJ)) \Join \Pi_{PNO}( \sigma_{COLOR='红'}(P)) )}ΠSNO(ΠSNO,PNO​(σJNO=′J1′​(SPJ))⋈ΠPNO​(σCOLOR=′红′​(P)))​


在这里插入图片描述

               (4)求没有使用天津供应商生产的红色零件的工程号JNO;
                   ΠJNO(J)−ΠJNO(ΠSNO(σCITY=′天津′(S))⋈ΠSNO,PNO,JNO(SPJ)⋈ΠPNO(σCOLOR=′红′(P)))\Pi_{JNO}(J){-\Pi_{JNO}({\Pi_{SNO}({\sigma_{CITY='天津'}(S)}) \Join \Pi_{SNO , PNO , JNO }({SPJ}) \Join \Pi_{PNO}({\sigma_{COLOR = '红'}(P)}) }) }ΠJNO​(J)−ΠJNO​(ΠSNO​(σCITY=′天津′​(S))⋈ΠSNO,PNO,JNO​(SPJ)⋈ΠPNO​(σCOLOR=′红′​(P)))


在这里插入图片描述

               (5)求至少用了供应商S1所供应的全部零件的工程号JNO.
                   ΠJNO,PNO(SPJ)÷ΠPNO(σSNO=′S1′(SPJ))\Pi_{JNO , PNO}({SPJ} ) \div \Pi_{PNO}({\sigma_{SNO='S1'}(SPJ)})ΠJNO,PNO​(SPJ)÷ΠPNO​(σSNO=′S1′​(SPJ))

在这里插入图片描述
以上便是此次介绍的全部内容,感谢阅读!
作者:HBU-Zhang Weilei



关系代数 数据 关系 代数 数据库

需要 登录 后方可回复, 如果你还没有账号请 注册新账号