当前位置:文档之家› 数据库原理实验报告

数据库原理实验报告

数据库原理实验报告系别电子信息系专业计算机科学与技术班级学号*******姓名龚敏指导教师李爱英一.概要设计1.教学数据库各表的关系模式:(加下线的属性为主键)学生(学号,姓名,性别, 出生日期,所在系)英文缩写对照:student(s_no,s_name,s_sex,s_age,s_birthday,s_department)课程(课程号,课程名,学分)英文缩写对照:course(c_no,c_name,c_score)教师(职工号,姓名,性别,职称)英文缩写对照:teacher(t_no,t_name,t_sex,t_duty)选课(学号,课程号,成绩)英文缩写对照:choice(s_no,c_no,score)讲授(职工号,课程号)英文缩写对照:teaching(t_no,c_no)2.教学数据库E-R图:实体:课程,学生,选课联系:选课(学生同课程之间多对多的联系m:n),讲授(教师同课程之间多对多的联系m:n)。

二.逻辑设计代码:use mastergocreate database stu go use stu gocreate table student(s_no char(8) not null primary key,s_name char(8) not null ,s_sex varchar(8) not null,s_birthday smalldatetime not null,s_department varchar(13) not null) drop table studentuse stugocreate table teacher(t_no char(8) not null primary key,t_name char(8) not null,t_sex varchar(8) not null,t_duty char(8) not null)create table course(c_no char(8) not null primary key,c_name char(8) not null,c_score varchar not null)create table choice(s_no char(8) not null primary key,c_no char(8) not null primary key, score varchar not null)create table teaching(t_no char(8) not null primary key,c_no char(8) not null primary key) insert studentvalues('101','袁敏','女','1982-2-3','机电') insert studentvalues('102','李志强','男','1983-4-5','计算机')insert studentvalues('103','张亮','男','1984-10-9','建筑')insert studentvalues('104','李平','女','1984-5-6','计算机')insert student values('105','王丽','女','1983-2-1','机电') insert studentvalues('106','刘明耀','男','1982-4-16','计算机')select*from studentinsert coursevalues('1011','C语言','6')insert coursevalues('1012','数据结构','4')insert coursevalues('1013','微机原理','6')insert coursevalues('1014','数字电路','5')insert coursevalues('1015','高等数学','6')select*from courseinsert teachervalues('0511','张大维','男','副教授') insert teachervalues('0512','林楠','女','讲师')insert teachervalues('0513','韩晓颖','女','副教授') insert teachervalues('0514','李辉','男','讲师')insert teachervalues('0515','孙丽','女','助教')select*from teacherinsert choicevalues('101','1011','82.5')insert choicevalues('101','1012','79')insert choicevalues('102','1012','92.5')insert choicevalues('102','1013','81') insert choicevalues('103','1011','68') insert choicevalues('104','1012','54') insert choicevalues('105','1013','87') select*from choiceinsert teaching values('0511','1013') insert teaching values('0512','1012') insert teaching values('0513','1011') insert teaching values('0514','1014') insert teaching values('0515','1015') select*from teaching关系图:数据查询select*from student 学生studentselect*from course 课程course select*from teacher 教师teacherselect*from choice选课choiceselect*from teaching讲授teaching1修改表中的记录update studentset s_birthday='1985-1-12' where s_name='李志强' select*from student得执行结果:update studentset s_name='林非',s_sex='女',s_birthday='1984-7-21' where s_no='105'Select*From student得执行结果:2查询中使用聚合函数select count(*)from choicewhere s_no='101'执行结果为3Order by子句对查询结果排序SELECT t_no,c_noFROM teachingORDER BY t_no DESC执行结果为视图1建立视图use stugocreate view stud_viewasselect *from studentwhere s_sex='男'2取得视图的查询结果select *from stud_view执行结果为3删除视图drop view stud_view4利用视图更新记录update stud_view1Set s_department='计算机'Where s_no='103'select *from stud_view1执行结果是三.小结在我看来,数据库课程设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求。

通过这次的课程设计,可以巩固我们对数据库基本原理和基础理论的理解,掌握数据库应用系统设计开发的基本方法,进一步提高我们综合运用所学知识的能力。

因为数据库的设计需要人性化,考虑各个方面的问题,这就需要设计者本身有这方面的能力。

同时也反映出自己的许多不足,掌握知识不是很牢固,很难把书本上的知识运用到实际,这是自己的一个缺点和不足,同时我还发现自己考虑问题不够全面,有的问题是实际操作中会遇到的,但是自己却很难把这一问题体现在设计中并很好的解决它。

这是以后学习中需要引以为戒的地方。

这个系统的功能虽然有所欠缺,但是心理还是比较高兴的,因为这是到目前为止自己开发的第一个实用系统,在以后的学习中一定回经常复习数据库的知识,一步步的提高自己的开发数据库系统的能力。

知识的获得是无止境的,只要你想学,只要你行动,没有什么会难倒我们的。

回首这一个多星期的课程设计,我很欣慰。

因为我有了动力,有了勇气。

相关主题