精华内容
下载资源
问答
  • 学生宿舍管理系统数据库设计案例 一个完整的数据库设计案例。对设计过程有详细的分析过程。
  • 数据库设计概述 数据库设计的任务和特点 数据库shi 数据库应用系统设计 数据库文档设计 数据库应用程序设计案例

    数据库设计概述

    数据库设计的任务和特点

    数据库设计的基本方法

    数据库开发设计的步骤

    数据库应用系统设计

    系统需求分析

    概念结构分析

    逻辑结构设计

    数据库行为设计

    数据库实施

    数据库运行和维护

    数据库文档设计

    数据库应用程序设计案例

    下面设计基于CSDN博主若如初见kk

    学生成绩管理系统数据库设计

    目录

    学生成绩管理系统数据库设计... 1

    1. 概述... 1

    1.1 项目背景... 1

    1.2 需求分析... 1

    需求分析... 2

    概念结构设计... 2

    逻辑结构设计... 2

    物理设计和实施... 3

    数据操作要求及实现... 3

    设计总结... 3

    主要参考文献。... 3

     

     

    1. 概述

    1.1 项目背景

    为了深刻的理解数据库,使用一种规范设计方法新奥尔良法,它将数据库设计分为4个阶段:需求分析、概念设计、逻辑设计和物理设计,使用E-R模型来搭建概念设计,设计一个学生成绩信息管理数据库。

    1.2 需求分析

    1.2.1 信息需求

    对学校而言,学生成绩管理是管理工作中重要的一环,但是高校学生的成绩管理工作量大、繁杂,人工处理非常困难。因此,借助于强大计算机的处理能力,能够把人从繁重的成绩管理工作中解脱出来,并且更加准确、安全、清晰的管理环境。同时也方便管理学生的成绩,以及方便了学生的查看数据,确认数据,构建一个学生成绩管理数据库既方便了学校管理学生成绩以方便学生查改,因此是很有必要的。

    1.2.2 功能需求

    能够进行数据库的数据定义DDL、数据操纵DML、数据控制DCL等处理功能。具体功能应包括:可提供课程安排、课程成绩数据的添加、插入、删除、更新、查询,学生及教职工基本信息查询的功能。管理员(1).添加教师名单;(2).查询教师名单;(3).修改教师信息;(4).删除教师名单;(5).添加学生名单;(6).查询学生名单;(7).修改学生信息;(8).删除学生名单;(9).统计生源地信息;(10).修改密码;教师(1).查看个人信息;(2).查看每门课程平均成绩统计;(3).输入学生成绩, 自动生成该学生已修总学分;(4).查看任课信息;(5).查看学生成绩名次;(6).修改密码;.学生(1).查看个人信息;(2).查看自己的课表;(3).查看不同班级的开课情况;(4).查询考试成绩;(5).修改密码;

    1.2.3 安全性与完整性要求

    安全性是保护学生成绩数据不受外界干扰,对于学生成绩管理系统数据库来讲,由于其主要数据是学生成绩,只能由本人以及学校及教务处知道数据,因此做好数据安全性是重中之重。完整性是要求所有在校学生的信息都要录入其中,并且要设计好个别情况。

    数据流图:

    1.2.4数据字典

    数据库中包含4个表,即学生(students)、老师(teachers)、课程(courses)、成绩(scores)。

    Students表:

    学生(学号、姓名、班级、性别、专业、出生日期、学分);

    Teacher表:

    老师(教师编号、姓名、学院);

    Course表

    课程(课程编号、教师编号、课程名称、课程学分);

    Score表

    成绩(学号、课程编号、分数);

    数据流名:忘记密码

    来源:判断核对

    去向:用户信息表

    组成:{用户名+用户类型+用户信息+新密码}

    备注:当用户忘记密码时可以通过验证信息修改掉旧密码。

    数据流名:成绩单

    来源:教师

    去向:学生

    组成:{学号+教师号+课程号+分数+学年}

    备注:教师录入成绩后生成成绩单,学生可查询。

    数据处理名:管理员查询

    输入:查询条件

    处理逻辑:根据输入的条件判断是否有对应记录,并提示结果

    输出:信息显示

    备注:用于查询和显示需要的信息

    数据处理名:管理员修改

    输入:要修改的信息

    处理逻辑:判断输入的记录的主码是否存在,给出提示显示结果

    输出:提示结果

    备注:用于管理员修改需要的对应信息

    数据处理名:管理员删除

    输入:需要删除的记录的主码

    处理逻辑:判断是否存在,给出提示

    输出:提示结果

    备注:用于管理员删除不需要的对应记录

    数据处理名:修改密码

    输入:用户名、旧密码、新密码

    处理逻辑:判断输入的用户名旧密码是否有对应记录,并给出提示

    输出:提示结果

    备注:用于修改用户密码

    数据处理名:成绩录入

    输入:学号、教师号、课程号、成绩、学年

    处理逻辑:判断输入的学号、教师号、课程号是否有对应记录,并给出提示输出:提示结果

    备注:用于教师录入学生成绩

    数据存储:学生成绩情况

    说明:存放的是每个学生的成绩情况

    输入数据流:各门功课的成绩情况

    流出数据流:学生的成绩单

    数据量:由学生的人数决定

    存储方式:按学号先后顺序排列。

    需求分析

    {

    信息要求

    处理要求(功能需求)

    安全性和完整性要求

    数据字典

    }

    概念结构设计

    概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。

    根据学生成绩信息管理数据库设计需求抽象出学生、教师、课程、成绩四个实体,对四个实体做简化处理,默认一门课程仅被一位老师讲授。因简化后关系结构比较简单,故省略了局部E-R图。对4个实体之间的关系进行分析如下:

    一位学生会被多位老师教导,一位老师会教导多位学生,所有学生与教师之间是多对多(m:n)的关系;

    一位学生可能会选修多门课程,一门课程会被多位学生选修,所以学生与课程之间是多对多(m:n)的关系;

    一位学生会有多项成绩(具体指某学生一门课程的分数),一项成绩仅被一位学生拥有,所以学生与成绩是一对多(1:n)的关系;

    一位教师会讲授多门课程,一门课程会被一位教师讲授,所以教师与课程的关系是一对多(1:n)的关系;

    一门课程拥有多项成绩,一项成绩仅被一门课程拥有,所以课程与成绩的关系是一对多(1:n)的关系;

    2.1 抽象出系统实体(及E-R图)

    学生(学号、姓名、班级、性别、专业、出生日期、学分);

    老师(教师编号、姓名、学院);

     

    课程(课程编号、教师编号、课程名称、课程学分)

    成绩(学号、课程编号、分数);

    全局E-R图如下

     

     

     

    逻辑结构设计

    E-R模式转换关系模式

    E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。

    设计学生成绩管理数据库,包括学生(students)、老师(teachers)、课程(courses)、成绩(scores)四个实体,其关系模式中对每个实体定义属性如下:

    students 表:学号(sid)、姓名(sname)、班级(sclass)、性别(ssex)、专业(smajor)、出生日期(sbirthday)、学分(credit_points),此为联系“students表”所对应的关系模式,学号为该关系的候选码,满足第三范式。

    teachers表:教师编号(tid)、姓名(tname)、学院(tschool),此为联系“teachers表”所对应的关系模式,教师编号为该关系的候选码,满足第三范式。

    courses表:课程编号(cid)、教师编号(tid)、课程名称(cname)、学分(credit_point),此为联系“courses表”所对应的关系模式,课程编号和教师编号为该关系的候选码,满足第三范式。

     

    scores表:学号(sid)、课程编号(cid)、分数(score),此为联系“scores表”所对应的关系模式,学号和课程编号为该关系的候选码,满足第三范式。

    {

    关系模式(数据字典)

    表结构

    }

    物理设计和实施

    {

    根据逻辑结构设计

    数据库及表的创建

    表数据增删改查

    创建视图

    创建函数

    创建存储过程

    创建触发器

    }

    数据操作要求及实现

    设计总结

    主要参考文献

    侵权必删

     

     

    展开全文
  • 管理系统数据库设计

    2018-02-09 21:33:35
    十个系统的数据库设计学生成绩管理、报刊订阅广东工业大学数据库课程设计、客房管理系统数据库课程设计
  • 随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长,对学生成绩信息的管理难度随之增大。面队如此庞大的信息量,这就需要学生成绩管理信息系统来提高学生管理工作的效率。
  • 上海某高校拟开发一套高校信息管理系统,该系统包括学生档案管理、学生成绩管理、教员信息管理、教务排课等模块,实现学生档案录入、修改、查询,成绩录入、修改、查询,教务排课管理等功能。       ...

    问题描述:

           上海某高校拟开发一套高校信息管理系统,该系统包括学生档案管理、学生成绩管理、教员信息管理、教务排课等模块,实现学生档案录入、修改、查询,成绩录入、修改、查询,教务排课管理等功能。
           开发此模块涉及两大部分:后台数据库的设计、前端界面的开发

    一、后台数据库的设计

           为了简化起见,我们暂讨论“学生成绩管理”子模块,该模块具有成绩输入,成绩查询,名次排序,分数统计等功能。
            现要求对“学生成绩管理”子模块进行数据库的设计并实现,数据库保存在:E\MyApp目录下,文件增长率为10% 。

    1)设计数据库

    use master
    if exists(select * from sysdatabases where name='student_manage')  --判断student_manage库是否存在,若存在则先删除
       drop database student_manage
    
    create database student_manage                    --创建数据库student_manage
    on primary
    (
    name='student_manage',
    filename='E\MyApp\student_manage.mdf',
    size=3,
    filegrowth=10%
    )
    log on
    (
    name='student_manage_log',
    filename='E\MyApp\student_manage.ldf',
    size=2,
    filegrowth=10%
    )
    
    --创建学生信息表
    use student_manage
    create table stuInfo(stuName varchar(10) not null,
    stuNo varchar(20) not null,
    stuSex varchar(5) not null,
    stuAge int not null,
    stuSeat int not null,
    stuAddress text null
    )
    
    --创建学生成绩表
    create table stuMarks(examNo varchar(15) not null,
    stuNo varchar(20) not null,
    writtenExam int null,
    labExam int null
    )
    --创建约束
    alter table stuInfo add constraint pk_stuName primary key(stuName)
    alter table stuInfo add constraint ck_stuNo check (stuNo like 's253[0-9][0-9]')
    alter table stuInfo add constraint ck_stuSex check (stuSex in ('男','女'))
    alter table stuInfo add constraint df_stuSex default '男' for stuSex
    alter table stuInfo add constraint ck_stuAge check (stuAge between 15 and 50)
    alter table stuInfo add constraint ck_stuSeat check (stuSeat between 0 and 30)
    alter table stuInfo add constraint df_stuAddress default '地址不详' for stuAddress
    
    alter table stuMarks add constraint uq_examNo unique (examNo)
    alter table stuMarks add constraint ck_examNo check (examNo like 'E200507[0-9][0-9][0-9][0-9]')
    alter table stuMarks add constraint df_writtenExam default 0 for writtenExam
    alter table stuMarks add constraint ck_writtenExam check (writtenExam between 0 and 100)
    alter table stuMarks add constraint df_labExam default 0 for labExam
    alter table stuMarks add constraint ck_labExam check (labExam between 0 and 100)
    

    2)插入数据

    insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuSeat,stuAddress)
    values('张秋丽','s25301','男',18,2,'北京海淀')
    insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuSeat)
    values('李文才','s25302','男',31,5)
    insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuSeat,stuAddress)
    values('李斯文','s25303','女',22,3,'河南洛阳')
    insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuSeat,stuAddress)
    values('欧阳俊雄','s25304','男',28,7,'新疆克拉玛依')
    
    insert into stuMarks(examNo,stuNo,writtenExam,labExam)
    values('E2005070001','s25301',80,58)
    insert into stuMarks(examNo,stuNo,writtenExam)
    values('E2005070002','s25302',50)
    insert into stuMarks(examNo,stuNo,writtenExam,labExam)
    values('E2005070003','s25303',97,82)
    

    3)查询数据

    1.查询两表的数据

    select*from stuInfo
    select*from stuMarks 
    

    2.查询男学员名单

    select *from stuInfo where stuSex='男'
    

    3.查询笔试成绩优秀的学员情况(成绩在75~100之间)

    Select stuName,stuInfo.stuNo,stuSex,stuAge,stuSeat,stuAddress,examNo,writtenExam,labExam
    from stuInfo join stuMarks on stuInfo.stuNo=stuMarks.stuNo
    where writtenExam between 75 and 100  
    

    4.查询参加本次考试的学员成绩,包括学员姓名,笔试成绩,机试成绩

    select stuName,writtenExam,labExam
    from stuInfo join stuMarks on stuInfo.stuNo=stuMarks.stuNo
    

    5.统计笔试考试平均分和机试考试平均分

    select avg(writtenExam)as '笔试平均分',avg(labExam)as'机试平均分' from stuMarks  
    

    6.统计参加本次考试的学员人数

    select count(examNo)as'参加考试人数' from stuMarks  
    

    7.查询没有通过考试的人数(笔试或机试小于60分)

    select count(examNo)as'未通过考试人数' from stuMarks where writtenExam<60 or labExam<60
    

    8.查询学员成绩,显示学号,笔试成绩,机试成绩,平均分

    select stuNo,writtenExam,labExam,(writtenExam+labExam)/2as avgExam
    from stuMarks
    

    9.排名次(按平均分从高到低排序),显示学号、平均分

    select stuNo,(writtenExam+labExam)/2as avgExam
    from stuMarks
    order by avgExam desc   
    

    10.排名次(按平均分从高到低排序),显示姓名,笔试成绩,机试成绩,平均分

    select stuName,writtenExam,labExam,(writtenExam+labExam)/2as avgExam
    from stuInfo join stuMarks on stuInfo.stuNo=stuMarks.stuNo
    order by avgExam desc
    

    11.根据平均分,显示前两名信息,包括姓名、笔试成绩、机试成绩、平均分

    select top 2 stuName,writtenExam,labExam,(writtenExam+labExam)/2as avgExam
    from stuInfo join stuMarks on stuInfo.stuNo=stuMarks.stuNo
    order by avgExam desc
    

    4)修改数据

    笔试成绩都提5分

    update stuMarks set writtenExam=writtenExam+5 select *
    from stuMarks 
    

    100分封顶(加分后超过100分的,按100分计算)

    update stuMarks set writtenExam=100 where writtenExam>100 
    

    查看修改后的数据

    select * from stuMarks 
    

    5)管理数据

    1.导出数据到各种异构数据源、导出脚本

    1.1 在SQL Server数据库之间进行数据导入导出

    可以使用select into语句导出数据:
            在SQL Server中使用最广泛的就是通过select into语句导出数据,select into语句同时具备两个功能:
           ①根据select后跟的字段以及into后面跟的表名建立空表(如果select后是*, 空表的结构和from所指的表的结构相同);
            ②将select查出的数据插入到这个空表中。在使用select into语句时,into后跟的表必须在数据库不存在,否则出错。

    还可以使用insert into 和 update插入和更新数据

    1.2 使用opendatasource和openrowset在不同类型的数据库之间导入导出数据
           在异构的数据库之间进行数据传输,可以使用SQL Server提供的两个系统函数opendatasource和openrowset,其中opendatasource可以打开任何支持OLE DB的数据库,并且可以将opendatasource做为select、updte、insert和delete后所跟的表名。

    2.附加和分离数据库

    附加数据库:
    选中数据库,然后鼠标右击,选择【附加】
    在这里插入图片描述
    然后点【添加】,找到数据库保存的路径,然后确定即可
    在这里插入图片描述

    分离数据库:
    选中要分离的数据库,鼠标右击

    在这里插入图片描述

    【任务】—【分离】
    在这里插入图片描述
    勾选要分离的数据库,再确定即可
    在这里插入图片描述

    二、前端界面的开发(后期我们可以用dNet开发)

    略~~~

    总结

    通过本次项目案例练习了:
           在SQL Server Management Studio中进行常用的数据库操作
           编写SQL语句执行增、删、改、查操作
    巩固的知识:
           数据库的常用操作:建库、建表、加约束、建关系
           常用的约束类型:主键、外键、非空、默认值、检查约束
           insert 语句: Insert into 表名(字段1,字段2,…) values (值1, 值2,…)
           update语句: Update 表名 set 字段=值 where …
           条件查询:select …from 表名 where …
           排序:select …from 表名 order by …
           Top语句: select top 2….from 表名…
           统计函数:select avg( …) as 平均分 ….
           选择查询: select ….where labExam between 70 and 90
           内部连接:select …from 表1 inner jion 表2 …

    展开全文
  • 系统是选自于《数据库系统开发案例精选》,界面美观,功能强大,对于学习ASP,C#和SQL有很大的帮助,是个非常好的系统
  • 学生选课管理系统的需求分析 学生选课管理系统的ER图 学生选课管理系统的关系数据库模式 学生选课管理系统数据库的建立
  • 学生成绩管理系统 — - 数据库设计2 详细文档已经分享 一、需求分析 能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应时间要短。 具体功能应包括:系统应该提供课程安排数据的插入、...

    学生成绩管理系统 — - 数据库设计2

    详细文档已经分享

    一、需求分析
    能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应时间要短。
    具体功能应包括:系统应该提供课程安排数据的插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。
    学生: 信息录入,选择相应的课程,课程考试后能查询自己相应的成绩情况与基本信息
    教师: 根据课程的安排到相应的教室教 选择该老师教的学生。考试后录入成绩。
    课程: 供学生选择,其中(一个学生可以选择多门课程,一门课程有一个或多个老师讲授,但一个老师只能教一门课程)
    教室: 供上课使用,每个课程安排相应的教室。

    安全性与完整性要求:

    二、概念结构设计
    概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
    设计教室管理数据库包括班级、教室、课程、教师四个关系。
    E-R图如下
    在这里插入图片描述

    三、逻辑结构设计阶段

    逻辑结构是独立于任何一种数据模型的信息结构。逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。
    E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。
    设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系,其关系模式中对每个实体定义的属性如下:
    课程信息表
    Class:(课程号,课程名,教师号,学分,学时)
    学生信息表
    Student1:(学号,姓名,性别,年龄,专业,系别)
    成绩表
    Score:(学号,课程名,成绩)
    教师表
    Teacher1:(教师号,教师名,教师性别,教师系别)
    在这里插入图片描述
    在这里插入图片描述
    四、物理设计阶段
    略 (文档中有详细)

    五、收获体会建议
    本次课程设计使我收获颇多,了解了数据库设计的几个重要阶段:需求分析阶段,概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施阶段、数据库运行和维护阶段。其中需求分析是整个设计过程的基础,是最困难和最耗费时间的一步。作为“地基”的需求分析是否做得充分与准确,决定了在其构建数据库“大厦”的速度和质量。需求分析做不好,会导致整个数据库设计返工重做。
    其次本次课程设计本人综合了数据库系统概述的理论知识点,并且与实际相结合,加深了我对数据库系统的了解,数据库是一门实践性较强的学科,学好数据库就得不断实践。
    等等

    文档已经上传 分享。

    展开全文
  • 数据库设计实例-教务管理系统

    万次阅读 2013-11-08 08:50:59
    数据库设计实例教务管理系统 数据库实验七 数据库设计 ... 假设此次设计的教务系统是整个学生管理系统数据库中的一部分,整个系统至少还包括学籍管理等其他子系统。 在初期设计时,先关注与教务系统有关的

     

    数据库设计实例教务管理系统

    数据库实验七 数据库设计

     

    题目要求:

           设计一个教务管理系统。要求管理包括:学生的档案,学生选课的情况,学生每学期的综合测评,教师档案,教师工作量等等。具体考核方法根据自己了解的实际情况处理。

           假设此次设计的教务系统是整个学生管理系统数据库中的一部分,整个系统至少还包括学籍管理等其他子系统。

    在初期设计时,先关注与教务系统有关的数据。在完成对教务管理系统的建模后再对整个系统进行合并,总终得到整个系统的设计方案。

     

    一、需求分析

    1  根据分析可以画出该教务管理系统的数据流图:

    学生

     

    选课

     

    上课

     

    考试

     

    测评

     

    选课单

     

    允许考试

     

    成绩单

     

    老师档案

     

    课程简介

     

    教室安排

     

    试卷

     

    考场安排

     

    测评报告单

     

    学生名单

     

    教师

     

    选定教材

     

    申报

     

    课表

     

    2  数据字典

    数据结构:学生

    含义说明:是教务管理系统的一个核心数据结构,定义了学生的有关信息

    组成:学号、姓名

     

    数据项:学号

    含义说明:唯一标识每一个学生

    别名:学生编号

    类型:字符型

    长度:9

    取值范围:190000000  999999999

    取值含义:前四位表明学生所在年级,后五位安顺序编号

     

    数据项:姓名

    含义说明:表示学生的姓名

    类型:字符型

    长度:10

    取值范围:任意字符

                 

                  数据结构:教师

                  含义说明:教务管理系统的核心数据结构之一,定义了教师的有关信息

                  组成:教师号,教师姓名

                 

                  数据项:教师号

                  含义说明:教师的编号

                  类型:字符型

                  长度:5

                  取值范围:10000– 99999

                 

                  数据项:教师姓名

                  含义说明:教师的姓名

                  类型:字符型

                  长度:10

                  取值范围:任意合法的字符

                 

    数据结构:课程

    含义说明:教务管理系统的核心数据结构之一,定义了课程的有关信息

    组成:课程号,课程名,课程描述,教师,教室,教科书,学分

                 

    数据项:课程号

    含义说明:课程的编号

    类型:字符型

    长度:4

    取值范围:0001 – 9999

     

    数据项:课序号

    含义说明:对于同一课程,由不同老师教授,用课序号来区分

    类型:字符型

    长度:2

    取值范围:01 – 99

     

    数据项:课程名

    含义说明:课程的名称

    类型:字符型

    长度:10

    取值范围:任意合法的字符

     

    数据项:课程描述

    含义说明:课程内容的基本描述

    类型:字符型

    长度:200

    取值范围:任意合法字符

     

    数据项:教科书

    含义说明:课程所用的教科书

    类型:字符型

    长度:20

    取值范围:任意合法字符

     

    数据项:学分

    含义说明:课程的学分

    类型:整型

    长度:1

    取值范围:1-9

     

    数据结构:教室

    含义说明:上课所用的教室

    组成:教室编号,教室地址,教室容量

     

    数据项:教室编号

    含义说明:教室的编号

    类型:字符

    长度:5

    取值范围:00001-99999

     

    数据项:教室地址

    含义说明:标明教室的地址

    类型:字符

    长度:30

    取值范围:任意合法的字符

     

    数据项:教室容量

    含义说明:教室的容纳学生的数量

    类型:整型

    取值范围:正整数

     

    数据结构:选课记录

    含义说明:纪录学生选课的纪录

    组成:学生,课程,成绩

                 

                  数据项:成绩

                  含义说明:选课学生本学期的成绩

                  类型:浮点数

    范围:0.0 – 100.0

     

    处理过程:分配教室

    说明:为所有课程分配上课教室

    输入:课程,教室

    输出:教室安排

    处理:学期课程决定后,要为每个课程安排上课地点,要求上课的地点不能冲突且上课人数不能超过教室容量。

                 

                  处理过程:分配考场

                  说明:在考试日期,为所有课程分配考场

                  输入:课程,教室

                  输出:考场安排

    处理:为每个课程安排考场,考试时间和地点不能冲突且考试人数不能超过考场容量。

                 

    数据存储:成绩单

    说明:记录学生本学期所有课程成绩

    流入数据流:学生所有的选课记录

    流出数据流:学生的成绩单

    数据量:由学生的人数决定

    存取方式:随机存取

                 

    二、概念结构设计

    1、根据需求分析画出E-R图:

    选修

     

    学生

     

    教师

     

    课程

     

    m

     

    n

     

    讲授

     

    1

     

    n

     

    教科书

     

    n

     

    成绩

     

    教室

     

    开设

     

    1

     

    n

    2  根据E-R图写出各个实体的属性描述

    学生:{学号,姓名}

    课程:{课程号,课程名,课程描述,学分}

    教师:{教师号,教师名,课程数}

    教室:{教室编号,地址,容量}

                 

    3  视图的集成

    假设在学生管理系统的学籍管理系统中存在另一个学生实体,其中还包括以下信息:性别,所属专业,所属班级。为了使两个实体保持一致,对两个实体取并集得到新的学生实体:

    学生:{学号,姓名,性别,专业,班级}

          

    三、逻辑结构设计

    1  E-R图向数据模型的转换

    一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。所以,E-R图中的属性描述可直接转换为相应的关系模式。

    2  对于剩余的一对多和多对多联系可以如下表示

    学生-课程:{学号,课程号,课序号,成绩}

    课程-教师:{课程号,课序号,教师号}

    课程-教科书:{课程号,课序号,教科书}

    教室-课程:{教室号,时间,课程号,课序号}

     

    其中 课程-教师  课程-教科书 具有相同的主码,可以合并成一个关系

    教学:{课程号,课序号,教师号,教科书}

     

    最后得到的关系模式为

    学生:{学号,姓名,性别,专业,班级}

    课程:{课程号,课程名,课程描述,学分}

    教师:{教师号,教师名,课程数}

    教室:{教室号,地址,容量}

    学生-课程:{学号,课程号,课序号,成绩}

    教学:{课程号,课序号,教师号,教科书}

    教室-课程:{教室号,时间,课程号,课序号}

           

    3  用户外模式

    根据需求,为计算综合测评增加一个外模式,因为综合测评只在学期末进行,查询次数不多,所以没有必要用冗余的方法来提高查询效率,只需要建立一个外模式视图即可。

     

    测评{学号,学生姓名,平均成绩}

                 

    4  根据设计写出相应的SQL语句:

     

    CREATE TABLE student

    (

    Sno        VARCHAR(9)     CONSTRAINTpk_student PRIMARY KEY,

    Sname      VARCHAR(10)       NOTNULL,

    Sex           VARCHAR(1)     NOTNULL,

    Major         VARCHAR(10)    NOTNULL,

    Class       VARCHAR(10)    NOTNULL,

    CHECK    (Sex = 'f' ORSex = 'm')

    )

                 

    CREATE TABLE course

    (

    Cno       VARCHAR(4)     CONSTRAINTpk_course PRIMARY KEY,

    Cname     VARCHAR(10)    NOTNULL,

    Describe   VARCHAR(200), 

    Mark      INTEGER    

    )

     

    CREATE TABLE teacher

    (

    Tno     VARCHAR(5)    CONSTRAINTteacher_pk PRIMARY KEY,

    Tname   VARCHAR(10)   NOTNULL,

    Ccnt    INTEGER        NOTNULL DEFAULT 0

    )

     

    CREATE TABLE classroom

    (

    Rno      VARCHAR(5)CONSTRAINT pk_classroom PRIMARY KEY,

    Locate   VARCHAR(30) NOTNULL,

    Cap      INTEGER

    CHECK    (Cap > 0)

    )

     

    CREATE TABLE tech

    (

    Cno    VARCHAR(4) NOTNULL CONSTRAINT fk_course_cno FOREIGN KEY REFERENCES course(Cno)

    ON UPDATE CASCADE   --级联更新

    ON DELETE CASCADE,  --级联删除

    SCno   VARCHAR(2) NOT NULL,

    Tno    VARCHAR(5)CONSTRAINT fk_teacher_tno FOREIGN KEY REFERENCES teacher(Tno)

    ON UPDATE CASCADE

    ON DELETE CASCADE,

    Book   VARCHAR(20)

    CONSTRAINT pk_tech PRIMARY KEY (Cno,SCno)

    )

     

    CREATE TABLE SC

    (

    Sno    VARCHAR(9) NOTNULL CONSTRAINT fk_student_sno FOREIGN KEY REFERENCES student(Sno)

    ON UPDATE CASCADE

    ON DELETE CASCADE,

    Cno    VARCHAR(4) NOTNULL CONSTRAINT fk_sc_course_cno FOREIGN KEY REFERENCES course(Cno)

    ON UPDATE CASCADE

    ON DELETE CASCADE,

    SCno   VARCHAR(2) NOT NULL,

    Score  FLOAT

    CONSTRAINT pk_sc PRIMARY KEY (Sno,Cno,SCno)

    )

     

    CREATE TABLE RC

    (

    Rno      VARCHAR(5)CONSTRAINT fk_classroom_rno FOREIGN KEY REFERENCES classroom(Rno)

           ONUPDATE CASCADE

           ONDELETE CASCADE,

    Time        DATETIME,

    Cno        VARCHAR(4)NOT NULL CONSTRAINT fk_rc_course_cno FOREIGN KEY REFERENCES course(Cno)

    ON UPDATE CASCADE

    ON DELETE CASCADE,  

    SCno     VARCHAR(2)NOT NULL

    CONSTRAINT pk_rc PRIMARY KEY(Rno,Time) 

    )

     

    为进行综合测评增加一个外模式

    CREATE VIEW assess AS

    SELECT SC.sno, sname, AVG(score) as averageFROM SC,Student

    where SC.sno = student.sno

    GROUP BY SC.sno,sname

     

    为了符合数据的参照完整性约束,避免学生选课的时候选择一个不存在的课程号-课序号组,增加一个外键约束。

    ALTER TABLE sc

    ADD CONSTRAINT fk_sc_tech FOREIGN KEY(Cno,SCno) REFERENCES tech(Cno,SCno)

    ON UPDATE CASCADE

    ON DELETE CASCADE

     

    为了在插入一个新课程时能级联更新教师的工作量,增加一个触发器。此任务也可以通过建立一个外模式视图来动态统计,为了练习的目的这里采用了触发器

     

    CREATE TRIGGER workcnter On tech

    AFTER INSERT ,UPDATE, DELETE

    AS

    BEGIN

           DECLARE@T VARCHAR(5)

           IFEXISTS

           (  

                SELECTTOP 1 Tno FROM INSERTED       

           )

          BEGIN

                          SET@T = (SELECT TOP 1 Tno FROM INSERTED )

                          UPDATEteacher SET Ccnt = Ccnt + 1 WHERE Tno = @T

         END

           IFEXISTS

           (

                 SELECTTOP 1 Tno FROM DELETED

           )

           BEGIN

                   SET@T = (SELECT TOP 1 Tno FROM DELETED)

                   UPDATEteacher SET Ccnt = Ccnt - 1 WHERE Tno = @T

           END

    END

     

    关于课程容量:如何保证选课的学生数量不超过教室的容量?

    初步解决办法是:在学生选课时建立暂时不考虑容量问题,都加入一个临时的SC表中。然后,在选课结束后将未超额的记录直接加入SC表,超额的课程进行抽签,将命中部分学生的选课记录插入SC表,直到人数符合课程容量的要求为止。

    抽签的功能较适合用顶层的高级语言来实现。在选课结束后,选超额课程的学生需登陆选课系统进行抽签,抽签的过程可以使用概率算法,如果抽中,系统再将选课记录插入SC表,否则就从临时表中删除。

    所以,在数据库系统中,没有对SC表的插入操作进行约束。

     

    展开全文
  • 图书管理系统数据库设计 一、系统概述 1、系统简介 图书管理是每个图书馆都需要进行的工作。一个设计良好的图书管理系统数据库能够给图书管理带来很大的便利。 2、需求分析 图书管理系统的需求定义为: 1.学生可以...
  • 数据库设计实例大全,包含学生管理系统,服务销售系统,学生选课系统,人事管理系统等数据库设计实例,也包含一些数据库方面的毕业设计
  • 数据库设计实例 教务管理系统

    万次阅读 多人点赞 2006-12-25 22:00:00
    数据库实验七 数据库设计 题目要求... 假设此次设计的教务系统是整个学生管理系统数据库中的一部分,整个系统至少还包括学籍管理等其他子系统。在初期设计时,先关注与教务系统有关的数据。在完成对教务管理系统的建
  • 数据库是啥呢 ...那么看到标题就可以想到是学生选课和学生成绩管理 那么最基础的肯定要有学生,课程,成绩 这三种数据对象 如果有大量的数据实例我们都可以分到这几种数据对象里 那么首先我们要分析学...
  • sql server 数据库案例 学生成绩管理系统
  • 学生信息管理系统 Visual FoxPro数据库应用实例
  • Python题目:学生信息管理系统-高级版(图形界面+MySQL数据库) 使用图形界面显示,选用list、tuple、dictionary或map等数据结构,操作数据库存储X个学生的三门课的成绩(机器学习、Python程序设计、研究生英语)...
  • 数据库课程设计 学生宿舍管理系统 包括前后台源程序 代码和一份完整文档
  • 自己做的数据库课程设计包括需求分析、逻辑结构设计、概念设计、物理结构设计数据库实施和维护、sql语句增删查改、存储过程触发器都有、还有各种图也画了
  • 在本实例中使用的是SQL Server 2000数据库管理系统数据库服务器安装的位置为本机,数据库名称为communicationserver。下面将介绍数据库分析和设计、数据表的创建、数据表关系图和创建存储过程的内容
  • 案例提供,内有Tsql源代码。完全手写,互相学习提高
  • 权限管理系统数据库设计

    千次阅读 2017-01-11 15:36:45
    一,前言 权限管理系统的应用者应该有三种不同性质上的使用, A,使用权限 B,分配权限 C,授权权限  本文只从《使用权限》和《分配权限》这两种应用层面分析,暂时不考虑《授权权限》这种。 二,初步分析用户和...
  • 医院管理系统数据库设计

    千次阅读 2008-10-01 14:17:00
    医院管理系统数据库设计   数据库名:hisdb   一基本信息表 1.科室表(keshi) 字段名 中文名 类型 能否为空 备注 ID 科室编号 Int N 主键,自增 ...
  • 数据库设计案例

    2019-04-25 15:32:53
    教学系统数据库设计,对目前学生选课,教学管理排课,教师上课的管理,包括课程的管理,分必修、选修;实践和理论。按照班级进行开课处理,再按照开课情况、教师要求、教室信息进行课程时间安排。
  • 学生信息管理系统数据库系统课程设计(Java)

    千次阅读 多人点赞 2020-04-15 22:04:42
    前言: 博主在深入了解Java的语法后,觉得前段时间数据库课设写的代码有点菜了,于是决定重写界面设计部分(数据库的dao层没改),原来的可以参见之前我写的这篇文章:... 顺便总结一下这次写的和之前的对比有哪些...
  • 一个用access数据库学生成绩管理系统
  • 学生选课系统数据库设计与实现

    千次阅读 多人点赞 2016-06-23 10:38:30
    学生的信息应该有 (学号,姓名,性别,系别,年龄,入学时间,专业,登陆密码) 教师的信息应该有 (教室工号,姓名,性别,密码,职称,所在系院,课程号) 课程表 (课程号,课程名,先修课号,学分) 学生选课 ...
  • 数据库设计 数据流图 实体关系图 数据库设计 数据流图 实体关系图
  • 学生选课系统 数据库课程设计

    千次阅读 2014-04-01 14:18:20
    数据库课程设计报告 设计题目 学生选课系统专 业 计算机科学与技术班 级 计1101学 号 姓 名 寸利芳完成日期 2014目 录1 设计任务和要求32 需求分析32.1 功能需求32.2 性能需求32.3 数据需求32.4 运行需求33 系统设计...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,495
精华内容 14,198
关键字:

学生管理系统数据库设计实例