xx大学计算机与信息学院
设计性实验报告
班 级:
学 号:
姓 名:
实验项目名称: 概念模型的建立
实验项目性质: 设计性实验
实验所属课程: 数据库系统原理教程
实验室(中心): 软件实验中心
指 导 教 师 :
实验完成时间: 20## 年 4 月 27 日
一、实验目的
1、 根据所学知识,能正确的运用他们解决实际问题。
2、 通过实际操作,增加对数据库这门课程的理解,从而,更深入地学习这门课程。
3、 根据给定题目,把现实世界中的具体事物抽象为某一概念级的模型,即建立整个问题的概念模型,建立起数据库设计人员与用户之间的交流,为数据模型的建立奠定基础。
4、 通过实验,能快速、正确地建立概念模型;学会认识和分析现实世界,根据对用户的需求,能准确无误的做到:
(1) 如何从模型中抽取实体;
(2) 如何建立起实体间的联系,准确地标明实体之间是一对一、一对多、多对多的关系;
(3) 能够从各实体和实体间的联系中,抽取出数据处理的过程。
二、实验内容及要求
<一>实验内容:
通过运用一些软件如power designer、编辑工具如word等,对n个实体建立概念模型,通过该方法可以建立直观的概念模型,再通过该模型来建立逻辑模型和物理模型;
<二>实验要求:
1、按照老师所说的,建立起15个左右的实体模型,即大学需要使用计算机管理学生信息,成绩信息等,具体要求如下:
(1) 学生信息管理,包含学生基本信息,如学号、姓名、性别、出生日期等;还要包括学生的简历、社会关系等。
(2) 课程管理,包含整个学校开设的多有课程;
(3) 教学计划管理,包含设定各系各专业在哪学期开设什么样的课程,学分多少;
(4) 学生选课管理,包含学生在某学期选择什么样的课程;
(5) 学生成绩管理,包含学生各科成绩、是否补考、补考成绩;
(6) 学生奖惩管理,管理学生在校期间所获得的奖励和惩罚记录。
2、根据以上要求,为该大学的计算机管理系统建立数据库的概念模型。
三、实验设备及软件
设备:微型计算机一台;
软件:power designer
四、设计方案
㈠ 题目
概念模型的建立
㈡ 设计的主要思路
1、根据前面所要求的应该做的内容及其客观要求,按照步骤进行;
2、进入power designer环境中
3、通过点击相应的图标,建立相应的对象。如实体的建立联系的建立等。共建立了15个实体,学生,课程,学生选课等,在该模型中表明了个实体间的联系,如学生和课程之间有一对多的联系课程和学生选课之间也有一对多的联系。
3.1在模型中带有下划线的属性是该实体的主码,即用该属性来标识唯一的实体,即区别其他实体的属性。
3.2如果实体没有主码,两个实体减得一对多的联系要带上依赖的性质。
4、建立实体属性(双击实体对象)
5、按输入实体的名称(name)、实体代码(code)、实体标签(label)等的顺序,点击Attributes(属性)按钮,进入实体的属性输入框,在弹出框中输入多个属性,包含属性的名称(name)、代码(code)、数据类型(data type)、对于数据类型可以选择
6、转换为SQL代码,转换之前先要对模型进行检查查看是否有错误或警告,若果没有进行转换;
㈢ 主要功能
1、 通过整体把握,能够对学生的基本信息(如学号、姓名、性别出生日期等)进行统一的、有效地管理;
2、 能清晰的描绘出关于学生实体以及有和学生有关系的实体情况,可以对学校开设的课程进行管理;
3、 对教学计划进行管理;
4、 对学生选课进行管理;
5、 对学生成绩进行管理;
6、 对学生的奖惩情况进行记录管理等、、、、、、、、
五、主要代码
/* ============================================================ */
/* Database name: MODEL_1 */
/* DBMS name: Microsoft SQL Server 6.x */
/* Created on: 20##-4-21 12:54 */
/* ============================================================ */
/* ============================================================ */
/* Table: COURSE */
/* ============================================================ */
create table course
(
cn varchar(15) not null,
cm varchar(20) null ,
constraint pk_course primary key (cn)
)
go
/* ============================================================ */
/* Table: PS */
/* ============================================================ */
create table ps
(
qz varchar(20) not null,
ty varchar(20) not null,
dy varchar(20) not null,
constraint pk_ps primary key (qz)
)
go
/* ============================================================ */
/* Table: MZ */
/* ============================================================ */
create table mz
(
hz varchar(20) not null,
ssmz varchar(20) not null,
constraint pk_mz primary key (hz)
)
go
/* ============================================================ */
/* Table: CLASS */
/* ============================================================ */
create table class
(
csn varchar(20) not null,
constraint pk_class primary key (csn)
)
go
/* ============================================================ */
/* Table: SZ */
/* ============================================================ */
create table sz
(
zydm varchar(20) not null,
zymc varchar(20) null ,
constraint pk_sz primary key (zydm)
)
go
/* ============================================================ */
/* Table: LB */
/* ============================================================ */
create table lb
(
bn varchar(20) not null,
bm varchar(20) not null,
constraint pk_lb primary key (bn)
)
go
/* ============================================================ */
/* Table: COMPLETE */
/* ============================================================ */
create table complete
(
jsdm varchar(20) not null,
jsxm varchar(20) not null,
constraint pk_complete primary key (jsdm)
)
go
/* ============================================================ */
/* Table: TEACHERJIBIE */
/* ============================================================ */
create table teacherjibie
(
jibiedaima varchar(20) not null,
jiebiemingcheng varchar(20) not null,
constraint pk_teacherjibie primary key (jibiedaima)
)
go
/* ============================================================ */
/* Table: CA */
/* ============================================================ */
create table ca
(
stm varchar(20) not null,
constraint pk_ca primary key (stm)
)
go
/* ============================================================ */
/* Table: TEACHER */
/* ============================================================ */
create table teacher
(
cn varchar(15) not null,
tn varchar(20) not null,
tm varchar(20) not null,
ts varchar(4) not null,
constraint pk_teacher primary key (cn, tn)
)
go
/* ============================================================ */
/* Index: RELATION_64_FK */
/* ============================================================ */
create index relation_64_fk on teacher (cn)
go
/* ============================================================ */
/* Table: STUDENT */
/* ============================================================ */
create table student
(
zydm varchar(20) not null,
xh varchar(15) not null,
xb char(1) not null,
hz varchar(20) null ,
bn varchar(20) null ,
qz varchar(20) null ,
jsdm varchar(20) null ,
xm varchar(20) not null,
constraint pk_student primary key (zydm, xh, xb)
)
go
/* ============================================================ */
/* Index: RELATION_66_FK */
/* ============================================================ */
create index relation_66_fk on student (zydm)
go
/* ============================================================ */
/* Index: RELATION_70_FK */
/* ============================================================ */
create index relation_70_fk on student (hz)
go
/* ============================================================ */
/* Index: RELATION_71_FK */
/* ============================================================ */
create index relation_71_fk on student (bn)
go
/* ============================================================ */
/* Index: RELATION_72_FK */
/* ============================================================ */
create index relation_72_fk on student (qz)
go
/* ============================================================ */
/* Index: RELATION_87_FK */
/* ============================================================ */
create index relation_87_fk on student (jsdm)
go
/* ============================================================ */
/* Table: LESSON */
/* ============================================================ */
create table lesson
(
cn varchar(15) not null,
zydm varchar(20) not null,
xh varchar(15) not null,
xb char(1) not null,
sc varchar(5) not null,
constraint pk_lesson primary key (cn, zydm, xh, xb)
)
go
/* ============================================================ */
/* Index: RELATION_62_FK */
/* ============================================================ */
create index relation_62_fk on lesson (zydm, xh, xb)
go
/* ============================================================ */
/* Index: RELATION_63_FK */
/* ============================================================ */
create index relation_63_fk on lesson (cn)
go
/* ============================================================ */
/* Table: DM */
/* ============================================================ */
create table dm
(
zydm varchar(20) not null,
dn varchar(20) not null,
constraint pk_dm primary key (zydm, dn)
)
go
/* ============================================================ */
/* Index: RELATION_67_FK */
/* ============================================================ */
create index relation_67_fk on dm (zydm)
go
/* ============================================================ */
/* Table: JLQK */
/* ============================================================ */
create table jlqk
(
jlxm varchar(20) not null,
zydm varchar(20) null ,
xh varchar(15) null ,
xb char(1) null ,
constraint pk_jlqk primary key (jlxm)
)
go
/* ============================================================ */
/* Index: RELATION_141_FK */
/* ============================================================ */
create index relation_141_fk on jlqk (zydm, xh, xb)
go
/* ============================================================ */
/* Table: INTERNET */
/* ============================================================ */
create table internet
(
swzh varchar(20) not null,
zydm varchar(20) null ,
xh varchar(15) null ,
xb char(1) null ,
constraint pk_internet primary key (swzh)
)
go
/* ============================================================ */
/* Index: RELATION_88_FK */
/* ============================================================ */
create index relation_88_fk on internet (zydm, xh, xb)
go
/* ============================================================ */
/* Table: RELATION_68 */
/* ============================================================ */
create table relation_68
(
cn varchar(15) not null,
csn varchar(20) not null,
constraint pk_relation_68 primary key (cn, csn)
)
go
/* ============================================================ */
/* Index: RELATION_68_FK2 */
/* ============================================================ */
create index relation_68_fk2 on relation_68 (cn)
go
/* ============================================================ */
/* Index: RELATION_68_FK */
/* ============================================================ */
create index relation_68_fk on relation_68 (csn)
go
/* ============================================================ */
/* Table: RELATION_77 */
/* ============================================================ */
create table relation_77
(
zydm varchar(20) not null,
xh varchar(15) not null,
xb char(1) not null,
stm varchar(20) not null,
constraint pk_relation_77 primary key (zydm, xh, xb, stm)
)
go
/* ============================================================ */
/* Index: RELATION_77_FK2 */
/* ============================================================ */
create index relation_77_fk2 on relation_77 (zydm, xh, xb)
go
/* ============================================================ */
/* Index: RELATION_77_FK */
/* ============================================================ */
create index relation_77_fk on relation_77 (stm)
go
/* ============================================================ */
/* Table: RELATION_82 */
/* ============================================================ */
create table relation_82
(
jibiedaima varchar(20) not null,
cn varchar(15) not null,
tn varchar(20) not null,
constraint pk_relation_82 primary key (jibiedaima, cn, tn)
)
go
/* ============================================================ */
/* Index: RELATION_82_FK2 */
/* ============================================================ */
create index relation_82_fk2 on relation_82 (jibiedaima)
go
/* ============================================================ */
/* Index: RELATION_82_FK */
/* ============================================================ */
create index relation_82_fk on relation_82 (cn, tn)
go
alter table teacher
add constraint fk_teacher_relation__course foreign key (cn)
references course (cn)
go
alter table student
add constraint fk_student_relation__sz foreign key (zydm)
references sz (zydm)
go
alter table student
add constraint fk_student_relation__mz foreign key (hz)
references mz (hz)
go
alter table student
add constraint fk_student_relation__lb foreign key (bn)
references lb (bn)
go
alter table student
add constraint fk_student_relation__ps foreign key (qz)
references ps (qz)
go
alter table student
add constraint fk_student_relation__complete foreign key (jsdm)
references complete (jsdm)
go
alter table lesson
add constraint fk_lesson_relation__student foreign key (zydm, xh, xb)
references student (zydm, xh, xb)
go
alter table lesson
add constraint fk_lesson_relation__course foreign key (cn)
references course (cn)
go
alter table dm
add constraint fk_dm_relation__sz foreign key (zydm)
references sz (zydm)
go
alter table jlqk
add constraint fk_jlqk_relation__student foreign key (zydm, xh, xb)
references student (zydm, xh, xb)
go
alter table internet
add constraint fk_internet_relation__student foreign key (zydm, xh, xb)
references student (zydm, xh, xb)
go
alter table relation_68
add constraint fk_relation_relation__course foreign key (cn)
references course (cn)
go
alter table relation_68
add constraint fk_relation_relation__class foreign key (csn)
references class (csn)
go
alter table relation_77
add constraint fk_relation_relation__student foreign key (zydm, xh, xb)
references student (zydm, xh, xb)
go
alter table relation_77
add constraint fk_relation_relation__ca foreign key (stm)
references ca (stm)
go
alter table relation_82
add constraint fk_relation_relation__teacherj foreign key (jibiedaima)
references teacherjibie (jibiedaima)
go
alter table relation_82
add constraint fk_relation_relation__teacher foreign key (cn, tn)
references teacher (cn, tn)
go
六、测试结果及说明
1、 首先进入power designer环境中,通过点击相应的图标,建立相应的对象。
标明实体的属性,并连接好实体与实体间对应的关系。
2、编写,调试
3、生成代码
七、实验体会
转眼间,数据库的学习已结束了,经过一个学期的数据库课程的学习,使得我对数据库的一些基本知识有了完整的理解,同时,也使得我掌握了有关创建数据库以及对数据库的操作的一些基础知识。虽然这门课涉及到以前的知识不多,是一门从头学起的课程,在学习的过程中有一些难度,但经过我长时间的不断努力,即使基础不是很好,但仍能跟上老师的脚步,不断获得一些必要的有关数据库的知识。
在老师将课程教授的过程中,可以说,课堂知识是比较理论化并且十分枯燥乏味的,因为我们没有实际操作,没有实践,也就不知道是怎么回事,从而,上机实验是必不可少的。
虽然上课时间较少,实验时间自然也是少得可怜,但每次上机实验的内容都能够让我们了解到如何将学到的知识转化为实际的应用,使得数据库的知识更加具有实际现实意义。我们只有在实践中才能找到知识漏洞,并且发现很多我们已经学过的东西还没有理解到位,从而我们才能不断改进,不断进步,使得数据库知识灵活运用于实际,更好地用来解决实际问题。通过更多的上机实践使我更加深刻的理解了所学知识,学到了更多的关于实际操作的知识和技巧,培养了自主学习的能力。
在实验的过程中,也让我有种顿悟的感觉:很多事情不是想象中的那么简单。我们只有通过实验,在实践中发现并改正问题,才能不断提升自己的能力,增强自己解决问题的能力,培养自信。不管做什么,我们都要始终相信自己,千万不能畏惧和退缩,不要怕遇到困难什么都勇于并敢于尝试,只有不断努力,不断尝试,才有可能成功。“千里之行始于足下”,有些开始认为很难的事在我们尝试之后可能会发现原来他并没有你以前觉得的那样困难和高不可攀,其实,我们自己也是可以的。要相信:我能行!!!!!