1、在winform中实现学员的照片显示。6)数据统计:在数据库中编写相应的存储过程,输入教练编号即可select其所带学员人数。(3)有何安全性与完整性方面的要求(参照所给出的语义规则)。如是否需要显示定义原子事务、需定义具有什么功能的存储过程、需定义具有什么功能的触发器、对不同的用户有何不同的系统使用权限等。 1)安全性约束:“性别”(int)取值范围为0,1;“是否色盲”(tinyint)取值范围为0,1;“是否通过全部考试”(success)取值范围为0,1;“计划学习/教学日”(tinyint)取值范围为0,1;“考试内容”(smallint)取值范围为0,3;“是否参加考试”(atte
2、nd)取值范围为0,1;“是否通过考试”(access)取值范围为0,1;“出生年月”(datetime)getdate();“身高”(smallint)取值范围为0,300;“体重”(smallint)取值范围为0,300;“左眼视力”(real)取值范围为0,6.0;“右眼视力”(real)取值范围为0,6.0。 2)存储过程:以学员编号为输入参数查询学员基本信息。以教练员编号为输入参数统计正在跟随该教练员学习的学员人数并输出。 3)触发器:当“学生考试信息表”中的补考次数大于2时,触发事件,级联更新“学员基本信息”中的学费,使学费增加10%。当“学生考试信息”表中的“是否参与/通过考试”
3、信息被修改时,触发事件自动生成一行新的考试信息,其中规定:1、报名完成后1个月考理论,理论考试通过1个月后考倒桩,倒桩考试通过半个月后考小路,小路考试通过半个月后考大路,如果其中某次考试未通过,补考均安排在1个月后;2、当大路考试通过后,不再生成新的考试信息,同时级联更新“学员基本信息”表中的“顺利结业”情况。二、概念结构设计画出系统整体的E-R模型;并对模型中所出现的实体及属性等信息加以说明。1)学员基本信息:学员编号sno、姓名sname、身份证号sidno、性别ssex、出生年月sbirth、身高stature、体重sweight、左眼视力lefteye、右眼视力righteye、是否色
4、盲colorbind、家庭住址saddr、工作单位scomp、教练员tno、学习费用sfee、照片sphoto,是否已通过全部考试success(加:联系方式scall,计划学习日期(工作日/周末)sday),报名时间(enterday),其中学员编号为主键。2)教练员基本信息:教练编号tno、姓名tname、身份证号tidno、性别tsex、出生年月tbirth(加:联系方式tcall,计划教学日期(工作日/周末)tday),其中教练员编号为主键。3)学员考试信息:学员编号sno、考试日期examday、考试内容(理论、倒桩、小路、大路)examinfo、补考次数bkcs、是否参加考试att
5、end、是否通过access。其中学员编号、考试内容、补考次数共同作为主键。4)学员教练:学员编号sno、教练编号tno 三、逻辑结构设计(1)模式设计:按系统整体E-R模型,写出关系模式;并利用数据字典加以描述。(如每个关系模式有何属性、属性的类型、属性值的长度、是否可取空值、是否为主码、有何约束条件等信息)(2)子模式设计:即针对自己的设计模块的应用需定义什么样的视图表结构;并利用数据字典加以描述。(如每个关系子模式有何属性、属性的类型、属性值的长度、是否可取空值、是否为主码、有何约束条件等信息)学员基本信息student表字段名数据类型是否主键是否为空约束条件默认值描述snochar(8
6、)是否学员编号tno教练编号snamevarchar(10)姓名sidnochar(18)身份证号ssextinyint性别sbirthdatetime出生年月staturesmallint身高sweight体重lefteyereal左眼视力righteye右眼视力colorbind是否色盲saddrvarchar(40)家庭住址scomp工作单位sfeeint4500学习费用sphotonvarchar(100)照片success是否顺利结业scallchar(11)联系方式sday计划学习日期enterday报名时间教练基本信息teacher表tnametidnotsextbirthtca
7、lltday计划教学日期学员教练关系stte表TnoChar(8) Char(8) 否学员考试信息exam表ExamdayDatetime考试日期Examinfo考试内容BkcsSmallint补考次数SnoAttendTinyint是否参加考试 Access是否通过四、数据库的物理设计为了提高在表中搜索元组的速度,在实际实现的时候应该基于某些属性建立索引。给出所建立的索引。(包括按哪些表中哪些属性按升序还是降序来创建索引及相应的T-SQL的创建语句)。exam表建立了三个索引:CREATE INDEX syexam_examday ON exam ( examday ASC)CREATE I
8、NDEX syexam_examinfo ON exam ( examinfo ASC)CREATE INDEX syexam_sno ON exam( sno ASC)stte表建立了两个索引:CREATE INDEX systte_sno ON stteCREATE INDEX systte_tno ON stte ( tno ASC)Student表建立了三个索引:CREATE INDEX systudent_enterday ON student ( enterday ASC)CREATE INDEX systudent_sname ON student ( sname ASC)CRE
9、ATE INDEX systudent_sno ON student五、数据库设计实现及运行(1)数据库的创建T-SQL语句:/*=*/* DBMS name: Microsoft SQL Server 2005 */* Created on: 2012/1/4 8:57:37 */if exists (select 1 from sysobjects where id = object_id(CLR Trigger_student) and type = TR drop trigger gotd_student drop trigger td_studentti_student drop t
10、rigger ti_studenttu_student drop trigger tu_studentCLR Trigger_sttetd_stte drop trigger td_stteti_stte drop trigger ti_sttetu_stte drop trigger tu_stteexamU drop table examstudent drop table studentteacher drop table teacherstte drop table stte(2)数据表的创建(可同时在创建时定义相关的约束)create table exam ( examday dat
11、etime null, examinfo smallint not null, bkcs smallint not null, sno char(8) not null, attend tinyint null, access tinyint null, constraint PK_EXAM primary key nonclustered (examinfo, bkcs, sno)create table student ( tno char(8) not null, sname varchar(10) null, sidno char(18) null, ssex tinyint null
12、, sbirth datetime null, stature smallint null, sweight smallint null, lefteye real null, righteye real null, colorbind tinyint null, saddr varchar(40) null, scomp varchar(40) null, sfee int null, sphoto nvarchar(100) null, success tinyint null, scall char(11) null, sday tinyint null, constraint PK_S
13、TUDENT primary key nonclustered (sno)create table teacher ( tname varchar(10) null, tidno char(18) null, tsex tinyint null, tbirth datetime null, tcall char(11) null, tday tinyint null, constraint PK_TEACHER primary key nonclustered (tno)create table stte ( tno char(8) null, constraint PK_stte prima
14、ry key nonclustered (sno)(3)存储过程的定义实现(仅需给出自己设计模块中所用的)1、计算教练员所带学员数量的proc sr_teacherCreate proc sr_teachertno char(8),scount int outputasbeginselect scount=count(sno)from sttewhere stte.tno=tnoend测试结果粘贴:2、根据学员学号返回学员全部信息的proc srstudentCreate proc srstudentsno char(8)select * from student swhere s.sno=s
15、no3、根据学员学号返回学员部分信息的proc rsname等(在进行修改操作时需要调用)Create proc rsnamesno char(8),sname varchar(10)as select sname=snamefrom studentwhere sno=sno(4)触发器的定义实现(仅需给出自己设计模块中所用的)1、exam表中的exam_plan触发器Create trigger exam_planon examafter update declare examday datetime declare examinfo smallint declare bkcs smalli
16、nt declare sno char(8) declare attend tinyint declare access tinyint declare nexamday datetime-新插入数据行的数据 declare nexaminfo smallint declare nbkcs smallint declare nsno char(8) declare nattend tinyint declare naccess tinyint declare week varchar(10)-标记日期为“星期*”的 select access=access from inserted sele
17、ct attend=attend from inserted select examinfo=examinfo from inserted select sno=sno from inserted select bkcs=bkcs from inserted select examday=examday from inserted if (access=1 and examinfo=3) update student set success=1 where sno=sno else begin if access=1 begin select nexaminfo=examinfo+1 sele
18、ct nsno=sno select nbkcs=bkcs select nattend=0 select naccess=0 if (nbkcs=0 and(nexaminfo=0 or nexaminfo=1)or nbkcs0) begin select nexamday=examday+30 select week=datename(weekday,nexamday) while(week=星期六 or week=星期日 begin select nexamday=nexamday+1 select week=datename(weekday,nexamday) end end else select nexamday=examday+15 end else select nexaminfo=examinfo select nbkcs=bkcs+1 insert into exam values(nexamday,nexaminfo,nbkcs,nsno,attend,access) end对其中学员编号为20090003的人进行修改:参加考试,并且通
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1