1、实用标准文案编号: 2012版数据库原理及应用实验报告实验时间: 2011-2012春季 实验班级: 自动化电气 实验报告总份(片)数: 七 份(片)实验教师: 实验中心 508 实验室广东工业大学精彩文档广东工业大学实验报告_自动化_学院_电气_专业_班 成绩评定_学号_xxxxxxx姓名_xxx_(合作者_号_) 教师签名_预习情况操作情况考勤情况数据处理情况实验 一 题目 数据库系统设计 第_周星期_第_节一、 实验目的与要求掌握数据库的基本设计技术,熟悉数据库概念模型设计的每个任务步骤,并加深对关系数据库概念和特点的理解。要求学生根据周围的实际情况自选一个小型的数据库应用项目并深入到应
2、用项目的现实世界中进行系统分析和数据库设计,例如选择学生成绩管理系统、图书管理系统或仓库管理系统等。学生成绩管理数据库的基本要求:1. 能够记录学生的基本信息,包括学号、姓名、性别、出生日期及所属学院;2. 能够记录课程的基本信息,包括课程号,课程名,先行课号;3. 能够记录学生选课情况及选修课程的成绩;(学生成绩管理系统及图书管理系统数据库应用项目介绍可参见蔡延光数据库原理及应用第11章或苗雪兰数据库原理及应用第5章)。给出各表的关系结构和表级约束、给出各属性域的描述(包括物理描述和语义描述);二、 实验方案利用数据库设计的5个步骤(识别实体、确定关系、列出属性、确定键及属性的域属性的域),
3、对学生成绩管理系统(必选)、图书管理系统(可选)使用鸭脚模型对学生选课系统(必选)及图书管理系统进行相关数据库的数据建模及设计。l 使用ChenERD或鸭脚模型表示所设计的概念模型;l 给出各表的关系结构和表级约束;l 给出各属性域的描述,包括物理描述和语义描述;三、 数据库应用项目进行概念模型设计实验结果和数据处理1、ER数据建模2、各表的关系结构和表级约束学生(学号,姓名,性别,出生日期,学院)课程(课程号,课程名,先行课号)选课(学号,课程号,成绩)其中学号必须存在于学生.学号,课程号必须存在于课程.课程号3、各属性域的描述学生表字段名类型约束学号char(5)主键姓名varchar(2
4、0)NULL性别char(2) NULL 出生日期SmalldatetimeNULL所在学院varchar(15)NULL 选课表字段名类型约束课程号char(8)主键课程名varchar(15)NULL先行课程号char(8)NULL成绩表字段名类型约束学号char(5)主键1.1(外键)课程号char(8)主键1.2(外键)成绩IntNULL四、 结论数据库张表既存储数据,也存储关系;每个表必要要有自己的主键;外键必须参照完整性约束。五、 问题与讨论1、 关系数据库中如何保存实体之间的关系?答:通过创建关联表,建立保存实体之间的关系2、 学生选课系统中属性学号、课程号及成绩采用哪种数据类型
5、更好,数值型还是字符型?为什么?答:采取数据型更好。第一,这些属性一般定义为数值型是很常见的;第二,属性学号以及课程号在自己所在的表里做primary key,而primary key一般多为数值型。3、 在所设计的数据模型中体现的业务规则是什么?答:一个学生可以选多门课程;一个学生可以不选课。;一门课程可以有多个学生选;一门课程可以没有学生选广东工业大学实验报告_自动化_学院_ 电气_专业_ _班 成绩评定_学号 姓名_ _ (合作者_号_) 教师签名_预习情况操作情况考勤情况数据处理情况实验 二 题目 数据库的定义实验 第_周星期_第_节一、 实验目的与要求要求熟练掌握和使用SQL、SQL
6、 Server企业管理器创建数据库、表、索引和修改表结构,并学会使用SQL Server查询分析器接受SQL语句和进行结果分析。二、 实验方案1、 在企业管理器中创建及打开数据库,在“新建数据库”时指明数据文件及事务日志的位置;2、 在SQL Server企业管理器中用SQL语句实现以下各表:学生(学号,姓名,性别,出生日期,所属学院);课程(课程号,课程名,先行课号);选课(学号,课程号,成绩);3、建立库、表和表间的联系,选择合适的数据类型,定义必要的列级约束(包括性别约束和成绩约束)和表级约束。创建数据库中的表后,在查询分析器的对象浏览器中可见该表及其所拥有的约束:学生:2课程:1选课:
7、4三、 实验结果和数据处理CREATE TABLE Student( 学号 char(10) primary key , 姓名 varchar(20) unique, 性别 char(2) check (性别 in (男 ,女) ), 出生日期 char(20), 所属学院 varchar(20),)create table course(课程号 char (10) primary key , 课程名 char (20), 先行课号 int )create table score( 学号 char (10) foreign key (学号) references student (学号) ,
8、课程号 char(10) foreign key (课程号) references course (课程号), 成绩 int check (成绩=0 and 成绩 =80 and 成绩 ( select score.成绩 from Student , score where Student.姓名=张五and score.课程号=001and Student.学号=score.学号)3.select Student.姓名 from Student, course, score where Student.学号 = score.学号 and course.课程号=score.课程号and cour
9、se.课程号=0024. select Student.姓名 from Student, course, score where Student.学号 = score.学号 and course.课程号=score.课程号and course.课程号!=0025 .select Student.姓名 from Student, score where Student.学号 = score.学号 and score.课程号=001and score.课程号!=002四、 结论如何提高数据查询和连接速度? 对索引优化,建索引的选择必须结合SQL查询、修改、删除语句的需要,一般的说法是在WHERE里
10、经常出现的字段建索引。如果在WHERE经常是几个字段一起出现而且是用AND连接的,那就应该建这几个字段一起的联合索引,而且次序也需要考虑,一般是最常出现的放前面。 五、 问题与讨论1.嵌套查询和连接查询有何区别?在本实验的查询任务中,哪些是可以由嵌套查询和连接查询实现?当查询同时涉及两个以上的表时,称为连接查询。连接查询包括等值连接查询、自然连接查询、非等值连接查询、自身连接查询、外连接查询和复合条件查询。在SQL语言中,一个SELECT-FROM-WHERE语句称为一个查询块,将一个查询块嵌套在另外一个查询块的WHERE字句或HAVING短语的条件中的查询称为嵌套查询。连接查询:求选修了高等
11、数学的学生学号和姓名,求选修C2课程的学生姓名。嵌套查询:求C1课程的成绩高于张三的C1课程成绩的学生学号和成绩,求选修C1课程而没有选修C2课程的学生姓名广东工业大学实验报告_ _学院_ _专业_ _班 成绩评定_学号_ _姓名_ (合作者_号_) 教师签名_预习情况操作情况考勤情况数据处理情况实验 六 数据库统计查询实验 第_周星期_第_节一、 实验目的与要求熟悉掌握SQL Server查询分析器的使用方法,加深对SQL语言查询语句的理解,熟悉掌握数据查询中的分组和统计的操作方法。二、 实验方案通过SQL Server查询分析器实现以下对数据库的统计查询;1. 用SQL语句实现学生人数的统
12、计;2. 用SQL语句实现计算机系学生人数的统计;3. 用SQL语句实现各系学生人数的统计;4. 用SQL语句统计选修某课程学生的人数;5. 用SQL语句统计选修了课程的学生的人数;6. 用SQL语句统计被选课程及选修该课程的人数;7. 用SQL语句统计每个学生全部课程的平均成绩;8. 用SQL语句统计选修课超过3门课的学生学号;(可选)三、实验结果和数据处理1. select count(*) as 学生人数 from Student2. select count(*) as 学生人数 from Student where 所属学院=计算机3. select 所属学院, count(*) a
13、s 学生人数 from Student group by 所属学院4. select 课程号, count(*) as 学生人数 from score group by 课程号5. select count(*) as 学生人数 from score where 课程号 is not null6. select 课程号, count(*) as 学生人数 from score group by 课程号7. select 学号 , avg(成绩) as 平均成绩 from score group by 学号8. select score.学号 as 学生学号 from score group b
14、y score.学号 having count(*)3表示没有选课超过3门的学生四、结论SQL Server包括很多内置的函数。它们中的一些被称为聚集函数,聚集函数在结果列表中提供汇总值。分组查询使用GROUP BY字句。HAVING字句用于筛选分组的最终结果,只有满足HAVING字句指定条件的组才输出。五、问题与讨论1、试用GROUP BY(分组条件)字句后,语句中的统计函数的运行结果有什么不同? 运行结果会根据GROUP BY字句中的条件进行一定的排列广东工业大学实验报告_自动化_学院_ _专业_ _班 成绩评定_学号_ 姓名_ _(合作者_号_) 教师签名_预习情况操作情况考勤情况数据处
15、理情况实验七题目 数据库的视图和图标的定义及使用实验 第_周星期_第_节一、 实验目的与要求掌握SQL Server中视图的创建和使用,加深对视图和SQL Server图表作用的理解。二、 实验方案通过SQL Server实现数据库的视图的创建及使用,完成以下任务:1、建立计算机系学生的视图;2、由学生、课程和选课三个表,定义一个计算机系的学生成绩视图,其属性包括学号、姓名、课程名和成绩;3、将学生的学号、总成绩、平均成绩定义成一个视图;4、统计学生的学号、姓名、总成绩及平均成绩(可利用3的视图或group by 学生.学号,学生.姓名);三、实验结果和数据处理1. create view 视
16、图 as select 学号,姓名,性别,出生日期,所属学院 from Student where 所属学院=计算机2. create view 视图2 as select Student.学号,姓名,课程名,成绩 from Student,course,score where Student.学号 = score.学号 and course.课程号=score.课程号 Student.所属学院=计算机3. create view 学生个人成绩 as select 学号, sum (成绩)AS 总成绩,avg(成绩) as 平均成绩 from score group by 学号4. creat
17、e view 学生个人成绩2 as select score.学号,student.姓名, sum (成绩)AS 总成绩,avg(成绩) as 平均成绩 from score,student where student.学号=score.学号 group by score.学号,student.姓名 四、结论视图是关系数据库系统提供给用户以多角度观察数据库中数据的一种重要方法。视图就是从一个或几个基本表(或视图)导出的虚表。视图在概念上与基本表等同,视图一经定义,则可以和基本表一样进行查询、删除、更新等操作,而且用户可以在视图上再定义视图。五 问题与讨论1.为什么要建立视图?视图和基本表有什么不同?答: 视图能够简化用户的操作,视图能够以多角度观察数据库中的数据,视图对重构数 据库提供了一定程度的逻辑独立性,视图能够对机密数据提供安全保护,适当的利用视图可以更加清晰的表达查询。视图可以理解为保存后的查询,它保存的是实在表格经查询后的结果;基本表是指数据库中实在的表格,它存储的就是数据本身。基本表是视图的来源和基础,视图丰富了基本表的表达。2.group by语句在使用时需要注意什么事项?答:GROUP BY 语句中的表达式必须与选择列表表达式完全匹配。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100