数据库试验,崔巍教材_第1页
数据库试验,崔巍教材_第2页
数据库试验,崔巍教材_第3页
数据库试验,崔巍教材_第4页
数据库试验,崔巍教材_第5页
已阅读5页,还剩24页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、上机实验报告课程:数据库原理实验1名称:数据库设计一、实验内容:以所在学校选课和课程管理为实际应用背景,设计一个教学管理数据库。假设至少包含如下需求:-学生信息管理-课程信息管理-教师信息管理-学生选修课程及成绩信息管理-教师负责课程和讲授课程信息管理二、实验目的:通过实践,掌握本章介绍的数据库设计方法。-学会使用PowerDesigner来完成数据库设计过程三. 、实验方法(或程序源代码):(1)根据实验内容明确要完成的系统功能。(2)运行PowerDesigner创建概念数据模型,建立实体、属性和联系。对关键字、空值、域完整性等做出必要的描述,根据实际情况确定联系的类型。(3)将检查无误的

2、概念数据模型转换成逻辑数据模型,并对生成的逻辑数据模型作必要的修改。(4)选择一个实际的DBMS软件(如SQL Server ),根据逻辑数据模型生成 物理数据模型,并对生成的物理数据模型作必要的修改。(1 )教学管理E-R图金呈 CkBatex-E 麻直Skort lEitftr姓者ChazacterE(W)性甲|Ckaraciers(2)生液匚liBra-zitrsl6j状畜匚hnTactersMJRe lai ioaxkidli学号Rt la.t ioship_EElat ionski,L_5ChucitTt (91CharacterE 就1ShortCharactors(10)SE&

3、latinship.A.ICljarac tergW)K姓性职专Skor t mte Ftr Characters (10) 匚Laracters (Z) diarajcters (6) Characters (lQ)eww? 3(2)(转换了多对多联系)B Lat iCiskipjlRs I.HpbeE 5_&B Lat iCiskipjlX1LSisiCKbtK t*T=I 就 B:-悝I t 状疙Cksi CIbu Cx Ckut 33.1 KCltT ajc+*T ar tx*rri 10) te) SelatiGnEhipJ;elatiGnEhipJ渥捏国q岛各教.师B1匚1&5士仙

4、匚 L;工I Chuactcrs (20) CTKUrs () Sk&r t iufeeper Clai-actr= llfl)匚launi E軽匕凰 |jg)-riP期怕猶号He lnlxa ju!ixx_7Rtlaiiw金 b+1 one lu加!&)加峯S剧樽他 Kiitt职专t tacK 拦芒 scc.cc3)逻辑数据模型宰主iste-per匚baraf tTE (10 匚harac terc 匚haT: teTE 阳) Chara terc I 1JOir 右2、tlaarTFE 阳) ;詁 FiT冋 #耳Ha Ha Isf LC-n=l.lp_&课松滋兮 :haxuZm 强号 Vp

5、ir :Gl haxMci.E 阳)I 咸:渍$r I iafB lat iee1up_7hkrgt二 tRtlations-(4)物理数据模型系S制评竝 Kftttwt11处电 ut-eper tharac tr (10) Charac terE (Z) Charac trs (6) Chirac trs 110)城师餌号退握离号pi C bar alters 闻)B=-Cbarac tersSO)西廿專帅Cbajac ters空&tSLort lxtepfiEChaj-ac tws(JO)11泌 2H=311P-逼程鋼号州IB讶程I-i.S.t khX_l El I. E is nehi

6、口数岬芒1申淇号IS)srml lijlIbar IQ) char O char(6) uhaj flO)四、实验数据、结果分析、总结问题:经过对这个实验的制作,信息比较多,做表格有点复杂,涉及的框架知识多, 对关键字、空值、域完整性做的描述基本熟练。对概念数据模型、物理数据模型、 逻辑数据模型的基本掌握。开始对数据库的设计有了一定的了解。实验日期:2013年10月16日实验2名称:建立数据库、架构、表和定义完整性约束。一、实验内容: 参见2.1.7建立数据库的CREATE DATABASE 命令首先建立数据库,然后参照图5-1和5-8建立表并定义完整性约束,可以在此基础上根 据自己学校的实际

7、情况增加表、字段和约束等。、实验目的: 熟练掌握表的建立和数据库完整性约束的定义方法,实践DBMS提供的数据完整性功能,加深对数据完整性的理解。.、实验方法(或程序源代码):使用CREATE DATABASE 命令建立数据库,使用CREATE SCHEMA 命令建立架构,用CREATE TABLE 命令建立表并定义数据完整性约束,用ALTER TABLE命令修改表架构。程序源代码:CREATE DATABASE 美美ON(NAME =美美,美美.mdf,SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5 )LOG ON(NAME = order_log,美美.Idf,S

8、IZE = 5MB,MAXSIZE = 25MB,FILEGROWTH = 5MB )use美美gocreate schema acreate schema bcreate schema cCREATE TABLE 院系( 编号 CHAR(6) PRIMARY KEY, 名称 CHAR(20)UNIQUE NOT NULL, 分责人CHAR(10),办公地点CHAR(20)CREATE TABLE 学生(学号 CHAR(8) PRIMARY KEY,院系 CHAR(6) FOREIGN KEY REFERENCES 院系(编号),姓名 CHAR(10) NOT NULL,性别 CHAR(2)

9、check (性别 in(男,女),生源 CHAR(6),状态CHAR(4) check (状态in(正常,留级,休学,退学) create table 教师(教师编号 CHAR(8) PRIMARY KEY ,院系 CHAR(6) FOREIGN KEY REFERENCES院系(编号),姓名 CHAR(10) NOT NULL,性别 CHAR(2) check (性别 in(男,女),职称CHAR(6) CHECK (职称IN(教授,副教授,讲师,助教), 专业 CHAR(10) create table 课程(课程编号 CHAR(8) PRIMARY KEY ,课程名称 CHAR(20)

10、 NOT NULL,责任教师 CHAR(8) FOREIGN KEY REFERENCES教师(教师编号),学时 SMALLINT NOT NULL,课程性质 CHAR(10) CHECK (课程性质IN(公共基础,专业基础,专业选修,任意选修) create table 选课(学号 CHAR(8) FOREIGN KEY REFERENCES学生(学号),课程编号 CHAR(8) FOREIGN KEY REFERENCES课程(课程编号),成绩 SMALLINT CHECK ( 成绩 =0 AND 成绩 =60 AND 成绩 =60 OR 成绩 =70 OR 成绩 =70 AND 成绩 =

11、0 OR 成绩 =70 AND 成绩 =90 )-(27)SELECT * FROMNOT IN (SELECT学生WHERE学号学号 FROM 选课 WHERE 成绩=80 )SELECT * FROMNOT IN (SELECT选课WHERE学号学号 FROM 选课 WHERE 成绩=80 ) AND 学号IN(SELECT 学号 FROM 选课)-(28)SELECT 学号 FROM 选课 WHERE 平均成绩=(SELECT 成绩 FROM 选课 WHERE 学号=20110908)-(29)SELECT DISTINCT 姓名 FROM学生 WHERE 平均成绩=any(SELECT

12、 成绩 FROM 选课 WHERE 学号=20110923)SELECT DISTINCT 姓名 FROM学生 WHERE 平均成绩=(SELECT MIN(成绩)FROM 选课 WHERE 学号=20110923)-SOMESELECT DISTINCT姓名FROM学生WHERE平均成绩=SOME(SELECT成绩FROM选课WHERE学号=20110927)-(30)SELECT DISTINCT姓名FROM学生WHERE平均成绩=ALL(SELECT 成绩 FROM 选课 WHERE 学号=20110923)SELECT DISTINCT 姓名 FROM学生 WHERE 平均成绩=(SE

13、LECT MAX(成绩)FROM 选课 WHERE 学号=20110923) -(31)-?SELECT姓名,职称,课程名称,课程学时 FROM教师WHERE职称IN(SELECT名称,职称,负责课程 FROM院系WHERE ) -(32)SELECT Da.学号,Da.姓名,Da.性别,Da.生源,Da状态,Da平均成绩FROM学生DaWHERE Da.平均成绩=(SELECT Max(Sa.平均成绩)FROM学生SaWHERE Sa.学号 =Da.学号)-(33)SELECT *FROM 教师 WHERE EXISTS(SELECT *FROM 课程 WHERE 教师编号=KC.责任教师)

14、SELECT *FROM 教师WHERE 教师编号IN(SELECT 责任教师FROM 课程)-(34)SELECT *FROM 教师 WHERE NOT EXISTS(SELECT *FROM 课程 WHERE JS.教师编号=KC.责任教师)SELECT *FROM 教师 WHERE 教师编号 NOT IN(SELECT 责任教师FROM 课程)-(35)SELECT COUNT(DISTINCT 生源)FROM学生SELECT COUNT(生源)FROM学生-(36)SELECT SUM(工资)FROM教师-(37)SELECT SUM(工资),AVG(工资),COUNT(教师编号),M

15、AX(工资),MIN(工资)FROM教师-(38)-?SELECT姓名,AVG(平均成绩)FROM学生 WHERE 平均成绩60 GROUP BY姓名HAVING COUNT(*)=60-(40)-?SELECT姓名,AVG(平均成绩)FROM学生GROUP BY姓名-(41)-?SELECT 学号,AVG(成绩),MAX(成绩),MIN(成绩),COUNT(*)FROM 选课 GROUP BY 学号-(42)-?-(43)SELECT *FROM 教师ORDER BY教师编号COMPUTE A VG(工资),SUM(工资)BY 教师编号COMPUTE A VG(工资),SUM(工资)SELE

16、CT *FROM 学生 ORDER BY 姓名COMPUTE A VG(平均成绩),SUM(平均成绩)BY 姓名COMPUTE A VG(平均成绩),SUM(平均成绩)-(44)SELECT *FROM 教师ORDER BY教师编号COMPUTE COUNT(姓名),AVG(工资),SUM(工资)-(45)SELECT *FROM 教师ORDER BY教师编号COMPUTE COUNT(姓名),AVG(工资),SUM(工资)BY 教师编号四、实验数据、结果分析、总结问题:通过实验,学会使用SQL SELECT的数据查询操作,对左连接、右连接、 内连接全连接的掌握,对简单嵌套查询、条件查询等等各

17、种查询的练习的基本熟 悉,同时也对SQL SELECT查询命令的基本框架的熟悉与理解。让自己的能力 有了更好的提升。实验日期:2013年11月7日实验5名称:视图的建议和应用。一、实验内容: 在实验2和实验3的基础上定义视图,并在视图上完成查询以 及插入、更新和删除操作。、实验目的:掌握视图定义和应用的方法,体会视图和基本表的异同之处。三.、实验方法(或程序源代码):在实验2和实验3的基础用CREATE VIEW命令定义视图,然后使用 SELECT命令完成查询,使用INSERT UPDATE和DELETE命令分别完成插入、更新和删除操作。程序源代码:-(1)建立查询教师编号,工资,性别的教师视

18、图表CREATE VIEW教师视图 ASSELECT 教师编号,工资性别 FROM 教师-(2)建立查询工资的教师视图表CREATE VIEW 教师视图 2 ASSELECT 工资 FROM 教师 where 工资 =1000-(3)建立查询工资大于 1000的教师编号,性别,工资的教师视图表CREATE VIEW 教师视图 3 ASSELECT教师编号,性别,工资FROM教师where工资=1000-(4)建立教师与课程视图CREATE VIEW教师与课程视图 ASSELECT教师编号,工资,性别,课程名称,课程编号,责任教师FROM教师JOIN课程 ON教师编号=责任教师 -(5)建立学生

19、与选课视图CREATE VIEW学生与选课视图 ASSELECT姓名,院系住源FROM 学生 WHERE学号IN (SELECT 学号 FROM 选课 WHERE 成绩 =80 )-(6)建立教师视图4(教师编号,工资,性别,年工资)CREATE VIEW 教师视图4(教师编号,工资,性别,年工资)ASSELECT 教师编号,工资性别,工资*12 FROM 教师-2-(1)查询教师视图的 COUNT(*),AVG(工资)SELECT COUNT(*),A VG(工资)FROM 教师视图-(2)查询教师视图2的工资SELECT工资FROM JG.教师视图 2 ORDER BY 工资 DESC-(

20、3)查询教师视图3的工资大于9000的并按工资升序排序SELECT工资FROM JG.教师视图 3 WHERE 工资 9000 ORDER BY 工资 DESC-(4)查询学生与选课视图学生平均成绩等于89的学生姓名SELECT姓名FROM 学生与选课视图WHERE院系=(SELECT院系FROM学生WHERE平均成绩=89)-(5)查询学生与选课视图学生平均成绩等于89的学生姓名SELECT姓名FROM 学生与选课视图WHERE 院系 in (SELECT 院系 FROM 学生 WHERE 平均成绩=89)-(6)查询学生的生源,姓名SELECT学生与选课视图生源,学生与选课视图姓名FROM

21、学生与选课视图 JOIN学生ON学生与选课视图院系=XS.院系-3-(1)在教师视图3插入操作INSERT INTO 教师视图3VALUES(20111115,030,梁海秋,女,讲师,英语,5300)-(2)在教师视图进行更新操作UPDATE教师视图教师编号,教师视图工资,教师视图性别SET教师编号,工资,性别,职称四、实验数据、结果分析、总结问题:在本实验上,基于对单个表按投影、选择、选择和投影、根据链接、根据嵌套查询操作定义视图的基本熟悉,明白了 SQL SELECT查询是CREATE VIEW,而对于基本的命令格式也已经掌握,使用起来还是出现了一些命令未完成。实验日期:2013年11月

22、14日实验7名称:存储过程的设计和使用一、实验内容:在SQL Server环境下设计、创建并执行存储过程。二、实验目的:理解和掌握数据库存储过程的创建和调用方法。三.、实验方法(或程序源代码):在SQL Server环境下按要求创建和调用存储 过程完成指定的操作。程序源代码:-(1)查询分数在X到Y之间的学生信息CREATE PROCEDURE ABCX INT ,Y INT ASSELECT学号,姓名,院系,平均成绩 FROM 学生 WHERE平均成绩 =X AND平均成绩 =YExecute ABC X=50 , Y=100-更新以学号,课程编号和考试成绩做参数,-的指定的绩学生和课程的考

23、试成并返回该学生的平均成绩CREATE PROCEDURE ABD学号INT ,课程编号INT,成绩INT ASDECLARE 平均成绩intUPDATE 学生set平均成绩 =成绩 where学号IN(select学号from选课 WHERE 学号=学号 AND 课程编号=课程编号) return 成绩DECLARE 平均成绩 INTExecute ABD 成绩=88 , 学号=20110902 , 课程编号=202-(2)更新以学号,院系为参数的指定的学生的存储过程操作CREATE PROCEDURE ABE学号INT , 院系INT ASUPDATE 学生set院系=院系 WHERE学号 =学号Execute ABE 院系=025, 学号=201

温馨提示

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

评论

0/150

提交评论