




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库系统原理实验指导书 1数据库系统原理实验指导书二O一六年五月2前言数据库系统原理实验最重要的任务是发展学生的智力,即编程、上机调试能力,具体到教学内容上则是重在使学生掌握理论教学中的重点和难点,对基本能熟练掌握,提高自身的编程能力,加强素质教育。 注重从事理论研究、实验工作的能力和严谨的科学作风的培养,提倡创新精神。 通过本课程的学习,加深对面向对象编程技术基础理论、基本知识的理解,理解实验原理和实验方案,较熟练地掌握SQL编程,培养良好的编程风格。 培养学生严谨的工作作风和实事求是的科学态度,为学习后继课程和未来的科学研究及实际工作打下良好的基础。 2熟悉对DBMS的操作3搭建今后实验的平台二实验内容及要求2.1安装和启动1根据安装文件的说明安装数据库管理系统。 在安装过程中记录安装的选择,并且对所作的选择进行思考,为何要进行这样的配置,对今后运行数据库管理系统会有什么影响。 2学会启动和停止数据库服务,思考可以用哪些方式来完成启动和停止。 3初步了解SQL Serverxx的安全性,这里主要是用户的登录和服务器预定义角色。 可以尝试建立一个新的用户,赋予其数据库管理员的角色,今后的实验可以用该用户来创建数据库应用。 2.2数据库系统的构架1了解数据库系统的逻辑组件它们主要是数据库对象,包括基本表、视图、触发器、存储过程、约束等。 今后将学习如何操作这些数据库对象。 2了解数据库的物理组件思考数据库物理存储的存储单位是什么,数据主要以什么方式存放,如何确定数据的存放位置。 2.3SQLServer的管理和使用了解SQLServer如何通过它提供的工具对数据和数据库服务器进行管理和使用的。 2.3.1启动、暂停和停止SQLServerxx学会运用控制管理器和企业管理器进行操作。 2.3.2了解系统其他管理工具初步了解SQL Serverxx的主要工具和它们的功能,为今后的实验做准备。 例如,数据迁移工具导入和导出数据使用的;企业服务器和作业调度管理器可以用该工具对数据库服务器进行管理,管理和监视服务器性能和活动;查询分析器给出数据库查询语句的查询计划和执行时间,帮助用户分析查询过程,进行查询优化等等。 三实验内容和过程四实验小结4实验指导1根据安装机器软硬件的要求,选择一个合适的版本,以下以开发版为例2将SQL ServerxxDVD插入DVD驱动器。 如果DVD驱动器的自动运行功能无法启动安装程序无法启动安装程序,请导航到DVD的根目录然后启动splash.hta。 3在自动运行的对话框中,单击“运行SQL Server安装向导”。 4在“最终用户许可协议”页上,阅读许可协议,再选中相应的复选框以接受许可条款和条件。 接受许可协议后即可激活“下一步”按钮。 若要继续,请单击“下一步”若要结束安装程序,请单击“取消”。 如下图5在“SQL Server组件更新”页上,安装程序将安装SQL Serverxx的必需软件。 有关组件要求的详细信息,请单击该页底部的“帮助”按钮。 若要开始执行组件更新,请单击“安装”。 更新完成之后若要继续,请单击“完成”。 56在SQL Server安装向导的“欢迎”页上,单击“下一步”以继续安装。 7在“系统配置检查(SCC)”页上,将扫描安装计算机,以检查是否存在可能妨碍安装程序的条件。 68在“注册信息”页上的“姓名”和“公司”文本框中,输入相应的信息。 若要继续,请单击“下一步”9在“要安装的组件”页上,请选择要安装的组件。 选择各个组件组时,“要安装的组件”窗格中会显示相应的说明。 您可以选中任意一些复选框。 建议全选。 若要安装单个组件,请单击“高级”。 否则,请单击“下一步”继续。 710在“实例名”页上,请为安装的软件选择默认实例或已命名的实例。 计算机上必须没有默认实例,才可以安装新的默认实例。 若要安装新的命名实例,请单击“命名实例”,然后在提供的空白处键入一个唯一的实例名。 11在“服务帐户”页上,为SQL Server服务帐户指定用户名、密码和域名。 您可以对所有服务使用一个帐户。 812在“身份验证模式”页上,选择要用于SQL Server安装的身份验证模式。 如果选择Windows身份验证,安装程序会创建一个sa帐户,该帐户在默认情况下是被禁用的。 选择“混合模式身份验证”时,请输入并确认系统管理员(sa)登录名。 建议选择混合模式,并输入安全的密码。 13如果选择Reporting Services作为要安装的功能,将显示“报表服务器安装选项”页。 使用单选按钮选择是否使用默认值配置报表服务器。 如果没有满足在默认配置中安装Reporting Services的要求,则必须选择“安装但不配置服务器”安装选项。 若要继续安装,请单击“下一步”914在“错误报告”页上,可以清除复选框以禁用错误报告。 有关错误报告功能的详细信息,请单击该页底部的“帮助”。 若要继续安装,请单击“下一步”。 15在“准备安装”页上,查看要安装的SQL Server功能和组件的摘要。 若要继续安装,请单击“安装”。 1016在“安装进度”页上,可以在安装过程中监视安装进度。 若要在安装期间查看某个组件的日志文件,请单击“安装进度”页上的产品或状态名称。 17在“完成Microsoft SQL Server安装向导”页上,可以通过单击此页上提供的链接查看安装摘要日志。 若要退出SQL Server安装向导,请单击“完成”。 1118如果提示您重新启动计算机,请立即重新启动。 19如果成功安装了SQL Serverxx,则在开始菜单中添加了如下程序和相应的服务 (22)L SQLr Server的环境介绍.1.s Analysis Services提供“部署向导”,为用户提供将某个AnalysisServices项目的输出部署到某个目标服务器的功能。 2.配置工具其子菜单中提供的配置管理器“SQL ServerConfigulation manager”用于查看和配置SQL Server的服务。 以下是SQL Serverxx系统的7个服务。 12右击某个服务名称,可以查看该服务的属性,并且可以启动、停止、暂停和重新启动相应的服务。 也可以使用操作系统“我的电脑”“管理”选项,在【计算机管理】窗口中查看和启动、停止、暂停和重新启动相应的服务。 3.文档和教程提供了SQL Serverxx的联机帮助和示例数据库概述。 4.性能工具子菜单提供了“SQL ServerProfiler”和“数据库引擎优化顾问”用户数据库性能调试和优化工具。 5.SQL ServerBusiness IntelligenceDevelopment Studio商务智能(BI)系统开发人员设计的集成开发环境,构建于Visual Studioxx技术之上,为商业智能系统开发人员提供了一个丰富、完整的专业开发平台,支持商业智能平台上的所有组件的调试、源代码控制以及脚本和代码的开发。 6.SQL ServerManagement Studio它将SQL Server早期版本中包含的企业管理器、查询分析器和分析管理器的功能组合到单一环境中,为不同层次的开发人员和管理员提供SQL Server访问能力。 13二实验二交互式SQL(一)一实验目的1熟悉SQL Serverxx中SQL ServerManagement Studio的环境2了解SQL Serverxx数据库的逻辑结构和物理结构3掌握使用向导、SQL语句创建和删除数据库的方法4熟悉和掌握SQL的数据定义功能。 5熟悉和掌握SQL的数据操纵功能。 6熟悉和掌握视图的定义和数据操纵。 二实验准备1装有SQLServerxx的PC机。 2.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 三实验要求1.熟练使用企业管理器进行数据库的创建和删除操作2.完成用向导建立和删除数据库的实验报告3.熟悉和掌握SQL的数据定义功能。 4.各步结果实验截图的实验报告。 四实验内容1已知学生选课数据库SSC由下列表组成1)表的结构学生表(student)的结构列名说明数据类型约束Sno学号字符串,长度为5主码Sname姓名字符串,长度为10非空Ssex性别字符串,长度为2取“男”或“女”Sage出生日期IntSdept所在系字符串,长度为20非空课程表(course)的结构列列名说说明数据类型约约束Cno课程号字符串,长度为3主码Cname课程名字符串,长度为50非空Ccredit学分SMSLLINT取值大于0选修表(sc)的结构列名说明数据类型约束Sno学号字符串,长度为7主码,引用Student的外码Cno课程号字符串,长度为10主码,引用Course的外码Grade成绩整型取值01002)表的数据14学生表(student)的数据Sno SnameSsex SageSdept95001张三男20CS95002李四女19CS95003王五男21MA课程表(course)的数据Cno CnameCcredit001数据库原理4002操作系统3003数据结构4选修表(sc)的数据Sno CnoGrade95001001609500xx90950010029595003003901使用向导 (1)使用向导创建上述描述的数据库。 使用SQL ServerManagement Studio(简称SSMS)创建数据库。 (2)使用向导删除上面建立的数据库。 用SSMS删除添加建立的数据库SSC。 2请用SQL完成以下要求 (1)建立数据库SSC (2)在数据库SSC上定义上述三个基本表。 (3)向Student表增加“入学时间”列,其数据类型为日期时间型datetime。 (4)将年龄的数据类型由int改为smallint。 (5)删除Course表 (6)在Student表的Sname(姓名)列上建立一个唯一索引Stusname (7)删除Student表的Stusname索引 (8)在Student表的Sname(姓名)列上建立一个聚簇索引五实验小结15实验指导一使用向导创建上述描述的数据库。 1使用SQL ServerManagement Studio(简称SSMS)创建数据库。 (1)启动SSMS在开始菜单中所有程序SQL ServerxxSQL ServerManagement Studio单击“连接”按钮,便可以进入【SQL ServerManagement Studio】窗口。 如果身份验证选择的是“混合模式”,则要输入sa的密码。 (2)建立数据库在“对象资源管理器”窗口,建立上述数据库SSC。 在数据库节点上右击选择新建同时建立一个同样属性的数据库SSC1。 162)使用向导删除上面建立的数据库。 用SSMS删除添加建立的数据库SSC1。 2用查询分析器实现 (1)打开查询分析器建立学生选课数据库SSC并打开。 create databaseSSCgouse SSCgo (2)在数据库SSC上定义上述三个基本表。 create tablestudent(Sno char (5)primary key,Sname char (10),Ssex char (2),Sage int,Sdept char (20)create tablecourse(Cno char (3)primary key,Cname char (20),Cgredit smallint)create tablesc(Sno char (5)foreign key references student(Sno),Cno char (3)foreign key references course(Cno),gradesmallint,primarykey(Sno,Cno),)17 (3)向Student表增加“入学时间”列,其数据类型为日期时间型datetime。 ALTER TABLEStudent ADDS_entrance datetime (4)将年龄的数据类型由int改为smallint。 ALTER TABLEStudent ALTERCOLUMN Sage smallint (5)删除Course表DROPTABLE Course (6)在Student表的Sname(姓名)列上建立一个唯一索引StusnameCREATE UNIQUEINDEX StusnameON Student(Sname) (7)删除Student表的Stusname索引DROPINDEX Student.Stusname (8)在Student表的Sname(姓名)列上建立一个聚簇索引CREATE CLUSTEREDINDEX StusnameON Student(Sname)18三实验三交互式SQL(二)一实验目的1熟悉和掌握SQL的数据操纵功能。 2熟悉和掌握视图的定义和数据操纵。 二.实验准备1装有SQLServerxx的PC机。 2实验二建立的数据表。 三.实验要求1请用SQL完成以下要求 (1)查询男学生信息,结果按年龄降序排列 (2)查询男女生人数 (3)查询学生的选课信息,包括学生的学号、姓名、课程名、成绩 (4)查询学生的学号及其平均成绩,结果按平均成绩降序排列 (5)将选课信息(95001,003,99)插入数据库 (6)将全体学生的年龄增加1岁 (7)删除学号为95001的选课信息2请用SQL完成以下要求 (1)建立计算机系(CS)学生的视图cs_student (2)查询计算机系学生的信息 (3)查询计算机系学生的平均年龄 (4)建立计算机系(CS)学生的选课视图cs_sc (5)查询计算机系(CS)学生的选课信息 (6)删除视图cs_student四四实验内容五五实验小结19实验指导1(一)打开查询分析器建立学生选课数据库SSC并打开create databaseSSCgouse SSCgo(二)在数据库SSC上定义上述三个基本表。 create tablestudent(Sno char (5)primary key,Sname char (10),Ssex char (2),Sage int,Sdept char (20)create tablecourse(Cno char (3)primary key,Cname char (20),Cgredit smallint)create tablesc(Sno char (5)foreign keyreferences student(Sno),Cno char (3)foreign keyreferences course(Cno),grade smallint,primary key(Sno,Cno),)(三)表定义好以后向表中插入数据。 1)向学生表插入数据insert intostudentvalues(95001,张三,男,20,CS)insert intostudentvalues(95002,李四,女,19,CS)insert intostudentvalues(95003,王五,男,21,MA)2)向课程表插入数据insert intocoursevalues(001,数据库原理,4)insert intocoursevalues(002,操作系统,3)insert intocoursevalues(003,数据结构,4)3)向选修表插入数据insert intoscvalues(95001,001,60)20insert intoscvalues(95002,002,90)insert intoscvalues(95001,002,95)insert intoscvalues(95003,003,90)(四)数据操作 (1)查询男生信息,结果按年龄降序排列select*from studentwhereSsex=男order bySage desc (2)查询男女生人数select Ssexas性别,count(*)as人数from studentgroupby Ssex (3)查询学生的选课信息,包括学生的学号、姓名、课程名、成绩select student.Sno,Sname,Cname,gradefrom student,sc,coursewhere student.Sno=sc.Sno andsc.Cno=course.Cno21 (4)查询学生的学号及其平均成绩,结果按平均成绩降序排列select Sno,avg(grade)as平均成绩from scgroupby Snoorderby avg(grade)desc (5)将选课信息(95001,003,99)插入数据库insert intoscvalues(95001,003,99) (6)将全体学生的年龄增加1岁update studentsetSage=Sage+122 (7)删除学号为95001的选课信息deletefrom scwhere Sno=950012 (1)建立计算机系(CS)学生的视图cs_studentcreate viewcs_studentasselect*from studentwhereSdept=CS (2)查询计算机系学生的信息SELECT*FROM cs_student (3)查询计算机系学生的平均年龄23SELECTAVG(SAGE)FROM cs_student (4)建立计算机系(CS)学生的选课视图cs_scCREATE VIEWcs_scASSELECT sc.*FROM cs_student,scWHERE cs_student.Sno=sc.Sno (5)查询计算机系(CS)学生的选课信息SELECT*FROM cs_sc (6)删除视图cs_studentDROPVIEW cs_student24实验四四数据控制(安全性、完整性)一实验目的 (1)掌握SQL对数据库进行安全性控制的方法。 (2)熟悉和掌握SQL对数据库进行完整性控制的方法。 二实验工具SQL Serverxx三实验内容1今有两个关系模式职工(职工号,姓名,年龄,职务,工资,部门号)部门(部门号,名称,经理名,地址,电话号)请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能1)用户王明对两个表有SELECT权力;2)用户李勇对两个表有INSERT和DELETE权力;3)用户刘星对职工表有SELECT权力,对工资字段具有更新权力;4)用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力;5)用户杨兰具有从每个部门职工中SELECT最高工资,最低工资,平均工资的权力,他不能查看每个人的工资。 6)向表中插入适当数据,分别使用上述用户登录验证其权限7)把 (1) (5)的每一种情况,撤销各用户所授予的权力。 8)分别使用上述用户登录验证其权限2实验二创建的已知数据库SSC(学生选课)用SQL完成上述表的定义和数据操纵,要求 (1)定义“学生”表中学号为主码,且只能输入09十个字符;性别值域为(“男”,“女”),默认值为“男”;16年龄36。 (2)定义“课程”表中的课程号为主码。 (3)定义“选修”表中的学号和课程号分别参照“学生”表中的学号的值和“课程”表中的课程号的值,并要求更新(级连)、删除(级连)。 (4)在“选修”表中定义课程号=001的成绩=60,其他课程的成绩=16and Sage=16and Sage=16and Sage=16andSage=36) 3、根据要求2)定义课程表。 create tablecourse(Cno char (3)primary key,Cname char (20),Cgredit smallint) 4、根据要求3)4)定义选修表。 create tablesc(Sno char (5)foreign keyreferences student(Sno)on deletecascade onupdate cascade,Cno char (3)foreign keyreferences course(Cno)on deletecascade onupdate cascade,grade smallint,primarykey(Sno,Cno),check(Cno=001and grade=60or Cno001and grade=100)或者create tablesc(Sno char (5)foreign keyreferences student(Sno)on deletecascade onupdate cascade,Cno char (3)foreign keyreferences course(Cno)on deletecascade onupdate cascade,grade smallintcheck(grade=100)primarykey(Sno,Cno),29check(Cno!=001or grade=60)也可以给约束取名字,如create tablesc(Sno char (5)constraint FK_sno foreignkeyreferencesstudent(Sno)on deletecascade onupdate cascade,Cno char (3)constraint FK_o foreignkeyreferencescourse(Cno)on deletecascade onupdate cascade,grade smallint,constraint PK_snoo primarykey(Sno,Cno),constraint CHK_oGrade check(Cno=001and grade=60or Cno001and grade=100)表定义好以后向表中插入数据。 向学生表插入数据insert intostudentvalues(95001,张三,男,20)insert intostudentvalues(95002,李四,女,19)insert intostudentvalues(95003,王五,男,21)向课程表插入数据insert intocoursevalues(001,数据库原理,4)insert intocoursevalues(002,操作系统,3)insert intocoursevalues(003,数据结构,4)向选修表插入数据insert intoscvalues(95001,001,60)insert intoscvalues(95002,002,90)insert intoscvalues(95001,002,95)insert intoscvalues(95003,003,90) 5、元组(A0009,王二,女,13)不能插入“学生”表。 因为违背了用户自定义完整性约束学号是数字,16年龄0)printf(请输入管理员账号,按Enter结束输入:);scanf(%s,&num);printf(请输入密码,按Enter结束输入:);scanf(%s,&pswd);SQLAllocHandle(SQL_HANDLE_ENV,NULL,&hEnv);/首先获得环境句柄SQLSetEnvAttr(hEnv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);/设置ODBC为版本3SQLAllocHandle(SQL_HANDLE_DBC,hEnv,&hDBC);/然后获得连接句柄printf(正在连接数据库.n);/使用SQLConnect()来连接数据库,SQL_NTS表示以NULL结尾的字符串/SSC为数据源的名字(根据自己配置的数据源名字来改)/sa为登陆数据的账号,azrael为密码,其他参数不用改rt=SQLConnect(hDBC,(SQLCHAR*)SSC,SQL_NTS,(SQLCHAR*)sa,SQL_NTS,(SQLCHAR*)azrael,SQL_NTS);if(rt=SQL_SUCCESS|rt=SQL_SUCCESS_WITH_INFO)SQLAllocHandle(SQL_HANDLE_STMT,hDBC,&hTrial);/得到数据集句柄printf(username=%s,num);/把SQL语句输出到缓冲区sql中sprintf(sql,SELECT passwordFROM loginWHERE username=%s,num);/执行动态语句的另一种方法就是将parameter打印到字符串/预备执行SQL语句使用SQLPrepare(SQLBindParameter)和SQLExecute组合代替SQLExecDirect/*SQLPrepare(hTrial,SELECT passwordFROM loginwhere s_no=?);43SQLBindParameter(hTrial,1,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,0,0,)SQLExecute(hTrial);*/SQLExecDirect(hTrial,sql,SQL_NTS);/执行SQL语句SQLFetch(hTrial);/在取得的所有结果集中取得下一行数据集SQLGetData(hTrial,1,SQL_C_CHAR,right,sizeof(right),&r_fact);/取得“password”字段的值if(0=strcmp(right,pswd)printf(数据库连接成功!n);SQLFreeHandle(SQL_HANDLE_STMT,hTrial);break;elseprintf(输入密码错误,请重新输入,你还有%d次机会n,-count);else/当SQLConnec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年质量安全培训试卷及答案
- 2025年山西入团考试试题及答案
- 2025年医师中级考试试题及答案
- 2025福建三明机场发展集团有限公司招聘3人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025湖南长沙人才集团有限公司见习人员招聘考前自测高频考点模拟试题及答案详解(名师系列)
- 2025年福建省泉州市鲤城区属部分公办学校专项公开招聘编制内15人模拟试卷及答案详解(易错题)
- 2025四川凉山州西昌市人民医院招聘工作人员7人-西昌市人民医院招聘派遣制人员考试参考试题及答案解析
- 2025单招外贸试题大全及答案
- 2025年秋季中国石油兰州石化分公司高校毕业生招聘(甘肃)考试参考题库及答案解析
- 2025浙江教师考编试题及答案
- 2025年全国新高考英语II卷试题解析及复习备考策略(课件)
- 课本剧《霸王别姬》剧本【3篇】
- 2025至2030年中国乙肝疫苗行业市场发展模式及未来前景分析报告
- 作文写作(解析版)-2025年中考语文一模试题分类汇编(贵州专用)
- 人工智能技术研发股东出资合作框架协议
- 《资源环境信息技术》课件 - 探索数字化时代的环境保护与可持续资源管理
- 异麦芽糖酐铁注射液-药品临床应用解读
- 制造业制造业供应链管理方案
- 超声引导下的臂丛神经阻滞
- 警校生未来职业规划
- 《国歌法》、《国旗法》主题班会
评论
0/150
提交评论