第6章 关系数据库

6.1 关系数据库

6.1.1 什么是关系数据

  关系数据库是由多张能互相联系的表格组成的数据库,即对象与对象之间的联系。对象与对象之间是通过主键和外键来建立联系的。当各个独立的对象建立了关系以后,就可以通过外键来搜索关联表的数据。比如,学生和班级建立了关联关系,就可以通过学生对象的班级编号来搜索班级对象的数据。

1、主键

  对象中有某一个属性(字段)或一组(多个字段)能唯一标识一个实体(记录),该属性组就可以成为一个主键。主键是实体的唯一标识。

  比如:

  班级(班级编号,班级名称),其中每个班级编号号是唯一的,编号就是一个主键。 

  学生(学号,姓名,性别,班级编号),其中每个学生的学号是唯一的,学号就是一个主键 。

  课程表(课程编号,课程名,学分),其中课程编号是唯一的,课程编号就是一个主键。 

  成绩表(学号,课程号,成绩),成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以学号和课程号的属性组是一个主键。 

2、外键

  是用来创建对象之间关系而建立的字段,它不是对象本身的主键,而是与该对象建立关系的另一个对象的主键。有了外键,该对象就可以和另一个对象关联起来。

  比如:学生对象中的班级编号,它不是学生对象的主键,但它是班级对象的主键,它将学生与班级关联起来了。

  同理,成绩表中学号和课程号,将学生与成绩,课程与成绩关联起来。

6.1.2 对象关系的设计

  关系数据库中的每个表都有一个可惟一标识记录的字段,该字段称作主键 。主键是定义关系的一部分;另一部分是外键 。如果某个表中的字段值与另一个表中的主键值相同,则该字段就是第一个表的外键。可以将外键当作是另一个表的主键的副本。将一个表中外键的值与另一个表中的主键值相匹配,就可以在两个表之间建立关系。在设计对象之间的关系时,将对象关系分为一对多,多对多关系。

1、一对多关系设计

  班级与学生就是一对多关系,一个班级包含多个学生,而一个学生只能归属某一个班级。一对多关系的设计,在“多”表一方添加一个外键字段,对应“一”表的主键。

  

2、多对多关系设计

  学生与课程是多对多关系,一个学生可以选修多门课程,一门课程也可以被多个学生选修。多对多关系的设计,创建一个中间表(中间对象),在中间对象创建两个关联对象的外键,对应两个关联对象主键。同时创建两个关联对象的共同字段(成绩)。共同字段随着关系的存在而存在,关系的消亡和消亡。

  

 

6.2 关系定制字段

 6.2 .1 什么是关系定制字段

   我们可以通过创建从某个对象到另一个对象的“关系定制字段”在对象间创建关联关系。关系字段是对象记录的一个定制字段,它包含一个指向另一个记录的链接。

1、查找关系字段

  创建一个将此对象链接到另一对象的关系。关系字段允许用户单击查找图标,以从弹出列表中选择值。另一对象是列表中值的源。例如,在学生对象添加一个指向班级记录的查找关系字段,学生对象的多条记录就会关联到一条班级记录。在成绩表对象添加一个指向学生记录的查找关系字段,多条成绩表记录就会关联到一条学生记录。

2、主—详细关系字段

  创建一个此对象(子级或"详细信息")与另一对象(父级或"主")之间的特殊父子关系类型,其中:

  • 所有详细信息记录的关系字段必填。
  • 详细信息记录的所有权和共享由主记录确定。
  • 当用户删除主记录时,将删除所有详细信息记录。
  • 您可以在主记录上创建累计汇总字段以汇总详细信息记录。

  关系字段允许用户单击查找图标,以从弹出列表中选择值。主对象是列表中值的源。

 

6.2 .2 创建关系定制字段

1、创建多对一关系

  例:创建招聘职位与招聘经理关系:招聘职位与招聘经理是多对一关系,在多表添加外键,即在职位对象添加查找关系字段。

  (1)按照新建字段向导,完成关系字段的创建。

 

  (2)字段创建完成后,在职位布局窗口,调整布局,在新建职位时,您将看到如下效果。

 

2、创建多对多关系

  例:创建职位与应聘者关系:职位与应聘者是多对多关系,需要创建一个中间表—职位申请表来创建两个对象间的关系。应聘者在提交应聘材料时,可以创建多个职位申请,一个职位可以被多个应聘者申请,在职位申请表添加职位和应聘者外键。如果还需要跟踪其他信息,比如说应聘者当前是否已经安排了这些职位中某一个的面试,该应聘者是否被录取或拒绝等,这时需要在职位申请表添加状态字段。

  (1)创建职位申请对象

  

  (2)创建字段

  

  这里创建关系使用主-详细关系是因为当应聘者或职位删除之后,与应聘者或职位相关的职位申请记录没有存在的必要,同时还可以统计申请职位的人数

  (3)调整应聘者布局,在相关列表处找到职位申请部分,添加创建日期和职位、状态字段

  

  点击应聘者选项卡,在应聘者窗口可以申请职位。

  

 

  申请2条职位。

   

 

  点击应聘者选项卡,在应聘者窗口可以看到如下效果: 

  

 

    (4)创建职位申请选项卡

  

  在职位申请窗口能看到刚才申请的2个职位。

      

 (5)关联操作

  在职位选项卡,编辑职位,改变其状态。

    

  再回到应聘者信息窗口,发现状态也已改变。

 

 

  (6)思考:如下效果

  调整职位布局,您将发现什么?

  是否可以将职位布局的“新建职位申请”按钮移除?

  是否可以按申请编号降序排列?

   

 

6.3 累计汇总字段

6.3 .1 什么是累计汇总字段

  在相关列表中显示字段的汇总值、最小值或最大值的只读字段,或在相关列表中列出的所有记录的记录数。只有主-详细关系的主对象才能创建累计汇总字段。比如,要统计学生所修的学分,可以在学生对象创建一个总学分字段,此字段类型为累计汇总,此字段的值从关联对象成绩表中筛选出来。如果要统计招聘的某一职位有多位应聘者申请,可以在职位对象创建一个申请人数字段,用于统计申请该职位的人数,同样该字段的值从关联对象职位申请中筛选出来。

6.3 .2 创建累计汇总字段

1、在职位对象创建申请人数字段。

2、创建完成后调整应聘者布局申请职位部分,添加申请人数字段,效果如下:

 

【总结】

1、关系数据库是由多张能互相联系的表格组成的数据库,即对象与对象之间的联系。对象与对象之间是通过主键和外键来建立联系的。当各个独立的对象建立了关系以后,就可以通过外键来搜索关联表的数据。

2、我们可以通过创建从某个对象到另一个对象的“关系定制字段”在对象间创建关联关系。关系字段是对象记录的一个定制字段,它包含一个指向另一个记录的链接。

【练习】

1、创建班级、学生、课程表、成绩表对象,并创建对象间的关联关系。

班级(班级编号,班级名称)

学生(学号,姓名,性别,班级编号)

课程表(课程编号,课程名,学分)

成绩表(学号,课程号,成绩)

2、如果需要查询学生的总学分,就如何做?

 

猜你喜欢

转载自www.cnblogs.com/drink186/p/11180573.html
0条评论
添加一条新回复