数据库原理实验报告.docx

上传人:b****6 文档编号:5552282 上传时间:2022-12-19 格式:DOCX 页数:19 大小:566.35KB
下载 相关 举报
数据库原理实验报告.docx_第1页
第1页 / 共19页
数据库原理实验报告.docx_第2页
第2页 / 共19页
数据库原理实验报告.docx_第3页
第3页 / 共19页
数据库原理实验报告.docx_第4页
第4页 / 共19页
数据库原理实验报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数据库原理实验报告.docx

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

数据库原理实验报告.docx

数据库原理实验报告

重庆交通大学信息科学与工程学院

设计性实验报告

 

专业:

计算机科学与技术

班级:

2015级4班

学号:

631507020418

姓名:

张再朝

课程名称:

数据库原理课程实验

实验项目性质:

设计性实验

实验所属课程:

《数据库原理B》

实验室(中心):

软件与通信实验室

指导教师:

王家伟

实验完成时间:

2017年11月25日

总成绩

教师签名

此页必须保留

评分标准及成绩

实验名称

评分细则

评分

实验四

报告表述的清晰程度和完整性(20分)

概念模型的合理性(实验一内容)(10分)

逻辑模型的合理性(实验一内容)(10分)

功能合理性(20分)

功能完善性(10分)

个人体会(10分)

实验二

10分

实验三

10分

总成绩

总体实验要求:

1排版要求

标题用黑体四号,段前、段后距6磅(或0.3行);正文用小四号宋体,行距为1.5倍行距。

报告必须生成目录,目录必须带页码。

2设计报告需要打印,装订,1份/人,理论课考试时交设计报告。

3各班学习委员收集每位同学做的成果,包含数据库的备份、程序源代码和运行配置说明,并将每位同学的成果拷贝到软件与通信实验室的教师机上。

第一部分实验四

报告正文

一、实验目的

1、掌握ODBC的概念并学习使用ODBC访问数据库;

2、学习VisualC++下如何通过ODBC访问数据库;

3、学习用VisualC++制作简单数据库应用程序的方法。

二、实验题目

某大学需要使用计算机管理学生信息、成绩信息等,要求如下:

1、学生信息管理,包含学生的基本信息,如学号、姓名、性别、出生日期等;还要包含学生的简历、社会关系等;

2、课程管理,包含整个学校开设的所有课程;

3、教学计划管理,包含设定各系各专业在哪学期开设什么样的课程,学分是多少;

4、学生选课管理,包含学生在某学期选择什么样的课程;

5、学生成绩管理,包含学生各课程的成绩、是否补考、补考成绩;

6、学生奖惩管理,管理学生在校期间所获得的奖励和惩罚记录。

根据实验一的结果,完成设计。

可以根据自己的实际情况实现一部分也可。

三、实验涉及仪器设备和材料清单(或软件)

操作系统:

Windows10

软件:

VisualStudioProfessional2017,PowerDesigner15.1

实现语言:

C#

开发平台:

.NETFramework4

数据库:

SQLServer2014

四、实验原理

Microsoft推出的ODBC(OpenDatabaseConnectivity)技术为异质数据库的访问提供了统一的接口。

ODBC基于SQL(StructuredQueryLanguage),并把它作为访问数据库的标准。

这个接口提供了最大限度的相互可操作性:

一个应用程序可以通过一组通用的代码访问不同的数据库管理系统。

一个软件开发者开发的客户/服务器应用程序不会被束定于某个特定的数据库之上。

ODBC可以为不同的数据库提供相应的驱动程序。

ODBC的灵活性表现在以下几个方面:

·应用程序不会受制于某种专用的API

·SQL语句以源代码的方式直接嵌入在应用程序中

·应用程序可以以自己的格式接收和发送数据

·ODBC的设计完全和ISOCall-LevelInterface兼容

·现在的ODBC数据库驱动程序支持55家公司的数据产品

最新推出的ODBC3.0已经升级到32位,支持Win32。

在C#中,提供了良好的数据库支持。

输入数据源是遵循开放式数据库互接(ODBC)标准,还是微软的数据访问对象(DAO)标准,或OLE数据库(OLEDB)标准。

ODBC功能在数据库管理系统,如MicrosoftAccess、Oracle或dBase的特定的驱动程序中实现。

C#提供了一个ODBC驱动程序的集合;其他的可从经销商那里买到。

实验中即利用ODBC接口来创建.NET下的数据库支持。

五、实验内容

1、建立概念模型

2、利用PowerDesigner生成的SQL语句建立相关数据表

3、利用C#进行相关软件开发

六、实验步骤及代码分析

查询部分:

privatevoid查询课程ToolStripMenuItem_Click(objectsender,EventArgse)

{

stringCommandString="select*fromCourse";

try

{

OdbcDataAdapteradapter=newOdbcDataAdapter(CommandString,odbcConnection);

DataSetds=newDataSet();

adapter.Fill(ds);

dataGridView1.DataSource=ds.Tables[0].DefaultView;

odbcConnection.Close();

}

catch(OdbcExceptionex)

{

MessageBox.Show(ex.Message);

}

}

 

录入成绩,利用数据源自动更新

privatevoidbutton2_Click(objectsender,EventArgse)

{

OdbcCommandBuilderocd=newOdbcCommandBuilder(adapter);

try

{

adapter.Update(ds);

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message);

this.Close();

return;

}

MessageBox.Show("成功");

this.Close();

}

更改成绩,利用数据源自动更新

privatevoidbutton1_Click(objectsender,EventArgse)

{

//dataGridView1.DataSource=null;

ds.Clear();

dataGridView1.Update();

stringCommandString="select*fromScorewhereScore.CourseNo='"+textBox1.Text+"'";

try

{

adapter=newOdbcDataAdapter(CommandString,odbcConnection);

adapter.Fill(ds);

dataGridView1.DataSource=ds.Tables[0].DefaultView;

odbcConnection.Close();

}

catch(OdbcExceptionex)

{

MessageBox.Show(ex.Message);

}

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

OdbcCommandBuilderocd=newOdbcCommandBuilder(adapter);

try

{

adapter.Update(ds);

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message);

this.Close();

return;

}

MessageBox.Show("成功");

this.Close();

}

}

七、实验结果及分析

登录界面:

 

查询界面:

增加界面:

修改界面:

删除界面:

实验体会

通过本次实验,我明白了数据库中的各种操作是怎么回事,这些操作有增加,修改和删除,基于这些操作,完成了学生信息管理系统。

在用C#完成系统的过程中,重新回顾了高级程序设计语言编程的基本语法和思想,由此让我产生了许多学习的心得:

在上理论课的时候,要把笔记做好,课堂上的重点内容需要记录下来,尤其是关于技术方面的知识,这些知识的贯通需要通过应用来实现,在实验的实践过程中把理论知识用起来,达到活学活用的目的。

在完成了本次实验之后,我对于SQL代码的掌握更熟练了,而且对于C#语法的认识更深刻,在做出体现面向对象的程序的能力上,有所进步。

第二部分实验二、实验三

实验二表查询

一实验要求

根据给定的样例数据库pubs,完成以下查询操作。

1、无条件查询

1)查找pub库中authors表的全部信息。

2)查找其他样例表中全部信息。

2、简单条件查询

1)查找titles表中全部书号及书名。

2)查找titles表中价格在$15~18元之间的书的书名。

3)查找titles表中书名以T开头的书号,书名。

4)对其他样例表构造各种简单查询条件,进行查询。

3、多条件查询

1)查找书名起始字符为T,价格小于$16元的书名及价格。

2)查找书名起始字符不为T的,价格大于$16元的书号,书名及价格。

3)对其他样例表构造多个查询条件,进行查询。

4、用连接操作(或嵌套查询)进行查询

1)使用样例表titles,publishers进行查询:

查找出版社的名称以及所出的书名。

2)使用样例表authors,titleauthor,titles进行查询:

查找作者的姓、名和所写的书名。

3)对构造其他条件,在两个以上样例表中进行查询。

5、得到排序的查询结果

1)查找作者的姓、名、电话号码,并按作者姓、名排列。

2)查找书名和书的价格,按书价由大到小的次序排列。

3)对其他样例表构造查询条件、排序要求,给出查询结果。

6、使用函数进行查找

1)列出有多少类书。

2)列出书的定价有多少种。

3)列出书价最低的书名和书价。

4)查出书价最高的书名及书价。

5)列出当年销量的总和。

6)构造其他查询条件和统计要求,给出查询结果。

二实验结果

select*

fromauthors

select*

fromdiscounts

select*

fromsales

select*

fromtitles

select*

fromemployee

select*

fromjobs

select*

frompub_info

select*

frompublishers

select*

fromroysched

select*

fromstores

select*

fromtitleauthor

selecttitle_id,title

fromtitles

selecttitle

fromtitles

whereprice>15andprice<18

selecttitle_id,title

fromtitles

wheretitlelike'T%'

selecttitle_id,title,pub_id

fromtitles

wherepub_id<1000

selectprice,title

fromtitles

whereprice<16andtitlelike'T%'

selecttitle_id,title,price

fromtitles

wheretitlenotlike'T%'andprice>16

selecttitle_id,title,price

fromtitles

wheretitlenotlike'T%'andprice<=16

selectpub_name,title

fromtitles,publishers

wheretitles.pub_id=publishers.pub_id

selectau_lname,au_fname,title

fromauthors,titleauthor,titles

wheretitles.title_id=titleauthor.title_idandtitleauthor.au_id=authors.au_id

selectcity,title

fromtitles,publishers

wheretitles.pub_id=publishers.pub_id

selectau_fname,au_lname,phone

fromauthors

orderbyau_fname,au_lname

selecttitle,price

fromtitles

orderbypricedesc

selecttitle,price

fromtitles

orderbypriceasc

selectCOUNT(distincttype)as书的种类

fromtitles

selectCOUNT(distinctprice)as定价种类

fromtitles

selecttitle,price

fromtitles

whereprice=(selectmin(price)fromtitles)

selecttitle,price

fromtitles

whereprice=(selectmax(price)fromtitles)

 

实验三对象的建立与数据更新操作

一实验要求

1创建和修改对象

(1)创建表对象

按照下面的的结构与内容建两个关系。

表名分别以S、T开头,后面是建表人的学号(以下简记为T**、S**)。

先用createtable命令建立表的初始结构,表T**的初始结构包括下面T**中前四个属性。

然后再用altertable.add.添加一个属性:

QTY(库存量)。

并插入相应的内容。

T**

Title

author

t_no

price

QTY

计算机原理

张一平

S3092

20.80

200

C语言程序设计

李华

H129815.30

300

数据库原理

王家树

D1007

22.70

150

计算机网络

高明

S569018.90

230

Artificialintelligence

P.Winston

D2008

20.50

400

Expertsystems

R.Ullman

H3067

17.00

370

软件工程

鲁廷璋

S2005

35.00

200

Fortran程序设计

顾学峰

S5006

18.00

180

S**

T_no

Page

pub-date

S3092

304

1986

D1007

280

1993

S5006

315

1987

S5690

300

1993

H1298

210

1989

D2008

358

1994

S2005

298

1995

H3067

307

1995

(2)用altertable.altercolumn.改变属性title的长度。

(3)用子查询方式建新表。

表名以ST开头,后面为建表人学号(简记为ST**)。

(新表内须包括title和price两个属性。

(4)按t_no建索引,索引名为IT**(**表示建表人的学号,下同)。

(5)用子查询方式建视图,视图名为VT**,并在视图上查找所需信息。

(6)删除以VT**命名的视图。

(7)删除以ST**命名的表。

2、记录的插入、删除与更新

(1)同前,用子查询方式建立表ST**。

该表的属性应有t_no,title,price。

(2)在ST**表中插入一元组:

S7028,DigitalImageProcessing,36.00

(3)删除书名为“Fortran程序设计”的那个元组。

(4)删除书号以H开头的元组。

(5)把书价调整到原来价格的95%。

(6)把书号以D开头的那些书的书价减掉2.00元。

(7)将“计算机原理”的书号改为S1135。

(8)对所建的表,进行各种插入、删除、更新操作。

(9)每次修改表后,可用select查看一下修改后表中的内容,看是否满足要求。

3、统计

(1)计算T**表中这些书籍的最高书价、最低书价及平均书价。

(2)计算T**表中的书的种类是多少。

(3)计算S**表中1990年后出版的书有多少。

(4)计算总共有多少本书。

(5)对样例表,设计统计要求,获得各种统计量。

二实验结果

/*1*/

/*

(1)*/

createdatabasestudent

usestudent

createtableT631507020418(

Titlevarchar(30),

authorvarchar(15),

t_nochar(6),

pricenumeric(6,2))

insertintoT631507020418(Title,author,t_no,price)

select'计算机原理','张一平','S3092','20.8'

unionall

select'C语言程序设计','李华','H1298','15.3'

unionall

select'数据库原理','王家树','D1007','22.7'

unionall

select'计算机网络','高明','S5690','18.9'

unionall

select'Artificialintelligence','P.Winston','D2008','20.5'

unionall

select'Expertsystems','R.Ullman','H3067','17'

unionall

select'软件工程','鲁廷璋','S2005','35'

unionall

select'Fortran程序设计','顾学峰','S5006','18'

altertableT631507020418

addQTYint

updateT631507020418setQTY=200wheret_no='S3092'

updateT631507020418setQTY=300wheret_no='H1298'

updateT631507020418setQTY=150wheret_no='D1007'

updateT631507020418setQTY=230wheret_no='S5690'

updateT631507020418setQTY=400wheret_no='D2008'

updateT631507020418setQTY=370wheret_no='H3067'

updateT631507020418setQTY=200wheret_no='S2005'

updateT631507020418setQTY=180wheret_no='S5006'

createtableS6*******0418(

T_nochar(6),

pageint,

pub_datedate)

insertintoS6*******0418

select'S3092','304','1986'

unionall

select'D1007','280','1993'

unionall

select'S5006','315','1987'

unionall

select'S5690','300','1993'

unionall

select'H1298','210','1989'

unionall

select'D2008','358','1994'

unionall

select'S2005','298','1995'

unionall

select'H3067','307','1995'

/*

(2)*/

altertableT631507020418

altercolumnTitlevarchar(35)

/*(3)*/

selectTitle,priceintoST631507020418

fromT631507020418

/*(4)*/

createindexIT6315070200418

onT631507020418(t_no)

/*(5)*/

createviewVT631507020418as

select*fromT631507020418

/*(6)*/

dropviewVT631507020418

/*(7)*/

droptableST631507020418

/*2*/

/*

(1)*/

selectT_no,Title,price

intoST631507020418

fromT631507020418

/*

(2)*/

insertintoST631507020418

select'S7028','DigitalImageProcessing','36'

/*(3)*/

delete

fromST631507020418

whereTitle='Fortran程序设计'

/*(4)*/

delete

fromST631507020418

wheret_nolike'H%'

/*(5)*/

updateST631507020418

setprice=price*0.95

/*(6)*/

updateST631507020418

setprice=price-2

wheret_nolike'D%'

/*(7)*/

updateST631507020418

sett_no='S1135'

whereTitle='计算机原理'

/*(8)无*/

/*(9)无*/

/*3*/

/*

(1)*/

selectmax(price)MAX,min(price)MIN,avg(price)AVG

fromT631507020418

/*

(2)*/

selectcount(Title)种类

fromT631507020418

/*(3)*/

selectcount(*)

fromS6*******0418

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

当前位置:首页 > 解决方案 > 学习计划

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

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