导航:首页 > 编程大全 > 选课系统数据库关系图

选课系统数据库关系图

发布时间:2023-05-16 20:41:49

数据库逻辑设计~~~急求~~ER图转换成关系模型(学生选课系统

这是用powerDesigner 画的,蠢核你可庆喊以参考一下誉档野

Ⅱ 假设学生的选课系统包含如下关系:Students(Sno,Sname,Gender,Enrollyear,SP

Students和SC表做自然连接,其结果再和Courses表做自然连接

然后对自然连接后的结果做选择操作嫌迅,选择Speciality字段值为芹返此"SE"的数据
最后做投影操作,只留下Sname和Cname两个字段
SQL如世改下,都快忘了这东西了,回顾不易,望采纳
SELECT
Students.Sname,
Courses.Cname
FROM
Students
JOIN SC ON Students.Sno = SC.Sno
JOIN Courses ON SC.Cno = Courses.Cno
WHERE
Students.Speciality = "SE"

Ⅲ 数据库关系模式有哪些类型

在关系数据库中有型和值两种类型结构。关系模式是型,关系是值,关系模式是对关系的描述。

描述一个关系需要从以下两个方面来定义:第一方面,关系实质上是一个二维表,表的每一行为一个元组,每一列为一个属性。一个元组就是该关系所涉及的属性集的笛卡儿积的一个元素。关系是元组的集合,因此关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系。

第二方面,一个关系通常是由赋予它的元组语义来确定的。元组语义实质上是一个n目谓词(n是属性集中属性的个数)。凡使该n目谓词为真的笛卡儿积中的元素(或者说凡符合元组语义的那部分元素)的全体就构成了该关系模式的关系。

1.3.1关系数据库基本概念关系数据中,关系模式涉及众多概念、术语,初学者对这方面不容易把握与理解,以下用通俗易懂的语言来对这些概念及术语作简单的介绍。

1.关系关系(Relation)是指数据库中实体的信息,也就是数据库中二维表的数据。一个关系就是一个数据库表的值,表中的内容是对应关系模式在某个时刻的值,称为一个关系。例如,关系A表示数据库有一张名字为A的数据表所记录的所有数据。关系数据库中每一个关系都具有以下六方面的性质:((1)列是同质的。即每一列中的分量为同一类型的数据,来自同一个域。

(2)不同的列可出自同一个域,称其中的每列为一个属性,不同的属性要给予不同的属性名。

(3)列的顺序无所谓。即列的次序可以任意交换。

(4)任意两个元组不能完全相同。

(5)行的顺序无所谓。即行的次序可以任意交换。

(6)分量必须取原子值。即每一个分量都必须是不可分的数据库属性。

2.模式模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,也称逻辑模式。有以下几方面性质:((1)一个数据库只有一个模式。

(2)模式是数据在逻辑级上的视图。

(3)以某一种数据模型为基础。

定义模式时不仅要定义数据的逻辑结构,包括数据项的构成、名字、类型、取值范围等,而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。

3.关系模式关系模式(RelationSchema)描述的是与关系相对应的二维表的表结构,即关系中包含哪些属性,属性来自哪些域,以及与域之间的映象关系。

关系模式与关系的区别:((1)关系模式描述了关系数据结构和语义,是关系的型。而关系是一个数据集合,是关系模式的值,是关系模式的一个实例。

(2)关系实际上就是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为数据库操作会不断地更新数据库中的数据。

4.元组元组(Tuple)是关系数据库中的基本概念,一个关系表中的每行就是一个元组。也就是说数据库表中的每条记录都是一个元组,表结构的每列就是一个属性,在二维表里,元组也称为记录。元组可表示一个关系或关系之间的联系。

一般情况下,一个关系数据表中的每条记录均有一个唯一的编号(记录号),这个编号也叫元组号。

5.码码(Key)是关系数据库系统中的基本概念。所谓码,就是能唯一标识实体的属性集,是整个属性集,而不是单个属性。在关系数据库中,码包括多种类型,如超码、候选码和主码。

((1)超码(SuperKey)。超码是一个或多个属性的集合,这些属性可以在一个实体集中唯一地标识一个实体。如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。例如,学生是一个实体,则学生的集合是一个实体集,而超码用来在学生的集合中区分不同的学生。假设学生(实体)具有多个属性:学号,身份证号,姓名,性别。因为通过学号可以找到唯一一个学生,所以{学号}是一个超码,同理{学号,身份证号}、{学号,身份证号,姓名}、{学号,身份证号,姓名,性别}、{身份证号}、{身份证号,姓名}、{身份证号,姓名,性别}也是超码。在这里,因为不同的学生可能拥有相同的姓名,所以姓名不可以区别一个学生,即{姓名}不是一个超码,{性别}、{姓名,性别}也不是。

(2)候选码(CandidateKey)。候选码是可以唯一标识一个元组的最少的属性集合。候选码是从超码中选出的,因此候选码也是一个或多个属性的集合。因为超码的范围太广,很多是无用的,所以候选码是最小超码,它们的任意真子集都不能成为超码。例如,如果K是超码,那么所有包含K的集合都不能是候选码;如果K,J都不是超码,那么K和J组成的集合{K,J}有可能是候选码。

虽然超码可以唯一标识一个实体,但是可能大多数超码中含有多余的属性,所以需要候选码。

例如学生表,学生(学号,姓名,年龄,性别,专业),其中的学号是可以唯一标识一个元组,所以学号可以作为候选码。既然学号都可以作候选码,那么学号和姓名这两个属性的组合就可以唯一区别一个元组。此时的学号可以成为码,学号和姓名的组合也可以成为码,但是学号和姓名的组合不能成为候选码,因为即使去掉姓名属性,剩下的学号属性也完全可以唯一地标识一个元组。也就是说,候选码中的所有属性都是必需的,缺少任何一个属性,都不能唯一标识一个元组。

(3)主码(PrimaryKey)。主码是从多个候选码中任意选出一个作为主键,这个被选中的候选码就称为主码。如果候选码只有一个,那么候选码就是主码。虽然说主码的选择是比较随意的,但在实际开发中还是需要一定的经验,不然开发出来的系统会出现问题。一般来说,主码都应该选择那些从不或者极少变化的属性。

例如,在一个职工实体中,职工(职工号,姓名,入职时间,部门,岗位,工资,职级,工龄,电话),职工号可以用来唯一确定实体中的一个元组,所以职工号是一个候选码。如果实体属性——姓名、入职时间、部门三者组合也能唯一地确定一个元组,则(姓名,入职时间,部门)也是一个候选码。在上述两个候选码中任选一个均可作为职工实体的主码,一般来说直接选择职工号作为实体的主码是最为简单方便的。

1.3.2关系模式的定义关系是数据库二维表中的数据记录,关系模式是数据库二维表的表结构,关系是动态的,关系模式是静态的。

关系模式可由六个元素来描述,分别是R、U、D、dom、I、F。其中,R为关系的名称;

U为组成该关系的属性名的集合;D为U集合中属性的域集合;dom为属性集U向域集D的映射;I为完整约束集合;F为属性间数据的依赖关系集合。

一个关系模式通常表示为R(U,D,dom,I,F),也可以忽略其他元素,直接简化为R(U)或R(A1,A2,A3,…,An),其中A1,A2,A3,…,An为属性名。

例如,在一个选课模块中,包含“学生”“课程”“选修”等关系实体。“学生”实体的属性有SNO(学号)、SNAME(姓名)、AGE(年龄)、SEX(性别)、SDEPT(系部),其中“学号”为主键;“课程”实体的属性有CNO(课程号)、CNAME(课程名称)、CDEPT(系部)、TNAME(教师),其中“课程号”为主键;“选修”实体的属性有GRADE(成绩)、SNO(学号)、CNO(课程号),其中“学号”和“课程号”为联合主键。学生和课程之间是多对多的关联关系,即一个学生可以同时选修多门课程,一门课程也可以同时被多个学生选修。这种多对多的关联关系可以通过“选修”关系实体作为中间桥接实体,变成两个一对多的实体关联关系,如图所示。

图学生选课实体

从图的实体关系图中可以得到选课模块的实体关系模式集——学生关系、课程关系、选修关系,具体关系模式如下:学生关系模式Student(SNO,SNAME,AGE,SEX,SDEPT);

课程关系模式Course(CNO,CNAME,CDEPT,TNAME);

选修关系模式StudentCourse(SNO,CNO,GRADE)。

对以上定义的三个关系模式实例化,插入初始化数据后,可得到学生、课程、选修三个关系的实例,如图所示。图中矩形框圈住部分为选课模块中的关系模式(表结构);椭圆框圈住部分为选课模块中的关系(数据)。整个选课模块的表环境由关系模式与关系两部分共同组成,缺一不可。关系模式的分解标准关系模式的规范化过程实际上就是关系模式的“分解”过程,即把逻辑上独立的信息放在独立的关系模式中。分解是解决数据冗余的主要方法,也是规范化的一条原则——关系模式有冗余问题就要分解。

数据库设计者在进行关系数据库设计时,应参照模式规范化理论,尽可能使数据库模式保持高的标准。一般尽量把关系数据库设计成巴斯−科德范式(BCNF)的模式集,如果设计成巴斯−科德范式(BCNF)模式集时达不到保持函数依赖的标准,那么只能降低要求,设计成第三范式(3NF)的模式集,以达到保持函数依赖和无损分解的基本要求。

学生、课程、选修三个关系的实例

1.分解的定义一个关系模式可以分解成众多子关系模式,分解方式不同,得到的子关系模式也不同。

关系模式的分解是指把某一个关系模式按照某一种方式进行分解得到的所有子关系模式。

如关系模式R按照某一种方式分解,可以得到一个关系集ρ={R1,R2,…,Rn}。其中属性集U=U1∪U2∪…∪Un,并且不能存在Ui⊆Uj,1≤i,j≤n。

函数依赖关系集F=F1∪F2∪…∪Fn,其中F1,F2,…,Fn是F在U1,U2,…,Un上的投影。

2.分解的标准把低级的关系模式分解成高级的关系模式的方法不是唯一的,只要能够保证分解后的关系模式与原关系模式等价,就是一个完整、标准的分解方法。关系模式的标准分解方法应同时达到以下两方面的要求:((1)分解具有无损连接性。

(2)分解要保持函数依赖性。

具有无损连接性的分解保证信息不会丢失,但无损连接不一定能解决插入异常、删除异常、修改复杂、数据冗余等问题,如要解决这些问题,则要考虑更高的关系数据范式理论原则。

Ⅳ 高校选课系统

1.引言
目前,我国的高等教育事业蓬勃发展,高校的规模不断扩大,同时,高校的教学改革也在全面推行,学分制在各高校全面启动[1,2]。学分制——允许学生在计划的指导下,根据自己的条件、能力、志趣,有选择地支配自己的学习[3]。因此,学生的选课就成为推行学分制的重要管理任务。以往的选课均是在计划模式下进行:每位教师将所开的课程名称,个人简介,课程限选人数,限选专业等信息交给教务处,教务处再将这些信息统一成册,分发给各个班级班长,由班长将本班的选课情况统计并返回教务处。这是一个相当长的周期,并且耗费大量的人力、物力,对选择结果没有控制。就燕山大学电气工程学院的情况,经常会出现某一门课程限选人数为200人,而实际选课人数超过300人,像这样的情况传统选课模式根本无法解决。针对这些问题,提出一种基于WEB的选课系统,该系统将课程的基本信息录入之后,即可由学生选课,受限制专业的学生将无法选择该课程,同样,选课按照先后顺序,超过限制的人数,也不能选择该课程。该系统在燕山大学电气工程学院使用之后,取得了良好的效果。
2. 选课系统设计
2.1 选课系统功能设计
选课系统功能包括两部分,课程管理部分与学生选课部分,其结构功能图如图1所示:

图1 选课系统功能图

2.2 选课系统结构

图2 系统结构图

系统采用B/W/D三层结构[4],即前端客户机浏览器,中间为Web服务器,后台为SQL数据库。系统机构如图2所示:

第一层为终端客户层,客户机为校园网上的任何一台计算机,没有特殊要求,只需具有网络浏览器即可。学生通过客户机上的浏览器查看相关的选课信息,并进行选课操作,通过TCP/IP协议将操作要求传给服务器,服务器对操作要求进行处理,并将处理结果通过网页告知客户机,完成一次操作交互。

第二层为Web服务器层,操作系统安装Windows 2000 server与IIS,利用IIS将选课软件发布,实际运行时可以选择校园网内的服务器,或者教务部门的服务器,以利于网络流量的分配与系统的维护。Web服务器利用ASP技术实现服务器上数据库中数据信息的动态使用,利用Vbscript、javaScript和ActiveX控件生成客户端的动态页面,起到客户端迹颂与数据库的接口作用。
第三层为数据库服务器,数据库可以与安装在Web服务器上,也可设立单独的服务器存放数据,由具体情况而定。考虑到系统扩展与安全方面的问题,数据库选择为SQL 2000数据库。它支持OLE技术,通过ADO控件方式,答州猛可以很容易对他进行操作。
数据库包括四个表,见表1所示。
表1 数据表结构
数据表名 数据内容 字 段 关键字
Jwkuser 管理员信息 姓名,密码 姓名
Xuanxiuke 课程信息 课程编号,课程名称,授课时间,授课教师,学时,学分,教材,可选专业,限选人数,人数下限,课程简介,先修课程,当前人数,出版社 课程编号
Studeng_user 学生信息 学号,姓名,密码,班级,专业 学号
Stu_xuanke 选课结果 学号,课程编号,完成,进行,学分,选课时间, 学号+课程编号

3. 选课系统实现
3.1 系统应用背景
本系统应用在燕山大学校园网上,校园网上共有15个IP段,共计3700多终端,每一届学生都超过4000人,选课时可能会发生网络流量的剧增,所以将系统放置于学校专门的服务器上,保证网络带宽,提高系统的并发处理能力。经实际验证,选课过程开始就出现了网络流量高峰,选课系统未出现异常情况,圆满地完成了选课测试。
3.2 选课系统功能设计
本系统采用两轮选课的方法,选课按照学生提交信息的时间严格排序,即asp将用户信息以表单的方式传给服务器的时间排序,清桥超过限选人数时,则返回选课失败的信息,提示用户重新选择其它课程。对于某些课程选课的学生没有超过人数下限时,将取消本门课程,并公布选这门课程的学生名单,通知其进入二次选课。
本系统采用Dream weaver MX为平台编写相应的ASP、Html、CSS、Inc等文件,其访问关系如图3所示,用户首先通过校园网上其他页面的链接进入本系统的主界面,主界面上包括学生入口与管理员入口。管理员可以将自己的用户名、口令输入并提交表单进行验证。验证通过则进入课程信息管理页,否则进入警告页面,提示用户非法。为提高系统的安全性,防止密码的暴力破解,系统提供5次机会,5次输入错误,则自动锁定管理员入口,并将该用户IP、时间等信息记录。课程信息管理页可以完成六项功能:
1. 学生管理:可以添加、删除、修改学生的基本信息。
2. 添加课程:添加一门课程以供选择
3. 删除课程:删除一门淘汰的课程
4. 修改课程:修改课程的基本信息
5. 查询结果:按照学生的学号查询该生的选课情况、学分情况。按照课程名称查询该课程的选课人数,具体的学生名单,并能完成打印功能。列出所有课程的选课情况。
6. 退出:退出登陆,注销自己的Session。
学生用户可以通过主页面上的学生入口进入,将自己学号、口令输入并提交表单进行验证。同样验证具有和管理员一样的保护措施。验证通过后可以进入学生信息管理页,可以完成如下工作:

图3 主要页面关系图
1. 基本信息浏览:此处信息只供浏览,如有错误,需要向管理员提出申请,由管理员核实后在管理页面进行修改。

2. 密码修改:完成用户密码的修改,以保证用户账户的安全性。
3. 网上选课:进行课程的选择,删除,查看等操作
4. 学分查询:查看该用户已经完成的学分,正在进行的学分,和尚需完成的学分。
5. 退出:退出登陆,注销用户的session,保证用户信息不被他人盗用。
3.3选课系统的安全性设计
由于该系统涉及到学校的管理,数据的安全性尤为重要,本系统设计时对安全性考虑的非常周全。
⑴服务器只能由专门的网络维护人员操作。
⑵系统采用SQL数据库由专门的数据管理员管理,而非系统管理员,即网络维护人员将无法查阅数据库的数据。
⑶系统采用OLE DB的方式调用数据库,具有更快的数据处理能力,并可方便的进行移植。对关键的数据库操作指令,由vb生成的dll库实现,并且对asp源代码进行了加密,使得网络维护人员无法通过查看asp源代码来获得数据库的管理权。
⑷所有用户,包括学生用户与管理员用户,通过Web操作时,都有身份验证,验证通过后,都有自己的session,直到退出登陆,并且,验证出错的次数有限,防止恶意的密码破解。
这样,通过四方面的安全措施,保证了数据的万无一失。在实际运行的两年共四次选课过程中,未出现任何数据被破坏或被修改的现象。
4.结论
选课工作将成为高校教务管理的一个主要任务,改变原有的人工选课方式,采用网络选课势在必行。本文针对燕山大学的具体情况,设计了基于ASP与SQL数据库的选课系统,在使用的两年时间里,未出现安全漏洞及网络瘫痪问题,圆满地完成了选课任务,取得了良好的效果。

Ⅳ 学生课程成绩三者关系图

一 学生知识现状的分析怎么写

学生知识现状分析
第一单元:图形的变换
学生能认识轴对称图形,理解图形成轴对称的特征和性质,能在方格纸上画出一个图形的轴对称图形。学生进一步认识了图形的旋转,探索图形旋转的特征和性质,能在方格纸上把简单图形旋转90°。初步能运用对称、平移和旋转的方法在方格纸上设计图案。
部分学生在方格纸上画出连续多次旋转后图形,容易出现错误。
第二单元:因数与倍数
学生掌握了因数、倍数、质数、合数等基本概念,知道因数与倍数等概念之间的联系和区别。掌握了2、3、5 的倍数的特征。
少数学生混淆了因数与倍数、质数与合数等概念;虽然理解并掌握了2、3、5的倍数的特征,但在综合运用情况较差。
第三单元:长方体与正方体
学生认识了长方体和正方体的特征以及它们的展开图,了解体积(容积)的意义及体积和容积单位,会进行单位间的换算。感受了每个单位的实际意义。掌握了长方体、正方体的棱长和以及表面积、体积的计算方法,能运用所学知识解决一些简单的实际问题。
少数学生没有乱运理解表面积、体积等公式的算理,因此实际运用中不能准确使用公式进行计算;还有部分学生对某些实际生活中的特例(如:粉刷教室、游泳池贴瓷砖等)不注意观察实际生活现象,不能正确解题。
第四单元:分数的意义和性质橘陆
学生理解了分数的意义,明确了分数与除法的关系;认识了真分数和假分数,知道了带分数是假分数的另一种书写形式,能把假分数化成带分数或者整数;理解掌握了分数的基本性质,会比较分数的大小;理解了公因圆陪顷数与最大公因数、公倍数与最小公倍数,能找出两个数的最大公因数与最小公倍数,能比较熟练的进行通分和约分;会进行分数与小数的互化。
很多学生“量”、“率”不分;通分时找不到最小公倍数,导致在计算分数加减法时增加无谓的约分步骤;部分学生约分时没有约成最简分数; 部分学生不能灵活运用分数的基本性质解决实际问题。
第五单元:分数的加法和减法
理解了分数加减法的算理,掌握分数加减法的计算方法,并能正确地计算出结果。理解整数加法的运算定律对分数加法仍然适用,并会运用这些运算定律进行一些分数

二 小数与分数的关系图

分数肯定可以化成小数,除得尽的可化成有限小数,除不尽的可化成无限循环小数;
小数不一定可转化为分数,小数包括有限小数和无限小数,而无限小数又可分为无限循环小数和无限不循环小数,有限小数和无限循环小数是有理数,可以转化为分数,无限不循环小数是无理数,不能转化为分数。
正常情况下,不会用图来表示两者之间的关系,虽然小数比分数包含的范围广,但两者毕竟是数的分类中的不同类别,不会说成小数包含分数。

三 已知成绩关系如下图所示。 查询结果中包含的元组数目是

B
因为分数大于60的只有:
S1 C1 80
S1 C2 75
S3 C3 90
在DISTINCT 学号后只有S1,S3,执行COUNT 后就是2

四 分别用( ),()和()三个分数表示下图中的阴影部分,这三个分数之间有什么关系

4/8 2/4 1/2

~希望对你有帮助,请及时点击【采纳为满意回答】按钮~
~手机提问的朋友在客户端右上角评价点【满意】即可~
~你的采纳是我前进的动力~~

五 求学生选课系统的ER图

学工部:

学生基本情况(学号、姓名、性别、班级、班主任、照片、入学年份)

教务处:

选课情况(学号、姓名、班级、课程名称、任课老师、学分、成绩、学期)

教师:

成绩情况(学号、姓名、班级、课程名称、成绩、班平均分、最高分、最低分、不及格人数)

学生:

综合信息(学号、姓名、班级、已修课程门数、总学分、平均成绩、每门课成绩、不及格门数)

六 下列各图用分数表示图中阴影部分与整体的关系,正确的个数有() A.1个 B.2个 C.3个 D.4

图一,此正方形被平均分成4份,阴影部分为1份,则阴影部分占整个图形的 1 4 ;
图二,此长方形被平均分成10份,阴影部分为7份,则阴影部分占整个图形的 7 10 ;
图三,此圆被分成5份,阴影部分为2份,但不是平均分,所以阴影部分占整个图形的 2 5 是错误的;
图四,图中的三个三角形被平均分成6份,阴影部分为3份,则阴影部分占这三个三角形的 3 6 即 1 2 .
即图一、图二用分数表示的阴影部分与整体的关系是正确的.
故选:B.
七 数学6年级填空(根据比和除法、分数的关系完成表格)有图!

名称 联系

分数 分子 分母 分数值

除法专 被除数 除数 商属

八 试卷与成绩表什么关系 类图

成绩表是对成绩的汇总,试卷是成绩的载体,所以成绩表对试卷是多对一的关系,成绩表是”多方“,试卷是“一方”,表的关联关系就是在多方加外键,类的关联关系在一方的对象中加个多方的对象

九 1要反映出六二班期末考试成绩的情况 2要清楚反应全校人数与各年级之间的关系,应绘制什么统计图

第一个用条形,第二个用扇形
你们刚刚做啊?
我们课比你们快哦~

十 如下图,二级access,要怎么建立关系,怎么才能让成绩的那栏有内容,我自己打他说重复,项目过多

先说一下,“成绩抄”表的主袭键应当是:学号和课程号,因为只有这2个字段做为复合主键才能唯一确定某个人某科的成绩。“成绩单”这个表无存在的必要性,它的内容可以通过“学生”、“课程”、“成绩”这3个表通过查询设计而得出。

它们的关系如下:

您要的结果应当是这样的吧。

Ⅵ 数据库database一对多关系中的问题

拆分关系,增加一个表睁樱则,使之符合范式。
比如做学生选课系统,多个学生选多门课,这是多对多关系。
这样可以写成三个表:
学生表(学号,姓名)
课程悉棚表(课颂闭程号,课程名)
选课表(学号,课程号)
通过选课表,将学生和课程联系起来了

Ⅶ SQL作业,求大神帮忙

过了没,没过我帮你写!

Ⅷ java学生选课系统

学生选课系统的设计与实现摘要本文以一个具体的应用系统—学生选掘枯课信息系统的设计与实现判戚洞来说明如何利用UML和EJB组件来设计和构建分布式软件系统平台。UML和组件技术结合使用能提高开发效率,增加系统的易维护性。关键词UML;EJB;实例1引言现在信息管理系统软件的开发,采用组件技术可以提高效率,信息管理系统的仔镇分析设计也采用UML来进行。两者的结合可以极大的提高开发效率,保证系统开发的易维护性。本文用UML这种设计方法和EJB这种组件技术来设计和实现一个系统。2系统分析本系统设计为学生通过网页登陆学校网站,进行选课。下面用用例图来说明该系统要实现的功能。2.1用例图2.2系统总体结构图本系统采用三层体系结构,分为表示层,事务处理层,数据存储层。三层结构层次清晰,易维护。图3类图学生选课系统涉及到三个实体类学生,课程,以及学生和课程之间的一个一对多关系类。对每一个类,映射到一张表。学生类和课程类用Container-ManagedEntityBean实现,学生和课程间的一对多关系类,用Bean-ManagedPersistence的EntityBean实现。再设计一个SessionBean对学生选课过程进行控制。页面显示部分用JSP实现。3数据库设计学生表对应学生实体,详细内容如下表1学生表关联表对应学生和课程间的一对多关系,详细内容如下研究开发4实现4.1SessionBean的设计4.1.1定义HomeInterface4.1.2定义{//-----//这是一个基于SessionBean的Remote接口,这个SessionBean是基于//Stateful的SessionBean,用来对特定学生选课的登记过程进行操作//-----------------------------publicStringgetStudentName()throwsRemoteException;publicvoidenroll(ArrayListcourseItems)throwsRemoteExcep-tion;publicvoinenroll()throwsRemoteException;publicvoiddeleteStudent()throwsFinderException,RemoteEx-ception;publicvoiddeleteCourse(Stringcourse_id)throwsRemoteExcep-tion;}4.1.3Client获取HomeInterface和RemoteInterface的参考方式,我们使用JNDI机制来获取Home接口和Remote接口的对象参考。4.1.4定义回调方法4.1.5实现远程数据库的连接使用JNDI机制,通过数据库的JNDI名称javacomp/env/jdbc/StudentCourseDB来连接后台数据库。4.1.6SessionBean方法实现//定义变量publicStudentHomesHome;publicEnrollHomeeHome;publicStringstudent_id;publicStringname;//回调方法实现publicvoidejbCreate(Stringstudent_id)throwsCreateException{try{Studentstudent=sHome.findByPrimaryKey(student_id);name=student.getName();}catch(ObjectNotFoundExceptione){thrownewCreateException(Student+student_id+notfoundinStudentTBL!);}catch(Exceptione){thrownewEJBException(e.getMessage());}this.student_id=student_id;}//商业方法实现publicvoidenroll(ArrayListcourseItems){Enrollenroll=null;try{enroll=eHome.findByPrimaryKey(student_id);}catch(Exceptione){}try{if(enroll!=null){enroll.replaceCourseItems(courseItems);}else{eHome.create(student_id,courseItems);}}catch(Exceptione){thrownewEJBException(e.getMessage());}}publicvoinenroll(){try{Enrollenroll=eHome.findByPrimaryKey(student_id);enroll.remove();}catch(Exceptione){thrownewEJBException(e.getMessage());}}//涉及到对两张表的删除。publicvoiddeleteStudent()throwsFinderException{try{Enrollenroll=eHome.findByPrimaryKey(student_id);Studentstudent=sHome.findByPrimaryKey(student_id);enroll.remove();student.remove();}catch(Exceptione){thrownewEJBException(e.getMessage());}}publicvoiddeleteCourse(Stringcourse_id){PreparedStatementps=null;try{getConnection();StringdeleteStatement=deletefromEnrollTBL+wherestudent_id=?andcourse_id=?;ps=con.prepareStatement(deleteStatement);ps.setString(1,student_id);ps.setString(2,course_id);ps.executeUpdate();}catch(Exceptione){thrownewEJBException(e.getMessage());}finally{try{ps.close();con.close();}catch(Exceptione){thrownewEJBException(e.getMessage());}}}4.2EntityBean的设计我们以关联表(EnrollTBL)对应的实体Bean为例进行说明,它涉及到两个表的一对多关系。4.2.1定义Home接口4.2.2定义{//---------------//这是一个基于EntityBean的Remote接口,这个EntityBean是基于//Bean-ManagedPersistence的EntityBean,用来对EnrollTBL表进行操作//--------------------------publicArrayListgetCourseItems()throwsRemoteException;publicStringgetStudent_id()throwsRemoteException;publicvoidreplaceCourseItems(ArrayListcourseItems)throwsRemoteException;}4.2.3变量定义publicStringstudent_id;publicArrayListcourseItems;4.2.4增加数据记录实现publicStringejbCreate(Stringstudent_id,ArrayListcourseItems)throwsCreateException{if(courseItems==null||courseItems.size()==0){thrownewCreateException(ejbCreateexception!);}this.student_id=student_id;try{enroll(courseItems);}catch(Exceptione){thrownewEJBException(ejbCreateexception+e.getMessage());}this.courseItems=courseItems;returnstudent_id;}//根据学生ID,插入课程项。privatevoidenroll(ArrayListcourseItems)throwsSQLException{StringinsertStatement=insertintoEnrollTBLvalues(?,?);PreparedStatementps=con.prepareStatement(insertStatement);try{//------------//依次将所有的课程项目插入EnrollTBL表//------------------ps.setString(1,this.student_id);for(inti=0;i<courseItems.size();i++){Stringcourse_id=(String)courseItems.get(i);ps.setString(2,course_id);ps.executeUpdate();}}finally{ps.close();}}//根据学生ID,删除课程项privatevoinenroll()throwsSQLException{StringdeleteStatement=deletefromEnrollTBL+wherestudent_id=?;PreparedStatementps=con.prepareStatement(deleteStatement);try{ps.setString(1,student_id);ps.executeUpdate();}finally{ps.close();}}5部署和运行5.1部署程序5.1.1部署StudentEntityBean,设置事务属性,生成部署文件。5.1.2同样,再部署其他三个EJB组件EnrollSessionBean,CourseEntityBean,EnrollEntityBean。5.1.3部署web组件5.1.4部署整个应用程序5.2运行启动J2EE服务器,启动数据库服务器,打开浏览器。学生登录,即可选课。6结论组件技术使得复杂的多层结构应用系统开发变得容易。采用组件技术能提高开发人员的效率,降低软件的开发和维护成本,提高软件的质量,控制所构建系统的复杂性。UML设计方法的使用能提高软件设计的效率和保证设计的规范性。参考文献[1]CraigLarman.UML和模式应用-面向对象分析与设计导论[M].北京机械工业出版社,2003.10-100.[2]刘特.J2EEEJB应用编程实例[M].北京清华大学出版社,2003.90-150.[3]GeriSchneider.用例分析技术[M].北京机械工业出版社,2003.1-98.
-----------------------------------------------
谢谢请采纳:
不能发连接啊,请在网络
搜索‘珍惜知识网’点进去就是了[ORDA]

阅读全文

与选课系统数据库关系图相关的资料

热点内容
wps怎么把表格里两列数据内容合并 浏览:813
熊猫app是什么 浏览:615
安检文件检查指什么 浏览:918
惠州苹果供应商 浏览:169
小米手机怎么共享网络 浏览:118
微信总是加载数据怎么回事 浏览:203
不同编程语言如何调用系统api 浏览:328
到付的文件一般是什么 浏览:959
图片如何转为文件方式发送 浏览:546
大众奥迪通道数据流手册怎么读懂 浏览:230
友盟微信分享未知错误 浏览:28
下载完win10系统文件打不开 浏览:182
奢侈包微信代理厂家 浏览:754
压缩文件怎么合卷 浏览:125
4kb的txt文件差不多多少字 浏览:984
u盘文件突然变成exe 浏览:164
现在哪些学校初中有学编程的 浏览:402
word查找全选 浏览:599
开工报告附什么文件资料 浏览:150
分区工具app怎么用 浏览:212

友情链接