MySQL(三) 为教学管理系统的学生成绩功能设计一个数据库 作业思路

数据库和Excel的区别

Excel

作为数据的展示工具,附带有一定的数据处理能力。本身就是应用工具,直接面向用户提供应用,既可以少量存储数据,又可以处理数据。里面的数据也是较为独立的,一个excel就是要反应的一切数据。

姓名 学号 python mysql linux java
小明 010201 80 60 89 67
小红 010202 90 70 89 89
欧阳 010202 85 90 89 79

数据库(Mysql)

数据是存储工具,是体系化应用的一环。数据库更多是应用系统的底层,本身不具有面向大众的应用能力,而是由应用系统提供面向公众的应用能力,比如我们题目中说到的学生信息管理系统。

数据库用处和对实际设计思路的影响

业务分析

在拿到需求以后,不应该立刻进行代码级别的操作。要进行业务上的梳理。比如,我们所作的学生管理系统里面的学生成绩部分,它所涉及的到底有哪些东西?不明了则思路混乱。

对象分析

不同专业可能会设有“相同”的课程;那么课程为什么要归集在专业之下,而不是在整个学校层级里面?

  1. 归集在不同层级在数据表层面有什么不同?

    1. 归属于学校
    课程ID 课程名称 总学分 拟定开设学期
    a001 Linux 30 0101
    1. 归属于专业
    课程ID 课程名称 总学分 拟定开设学期 专业代码
    a001 Linux 10 0102 yx001
    a002 Linux 80 0101 jsj001

    可以看到,在数据表层级,如果需要将课程归集在专业之下,需要至少多一个字段(专业代码)表明课程专业之间的相关关系。

  2. 归属于不同层级对于实际业务有什么影响?
    在这里,我们的“业务”可以理解为“教学管理”。就像是归属于专业时的表中所列出的。当我们设计数据库时,如果把课程归属于学校而非专业,那么不同专业就无法针对看似相同的课程,做出不同的规划。无法满足实际业务需求,也会出现实际业务因为应用系统而卡脖子的现象。
    比如医学专业,因为涉及到一些数据模拟,可能也需要学习一定的Linux操作,但仅仅需要在安装、操作层面即可。而计算机专业,则需要借助于Linux的学习,更彻底的了解计算机操作系统设计。

    关于实际业务因为应用系统而卡脖子的现象,比如如果数据库设计的,仅能对一个学生进行一个专业分配,那么这个学生想实现修双专业甚至三专业,则是不可能的。当然他实际可以学,但是没学分、没证书。

数据结构设计

学院
专业
课程
学生
成绩

问题一 为什么有所谓的“数据有效性标识”?

问题二 成绩表的设计,和Excel式的表有什么不同,为什么?

问题三 在应用程序的角度考虑,就学生状态编码这个字段而言,有什么未解决的问题?

问题一 为什么有所谓的“数据有效性标识”? 解释

如果在已经积累下数据的情况下,我想删除某门课程,应该怎么办?比如学校面向农业信息化,设置了农作物病虫害防治这门课程,经过两届的培养后,发现计算机专业并不需要这门课程,要删掉。如果直接删除,那两届学生的相关专业课成绩就不可查了。

问题二 成绩表的设计,和Excel式的表有什么不同,为什么? 解释

Excel形式的成绩表

姓名 学号 python mysql linux java
小明 010201 80 60 89 67
小红 010202 90 70 89 89
欧阳 010202 85 90 89 79

数据库中的表结构
“单表不可读”

学年 学期 课程编码 学生编码 成绩 成绩日期 考试类型 数据有效性标识
01 01 a001 010201 40 2021-06-20 01 Y
01 01 a001 010201 60 2021-09-20 02 Y

数据库中,表的设计是为了方便数据的存储与管理,而不是面向单纯的数据展示。所以,很多情况下,单一的某个数据表,用户是很难读懂的。
具体到这里:

  1. excel表特点:
    1. 课程字段化,成绩在横向(字段)上占据了很多空间
    2. 除成绩外几乎无额外的信息,以及大量信息都直观可读。
  2. 数据表的特点
    1. 虽然是成绩表,但成绩,在\color{red}{横向(字段->结构)}占据的空间很小,只有一个字段,其他的字段看似都是无关的字段。
    2. 里面很多字段都是代码性质的,不是直接可读的信息。

为什么?

  1. excel
    面向的是单次的成绩展示,给我们的更多的是某次考试的情况的汇总,更像是学生管理系统中的某个界面,需要让用户直观、快速的了解信息。
  2. 数据表
    1. 成绩的纵向排列:我们需要将\color{red}{“更多类型”} 的数据,放入同一个表中;而且还要保障表是在数据级别增加,而不是数据结构层面的改变。比如我们\color{red}{可能} 需要放入Linux成绩,也\color{red}{可能}需要放入python成绩,还\color{red}{可能}需要放入农作物病虫害防治的成绩;我们需要让同一张表,在数据变动而非结构变动的情况下,应对这些可能性。
    2. 不可读性:并不是为了不可读,只是在应对信息变动。系统可以保证内建的代码不变动,但无法保证代码对应的名称不变动。就像你可以改名,但无法改身份证号。

问题三 在应用程序的角度考虑,就学生状态编码这个字段而言,有什么未解决的问题? 解释

在学生信息表中,有个学生状态编码这个字段,首先从业务层面考虑,这个字段要解决什么问题?
比如有的学生毕业了,有的在读。这个代码,就是为了解决这个问题。

  1. 为什么用代码,而不是直接用毕业在读这种指定的词汇?
    这样当然时为了防止名称变更;但更重点是提供一种更\color{red}{灵活但可控的}应用方式。
    想象一下,当一个学生提前毕业了,系统管理员应该如何更改其状态?(当然实际应用系统肯定会有大量自动化的条件触发操作,我们只考虑手工) ,他需要在这个学生的信息中,\color{red}{选择}选择某个状态,比如毕业,然后点击确定按钮进行更新。
    为什么采用“选择”的方式,而不是直接让管理员输入上毕业这两个字?因为输入的不可控,可能有人输入的是毕业,有人输入的是笔业
  2. 既然是选择,就需要有个列表,这个列表在哪里?
    当我们整套系统,第一次使用时,很明显学生基本信息表中是空的,这就需要有一个既有的表,提供我们需要的学生状态列表,这种类型的表,我们通常叫做字典表,提供一种名称和代码的对应关系,数据可维护且相对稳定。比如我又想起来,需要有个状态叫肄业,就可以由\color{red}{专人、单次}进行这个状态的添加,后续其他人只需要在学生基本信息中,选择这个新建的状态直接更新到对应的学生上就可以。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,843评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,538评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,187评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,264评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,289评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,231评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,116评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,945评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,367评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,581评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,754评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,458评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,068评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,692评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,842评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,797评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,654评论 2 354

推荐阅读更多精彩内容