电子科技大学数据库原理及应用实验报告_第1页
电子科技大学数据库原理及应用实验报告_第2页
电子科技大学数据库原理及应用实验报告_第3页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机专业类课程验报告课程名称:数据库原理及应用学 院:计算机科学与工程 专 业:计算机科学与技术 学生:希学 号:20指导教师:期:14 年 5月电子科技大学实验报告实验一一、实验名称:创建数据库二、实验学时: 4三、实验容和目的:实验容 :创建数据库: manage该数据库包括四个表:建议:在定义表中字段时,尽量使用意义的英文单词。系别代码表“表名:dep教师表”表名:teacher学生表”表名:student课程表”表名:course选课表”表名:sc为每个表准备大约 10 记录,使用 Insert 语句将这些数据插入到相应表中 数据录入完成后,将数据库备份到磁盘上,在以后的的试验中备用

2、。 实验目的: 本实验要求学生掌握创建数据库的方法及相关操作四、实验原理:使用数据库管理系统 DB DDL创建数据库及数据库对象。五、实验器材笔记本一台 CPU core i7-3610QM 存 8GB 系统 windows8.1 64 位专业版 dbms: Sql server 2012六、实验步骤:(1) 创建数据库: STUDCreate database stud;(2)创建表,表的详细说明见表格"系别代码表"表名:dep其结构如下:(该表的主键为“系代码”)字段名称字段类型字段大小/格式是否可为空约束条件系代码depidVARCHAR8否PK系名 dep name

3、VARCHAR20否Not null"教师表”表名:teacher其结构如下:(该表的主键为“教师号”)字段名称字段类型字段大小/格式是否可为空约束条件教师号tidVARCHAR8否PK教师名tnameVARCHAR8否Not null职称titleVARCHAR8是所属院系编号depidVARCHAR8是"学生表”表名:stude nt其结构如下:(该表的主键为“学生号”)字段名称字段类型字段大小/格式是否可为空约束条件学号sidVARCHAR11否PK学生名snameVARCHAR8否Not null院系编号depidVARCHAR8是性别sexVARCHAR2否出生年

4、月birthdDATETIME是semailVARCHAR20是家庭地址homeaddrVARCHAR40是"课程表”表名:course其结构如下:(该表的主键是课程号)字段名称字段类型字段大小/格式是否可为空约束条件课程号cidVARCHAR8否PK课程名cnameVARCHAR30否Not null学分 creditsDECIMAL3,1(小数位数1)否Not null“选课表”表名:sc其结构如下:(该表的主键是课程号)字段名称字段类型字段大小/格式是否可为空约束条件学号sidVARCHAR11否Not null, PK课程号cidVARCHAR8否Not null, PK教师

5、号tidVARCHAR8否Not null成绩scoreDECIMAL3,1(小数位数1)是(3) 备份数据库BACKUP DATABASE stud TO DISK = 'd:stud.bak' WITH INIT;(4) 恢复数据库RESTORE DATABASE stud FROM DISK = 'd:stud.bak' WITH REPLACE;七、实验数据及结果分析:(1) create database stud(2) create table dep(depid varchar(8) primary key, dep name varchar(20

6、) not n ull )create table teacher( tid varchar(8) primary key, tn ame varchar(8) not n ull.title varchar(8), depid varchar(8)create table student(sid varchar(11) primary key,sname varchar(8) not null, depid varchar(8), sex varchar(2) not null, birthd date ,semail varchar(20) , homeaddr varchar(40)cr

7、eate table course(cid varchar(8) primary key,cname varchar(30) not null, credits decimal not null)create table sc(sid varchar(11) not null,cid varchar(8) not null,tid varchar(8) not null,score decimal, primary key(sid,cid)( 3) backup database stud to disk ='d:databasestud.bak' with init;( 4)

8、 restore database stud from disk= 'd:databasestud.bak' with replace;八、实验结论、心得体会和改进建议:1、实验结论2、心得体会1) Sql语言用起来十分方便。2) 积累了宝贵操作经验。3、改进建议这几个实验可以合并成一个实验,可以减少实验报告的量。电子科技大学实验报告实验二一、实验名称:数据库的完整性二、实验学时: 4三、实验容和目的:实验容:设置约束条件 设置教师表,学生表中的院系字段 (depid) 的外键约束 设置选课表的三个外键约束(学号,课程号,教师号) 设置选课表中成绩字段的取值围是0 到 100设

9、置学生表中性别字段的取值为“男”或“女”设置学生表电子字段的取值必须包含符号实验目的: 通过设置表的检查约束、外键约束体会数据库完整性的含义,约束条件下数据修改操作的限制,以及实 现修改操作的技巧。四、实验原理:数据库库的完整性、约束条件、结构化查询语言。五、实验器材笔记本一台 CPU core i7-3610QM 存 8GB 系统 windows8.1 64 位专业版 dbms: Sql server 2012六、实验步骤:1. 恢复数据库,将数据库备份 stud恢复到DB2中2. 执行SQL命令完成实验容3. 备份数据库七、实验数据及结果分析:1 )restore database stu

10、d from disk= 'd:databasestud.bak' with replace;2) alter table teacher add foreign key (depid) references dep(depid);alter table student add foreign key (depid) references dep(depid);alter table sc add foreign key (sid) references student(sid);alter table sc add foreign key (cid) references c

11、ourse(cid);alter table sc add foreig n key (tid) references teacher(tid);alter table sc add check(score betwee n 0 and 100);alter table student add check(sex in ('男','女');alter table student add check(semail like '%');3) restore database stud from disk= 'd:databasestud.ba

12、k' with replace;八、实验结论、心得体会和改进建议:1、实验结论2、心得体会积累了操作经验。对数据库有了更深刻的理解。3、改进建议这几个实验可以合并成一个实验,可以减少实验报告的次数。电子科技大学实验报告实验三一、实验名称:数据查询二、实验学时: 4三、实验容和目的:1、实验容(1) 查询年龄在 3032 之间的学生(通过出生日期和当前日期计算年龄)year(getdate()-year(birthd)(2) 查询所有副教授的信息(3) 查询姓“”的学生的学号、 、地址(4) 求每门课程的选课人数、最高分、最低分、平均分,要求在查询结果中显示课程号和课程名;(5) 查询既

13、选修了 1 号课程,又选修了 2 号课程的学生学号(6) 查询既选修了 1 号课程,又选修了 2 号课程的学生(7) 查询选修了全部课程的学生2、实验目的练习用SELECT查询语句,设置查询条件,实现单表查询。练习使用SELECT语句从多个表中查询数据,表的连接、左外连接、右外连接的使用以及设置连接条件,理解连接条件和查询条件的在目的和功能上 的区别。四、实验原理:结构化查询语言、表的连接、关系运算、分组查询五、实验器材笔记本一台 CPU core i7-3610QM 存 8GB 系统 windows8.1 64 位专业版 dbms: Sql server 2012六、实验步骤:1. 恢复数据

14、库,将数据库备份 stud恢复到DB2中2. 执行SQL命令完成实验容七、实验数据及结果分析:1 、restore database stud from disk= 'd:databasestud.bak' with replace;2、 select sname "", (datepart(year,getdate()-datepart(year,birthd) " 年龄 "from studentwhere (datepart(year,getdate()-datepart(year,birthd) between 30 and 32

15、;select *from teacherwhere title=' 副教授 'select sid "学号",sname "”,semail "地址”from studentwhere sname like '%' ;select course.cid "课程号 ",cname "课程名称 ",count(*) " 选课人数 ",max(score) " 最高分 ", min(score) " 最低分 ",avg(scor

16、e) " 平均分 " from sc ,coursewhere course.cid=sc.cidgroup byame,course.cid;select scl.sidfrom sc sc1,sc sc2where sc1.sid=sc2.sid and sc1.cid=1 and sc2.cid=2;select sn amefrom stude nt ,sc sc1,sc sc2where stude nt.sid=sc1.sid and sc1.sid=sc2.sid and sc1.cid=1 and sc2.cid=2;select sn amefrom st

17、ude nt , sc sc1,sc sc2,sc sc3where student.sid=sc1.sid and sc1.sid=sc2.sid and sc1.sid=sc3.sid and sc1.cid=1 and sc2.cid=2 and sc3.cid=32 )八、实验结论、心得体会和改进建议:1、实验结果结:果山消息1III锚3211乘三123张五 王三31302张四4王九303张五1tii6032七“帥电 tit 1电dpil盖履易懺攪6034干二学吕王四1£406010101 张二 KULL李六224W0101C2 強囚 HJLL6240010103 秋王 JU

18、LL课理号溟程名称送渥人勘最低分罕均分11计算机组成原t里55530.3333331i张二i22埶撼W6961 54j ?3. 00000033教孵6S259?4艇餐箔2张四|mi*«! im|3昧五1:2406010101 :224060101024T-32406010103424D0D2O1O15王四b24M02010Z6Z4D6030101李六2、心得体会1 )充分理解了聚集函数和group by的用法2)对自连接的理解更加深刻bak备份文件。3、改进意见数据太少,若单条录入有显得繁杂,希望以后有现成的电子科技大学实验报告实验四、实验名称:数据库建模、实验学时: 4三、实验容和

19、目的:1实验容(1) 使用PDM以图形化界面方式创建表及确定各表之间的关系,在实验报告中给出模型图(2) 通过“生成数据库”功能生成创建数据库的脚本,在实验报告中给出脚本容 ;2、实验目的本实验要求学生学习数据库建模工具PowerDesigner的使用方法,掌握最基本的使用方法。四、实验原理:实验步骤中已详细介绍。五、实验器材笔记本一台 CPU core i7-3610QM 存 8GB 系统 windows8.1 64 位专业版 powerdesigner 版本:六、实验步骤:1. 通过生成Physical Data Model ( PDM以图形化界面创建表及确定各表之间的关系。(1) 打开了

20、 PD以后,选择 New,并在 Model type 里面选择 Physical Data Model,同时选择可使用的DBMS女口 DB2或My SQL 4.0,然后点击确定,如图 1所示。图1(2) 从Palette工具面板中单击创建 Table的工具图标,并在图表窗口中点击一下便可产生一个新的Table (默认名称为 Table_1 ,可修改该名称),如图2所示:图2(3) 选中该表,右击选择” Properties ”对该表进行编辑(修改名称、增加列等)如图3所示:I TibX Prop erti qk - eIndenttstudnt)1n|x|Table 1E-ulariepend

21、lenciEMappingG-ener al.oik TnfoTrevi erExtended Depend电nriHet*| CAlyBhS | Indexes KeysCheck确定 I取稍I应用鱼)I 帮肋 I图3(4) 选择” ColumnS'标签,如图 3中的红色矩形所示。便可以给student这个表添加列了。在添In 2d中列的时候应该指明列的类型,并指是否允许为空,是否为主键等各种属性,如图4所示:Mapping |Notew 丨 Rules J OepeTidenicies| E莓 t ends d Dependencies | Ver si on. InfoG-eri

22、ir *1ColulMilInfixes, K*ysChtclc | Script | Options Tr*vie*雪丨也二二口爲曙CSXNnieCods| 加訂収L4kM,varcharCl 0) va char(4p厂厂厂匚厂厂厂厂厂U厂厂厂finRRERBr-rjFJ厂11图4 按生成student表同样的办法生成 department表,只是具体属性不一样,如图5所示:Happing: | Notes | Eules DcpendenLcigsExt 电 nded Dp endeiici e'S I Ver si qh InfoGsnaralColumns |Indexe&#

23、163; | Check | Script Options Frayi&w皆 口 口 3B QX ® xl W可£Name;T atle Fr oper t i es dep airmeiL"t depa-rmeikt)dncCaaa=| dnc I:TarcIterCdJ:<archarQiD)p»HI. 1 I d iBI S .i ivii iii niii rniiiriviiBiiHiiliSHMBiiid?-ii匸厂 f匚厂rrt4 厂 lXESXESX l 厂mxulr!厂El聪消帮肋I图5 学生表中的学生所在系是depart

24、ment表中的一个外键,这时我们需要建立一个表的引用。如图6所示:studentf FK£30varclax 1.0、d>pa-metitHiareSjTO(fk> «iiiorarckar M)snimeiuarcha<10)dnamevirdhunflO)sdeptarohai(10)<3QQXZJ吕QoElo/Palette:这时候可以发现student表中多了一个dno字段,并且有fk这种外键标识,这样表也就建好了。2. 根据第一步生成的表导出数据库的脚本要产生数据库生成脚本,进行如下操作: 选择 Database 宀 Gen erate D

25、atabase,打开"Parameters for Sybase SQL An ywhere”窗口(图7)。(2) 在File name 框中接受缺省的文件名crebas.sql ,在Directory框中接受缺省的目录名。(3) 接受其它缺省的生成参数和选项。图7 单击"Gen erate script”按钮,打开如图8所示的确认框。图8(5) 单击“是(Y)”按钮。(6) 打开数据库生成脚本文件,并浏览这个文件。这个脚本文件就是我们通过图形化的界面创建的表及其之间的关系的一个SQL描述,我们可以在应用程序中或者相应的DBMS导入这个脚本就可以完成数据库的创建了(在例子中

26、的这个脚本只有表相关的创建语句)。3.利用PD的逆向工程生成 PDM并进行修改逆向工程的实验我们以从数据库生成脚本生成PDM为例。从数据库生成脚本生成 PDM按下列步骤进行:(1)选择 File tReverse EngineeringDatabase”窗口。新窗口如图9 所示:图9从"Database name ”下拉列表框中选择数据库管理系统。如图9的红圈所示,并点击确定。 单击“ Using a script file”单选按钮,并添加一个SQL脚本文件,如图10所示:图10 单击“ 0K',新的PDM出现在窗口中,如图 11所示:I Pivvi D*k.3Fllfl

27、riiyvi t! kJ D bI JAfliys h iJ 0 l « j w_JI1£i le E«li 虹和 G »4elI?!. Rh fitCT? L-nui% 1id44* Jflf订u G M m j-e > - i-1 £労E乐圍I3|> A勻哇0 口习|阪氐口日二|F怎心諷gFT 帝I T餌科(T iBah jzhieei _匚丿皿九1亠2二 E:“ElsLtHijj! »l rv项| Tsi生taHhtlUL-G4U:1|ikrUJIOtlJifld)1佃餾朮仙tUhqqu'Wsnir 

28、1;tofhttr屮匚L鞘*”曲吓|这时可按照步骤1介绍的方法进行图形化界面的修改,并生成新的SQL脚本文件,具体在这里就不重复介绍了。七、实验数据及结果分析:1、2、/*=*/* DBMS name:Sybase SQL Any where 11*/* Created on:2014/5/10 21:17:11*/=*/if exists(select 1 from sys.sysforeig nkey where role='FK_STUDENT_REFERENCE_DEPARTME') then alter table studentdelete foreign key

29、FK_STUDENT_REFERENCE_DEPARTMEend if;if exists(select 1 from sys.systablewhere table_name='department'and table_type in ('BASE', 'GBL TEMP') thendrop table departmentend if;if exists(select 1 from sys.systablewhere table_name='student'and table_type in ('BASE', 'GBL TEMP') thendr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论