数据库上机报告.docx

上传人:b****6 文档编号:6572747 上传时间:2023-01-08 格式:DOCX 页数:18 大小:254.25KB
下载 相关 举报
数据库上机报告.docx_第1页
第1页 / 共18页
数据库上机报告.docx_第2页
第2页 / 共18页
数据库上机报告.docx_第3页
第3页 / 共18页
数据库上机报告.docx_第4页
第4页 / 共18页
数据库上机报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

数据库上机报告.docx

《数据库上机报告.docx》由会员分享,可在线阅读,更多相关《数据库上机报告.docx(18页珍藏版)》请在冰豆网上搜索。

数据库上机报告.docx

数据库上机报告

 

数据库上机报告

 

学院:

电子信息与电气工程学部

专业:

计算机科学与技术

时间:

2014年5月

 

数据库上机报告

 

1、成员分组

陈笛201181326

李梦珂201181216

宫丽迪201181306

王子傲201181176

吴霄201181441

张启帆201181440

二、项目标题

建立一个学生及奖学金管理系统,能够实现教师基本信息和学生基本信息及选课和奖学金管理功能。

能够对学生记录进行增加、删除、更改、查询。

2、系统功能模块图

学生及奖学金管理系统

学生信息系统

教师信息系统

奖学金信息管理

课程信息管理

选课信息管理

基本信息管理

班级信息管理

基本信息管理

教学课程

 

删除

修改

插入

查询

 

3、系统开发、运行环境要求

运行操作系统:

WINDOWSXP

数据库:

SQL2000

编程软件:

MicrosoftVisualStudio2005

4、数据库概念设计(E-R图)

学生E-R图:

 

班级E-R图:

 

课程E-R图:

 

 

选修课程E-R图:

 

教师E-R图:

 

 

教师任课E-R图:

总E-R图:

 

5、数据库逻辑设计

学生(学号,班级号,学生姓名,性别,出生日期)

班级(班级号,班级名称,所属专业,系别)

课程(课程号,课程名称,学分)

选修课程(学号,课程号,成绩)

教师(教师号,教师姓名,性别,出生日期,职称)

教师任课(课程号,教师号)

Student(s_no,class_no,s_name,s_sex,s_birthday)

Class(class_no,class_name,class_special,class_dept)

Course(course_no,course_name,course_score)

Choice(s_no,course_no,score)

Teacher(t_no,t_name,t_sex,t_birthday,t_title)

Teaching(course_no,t_no)

6、数据库物理设计

采取聚簇功能

应把哪些域作为次码建立次索引,建立单码索引还是组合索引,建立多少个为合适,是否建立聚集索引等。

据实际情况来定。

存放在磁盘上

确定系统配置,包括:

同时使用数据库的用户数,同时打开的数据库对象数,使用的缓冲区长度、个数,时间片大小、数据库的大小,装填因子,锁的数目等等。

7、系统主界面及上机代码

1、新建数据库DB06101026

USEmaster

IFEXISTS(SELECTnameFROMmaster.dbo.sysdatabasesWHEREname='DB06102026')

DROPDATABASEDB06101026

GO

CREATEDATABASEDB06101026

--ON(NAME='DB06101026_Data',FILENAME='D:

\DB06101026_Data.MDF')

GO

useDB06102026

GO

2、建基本表

(1)建学生表

CREATETABLEstudent

(s_noCHAR(6)PRIMARYKEY,

class_noCHAR(6)NOTNULL,

s_nameVARCHAR(10)NOTNULL,

s_sexCHAR

(2)CHECK(s_sexIN('男','女')),

s_birthdayDATETIME,

);

(2)建班级表

CREATETABLEClass

(class_noCHAR(6)PRIMARYKEY,

class_nameCHAR(20)NOTNULL,

class_specialVARCHAR(20),

class_deptCHAR(20),

);

(3)建课程表

CREATETABLECourse

(course_noCHAR(5)PRIMARYKEY,

course_nameCHAR(20)NOTNULL,

course_scoreNUMERIC(6,2),

);

(4)建选课表

CREATETABLEChoice

(s_noCHAR(6),

course_noCHAR(5),

scoreNUMERIC(6,1),

);

(5)建教师表

CREATETABLETeacher

(t_noCHAR(6)PRIMARYKEY,

t_nameVARCHAR(10)NOTNULL,

t_sexCHAR

(2)CHECK(t_sexIN('男','女')),

t_birthdayDATETIME,

t_titleCHAR(10),

);

(6)建任课表

CREATETABLETeaching

(course_noCHAR(5),

t_noCHAR(6),

);

3、向表中插入数据

/*Student数据*/

INSERTINTOStudentVALUES('991101','js9901','张彬','男','1981-10-01');

/*班组数据*/

INSERTINTOClassVALUES('js9901','计算机99-1','计算机','计算机系');

/*课程数据*/

INSERTINTOCourseVALUES('01001','计算机基础','3');

/*选修课程数据*/

INSERTINTOChoiceVALUES('991101','01001','58.1');

/*教师数据*/

INSERTINTOTeacherVALUES('000001','李英','女','1964-11-03','讲师');

/*教师任课数据*/

INSERTINTOTeachingVALUES('01001','000001');

4、创建视图

CREATEVIEWTeacher_view

AS

SELECTt_no,t_name,t_title

FROMTeacher

WHEREt_title='副教授'

GO

CREATEVIEWcourse_view

AS

SELECTt_name,course_name

FROMTeaching,Teacher,Course

GO

CREATEVIEWTeaching_view

AS

SELECTt_name,course_no

FROMTeaching,Teacher,Course

GO

CREATEVIEWNotpass_view

AS

SELECTs_no,s_name,course_no,course_name,course_score

FROMStudent,Choice,Course

WHEREcourse_score<60

GO

CREATEVIEWComputerdept_view

AS

SELECTs_no,s_name,class_name,course_no,course_name,score

FROMStudent,Class,Choice,Course

WHEREcourse_name='CS'

5、存储过程定义

(1)、

(2)题:

CREATEPROCEDUREInsert_student

(@s_nochar(6),

@class_nochar(6),

@s_namevarchar(10),

@s_sexchar

(2),

@s_birthdaydatetime--@s_birthdaydatetime='1980-1-1',--设定默认值的方法

AS

INSERTINTOStudentVALUES(@s_no,@class_no,@s_name,@s_sex,@s_birthday)

GO

EXECUTEInsert_student'991105','js9901','张彬','男','1981-10-1';

GO

(3)、(4)题:

CREATEPROCEDUREInsert_course

(@course_nochar(5),

@course_namechar(20),

@course_scorenumeric(6,2)=2

AS

INSERTINTOCourseVALUES(@course_no,@course_name,@course_score)

GO

executeInsert_course

@course_no='110901',@course_name='SQLServer2000',@course_score='8'

GO

executeInsert_course

@course_no='100902',@course_name='.net语言'

GO

(5)、(6)题:

CREATEPROCEDUREquery_student

(@s_nochar(6))

AS

SELECTs_name,class_no,s_sex,s_birthday

fromstudent

WHEREstudent.s_no=@s_no

GO

executequery_student

@s_no='001101'

6、触发器定义

CREATETRIGGERDisplay_trigger

ONStudent

FORINSERT--,UPDATE,DELETE

AS

SELECT*FROMStudent

GO

7、执行存储过程和检验触发器功能

EXECUTEInsert_Student'991101','js9901','张彬','男','1981-10-1'

GO

 

8、工程图和对应的数据库创建脚本

/*==============================================================*/

/*DBMSname:

ORACLEVersion11g*/

/*Createdon:

2014/3/3116:

09:

32*/

/*==============================================================*/

 

altertablechoose_course

dropconstraintFK_CHOOSE_C_REFERENCE_STUDENT;

altertablechoose_course

dropconstraintFK_CHOOSE_C_REFERENCE_COURSE;

altertablerenke

dropconstraintFK_RENKE_REFERENCE_TEACHER;

altertablerenke

dropconstraintFK_RENKE_REFERENCE_TEACHER_;

altertablestudent

dropconstraintFK_STUDENT_REFERENCE_CLASS;

altertabletheach

dropconstraintFK_THEACH_REFERENCE_TEACHER;

altertabletheach

dropconstraintFK_THEACH_REFERENCE_STUDENT;

droptablechoose_coursecascadeconstraints;

droptableclasscascadeconstraints;

droptablecoursecascadeconstraints;

droptablerenkecascadeconstraints;

droptablestudentcascadeconstraints;

droptableteachercascadeconstraints;

droptableteacher_classcascadeconstraints;

droptabletheachcascadeconstraints;

/*==============================================================*/

/*Table:

choose_course*/

/*==============================================================*/

createtablechoose_course

idVARCHAR2(20),

coursedeptVARCHAR2(20)

);

/*==============================================================*/

/*Table:

class*/

/*==============================================================*/

createtableclass

classdeptVARCHAR2(20)notnull,

departmentVARCHAR2(50),

specialtyVARCHAR2(50),

classnameVARCHAR2(50),

constraintPK_CLASSprimarykey(classdept)

);

/*==============================================================*/

/*Table:

course*/

/*==============================================================*/

createtablecourse

coursedeptVARCHAR2(20)notnull,

scoreNUMBER(10),

constraintPK_COURSEprimarykey(coursedept)

);

/*==============================================================*/

/*Table:

renke*/

/*==============================================================*/

createtablerenke

teacherNumVARCHAR2(20),

课程号VARCHAR2(20),

teachernoVARCHAR2(20)

);

/*==============================================================*/

/*Table:

student*/

/*==============================================================*/

createtablestudent

idVARCHAR2(20)notnull,

classdeptVARCHAR2(20),

sexVARCHAR2(10),

classVARCHAR2(20),

birthdayDATE,

nameVARCHAR2(50),

constraintPK_STUDENTprimarykey(id)

);

/*==============================================================*/

/*Table:

teacher*/

/*==============================================================*/

createtableteacher

teacherNumVARCHAR2(20)notnull,

nameVARCHAR2(50),

jobVARCHAR2(50),

birthdayDATE,

constraintPK_TEACHERprimarykey(teacherNum)

);

/*==============================================================*/

/*Table:

teacher_class*/

/*==============================================================*/

createtableteacher_class

课程号VARCHAR2(20)notnull,

constraintPK_TEACHER_CLASSprimarykey(课程号)

);

/*==============================================================*/

/*Table:

theach*/

/*==============================================================*/

createtabletheach

teacherNumVARCHAR2(20),

idVARCHAR2(20)

);

altertablechoose_course

addconstraintFK_CHOOSE_C_REFERENCE_STUDENTforeignkey(id)

referencesstudent(id);

altertablechoose_course

addconstraintFK_CHOOSE_C_REFERENCE_COURSEforeignkey(coursedept)

referencescourse(coursedept);

altertablerenke

addconstraintFK_RENKE_REFERENCE_TEACHERforeignkey(teacherNum)

referencesteacher(teacherNum);

altertablerenke

addconstraintFK_RENKE_REFERENCE_TEACHER_foreignkey(课程号)

referencesteacher_class(课程号);

altertablestudent

addconstraintFK_STUDENT_REFERENCE_CLASSforeignkey(classdept)

referencesclass(classdept);

altertabletheach

addconstraintFK_THEACH_REFERENCE_TEACHERforeignkey(teacherNum)

referencesteacher(teacherNum);

altertabletheach

addconstraintFK_THEACH_REFERENCE_STUDENTforeignkey(id)

referencesstudent(id);

 

9、心得与体会

一个学期的数据库课结束了,通过这次学习,我们了解到数据库的功能的强大,在现在这个社会,数据库是一个不可缺少的工具。

我们学习的目的是在熟练了解课本知识的基础上操作软件去做程序,在上机过程中从分的掌握有关知识。

数据库上机中所使用的SQL结构化查询语句,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

同时它也是数据库脚本文件的扩展名。

可以帮我们做到面向数据库执行查询、取回数据、插入新的记录、更新数据库中的数据、删除记录、创建新数据库、新表和视图、设置表、存储过程和视图的权限,功能非常强大。

这几次上机主要做的是老师给我们的题目(具体如上操作代码),首先了解了如何建立空表,然后插入数据,查询···在上机过程中,每个步骤,每个点都要细心,要反复查看程序是否写正确。

在上机过程中我也遇到几个问题,在建立视图时没有添加GO,运行时不能运行,总是出现什么不能重复,第一行等。

但是在上机过程中遇到的问题可以让我们了解更多,在吸取教训的同时增长知识。

其实在建表时开始我用的企业管理器,那个工具很简单,但是在此过程中没有学到什么实质性的东西,后来改用了写程序,从中学到了很多。

通过这次的学习,我们了解了数据库的概念与重要性,还有今后的发展方向,明白数据库的应用是广泛的,不可小觑,在今后应该再加强学习。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1