数据库系统原理
实验报告
小组成员 1:2018211308 2018211443 陈柯帆
小组成员 2:2018211307 2018211386 宋金兰
目录
一:数据库实例连接及建表数据导入………………………………………………………………………………………………………………5
实验环境说明…………………………………………………………………………………………………………………………………………………………5
1 通过 DAS 连接 GaussDB(for MySQL) …………………………………………………………………5
1.1 实验介绍……………………………………………………………………………………………………………………………………………5
1.2 实验目的… ……………………………………………………………………………………………………………………………………………………………5
1.3 实验步骤……………………….……………………………………………………5
2 通过公网连接 GaussDB(for MySQL) ………………………………………6
2.1 实验介绍…………………………………………………………………………6
2.2 实验目的… ………………………………………………………………………6
2.3 实验步骤……………………….……………………………………………………6
3 数据库建表及数据导入………………………………………………………………8
3.1 实验介绍…………………………………………………………………………8
3.2 实验目的… ………………………………………………………………………8
3.3 实验步骤……………………….……………………………………………………8
二:数据库的查询与修改实验…………………………………………………………14
1 实验目的…………………………………………………………14
2 实验环境…………………………………………………………………………………14
3 实验内容………………………………………………………………………………14
4 实验步骤………………………………………………………………………………14
5 实验心得………………………………………………………………………………42
三:完整性约束实验………………………………………………………………………………43
1 实验目的…………………………………………………………………………43
2 实验环境…………………………………………………………………………………43
3 实验内容………………………………………………………………………………43
4 实验步骤………………………………………………………………………………43
4.1 利用 Create table/Alter table 语句建立完整性约束…………43
4.2 主键/候选键/空值/check/默认值约束验证…………………………………………45
4.3 外键/参照完整性约束验证………………………………………………………47
4.4 函数依赖分析验证………………………………………………………………55
4.5 触发器约束………………………………………………………………56
5 实验总结………………………………………………………………………………56
四:数据库接口实验……………………………………………………………………………57
1 实验环境说明……………………………………………………………………………57
2 实验介绍……………………………………………………………………………57
2.1 实验目的……………………………………………………………………………57
2.2 实验原理……………………………………………………………………………57
2.3 实验内容……………………………………………………………………………58
3 实验步骤……………………………………………………………………………58
3.1 实验准备……………………………………………………………………………58
3.2 连接时长的获取和修改………………………………………………61
五:事务管理……………………………………………………………………………69
1 实验介绍……………………………………………………………………………69
2 实验步骤……………………………………………………………………………71
2.1 单事务与串行事务…………………………………………………71
2.1.1 违反 check 约束的 update 操作…………………71
2.1.2commit/rollback 操作…………………………………………73
2.1.3 修改数据库模式…………………………………………76
2.1.4 多条 insert/delete 操作执行比较……………………77
2.1.5 保存点 Savepoint 设置与回滚实验……………………79
2.1.6 事务内某条语句执行失败对其余语句的影响……………………80
2.2 并发事务控制………………………………………………………………81
2.2.1 Read-uncommitted 隔离级别下的脏读 ……………………81
2.2.2 Read-committed 隔离级别下的不可重复读……………………84
2.2.3 Repeatable-read 隔离级别下的幻读……………………86
2.3 事务锁机制………………………………………………………………82
2.3.1 查看锁信息………………………………………………………………82
2.3.2 死锁分析………………………………………………………………88
一:数据库实例连接及建表数据导入
实验环境说明:
本实验环境为华为云环境。
为了满足数据库原理与实践课程实验需要,建议每套实验环境采用以下配置:
设备名称、型号与版本的对应关系如下:
设备名称
数据库
设备型号
GaussDB(for MySQL)
16 核 | 64 GB
软件版本
GaussDB(for MySQL)服务
1. 通过 DAS 连接 GaussDB(for MySQL)
1.1.1 实验介绍:
本实验主要描述如何通过华为云数据管理服务 (Data Admin Service,简称
DAS) ,通过预先分配好的 IAM 子账号,来连接华为云 GaussDB(for MySQL)数据
库实例。
DAS 是一款专业的简化数据库管理工具,提供优质的可视化操作界面,大幅
提高工作效率,让数据管理变得既安全又简单。
DAS 连接数据库,无需使用 IP 地址,易用、安全、高级、智能。
1.1.2 实验目的
掌握 DAS 连接 GaussDB(for MySQL)数据库实例。
1.2 通过 IAM 账户登录到华为云控制台
1.2.1 进入华为云官网使用 IAM 登录
进入网页选择 IAM 用户
输入主账号,用户名,默认密码
进入后需要先改密码,然后进入控制台,选择北京四
1.2.2 登录数据库
用户只能在当前数据库中操作,不能新建数据库。
至此 IAM 用户登录已全部完成。
2.通过公网连接 GaussDB(for MySQL)
2.1 实验介绍
2.1.1 关于本实验。本实验主要描述:下载安装 MySQL Workbench 客户端,并通
过 MySQL Workbench,以 IP 登录方式,通过公网连接 GaussDB(for MySQL)实例。
2.1.2 实验目的
掌握使用 MySQL Workbench 通过公网来连接 GaussDB(for MySQL)数据库实例。
2.2 安装 MySQL Workbench
MySQL 的官网地址:https://www.mysql.com/
选择 DOWNLOADS
选择 Communtiy
选择 Workbench
选择 download
开始安装
点击小+号新建数据库连接,例如
IP 地址 119.3.164.126(粗体部分根据自己所分的账号填写)
端口 3306
用户名 bupt2018dbs16
密码 bupt2018dbs16@123
(依据自身情况,由于截图当时为保存,此处不再附图)
测试连接成功!
最后配置连接成功,双击进行连接数据库
3.数据库建表及数据导入
3.1 实验介绍
3.1.1 关于本实验。本实验主要描述如何通过:
1)DAS 连接数据库、以 IAM 账号登录数据库,采用 SQL 语句或 MySQL 图形化界
面,创建数据库表;
2)在已经建表基础上,批量导入 tbCell 等全部实验数据;通过公网、以 IP 登
录方式连接到数据库,采用“数据导入+建表”的方式,导入 tbCell 等全部实验
数据;
3.1.2 实验目的
掌握在 IAM 登录、IP 登录两种方式下,建表及导入实验数据的方法。
3.2 DAS/IAM 登录方式下的建表及数据导入
3.2.1 数据库建表
在网页中根据所需新建表格