《数据库原理》实验指导.doc_第1页
《数据库原理》实验指导.doc_第2页
《数据库原理》实验指导.doc_第3页
《数据库原理》实验指导.doc_第4页
《数据库原理》实验指导.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理实验指导册-计算机软件教研室-河北经贸大学二一四年目 录第一部分 实验指导实验1 创建数据库与数据表2实验2 简单查询和连接查询实验3 嵌套查询和集合查询实验4 数据更新实验5 数据完整性实验6 视图实验7 数据控制实验8 综合实验(一)实验9 综合实验(二)第二部分 课程设计数据库原理课程设计任务书29第一部分 实验指导时间: 机房号: 得分: 实验1 创建数据库与数据表实验目的:1熟悉SQL SERVER环境,了解企业管理器和查询分析器的基本使用方法;2掌握数据库和数据表的创建和删除,实践SQL的CREATE、ALTER和DROP命令;3掌握数据表的创建和数据记录的插入方法。实验内容:1. 创建教学管理“JXGL”数据库,并建立学生STUDENT、课程COURSE和选修SC三个数据表,各表中的数据如下所示:学生STUDENT:SnoSnameSsexSageSdept95001李勇M20CS95002刘晨F19IS95003王敏F18MA95004张立M18IS课程COURSE:CnoCnameCpnoCcredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27C语言64选修SC:SnoCnoGrade95001192950012859500138895002290950023802. 创建供应系统“GYXT”数据库,其中包括供应商表S、零件表P、工程项目表J和供应情况表SPJ四个数据表,各表中数据如下所示。供应商S:SNOSNAMECITYS1精益天津S2万胜北京S3东方北京S4丰泰隆上海S5康健南京零件P:PNOPNAMECOLORWEIGHTP1螺母红12P2螺栓绿17P3螺丝刀蓝14P4螺丝刀红14P5凸轮蓝40P6齿轮红30工程项目J:JNOJNAMECITYJ1三建北京J2一汽长春J3弹簧厂天津J4造船厂天津J5机车厂唐山J6无线电厂常州J7半导体厂南京供应情况SPJ:SNOPNOJNOQTYS1P1J1200S1P1J3100S1P1J4700S1P2J2100S2P3J1400S2P3J2200S2P3J4500S2P3J5400S2P5J1400S2P5J2100S3P1J1200S3P3J1200S4P5J1100S4P6J3300S4P6J4200S5P2J4100S5P3J1200S5P6J2200S5P6J4500实验步骤:1用企业管理器创建教学管理“JXGL”数据库。(1) 连接“服务器管理器”。选择“开始/程序/Microsoft SQL Server/服务管理器”,进入SQL服务管理器窗口,如图1.1所示。选择要启动的服务器和准备启动的服务,单击“开始/继续”按钮,开始启动服务,稍后绿灯亮,启动成功。(2) 打开“企业管理器”。选择“开始/程序/Microsoft SQL Server/企业管理器”,就出现企业管理器窗口。企业管理器是SLQ Server的一个最重要的管理工具,它提供了一个遵从Microsoft管理控制台(MMC)的用户界面,以层叠形式显示出所有SQL Server对象,使用企业管理器几乎可以完成所有的管理工作。在控制台根目录窗口中展开“控制台根目录”树,依次展开“Microsoft SQL Servers/SQL Server组/(Local)(Windows NT)/数据库”文件夹,如图1.2所示。 图1.1 SQL服务管理器 图1.2 企业管理器(3) 创建教学管理“JXGL”数据库。选择“操作”菜单中的“新建数据库”命令,进入“数据库属性窗口”,在“常规”标签“名称”框中输入“JXGL”,其他选项采用默认值,如图1.3所示。单击“确定”按钮,系统自动创建JXGL数据库。(4) 在JXGL数据库中建立STUDENT表,并插入学生记录。在控制台根目录窗口中展开“数据库”文件夹,就会看到新建立的数据库“JXGL”,如图1.4所示,鼠标右击“表”图标,在弹出的快捷菜单中选择“新建表”命令,启动“表设计器”,在表设计器窗口上部网格中,每一行描述了表中的一个字段,每一行有四列,分别描述了列名、数据类型、长度和允许空等属性,将STUDENT表的各列属性依次输入到网格中去,如图1.5所示。 图1.3 创建数据库窗口 图1.4“新建表”命令“保存”按钮 图1.5表设计器 图1.6 设置主键 然后,可以右击列名Sno,选择“设置主键”命令,其左侧将出现一个钥匙样图标,如图1.6所示。单击表设计器的工具栏中的“保存”按钮,出现保存对话框,输入表名“STUDENT”,如图1.7所示,并按“确定”按钮。图1.7 保存对话框 在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“打开表/返回所有行”命令,如图1.8所示。然后在出现的表格中依次输入新记录,如图1.9所示。图1.8 “返回所有行”命令图1.9 输入数据(5) 同样方法,可以在JXGL数据库中建立COURSE表,并插入记录。(6) 同样方法,可以在JXGL数据库中建立SC表,并插入记录。(7) 查看三个表中的内容。在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“打开表/返回所有行”命令,如图1.8所示,即可查年STUDENT表中的内容。同样方法,可以查看COURSE表和SC表中的内容。(8) 修改数据表结构。向STUDENT表增加“入学时间”列,其数据类型为日期型。在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“设计表”命令,即进入表设计器窗口,如图1.5所示,即可继续增加“入学时间”列,数据类型选择为“datetime”型。单击工具栏中的“保存”按钮。在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“打开表/返回所有行”命令,如图1.8所示,即可查年STUDENT表中的内容,此时Scome列值都为NULL。删除“入学时间”列。在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“设计表”命令,即进入表设计器窗口,右击上方网格中的“Scome”,选择为“删除列”命令。单击工具栏中的“保存”按钮。在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“打开表/返回所有行”命令,如图1.8所示,看到Scome列已被删除。(9) 删除数据表。在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“删除”命令,即可删除STUDENT表。同样方法,可以删除其他指定表。(10) 删除数据库在企业管理器中,右击JXGL数据库,选择“删除”命令,即可删除JXGL数据库。2用查询分析器创建教学管理“JXGL”数据库。(1) 连接“服务器管理器”。(2) 打开“查询分析器”。选择“开始/程序/Microsoft SQL Server/查询分析器”,就出现登录窗口,如图1.10所示,在“SQL Server”栏中输入登录的服务器名称,这里的“.”表示是本地服务器。使用SQL Server身份验证模式,并在登录名栏中输入用户名,然后在密码栏中输入密码,这里的用户名和密码都输入“sa”。最后单击“确定”按钮连接到数据库服务器,出现如图1.11所示的查询分析器窗口。“结果显示方式”按钮“分析查询”按钮“运行”按钮查询窗格查询结果窗格对象浏览窗格 图1.9 登录窗口 图1.11 查询分析器查询分析器界面如图1.10所示,它由标题栏、菜单栏、工具栏、对象浏览窗格、查询窗格、查询结果窗格等组成。其中,查询窗格是编辑和执行SQL Server程序的地方,查询结果窗格是浏览查询结果的地方,结果可以“文本显示”和“表格显示”两种方式显示出来。(3) 创建教学管理“JXGL”数据库。在查询窗格中输入如下命令,然后单击“运行”钮执行该命令。CREATE DATABASE JXGL;(4) 清空查询窗格后,在JXGL数据库中建立STUDENT表,并插入记录,然后执行。CREATE TABLE STUDENT( Sno char(5) not null unique, Sname char(20) not null unique, Ssex char(1),Sage int,Sdept char(20);INSERT INTO STUDENT VALUES(95001,李勇,M,20,CS);INSERT INTO STUDENT VALUES(95002,刘晨,F,19,IS);INSERT INTO STUDENT VALUES(95003,王敏,F,18,MA);INSERT INTO STUDENT VALUES(95004,张立,M,18,IS);(5) 清空查询窗格后,JXGL数据库中建立COURSE表,并插入记录,然后执行。CREATE TABLE COURSE( Cno char(2) not null PRIMARY KEY(Cno), Cname char(20),Cpno char(2),Ccredit smallint);INSERT INTO COURSE VALUES(1,数据库,5,4);INSERT INTO COURSE VALUES(2,数学, ,2);INSERT INTO COURSE VALUES(3,信息系统,1,4);INSERT INTO COURSE VALUES(4,操作系统,6,3);INSERT INTO COURSE VALUES(5,数据结构,7,4);INSERT INTO COURSE VALUES(6,数据处理, ,2);INSERT INTO COURSE VALUES(7,C语言,6,4);(6) 清空查询窗格后,JXGL数据库中建立SC表,并插入记录,然后执行。CREATE TABLE SC( Sno char(5) not null, Cno char(2) not null,Grade smallint,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno) REFERENCES STUDENT(Sno),FOREIGN KEY(Cno) REFERENCES COURSE(Cno);INSERT INTO SC VALUES(95001,1,92);INSERT INTO SC VALUES(95001,2,85);INSERT INTO SC VALUES(95001,3,88);INSERT INTO SC VALUES(95002,2,90);INSERT INTO SC VALUES(95002,3,80);(7) 查看三个表中的内容。分别执行以下命令,查看STUDENT、COURSE和SC数据表中的内容。SELECT * FROM STUDENT;SELECT * FROM COURSE;SELECT * FROM SC;(8) 修改数据表结构。向STUDENT表增加“入学时间”列,其数据类型为日期型,用SELECT命令查看表中内容。ALTER TABLE STUDENT ADD SCOME DATETIME;SELECT * FROM STUDENT;删除“入学时间”列,再用SELECT命令查看表中内容。ALTER TABLE STUDENT DROP COLUMN SCOME;SELECT * FROM STUDENT;(9) 删除数据表。DROP TABLE SC;DROP TABLE STUDENT;DROP TABLE COURSE;(10) 删除数据库命令。切换到其他任意数据库,然后可用如下命令删除JXGL数据库。DROP DATABASE JXGL;3创建供应系统“GYXT”数据库。(注:可采用企业管理器和查询分析器两种方法创建。)下面写出实现如下操作的SQL语句:(1) 创建供应系统“GYXT”数据库。 (2) 建立供应商表S。(3) 建立零件表P。(4) 建立工程项目表J。(5) 建立供应情况表SPJ。时间: 机房号: 得分: 实验2 简单查询和连接查询实验目的:1熟练掌握SQL Server查询分析器的使用方法,加深对标准SQL查询语句的理解。2熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。实验内容:1基于实验一创建的教学管理JXGL数据库,参考教材简单查询和连接查询章节中的SQL操作实例,实现数据的基本查询操作。2基于实验一创建的供应系统GYXT数据库,实现下列基本查询操作。实验步骤: 首先,写出下列操作的SQL语句,然后进入到SQL Server查询分析器中调试结果,并将结果抄写下来。1在教学管理JXGL数据库中进行如下操作:(1) 求数学系学生的学号和姓名。(2) 求选修了课程的学生学号。(3) 求选修了数学课的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。(4) 求选修数学课其且成绩在80-90之间的学生学号和成绩,并将成绩乘以系数0.8输出。(5) 求数学系或计算机系姓刘的学生的信息。(6) 求缺少了成绩的学生的学号和课程号。(7) 查询每个学生的情况以及他(她)所选修的课程。(8) 求学生的学号、姓名、选修的课程名及成绩。(9) 求选修数学课且成绩为90分以上的学生学号、姓名、及成绩。(10)查询每一门课的间接先行课(即先行课的先行课)。2在供应系统GYXT数据库中进行如下操作:(1) 求供应工程J1零件的供应商号SNO。(2) 求供应工程J1零件P1的供应商号SNO。(3) 统计每种零件的供应总量。时间: 机房号: 得分: 实验3 嵌套查询和集合查询实验目的:1熟练掌握SQL Server查询分析器的使用方法,加深对标准SQL查询语句的理解。2熟练掌握数据查询中的嵌套、分组、统计、计算和组合的操作方法。实验内容:1基于实验一创建的教学管理JXGL数据库,参考教材嵌套查询和集合查询中的SQL操作实例,实现数据的高级查询操作。2基于实验一创建的供应系统GYXT数据库,实现下列基本查询操作。实验步骤: 首先,写出下列操作的SQL语句,然后进入到SQL Server查询分析器中调试结果,并将结果抄写下来。1在教学管理JXGL数据库中进行如下操作:(1) 求选修了数学的学生的学号和姓名。(2) 求数学课程成绩高于李勇的学生学号和成绩。(3) 求其他系中年龄小于计算机系年龄最大者的学生。(4) 求其他系中比计算机系学生年龄都小的学生。(5) 求选修了数学课的学生姓名。(6) 求没有选修数学课的学生姓名。(7) 查询选修了全部课程的学生的姓名。(8) 求至少选修了学号为“95002”的学生所选修的全部课程的学生学号和姓名。 (9) 求选修各门课的人数及平均成绩。(10)求选修课程在2门以上且都及格的学生号及总平均分。(11)求95级学生中选修课程在2门以上且都及格的学生号及总平均分,并按平均成绩排序。(12)统计每个人及格的成绩的平均值,及格的门数,结果按平均成绩降序,及格门数降序排列。 (13)统计所有课程均及格学生的平均成绩,及格的门数,结果按平均成绩降序,及格门数降序排列。2在供应系统GYXT数据库中进行如下操作:(1) 求供应工程J1红色零件的供应商号SNO。(2) 求零件供应总量在1000种以上的供应商名字。时间: 机房号: 得分: 实验4 数据更新实验目的:1熟练掌握在SQL Server的企业管理器和查询分析器中进行数据更新的方法。2熟练掌握数据库的插入、修改和删除数据的操作方法,加深对标准SQL更新语句的理解。实验内容:1基于实验一创建的教学管理JXGL数据库,参考教材数据更新的SQL操作实例,实现数据的插入、修改和删除操作。2基于实验一创建的供应系统GYXT数据库,实现数据的插入、修改和删除操作。提示:用企业管理器实现数据更新,先打开企业管理器,展开指定的数据库节点,单击“表”图标,在右侧窗格中右击指定的表,选择“打开表/返回所有行”命令,如图1.8所示,若插入数据,则在出现的表格中依次输入新记录,如图1.9所示;若删除数据,在出现的表格中右击指定的整行记录,选择“删除”命令,即可删除该记录;若修改某数据项,可以直接在表格中进行修改。用企业管理器实现数据更新的方法在实验一中已作简要介绍,以下各实验步骤主要使用查询分析器实现,写出其SQL操作语句。实验步骤:1在教学管理JXGL数据库中进行如下操作:(1) 将一个新学生记录(学号:95020;姓名:陈冬;性别:男;所在系:IS;年龄:18)插入STUDENT表中。(2) 数据的插入操作:插入一条选课记录,学号为95020的学生选修了1号课程。(3) 对每门课程,求学生的平均分数,并把结果存入数据库。 (4) 将学生95020转到数学系。(5) 所有学生成绩乘系数0.8。(6) 删除95020学生的记录。(7) 删除数学系所有学生的选课记录。2在供应系统GYXT数据库中进行如下操作:(1) 往S,P,J,SPJ表中插入部分数据(参照教材P64页,此题实验一已完成)(2) 将供应商序号为S5的名称改为宏民厂。(3) S表中删除供应商序号为S5的记录,考虑对SPJ表的相应操作。(4) 在S表中插入一条供应商信息:(S6,华天,深圳)。(5) 把全部红色零件的颜色改为粉红色。(6) 将S1供应给J1的零件P1改为由S2供给。(7) 删去全部蓝色零件及相应的SPJ记录。时间: 机房号: 得分: 实验5 数据完整性实验目的:1. 了解SQL Server用约束来维护数据完整性的机制。2掌握在企业管理器和查询分析器中如何创建、使用及删除约束的方法。实验内容:1基于实验一创建的教学管理JXGL数据库,实现约束的创建、查看和删除操作。2创建人事关系RSGX数据库及其中的职工数据表和部门数据表,并实现完整性约束条件的定义。实验步骤:约束是SQL Server提供的自动强制数据完整性的一种方法,它是通过定义列的取值规则来维护数据的完整性。常用的约束是NOT NULL(非空)、CHECK(检查)、UNIQUE(惟一)、PRIMARY KEY(主键)、FOREIGN KEY(外键)和DEFALT(默认)约束。1在教学管理JXGL数据库中进行如下操作:(1) 建立一个CITY表(CityNo,CityName),将CityNo指定为主键。企业管理器方法:在JXGL数据库中创建CITY表,其方法见实验1。打开企业管理器,展开JXGL数据库下的“表”文件夹,在右边的详细窗格中选择要创建约束的表CITY,右击该表,选择“设计表”命令,启动表设计器。在表设计器中,右击需要设为主键的字段CityNo,选择“设置主键”命令其左侧将出现一个钥匙样图标。设置完毕,关闭表设计器。查询分析器方法:用SQL语句创建主键,可使用CREATE TABLE命令完成:CREATE TABLE CITY ( CityNo CHAR(2) CONSTRAINT c1 PRIMARY KEY, CityName VARCHAR(30) NOT NULL);若创建表时没有设置主键,也可以使用ALTER TABLE命令为已存在的表创建主键约束:ALTER TABLE CITY ADD CONSTRAINT c1 PRIMARY KEY(CityNo);其中c1为主键约束名称。(2) 为JXGL数据库中的CITY表,为其“CityName”创建惟一约束。企业管理器方法:在企业管理器中,选择设置惟一约束的CITY表,打开表设计器。在表设计器中,右击CityName字段,选择“索引/键”命令,出现“属性”对话框,并进入“索引/键”选项卡。在该选项卡中,单击“新建”按钮,然后在“索引名”文本框中输入惟一约束名称,再从列名选项的下拉列表框中选择字段名称(如“CityName”),最后选择“创建UNIQUE”复选框和“约束”单选框,如图5.1所示。单击“关闭”按钮,完成惟一约束的创建。 图5.1 创建惟一约束对话框 图5.2 设置检查约束查询分析器方法:为已存在的表创建惟一约束,SQL语句如下:ALTER TABLE CITY ADD CONSTRAINT c2 UNIQUE(CityName);(3) 为JXGL数据库中的SC表,为其“GRADE”创建检查约束。企业管理器方法:在企业管理器中,选择设置检查约束的SC表,打开表设计器。在表设计器中,右击GRADE字段,选择“CHECK约束”命令,出现“属性”对话框,并进入“CHECK约束”选项卡。在该选项卡中,单击“新建”按钮,然后在“约束名”文本框中输入惟一约束名称,再在“约束表达式”文本框中输入约束条件“GRADE=0 AND GRADE=0 AND GRADE=100);(4) 为JXGL数据库中的STUDENT表,为其“Ssex”创建默认约束M。企业管理器方法:在企业管理器中,选择设置默认约束的STUDENT表,打开表设计器。在表设计器中,选择Ssex字段,在默认值栏中输入“M”即可,如图5.3所示。单击“关闭”按钮,完成默认约束的创建。查询分析器方法:为已存在的表创建默认约束,SQL语句如下:ALTER TABLE STUDENT ADD CONSTRAINT c4 DEFAULT M FOR Ssex;“默认值”框 图5.3 创建默认约束 图5.4 创建外键约束(5) 为JXGL数据库中的SC表,为其“Sno”创建外键约束。企业管理器方法:在企业管理器中,选择设置外键约束的SC表,打开表设计器。鼠标右击,选择“关系”命令,打开“属性”对话框的“关系”选项卡。在该选项卡中,单击“新建”按钮,从主键表下拉列表中选择外键引用表STUDENT,并在其下拉列表框中选择外键引用的SNO列;在外键表下拉表框中选择要创建外键的SC表,并从其下拉表框中选择要创建外键约束的SNO列,如图5.4所示。单击“关闭”按钮,完成外键约束的创建。查询分析器方法:为已存在的表创建外键约束,SQL语句如下:ALTER TABLE SC ADD CONSTRAINT c5 FOREIGN KEY(Sno) REFERENCES STUDENT(Sno);(6) 查看约束的定义在企业管理器中,选择要查看约束的表,打开表设计器,单击鼠标右键,分别选择“索引/键”、“关系”、“CHECK”命令,可以查看各类约束。(7) 删除约束企业管理器方法:在企业管理器的表设计器中,可以删除主键、去掉默认值。单击鼠标右键,分别选择“索引/键”、“关系”、“CHECK”命令,可以删除各类约束。查询分析器方法:删除约束的SQL语句格式为:ALTER TABLE DROP CONSTRAINT ;例如,删除上例在JXGL数据库中为SC表的“Sno”列创建的外键约束。ALTER TABLE SC DROP CONSTRAINT c5;2创建人事关系RSGX数据库,并定义职工和部门两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码;要求在模式中完成以下完整性约束条件的定义:(1) 定义每个模式的主码;(2) 定义参照完整性;(3) 定义职工年龄不得超过60岁。时间: 机房号: 得分: 实验6 视图实验目的:1掌握分别用SQL Server企业管理器和查询分析器创建、删除、查询、更新视图的方法。2熟练掌握创建、删除、查询和更新视图的SQL语句的用法,加深理解视图的四种用途。实验内容:1基于实验一创建的教学管理JXGL数据库,参考教材视图的SQL操作实例,实现视图的创建、删除、查询和更新操作。2基于实验一创建的供应系统GYXT数据库,实现视图的创建、删除、查询和更新操作。实验步骤:1在教学管理JXGL数据库中进行如下操作:(1) 建立一个名为“CS_Student”的计算机系学生视图,并要求进行修改和插入操作时仍须保证该视图只有计算机系的学生。(注:计算机系的Sdept值为“CS”;在使用该视图时,将显示Student表中的所有字段。)企业管理器方法:打开企业管理器,展开控制台根目录,依次展开服务器组、服务器、数据库节点,选择“JXGL”数据库,左击视图图标,在弹出的快捷菜单中选择“新建视图”命令,打开视图设计器,如图6.1所示。“验证SQL”按钮关系图窗格“运行”按钮“属性”按钮结果窗格SQL窗格网格窗格“添加表”按钮图6.1 视图设计器单击“添加表”按钮,打开“添加表”对话框,如图6.2所示,可从该对话框中选择建立新视图的基表或视图或函数。这里,我们选择STUDENT表,单击“添加”按钮,将表添加到视图设计器中,关闭“添加表”对话框。图6.2 “添加表”对话框此时,STUDENT表出现在视图设计器的关系图窗格中。根据新建视图的需要,从表中选择视图引用的列:可以在关系窗格中选择表的相应列左边的复选框来完成;也可以通过选择网格窗格中的“列”栏上的列名来完成。在此,我们依次勾选STUDENT表中的Sno、Sname、Ssex和Sage列。在网格窗格中的“准则”栏中设置过滤记录的条件。这里需要设置的条件是“Sdept=CS”,因此,在网格窗格中的列上选择“Sdept”,然后将其所对应的“输出”列的勾选去掉,再在“准则”列中输入“=CS”。在视图设计窗口中,单击工具栏中的“验证SQL”按钮,检查SQL语法。语法正确后,单击“运行”按钮,在结果窗格中预览视图返回的结果,如图6.3所示。图6.3 视图结果单击工具栏的“保存”按钮,弹出“另存为”对话框,输入视图名“CS_Student”,如图6.4所示。单击“确定”按钮,关闭视图设计器,视图CS_Student出现在企业管理器中。图6.4 “另存为”对话框查询分析器方法:打开查询分析器,在查询窗格中输入下列SQL语句,然后运行,输出结果。CREATE VIEW CS_Student AS SELECT Sno,Sname,Ssex,Sage FROM Student WHERE Sdept=CS WITH CHECK OPTION以下操作只需写出查询分析器方法的SQL操作语句。(2) 建立计算机系选修了1号课程的学生的视图CS_S1。(注:使用上题建立的视图CS_Student。)(3) 删除视图CS_S1。(4) 在计算机系学生视图CS_Student中找出选修了“数据库”课程且成绩在90分以上的学生。(5) 向计算机系学生视图CS_Student中插入一个新生记录,其中学号为95030,姓名为张三,年龄为20,男生。(6) 在计算机系学生视图CS_Student中,将学号为95030的学生姓名改为“李四”。(7) 删除计算机系学生视图CS_Student中学号为95030的学生记录。2在供应系统GYXT数据库中进行如下操作:(1) 创建视图VSJ,它记录了给“三建”工程项目的供应零件的情况,包括供应商号、零件号和零件数量。(2) 对VSJ视图查询S1供应商的供货情况。思考题:视图的四种用途是什么?时间: 机房号: 得分: 实验7 数据控制实验目的:1了解SQL Server安全性控制策略,掌握创建用户和设置用户权限的方法。2创建数据库登录用户,并使用SQL授权语句实践安全性控制功能。实验内容:1. 创建登录帐号和教学管理JXGL数据库用户帐号,并设置JXGL数据库用户的权限。2. 用SQL语句实现数据表授权和收回授权操作。实验步骤:1. 在企业管理器中创建一个新的登录帐号和数据库用户。(1) 在企业管理器下,展开“SQL Server组”文件夹,找到要建立登录帐号的服务器并展开其文件夹,然后展开“安全性”文件夹,鼠标右击“登录”图标,在出现的快捷菜单中选择“新建登录”命令,打开“SQL Server登录属性-新建登录”对话框,如图7.1所示。“权限”按钮 图7.1 “SQL Server登录属性-新建登录”对话框 图7.2 “数据库用户属性-新建用户”对话框(2) 在“名称”文本框中输入要创建的登录帐号名称“U1”,在“身份验证”选项组中,单击“SQL Server身份验证”单选钮并输入密码,单击“确定”按钮,出现“确认密码”对话框,将密码重新输入一次,单击“确定”按钮。(3) 在企业管理器中,展开“SQL Server组”文件夹,在“数据库”文件夹中展开JXGL数据库,然后鼠标右击“用户”图标,选择“新建数据库用户”命令,打开“数据库用户属性-新建用户”对话框。(4) 单击“登录名”下拉列表框右端的下拉箭头,选择“U1”登录帐号,此时“用户名”文本框自动显示为“U1”,如图7.2所示。单击“确定”按钮,即在JXGL数据库中创建了一个新的用户帐号U1。2在企业管理器中设置数据库用户使用权限。如图7-2所示,当新建一个新的用户帐号时,“登录名”右侧的“权限”按钮是灰色的,表示不能在创建数据库用户帐号的同时设置其权限,但可以在创建后通过其属性对话框来设置权限,步骤如下:(1) 在企业管理器中,展开JXGL数据库文件夹下的“用户”文件夹,右击选定的用户帐号“U1”图标,选择“属性”命令,打开“数据库用户属性”对话框,单击“权限”按钮,打开权限设置对话框,如图7.3所示。“列”按钮图7.3 “数据库用户属性”权限设置对话框(2) 在“数据库用户属性”权限设置对话框中,可以设置用户对数据库对象所具有的权限。例如,设置U1用户对STUDENT表的SELECT和UPDATE权限,可以用鼠标直接在列表中点击选择。又如,若设置对表或视图的某一字段进行操作的权限,可在列表中选择表或视图对象,然后单击“列”按钮,打开“列权限”对话框,进一步进行相应权限的设置。3在查询分析器中对用户的授权操作。(1) 打开查询分析器,先以SQL Server系统管理员登录帐号sa登录。(2) 选定JXGL数据库,在“查询-JXGL.sa”窗口中,执行下列操作,将STUDENT表的SELECT和UPDATE权限授予用户U1。GRANT SELECT,UPDATE ON STUDENT TO U1;(3) 选择查询分析器的“文件/连接”命令,以用户帐号U1登录,出现新的“查询-JXGL.U1”窗口。(4) 执行下列操作,并观查结果。U1用户查询STUDENT表详细情况:SELECT * FROM STUDENT;U1用户将STUDENT表中所有学生年龄增长1岁:UPDATE STUDENT SET SAGE=SAGE+1 WHERE SNO=95001SELECT * FROM STUDENT;U1用户插入一条学生记录:INSERT INTO STUDENT VALUES(95007,张三,F,19,MA);结果窗口显示“拒绝了对对象 STUDENT(数据库 JXGL,所有者 dbo)的 INSERT 权限。”以上结果表明,sa只赋予U1用户SELECT和UPDATE权限,而没有授予INSERT权限。大家可以尝试在“查询-JXGL.sa”窗口执行GRANT INSERT ON STUDENT TO U1语句,然后回到“查询-JXGL.U1”窗口中重新执行INSERT INTO STUDENT VALUES(95007,张三,F,19,MA),并用SELECT * FROM STUDENT查看结果。sa回收U1的SELECT权限:“查询-JXGL.sa”窗口执行:REVOKE SELECT ON STUDENT FROM U1;“查询-JXGL.U1”窗口执行:SELECT * FROM STUDENT;将显示“拒绝了对对象 STUDENT(数据库 JXGL,所有者 dbo)的 SELECT 权限”。4针对供应系统数据库GYXT进行如下授权操作。将S,P,J,SPJ表的所有权限授予用户张成。将SPJ表的SELECT权和QTY列的UPDATE权授给用户徐天,并允许他传播这些权限。(3)回收刘斕用户对S表SNO列的修改权。时间: 机房号: 得分: 实验8 综合实验教务系统分析和设计实验目的:1掌握数据库应用系统的分析和设计过程。2. 掌握应用SQL Server软件开发完整的数据库应用系统的过程。实验内容:从教务管理系统应用出发,分析用户需求,设计数据库概念模型、逻辑模型,并创建数据库,优化系统参数。实验的重点在于数据库应用系统的设计,所以,对系统的物理结构设计不作过多要求,学生可自行考虑物理结构设计,建立合适的索引,提高查询速度。实验步骤:1. 数据库的概念设计 班级学分限制班级名学生学号姓名性别生日属于必修课程选修上课时间上课课上课时间授课教师接纳人数课号课名学分1mmnmmnn图8.1 选课系统的ER图图8.1是选课系统的ER图,该系统涉及的实体集有:班级实体集:具有属性班级名称和选课学分限制。学生实体集:具有属性学号、姓名、性别和生日。课程实体集:具有属性课程号、课程名、学分、授课教师、接纳人数。上课时间实体集:具有属性时间。一个班级可以有多个学生,一个学生只能属于一个班级,所以班级和学生之间的联系为1:m的联系。一个班级可以有多门必修课程,一门课程是多个班级的必修课,所以班级和课程之间的必修联系是m:n的联系。一个学生课以选修多门课程,一门课程可以被多个学生选修,所以学生和课程之间的联系是m:n的联系。一门课程可以有多个上课时间,同一时间内可以有多门课程在上课,所以课程和上课时间的联系是m:n的联系。2. 将概念模型转换成关系模型(1) 将ER模型转换为关系模式班级实体集可以转换为关系:CLASS(CLASSNAME,MAXCREDIT,MINCREDIT)CLASSNAME表示班级名称,MAXCREDIT表示最大学分限制,MINCREDIT表示最小学分限制。学生实体集可以转换为关系:STUDENT(STUDENTID , NAME , SEX , BIRTHDAY)STUDENTID表示学号,NAME表示姓名,SEX表示性别,BIRTHDAY表示生日课程实体可以转换为关系COURSE(COURSEID, COURSENAME, CREDIT, TEACHER, ACCEPTION)COURSEID表示课程号,COURSENAM表示课程名,CREDIT表示学分,TEACHER表示授课教师,ACCEPTION表示接纳人数。班级和学生之间的联系是1:M的联系,所以没有必要为其建立一个关系,可以通过扩展学生关系来表示:STUDENT(STUDENTID , NAME , SEX , BIRTHDAY , CLASSNAME)CLASSNAME表示学生所在班级名。班级和课程之间的必修联系可以转换为关系:CLASSCOURSE(CLASSNAME , COURSEID)CLASSNAME表示班级名称,COURSEID表示课程号。学生和课程之间的选修联系可以转化为关系:STUDENTCOUSE(STUDENTID, COURSEID)STUDENTID表示学号,COURSEID表示课程号。课程和上课之间的联系可以转化为关系:COURSETIME(COURSEID , TIME)COURSEID表示课程号,TIME表示上课时间。(2) 数据库表结构设计:把关系模型转化为表结构:班级信息表(class):包含所有的班级信息,定义如下:域名含义数据类型例子备注CLASSNAME班级名称字符类型计71主码MAXCREDIT最大学分限制数值类型30MINCREDIT最小学分限制数值类型20学生信息表(student):包含所有学生的个人信息,定义如下:域名含义数据类型例子备注STUDENTID学号字符类型971329主码NAME姓名字符类型王强SEX性别字符类型男BIRTHDAY生日日期

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论