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

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. MAC与ARP缓存中毒介绍

    ARP 协议 用于地址解析,请求MAC地址. arp -a 或者 -n 查看ARP缓存表 ls(ARP) 查看scapy里的协议字段 ARP缓存中毒原理 ARP收到ARP请求报文,会将发送方的mac地 ...

  2. 项目实战--Stream流实现字符串拼接

    需求说明 概述:前端页面查询列表中有个"二级类目"的多选下拉框,用户选择二级类目后,需要从后台数据库查询条件内的数据.  目标:将前端页面传入后端的字符串例如"女性护理, ...

  3. 打算写一些Netty的文章了,先聊聊为什么要学习Netty

    微信搜索[阿丸笔记],关注Java/MySQL/中间件各系列原创实战笔记,干货满满. 2021年了,终于开始系统性总结Netty相关的东西了. 这会是Netty系列的第一篇,我想先聊聊 "为 ...

  4. epoll的陷阱实践

    在使用epoll的时候,我们上篇文章epoll的陷阱大体介绍了epoll中会有哪些问题.这篇文章我们就针对必须要了解,也是绕不过去的陷阱进行实验,看看现象是什么,并且如何编写才能达到我们想要的效果. ...

  5. java之环境配置

    前言:本人环境 Windows10(64位),jdk1.8.131 开发工具: IDEA 第一步: 获取JDK 方法一:推荐官网(此方法需要oracle账号,可以免费注册)   方法二:百度网盘(需要 ...

  6. Java开发手册之编程规约

    时隔一年多,再次开始更新博客,各位粉丝们久等了.大家是不是以为我像大多数开发者一样三分钟热度,坚持了一年半载就放弃了,其实不是.在过去的一年时间我学习了<Java编程思想>这本书,因为都是 ...

  7. 【Oracle】Oracle SQL的优化软件

    对于SQL开发人员和DBA来说,根据业务需求写出一条正确的SQL很容易.但是SQL的执行性能怎么样呢?能优化一下跑得更快吗?如果不是资深  DBA,估计很多人都没有信心. 幸运的是,自动化优化工具可以 ...

  8. 基础Markdown语法

    Markdown语法 1.标题 //标题语法 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 一级标题 二级标题 三级标题 四级标题 ...

  9. kubernets之pod简介

    一  k8s集群里面的最小单位是pod 1.1 一个较为简单的pod的配置文件 apiverson: api的版本号 kind: 资源的种类 metadata: pod的种类等相关信息 spec: p ...

  10. 洛谷P1198 [JSOI2008]最大数(线段树/单调栈)

    题目链接: https://www.luogu.org/problemnew/show/P1198 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询 ...