西北工业大学数据库实验报告
数据库原理与技术实验报告
数据库原理与技术实验报告
一、实验目的
本次实验的主要目的是了解和学习数据库原理与技术,具体要求是:
1.熟悉数据库系统的基本概念;
2.理解数据库管理系统(DBMS)的核心功能;
3.掌握数据库系统的创建,维护和应用技术;
4.掌握基于SQL查询语言(SQL)的SQL语句的使用;
5.学习SQL语言的基本知识;
6.学习和应用数据库的实用技术;
7.掌握数据库的安全保护技术;
8.熟悉数据的事务处理;
9.掌握数据的并发控制等。
二、实验环境
本次实验所使用的系统环境为Oracle Database,版本为11g。
三、实验内容
1.概念部分:
(1)数据库概念:数据库概念主要是指数据库的概念、特点、应用领域、数据库结构与模式等;
(2)数据库管理系统:数据库管理系统(DBMS)是一种综合的数据管理软件,它有助于保护组织内的数据,并帮助实现全面的数据管理;
(3)数据库应用:数据库应用是一种以数据库管理系统为基础的应用程序,它主要是用来收集、组织、存储、操作和检索数据,以满足组织内的信息需要;
(4)SQL查询语言:SQL查询语言(SQL)是一种关系型数据库管理系统的标准化数据库查询语言。
数据库实验报告(通用3篇)
数据库实验报告(通用3篇)数据库试验报告篇1一、实训时间:20_年5月13日至5月24日二、实训地点:三、实训目的与意义:1,这次实习可以使我们在课本上学到的学问用于实践增加了我对电脑技巧的一些认知。
2,通过这次实习也可以让我体验到上班族的生活为我将来毕业后找工作打下了基础。
3,并且这次实习可以非常好的关心我完成将来的毕业论文。
四、实训感悟:还依旧记得来的第一天对这里很茫然,不知道实习要做些什么。
然后经过老师的急躁讲解,熟悉了自己实习要做些什么,得到了许多心理熟悉,对许多问题都有了一些更深的了解。
同时,我熟识了河北玛世电子商务有限公司,总部位于国家命名的“中国丝网之乡”、“中国丝网产业基地”、中国丝网产销基地“、”中国丝网出口基地“—河北省安平县。
使我们队公司有了更进一步的了解实习,就是在实践中学习。
经过这半个月的实习训练,我了解到自己所学的如何在实践中运用。
当然学的更多的是如何在更新网站内容和添加商品,每天不厌其烦的更新添加,观察自己的胜利更多的是兴奋。
还有发布了一些关于公司产品的博客,比如新浪,网易。
而后又尝试在百度知道上提问与回答,在回答问题的过程中,通过网站搜寻相关内容来回答各种丝网问题,通过百度知道这个平台,我对公司又了更一步的了解。
经过半个月的实训我学到了许多之前没有学过没有接触到的东西,熟悉到自己的不足,需要更加努力,才能尽快的学会在社会上生活,敢于面对社会的压力,使自己可以在社会上成长进展。
数据库试验报告篇2由于平常接触的都是一些私人项目,这些项目大都是一些类库,其他人的沟通相对可以忽视不计,因此也就不考虑规范化的文档。
实际上从学习的经受来看,我们接触的学问体系都是属于比较老或比较传统的,与现在进展快速的IT行业相比许多状况已不再适用,尤其是当开源模式渐渐走近开发者后更是如此。
虽然这次是一个数据库课程设计,由于本人在选择项目的时候是本着对自己有实际应用价值的角度考虑的,所以其中也涉及到一些数据库以外的设计。
数据库实验报告
实验(一): 熟练掌握SQL语言实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。
实验内容:具体包括如下三部分。
一、熟悉上机环境。
客户/服务器结构,数据库服务器在一台NT服务器上,同学们通过客户机(操作系统为Windows 2000)上安装的SQL Server客户端程序, 使用SQL Server数据库服务器。
具体包括:1.了解SQL Server 环境。
鼠标点击开始,进入“Microsoft SQL Server→企业管理器”,点击SQL Server组下的数据库服务器(服务器名称为NEUC-201S(Windows NT)), 可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。
点击服务器(NEUC-201S(Windows NT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。
因为,数据库服务器上建有许多数据库, 每个数据库都有一些合法的用户。
2.鼠标点击开始,进入“Microsoft SQL Server→查询分析器”,输入用户名和口令,进入SQL查询分析器。
如:你登录的客户机为27号,那么请以用户名user27,口令为user27登录,登录后缺省连到数据库user27上,user27/user27是数据库user27的创建者,因此用户user27/ user27具有在数据库user27上创建表等一切权力。
3.在SQL查询分析器环境下,你就可进行SQL命令语句操作了。
二、在数据库useri上创建学生选课有关关系模式,并插入相应的数据,实现有关查询。
1.描述学生、课程情况的E-R图如下,请将其转化为用关系数据模型描述的关系模式CREA TE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20));CREA TE TABLE Course(Cno CHAR(4) PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4),Ccredit SMALLINT,FOREIGN KEY (Cpno) REFERENCES Course(Cno) );CREA TE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) );4在已建立的关系模式之上(已插入一些数据)建立主键约束,参照约束和用户定义的约束(要求学生年龄不小于14岁,不大于35岁),如果约束不能建立,请分析原因,修改后建立上述约束。
西北工业大学数据库实验报告
1.ODBC配置以及程序调试:(50分)(1)配置一个ODBC数据源,要求数据源名称:student,其中包含s(学生信息)表。
用系统工具配置ODBC,点击“添加”:出现以下对话框,选中SQL Sever,点击完成:在出现的对话框中设置属性,如图,点击下一步:点击下一步后出现如下,更改默认数据库,点击下一步:在出现的对话框中点击测试连接后出现测试成功的对话框:点击确定退出ODEC数据源管理器。
(2)阅读并运行实验给出的例子程序,理解ODBC编程,要求简单写出自己对这段程序的理解或者流程图,并且请给出程序运行结果示例图。
对程序的流程:1.定义句柄和变量(句柄包括环境句柄,连接句柄,语句句柄)2.初始化环境(1).分配环境句柄(2).设置管理环境属性(3).连接数据库3.建立连接(1)分配连接句柄(2)连接失败则返回错误值4.初始化语句句柄5.执行语句6.处理结果集合7.中止处理(1).释放语句句柄(2).断开数据源(3).释放连接句柄(3).释放环境句柄结果显示:2.参考给出的ODBC编程示例,使用ODBC技术,编写一个简单的程序,包含对数据库SPJ的连接,查询,插入,修改和删除。
(50分)插入数据:insert into s values('S6','胜利','47','北京')检验数据库内:删除数据:Delete from s where sno=‘S1’查询数据:Select pno,pname from P更新数据:update s set status='100' where sno='S33.用JDBC实现对数据库student的连接,查询,插入,修改和删除。
(选做实验)二.实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)除了标题内容以外,该部分内容中还可以写对于实验的一些感受,建议,意见等。
数据库实验报告(全)
实验报告学院:计算机与信息学院专业:年级:姓名:学号:实验室号:计算机号:实验日期:年月日指导教师签字:成绩:报告退发(订正、重做)实验一数据库的定义实验1、实验目的熟练掌握和使用SQL Server企业管理器创建数据库、表、索引和修改表结构,并学会使用SQL Server 查询分析器接收Transact-SQL语句和进行结果分析。
2、实验仪器(环境):计算机及SQL Server 20003、实验操作方法:依照实验指导书的内容进行实验。
4、报告内容:(1)通过企业管理器,建立图书借阅数据库;(2)在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为:图书(书号,类别,出版社,作者,书名,定价,作者)读者(编号,姓名,单位,性别,电话)借阅(书号,读者编号,借阅日期)要求为属性选择合适的数据类型,定义每个表的主码,是否允许空值和默认值等列级数据约束。
;(3)指出图书读者数据库各表的主码、外码和数据约束;(4)实验操作步骤和实验结果用截图显示出来。
实验报告学院:计算机与信息学院专业:年级:姓名:学号:实验室号:计算机号:实验日期:年月日指导教师签字:成绩:报告退发(订正、重做)实验二数据库的建立和维护实验1、实验目的熟练掌握使用SQL、Transact-SQL和SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。
2、实验仪器(环境):计算机及SQL Server 20003、实验操作方法:依照实验指导书的内容进行实验。
4、报告内容:(1)以一条记录为例,写出用SQL表示的向图书表中插入、修改和删除数据的语句。
(2)用SQL实现在读者表中增加“借书册数”字段,统计借书者在1998年~1999年间所借书的册数,并将结果送入读者表中的借书册数字段的操作语句。
(3)写出操作的过程和操作结果(数据库中各表的数据)并用截图表示出来。
实验报告学院:计算机与信息学院专业:年级:姓名:学号:实验室号:计算机号:实验日期:年月日指导教师签字:成绩:报告退发(订正、重做)实验三数据库的简单查询和连接查询实验1、实验目的掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。
数据库实验报告(实验六)(合集五篇)
数据库实验报告(实验六)(合集五篇)第一篇:数据库实验报告(实验六)实验六SQL语言数据查询语言DQL一、实验内容了解SQL语言的SELECT语句对数据的查询,学会在Navicat for MySQL中用SELECT语句对表中的数据进行简单查询、连接查询、嵌套查询和组合查询。
启动Navicat for MySQL,用SELECT语句进行简单查询操作,具体实验步骤如下:(实验步骤里的内容)1启动Navicat for MySQL,登录到本地数据库服务器后,连接到test数据库上。
用Create Table建立Student表、Course表和Choose表:2.用INSERT语句分别向Student表中插入3个元组、Course表中插入3个元组、Choose表中插入7个元组:3.用SELECT语句,查询计算机学院学生的学号和姓名。
4.用SELECT语句的between…and…表示查询条件,查询年龄在20~23岁的学生信息。
5.用SELECT语句的COUNT()聚集函数,统计Student表中学生总人数。
6.分别用SELECT语句的max()、min()、sum()、avg()四个聚集函数,计算Choose表中C1课程的最高分、最低分、总分、平均分。
7.用SELECT语句对空值(NULL)的判断条件,查询Course表中先修课称编号为空值的课程编号和课程名称。
8.用SELECT语句的连接查询,查询学生的学号、姓名、选修的课程名及成绩。
9.用SELECT的存在量词EXISTS,查询与“张三”在同一个学院学习的学生信息。
10.用SELECT语句的嵌套查询,查询选修C1课程的成绩低于“张三”的学生的学号和成绩。
11.用SELECT语句的组合查询(UNION),查询选修了C1课程或者选修了C3课程的学生学号。
12.用SELECT语句的组合查询(UNION)与DISTINCT短语,查询选修了C1课程或者选修了C3课程的学生学号,并取消重复的数据。
数据库上机实验报告
数据库上机实验报告
本次数据库上机实验主要涉及到数据库的设计、创建和查询,通过对实验内容的学习和实践,我对数据库的相关知识有了更深入的理解和掌握。
首先,我们学习了数据库的设计原理和方法。
在数据库设计的过程中,需要考虑到数据的完整性、一致性和安全性等因素,通过对实际案例的分析和设计,我了解到了如何根据需求确定实体、属性和关系,并进行逻辑设计和物理设计。
在实验中,我使用了ER图和关系模式图等工具,对数据库的结构和关系进行了清晰的描述和设计。
其次,实验中我们学习了数据库的创建和管理。
通过使用SQL语句,我成功创建了数据库和表,并进行了数据的插入、修改和删除操作。
在实验过程中,我深入了解了SQL语句的语法和用法,掌握了如何利用SQL语句对数据库进行有效的管理和操作。
最后,我们进行了数据库的查询操作。
通过学习和实践,我掌握了SQL语句中的SELECT语句的用法,能够实现对数据库中数据的查询和统计。
在实验中,我通过编写SQL语句,成功实现了对数据库中数据的查询和分析,对于复杂的查询需求也能够进行有效的处理和实现。
通过本次数据库上机实验,我不仅加深了对数据库设计、创建和查询的理解,还提高了对SQL语句的掌握和运用能力。
我相信这些知识和技能对我的未来学习和工作都将有很大的帮助。
总的来说,本次数据库上机实验内容丰富、操作性强,通过实际操作和实践,我对数据库的相关知识有了更深入的理解和掌握。
我相信这些知识和技能对我的未来学习和工作都将有很大的帮助。
希望通过不断的学习和实践,能够进一步提高自己的数据库技能,为将来的工作做好准备。
西北工业大学数据库实验报告2
《数据库原理》实验报告题目:实验二基本表的数据操作学号姓名班级日期2014302692 孟玉军10011402 16.10.13一. 实验内容、步骤以及结果1.在图形用户界面中对表中的数据进行更新。
(6分,每小题2分)(1)按照实验一图2.1-图2.4中所示数据,输入SPJ数据库所含四张表中的数据。
S表:P表:J表:SPJ表:(2)修改S表的任意一条数据把S表中S1的status数据进行了修改(3)删除S表的任意一条数据。
删除了S3的数据2.针对SPJ数据库,用SQL语句完成下面的数据更新。
(12分,每小题3分)(1)第五版教材第三章第5题的8-11小题。
红色零件颜色修改为蓝色:⑧UPDATE PSET COLOR=’蓝’WHERE SNO=’红’⑨由S5供给J4的零件P6改为由S3提供:Update SPJSet sno=’S3’Where sno=’S5’and pno=’P6’and jno=’J4’⑩从供应商关系中删除S2的记录,从供应关系表中删除相应的记录:DeleteFrom SWhere sno=’S2’DeleteFrom SPJWhere sno=’S2’11.请将(S2,J6,P4,200)插入供应情况关系:Insert into SPJValues (‘S2’,’ P4’,’J6’,200)3.针对SPJ数据库,用SQL语句完成下面的数据查询。
(52分,每小题4分) (1)第五版教材第三章第4题。
(5道小题)①:select distinct snofrom SPJwhere jno=’J1’②:select distinct snofrom SPJwhere jno='J1'and pno='P1'③:select snofrom SPJ,Pwhere jno='J1'and SPJ.pno=P.pno and color='红'④:select distinct jnofrom SPJwhere jno not in(select jnofrom SPJ,P,Swhere SPJ.sno=S.sno and city='天津'and SPJ.pno=P.pno and color ='红')⑤:select jnofrom SPJwhere pno in(select pno from SPJ where sno='S1' )group by jnohaving count(pno)=(select count(pno) from SPJ where sno ='J1')(2)第五版教材第三章第5题的1-7小题。
西北工业大学 实验报告
西北工业大学实验报告《西北工业大学实验报告》西北工业大学是一所位于中国陕西省西安市的高等学府,以其严谨的科学研究和丰富的实验教学而闻名。
在这里,学生们不仅可以接受到扎实的理论知识,还能通过各种实验活动来提升自己的实践能力。
下面,我们将就西北工业大学的实验报告进行一番探讨。
西北工业大学的实验报告是学生进行实验活动后所撰写的一份详细记录,其中包括实验目的、方法、结果、分析和结论等内容。
这些实验报告旨在让学生通过实践活动来加深对理论知识的理解,提高自己的动手能力和实验技能。
在西北工业大学,学生们有机会参与各种各样的实验活动,涵盖了物理、化学、生物、工程等多个学科领域。
通过这些实验活动,学生们可以亲身感受到科学知识的魅力,培养自己的观察力、思维能力和动手能力。
在实验活动结束后,学生们需要按照一定的格式和要求来撰写实验报告。
这不仅有助于学生对实验过程的回顾和总结,还能够培养学生的科学写作能力。
通过撰写实验报告,学生们可以逐步提高自己的文字表达能力和逻辑思维能力。
西北工业大学的实验报告不仅是对学生实验活动的一份记录,更是对学生科学素养的一次锻炼。
通过实验报告的撰写,学生们能够不断提高自己的实验技能和科学素养,为将来的科研工作和实践活动打下坚实的基础。
总之,西北工业大学的实验报告是学生进行实验活动后的一份重要记录,它不仅有助于学生对实验过程的回顾和总结,还能够培养学生的科学写作能力和科学素养。
相信通过这样的实践活动,学生们能够更好地掌握科学知识,提高自己的实践能力,为将来的科研工作和实践活动做好准备。
西北工业大学数据结构试验报告DS04
·实验题目:给定电文进行哈夫曼编码,给定编码进行哈夫曼译码。
要求电文存储在文件1中,编码后的结果存储在文件2中,给定编码存储在文件3中,译码后的结果存储在文件4中。
·实验目的:练习二叉树的使用,练习文件的操作。
一、需求分析1、输入的形式和输入值的范围:给定电文输入为字符型,可以输入30种不同的字符,可以输入空格,但空格不能转为二进制前缀码。
给定编码进行赫夫曼译码时,输入为无符号整型0和1。
2、输出的形式:编译后赫夫曼编码(对应字符和编码)输出分别为字符型和无符号整型。
给定电文进行赫夫曼编码输出为无符号整型0和1,电文保存在文件1中,编译所得的二进制前缀码保存在文件2中。
给定编码进行赫夫曼译码输出为字符型,给定的编码保存在文件3中,译码保存在文件4中。
3、程序所能达到的功能:可以电文不同字符数目小于等于30的电文进行赫夫曼编码,可以对给定编码(已经获得的赫夫曼编码对应的编码)进行译码4、测试数据:1)、加法:(输出:)请输入电文内容:(输入:)HELLO WORLD(程序输出:)H 101E 100L 01O 000W 111R 110D 001赫夫曼编码:101100010100011100011001001(文件1:)HELLO WORLD(文件2:)101100010100011100011001001(输出:)请输入需转换的编码:(输入:)101100010100011100011001001(程序输出:)转换后的电文:HELLOWORLD(文件3:)101100010100011100011001001(文件4:)HELLOWORLD二概要设计1、抽象数据类型的定义:树的定义:ADT Tree{数据对象D:D是具有相同特性的数据元素的集合。
数据关系R:若D为空集,则称为空树;若D仅含一个数据元素,则R为空集,否则R={H},H是如下二元关系;(1)在D中存在唯一的称为根的数据元素root,它在关系H下无前驱;(2)若D-{root}≠Φ,则存在D-{root}的一个划分D1,D2…Dm(m>0),对任意j≠k(1<=j,k<=m有Dj∩Dk=Φ,且对任意的i(1<=i<=m),唯一存在数据元素xi∈Di,有<root,xi>∈H; (3)对应于D-{root}的划分,H-{<root,xi>,…,<root,xm>}有唯一的一个划分H1,H2,…,Hm(m>0),对任意j≠k(1≤j,k≤m)有Hj∩Hk=NULL,且对任意i(1≤i≤m),Hi是Di上的二元关系,(Di,{Hi})是一棵符合本定义的树,称为根root的子树。
西北工业大学数据库实验报告7
假设学校允许学生将银行卡和校园卡进行绑定,在student数据库中有如下的基本表,其中校园卡编号cardid即为学生的学号:icbc_card(studcardid,icbcid,balance) //校园卡ID,工行卡ID,银行卡余额 campus_card(studcardid,balance) //校园卡ID,校园卡余额创建数据库代码如下:use studentcreate table campus_card( studcardid Char(8),balance Decimal(10,2))create table icbc_card( studcardid Char(8),icbcid Char(10),lance Decimal(10,2),)示例数据如下:insert into campus_card values('20150031', 30)insert into campus_card values('20150032', 50)insert into campus_card values('20150033', 70)insert into icbc_card values('20150031','2015003101', 1000)insert into icbc_card values('20150032','2015003201', 1000)insert into icbc_card values('20150033','2015003301', 1000)针对以上数据库按照要求完成下列实验:1.编写一个事务处理(begin tran)实现如下的操作:某学号为20150032的学生要从银行卡中转账200元到校园卡中,若中间出现故障则进行rollback。
西北工业大学数据库实验报告5
《数据库原理》实验报告题目:实验一数据库和表的创建与管理学号姓名班级日期一.实验内容、步骤以及结果1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。
(5分)exec sp_rename v_spj,v_spj_三建2.针对SPJ数据库,创建并执行如下的存储过程:(共计35分)(1)创建一个带参数的存储过程—jsearch。
该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME)。
执行jsearch存储过程,查询“J1”对应的信息。
(10分)创建:create procedure jsearch(@search_jno nchar(20) )asbeginselect j.jname,s.sname,p.pnamefrom s,p,j,spjwherespj.jno=@search_jno and spj.jno=j.jno and spj.sno=s.sno and spj.pno=p.pno end执行:EXEC jsearch @search_jno='J1'(2)使用S表,为其创建一个加密的存储过程—jmsearch。
该存储过程的作用是:当执行该存储过程时,将返回北京供应商的所有信息。
(10分)创建:create procedure jmsearchwith encryptionasbeginselect * from Swhere city='北京'end使用系统存储过程sp_helptext查看jsearch, jmsearch的文本信息。
(5分)exec sp_helptext 'jsearch'exec sp_helptext 'jmsearch'(3)执行jmsearch存储过程,查看北京供应商的情况。
数据库实验五实验报告
数据库实验五实验报告一、实验目的本实验旨在通过学习数据库的索引和优化,掌握数据库索引的使用和优化方法,进一步提升数据库的查询性能。
二、实验要求1.理解数据库索引的概念及作用。
2.熟悉索引的创建、删除和修改操作。
3.了解索引的类型及适用场景,并能选取合适的索引类型。
4.能通过观察执行计划和使用适当的策略对查询进行优化。
三、实验步骤1.索引的创建和删除首先,在已创建的数据库中选择适合创建索引的表。
通过如下语句创建一个测试表:CREATE TABLE test_table(id INT PRIMARY KEY,name VARCHAR(50),age INT);然后,可以在表的字段上创建索引,通过如下语句创建一个索引:CREATE INDEX idx_name ON test_table(name);索引创建完成后,可以通过如下语句删除索引:DROP INDEX idx_name ON test_table;2.索引的修改可以使用ALTER TABLE语句对已创建的索引进行修改。
例如,修改索引的名称:ALTER INDEX idx_name RENAME TO new_idx_name;或者修改索引的定义:ALTER INDEX idx_name RENAME COLUMN new_column_name;3.选择合适的索引类型在创建索引时,需要选择合适的索引类型。
常见的索引类型包括B树索引、哈希索引和全文索引。
- B树索引:适用于等值查询、范围查询和排序场景。
- 哈希索引:适用于等值查询,不支持范围查询和排序。
- 全文索引:适用于全文搜索场景。
4.查询优化在进行数据库查询时,可以通过观察执行计划来判断查询是否有优化空间。
执行计划是数据库在执行查询时生成的查询执行步骤和顺序图,可以根据执行计划优化查询。
另外,还可以通过以下策略对查询进行优化:- 使用合适的索引类型- 避免使用LIKE操作符- 避免使用SELECT *查询所有字段- 避免多表连接查询- 使用JOIN代替子查询- 避免使用不必要的DISTINCT操作符- 分页查询时,使用LIMIT关键字限制结果数量四、实验结果与分析通过实验,我们成功创建了一个测试表,并在该表的字段上创建了索引。
西北工业大学数据库实验报告
1.利用图形用户界面创建,备份,删除和还原数据库和数据表(50分,每小题5分)●数据库和表的要求(第五版教材第二章习题6要求的数据库)数据库名:SPJ,其中包含四张表:S表, P表, J表, SPJ表●完成以下具体操作:(1)创建SPJ数据库,初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB 增长。
数据库的逻辑文件名和物理文件名均采用默认值。
(2)在SPJ数据库中创建如图2.1-图2.4的四张表(只输入一部分数据示意即可)。
S表:P表:J表:SPJ表:(3)备份数据库SPJ(第一种方法):备份成一个扩展名为bak的文件。
(提示:最好先删除系统默认的备份文件名,然后添加自己指定的备份文件名)(4)备份数据库SPJ(第二种方法):将SPJ数据库定义时使用的文件(扩展名为mdf,ldf的数据文件、日志文件等)复制到其他文件夹进行备份。
原位置:新的位置:(5)删除已经创建的工程项目表(J表)。
(6)删除SPJ数据库。
(可以在系统默认的数据存储文件夹下查看此时SPJ数据库对应的mdf,ldf文件是否存在)删除过后文件不存在(7)利用备份过的bak备份文件还原刚才删除的SPJ数据库。
(还原数据库)(8)利用备份过的mdf,ldf的备份文件还原刚才删除的SPJ数据库。
(附加)(9)将SPJ数据库的文件大小修改为100MB。
(10)修改S表,增加一个联系电话的字段sPhoneNo,数据类型为字符串类型。
2.利用SQL语言创建和删除数据库和数据表(50分,每小题5分)●数据库和表的要求数据库名:Student,其中包含三个表:S:学生基本信息表;C:课程基本信息表;SC:学生选课信息表。
●完成以下具体操作:(1)用SQL语句创建如图2.5-图2.7要求的数据库Student,初始大小为20MB,最大为100MB,数据库自动增长,增长方式是按10M兆字节增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
西北工业大学数据库实验报告2
《数据库原理》实验报告题目:实验二基本表的数据操作学号班级日期2014302692 孟玉军10011402 16.10.13一. 实验容、步骤以及结果1.在图形用户界面中对表中的数据进行更新。
(6分,每小题2分)(1)按照实验一图2.1-图2.4中所示数据,输入SPJ数据库所含四表中的数据。
S表:P表:J表:SPJ表:(2)修改S表的任意一条数据把S表中S1的status数据进行了修改(3)删除S表的任意一条数据。
删除了S3的数据2.针对SPJ数据库,用SQL语句完成下面的数据更新。
(12分,每小题3分)(1)第五版教材第三章第5题的8-11小题。
红色零件颜色修改为蓝色:⑧UPDATE PSET COLOR=’蓝’WHERE SNO=’红’⑨由S5供给J4的零件P6改为由S3提供:Update SPJSet sno=’S3’Where sno=’S5’and pno=’P6’and jno=’J4’⑩从供应商关系中删除S2的记录,从供应关系表中删除相应的记录:DeleteFrom SWhere sno=’S2’DeleteFrom SPJWhere sno=’S2’11.请将(S2,J6,P4,200)插入供应情况关系:Insert into SPJValues (‘S2’,’ P4’,’J6’,200)3.针对SPJ数据库,用SQL语句完成下面的数据查询。
(52分,每小题4分) (1)第五版教材第三章第4题。
(5道小题)①:select distinct snofrom SPJwhere jno=’J1’②:select distinct snofrom SPJwhere jno='J1'and pno='P1'③:select snofrom SPJ,Pwhere jno='J1'and SPJ.pno=P.pno and color='红'④:select distinct jnofrom SPJwhere jno not in(select jnofrom SPJ,P,Swhere SPJ.sno=S.sno and city=''and SPJ.pno=P.pno and color ='红')⑤:select jnofrom SPJwhere pno in(select pno from SPJ where sno='S1' )group by jnohaving count(pno)=(select count(pno) from SPJ where sno ='J1')(2)第五版教材第三章第5题的1-7小题。
西北工业大学数据结构试验报告DS05
实验题目:图的结构建立和最短路径算法。
实验目的:练习图的使用。
实验内容:利用邻接矩阵构造图,并求出某一顶点到其余顶点的最短路径并打印输出。
一、需求分析程序刚开始运行时执行初始化,加载“铁路交通图.txt”文件,完成后显示地图上的各节点和编号;然后出现提示信息“请输入出发城市编号:”对话,输入出发城市编号,Enter键结束。
然后出现提示信息“请输入目标城市编号:”对话,输入目标城市编号,Enter键结束。
然后根据用户的输入计算出最短路径,并打印出来。
然后出现提示信息,是否继续,根据用户的选择结束或继续。
(1)测试数据1 112 1312 5二、概要设计(一) 基本操作(1)读取“铁路交通图.txt”文件,并据此建立铁路交通图;(2)根据输入求最短路径,并打印;(3)提示用户是否继续。
(二)本程序包括(1)主程序模块int main()(2)初始化地图模块BOOL InitGraph(MGraph &Graph,FILE *fp);(3)获取最短路径模块BOOL GetPath(MGraph Graph,VertexType vexs1,VertexType vexs2,Path &Path);(4)获取最短路径节点模块BOOL GetShortestPathPoint(Path ShortestPath,int Count,int &DisNum);(5)打印最短路径模块BOOL PrintShortestPath(MGraph Graph,VertexType vexs1,VertexType vexs2,Path ShortestPath);(三)模块调用图:主程序模块初始化地图模块获取最短路径模块获取最短路径节点模块打印最短路径模块三、详细设计(一)元素类型//定义TURE FASLE 表示函数执行情况#define TRUE 1#define FALSE 0#define BOOL char //函数执行情况返回值TRUE成功FLASE失败typedef struct{int Num;//顶点编号char Name[20];//顶点名称}VertexType;// 顶点typedef int VRType; //顶点间关系,即权值,-1表示权值(距离)无穷大typedef void *InfoType;typedef enum {DG,DN,UDG,UDN} GrapKind;//图的种类{有向图,有向网,无向图,无向网}typedef struct{VRType Distance; //弧长,顶点间距离,-1表示该弧不存在(距离无穷大)InfoType Info; //与该弧相关信息的指针}ARcCell,*pAdjMatrx; //弧,邻接矩阵指针typedef struct{int Prior; //上一个节点VRType Distance; //从起始节点到该节点的路程}PathPoint,*Path; //路径节点,路径typedef struct{VertexType *vexs; //顶点向量pAdjMatrx Arcs; //邻接矩阵int Vexsnum,Arcnum; //图的当前顶点数和弧数GrapKind kind; //图的种类{有向图,有向网,无向图,无向网}}MGraph; //图(二)每个模块的分析(1)主程序模块int main(){MGraph Graph; //图FILE *fp; //图文件Path ShortestPath;//最短路径VertexType vexs1,vexs2;//起点,终点BOOL CONT='Y';//是否继续//加载交通图if ((fp=fopen("铁路交通图.txt","r"))==NULL){return FALSE;}InitGraph(Graph,fp);fclose(fp);while (CONT=='Y'){//计算起始点间的路径printf("请输入出发城市编号:");scanf("%d",&vexs1.Num);printf("请输入目的城市编号:");scanf("%d",&vexs2.Num);//获取最短路径并输出if(vexs1.Num<0||vexs1.Num>=Graph.Vexsnum||vexs2.Num<0||vexs2.Num>=Graph.Vexsnum) {printf("暂时没有您要的城市信息!\n");}GetPath(Graph,vexs2,vexs1,ShortestPath);//是否继续printf("是否继续?Y—继续N—退出\n");getchar();CONT=getchar();}return 0;}(2)初始化地图模块BOOL InitGraph(MGraph &Graph,FILE *fp){int i,j;//初始化地图节点fscanf(fp,"%d",&Graph.Vexsnum);//获取地图节点数Graph.vexs=(VertexType *)calloc(sizeof(VertexType),Graph.Vexsnum);//为节点分配内存if (Graph.vexs==NULL){printf("初始化失败");return FALSE;}for (i=0;i<Graph.Vexsnum;i++)//获取节点信息{fscanf(fp,"%d %s",&Graph.vexs[i].Num,Graph.vexs[i].Name);printf("%d %s\n",Graph.vexs[i].Num,Graph.vexs[i].Name);}//初始化地图路径Graph.Arcs=(pAdjMatrx)calloc(sizeof(ARcCell),Graph.Vexsnum*Graph.Vexsnum);//为路径分配内存if (Graph.Arcs==NULL){printf("初始化失败");return FALSE;}for (i=0;i<Graph.Vexsnum;i++)//获取路径信息{for (j=0;j<Graph.Vexsnum;j++){fscanf(fp,"%d",&Graph.Arcs[i*Graph.Vexsnum+j].Distance);}}return TRUE;}(3)获取最短路径模块BOOL GetPath(MGraph Graph,VertexType vexs1,VertexType vexs2,Path &ShortestPath){int i,j;int disNum;//当前节点最短弧的尾节点(当前行的位置)ShortestPath=(Path)calloc(sizeof(PathPoint),Graph.Vexsnum*Graph.Vexsnum);for (j=0;j<Graph.Vexsnum;j++)//加载第一行{ShortestPath[j].Distance=Graph.Arcs[vexs1.Num*Graph.Vexsnum+j].Distance;ShortestPath[j].Prior=vexs1.Num;}//加载其余行for (i=0;i<Graph.Vexsnum-1;i++){//获取路径(弧)最短节点GetShortestPathPoint(&ShortestPath[i*Graph.Vexsnum],Graph.Vexsnum,disNum);for (j=0;j<Graph.Vexsnum;j++){if (ShortestPath[i*Graph.Vexsnum+j].Distance>=0)//当前节点已有路径{ //判断是否有新路径,以及新路径是否比当前路径更短//有新路径,且新路径不比当前路径更短,则选择新路径if (Graph.Arcs[disNum*Graph.Vexsnum+j].Distance>=0&&(Graph.Arcs[disNum*Graph.Vexsnum+j].Distance+ShortestPath[i*Graph.Vexsnum+disNum]. Distance<ShortestPath[i*Graph.Vexsnum+j].Distance)){ShortestPath[(i+1)*Graph.Vexsnum+j].Distance=Graph.Arcs[disNum*Graph.Vexsnum+j].Dista nce+ShortestPath[i*Graph.Vexsnum+disNum].Distance;ShortestPath[(i+1)*Graph.Vexsnum+j].Prior=disNum;}else{//没有新路径,或新路径不比当前路径更短,保留当前路径ShortestPath[(i+1)*Graph.Vexsnum+j].Distance=ShortestPath[i*Graph.Vexsnum+j].Distance;ShortestPath[(i+1)*Graph.Vexsnum+j].Prior=j;}}else//当前节点没有路径{//判断是否有新路径,有新路径选择新路径if (Graph.Arcs[disNum*Graph.Vexsnum+j].Distance>=0){ShortestPath[(i+1)*Graph.Vexsnum+j].Distance=Graph.Arcs[disNum*Graph.Vexsnum+j].Dista nce+ShortestPath[i*Graph.Vexsnum+disNum].Distance;ShortestPath[(i+1)*Graph.Vexsnum+j].Prior=disNum;}else{//没有新路径,保留当前路径ShortestPath[(i+1)*Graph.Vexsnum+j].Distance=ShortestPath[i*Graph.Vexsnum+j].Distance;ShortestPath[(i+1)*Graph.Vexsnum+j].Prior=j;}}}}//打印最短路径PrintShortestPath(Graph,vexs1,vexs2,ShortestPath);//初始化标记节点GetShortestPathPoint(&ShortestPath[i*Graph.Vexsnum],0,disNum);return TRUE;}(4)获取最短路径节点模块BOOL GetShortestPathPoint(Path ShortestPath,int Count,int &DisNum){int i;int Dis=1<<30;//Dis为从路径ShortestPath开始的Count个节点中最小值static char IsSelected[50];//标记节点是否选择过//如果Count=0,执行初始化if (Count==0){for (i=1;i<50;i++){IsSelected[i]=0;//全部置为未选过}return FALSE;}//找到未选择过的最小路径节点for (i=0;i<Count;i++){ //未选择,路程更短,可通if ((!IsSelected[i])&&(ShortestPath[i].Distance<Dis)&&(ShortestPath[i].Distance>=0)){Dis=ShortestPath[i].Distance;DisNum=i;//选择该节点坐标}}IsSelected[DisNum]=1;//将选择的节点定义为以选择return TRUE;}(5)打印最短路径模块BOOL PrintShortestPath(MGraph Graph,VertexType vexs1,VertexType vexs2,Path ShortestPath) {int i,j;//j为当前节点的前驱j=vexs2.Num;//打印最短路程printf("最短距离是%d千米,路径为:\n",ShortestPath[(Graph.Vexsnum-1)*Graph.Vexsnum+j].Distance);for (i=Graph.Vexsnum-1;i>=0;i--){if (//(ShortestPath[i*Graph.Vexsnum+j].Distance!=-1)&&(ShortestPath[i*Graph.Vexsnum+j].Prior!=j)){printf("%s ",Graph.vexs[j].Name);//打印该节点j=ShortestPath[i*Graph.Vexsnum+j].Prior;//j置为当前节点的前驱}}printf("%s \n",Graph.vexs[vexs1.Num].Name);//打印终点return TRUE;}(四)程序使用说明1.程序使用说明(1)本程序的运行环境为VS2010。
西北工业大学数据结构试验报告DS03
MultSMatrix(M,N,&Q);
//初始化条件: 稀疏矩阵M的列数等于N的行数.
//操作结果:求稀疏矩阵的乘积Q=M*N.
TransposeSMatrix(M ,&Q);
//初始化条件:存在稀疏矩阵M
//操作结果:将稀疏矩阵行列互换输出。
功能模块调用关系图
4、输入第二个矩阵如上所示
5、输出运算结果
六、
#include<stdio.h>
#include<string.h>
#include<math.h>
#define MAXSIZE 12500
typedef int ElemType;
typedef struct
{
int row,col;
ElemType e;
j++;
k++;
}
else
{
if(A->data[i].col<B->data[j].col)
{
C->data[k]=A->data[i];
i++;
k++;
}
else
{
if(A->data[i].col>B->data[j].col)
{
C->data[k]=B->data[j];
j++;k++;
}
else
}
while(i<A->t)
{
C->data[k]=A->data[i];
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.利用图形用户界面创建,备份,删除和还原数据库和数据表(50分,每小题5分)
●数据库和表的要求(第五版教材第二章习题
6
要求的数据库)
数据库名:SPJ,其中包含四张表:S表, P表, J表, SPJ表
●完成以下具体操作:
(1)创建SPJ数据库,初始大小为 10MB,最大为50MB,数据库自动增长,增长方
式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
数据库的逻辑文件名和物理文件名均采用默认值。
(2)在SPJ数据库中创建如图2.1-图2.4的四张表(只输入一部分数据示意即可)。
S表:
P表:
J表:
SPJ表:
(3)备份数据库SPJ(第一种方法):备份成一个扩展名为bak的文件。
(提示:
最好先删除系统默认的备份文件名,然后添加自己指定的备份文件名)
(4)备份数据库SPJ(第二种方法):将SPJ数据库定义时使用的文件(扩展名为
mdf,ldf的数据文件、日志文件等)复制到其他文件夹进行备份。
原位置:
新的位置:
(5)删除已经创建的工程项目表(J表)。
(6)删除SPJ数据库。
(可以在系统默认的数据存储文件夹下查看此时SPJ数据
库对应的mdf,ldf文件是否存在)
删除过后文件不存在
(7)利用备份过的bak备份文件还原刚才删除的SPJ数据库。
(还原数据库)
(8)利用备份过的mdf,ldf的备份文件还原刚才删除的SPJ数据库。
(附加)
(9)将SPJ数据库的文件大小修改为100MB。
(10)修改S表,增加一个联系电话的字段sPhoneNo,数据类型为字符串类
型。
2.利用SQL语言创建和删除数据库和数据表(50分,每小题5分)
●数据库和表的要求
数据库名:Student,其中包含三个表:S:学生基本信息表;C:课程基本信息表;SC:学生选课信息表。
●完成以下具体操作:
(1)用SQL语句创建如图2.5-图2.7要求的数据库Student,初始大小为20MB,
最大为100MB,数据库自动增长,增长方式是按10M兆字节增长;日志文件初
始为2MB,最大可增长到5MB,按1MB增长。
数据库的逻辑文件名和物理文件名,日志文件名请自定义。
(2)用SQL语句创建上述的三张表,各个字段的数据类型请自己确定,每张表只
要有主键约束即可,不要其他约束。
不用输入数据。
S表:
C表:
SC表:
(3)用SQL中的backup 语句将数据库Student备份到一个bak文件。
(提示:
backup database student to disk)
(4)用SQL语句删除创建的表。
drop table S,C,SC
(5)将Student数据库定义时使用的文件(扩展名为mdf,ldf的数据文件、日志文
件等)复制到其他文件夹进行备份(复制)后,用SQL语句删除创建的数据库。
Drop database Student
(6)用SQL中的sp_attach_db语句完成对数据库Student的附加。
(通过该方式
完成数据库的恢复时,使用的备份文件是第5)小题中备份好的数据文件、日志文件等,具体用法:exec sp_attache_db )
(7)先删除Student库,再用SQL中的restore 语句还原刚才备份的数据库
Student。
(提示:restore database student from disk)
(8)用SQL语言修改数据库Student,给Student数据库添加一个文件组 TestFG1,
然后将两个 5 MB 的文件添加到该文件组。
(提示:alter database)
1)添加文件组
alter database Student
add filegroup TestFG1
2)添加文件到文件组
alter database Student
add file
(
Name =f1,
Filename=‘E:\学习资料\大三\数据库\实验\1.ndf’,
Size=5MB
)to fileGroup TestFG1
alter database Student
add file
(
Name =f2,
Filename=‘E:\学习资料\大三\数据库\实验\2.ndf’,
Size=5MB
)to fileGroup TestFG1
(9)修改S表,增加一个表示联系电话的字段sPhoneNo,数据类型为字符串类型。
Alter table S
Add sphoneno char(15)
(10)利用SQL Server Management Studio的生成脚本功能(选中Student库
->右键菜单“任务”-> “生成脚本”),自动生成S表的创建脚本,分析自
动生成的脚本和自己写的SQL语句的异同点。
生成脚本的结果:
生成脚本中有许多的约束条件,自己写的只有主键约束
二.实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)
除了标题内容以外,该部分内容中还可以写对于实验的一些感受,建议,意见等。
1.sql的帮助文档在需要时及时查阅,解决大部分的问题
2.数据库的分离附加与备份还原的区别:
分离的话那个数据库就停用了,备份的话备份过程中数据库还可以继续使用。
附
加和还原出来的数据库效果是一样的。
批阅者:
批阅日期:
实验成绩:
批注:。