1、数据库原理实验报告数据库原理实验报告学 院 计算机学院 专 业 计算机科学技术 班 级 1X 级 X 班 学 号 3XX000XXXX 姓 名 XXX 指导教师 明 老 师 ( 201X 年 X 月) 计算机 学院 计算机科学与技术 专业 班 学号: 姓名: 协作者:_无_ 教师评定: 实验题目 一、 数据库及基本表的建立 一、实验目的1、掌握SQL SERVER的查询分析器和企业管理器的使用;2、掌握创建数据库和表的操作;二、实验内容和要求1、分别使用SQL语句、企业管理器(Enterprise Manager)创建数据库;2、使用SQL语句、企业管理器(Enterprise Manager
2、)创建数据库表;三、实验主要仪器设备和材料1计算机及操作系统:PC机,Windows 2000/xp;2数据库管理系统:SQL sever 2000/2003/2005;四、实验方法、步骤及结果测试创建一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。创建:student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student _course表(学生选课成绩表)、teacher_course表(教师上课课表)等。1、创建数据库:确定数据库名称;数据库用于学生管理,命名为SC确定数据库
3、的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。(1)、利用查询分析器(Query Analyzer),使用SQL语句指定参数创建数据库;实现代码及截图:SQL语句查询分析器执行情况:SQL语句及执行结果显示CREATE DATABASE SCON(NAME=SC_DAT,FILENAME=F:SC.mdf,SIZE=30MB,FILEGROWTH=20%)LOG ON(NAME=SC_LOG,FILENAM
4、E=F:SC.ldf,SIZE=2MB,FILEGROWTH=1MB)查询分析器执行情况:SQL语句及执行结果截图显示2、创建基本表利用查询分析器,使用SQL语句方式创建方式将下面各表建立到教学管理数据库中。(1)创建student表字段名代码类型约束学号s_nochar(8)主键姓名snamechar(8)非空性别sexchar(2) 出生日期sbirthdaySmalldatetime学生所在院系编号dnochar(6) 外键专业代码spnochar(8)外键班级编码class_nochar(4) (2)创建Course表字段名代码类型约束课程编号cnochar(10)主键课程名称cnam
5、echar(20)非空专业代码spnochar(8)外键课程类型编号ctnotinyint理论学时lecturetinyint实验学时experimenttinyint开课学期semestertinyint课程学分credittinyint(3)创建student _course表字段名代码类型约束学号s_nochar(8)主键,与student表中s_no 外键关联,级联删除上课编号tcidsmallint主键学生成绩score tinyint (4)创建teacher表 字段名代码类型约束教师编号t_nochar(8)主键教师姓名t_namechar(8)非空性别t_sexchar(2)出
6、生日期t_birthdaysmalldatetime教师所在院系编号dnochar(6) 外键职称tech_titlechar(10)(5)创建系部表(department) 字段名代码类型约束院系编号dnochar(6)主键院系名称dept_namechar(20)非空院系负责人headerchar(8) (6)创建专业信息表(speciality) 字段名代码类型约束专业代码spnochar(8)主键院系编号dnochar(6)外键,非空专业名称spnamechar(20)非空(7)创建teacher_course表字段名代码类型约束上课编号tcidsmallint主键教师编号t_noch
7、ar(8)外键专业代码spnochar(8)外键班级编码class_nochar(4)课程编号cnochar(10)非空,外键学期semesterChar(6)学年schoolyear Char(10)(8)创建班级表(class) 字段名代码类型约束专业代码spnochar(8)主键,与 speciality 表中spno 外键关联,班级编码class_nochar(4)主键,班负责人headerchar(8)3、查看各数据表之间的关系,生成数据库关系图。生成数据库关系图截图显示4、创建各表的实现代码及截图:SQL语句查询分析器执行情况:SQL语句及执行结果显示DEPARTMENT表USE
8、SCGOCREATE TABLE DEPARTMENT(dno char(6),dept_name char(20) not null,header char(8),PRIMARY KEY (dno)TEACHER表USE SCGOCREATE TABLE TEACHER(t_no char(8),t_name char(8) not null,t_sex char(2),t_birthday smalldatetime,dno char(6),teach_title char(10),PRIMARY KEY (t_no),FOREIGN KEY(dno) REFERENCES DEPARTM
9、ENT(dno)SPECIALITY表USE SCGOCREATE TABLE SPECIALITY(spno char(8),dno char(6) not null,spname char(20)not null,PRIMARY KEY (spno),FOREIGN KEY(dno) REFERENCES DEPARTMENT(dno)STUDENT表USE SCGOCREATE TABLE STUDENT(s_no char(8),sname char(8) not null,sex char(2),sbirthday Smalldatetime,dno char(6),spno cha
10、r(8),class_no char(4),PRIMARY KEY (s_no),FOREIGN KEY(dno) REFERENCES DEPARTMENT(dno),FOREIGN KEY(spno) REFERENCES SPECIALITY(spno)COURSE表USE SCGOCREATE TABLE COURSE(cno char(10),cname char(20) not null,spno char(8),ctno tinyint,lecture tinyint,experiment tinyint,semester tinyint,credit tinyint,PRIMA
11、RY KEY (cno),FOREIGN KEY(spno) REFERENCES SPECIALITY(spno)STUDENT_COURSE表USE SCGOCREATE TABLE STUDENT_COURSE(s_no char(8),tcid smallint,score tinyint,PRIMARY KEY (s_no,tcid),FOREIGN KEY(s_no) REFERENCES STUDENT(s_no) )CLASS表USE SCGOCREATE TABLE CLASS(spno char(8),class_no char(4),header char(8),PRIM
12、ARY KEY (spno,class_no),FOREIGN KEY(spno) REFERENCES SPECIALITY(spno)TEACHER_COURSE表USE SCGOCREATE TABLE TEACHER_COURSE(tcid smallint,t_no char(8),spno char(8),class_no char(4),cno char(10) not null,semester char(6),schoolyear char(10),PRIMARY KEY (tcid),FOREIGN KEY(t_no) REFERENCES TEACHER(t_no),FO
13、REIGN KEY(spno) REFERENCES SPECIALITY(spno),FOREIGN KEY(cno) REFERENCES COURSE(cno)查询分析器执行情况:SQL语句及执行结果截图显示5、利用查询分析器修改上述各表。(1)、用INSERT语句向各个表中插入数据录入5 条记录。录入时注意体会外键约束。查询分析器执行情况:SQL语句及执行结果显示向DEPARTMENT表添加5条记录USE SC GOINSERT INTO DEPARTMENT VALUES (6150,计算机学院,小明)INSERT INTO DEPARTMENT VALUES (6151,信息工程学
14、院,小华)INSERT INTO DEPARTMENT VALUES (6152,外国语学院,小天)INSERT INTO DEPARTMENT VALUES (6153,艺术学院,小唯)INSERT INTO DEPARTMENT VALUES (6154,数学学院,秋山澪)向TEACHER表添加5条记录USE SCGOINSERT INTO TEACHER VALUES (js01,小明,男,1990-02-25,6150,NULL)INSERT INTO TEACHER VALUES (js02,小华,女,1991-05-15,6151,NULL)INSERT INTO TEACHER
15、VALUES (js03,小天,女,1987-04-07,6152,NULL)INSERT INTO TEACHER VALUES (js04,小唯,女,1985-07-08,6153,NULL)INSERT INTO TEACHER VALUES (js05,秋山澪,女,1984-11-23,6154,NULL)USE SC GOINSERT INTO SPECIALITY VALUES (zy00,6150,计算机科学与技术)INSERT INTO SPECIALITY VALUES (zy01,6151,信息工程)INSERT INTO SPECIALITY VALUES (zy02,6
16、152,日语专业)INSERT INTO SPECIALITY VALUES (zy03,6153,美术专业)INSERT INTO SPECIALITY VALUES (zy04,6154,离散数学)向STUDENT表添加5条记录USE SC GOINSERT INTO STUDENT VALUES (xh01,黄进杰,男,1991-05-01,6150,zy00,0902)INSERT INTO STUDENT VALUES (xh02,郭富城,女,1991-04-08,6150,zy01,0901)INSERT INTO STUDENT VALUES (xh03,刘德华,女,1991-0
17、7-15,6151,zy02,NULL)INSERT INTO STUDENT VALUES (xh04,黎明,女,1991-07-03,6152,zy03,0905)INSERT INTO STUDENT VALUES (xh00,吴知,女,1988-04-19,6152,zy04,0902)向COURSE表添加5条记录USE SC GOINSERT INTO COURSE VALUES (kc00,数据库,zy00,NULL,NULL,NULL,NULL,NULL)INSERT INTO COURSE VALUES (kc01,图形学,zy01,NULL,NULL,NULL,NULL,NU
18、LL)INSERT INTO COURSE VALUES (kc02,C+编程,zy02,NULL,NULL,NULL,NULL,NULL)INSERT INTO COURSE VALUES (kc03,计算机网络,zy03,NULL,NULL,NULL,NULL,NULL)INSERT INTO COURSE VALUES (kc04,工程绘图,zy04,NULL,NULL,NULL,NULL,NULL)向CLASS表添加5条记录USE SC GOINSERT INTO CLASS VALUES (zy00,0902,小孙)INSERT INTO CLASS VALUES (zy01,090
19、1,小健)INSERT INTO CLASS VALUES (zy02,0901,小红)INSERT INTO CLASS VALUES (zy03,1003,小军)INSERT INTO CLASS VALUES (zy04,0905,小唯)USE SC GOINSERT INTO TEACHER_COURSE VALUES (01,js01,zy01,0902,kc01,NULL,NULL)INSERT INTO TEACHER_COURSE VALUES (02,js02,zy02,1003,kc02,NULL,NULL)INSERT INTO TEACHER_COURSE VALUES
20、 (03,js03,zy03,0905,kc03,NULL,NULL)INSERT INTO TEACHER_COURSE VALUES (04,js04,zy04,0804,kc04,NULL,NULL)INSERT INTO TEACHER_COURSE VALUES (05,js05,zy00,0904,kc00,NULL,NULL)向STUDENT_COURSE表添加5条记录USE SC GOINSERT INTO STUDENT_COURSE VALUES (xh01,1,20)INSERT INTO STUDENT_COURSE VALUES (xh02,4,60)INSERT I
21、NTO STUDENT_COURSE VALUES (xh03,6,70)INSERT INTO STUDENT_COURSE VALUES (xh04,2,90)INSERT INTO STUDENT_COURSE VALUES (xh00,4,100)实验结果截图显示(插入数据的表格)实现代码及截图:共8组(共8个表)(2)、用UPDATE语句更改student表中数据;实现代码:USE SC GOUPDATE STUDENT SET class_no=5354 WHERE s_no=xh00student表更改前的内容截图显示查询分析student表更改后的内容截图显示(3)、用DELE
22、TE语句删除student表中数据;实现代码:DELETE FROM STUDENT WHERE s_no=xh01student表更改前的内容截图显示查询分析student表更改后的内容截图显示五、实验中出现的问题及解决方案1.实验中主要出现外键的建立问题,因为我是先建立一个STUDENTT_COURSE表在建STUDENT表,所以出现找不到STUDENT表的键的问题。2.试验中还出现了删除问题,因为两表之间有外键关系,没设定级联删除。后设定后解决问题。六、思考题1、说明数据库中的表和数据文件的关系。表为数据库中数据存储的基本单位,其数据按行、列存储。每个表具有一表名和列的集合。每一列有一个
23、列名、数据类型、宽度或精度、比例。一行是对应单个记录的列信息的集合。数据文件存放着在数据库中存储的数据,且一个数据库只有一个数据文件。2、数据库中的日志文件能否单独修改?可以。把对数据的修改写到数据库中和把表示这个修改的日子记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生某种故障,即这两个操作只完成了其中一个。所以,可以单独修改数据库中的日志文件而不一定会修改数据。 计算机 学院 计算机科学与技术 专业 7 班 学号:3110006150 姓名: 刘奕欽 协作者:_无_ 教师评定: 实验题目 设计数据完整性_ 一、实验目的1、掌握使用约束实现数据完整性的方法;2、掌握使用触发器实
24、现数据完整性的方法;二、实验内容和要求1、设置主键约束、设置唯一约束、设置外键约束、设置检查约束、设置默认值约束;2、使用企业管理器创建触发器、使用SQL语音创建触发器;三、实验主要仪器设备和材料1计算机及操作系统:PC机,Windows 2000/xp;2数据库管理系统:SQL sever 2000/2003/2005;四、实验方法、步骤及结果测试(一)、使用约束实现数据的完整性(针对实验一中的所建的基本表)要求:1、定义:student表、course表、student_course表、teacher表、department表、speciality表、teacher_course表、cla
25、ss表的主键。写出相应的SQL语句。student表CREATE TABLE student( s_no CHAR(8) PRIMARY KEY, sname CHAR(8) NOT NULL, sex CHAR(2), sbirthday Smaldatetime, dno CHAR(6) ,spno CHAR(8) ,class_no CHAR(4);course表CREATE TABLE course( cno CHAR(10) PRIMARY KEY, cname CHAR(20) NOT NULL, spno CHAR(8),ctno tinyint, lecture tinyint
26、, experiment tinyint, semester tinyint, credit tinyint)teacher表CREATE TABLE teacher( t_no CHAR(8) PRIMARY KEY, t_name CHAR(8) NOT NULL, t_sex CHAR(2), t_birthday Smalldatetime, dno CHAR(6) ,tech_title CHAR(10);teacher_course表CREATE TABLE teacher_course( tcid smallint PRIMARY KEY, t_no CHAR(8),spno C
27、HAR(8), class_no CHAR(4), cno CHAR(10) NOT NULL,semester CHAR(6), schoolyear CHAR(10);Student_course表CREATE TABLE student_course( s_no CHAR(8) ,tcid smallint , PRIMARY KEY(s_no,tcid), score tinyint);Department表CREATE TABLE department( dno CHAR(6) PRIMARY KEY, dept_name CHAR(20) NOT NULL, header CHAR(8);Speciality表CREATE TABLE speciality( spno CHAR(8) PRIMARY KEY, dno CHAR(6) NOT NULL,spname CHAR(20) NOT NULL);Class表CREATE TABLE class( spno CHAR(8) , class_no CHAR(4), PRIMARY KEY(spno,class_no), header CHAR(8) );2、定义以上各表的外键约束,并通过插入新的数据记录来检查外键约束。写出相应的SQL语句,并将检查执行的结果截图显示。外键定义的SQ
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1