说到关系,那就不得不提两个东西:

1、E—R图,也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型
2、关系模式:是对关系的描述
    关系模式可以用五元组形式表示:R(U,D,Dom,F),其中R:表示关系名,U:表示属性集合,D表示属性域(来自那个域),Dom: 属性向域的映像集合,F:表示函数依赖。但是一般情况下,我们通常把关系模式表示为:R(U)或者R(A,B)(其中A、B代表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表里没有的班号,这就造成了数据的冗余,产生大量无用的数据。这时怎么处理???为了保证数据的完整性。有两个办法可以解决这个问题。第一:在软件中限制用户的输入,不让用户自己随意的输入,直接从现有的表里选择数据或者设置判断。第二:在数据库中设置规则、约束。
    虽然,这次在学生信息管理系统中我没有去实现和完善这块内容。但是,基本还是了解了这方面的知识了,期待机房中能用上这些
                            水平所限,博客纰漏之处,望斧正!感激不尽!


学生信息管理系统总结——student数据库中表关系分析的更多相关文章

  1. 基于数据库MySQL的简易学生信息管理系统

    通过这几天学习Mysql数据库,对其也有了基本的了解,为了加深印象,于是就写了一个最简易的学生信息管理系统. 一:基本要求 1.通过已知用户名和密码进行登录: 2.可以显示菜单: 3.可以随时插入学生 ...

  2. asp.net+sql数据库学生信息管理系统

    一款学生信息管理系统送给大家. 功能部分: 1.教师管理(添加,修改,删除,查看) 2.学生管理(添加,修改,删除,查看) 3.班级管理(添加,修改,删除,查看) 4.学生成绩管理(添加,修改,删除, ...

  3. 【Python3.6+Django2.0+Xadmin2.0系列教程之二】学生信息管理系统(入门篇)

    上一篇我们已经创建好了一个Xadmin的基础项目,现在我们将在此基础上构建一个同样很基础的学生信息管理系统. 一.创建模型 模型是表示我们的数据库表或集合类,并且其中所述类的每个属性是表或集合的字段, ...

  4. 【Python3.6+Django2.0+Xadmin2.0系列教程之三(入门篇-下)】学生信息管理系统

    上一篇我们已经初步的构建起了一个学生管理系统的模型,现在接着来继续完善它吧. 1.上传图片/文件等资源 有时候需要添加一些附件,例如,新生刚入学,大家相互之间还不熟悉,希望能通过照片来加深印象,并且方 ...

  5. Android(java)学习笔记195:学生信息管理系统案例(SQLite + ListView)

    1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...

  6. Android(java)学习笔记188:学生信息管理系统案例(SQLite + ListView)

    1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...

  7. Node.js小项目——学生信息管理系统

    这是迄今为止第一次接触后端的东西,是一个很小的项目,但是对于前端学习入门很好.我是先学了VUE框架再学的Node,学起来比较轻松,不过每个人都有自己的学习方法️ 一.项目描述 学生信息管理系统,可以实 ...

  8. 基于Spring MVC + Spring + MyBatis的【学生信息管理系统】

    资源下载:https://download.csdn.net/download/weixin_44893902/45603211 练习点设计: 模糊查询.删除.新增 一.语言和环境 实现语言:JAVA ...

  9. C++ 简单的学生信息管理系统

    // // main.cpp // 2013-7-17作业1 // // Created by 丁小未 on 13-7-17. // Copyright (c) 2013年 dingxiaowei. ...

随机推荐

  1. TCP超时重传时间的选择

    一---导读 TCP超时重传时间的选择是计算机网络中较复杂的问题之一,但幸好前辈们都把路铺好了,我们只需要学习并且遵循这些规则,有能力的话去进一步改正. 二---必知的一些专业术语 A--RTT( r ...

  2. String被final修饰

    源码:

  3. hadoop集群中zkfc的作用和工作过程

    一. 简单了解NameNode的ZKFC机制 NameNode的HA可以个人认为简单分为共享editLog机制和ZKFC对NameNode状态的控制 一般导致NameNode切换的原因 ZKFC的作用 ...

  4. DAS、SAN和NAS三种服务器存储方式 (转)

    转 :https://blog.csdn.net/fgf00/article/details/52592651    2016年09月20日 09:04:00 凌_风 一.存储的分类根据服务器类型分为 ...

  5. 阿里云centos7[linux]安装nginx

    标题 说明 服务器版本 Centos7 x64 nginx版本 1.19.6 作者 walton 一.准备 创建安装包目录并进入 mkdir /usr/dev/nginx cd /usr/dev/ng ...

  6. Java基础--接口回调(接口 对象名 = new 类名)理解

    接口 对象名1 = new 类名和类名 对象名2 = new 类名的区别是什么? 实例 /** *Person.java 接口 */ public interface Person { void in ...

  7. 入门Kubernetes -基础概念

    一.Kubernetes概述 Kubernetes ,又称为 k8s(首字母为 k.首字母与尾字母之间有 8 个字符.尾字母为 s,所以简称 k8s)或者简称为 "kube" ,是 ...

  8. MyBatis中id回填的两种方式

    在一种场景下需要刚刚插入数据的ID,如果数据少可以先看数据库,记下ID,但数据很多,假设一万个用户并发,每个用户都插入自己的ID,就很难记下来. 下面给定一个场景: 1 User user = new ...

  9. TCP/IP五层模型-应用层-DNS协议

    ​1.定义:域名解析协议,把域名解析成对应的IP地址. 2.分类:①迭代解析:DNS所在服务器若没有可以响应的结果,会向客户机提供其他能够解析查询请求的DNS服务器地址,当客户机发送查询请求时,DNS ...

  10. 温故而知新--day2

    温故而知新--day2 类 类与对象 类是一个抽象的概念,是指对现实生活中一类具有共同特征的事物的抽象.其实列化后称为对象.类里面由类属性组成,类属性可以分为数据属性和函数属性(函数属性又称为类方法) ...