西北工业大学_数据库_实验报告_DB5
西北工业大学数字逻辑实验报告(0123403034循环)
![西北工业大学数字逻辑实验报告(0123403034循环)](https://img.taocdn.com/s3/m/aaa3611d178884868762caaedd3383c4ba4cb44e.png)
数字电路技术实验报告一、学号: 姓名: 日期:实验目的:(1).用数码显示管实现0.1.2.3.4.0.3.0.3.4;(2).用74LS90,5421BCD码实现模十计数;二、实验设备:(1).数字电路试验箱;(2).数字双踪示波器;(3).函数信号发生器;(4).集成电路: 74LS90;(5).集成电路: 74LS00;三、实验原理:计数是一种最简单的基本运算计数器在数字系统中主要是对脉冲的个数进行计数以实现测量、计数和控制的功能同时兼有分频功能。
计数器按计数进制分为二进制计数器十进制计数器和任意进制计数器按计数单元中触发器所接收计数脉冲和翻转顺序分为异步计数器同步计数器按计数功能分有加法计数器减法计数器可逆双向计数器等。
异步清零2-5-10进制异步计数器74LS9074LS90是一块2-5-10进制异步计数器它由四个主从JK触发器和一些附加门电路组成其中一个触发器构成一位二进制计数器另三个触发器构成异步五进制计数器。
在74LS90计数器电路中设有专用置0端R01 R02和置9端S91 S92 当R1=R2=S1=S2=0时时钟从CP1引入Q0输出为二进制时钟从CP2引入Q3输出为五进制时钟从CP1引入Q0接CP2即二进制的输出与五进制的输入相连则Q3Q2Q1Q0输出为十进制8421BCD 码时钟从CP2引入而Q3接CP1即五进制的输出与二进制的输入相连Q0Q3Q2Q1输出为十进制5421BCD码。
74LS90管脚定义74LS00管脚定义74LS90功能表四、实验内容:(1).用74LS90实现0123403034 (2).用5421BCD实现计数;五、实验结果:(1).列出真值表;(2).画出卡诺图;(3).按化简结果连接图;(循环数字列表)(1).F8=0;.四变量卡诺图:F 2=Q .Q .Q .Q 1020;F 1=Q 1;(5).把F 8接地;F 4接Q3;F 2与相接Q .Q .Q .Q 1020;F 1与Q 1链接;六、心得体会:这次实验综合性较强, 主要考察了我们从实际问题中抽象出逻辑函数的能力。
数据库实验报告实验步骤
![数据库实验报告实验步骤](https://img.taocdn.com/s3/m/f9f4eb0626d3240c844769eae009581b6bd9bdb4.png)
一、实验目的1. 熟悉数据库的基本概念和结构。
2. 掌握数据库的创建、修改、删除等操作。
3. 学会使用SQL语句进行数据的查询、插入、更新和删除。
4. 掌握数据库的备份和恢复。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:MySQL Workbench三、实验步骤1. 创建数据库(1)打开MySQL Workbench,选择“新建连接”。
(2)输入主机名、用户名、密码等信息,点击“连接”。
(3)在左侧菜单栏选择“数据库”,点击“创建数据库”。
(4)在弹出的对话框中输入数据库名称,点击“创建”。
2. 创建表(1)在左侧菜单栏选择“数据库”,然后选择刚刚创建的数据库。
(2)点击“创建表”。
(3)在弹出的对话框中输入表名,设置字段类型、长度、约束等属性。
(4)点击“保存”完成表的创建。
3. 插入数据(1)选择创建的表,点击“插入数据”。
(2)在弹出的对话框中输入数据,点击“保存”。
4. 查询数据(1)选择创建的表,点击“查询”。
(2)在弹出的对话框中输入SQL语句,例如:SELECT FROM 表名 WHERE 条件。
(3)点击“执行”查看查询结果。
5. 更新数据(1)选择创建的表,点击“更新数据”。
(2)在弹出的对话框中输入SQL语句,例如:UPDATE 表名 SET 字段=值 WHERE条件。
(3)点击“执行”完成数据的更新。
6. 删除数据(1)选择创建的表,点击“删除数据”。
(2)在弹出的对话框中输入SQL语句,例如:DELETE FROM 表名 WHERE 条件。
(3)点击“执行”完成数据的删除。
7. 备份和恢复数据库(1)在左侧菜单栏选择“数据库”,然后选择要备份的数据库。
(2)点击“备份”。
(3)在弹出的对话框中设置备份文件路径和名称,点击“备份”完成备份操作。
(4)在左侧菜单栏选择“数据库”,然后选择“还原”。
(5)在弹出的对话框中设置还原路径和名称,点击“还原”完成数据库的恢复。
西北工业大学数据库实验报告
![西北工业大学数据库实验报告](https://img.taocdn.com/s3/m/3844710f0b4c2e3f57276390.png)
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的连接,查询,插入,修改和删除。
(选做实验)二.实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)除了标题内容以外,该部分内容中还可以写对于实验的一些感受,建议,意见等。
数据库实验报告五
![数据库实验报告五](https://img.taocdn.com/s3/m/991992aae2bd960591c67778.png)
select @stuavg //看结果
(3)在pubs数据库中建立一个存储过程,用于检索数据库中某一价位的图书信息。参数有两个,用于指定图书价格的上下限。如果找到满足条件的图书,则返回0,否则返回1。执行结果如图五所示:
实验地点:软件实验室一时间:2015年12月10日
1、实验目的:
掌握用户存储过程的创建,了解一些常用的系统存储过程,以及调用和删除过程,并熟悉使用存储过程来进行数据库应用程序的设计。
二、实验内容:
(1)基于学生—课程数据库创建一存储过程,用于检索数据库中某个专业学生的人数,带有一个输入参数,用于指定专业。执行结果如图二所示:
as select @stu_avg = avg(grade) //将平均值给了变量
from student,sc where student. sno = sc. sno andstudent.sno=@stu_sno
1.存储过程的执行
declare @stuavg float //用于存放输出变量内容的
(2)基于学生-课程数据库创建一存储过程,该过程带有一个输入参数,一个输出参数。其中输入参数用于指定学生的学号,输出参数用于返回学生的平均成绩。执行结果如图四所示:
create procedure pro_stu @stu_sno char(6),@stu_avg float output //这个带output的是输出参数
return 0
else
return 1
(4)存储过程的执行
(5)存储过程的删除。执行结果如图七所示:
3、实验数据(或者实验结果):
西北工业大学数据库实验报告2
![西北工业大学数据库实验报告2](https://img.taocdn.com/s3/m/5cb38f6aaf45b307e9719722.png)
《数据库原理》实验报告题目:实验二基本表的数据操作学号姓名班级日期2014302692 孟玉军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小题。
DB实验报告要求及格式 (自动保存的)
![DB实验报告要求及格式 (自动保存的)](https://img.taocdn.com/s3/m/a3abca76be1e650e52ea99e5.png)
实验一数据库及基本表的建立实验项目名称:数据库及基本表的建立实验项目性质:验证型所属课程名称:《数据库应用》实验计划学时:3一、实验目的1、掌握SQL SERVER的查询分析器和企业管理器的使用;2、掌握创建数据库和表的操作;二、实验内容和要求1、分别使用SQL语句、企业管理器(Enterprise Manager)创建数据库;2、使用SQL语句、企业管理器(Enterprise Manager)创建数据库表;三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows;2.数据库管理系统:SQL sever 2005;四、实验方法、步骤及结果测试创建一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。
创建:student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student _course表(学生选课成绩表)、teacher_course表(教师上课课表)等。
1、创建数据库:·确定数据库名称;数据库用于学生管理,命名为SC·确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。
·确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。
·确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。
要求:(1)、利用查询分析器(Query Analyzer),使用SQL语句指定参数创建数据库;2、创建基本表利用查询分析器,使用SQL语句方式创建方式将下面各表建立到教学管理数据库中。
(1)创建student表(2)创建Course表(3)创建student _course表(4)创建teacher表(7)创建teacher_course表(8)创建班级表(class)3、查看各数据表之间的关系,生成数据库关系图。
西北工业大学数据结构课程方案实验报告
![西北工业大学数据结构课程方案实验报告](https://img.taocdn.com/s3/m/0dee70921a37f111f1855ba8.png)
2018--2018数据结构课程设计实验报告学院:班级:姓名:学号:邮箱:日期:2018年1月17日《数据结构》实验报告◎实验题目:单词<词组)检索◎实验内容:现在有一个英文字典<每个单词都是由小写的'a'-'z'组成),单词量很大,达到100多万的单词,而且还有很多重复的单词。
此外,我们现在还有一些 Document,每个Document 包含一些英语单词。
针对这个问题,请你选择合适的数据结构,组织这些数据,使时间复杂度和空间复杂度尽可能低,并且解决下面的问题和分析自己算法的时间复杂度。
1)基本型问题<必须采用字符串哈希,hash散列算法)<1)将所有的英文单词生成一个字典Dictionary。
<2)给定一个单词,判断这个单词是否在字典Dictionary中。
如果在单词库中,输出这个单词总共出现的次数。
否则输出NO。
<3)输出Dictionary中出现次数最高的10个单词。
<必须采用快速排序或堆排序算法)2)扩展型问题<可选择合适的数据结构)<4)给定一个单词,按字典序输出字典Dictionary 中所有以这个单词为前缀的单词。
例如,如果字典 T={a,aa, aaa, b, ba}, 如果你输入 a,那么输出应该为{a, aa, aaa}。
<5)给定一个单词,输出在Dictionary 中以这个单词为前缀的单词的出现频率最高的10个单词,对于具有相同出现次数的情况,按照最近<即最后)插入的单词优先级比较高的原则输出。
对于以下问题,需采用2种不同的数据结构<hash散列与Trie树,并针对以下题目,比较两种数据结构的优缺点。
)3)高级型问题<6)现在我们有一些Document,每个Document 由一些单词组成,现在的问题就是给你一个word,检索出哪些Document包含这个word,输出这些Document的DocumentID<就如同搜索引擎一样,即输入一些关键字,然后检索出和这些关键字相关的文档)。
西北工业大学数据结构试验报告DS05
![西北工业大学数据结构试验报告DS05](https://img.taocdn.com/s3/m/6eae273ff111f18583d05a1a.png)
实验题目:图的结构建立和最短路径算法。
实验目的:练习图的使用。
实验内容:利用邻接矩阵构造图,并求出某一顶点到其余顶点的最短路径并打印输出。
一、需求分析程序刚开始运行时执行初始化,加载“铁路交通图.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。
西北工业大学 实验报告
![西北工业大学 实验报告](https://img.taocdn.com/s3/m/bb8dee241fd9ad51f01dc281e53a580216fc50af.png)
西北工业大学实验报告《西北工业大学实验报告》西北工业大学是一所位于中国陕西省西安市的高等学府,以其严谨的科学研究和丰富的实验教学而闻名。
在这里,学生们不仅可以接受到扎实的理论知识,还能通过各种实验活动来提升自己的实践能力。
下面,我们将就西北工业大学的实验报告进行一番探讨。
西北工业大学的实验报告是学生进行实验活动后所撰写的一份详细记录,其中包括实验目的、方法、结果、分析和结论等内容。
这些实验报告旨在让学生通过实践活动来加深对理论知识的理解,提高自己的动手能力和实验技能。
在西北工业大学,学生们有机会参与各种各样的实验活动,涵盖了物理、化学、生物、工程等多个学科领域。
通过这些实验活动,学生们可以亲身感受到科学知识的魅力,培养自己的观察力、思维能力和动手能力。
在实验活动结束后,学生们需要按照一定的格式和要求来撰写实验报告。
这不仅有助于学生对实验过程的回顾和总结,还能够培养学生的科学写作能力。
通过撰写实验报告,学生们可以逐步提高自己的文字表达能力和逻辑思维能力。
西北工业大学的实验报告不仅是对学生实验活动的一份记录,更是对学生科学素养的一次锻炼。
通过实验报告的撰写,学生们能够不断提高自己的实验技能和科学素养,为将来的科研工作和实践活动打下坚实的基础。
总之,西北工业大学的实验报告是学生进行实验活动后的一份重要记录,它不仅有助于学生对实验过程的回顾和总结,还能够培养学生的科学写作能力和科学素养。
相信通过这样的实践活动,学生们能够更好地掌握科学知识,提高自己的实践能力,为将来的科研工作和实践活动做好准备。
西北工业大学数据库实验报告7
![西北工业大学数据库实验报告7](https://img.taocdn.com/s3/m/cf4d65c1195f312b3169a56c.png)
假设学校允许学生将银行卡和校园卡进行绑定,在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。
北方工业大学数据库实验报告
![北方工业大学数据库实验报告](https://img.taocdn.com/s3/m/fe00bc81a58da0116c17498f.png)
数据库技术I(2010年秋)数据库技术I 实验报告系别:班级:姓名:学号:成绩:评语:指导教师签字:日期:实验一数据库的建立及数据维护一、实验目的1.学会使用企业管理器和查询分析器创建数据库、创建基本表和查看数据库属性。
2. 学会使用企业管理器和查询分析器向数据库输入数据,修改数据,删除数据的操作。
3. 在SOL Server查询分析器中完成复杂查询及视图定义。
二、实验环境及要求数据库实验要求如下环境,服务器端:Windows 2000/xp、数据库服务器(SQL Server 2005)、Web服务器(IIS )和ASP。
客户端:、VB 。
要求:1、根据以上数据字典,画出该数据库的ER图,完成数据库的概念结构设计;2、将ER图转换成逻辑关系模式,判断逻辑数据库模式中的各个关系(表)是第几范式,如果没有达到第三范式或BC范式,请进行规范化。
完成数据库的逻辑结构设计。
3、通过企业管理器或者查询分析器实现关系模式的存储,包括确定主码、外部码等。
4、通过企业管理器或查询分析器向数据库中输入数据。
5、打开数据库SQL Server 2005的查询分析器,用SQL语言完成以下语句。
并通过实验结果验证查询语言的正确性,将每个SQL语言及结果存盘,以备老师检查。
(1)求全体学生的学号、姓名和出生年份。
(2)求每个系的学生总人数并按降序排列。
(3)求选修了课程号为002或003的学生的学号、课程名和成绩。
(4)检索选修某课程的学生人数多于3人的教师姓名。
(5)查询所有未选课程的学生姓名和所在系。
(6)求每个同学的课程成绩的最高分,查询结果项包括:学生姓名、课程号及最高分。
(7)求所有讲授数据结构课程的教师姓名(8)查询所有选修了李正科老师的课程的学生信息三、实验步骤及结果1、SQL Server 2005服务管理器使用1.启动数据库服务软件SQL Server 2005:在程序菜单中选择Microsoft SQL Server 2005点击Studio后,出现连接到服务器,点击“连接”按钮,启动SQL Server 2005数据库服务。
西北工业大学数据库实验报告
![西北工业大学数据库实验报告](https://img.taocdn.com/s3/m/025995fc3186bceb19e8bbc3.png)
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增长。
西北工业大学数据库实验报告5
![西北工业大学数据库实验报告5](https://img.taocdn.com/s3/m/0aa0c44b43323968011c92d5.png)
西北工业大学数据库实验报告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存储过程,查看北京供应商的情况。
(5分)执行:exec jmsearch(4)删除jmsearch存储过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验内容、步骤以及结果1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。
(5分)sp_rename'V_SPJ','V_SPJ_三建'2.针对SPJ数据库,创建并执行如下的存储过程:(共计35分)(1)创建一个带参数的存储过程—jsearch。
该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME)。
执行jsearch存储过程,查询“J1”对应的信息。
(10分)CREATE PROCEDURE jsearch(@SPJ_JNO CHAR(10))ASBEGIN SELECT SNAME,PNAME,JNAMEFROM SPJ,S,P,JWHERE @SPJ_JNO=SPJ.JNO AND SPJ.JNO=J.JNO AND SPJ.PNO=P.PNO AND SPJ.SNO=S.SNOEND;(2)使用S表,为其创建一个加密的存储过程—jmsearch。
该存储过程的作用是:当执行该存储过程时,将返回北京供应商的所有信息。
(10分)CREATE PROCEDURE jmsearch WITH ENCRYPTIONASSELECT*FROM SWHERE S.CITY='北京';(3)使用系统存储过程sp_helptext查看jsearch,jmsearch的文本信息。
(5分)EXEC sp_helptext jsearchEXEC sp_helptext jmsearch(4)执行jmsearch存储过程,查看北京供应商的情况。
(5分)EXEC jmsearch;(5)删除jmsearch存储过程。
(5分)DROP procedure jmsearch3.针对Student数据库,创建和执行如下的触发器:(共计40分)(1)删除SC表上的外键约束,针对SC表创建一个名为insert_s的INSERT触发器。
该触发器的功能:当用户向SC表中插入记录时,如果插入的cno值不是C表中Cno的已有值,则提示用户“不能插入记录这样的纪录”,否则提示“记录插入成功”。
触发器创建成功之后,向SC表插入记录,验证触发器是否正常工作。
(5分)create trigger insert_son SCinstead of insertasdeclare @cno char(4)beginselect @cno = cno from insertedif @cno=any(select cno from C)beginselect'记录插入成功'insert into SCselect*from insertedendelse select'不能插入记录这样的记录'endreturn验证是否正常工作:插入cno已经有的数据:insert into SCvalues ('95006','6','99');插入cno,没有的数据:insert into SCvalues ('95006','7','99');(2)为S表创建一个名为dele_s1的DELETE触发器,该触发器的作用是禁止删除S表中的记录。
触发器创建成功之后,删除S表中的记录,验证触发器是否正常工作。
(5分)create trigger dele_s1on Sinstead of deleteasbeginrollbackprint'禁止删除 S表中的记录'end验证是否正常工作:deletefrom Swhere sno ='95004'(3)为S表创建一个名为dele_s2的DELETE触发器,该触发器的作用是删除S表中的记录时删除SC表中该学生的选课纪录。
触发器创建成功之后,删除S表中的记录删除S表中的记录,验证触发器是否正常工作(SC表中的数据被正常删除)。
(5分)create trigger dele_s2 on Safter deleteasdeclare @sno nchar(9)beginselect @sno=sno from deleteddelete SCwhere sno=@snoend验证是否正常工作:delete Swhere sno='95001'执行完成后SC表相关数据已经被删除。
(4)为S表创建一个名为update_s的UPDATE触发器,该触发器的作用是禁止更新S表中“sdept”字段的内容。
触发器创建成功之后,更新S表中“sdept”字段的内容,验证触发器是否正常工作。
(5分)create trigger update_s on Safter updateasbeginif update(sdept)beginrollback print'禁止更新sdept字段'endend验证:update S set sdept='cf'where sno='95002'(5)禁用update_s触发器。
禁用之后,更新S表中的“sdept”字段的内容,验证触发器是否还继续正常工作。
(5分)disable trigger update_s on S验证:update S set sdept='cf'where sno='95002'(6)删除update_s触发器。
(5分)drop trigger update_s(7)创建一个新的课程成绩统计表 CAvgGrade(Cno, Snum, examSNum, avgGrade),分别表示课号,选该课程的学生人数,参加考试人数,该门课程的平均成绩。
利用触发器实现如下的功能:当SC表中有记录插入、删除或者某个人的成绩更新时,自动更新表CAvgGrade。
注意SC表中的grade为NULL时表明该学生还未参加考试,计算平均成绩时不需要计算该成绩,但是grade为0即考试成绩为0时,需要计算该成绩。
(10分)首先使用SQL语句创建表CAvgGrade(并同时把SC表原有的数据记录插入):create table CAvgGrade(Cno smallint, Snum smallint, examSNum smallint, avgGrade smallint);declare @no intdeclare @snum intdeclare @examsnum intdeclare @avggrade intset @no=1;while(@no<7)beginselect @snum=count(distinct sno)from SC where cno=@no;select @examsnum=count(distinct sno)from SC where cno=@no and grade is not nullselect @avgGrade=AVG(grade)from SC where o=@no and grade is not nullinsert CAvgGrade values(@no,@snum,@examsnum,@avggrade)set @no=@no+1end创建后的表如下:创建触发器:create trigger tri_sc on SCafter delete,update,insertasdeclare @grade intdeclare @num intdeclare @old_cno intdeclare @examsnum intdelete CAvgGradeDECLARE mycursor CURSOR for select cno from Copen mycursorfetch next from mycursor into @old_cnowhile(@@fetch_status=0)beginselect @grade=AVG(grade),@num=COUNT(*)from SCwhere cno=@old_cnogroup by cnoselect @examsnum=count(distinct sno)from SCwhere cno=@old_cno and grade is not nullinsert into CAvgGrade values(@old_cno,@num,@num,@grade) fetch next from mycursor into @old_cnoset @grade=nullset @num=nullendclose mycursor验证:插入:insert into SC VALUES(95006,6,100);删除:delete SC WHERE sno=95006更新:UPDATE SC SET cno=4 where sno=95001 and cno=14.创建一个works数据库,其中包含员工表employee(eID, eName, salary),假设该表中有1000条员工数据,完成下列要求(总计20分,每题10分)。
(1)为了协助本题自动生成1000条员工数据,创建一个自动生成员工ID的用户自定义函数generateEID。
其中员工ID要求是一个8位的数字,前四位表示插入员工数据的当前年份,后四位按照从0001到9999的顺序增长。
例如2015年插入的第一条数据是20050001,所有1000条员工ID分别是20150001-20151000。
调用该函数实现自动插入1000条数据。
(注意插入数据的时候员工姓名可以为任意值,工资是2000-5000之间的数字)自定义函数:create procedure generateEIDasbegindeclare @i intset @i=0while (@i<1000)begininsert into employee values(20180001+@i,'name'+CAST(@i asnchar(20)),2000+CAST(FLOOR(rand()*3001)as int))set @i=@i+1endend执行:exec generateEID插入结果见下图:(2)该公司计划为员工按照一定的规则涨工资,请使用游标创建一个存储过程,执行该存储过程完成本次工资调整:工资增长规则如下:工资在3000元以下,每月涨300元;工资在3000-4000元之间,每月涨200元;工资大于或者等于4000元,每月涨50元;代码:declare mycursor CURSORfor select salary from employeeopen mycursordeclare @salary intfetch next from mycursor into @salarywhile@@FETCH_STATUS=0beginif(@salary<3000)beginupdate employeeset salary=@salary+300where current of mycursorendelseif(@salary<4000)beginupdate employeeset salary=@salary+200where current of mycursorendelsebeginupdate employeeset salary=@salary+50where current of mycursorendfetch next from mycursor into @salary endclose mycursordeallocate mycursor执行结果:二、实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)除了标题内容以外,该部分内容中还可以写对于实验的一些感受,建议,意见等。