【数据库原理实验(openGauss)】实验报告

本文详细介绍了OpenGauss数据库系统的基础实验,包括DBMS认识、数据库及表的创建、SQL交互、视图操作、完整性控制、安全性控制、事务并发控制、备份恢复以及JDBC连接。通过一系列实验,旨在加深对数据库原理的理解,提升SQL操作技能,并为实际开发打下坚实基础。
摘要由CSDN通过智能技术生成

《数据库系统原理实验》报告

一、实验课程性质和教学目标

数据库系统原理实验是软件工程专业和计算机专业的一门专业基础课,其目的是通过实验巩固学生所学理论知识,提高学生分析问题和解决实际问题的能力,培养学生对问题建模和对模型中的数据,能够采用SQL 语句进行基本的数据库操作,实现数据的安全性和完整性等处理的能力,为后继课程的学习和数据库管理软件的开发奠定基础。

二、实验课程教学基本要求

通过实验,使学生深入理解数据库系统原理的基本概念,掌握概念模型、关系模型,熟悉各种SQL 命令,能够定义数据库,查询检索、管理控制数据库。采用某种数据库开发软件,如SQL Server 2008,通过构建或者模拟简单的数据库管理系统,进一步理解和应用数据库原理课程中的理论知识,熟悉开发实践中需要注意的问题,进一步理解理论和实践之间的区别与联系。

三、实验教学内容

实验一 认识DBMS系统

(一)实验目的:
  • 1.通过对某个商用数据库管理系统(OpenGauss等))的使用,了解DBMS的工作原理和系统构架。
  • 2.熟悉对DBMS的操作。
  • 3.搭建今后实验的平台。
(二)实验内容:
  • 1.安装和启动
    了解openGauss的三种安装模式:华为弹性云上安装、虚拟机一键安装和虚拟机安装openEuler后再安装openGauss。了解了这三种安装模式之后,选择一个适合自己的安装方式,安装openGauss,为下一步实验做准备。
  • 2.数据库系统的构架
    了解openGauss数据库系统的启动和连接数据库,postgres为openGauss安装完成后默认生成的数据库。初始可以连接到此数据库进行新数据库的创建。使用数据库前,需先使用客户端程序,gsql是openGauss数据库提供的命令行方式的数据库连接工具。
  • 3.创建数据库用户和数据库
    默认只有openGauss安装时创建的管理员用户可以访问初始数据库,还可以创建其他数据库用户帐号。使用新用户连接到此数据库执行接下来的创建表等操作,也可以选择继续在默认的postgres数据库下做后续的体验。
(三)实验报告

【数据库原理实验(openGauss)】认识DBMS系统

实验二 创建数据库、表和索引

(一)实验目的:
  1. 掌握如何在OpenGauss中创建用户、数据库、模式、表和索引等。
  2. 灵活运用SQL语句建立上述概念。
  3. 理解数据库用户、数据库、schema、表、索引之间的关系。
(二)实验内容:

1.创建数数据库、模式、表和索引。
2.修改基本表的结构。
在OpenGauss数据库系统中使用SQL语句(按教材上所示的属性)建立基本表,如STUDENT表、COURSE表、SC表等,并向表中填充数据。熟悉使用虚拟机进行OpenGauss中SQL语句的代码输入方式。
3.创建和删除索引
使用SQL语句在上述表中创建索引,熟悉相应的SQL语句,请参考教材P73-79页的SQL语句,请注意标准SQL和openGauss中相应SQL语句相同与不同之处。

(三)实验报告

【数据库原理实验(openGauss)】创建数据库、表和索引

实验三 交互式SQL语句

(一)实验目的:

1.熟悉数据库的交互式SQL工具。
2.熟悉通过SQL语句操作数据库。
3.完成作业的上机练习。

(二)实验内容:

1.查询操作
根据教材P79-94页所有查询实例,完成各类查询操作。
2.更新操作
根据教材P94-96上所有更新实例,完成各类更新操作(插入、修改和删除数据等),请注意标准SQL和openGauss中相应SQL语句相同与不同之处。

(三)实验报告

【数据库原理实验(openGauss)】交互式SQL语句

实验四 创建视图

(一)实验目的:

1.熟悉通过SQL对视图进行操作。
2.体会视图的作用。

(二)实验内容:

1.使用SQL语句创建视图。
2.对视图执行创建、查找、更新等操作,对比和基本表进行查找、更新操作有无不同之处。

(三)实验报告

【数据库原理实验(openGauss)】视图

实验五 完整性控制

(一)实验目的:

1.了解OpenGauss提供的完整性机制,熟悉通过SQL对数据进行完整性控制。
2.完成教材第五章中的例子。

(二)实验内容:

1.练习创建下面约束:

  • 主键(PRIMARY KEY)约束;
  • 唯一性(UNIQUE)约束;
  • 将STUDENTS表中的SNAME列设为唯一键约束、COURSES表中的CNAME列设为唯一键约束;
  • 检查(CHECK)约束等;
  • 外键(FOREIGN KEY)约束:外键约束是为了强制实现表之间的参照完整性。级联参照完整性约束就是为了保证外键数据的关联性。

2.创建触发器
 触发器是一种特殊类型的存储过程,通常用于实现强制业务规则和数据完整性。创建UPDATE触发器检查修改操作的业务规则,如:在STUDENTS表上建立触发器,当用户修改学生的学号时给出提示信息。

(三)实验报告

【数据库原理实验(openGauss)】完整性控制

实验六 安全性控制

(一)实验目的:

1.了解OpenGauss提供的安全性手段。
2.熟悉通过SQL对数据进行安全性控制。
3.领会书上讲解的各种安全性方法。
4.重点掌握授权和回收授权方法。

(二)实验内容:

1.创建一些数据库用户,并理解数据库用户和角色之间的关系。
2.利用查询分析器熟悉通过SQL对数据进行安全性控制(grant和revoke语句)。

(三)实验报告

【数据库原理实验(openGauss)】 安全性控制

实验七 事务与并发控制

(一)实验目的:

理解事务的定义及其四个特点,掌握封锁机制的原理和方法,进一步理解并发、并发控制、封锁等相关概念。

(二)实验内容:

1.编写事务实例,分别使其成功提交和回滚,观察该事务对数据库的影响。
2.利用数据库管理系统提供的封锁机制解决并发操作带来的数据不一致情况。

(三)实验报告

【数据库原理实验(openGauss)】事务与并发控制

实验八 数据库的备份与恢复

(一)实验目的:

理解各种数据库故障以及它们的恢复方法,掌握数据库备份原理和方法,以及如何使用备份数据进行数据库故障的恢复。

(二)实验内容:

1.针对具体故障制定备份方案,并利用这些备份方案恢复数据库。
2.使用openGauss提供的各种备份方法进行数据库备份。
3.使用具体的数据库管理系统提供的恢复机制,利用副本进行数据库的恢复。

(三)实验报告

【数据库原理实验(openGauss)】数据库的备份与恢复

实验九 使用JDBC连接数据库

(一)实验目的:

了解如何使用JDBC连接数据库。JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问接口,应用程序可基于它操作数据。openGauss库提供了对JDBC 4.0特性的支持,需要使用JDK1.8版本编译程序代码。

(二)实验内容:

1.在openGauss中创建数据库、表;
2.使用jdbc连接到新创建的数据库;
3.在java程序中改变数据库中的值或者输出数据库中的值;
4.请参考华为提供的实验手册:openGauss场景化综合应用实验。

(三)实验报告

【数据库原理实验(openGauss)】 使用JDBC连接数据库

1、 Find the name, loan number and loan amount of all customers; rename the column name loan_number as loan_id. 2、 Find the names of all customers whose street includes the substring “Main”. 3、Find all customers who have a loan, an account, or both: 4、Find all customers who have both a loan and an account. 5、Find all customers who have an account but no loan. 6、Find the average account balance at the Perryridge branch. 7、 Find the number of tuples in the customer relation. 8、 Find the number of depositors in the bank. 9、 Find the number of depositors for each branch. 10、Find the names of all branches where the average account balance is more than $1,200. 11、Find all loan number which appear in the loan relation with null values for amount. 12、Find all customers who have both an account and a loan at the bank. 13、Find all customers who have a loan at the bank but do not have an account at the bank 14、Find all customers who have both an account and a loan at the Perryridge branch 15、Find all branches that have greater assets than some branch located in Brooklyn. 16、Find the names of all branches that have greater assets than all branches located in 1、创建一个School数据库,该数据库的主数据文件逻辑名称为SCHOOL_data,物理文件名为School.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为School_log,物理文件名为School.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为1MB。 2、用SQL语句建立上述表,自定义主键和外键,对于student表建立约束条件:ssex仅能取male或female;sage在18和22之间。并完成下面的查询语句。 1、查询所有选修过“Bibliometrics”课的学生的姓名和成绩; 2、查询考试成绩不及格的学生的个数; 3、查询名字中至少含有一个“z”字符的学生的姓名、学号和性别; 4、查询选修了“Introduction to the Internet”课程的学生的学号及其成绩,查询结果按分数的降序排列; 5、查询“Zuo li”同学选修课程的总学时(time)数 6、查询年龄不大于20岁的学生的平均考试成绩; 7、查询 “computer science”专业学生选修 “Database System”的人数; 8、查询同时选修课程“Database System”和“Introduction to the Internet”的学生姓名; 9、查询选修的课程中含有“Wang gang”同学所有选修课程的学生姓名。 10、查询“Information Technology for Information Management”考试成绩为空的学生姓名及专业名称。 11、查询“computer science”专业学生每个人的选修课总学分。 12、查询个人考试平均成绩高于专业平均成绩的学生姓名 13、查询个人考试平均成绩高于女生平均成绩的男生姓名 14、查询比“computer science”专业所有学生年龄都大的学生姓名。 15、查询考试成绩仅有一科不及格学生姓名
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BkbK-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值