太原理工大学数据库实验
- 格式:docx
- 大小:4.43 MB
- 文档页数:34
实验报告课程名称:数据库系统原理实验项目:认识DBMS系统、交互式SQL、数据完整性、用户鉴别与数据控制实验地点:实验室210专业班级:软件1334学号:学生姓名:指导教师:宋晓涛2015年5月8日学院名称软件学院专业班级1334 实验成绩学生姓名学号实验日期2015.0课程名称数据管理库系统概论实验题目认识DBMS系统一、实验目的和要求(1)通过对SQL Server 2005/2008数据库管理系统的使用,了解DBMS的工作原理和系统构架。
(2)熟悉SQL Server提供的管理工具(3)熟悉使用SQL Server Management Studio创建数据库对象二、主要仪器设备计算机:HP-6470b windows7 64 位运行环境: SQL Server 2008R2三、实验内容及要求3.1 安装SQL Server1.在安装过程中记录安装的选择,并且对所作的选择进行思考,为何要进行这样的配置,对今后运行数据库管理系统会有什么影响。
2.理解默认实例、命名实例的含义3.了解SQL Server的身份认证模式,初步了解SQL Server的安全性。
4.了解SQL Server提供的服务。
5.检查SQL Server安装是否成功。
3.2 管理和使用SQL Server了解SQL Server如何通过它提供的工具对数据库服务器进行管理和使用的。
1、启动、暂停和停止SQL Server学会运用SQL Server配置管理或SQL Server Management Studio启动和停止SQL Server 的各种服务。
2、了解SQL Server的管理工具初步了解SQL Server的提供了哪些主要管理工具和它们的功能。
3、学会使用SQL Server联机丛书学会SQL Server联机丛书查询SQL命令语法格式、SQL Server数据库的概念、术语等内容。
3.3 熟悉使用SQL Server Management Studio了解SQL Server Management Studio的基本用法,能熟练使用它管理数据库服务器和数据库对象。
实验报告二课程名称:数据结构实验名称:数据结构实验地点:计算机110机房专业班级:计科Z1501 学号:2015001909 学生姓名:刘元瑞指导教师:孟亮2016年12 月23 日2.编写递归算法,计算二叉树中叶子结点的数目。
#include <stdio.h>#include<malloc.h>struct node{char info;struct node *llink, *rlink;};typedef struct node NODE;NODE *create(){ //构造二叉树char x;NODE *p;scanf("%c", &x);printf("%c", x); //打印出已输入的二叉树if(x!='.'){p=(NODE *)malloc(sizeof(NODE));p->info=x;p->llink=create();p->rlink=create();}else p=NULL;return p;}int run(NODE *t){static int count=0;if(t){run(t->llink); //递归遍历左子树,直到叶子处run(t->rlink); //递归遍历右子树,直到叶子处if(t->llink ==NULL && t->rlink == NULL) {count++;}}return count;}main(){ NODE *T;int left_number;printf("请输入一棵树:\n" );T=create();printf("\n");if(!T) printf("This is a empty binary tree.");else{left_number=run(T);printf("\n这棵树共有%d 个子叶. \n", left_number);}printf("\n");}3.编写递归算法,在二叉树中求位于先序序列中第K个位置的结点。
一、实验背景随着信息化时代的到来,数据库技术已成为当今社会的重要技术之一。
为了提高我国高校学生的实践能力,培养适应社会发展需求的数据库技术人才,我校组织了数据库实训课程。
通过本次实训,使学生们能够掌握数据库的基本原理、设计方法和应用技术,提高解决实际问题的能力。
二、实验目的1. 理解数据库的基本概念和原理;2. 掌握数据库的设计方法和步骤;3. 学会使用数据库管理系统进行数据库的创建、修改和查询;4. 培养学生分析问题、解决问题的能力;5. 提高学生的团队合作意识和沟通能力。
三、实验内容本次数据库实训主要包括以下内容:1. 数据库基本概念:数据库、数据库系统、数据库管理系统等;2. 关系数据库:关系模型、关系代数、关系运算等;3. SQL语言:数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)等;4. 数据库设计:需求分析、概念结构设计、逻辑结构设计、物理结构设计等;5. 数据库实现:使用数据库管理系统进行数据库的创建、修改和查询;6. 数据库应用:使用数据库技术解决实际问题。
四、实验过程1. 需求分析:根据实训要求,分析数据库所需解决的问题,确定数据库的功能和性能指标;2. 概念结构设计:根据需求分析,设计数据库的概念结构,包括实体、属性和实体间的关系;3. 逻辑结构设计:将概念结构转换为逻辑结构,包括确定表结构、字段类型、约束条件等;4. 物理结构设计:根据逻辑结构设计,确定数据库的物理存储方式,包括数据文件、索引文件等;5. 数据库创建:使用数据库管理系统创建数据库,包括创建表、索引、视图等;6. 数据操作:使用SQL语言进行数据插入、删除、更新和查询等操作;7. 数据库应用:使用数据库技术解决实际问题,如数据备份、恢复、安全等。
五、实验总结1. 理论与实践相结合:本次实训使我深刻认识到,数据库技术不仅包括理论知识,还需要将理论应用于实践,解决实际问题;2. 数据库设计的重要性:数据库设计是数据库应用的基础,一个良好的数据库设计可以提高数据库的性能和可用性;3. SQL语言的应用:SQL语言是数据库操作的核心,熟练掌握SQL语言可以提高数据库操作效率;4. 团队合作与沟通:在实训过程中,与团队成员密切配合,共同完成任务,提高了我的团队合作意识和沟通能力;5. 实验心得:通过本次实训,我对数据库技术有了更深入的了解,掌握了数据库的基本原理、设计方法和应用技术,为今后的学习和工作打下了坚实的基础。
课程项目报告书课程名称:Web系统和技术项目题目:_____勤工助学中心系统______ 学院:计算机科学与技术专业班级:计Z1101姓名:莫家威学号:2011001496指导教师:马垚2014年 6 月 5 日三、数据库设计勤工助学系统数据库由3张表构成,分别是岗位表(jobs),勤工新闻表(qnews),用户表(users).(1)E-R图岗位表分E-R图如下所示.勤工新闻表分E-R图如下所示.用户表分E-R图如下所示.汇总后略去各实体属性之后,勤工助学系统的总E-R图如下所示,其中管理员和用户这两个实体属于用户实体.(2)数据表结构本系统采用的数据库系统为MySQL5.5,在数据库中新建一个名为myweb的数据库,该数据库中包含的3个表如下所示.岗位表:勤工新闻表:用户表:四、详细设计(1)前台功能设计勤工助学系统的前台主要为广大普通用户服务.系统前台主页为FirstPage.jsp.其界面如图所示.主要为用户提供用户注册,登录,找回密码,查看新闻,查看岗位等功能.图例:FirstPage.jsp1.登录功能.登录界面主要实现用户的登录操作,采用一个check.jsp来实现,有一些简单的逻辑校验,当用户点击登录按键的时候系统会弹出一个登录框,如下所示.填写完用户密码之后就会跳转到check.jsp,通过对数据库进行交互后登录成功,则跳转至登录成功页面Success.jsp页面.图例:登录界面图例:Check.jsp部分代码2.注册功能注册界面主要实现用户的注册操作,采用MVC的servlet RegisterAction.java来实现注册功能,当用户点击用户注册的时候会进入用户注册页面Register.jsp如下所示.之后会将数据传到RegisterAction.java中,跟数据库进行交互后将数据写入到数据库中,注册不成功会提示重新填写,注册成功则会跳转到注册成功页面.图例:Register.jsp图例:RegisterAction.jsp部分代码3.查看勤工新闻用户通过快速通道,bannal面板和主页的动态现实面板均可以查看勤工新闻,动态面板通过一个JS代码嵌入到div中实现,当鼠标移动到相应分类的时候会动态的从数据库中提取出相应的分类数据到页面上显示出来,如下图所示.用户点击相应分类之后就会进入具体的查看页面qnews.jsp,页面现实每条新闻的简略信息,用户点击每条信息就会进入具体显示页面,根据传参的不同现实不同的新闻,用户也可通过左边的分类切换不同的分类新闻.当新闻数过多时还可自动进行分页显示.图例:动态显示1. 图例:动态显示2.图例:分类现实新闻图例:详细新闻显示图例:详细新闻现实newsdetails.jsp部分代码4.查看岗位查看岗位部分与参看新闻部分相同,在部分现实页面加入显示已招聘人数和招聘人数,在详细显示中加入了报名模块和显示已报名同学部分,通过jobsdetails.jsp实现.图例:报名模块图例:详细岗位查看图例:jobsdetails.jsp部分代码5.岗位报名岗位报名由一个servlet:Stusignup.java和若干jsp页面组合实现.当用户点击岗位详细显示页面下的我要报名按钮的时候,即可进入岗位报名界面,首先进入的是用工协议界面,由Signup.jsp实现,用户点击不同意本协议则跳转回原岗位详细显示页面,点击同意本协议则讲用户信息保存至一个用户session,并跳转至Stusignup.java,在这个servlet完成用户信息的读取和对岗位当前相关状态的修改,在对数据库进行交互之后弹出”报名成功”的提示框,并跳转至原岗位详细显示页面,并且页面会动态更新当前用户的报名信息,若岗位招聘人数已满则会显示报名关闭,并返回上一级.图例:用工协议部分图例:报名成功增加一个学生信息图例:Stusignup.java部分代码5.用户个人操作用户在个人信息显示模块上点击”当前状态”即可查看当前状态,点击注销则会退出登录并退回到主页,点击修改密码则会进入修改密码部分,其他部分同上.图例:个人操作模块图例:具体实现代码(2)后台管理功能后台管理功能主要针对管理员,管理员登录成功后可以进行新闻发布,新闻管理,岗位发布,岗位管理,用户管理等功能.如下所示,重点说明发布部分.1.管理员登录管理员通关管理员登录通道之后可以进入管理界面,在这里可以选择相应的功能进行操作,也可以点击返回首页退出管理界面.图例:教师登录通道图例:管理员管理页面2.岗位,新闻发布岗位发布由一个servlet:AddjobsAction.java和若干jsp页面组合实现,新闻发布由一个servlet:AddnewsAction.java和若干jsp页面组合实现.当管理员点击发布功能是,会进入一个填写发布内容的jsp页面,若填写不规范则提示错误返回提示修改,按规范填写之后系统将数据传递至功能对应的javabean,并跳转至对应的servlet后,servlet取出javabean中保存的数据与数据库进行交互后将信息写入至数据库,并将返回的确认信息写如用户session,跳转至回执页面confirm.jsp,管理员可在此页面看到刚才发布的信息.图例:勤工新闻与岗位发布显示图例:confirm.jsp回执页面图例:AddnewsAction.java部分代码图例:AddjobsAction.java部分代码(3)其他代码包括数据库连接配置以及其他页面实现文件.图例:其他数据代码文件五、心得总结(1)项目缺点未能实现新闻,与岗位的删除功能,用户名之前被注册的还能再次注册,会更新掉原有的用户信息,新闻显示界面不够美观,底部的版权模块未部署到每一个页面上.(2)改进方案后续增加完善管理员界面的”内容管理”模块,并加入新闻,与岗位的删除功能,在用户注册是数据写入数据库之前应先与数据库进行交互判断用户名是否已经被注册,并提示用户进行对应修改.系统后续将改为Struts2框架,在此基础上对所有页面进行显示以及界面的优化,并部署版权模块.(3)遇到的困难及解决途径1.快速通道无法固定在页面的一个位置,在页面拖动的时候消失,后采用了CSS的方法来实现即可,会固定在页面的右下角.2.首页的面试通知过多后显示不美观,采用了滚动显示的方法,在原DIV上新建一个DIV,将数据写在新DIV上,并加入一段JS代码,可使页面进行滚动,代码如下所示.图例:页面滚动代码。
实验报告学院:计算机与信息学院专业:年级:姓名:学号:实验室号:计算机号:实验日期:年月日指导教师签字:成绩:报告退发(订正、重做)实验一数据库的定义实验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语言的查询语句的理解。
三、数据库设计
勤工助学系统数据库由3张表构成,分别是岗位表(jobs),勤工
图例:FirstPage.jsp
1.登录功能.
登录界面主要实现用户的登录操作,采用一个check.jsp来实现,有一些简单的逻辑校验,当用户点击登录按键的时候系统会弹出一个登录框,如下所示.填写完用户密码之后就会跳转到check.jsp,通过对数据库进行交互后登录成功,则跳转至登录成功页面Success.jsp页面.
图例:Register.jsp
图例:RegisterAction.jsp部分代码
图例:动态显示1. 图例:动态显示2.
图例:分类现实新闻
图例:详细岗位查看
图例:具体实现代码
图例:教师登录通道
图例:管理员管理页面2.岗位,新闻发布
图例:勤工新闻与岗位发布显示
图例:AddnewsAction.java部分代码图例:AddjobsAction.java部分代码。
太原理工大学-oracle-大型数据库实验报告本科实验报告课程名称:大型数据库系统实验项目:创建数据库和表实验地点:多学科楼4506 专业班级:软件工程0901 学号:200 学生姓名:指导教师:2012年 4 月17 日一、实验目的和要求1.了解数据库的结构以及一些基本概念。
2.了解表的结构特点。
3.了解Oracle 11g的基本数据类型。
4.学会使用DBCA创建数据库。
5.学会使用界面方式创建表。
6.学会使用SQL语句手工创建数据库。
7.学会使用SQL语句创建表。
二、实验内容和原理1.能够创建数据库的用户必须是系统管理员,或是被授权使用CREATEDATABASE语句的用户。
2.创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小、SGA分配和存储数据库的文件。
3.确定数据库包含哪些表以及所包含的各表的结构,还要了解Oracle11g的常用数据类型,以创建数据库的表。
4.创建企业管理的员工管理数据库YGGL,包含Employees(员工自然信息)表、Departments(部门信息)表和Salary(员工薪水情况)表。
各表的结构如下所示。
列名数据类型长度是否允许为空值说明EmployeeID Char 6 ×员工编号,主键Name Char 10 ×姓名Birthday Date ×出生日期Sex Number 1 ×性别Address Char 20 √地址Zip Char 6 √邮编PhoneNumber Char 12 √电话号码Department Char 3 ×员工部门号、外键列名数据类型长度是否允许为空值说明DepartmentID Char 3 ×部门编号、主键DepartmentName Char 20 ×部门号Note Varchar2 100 √备注列名数据类型长度是否允许为空值说明EmplyeeID Char 6 ×员工编号、主键InCome Number 8,2 ×收入OutCome Number 8,2 ×支出三、主要仪器设备Windows XP/7、oracle 10g/11g四、操作方法与实验步骤1.利用DBCA创建数据库1)数据库名称为YGGL,它的全局数据库名称为YGGL。
本科实验报告课程名称:数据库系统原理实验项目:交互式SQL、数据完整性、数据库安全性实验地点:软件楼211专业班级:软件1316 学号:2013005793 学生姓名:戴超指导教师:邓红霞2015年06月5日实验二:交互式SQL一、实验目的:(1)掌握数据库对象的操作过程,包括创建、修改、删除(2)熟悉表的各种操作,包括插入、修改、删除、查询(3)熟练掌握常用SQL语句的基本语法二、实验平台:操作系统:Windows7使用SQL Server 提供的Microsoft SQL Server Management Studio 工具,交互式使用SQL 语句。
三、实验内容及要求:(一)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。
(二)要求认真进行实验,记录各实验用例及执行结果。
(三)深入了解各个操作的功能。
实验要求包括如下方面的内容:1.数据定义(1)基本表的创建、修改及删除(2)索引的创建(3)视图的创建2.数据操作(1)插入数据(2)修改数据(3)删除数据3.数据查询操作:完成各类查(1)单表查询(2)分组查询(3)连接查询(4)嵌套查询(5)集合查询4. 数据操作:(1)创建视图(2)视图查询四、实验步骤及操作:1、数据定义:(1)基本表的创建、修改及删除CREATETABLE Student(Sno CHAR(8)PRIMARYKEY,Sname CHAR(8)UNIQUE,Ssex CHAR(2)NOTNULL,Sage INT,Sdept CHAR(20),);CREATETABLE Course(Cno CHAR(4)PRIMARYKEY,Cname CHAR(40)NOTNULL,Cpon CHAR(4),Ccredit SMALLINT);CREATETABLE SC(Sno CHAR(8)FOREIGNKEY(Sno)REFERENCES Student(Sno), Cno CHAR(4),Grade SMALLINT,);CREATETABLE Employee(编号CHAR(8)PRIMARYKEY,姓名VARCHAR(8)notnull,部门CHAR(40),工资numeric(8,2),生日datetime,昵称char(20),);SELECT*FROM StudentSELECT*FROM CourseSELECT*FROM SCSELECT*FROM EmployeeALTERTABLE Student ADD Sclass char(4)ALTERTABLE Student ALTERCOLUMN Sage smallint ALTERTABLE Course ADDUNIQUE(Cname)DROPTABLE Employee(2)索引的创建CREATEINDEX iCname On Course(Cname)CREATEUNIQUEINDEX iSname On Student(Sname)CREATECLUSTEREDINDEX iSnoCno On SC(Sno,Cno desc)CREATEUNIQUEINDEX uiCname On Course(Cname)(3)视图的创建CREATEVIEW IS_StudentASSELECT Sno,Sname,Sage FROM StudentWHERE Sdept='IS'2、数据更新操作(1)插入操作INSERTINTO Student VALUES('20100001','李勇','男',20,'CS','1001')INSERTINTO Student VALUES('20100002','刘晨','女',19,'CS','1001')INSERTINTO Student(Sno,Sname,Ssex,Sage,Sdept,Sclass)VALUES('20100021','王敏','女',18,'MA','1002')INSERTINTO Student(Sno,Sname,Ssex,Sage,Sdept,Sclass)VALUES('20100031','张立','男',19,'IS','1003')INSERTINTO Student(Sno,Sname,Ssex,Sclass)VALUES('20100003','刘洋','女','1004') INSERTINTO Student(Sno,Sname,Ssex,Sage,Sdept,Sclass)VALUES('20100010','赵斌','男',19,'IS','1005')INSERTINTO Student VALUES('20100022','张明明','男',19,'CS','1002')INSERTINTO Course(Cno,Cname,Cpon,Ccredit)VALUES('1','数据库系统原理','5',4) INSERTINTO Course(Cno,Cname,Cpon,Ccredit)VALUES('2','高等数学',null,2) INSERTINTO Course(Cno,Cname,Cpon,Ccredit)VALUES('3','管理信息系统','1',4)INSERTINTO SC VALUES('20100001','1',92)INSERTINTO SC VALUES('20100002','2',80)INSERTINTO SC(Sno,Cno)VALUES('20100003','1')INSERTINTO SC(Sno,Cno,Grade)VALUES('20100010','3',null)(CREATETABLE cs_Student学号char(8),姓名char(8),年龄smallint);INSERTINTO cs_StudentSELECT Sno,Sname,SageFROM Student Where Sdept='CS';(2)删除操作DELETEFROM Student WHERE Sno='20100022'SELECT*INTO tmpSC FROM SCDELETEFROM tmpSC where Sno='20100001'and Cno='1'DELETEFROM Student WHERE Sno='20100002'DELETEFROM tmpSC WHERE'CS'=(SELECT Sdept FROM Student WHERE Student.Sno=tmpSC.Sno); DELETEFROM tmpSC(3)修改操作UPDATE Student SET Sage=22 WHERE Sno='20100001';UPDATE Student SET Sage=Sage+1UPDATE SC SET Grade=85WHERE Sno='20100010'AND Cno='3'UPDATE SC SET Grade=Grade+5WHERE'CS'=(select Sdept from student where Student.Sno=SC.Sno); UPDATE Student SET Sno='20100025'where Sno='20100021'SELECT*FROM StudentSELECT*FROM SC3、数据查询操作(1)单表查询SELECT*FROM Student;SELECT Sno,Sname,Sage FROM Student;SELECT Sname,'Year of Birth:',2004-Sage,LOWER(Sdept)FROM Student;SELECT Sname,'Year of Birth:'as BIRTH,2000-SageBIRTHDAY,DEPARMENT=LOWER(Sdept) FROM Student;SELECT Sno FROM SC;SELECTDISTINCT Sno FROM SC;SELECT Sname FROM Student WHERE Sdept='CS';SELECT Sname,Sdept,Sage FROM Student WHERE Sage BETWEEN 20 AND 23 SELECT Sname,Ssex FROM Student WHERE Sdept IN('IS','MA','CS');SELECT Sname,Sno,Ssex FROM Student WHERE Sname LIKE'刘%'SELECT Sno,Cno FROM sc WHERE Grade isnull;SELECT Sname FROM Student WHERE Sdept='CS'and Sage<20;SELECT*FROM Student ORDERBY Sdept,Sage DESC;(2)分组查询SELECT COUNT(*)FROM Student;SELECT COUNT(DISTINCT sno)FROM SCSELECT MAX(GRADE)FROM SCSELECT SUM(GRADE)总分,AVG(grade)均分,MAX(grade)FROM SC WHERE Cno='2'SELECT Cno课程号,COUNT(*)人数,AVG(grade)均分,MAX(grade)最高分FROM SC GROUPBY CnoSELECT Cno课程号,COUNT(*)人数,AVG(grade)均分,MAX(grade)最高分FROM SC GROUPBY Cnohaving AVG(grade)>90(3)连接查询SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROM Student,SCWHERE Student.Sno=SC.SnoSELECT*FROM COURSE FIRST,COURSE SECONDWHEREFIRST.Cpon=o;o,SECOND.CpnoFROM COURSE FIRST,COURSE SECONDWHEREFIRST.Cpno=o;SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROM Student JOIN SC ON (Student.Sno=SC.Sno)SELECT Student.Sno,Sname,Sage,Cno,GradeFROM Student LEFTOUTERJOIN SC ON (Student.sno=SC.Sno) SELECT Student.Sno,SnameFROM Student join SC ON(Student.Sno=SC。