- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学生考勤管理系统据库设计
考勤管理系统数据库设计
数据库设计是指对于一个给定的应用环境,构造设计优化的数据库逻辑模式和物理结构,并据此建立数据库以及应用环境,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
数据库的目标是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。数据库设计的一个特点是“三分技术,七分管理,十二分基础数据”。
数据库设计的基本步骤如下:
需求分析
概念结构设计
数据库逻辑设计
数据库物理设计
数据库实施
数据库运行和维护
数据库需求分析
设计这个系统的主要目的就是实现学生的考勤管理的规范化。
数据库的需求分析阶段是整个数据库设计过程中的基础,也是耗时就多,最困难的一步。需求分析的任务就是通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求,然后在此基础上确 定新系统的功能。这个阶段的工作成果主要以下三个方面的内容:
(1)数据项:每种具体数据的名称、意义、类型、取值范围以及与其他数据项之间的逻辑关系。
(2)数据集:若干数据项的有逻辑关联的集合,包括名称、意义和组成数据集的数据项。
(3)数据流:应用系统运行时,数据是怎么输入、处理和输出。
二.数据库概念结构设计
局部e-r图设计
(1)学生信息表的e-r图
(2)刷卡表的e-r图
刷卡
(3)刷卡记录表的e-r图
全局e-r图如下:
数据库逻辑结构设计
数据库逻辑设计主要是将概念结构设计转换为某个dbms所支持的数据模型设计出
刷卡表结构如下:
学生信息表结构如下:
刷卡记录表结构如下:
四.数据库物理结构设计
物理结构设计是为逻辑数据模型选取一个最适合应用环境的物理结构,将逻辑结构设计中的表用sql语句创建出来。
(1)创建表空间
(2)创建新用户
(3)给新用户授权
(4)以新用户的身份登入,创建表
首先创建学生表,实现语句如下:
Create table stuent
(
Sno varchar2(8) not null primary key,
Sname varchar2(20) not null,
Sex varchar2(2) not null,
Sage number(2) ,
Speciality varchar2(16),
Banji varchar2(12)
)
Tablespace zhuzhu;
执行结果如下:
然后,创建刷卡表
实现语句如下:
Create table sk
(
Skid number(4) not null,
Kid number(4) not null primary key,
Zctime date
)
Tablespace zhuzhu;
执行结果如下:
接着,再创建刷卡记录表
实现语句如下:
Create table skrecord
(
Skid number(4) not null,
Kid number(4) not null,
Sno varchar2(8) not null primary key,
Sktime timestamp
)
Tablespace zhuzhu;
最后,建立各个表之间的约束
实现语句:
Alter table skrecord
Add
(constraint sk_kid_fk foreign key(kid) references sk(kid)
Constraint skrecord_sno foreign key(sno) references
stuent(sno)
);
(5)创建一个序列实现刷卡编号的自动增长
Create sequence seq_in
Increment by 1
Start with 1
Nomaxvalue;
Create sequence seq_in2
Increment by 1
Start with 1
Nomaxvalue;
(6)创建触发器
只要学生一刷卡,就会在sk表中插入一条记录,此时查找刷卡记录表看是否存在与之同卡编号的记录,如果存在,则输出’有出勤,没有旷课’,否则,输出‘该学生没有来上课’的信息。
Create or replace trigger test
Before insert
On sk
Declare isexist number;
Begin
Select count(*) in
文档评论(0)