学生选课系统数据库设计.docx
《学生选课系统数据库设计.docx》由会员分享,可在线阅读,更多相关《学生选课系统数据库设计.docx(17页珍藏版)》请在冰豆网上搜索。
学生选课系统数据库设计
成绩:
大作业
课程名称:
数据库系统概论
实践名称:
学生选课系统数据库设计
姓名:
专业:
计算机科学与技术
班级:
学号:
计算机科学与技术学院
2016年12月09日
实践项目名称:
学生选课系统数据库设计
一、实践目的
1.理解并掌握数据库设计的概念、方法和步骤。
2.了解需求分析的内容。
3.重点运用ER模型进行概念设计。
4.将ER模型转换为关系模型。
5.全面掌握SQL命令。
6.掌握安全性的概念,创建登录、用户、角色,授予相应的权限。
7.掌握视图、存储过程、触发器等的创建与应用。
二、实践内容
1.构思一个常见数据库系统,设计该数据库。
(学生选课系统数据库)
2.对所要设计数据的数据库进行全方位的需求分析。
3.对所要设计数据的数据库进行概念结构设计。
4.对所要设计数据的数据库进行逻辑结构设计。
5.对所要设计数据的数据库进行物理结构设计。
6.通过之前的需求分析、概念结构设计、逻辑结构设计、物理结构设计创建数据库。
7.导入小批量的数据对新创建的数据库进行试运行,同时对一些参数进行修改,不断优化数据库,使数据库逐渐趋向于稳定运行状态。
8.正式运行数据库,对数据库进行日常维护。
三、实践用设备仪器及材料
1.《数据库系统概论》王珊,萨师煊编著
2.设备环境:
计算机、Windows7、SQL Server 2000。
3.网上其他参考资料。
四、实践操作步骤
1.确定设计数据库种类
考虑到作为学生,我们最熟悉的也经常使用到的数据库只有教学系统中的一些数据库了,所以经过小组讨论,我们小组决定设计学生选课系统。
2.什么是数据库设计以及为什么要设计数据库
2.1什么是数据库设计
数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
目标:
为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。
2.2为什么要设计数据库
随着社会的发展,信息技术的不断进步,人们在日常生活中要处理的数据的规模和复杂程度都日益剧增,所以如果还是用以前的人工模式和文件系统模式来处理今天的数据就已经远远不能满足人们对效率和准确性的要求了。
而数据库系统就恰恰能帮助人们解决这些问题,同时使用数据库还可以带来许多好处:
如减少了数据的冗余度,从而大大地节省了数据的存储空间;实现数据资源的充分共享等等。
此外,数据库技术还为用户提供了非常简便的使用手段使用户易于编写有关数据库应用程序。
数据库在我国正得到愈来愈广泛的应用。
但是并非每一个数据库都能被人们很好的应用,数据库也有好坏之分,下面列举了一些好的数据库的优点和一些糟糕的数据库的缺点。
良好的数据库设计能够:
(1)节省数据的存储空间
(2)能够保证数据的完整性
(3)方便进行数据库应用系统的开发
糟糕的数据库设计:
(1)数据冗余、存储空间浪费
(2)内存空间浪费
(3)数据更新和插入的异常
所以在一个庞大复杂的数据库被创建之前一定要通过精心的设计才能投入运行,这样才能充分发挥出数据库的优势。
3.数据库设计的方法
现实世界的复杂性导致了数据库设计的复杂性。
只有以科学的数据库设计理论为基础,在具体的设计原则的指导下,才能保证数据库系统的设计质量,减少系统运行后的维护代价。
目前常用的各种数据库设计方法都属于规范设计法,即都是运用软件工程的思想与方法,根据数据库设计的特点,提出了各种设计准则与设计规程。
这种工程化的规范设计方法也是在目前技术条件下设计数据库的最实用的方法。
逻辑数据库设计是根据用户要求和特定数据库管理系统的具体特点,以数据库设计理论为依据,设计数据库的全局逻辑结构和每个用户的局部逻辑结构。
物理数据库设计是在逻辑结构确定之后,设计数据库的存储结构及其他实现细节。
但各种设计方法在设计步骤上的划分存在差异,各有自已的特点与局限。
典型的规范设计法有以下几种:
(1)新奥尔良(NewOrleans)方法
(2)基于E-R模型的数据库设计方法
(3)3NF(第三范式)的设计方法
(4)面向对象的数据库设计方法
(5)统一建模语言(UnifiedModelLanguage,UML)方法
4.需求分析阶段
4.1什么是需求分析
需求分析这一阶段是计算机人员(系统分析员)和用户共同收集数据库所需要的信息内容和用户对处理的要求,加以规格化和分析,以书面形式确定下来,作为以后验证系统的依据。
在分析用户要求时,要确保用户目标的一致性。
信息需求:
指目标系统涉及的所有实体、属性、以及实体间的联系等,包括信息的内容和性质,以及由信息需求导出的数据需求。
处理需求:
指为得到需要的信息而对数据进行加工处理的要求,包括处理描述,发生的频度、响应时间以及安全保密要求等。
进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。
需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。
作为地基的需求分析是否做的充分于准确,决定了在其上构建数据库大厦的速度与质量。
需求分析做得不好,甚至会导致整个数据库设计返工重做。
4.2基本任务
通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,在此基础上确定新系统的功能。
新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。
4.3重点内容
需求分析的重点是调查、收集和分析用户数据管理中的信息需求、处理需求、安全性与完整性要求。
信息需求是指用户需要从数据库中获得的信息的内容和性质。
由用户的信息需求可以导出数据需求,即在数据库中应该存储哪些数据。
处理需求是指用户要求完成什么处理功能,对某种处理要求的响应时间,处理方式指是联机处理还是批处理等。
明确用户的处理需求,将有利于后期应用程序模块的设计。
4.4主要方法
(1)调查清楚用户的实际需求并进行初步分析
(2)与用户达成共识
(3)进一步分析与表达这些需求
4.5调查方法
(1)跟班作业
(2)开调查会
(3)请专人介绍
(4)询问
(5)设计调查表请用户填写
(6)查阅记录
4.6数据字典
数据字典是进行详细的数据收集和数据分析获得的主要成果。
它是关于数据库中数据的描述,即元数据,而不是数据本身。
数据字典是在需求分析阶段建立,在数据设计过程中不断修改、充实、完善的。
它在数据库设计中占有很重要的地位。
数据字典通常包括数据项、数据结构、数据流、数据存储和数据处理过程几部分。
其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。
数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
所得到的数据字典举例:
学号数据项
学生数据结构
成绩数据流
成绩单数据存储
考试安排处理过程
4.6需求分析结果
通过需求分析本数据库需要设计四大模块,分别是:
(1)学生选课模块,允许学生修改1个人信息,浏览基本的课程;并实现主要的选课功能,包括填写选课信息、查看已选课程、修改选课等。
(2)教师开课模块,允许教师申请教课,同时教师可以修改个人信息、浏览基本课程以及查看学生的选课情况等。
(3)管理员管理模块,主要包括创建课程的指定任课老师、设定课程人数、统计学生选课信息、发通知等等。
(4)通用功能模块,即用户登录、密码修改等功能的实现。
功能需求图如下:
5.概念模型设计阶段
概念模型设计就是把用户的信息要求统一到一个整体逻辑结构中,此结构能表达用户的要求,且独立于任何DBMS软件和硬件。
概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
5.1特点
概念模型设计的特点主要有以下几点:
(1)易于更改
(2)易于理解
(3)能真实、充分地反映现实世界
(4)易于向关系、网状、层次等各种数据模型转换
5.2设计方法
采用自下而上的设计方法,即先确定局部的概念模式,再由局部依次向上扩展,形成全局概念模式,如下图所示。
5.3设计步骤
第1步:
抽象数据并设计局部视图。
第2步:
集成局部视图,得到全局概念结构。
5.4数据抽象(E-R图)
学生E-R图
教师E-R图
学院E-R图
课程类E-R图
课程E-R图
5.4全局E-R图
6.逻辑模型设计阶段
逻辑结构设计分为两部分,即数据库结构设计和应用程序的设计。
从逻辑设计导出的数据库结构是DBMS能接受的数据库定义,这种结构有时也称为逻辑数据库结构。
逻辑结构设计是将概念结构转换为某个DBMS所支持数据模型,并对其进行优化。
6.1步骤
(1)将概念结构转化为一般的关系、网状、层次模型。
(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换。
(3)对数据模型进行优化。
6.2关系模式
逻辑模型设计得到的关系模式表如下:
学院{学院名,课程管理员}
学生{学号,姓名,年级,专业}
教师{编号,姓名,性别,所属学院,权限}
学生可选课程{课程号,学号,是否已选,成绩}
课程类{类号,课名,开设学院,学分,是否必选,可否退选,最终考核形式}
课程{课程号,类号,上课时间,注册人数,是否开课,任课教师,限选条件}
Department{D_name,Manager}
Student{Stu_id,Stu_Name,Grade,Department}
Teacher{T_id,S_name,Sex,Department,Right}
AssCour{C_id,Stu_id,Selected,Score}
Subject{Sub_id,Sub_name,Department,Credit,RC,GU,FT}
Course{C_id,Sub_name,Time,Room,Subscribers,Discerned,Teacher,Limitation}
注:
上表中蓝色字体为其关系的主码。
6.3视图基本表
学生视图
基本表
课程类{类号,课名,开设学院,学分,是否必选,可否退选,最终考核形式}
课程{课程号,类号,上课时间,上课地点,注册人数,是否开课,任课教师,限选条件}
教师视图
基本表
课程类{类号,类号,开设学院,学分,是否必选,可否退选,最终考核形式}
课程{课程号,课名,上课时间,上课地点,注册人数,是否开课,任课教师,限选条件}
学院视图
7.物理模型设计阶段
物理设计也分为两部分:
物理数据库结构的选择和逻辑设计中程序模块说明的精确化。
这一阶段的工作成果是一个完整的能实现的数据库结构。
数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
7.1步骤
(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构。
(2)对物理结构进行评价,评价的重点是时间和空间效率。
7.2存取方法
DBMS常用存取方法有:
(1)索引方法,目前主要是B+树索引方法,经典存取方法,使用最普遍
(2)HASH方法
(3)聚簇(Cluster)方法
本数据库系统将采用聚簇(Cluster)方法,其关系模式(表)如下:
课程类{类号,课名,开设学院,学分,是否必选,可否退选,最终考核形式}
学生可选课程{课程号,学号,是否已选,成绩}
学生{学号,姓名,年级,专业}
课程{课程号,类号,上课时间,上课地点,注册人数,是否开课,任课教师,限选条件}
8.数据库的实施与运行
8.1实施
根据物理设计的结果产生一个具体的数据库和它的应用程序,并把原始数据装入数据库。
实施阶段主要有三项工作:
(1)建立实际数据库结构;
(2)装入试验数据对应用程序进行调试;
(3)装入实据数据。
在数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
8.2试运行主要工作
(1)功能测试
实际运行数据库应用程序,执行对数据库的各种操作,测试应用程序的功能是否满足设计要求,如果不满足,对应用程序部分则要修改、调整,直到达到设计要求阶段,修改逻辑结构。
(2)性能测试
测量系统的性能指标,分析是否达到设计目标。
如果测试的结果与设计目标不符,则要返回物理设计阶段,重新调整物理结构,修改系统参数,某些情况下甚至要返回逻辑设计阶段,修改逻辑结构。
8.3正式运行与维护
数据库系统的正式运行,标志着数据库设计与应用开发工作的结束和维护阶段的开始。
运行和维护阶段的主要任务有四项:
(1)维护数据库的安全性与完整性;
(2)监测并改善数据库运行性能;
(3)根据用户要求对数据库现有功能进行扩充;
(4)及时改正运行中发现的系统错误。
对数据库经常性的维护工作包括:
(1)数据库的转储和恢复
(2)数据库的安全性、完整性控制
(3)数据库性能的监督、分析和改进
(4)数据库的重组织和重构造
五、实践总结
这次的数据库实践作业,我们做的是“学生选课系统数据库”,通过几个星期对其各阶段任务的分析实验操作(确定项目、需求分析、设计等),使我们对数据库设计有了更深层次的了解,同时也学到了很多东西。
(1)在这次实验中,通过对学生成绩数据库的设计,我们深刻认识了数据信息、数据处理、数据库、数据库管理及系统重要概念,也学习到数据库 技术,理解和掌握管理信息系统的相关内容,成功实现利用理论对数据库进行处理、分析和理解技术。
(2)在设计数据库管理中,所涉及的内容非常之多,需要每个成员都必须保持极大地耐心和细心,考虑数据库模型涉及要素要非常全面,数据库中的大量数据必须按严格的数据模型来组织,数据库中的数据是高度结构化的,它不仅是数据本身而且反映数据之间的关系。
(3)我们认为通过这次实验,我们能熟悉运用数据库管理来管理我们身边的一些数据,提高我们工作效率。