您的当前位置:首页正文

数据库实验报告

2021-11-27 来源:步旅网


学生学号

实验课成绩

武汉理工大学

学 生 实 验 报 告 书

课 程 名 称 数据库系统概论 开 课 学 院 计算机科学与技术学院 指 导 老 师 学 生 姓 名 专 业 班 级

2011 — 2012 学年 第 二 学期

实验课程名称: 数据库系统概论

实验项目名称 实验者 同组者 关系代数、ALPHA语言、QBE语言查询 专业班级 实验成绩 组别 实验日期 年 月 日 第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 设有一个SPJ数据库,包括S,P,J,SPJ 4个关系模式: S(SNO,SNAME,STATUS,CITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY) 试着用关系代数、ALPHA语言、QBE语言完成如下查询: 1 求供应工程J1零件的供应商号码SNO; 2 求供应工程J1零件P1的供应商号码SNO; 3 求供应工程J1零件为红色的供应商号码SNO; 4 求没有使用天津供应商生产的红色零件的工程号JNO; 5 求至少用了供应商S1所供应的全部零件的工程号JNO。 二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 一般关系运算: 1.选择 :它是在关系R中选择满足给定条件的诸元组,记作 σF(R)={t|t∈R∧F(t)=’真’} 2.投影 :是从R中选择出若干属性列组成新的关系,记作 πA(R){t【A】| t∈R} 3.连接 :是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。 4.除运算:R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在 X属性列上得投影:元组在X上分量值X的象集Ys包含S在Y上得投影的集合。 三、主要仪器设备及耗材 本次实验为理论性实验,只需要对关系代数有一定了解并能写出查询语句集合,不需要什么试验设备。

第二部分:实验调试与结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) 查询资料,对自己写的查询语句进行验证,仔细检查是否正确。 二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等) 1)求供应工程J1零件的供应商号码SNO: πSno(σSno=‘J1’(SPJ)) 2)求供应工程J1零件P1的供应商号码SNO: πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ)) 3)求供应工程J1零件为红色的供应商号码SNO: πSno(σPno=‘P1‘ (σCOLOR=’红‘ (P)∞SPJ)) 4)求没有使用天津供应商生产的红色零件的工程号JNO: πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P) 5)求至少用了供应商S1所供应的全部零件的工程号JNO: πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ)) 三、实验小结、建议及体会 关系代数是一种抽象的查询语言,它用关系的运算来表达查询。 通过本次实验,我对关系型数据库在理论上有了初步的了解,并对关系语言,即关系代数,元组关系演算,域关系演算有了一定的认识。为以后的学习打下了基础。

实验课程名称: 数据库系统概论

实验项目名称 实验者 同组者 Sql数据的使用 专业班级 实验成绩 组别 实验日期 年 月 日 第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 1 用SQL语句建立试验1中的4个表; 2 针对建立的四个表用SQL语句完成试验1的查询 3 完成如下查询: (1)找出所有供应商的姓名和所在城市。 (2)找出所有零件的名称、颜色、重量。 (3)找出使用供应商S1所供应零件的工程号码。 (4)找出工程项目J2使用的各种零件的名称及其数量。 (5)找出上海厂商供应的所有零件号码。 (6)出使用上海产的零件的工程名称。 (7)找出没有使用天津产的零件的工程号码。 (8)把全部红色零件的颜色改成蓝色。 (9)由S5供给J4的零件P6改为由S3供应。 (10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。 (11)请将(S2,J6,P4,200)插入供应情况关系。 二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 1 定义模式 GREATE SCHEMA <模式名> AUTHORIZATION<用户名>(本次试验未用到) 2 建立一个数据库,CREATE DATABASES databasename; 3 创建四个表格 CREATE TABLE tablename(参数); 4 将数据导入到表格中 5 执行相应的查询命令 select [ALL|DISTINCT] <目录列表表达式>[,<目录列表表达式>]··· FROM<表名或视图名>[,<表名或视图名>]··· [WHERE <条件表达式>] [GROUP BY<列表 1 > [HAVING <条件表达式>]] [ORDER BY<列表 2 >[ASC|DESC]] 三、主要仪器设备及耗材 PC一台 ,windows XP操作系统,Mysql数据库,sql_front

第二部分:实验调试与结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) 1 创建数据库; 2 创建表格; 3 插入内容; 4 执行各种语句。 二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等) 1 创建表格 创建S表格: 2 向表格中插入数据,因为数据量较大。本实验采用的是Sql front进行数据的插入。结果如下:(以S表的数据为例) 3 执行查询语句 第二章习题5中的查询语句如下: 1,SELECT SNO FROM SPJ WHERE JNO=’J1’ 2,SELECT SNO FROM SPJ WHERE JNO='J1' AND PNO='P1' 3,SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红' 4,SELECT JNO FROM SPJ WHERE JNO NOT IN (SELECT JNO FROM SPJ,P,S WHERE S.CITY='天津' AND P.COLOR='红' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。 5, 由于VFP不允许子查询嵌套太深,将查询分为两步 A、查询S1供应商供应的零件号 SELECT DIST PNO FROM SPJ WHERE SNO='S1'结果是(P1,P2) B、查询哪一个工程既使用P1零件又使用P2零件。 SELECT JNO FROM SPJ WHERE PNO='P1' AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2') 第四条查询语句:结果如图 其余查询语句 (1)SELECT SNAME,CITY FROM S (2)SELECT PNAME,COLOR,WEIGHT FROM P (3)SELECT JNO FROM SPJ WHERE SNO='S1' (4)SELECT PNAME,QTY FROM SPJ,P WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2' (5)SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY='上海' (6)SELECT JNAME FROM SPJ,S,J WHERE S.SNO=SPJ.SNO AND S.CITY='上海' AND J.JNO=SPJ.JNO (7) SELECT JNO FROM SPJ WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY='天津') (8) UPDATE P SET COLOR='蓝' WHERE COLOR='红' (9) UPDATE SPJ SET SNO='S3' WHERE SNO='S5' AND JNO='J4' AND PNO='P6' (10) A、DELETE FROM S WHERE SNO=’S2’ B、DELETE FROM SPJ WHERE SNO=‘S2’ (11) INSERT INTO SPJ VALUES(‘S2’,‘J6’,‘P4’,200) 三、 实验小结、建议及体会 通过这次实验,我认识到对数据库的操作分为四种:增、删、改、查,同样sql语句也分成了四大部分,实验中对查询、插入、和更新数据有了一定的认识,并能通过sql语句实现简单的数据库的维护工作,不仅加深了对理论的认识,而且提高了自己的动手能力。

实验课程名称: 数据库系统概论

实验项目名称 实验者 同组者 数据控制(安全性) 专业班级 实验成绩 组别 实验日期 年 月 日 第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 使用sql对数据进行安全性控制,包括:授权和权力的回收。 现有连个关系模式: 职工(职工号,姓名,年龄,职务,工资,部门号) 部门(部门号,名称,经理名,地址,电话号) 请用SQL的GRANT 和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能: ( a )用户王明对两个表有SELECT 权力。( b )用户李勇对两个表有INSERT 和DELETE 权力。( c ) 每个职工只对自己的记录有SELECT 权力。( d )用户刘星对职工表有SELECT 权力,对工资字段具有更新权力。( e )用户张新具有修改这两个表的结构的权力。( f )用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力。( g )用户杨兰具有从每个部门职工中SELECT 最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。 二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 实验步骤: (1)首先创建两个表格; (2)创建若干个用户; (3)对各个用户授予不同的权限,sql授权语句如下: (a)GRANT SELECT ON 职工,部门TO 王明 (b)GRANT INSERT,DELETE ON 职工,部门 TO 李勇 (c)GRANT SELECT ON 职工 WHEN USER()=NAME TO ALL; (d)GRANT SELECT,UPDATE(工资) ON 职工TO 刘星 (e)GRANT ALTER TABLE ON 职工,部门TO 张新; (f) GRANT ALL PRIVILIGES ON 职工,部门TO 周平WITH GRANT OPTION; 三、主要仪器设备及耗材 PC一台,windows XP操作系统, My sql数据库

第二部分:实验调试与结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) 1 首先创建若干个用户,create user ‘用户名’@‘localhost’; 2 然后授权给这些用户,GRANT语句的一半语法为 GRANT <权限>[,<权限>]··· ON <对象类型><对象名>[<对象类型><对象名>]··· TO <用户>[,<用户>]··· [WITH GRANT OPTION]。 3 然后用新建的用户登录数据库,进行授权的操作,明查看结果。进行未授权的操作试试看,会被系统拒绝。 二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等) 三、实验小结、建议及体会 这次实验让我认识到数据库最大的特点之一就是提供统一的数据保护功能来保证数据的安全可靠性和正确有效,MySQL数据库和其他数据库一样,在安全性这方面做了很多功夫,通过简单的grant和revoke并通过组合可以实现复杂的用户权限管理。通过自己实际动手操作,加深了对理论知识的理解,同时将理论知识运用到实际上也提高了动手能力。

实验课程名称: 数据库系统原理

实验项目名称 实验者 同组者 数据控制(完整性约束) 专业班级 实验成绩 组别 实验日期 年 月 日 第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 使用SQL对数据进行完整性控制(三类完整性、CHECK短语,CONSTRAIN子句、触发器)。用试验验证,当违法了完整性约束条件时,系统是如何处理的。 用SQL语言定义试验三的两个关系模式: (1)定义每个模式的主码 (2)定义参照完整性 (3)定义职工年龄不得超过60岁 二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 1 数据完整性是为了保证数据库中中存储的数据是正确的。 2 关系型数据库的参照完整性在CREATE TABLE中用FOREIGN KEY短语定义那些列为外码,用REFERENCES短语指明这些外码参照那些主码。 3 sql语句如下: 职工表: CREATE TABLE EMP (Empno VARCHAR(4), Ename VARCHAR(10), Age NUMERIC(2), CONSTRAINT C1 CHECK (Age<=60), Job VARCHAR(9), Sal LONG, Deptno Varchar(5), CONSTRAINT FK_DEPTNO FOREIGN KEY(Deptno) REFERENCES DEPT(Deptno)); 部门表: CREATE TABLE DEPT (Deptno VARCHAR(4), Deptname VARCHAR(10), Manager VARCHAR(10), PhoneNumber Char(12), CONSTRAINT PK_SC PRIMARY KEY(Deptno)); 三、主要仪器设备及耗材 1 PC 一台 2 window XP操作系统 3 Msql数据库

第二部分:实验调试与结果分析(可加页) 一、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等) 1 用SQL语句定义关系模式,截图如下: 上次试验采用的中文创建表格,结果在输入语句时总是要切换输入法,而且一不小心就出现错误,所以本次试验表格内容全部是英文。 职工表: 部门表: 三、实验小结、建议及体会 通过本次试验,掌握了MySQL数据库基本完整性约束语法,比如constraint、check等语法,再次回顾和了解数据库系统的安全性的技术和方法,熟悉了存取控制技术,视图技术,和审计技术,同时对数据控制技术的完整性有了进一步的熟悉和了解,完整性机制的实施会影响系统的功能,在关系数据库中,最重要的完整性约束是实体完整性和参照的完整性。

因篇幅问题不能全部显示,请点此查看更多更全内容