SQL Server数据库设计与开发项目实训指导书.doc
SQL Server数据库设计与开发项目实训指导书二级学院 信息工程学院 适用专业 计算机信息管理 陕西工业职业技术学院2015年06月情况说明一、实训目的使学生在学习数据库原理与SQL Server这门课程后,通过本次实训,能够加深对数据库基本知识的理解,掌握MicroSoft SQL Server 2005的基本操作、熟练使用T-SQL语句,提高使用SQL Server 2005进行数据处理和管理的能力。二、实训内容与要求本次实训安排了10个工作日,48个学时。准备:在系统的非保护逻辑盘建立名为“学号姓名”的文件夹(如XXX某某某请使用自己的学号姓名,该文件夹即为自己的工作文件夹);本次实训所提交的作业,均保存在个人的工作文件夹内(这一点请同学们在操作时一定加以注意)。要求:上交作业既为自己的工作文件夹。文件夹中内容分两部分:1、系统生成文件(包括数据库文件与E-R图文件) 2、实训报告书(以文字+图片的形式对本次实训的任务、实现过程、实训结果加以描述,制作word文档报告书)。三、实训场所行知楼软件测试实训室。四、实训设备要求硬件: 内存:2G以上;CUP: 双核,主频2G以上;硬盘空间:100G以上。软件: Win7操作系统,Microsoft SQL Server 2005。五、说明。凡具备下列条件者,均以不及格论。1未能达到实训中规定的基本要求并及时上交实训作业(“学号姓名”文件夹=系统生成文件+实训报告)者,或实训作业系抄袭别人、或马虎潦草内容明显错误者。2旷课时间超过全部实训时间三分之一以上者。3实训中态度不端正,有违纪行为(如玩游戏),屡教不改者。项目 一 :设计数据库实训任务一、student数据库概念模型设计。二、student数据库逻辑模型设计。三、student数据库物理模型设计。实训目的熟练掌握数据库概念模型、逻辑模型与物理模型的设计方法。实训要求一、根据数据库开发流程,对student数据库进行概念模型、逻辑模型和物理模型的设计。二、使用Visio画出E-R图,保存在个人工作文件夹“学号姓名”中。三、在实训报告的“步骤”栏,使用文字+截图方式对操作步骤加以描述。实训内容一、 student数据库概念模型设计。1. 实体及其属性的确定。1) 班级:2) 学生:3) 课程:2. 实体间联系的确定。1) 班级与学生之间联系的确定:2) 学生与课程之间联系的确定:3. student数据库的E-R图。二、 数据库逻辑模型设计。1. 由E-R图转换为一组关系模式的原则:1) 一个实体转换为一个关系,实体名就是关系名,实体的属性就是关系的属性;2) 两个实体间的联系分为以下3种情况:l 一个1:1联系可以转换为一个独立的关系,也可以与任意一端对应的关系合并;l 一个1:n联系可以转换为一个独立的关系,也可以与n端对应的关系合并l 一个m:n联系转换为一个关系3) 3个或3个以上实体间的联系转换为一个关系4) 具有相同主键的关系可以合并2. 根据E-R图向关系模式的转换原则,具体转换如下,形成数据库的逻辑模型:1) 班级();2) 学生();3) 课程();4) 成绩();三、 数据库物理模型设计。1. 班级关系班级信息表class_info序号字段名数据类型字段宽度字段约束默认值主键外键1class_nochar88位09字符是2342. 学生关系学生信息表student_info序号字段名数据类型字段宽度字段约束默认值主键外键1234567893. 课程关系课程信息表course_info序号字段名数据类型字段宽度字段约束默认值主键外键1234564. 成绩表result_info序号字段名数据类型字段宽度字段约束默认值主键外键123项目 二 :创建数据库实训任务一、使用T-SQL语句创建数据库student。二、使用T-SQL语句修改数据库student。实训目的一、熟练掌握使用T-SQL语句创建数据库的方法。二、熟练掌握使用T-SQL语句修改数据库的方法。实训要求一、在个人工作文件夹“学号姓名”文件夹中创建student数据库。二、所有操作以T-SQL语句方式完成。三、在实训报告的“步骤”栏,使用文字+截图方式对操作步骤加以描述。实训内容一、 创建数据库student,主数据文件名为:student_data;主事务日志文件名为:studnet_log。文件初始大小、文件增长、最大容量自定(建议不要太大)。命令如下:二、 修改数据库student。1) 为数据库"student"添加一个新的(辅)数据文件student2_data,文件初始大小、文件增长、最大容量自定。命令如下:2) 为数据库"student"添加一个新的事物日志文件student2_log。命令如下:3) 改变(辅)数据文件student2_data的文件属性(初始大小、文件增长、最大容量)。命令如下:4) 改变(辅)日志文件student2_log的文件属性(初始大小、文件增长、最大容量)。命令如下:5) 删除(辅)数据文件student2_data。命令如下:6) 删除(辅)日志文件student2_log。命令如下:项目 三 :数据库表实训任务一、使用T-SQL语句创建数据库表。二、使用T-SQL语句修改数据库表结构。三、使用T-SQL语句增改删表中记录。实训目的一、熟练掌握使用T-SQL语句创建数据库表和修改表结构的方法。二、熟练掌握使用T-SQL语句增改删表中数据的方法。实训要求一、所有操作以T-SQL语句方式完成。二、在实训报告的“步骤”栏,使用文字+截图方式对操作步骤加以描述。实训内容一、 新建表。1) 新建表class_info(class_no char(8) primary key,class_name char(8),director char(6),profession char(16)。T-SQL语句如下:2) 新建表student_info (student_id char(10) primary key,student_name char(10),student_sex char(2),born_date datetime,class_no char(8),tele_number char(12),ru_date datetime,address varchar(50),comment varchar(200) 。T-SQL语句如下:3) 新建表course_info(course_no char(5) primary key,course_name char(30),course_type char(10),course_start char(1),course_time int,course_score tinyint) 。T-SQL语句如下:4) 新建表result_info,(student_id char(10),course_no char(5) primary key(student_id,course_no),result decimal(4,1)。T-SQL语句如下:二、 修改表。1) 为表student_info增加一个新字段"political_status char(4) null"。语句如下:2) 同时为表student_info增加两个新字段"ru_result int"和"department char(10) "。语句如下:3) 将student_info表的"political_status"字段修改为varchar(10)。语句如下:4) 为表student 删除一个字段"political_status"。语句如下:5) 同时删除表student_info 的两个字段"ru_result","department",语句如下:三、 表记录。1) 为表class_info增加一条新记录,该记录字段值为本班真实信息。语句如下:2) 为表student_info增加一条新纪录,要求该记录前八个字段有值,字段值为本人真实信息,最后一个字段comment不输入。语句如下:3) 为表course_info增加一条新记录,字段值自拟。语句如下:4) 为表result_info增加一条新纪录,字段值自拟。语句如下:5) 修改student_info表中刚刚增加的那条本人记录,将comment字段值改为“认真刻苦”。语句如下:6) 删除result_info表中的那条成绩记录。语句如下:7) 删除student_info表中那条本人信息记录。语句如下:8) 删除course_info表中那条课程信息记录。语句如下:9) 修改class_info表中那条本班记录,将字段信息修改为另一班。项目 四 : 数据完整性实训任务一、使用T-SQL语句修改表,为数据库表增加外键约束。二、使用T-SQL语句修改表,为数据库表增加唯一约束。三、使用T-SQL语句修改表,为数据库表增加检查约束。四、使用T-SQL语句修改表,为数据库表增加默认约束。实训目的熟练掌握使用T-SQL语句设定数据完整性的方法。实训要求一、所有操作以T-SQL语句方式完成。二、在实训报告的“步骤”栏,使用文字+截图方式对操作步骤加以描述。实训内容一、 Foreign Key约束1) 修改表student_info,为class_no字段创建外键约束,要求student_info表的字段class_no参照class_info表的主键class_no。命令如下:2) 修改表result_info,为student_id字段创建外键约束,要求result_info表的字段student_id参照student_info表的主键student_id。命令如下:3) 修改表result_info,为course_no字段创建外键约束,要求result_info表的字段course_no参照course_info表的主键course_no。命令如下:二、 Unique约束。1) 修改表class_info,为字段class_name创建唯一约束。命令如下:2) 修改表course_info,为字段course_name创建唯一约束。命令如下:三、 Check约束1) 修改表class_info,为class_no字段创建检查约束,要求class_no字段的值为8位09字符。命令如下:2) 修改表student_info,为student_id字段创建检查约束,要求student_id字段的值为10位09字符。命令如下:3) 修改表course_info,为course_no字段创建检查约束,要求course_no字段的值为5位09字符。命令如下:4) 修改表result_info,为result字段创建检查约束,要求result字段的值大于等于0、小于等于100。命令如下:四、 default 约束。1) 修改表student_info,为字段student_name创建默认约束,默认值为无名。命令如下:2) 修改表result_info,为字段result创建默认约束,默认值为0。命令如下:3) 修改表student_info,删除字段student_name的默认约束。命令如下:4) 修改表result_info,删除字段result的默认约束。命令如下:五、 录入数据。1) 为class_info表录入至少两条记录,包含信管两个班的信息。2) 为student_info表录入至少10条记录(每班至少5人)。3) 为course_info表录入至少5条记录。4) 为result_info表录入至少4位同学(每班至少2人)5门课成绩的记录。项目 五 : 查询实训任务一、使用T-SQL语句创建数据库student。二、使用T-SQL语句修改数据库student。实训目的熟练掌握使用T-SQL的SELECT语句查询所需数据的方法。实训要求一、所有操作以T-SQL语句方式完成。二、在实训报告的“步骤”栏,使用文字+截图方式对操作步骤加以描述。实训内容一、 SELECT语句的基本应用。1) 在student_info表中查询本班同学的学号、姓名、性别、年龄、班号,并指定中文列名。命令如下:2) 在student_info表中查询评价(comment)字段不为空的学生学号、姓名、评价。命令如下:3) 在student_info表中查询家住咸阳的学生姓名和地址。命令如下:4) 在student_info表中查询与自己同姓同学的学号、姓名、班号。命令如下:5) 在student_info表中查询张、王、李、赵四姓同学的学号、姓名、班号,并按姓名升序排序。命令如下:6) 在course_info表中查询学分(course_score)在3-4之间课程的所有字段信息(使用通配符*)。命令如下:二、 分组统计查询。1) 在student_info表中查询各班的学生人数。命令如下:2) 在student_info表中查询各班的男女生人数。命令如下:3) 在result_info表中查询各同学选课的课程数、总成绩、平均成绩、最高分与最低分。命令如下:4) 在result_info表中查询各门课选课的学生数、平均成绩、最高分与最低分。命令如下:三、 多表查询。1) 连接student_info和class_info,查询出本班同学的学号,姓名,班级名。命令如下:2) 联接 student_info、result_info和course_info,查询出成绩大于等于90分同学的学号、姓名、课号、课名和成绩,并按成绩降序排序。命令如下:3) 联接 student_info、result_info、course_info和class_info。查询所有同学的班名、学号、姓名、课号、课名和成绩。命令如下:四、 子查询。1) 查询本人学号所在的班级名。命令如下:2) 查询选修了'XXXXX'课号(具体课号选择自己result_info表中某课号)的学生姓名。命令如下:3) 查询选修了'XXXXX'课名(具体课名选择自己表中已有课名)的学生所有字段信息。命令如下:4) 查询“信管130X”班(本班班名)同学的总分,并按总分降序排序。命令如下:项目 六 : 视图实训任务一、使用T-SQL语句创建视图。二、使用T-SQL语句修改视图。三、使用T-SQL语句通过视图更新表中数据。实训目的一、熟练掌握使用T-SQL语句创建、修改视图的方法。二、熟练掌握使用T-SQL语句通过视图更新表中数据的方法。实训要求一、所有操作以T-SQL语句方式完成。二、在实训报告的“步骤”栏,使用文字+截图方式对操作步骤加以描述。实训内容一、 创建视图。1) 创建基于student_info表的本班班级视图,显示班号为'X'的student_id,student_name,student_sex,class_no。命令如下:2) 创建基于3个表的成绩视图,显示学生的student_id,student_name,course_no,course_name,result。命令如下:二、 修改视图。1) 修改视图上例本班班级视图,给各列加上中文别名。命令如下:2) 修改视图上例成绩视图,只筛选出90100之间的成绩(包括90、100)。命令如下:三、 通过视图更新数据。1) 增加记录:通过上例本班班级视图增加一条记录('X99','悟空','男','X99')。命令如下:2) 修改记录:通过班级视图把刚刚增加那条记录的姓名修改为'八戒'。命令如下:3) 删除记录:通过班级视图删除刚刚增加并修改的那条记录。命令如下:项目 七 : 索引实训任务一、使用T-SQL语句创建索引。二、使用T-SQL语句删除索引。实训目的熟练掌握使用T-SQL语句创建和删除索引。实训要求一、所有操作以T-SQL语句方式完成。二、在实训报告的“步骤”栏,使用文字+截图方式对操作步骤加以描述。实训内容一、 创建非聚集索引。1) 为class_info表的class_name字段创建非聚集索引。命令如下:2) 为student_info表的student_name字段创建非聚集索引。命令如下:3) 为course_info表的course_name字段创建非聚集索引。命令如下:4) 为result_info表的student_id字段创建非聚集索引。命令如下:5) 为result_info表的course_no字段创建非聚集索引。命令如下:6) 为result_info表的result字段创建非聚集索引。命令如下:二、 删除索引。1) 删除result_info表student_id字段的非聚集索引。命令如下:2) 删除result_info表course_no字段的非聚集索引。命令如下:项目 八 :存储过程实训任务一、使用T-SQL语句创建存储过程。二、使用T-SQL语句修改存储过程。实训目的熟练掌握使用T-SQL语句创建、修改、执行存储过程的方法。实训要求一、所有操作以T-SQL语句方式完成。二、在实训报告的“步骤”栏,使用文字+截图方式对操作步骤加以描述。实训内容一、 创建并执行存储过程。1) 创建存储过程p_student_info,要求该存储过程能够查询出student_info表中所有学生的student_id、student_name、student_sex、class_no。命令如下:2) 执行上例存储过程p_student_info。命令如下:二、 修改并执行存储过程。1) 修改存储过程p_student_info,使其功能变为只查询'X'班(注:本班班号)的学生信息。命令如下:2) 执行上例存储过程p_student_info。命令如下:三、 带参存储过程。1) 创建带参存储过程p_addclass,功能为通过参数向class_info表中增加一条记录。命令如下:2) 执行带参存储过程p_addclass,通过参数向class_info表增加一条班级记录,参数值自拟。命令如下:附件 实训报告二级学院 专业名称 班 级 姓 名 学 号 陕西工业职业技术学院2014年12月项目名称: 日期:20 年 月 日至 月 日任务名称同组人员设备与工具目 的要 求步骤总结成绩批阅人时间