《学生考勤信息管理系统》数据库课程设计

目录

一、  需求分析

前台功能模块

后台功能模块

1.1 功能模块的划分及介绍

1.2 实体及重要属性

1.3 业务流程图

二、 概念结构设计

 2.1. E-R图的设计

三 、逻辑结构设计

 表设计

   User1-用户表

   Student-学生信息表

   College-院系信息表

    Attendance personnel 考勤人员表

    Class 班级信息表

    Activity-活动信息表

    meeting-会议信息表

    exercise-早操信息表

     course-课程信息表

四、物理设计

 4.1 数据库的存放位置和存储结构

         4.1.1 数据库的存放位置

 4.1.2 数据库的存储结构

4.2 索引设计

        表2  索引表

五、数据库实施

  5.1 创建数据库

  5.2 创建表

         (1)用户表

(2)学生信息表

(3)College-院系信息表

  (4)Attendance personnel 考勤人员表

(5)Class 班级信息表

 (6)activity-活动信息表

 (7)meeting-会议信息表

 (8)exercise-早操信息表

 (9) course-课程信息表

六、数据库的试运行

  6.1 填入示例数据

视图展示


一、  需求分析

本篇设计文档包括前台功能模块和后台功能模块

前台功能模块

《学生考勤信息管理系统》数据库课程设计_第1张图片

后台功能模块

《学生考勤信息管理系统》数据库课程设计_第2张图片

1.1 功能模块的划分及介绍

本系统包括四个功能模块,注册登录考勤后台管理请假四个功能模块。

1..注册模块:本功能模块设计涉及新用户的注册,和用户的登录,用户分为六大类,学生,任课教师,导员,院系领导,学校领导,系统管理员,他们可以通过自己的学号,和职工号进行注册,后台根据他们的身份不同会赋予不同的权限.

2. 考勤模块:本功能模块根据学校的实际需求又分为了四个小的板块

         2.1:早操考勤:本模块的功能是学生早操考勤信息的实现,学生可以查看自己本学期的早操出勤情况,导员,院领导,校领导可以查看自己所管辖范围内的学生的早操出勤情况

        2.2:开会考勤:本模块的功能是学生开会考勤信息的实现,学生可以查看自己本学期的开会出勤情况,导员,院领导,校领导可以查看自己所管辖范围内的学生的开会出勤情况

        2.3:上课考勤:本模块的功能是学生上课考勤信息的实现,学生可以查看自己本学期的上课出勤情况,导员,院领导,校领导可以查看自己所管辖范围内的学生的上课出勤情况

        2.4:活动考勤:本模块的功能是学生活动考勤信息的实现,学生可以查看自己本学期的活动考勤情况,导员,院领导,校领导可以查看自己所管辖范围内的学生的活动考勤情况

最终可以根据这四项考勤的情况分别生成每一个院的,每一个班的,每一位同学的量化积分,学校可以根据这个评定优秀院系,优秀班集体,老师可以根据量化积分对学生进行评优评先的推选

3 .请假模块:本模块的功能是在线请假的实现管理,学生有特殊情况导致不能按时上课,上操,开会等可以用到这个功能,这个模块主要设计三大类用户,学生,导员,院系领导用户,学生通过此模块进行在线请假及查看请假记录信息,导员在线审批学生请假,及查看学生请假记录信息,院系领导在线审批学生时间的请假及查看请假记录信息

4.后台管理模块:本模块的功能实现整个系统数据的同步更新及维护,只涉及系统管理员用户.系统管理员动态管理学生信息,课表安排,会议安排,早操安排,学年安排等,是将数据进行整合推送到前台进行展示,是整个系统实现的基础

1.2 实体及重要属性

●学生:学院,专业,班级,姓名,性别,学号,身份证号等信息。

●考勤人员:部门,姓名、院系,班级,学号,等信息。

●院系:院系名称,院系领导等信息

●班级:年级、班级名称、专业名称等信息

●活动:活动名称、活动时间、活动地点等信息

●会议:会议名称、会议时间、会议地点等信息

●早操:上操时间,上操地点等信息

●课程:课程号,课程名,授课老师,课时,上课时间等信息

通过分析,本系统中各实体之间的联系如下:

●院系-学生:一个院系可以有很多学生,但一个学生只能属于一个院系,所以院系和学生是一对多的关系

●院系-考勤人员:一个院系可以有很多考勤人员,但一个考勤人员只能属于一个院系,所以院系和考勤人员是一对多的关系

●院系-班级:一个院系可以有很多班级,但一个班级只能属于一个院系,所以院系和班级是一对多的关系

●考勤人员-班级:一个考勤人员只能考察一个班级,一个班级可以同时被过个考勤人员考察,所以考勤人员和班级是一对多的关系

●活动-学生:一个活动可以有多个学生参加,一个学生特定时间只可以参加1个活动,所以活动和学生是1对多的关系

●会议-学生:一个会议可以有多个学生参加,一个学生特定时间可以参加1个会议,所以会议和学生是1对多的关系

●早操-学生:一个早操队伍可以有多个学生参加,一个学生特定时间只能在一个早操队伍中

●课程-学生:一门课可以被多个学生一块上课,一个学生特定时间内只可以上一节课,所以课程和学生之间是1对多关系

1.3 业务流程图

全局流程图

《学生考勤信息管理系统》数据库课程设计_第3张图片

 请假子模块流程图《学生考勤信息管理系统》数据库课程设计_第4张图片

二、 概念结构设计

      2.1. E-R图的设计

《学生考勤信息管理系统》数据库课程设计_第5张图片

三 、逻辑结构设计

   表设计

        User1-用户表

    

字段

数据类型

含义说明

空值情况

备注

Account1

Varchar(20)

账号

Not null

主键

Type

Varchar(20)

登录类型

NOT NULL

教师,学生,院系领导,管理员

Password1

Varchar(20)

密码

NOT NULL

Student-学生信息表

字段名

数据类型

含义说明

空值情况

备注

StudentID

varchar(20)

学号

Not null

主键

Sname

varchar(20)

姓名

NOT NULL

SSex

varchar(20)

性别

NOT NULL

男,女

Class

Varchar(20)

班级

NOT NULL

College

Varchar(20)

学院

NOT NULL

Specialty

Varcahr(20)

专业

NOT NULL

ID number

Char(10)

身份证号

NOT NULL

Mid

Varchar(20)

会议编号

 NULL

外键(对应会议表)

Aid

         Varchar(20)

活动编号

 NULL

外键(对应活动信息表)

Cid

Varchar(20)

课程编号

 NULL

外键(对应课程信息表)

Exercise time

Char(20)

上操时间

 NULL

外键(对应早操表)

Exercise location

Varchar(20)

上操地点

 NULL

外键(对应早操表)

Join time

Char(20)

参加时间

 NULL

Where the attendendance

bit

是否出勤

NULL

0,1

Where the leave

bit

是否请假

 NULL

0,1

College-院系信息表

字段

数据类型

含义说明

空值情况

备注

Collegename

Varchar(10)

院系名称

Not null

主键

College leade number

Varchar(20)

院系领导职工号

NOT NULL

College leadename

Varchar(20)

院系领导名字

NOT NULL

ClassID

Varchar(20)

班级编号

Not null

外键(对应班级表)

Attendance personnel 考勤人员

字段

数据类型

含义说明

空值情况

备注

APID

Varchar(50)

考勤人员学号

NOT NULL

主键

Department name

Varchar(20)

部门名称

NOT NULL

Aname

Varchar(4)

姓名

NOT NULL;

Collegename

Varchar(20)

学院名称

NOT NULL;

Classname

Varchar(20)

班级名称

NOT NULL;

Class 班级信息

字段

数据类型

含义说明

空值情况

备注

ClassID

Varchar(20)

班级编号

NOT NULL

主键

Classname

Varchar(20)

班级名称

NOT NULL

Grade

int

年级

NOT NULL;

19,20,18,..

APID

Varchar(20)

考勤人员学号

NOT NULL;

外键(对应考勤人员表)

majorname

Varchar(20)

专业名称

Not null

Activity-活动信息表

字段

数据类型

含义说明

空值情况

备注

AID

Varchar(20)

活动编号

NOT NULL

主关键词

        Aname

Varchar(20)

活动名称

NOT NULL

Atime

Varchar(20)

活动时间

NOT NULL

Alocation

Varchar(20)

        活动地点

Not Null

meeting-会议信息表

字段

数据类型

含义说明

空值情况

备注

MID

Varchar(20)

会议编号

NOT NULL

主关键词

       Mname

Varchar(20)

会议名称

NOT NULL

Mtime

Varchar(20)

会议时间

NOT NULL

Mlocation

Varchar(20)

       会议地点

Not Null

exercise-早操信息表

字段

数据类型

含义说明

空值情况

备注

Etime

Varchar(20)

早操时间

早操时间地点共同组成主键不能null

早操时间地点共同构成主键

Elocation

Varchar(20)

早操地点

Not Null

course-课程信息表

字段

数据类型

含义说明

空值情况

备注

CID

Varchar(20)

课程编号

NOT NULL

主键

        Cname

Varchar(20)

课程名称

NOT NULL

Ctime

Varchar(20)

上课时间

NOT NULL

cteacher

Varchar(20)

  授课老师

Not Null

ckeshi

varchar

课时

Not Null

四、物理设计

 4.1 数据库的存放位置和存储结构

    4.1.1 数据库的存放位置

            D:\考勤app

    4.1.2 数据库的存储结构

创建的数据库为考勤app,有两个文件组,一个是主文件组primary,里面有个文件,分别是A1,另一个是次要文件组secondary,里面有次要文件A2最后是日志文件A3 表存放于主文件组中。

4.2 索引设计

        表2  索引表

表名

建立索引的字段

类型

列值是否唯一

user(用户表)

Account (账号)

聚集索引

Student学生表

StudentID (学号)

聚集索引

Attendancepersonnel (考勤人员

APID(考勤人员学号)

聚集索引

Collecg(院系信息表

Collegename(院系名称)

聚集索引

Class (班级信息

ClassID(班级编号)

聚集索引

activity活动信息表

AID(活动编号)

聚集索引

meeting-会议信息表

MID(会议编号)

聚集索引

exercise-(早操信息表

Etime Elocation(早操时间,地点)

聚集索引

course-(课程信息表)

CID

聚集索引

五、数据库实施

  5.1 创建数据库

use master 

go 

create database 考勤app

on primary 

(

  name = a1_mdf,

  filename  = 'D:\考勤app\a1.mdf',

  size = 10mb,

  maxsize = 50mb,

  filegrowth =1mb

), 

filegroup secondry 

(

  name = a2_mdf,

  filename = 'D:\考勤app\a2.ndf',

  size =10mb,

  maxsize = 50mb,

  filegrowth  = 1mb

)

log on 

(

  name = a3_ldf,

  filename = 'D:\考勤app\a3.ldf'

)

5.2 创建表

(1)用户表

use 考勤app

go 

create table user1

( 

  Account varchar(20) not null ,

  type1 varchar(20) not null,

  password1 varchar(20) not null

  constraint pk_user primary key(account)

)

(2)学生信息表

create table student 

(

  Studentid varchar(20) not null,

  sname varchar(20) not null,

  ssex  varchar(20) not null,

  class  varchar(20) not null,

  colleage  varchar(20) not null,

  specialty  varchar(20) not null,

  idnumber  char(10) not null,

  mid  varchar(20) ,

  aid  varchar(20) ,

  cid  varchar(20) ,

  exercisetime char(20) ,

  exerciselocation varchar(20) ,

  jointime  char(20) ,

   wherethrthrattendendance bit,

   wheretheleave bit

   constraint pk_student primary key(studentid),

    constraint fk_meeting_student foreign key(mid) references meeting(mid),

constraint fk_activity_student foreign key(aid) references activity(aid),

constraint fk_course_student foreign key(cid) references course(cid)

)

(3)College-院系信息表

create table college

( 

  collegename varchar(10) not null,

   collegenameleadenumber varchar(20) not null,

    collegeleadename varchar(20) not null,

 classid varchar(20) not null,

  constraint pk_college primary key(collegename),

 constraint fk_course_college foreign key(classid) references class(classid)

)

)

(4)Attendance personnel 考勤人员

create table attendancepersonnel

(

 apid  varchar(50) not null,

 departmentname varchar(20) not null,

 aname varchar(4) not null,

 collegename varchar(20) not null,

 classname varchar(20) not null

   constraint pk_attendancepersonnel primary key(apid),

)

(5)Class 班级信息

create table class

(

 classid  varchar(20)not null,

 classname varchar(20) not null,

 grade int not null,

 apid varchar(20) not null,

 major varchar(20) not null,

  constraint pk_class primary key(classid),

 constraint fk_attendancepersonnel_class foreign key(apid) references attendancepersonnel(apid)

)

(6)activity-活动信息表

create table activity 

(

 aid varchar(20) not null,

 aname varchar(20)not null,

 atime varchar(20)not null,

 alocation varchar(20)not null,

 constraint pk_activity primary key(aid)

)

(7)meeting-会议信息表

create table meeting 

(

 mid varchar(20) not null,

 mname varchar(20) not null,

 mtime varchar(20) not null,

 mlocation varchar(20) not null,

 constraint pk_meeting primary key(mid),

)

(8)exercise-早操信息表

create table exercise 

( 

  etime varchar(20) not null,

  elocation varchar(20) not null

  constraint pk_exercise primary key(etime,elocation),

)

9 course-课程信息表

 create table course 

(

  cid   varchar(20) not null,

  cname   varchar(20) not null,

  ctime   varchar(20) not null,

cteacher   varchar(20) not null,

Ckeshi varchar(20) not null

  constraint pk_course primary key(cid),(主键创建)

六、数据库的试运行

  6.1 填入示例数据

说明:使用insert语句向表中添加必要数据。

use 考勤app 

go 

insert into activity(aid,aname,atime,alocation)

values('a1234','操场汇演','20220317','操场')

insert into attendancepersonnel(apid,departmentname,aname,collegename,classname)

values('2002160102025','体育部','薛豪','信息工程学院','大数据02')

insert into class(classid,classname,grade,apid,major)

values('1','大数据02','20','2002160102025','大数据')

insert into college(collegename,collegenameleadenumber,collegeleadename,classid)

values('信息工程学院','2020222','刘卫民','1')

insert into course(cid,cname,ctime,cteacher,ckeshi)

values('3308','数据库系统原理','20220502','李明义','48')

insert into exercise(etime,elocation)

values('20220503','操场')

insert into meeting(mid,mname,mtime,mlocation)

values('101-101-101','防诈骗宣讲会','20220405','大礼堂')

insert into student(studentid,sname,ssex,class,colleage,specialty,idnumber,exercisetime,exerciselocation,jointime,wherethrthrattendendance,wheretheleave)

values('2002160102025','薛豪','男','大数据02','信息工程学院','大数据','410720200201015730','20020205','操场','20220104','1','0')

insert into student(studentid,sname,ssex,class,colleage,specialty,idnumber,mid, jointime, wherethrthrattendendance,wheretheleave)

values('2002160102024','小明','男','大数据02','信息工程学院','大数据','410720200201015721','101-101-101','20220401','1','0')

insert into student(studentid,sname,ssex,class,colleage,specialty,idnumber,aid, jointime, wherethrthrattendendance,wheretheleave)

values('2002160102023','小红','女','大数据02','信息工程学院','大数据','410720200201015722','a1234','20220406','1','0')

insert into student(studentid,sname,ssex,class,colleage,specialty,idnumber,cid, jointime, wherethrthrattendendance,wheretheleave)

values('2002160102022','小花','女','大数据02','信息工程学院','大数据','410720200201015713','3308','20220407','1','0')

insert into user1(Account,type1,password1)

values('2597730259','教师','111111')

insert into user1(Account,type1,password1)

values('1111','学生','123456')

insert into user1(Account,type1,password1)

values('11','院系领导','1212')

insert into user1(Account,type1,password1)

values('1','管理员','12')

视图展示

《学生考勤信息管理系统》数据库课程设计_第6张图片

《学生考勤信息管理系统》数据库课程设计_第7张图片《学生考勤信息管理系统》数据库课程设计_第8张图片

你可能感兴趣的:(数据库,database,sql,大数据,数据库开发)