考勤管理系统数据库设计_第1页
考勤管理系统数据库设计_第2页
考勤管理系统数据库设计_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、考勤管理系统数据库设计 数据库设计是指对于一个给定的应用环境,构造设计优化 的数据库逻辑模式和物理结构,并据此建立数据库以及应用环 境,使之能够有效地存储和管理数据, 满足各种用户的应用需求, 包括信息管理要求和数据操作要求。数据库的目标是为用户和各种应用系统提供一个信息基础 设施和高效率的运行环境。 数据库设计的一个特点是 “三分技术, 七分管理,十二分基础数据” 。数据库设计的基本步骤如下:1)需求分析2)概念结构设计3)数据库逻辑设计4)数据库物理设计5)数据库实施6)数据库运行和维护数据库需求分析设计这个系统的主要目的就是实现学生社团的管理规 范化,以及对社团举办活动进行登记。数据库的

2、需求分析阶段是整个数据库设计过程中的基 础,也是耗时就多,最困难的一步。需求分析的任务就是 通过详细调查现实世界要处理的对象,充分了解原系统工 作概况,明确用户的各种需求,然后在此基础上确 定新系统的功能。这个阶段的工作成果主要以下三个方面的内容:(1)数据项:每种具体数据的名称、意义、类型、取值 范围以及与其他数据项之间的逻辑关系。(2)数据集:若干数据项的有逻辑关联的集合,包括名 称、意义和组成数据集的数据项。(3)数据流:应用系统运行时,数据是怎么输入、处理 和输出。二.数据库概念结构设计局部e-r图设计(1)学生信息表的e-r图(2)刷卡表的e-r图刷(3)刷卡记录表的e-r图全局e-

3、r图如下:IBMn社社团編号ttfiM号豊记时社团名称号I社团宅称1z活动记录三.数据库逻辑结构设计数据库逻辑设计主要是将概念结构设计转换为某个dbms所支持的数据模型设计出刷卡表结构如下:字段数据类型餡否为空备注Snoniaber 不IB画駅(1®Smnuiber (4)不能社团名祈DJtineti登记时间学生信息表结构如下:字段数据类型曲否为空备注Snoverchar2($)不能社团想曷(主)Snanevarchar2(20)社团名称Balevarchar2(8)£Snaturevarchar (16)不脂JUKIStelnumber (12)te蹄Sshunumber

4、 (4)te刷卡记录表结构如下:字段数据类型能否为空爸注DJtiiutinestw不能登记时间snovarchar2(8)不雷itaa# (主)Snaienumber不能tt团名薜TELmannumber (4)不龍联系人KanTELnuiber(4)不前联系方式四数据库物理结构设计物理结构设计是为逻辑数据模型选取一个最适合应用环境的物理结构,将逻辑结构设计中的表用sql语句创建出来。(1)创建表空间SQL> create tablespacs zhmzhu2 datafile *E:appsdninistpatoroi,adatftorclSji5db_tbs_002,dbf3 ai=

5、o 10On;表空间已刨建:(2) 创建新用户SQL> createEhuxiaoqin identified hy 1789Q101;用户己创建。(3) 给新用户授权>QL> grrnt号®te* table to: shuxiaoqin9 ;匏i成功。QL7 grant create scss ion co zhuxiaQqin;受权成功,QLgrant dba to zliux iaoq img ; 受权成功。(4) 以新用户的身份登入,创建表 首先创建学生表,实现语句如下:Create table stue nt(Sno varchar2(8) not nu

6、ll primary key,Sn ame varchar2(20) not n ull,Sex varchar2(2) not n ull,Sage nu mber(2),Speciality varchar2(16),Banji varchar2(12)Tablespace zhuzhu;执行结果如下:£QL> creAte table stunt2 <3 sno varcliai*2<S> not null prinari/ key#4 enane vai*chai*2(20> not null»f> sage nunher<

7、2>>7 speciality VAK*ctai*2<lfc>,8 banji varchar2<丄2A9 >IS tables pace zhuzhu;W己削惠然后,创建刷卡表实现语句如下:Create table skSkid number(4) not null,Kid number(4) not null primary key,Zctime date)Tablespace zhuzhu;执行结果如下:create t霽kCkidnn oulIkid numhert? not null primtary key zctine dfite>tab

8、lespace sliuzhu;已创惠接着,再创建刷卡记录表实现语句如下:Create table skrecord(Skid number(4) not null,Kid nu mber(4) not n ull,Sno varchar2(8) not n ull primary key,Sktime timestamp)Tablespace zhuzhu;QL>2Create tble skrecordCSkid nunibei*<4> not null,Mid nunbei*<4> not nail,Sno varcharf (8) not null pi*

9、inat*y key, Sktine t imestamp>tablespace zLushu;最后,建立各个表之间的约束实现语句:Alter table skrecordAdd(con stra int sk_kid_fk foreig n key(kid) refere nces sk(kid)Con stra int skrecord_s no foreig n key(s no) referen cesstue nt(s no);1 fl Iter table skrecord2 Add3 int ek_l<id_rk for#ir* kpyf kid> t*Ff p

10、fc*flnc?A<? ?:<<kirt>4 >Constraint skrecord_sno foreign kep<sno) references&stuentCsno>6* )SQL> /表己更改。(5) 创建一个序列实现刷卡编号的自动增长Create seque nee seq_i nIn creme nt by 1Start with 1Nomaxvalue;Create seque nee seq_i n2In creme nt by 1Start with 1Nomaxvalue;SQL> Create sequenc

11、e seq_in2 IiicF&wnent by13 Start with 14 Nomaxvalue;序列己创建。SQL> Create sequence seq_in22 Inci'ement hy13 Start with 14 NoniAxualue;序列己创建。(6) 创建触发器只要学生一刷卡,就会在 sk表中插入一条记录,此时查找刷卡记录表看是否存在与之同卡编号的记录,如果存在,则输出' 有出勤,没有旷课'否则,输出该学生没有来上课的信息Create or replace trigger testBefore in sertOn skDecla

12、re isexist nu mber;Beg inSelect coun t(*) into isexist from skrecord where:n ew.kid=skrecord.kid;If (isexist>0) the nDbms_output.put_line('有出勤,没有旷课);ElseDbms_output.put_line('这同学没有来上课);End if ;End;SQL> create or replacetest2 before insert3 on sK4 f di* each rem5 declare isexist numiber

13、;G begin7 select countC*> into Isexist frann skrecord8 uhere :n)ewffkid=skrecovd.kid;9 if<isexist>0> then10 dbms .output, put_line<J 出勤. 没有旷课 I f > ;11 else12 dbns.output>put_line<J有来上课I13 end if;14 end;15 /融发器己创建(7) 创建视图首先,创建学生表的视图实现语句如下:Create view stude nt_viewAsSelect * f

14、rom stue nt;实现结果如下:S:QL> Create ulew stwdent_ufew2 As3 Select " frun HLueiit ;愉图己创建。然后创建sk表的视图实现语句如下:Create view sk_viewAsSelect * from sk;实现结果如下:SQL> Create uieu sk_uiew2 As3 Select * from sk;视图己创建。同理,创建skrecord的视图执行结果如下:SQL> Create uiet skrecord_view2 As3 Select * fran skpecord;视图己创建

15、。(8) 插入演示数据Insert into stuent values( "tom'm;20,计算机'计07T'Insert into stuent values( :'ucy '' ;19电子商务'电子商务07T);Insert into stuent values( :'lily''',19,'英语'英本 072'Insert into stuent values( :,john'm;21网络工程 '网络执行结果如下:己创建1行。SQL> ins

16、ert into stuent values(* 1989W0021 , * lncyJ f 1 ,19, J 电子商务'J 电子商务07" >:己创建1行。SQL> insert into stuent valuesC'1?8?B003JJ ,19,J 英语'英本即1卄己创逢1行°SQL> insert Into stuent values 198$000<1J ,* John1 输*畫丄亠'网络工程'两貉 072> $己创建1行SQL> cDiririL七:提交芫成Q对sk表插入如下演示数据:I

17、nsert into sk values(seqn.nextval,'010'10-1 月-2000'Insert into sk values(seq_in.nextval,'011 '8-3 月-2008'Insert into sk values(seqn.nextval,'012'11-5 月-2008'Insert into sk values(seqn.nextval,'013'17-9 月-2009'执行结果如下:SQL> insert into sic ualues <s

18、eq_in *nextvalr, 0010J J 191 月-2000'; 已创姥1厅SQL> incort into wk valuen<Eoq_in rn«xtual,J 0011J , J 8-3 2009J > ; 己创建i fr-SQL> insert into sk yalttes<5eq_iii .nexcual, - 00121,111-5月-2003'” 己仓健i ffoSQL> Inutfrt 丄iiLv 番h valuer_丄n -nvxtvdl, * 0013 1 - 1 179-2009*己刨建1 fTc|SQL> cominit;对skrecord表插入如下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论