• 学生信息管理系统总结——student数据库中表关系分析


        说到关系,那就不得不提两个东西:
    1、E—R图,也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型
    2、关系模式:是对关系的描述
        关系模式可以用五元组形式表示:RUDDomF),其中R:表示关系名,U:表示属性集合,D表示属性域(来自那个域),Dom: 属性向域的映像集合,F:表示函数依赖。但是一般情况下,我们通常把关系模式表示为:RU)或者RAB)(其中AB代表U中的属性)比如说,关系模式class(class_No,classRoom_No,director,grade),班级的关系模式中:班级号、教室号、班主任、年级都是class的属性。
        那么,我们的学生信息管理系统里面要怎么去画这个E-R图呢?
    首先:我们的student数据库里面有6张表,分别是,User、class、course、gradecourse、student、result。
     然后、逐一分析一下:
        1、student、result、course表。
        
    转换成关系模式,就是
        R_student(姓名、性别、学号、入学日期、班级)
        R_course (课程编号课程、类型、描述)
        R_result (学号课程、result)
    黄色表示主键、斜体加粗表示外键。

    2、class、student表:
        
    转换成关系模式就是:
        R_student(姓名、性别、学号、入学日期、班号
        R_class (班号、年级、教室、班主任)
    班号在student表中是外键,在class表中是主键。

    3、course、class、gradecourse表。
        

        转换成关系模式就是:
        R_class(班号、年级、班主任、教室)
        R_course(课程名课程编号、类型、描述)
        R_gradecourse (年级课程名
    通过class表得到年级、通过course表得到课程名组合成gradecourse表。
        
    到这,基本上六张表的关系就差不多了。之所以分析各张表的相互关系,是因为在敲学生信息管理系统的过程中,有一个疑问一直困扰着我:在修改一张表的数据时,他会涉及到其他表中的数据,这个时候我们需要保持数据的一致性!!!在这里主要是指:参照完整性!
            简单的来说,参照完整性就是指表间主外键关系。
            参照完整性属于表间规则。对于永久关系的相关表,在更新、插入或删除记录时,如果只改其一不改其二,就会影响数据的完整性:例如修改父表中关键字值后,子表关键字值未做相应改变;删除父表的某记录后,子表的相应记录未删除,致使这些记录成为孤立记录;对于子表插入的记录,父表中没有相应关键字值的记录;等等。对于这些设计表间数据的完整性,统称为参照完整性。

    参照完整性则是相关联的两个表之间的约束,具体的说,就是从表中每条记录外键的值必须是主表中存在的,因此,如果在两个表之间建立了关联关系,则对一个关系进行的操作要影响到另一个表中的记录。

        如果实施了参照完整性,那么当主表中没有相关记录时,就不能将记录添加到相关表中。也不能在相关表中存在匹配的记录时删除主表中的记录,更不能在相关表中有相关记录时,更改主表中的主键值。也就是说,实施了参照完整性后,对表中主键字段进行操作时系统会自动地检查主键字段,看看该字段是否被添加、修改、删除了。如果对主键的修改违背了参照完整性的要求,那么系统就会自动强制执行参照完整性

         比如:学籍表中,我们发现它涉及到了班号、如果此时用户输入一个class表里没有的班号,这就造成了数据的冗余,产生大量无用的数据。这时怎么处理???为了保证数据的完整性。有两个办法可以解决这个问题。第一:在软件中限制用户的输入,不让用户自己随意的输入,直接从现有的表里选择数据或者设置判断。第二:在数据库中设置规则、约束。
        虽然,这次在学生信息管理系统中我没有去实现和完善这块内容。但是,基本还是了解了这方面的知识了,期待机房中能用上这些
                                水平所限,博客纰漏之处,望斧正!感激不尽!

  • 相关阅读:
    oracle 函数WMSYS.WM_CONCAT()的用法(行转列) 老猫
    PL/SQL 数独 九宫图 老猫
    oracle10g rman backup and recover 老猫
    Oracle SQL的优化 老猫
    Oracle数据库中的字符处理技巧总结 老猫
    WITH分析函数 老猫
    30套JSP网站源代码合集
    Java获取系统信息(cpu,内存,硬盘,进程等)的相关方法
    [原]Web Service学习
    常用Web Service汇总(天气预报、时刻表等)
  • 原文地址:https://www.cnblogs.com/lwb6688/p/4170945.html
Copyright © 2020-2023  润新知