位。( 1 分)
在大型系统的开发中,常常不是采用一种开发方法,而是采用多种方法的组合。 ( 2 分)
3 、信息系统开发的技术可行性分析主要从哪几个方面开展? 答案要点: 技术可行性分析 ①现有技术的估价
国内外有关技术的发展水平及国家有关技术政策 对目前可利用的技术进行评价( 2 分) ②使用现有技术进行系统开发的可行性( 1 分) ③对技术发展可能产生的影响进行预测( 1 分) ④关键技术人员的数量和水平估价( 1 分)
4. 简述系统详细设计的主要内容。 答案要点:
系统平台设计( 1 分) 代码设计( 0.5 分)
对话(人机界面)设计( 0.5 分) 输入 / 输出设计( 1 分) 数据库设计( 1 分)
模块内部的算法设计(处理流程设计)( 1 分) 五、应用题 ( 每小题 10 分 , 本题共 30 分 )
1 、 参考答案:(每个处理、数据存储、数据流各 1 分,外部项 1 分)
2 、 参考答案:(条件 4 分,属性 6 分)
3 、 参考答案:
第一范式( 1NF ):数据库表中的字段都是单一属性的,不可再分。( 1 分)
第二范式( 2NF ):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。( 1 分)
第三范式( 3NF ):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。( 1 分)
这个数据库表不满足第二范式,因为存在如下决定关系: ( 课程名称 ) → ( 学分 ) ( 学号 ) → ( 姓名 , 年龄 )
即存在组合关键字中的字段决定非关键字的情况。 由于不符合 2NF ,这个选课关系表会存在如下问题: (1) 数据冗余:
同一门课程由 n 个学生选修, \学分 \就重复 n-1 次;同一个学生选修了 m 门课程,姓名和年龄就重复了 m-1 次。( 1 分) (2) 更新异常:
若调整了某门课程的学分,数据表中所有行的 \学分 \值都要更新,否则会出现同一门课程学分不同的情况。( 1 分) (3) 插入异常:
假设要开设一门新的课程,暂时还没有人选修。这样,由于还没有 \学号 \关键字,课程名称和学分也无法记录入数据库。( 1 分) (4) 删除异常:
假设一批学生已经完成课程的选修,这些选修记录就应该从数据库表中删除。但是,与此同时,课
程名称和学分信息也被删除了。很显然,这也会导致插入异常。 ( 1 分) 把选课关系表 SelectCourse 改为如下三个表: 学生: Student( 学号 , 姓名 , 年龄 ) ;( 1 分) 课程: Course( 课程名称 , 学分 ) ;( 1 分)
选课关系: SelectCourse( 学号 , 课程名称 , 成绩 ) 。( 1 分)
这样的数据库表是符合第二范式的,消除了数据冗余、更新异常、插入异常和删除异常。