大数据库实验的报告材料材料word文档良心出品.docx

上传人:b****3 文档编号:26557146 上传时间:2023-06-20 格式:DOCX 页数:21 大小:113.88KB
下载 相关 举报
大数据库实验的报告材料材料word文档良心出品.docx_第1页
第1页 / 共21页
大数据库实验的报告材料材料word文档良心出品.docx_第2页
第2页 / 共21页
大数据库实验的报告材料材料word文档良心出品.docx_第3页
第3页 / 共21页
大数据库实验的报告材料材料word文档良心出品.docx_第4页
第4页 / 共21页
大数据库实验的报告材料材料word文档良心出品.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

大数据库实验的报告材料材料word文档良心出品.docx

《大数据库实验的报告材料材料word文档良心出品.docx》由会员分享,可在线阅读,更多相关《大数据库实验的报告材料材料word文档良心出品.docx(21页珍藏版)》请在冰豆网上搜索。

大数据库实验的报告材料材料word文档良心出品.docx

大数据库实验的报告材料材料word文档良心出品

编号:

2012版

 

《数据库原理及应用》

实验报告

 

实验时间:

2011-2012春季

实验班级:

自动化电气

实验报告总份(片)数:

七份(片)

实验教师:

 

实验中心508实验室

广东工业大学

广东工业大学实验报告

____自动化_学院___电气__专业____班成绩评定_______

学号_xxxxxxx姓名__xxx_(合作者____号____)教师签名_______

预习情况

操作情况

考勤情况

数据处理情况

实验一题目数据库系统设计第___周星期___第___节

一、实验目的与要求

掌握数据库的基本设计技术,熟悉数据库概念模型设计的每个任务步骤,并加深对关系数据库概念和特点的理解。

要求学生根据周围的实际情况自选一个小型的数据库应用项目并深入到应用项目的现实世界中进行系统分析和数据库设计,例如选择学生成绩管理系统、图书管理系统或仓库管理系统等。

学生成绩管理数据库的基本要求:

1.能够记录学生的基本信息,包括学号、姓名、性别、出生日期及所属学院;

2.能够记录课程的基本信息,包括课程号,课程名,先行课号;

3.能够记录学生选课情况及选修课程的成绩;

(学生成绩管理系统及图书管理系统数据库应用项目介绍可参见蔡延光《数据库原理及应用》第11章或苗雪兰《数据库原理及应用》第5章)。

给出各表的关系结构和表级约束、给出各属性域的描述(包括物理描述和语义描述);

二、实验方案

利用数据库设计的5个步骤(识别实体、确定关系、列出属性、确定键及属性的域属性的域),对学生成绩管理系统(必选)、图书管理系统(可选)使用鸭脚模型对学生选课系统(必选)及图书管理系统进行相关数据库的数据建模及设计。

●使用ChenERD或鸭脚模型表示所设计的概念模型;

●给出各表的关系结构和表级约束;

●给出各属性域的描述,包括物理描述和语义描述;

三、数据库应用项目进行概念模型设计实验结果和数据处理

1、ER数据建模

2、各表的关系结构和表级约束

学生(学号,姓名,性别,出生日期,学院)

课程(课程号,课程名,先行课号)

选课(学号,课程号,成绩)

其中学号必须存在于学生.学号,课程号必须存在于课程.课程号

3、各属性域的描述

学生表

字段名

类型

约束

学号

char(5)

主键

姓名

varchar(20)

NULL

性别

char

(2)

NULL

出生日期

Smalldatetime

NULL

所在学院

varchar(15)

NULL

选课表

字段名

类型

约束

课程号

char(8)

主键

课程名

varchar(15)

NULL

先行课程号

char(8)

NULL

成绩表

字段名

类型

约束

学号

char(5)

主键1.1(外键)

课程号

char(8)

主键1.2(外键)

成绩

Int

NULL

四、结论

数据库张表既存储数据,也存储关系;每个表必要要有自己的主键;外键必须参照完整性约束。

五、问题与讨论

1、关系数据库中如何保存实体之间的关系?

答:

通过创建关联表,建立保存实体之间的关系

2、学生选课系统中属性学号、课程号及成绩采用哪种数据类型更好,数值型还是字符型?

为什么?

答:

采取数据型更好。

第一,这些属性一般定义为数值型是很常见的;第二,属性学号以及课程号在自己所在的表里做primarykey,而primarykey一般多为数值型。

3、在所设计的数据模型中体现的业务规则是什么?

答:

一个学生可以选多门课程;一个学生可以不选课。

;一门课程可以有多个学生选;一门课程可以没有学生选

广东工业大学实验报告

____自动化___学院___电气____专业_____班成绩评定_______

学号姓名__(合作者____号____)教师签名______

预习情况

操作情况

考勤情况

数据处理情况

实验二题目数据库的定义实验第___周星期___第___节

一、实验目的与要求

要求熟练掌握和使用SQL、SQLServer企业管理器创建数据库、表、索引和修改表结构,并学会使用SQLServer查询分析器接受SQL语句和进行结果分析。

二、实验方案

1、在企业管理器中创建及打开数据库,在“新建数据库”时指明数据文件及事务日志的位置;

2、在SQLServer企业管理器中用SQL语句实现以下各表:

学生(学号,姓名,性别,出生日期,所属学院);

课程(课程号,课程名,先行课号);

选课(学号,课程号,成绩);

3、建立库、表和表间的联系,选择合适的数据类型,定义必要的列级约束(包括性别约束和成绩约束)和表级约束。

创建数据库中的表后,在查询分析器的对象浏览器中可见该表及其所拥有的约束:

学生:

2课程:

1选课:

4

三、实验结果和数据处理

CREATETABLEStudent

(学号char(10)primarykey,

姓名varchar(20)unique,

性别char

(2)check(性别in('男','女')),

出生日期char(20),

所属学院varchar(20),

createtablecourse

(课程号char(10)primarykey,

课程名char(20),

先行课号int

createtablescore

(学号char(10)foreignkey(学号)referencesstudent(学号),

课程号char(10)foreignkey(课程号)referencescourse(课程号),

成绩intcheck(成绩>=0and成绩<=100)

constraints_c_primprimarykey(学号,课程号),

四、结论

SQL的数据库定义的功能包括定于数据库、基本表、视图和索引,SQL一般不提供修改试图定义及修改索引定义的操作。

在定义基本表的同时,还可以定义与该表相关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中。

五、问题与讨论

1、举例说明创建外键的SQL语句中的参照表和被参照表各指什么?

ONDELETECASCADE关键字对删除记录有何影响?

学生表(学号,姓名)、成绩表(学号,成绩),这两个表在学号上建立外键关系的话,学生表是被参照表,成绩表是参照表。

ONDELETECASCADE是级联删除,如果删除学生表里的b学号的记录,那成绩表里所有学号为b的记录也会同时被删除。

问题:

中英文的符号经常打错

解决:

一遇到要打符号的问题,就变得小心翼翼

广东工业大学实验报告

____自动化___学院_______专业____班成绩评定_______

学号_姓名__(合作者____号____)教师签名______

预习情况

操作情况

考勤情况

数据处理情况

实验三题目数据库的建立和维护实验第___周星期___第___节

一、实验目的与要求

要求熟练掌握和使用SQL、SQLServer企业管理器向数据库输入数据、修改数据和删除数据操作。

二、实验方案

通过SQLServer企业管理器实现对学生成绩管理数据库的数据增加、数据删除和数据修改操作。

要求每个表的记录在10行以上,可根据查询要求增加或完善表中记录;输入数据检验各数据约束的限制;数据更改和数据删除时检验外码约束;

三、实验结果和数据处理

insertintoStudent(学号,姓名,性别,出生日期,所属学院)values('001','张一','男','19910101','计算机')

insertintoStudent(学号,姓名,性别,出生日期,所属学院)values('001','张二','男','19920101','自动化')

insertintoStudent(学号,姓名,性别,出生日期,所属学院)values('001','张三','女','19930101','土木')

insertintoStudent(学号,姓名,性别,出生日期,所属学院)values('001','张四','男','19940101','轻工化工')

insertintoStudent(学号,姓名,性别,出生日期,所属学院)values('001','张五','女','19950101','外国语')

insertintoStudent(学号,姓名,性别,出生日期,所属学院)values('001','张六','男','19960101','物理')

insertintoStudent(学号,姓名,性别,出生日期,所属学院)values('001','王七','女','19970101','计算机')

insertintoStudent(学号,姓名,性别,出生日期,所属学院)values('001','张八','男','19980101','艺术')

insertintoStudent(学号,姓名,性别,出生日期,所属学院)values('001','张九','女','19990101','环境')

insertintoStudent(学号,姓名,性别,出生日期,所属学院)values('001','张十','男','20000101','数学系')

 

insertintocourse(课程号,课程名号,先行课号)values('001','天文','1')

insertintocourse(课程号,课程名号,先行课号)values('002','经文','2')

insertintocourse(课程号,课程名号,先行课号)values('003','易经','3')

insertintocourse(课程号,课程名号,先行课号)values('004','高等数学','4')

insertintocourse(课程号,课程名号,先行课号)values('005','佛山无影脚','5')

insertintocourse(课程号,课程名号,先行课号)values('006','葵花宝典','6')

insertintocourse(课程号,课程名号,先行课号)values('007','排山倒海','7')

insertintocourse(课程号,课程名号,先行课号)values('008','金刚不坏','8')

insertintocourse(课程号,课程名号,先行课号)values('009','金枪不倒','9')

insertintocourse(课程号,课程名号,先行课号)values('010','兰花指','10')

 

insertintoscore(学号,课程号,成绩)values('001','010','80')

insertintoscore(学号,课程号,成绩)values('002','009','81')

insertintoscore(学号,课程号,成绩)values('003','008','82')

insertintoscore(学号,课程号,成绩)values('004','007','83')

insertintoscore(学号,课程号,成绩)values('005','001','84')

insertintoscore(学号,课程号,成绩)values('006','005','null')

insertintoscore(学号,课程号,成绩)values('007','004','86')

insertintoscore(学号,课程号,成绩)values('008','001','89')

insertintoscore(学号,课程号,成绩)values('009','002','88')

insertintoscore(学号,课程号,成绩)values('010','001','89')

 

课程表

成绩表

学生表

数据更改

updatescoreset成绩='91'where学号='001'

数据删除

Deletefromscorewhere学号=’001’

四、结论

在输入数据时,数据必须按照前面所指定的数据类型进行输入,超出数据类型输入无效。

可以通过用插入数据指令来实现对表格数据的输入,还可以通过使用查询分析器来达到显示和修改数据的目的。

五、问题与讨论

1.举例说明如何在输入数据时检验各数据约束的限制?

比如一个学生信息表中,会有性别列,而且性别只能是男或者女,这时候就可以使用检查约束,检查输入的值是否为男或者女,如果不是这两个值则会报错!

2.举例说明如何在数据更改和数据删除时检验外码约束?

举例说明创建外键时有无ONDELETECASCADE关键字对删除记录有何影响?

学生表(学号,姓名)、成绩表(学号,成绩),如果把学生表中的学号删除了,那么成绩表中的成绩也会删除。

ONDELETECASCADE指定如果试图删除某行,而该行含有由其它表的现有行中的外键所引用的键,则也将删除所有包含那些外键的行。

如果在目标表上也定义了级联引用操作,则对从那些表中删除的行同样采取指定的级联操作。

广东工业大学实验报告

____自动化___学院_______专业____班成绩评定_______

学号_姓名__(合作者____号____)教师签名______

预习情况

操作情况

考勤情况

数据处理情况

实验四题目数据库的简单查询和连接查询实验第___周星期___第___节

一、实验目的与要求

要求熟练掌握和使用SQL、SQLServer企业管理器向数据库输入数据、修改数据和删除数据操作。

二、实验方案

通过SQLServer查询分析器实现对学生成绩管理数据库的以下简单查询和连接查询:

1.求数学系学生的学号和姓名;

2.求选修了课程的学生学号;

3.求选修课程001的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列;

4.求选修课程001且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出;

5.求数学系或计算机系姓张的学生的信息;

6.求缺少了成绩的学生的学号和课程号;

7.查询每门课程的先行课程名;

三、实验结果和数据处理

1.select姓名,学号fromStudentwhere所属学院='数学系'

2.select学号fromscorewhere课程号isnotnull

3.select学号,成绩fromscorewhere课程号='001'

orderby成绩desc,学号

4.select学号,0.8*成绩fromscorewhere(课程号='001')and(成绩>=80and成绩<=90)

5.select*fromStudentwhere(所属学院='数学系'or所属学院='计算机')and姓名like'张%'

6.select学号,课程号fromscorewhere成绩isnull

7.select课程名,先行课号fromcourse

四、结论

关系数据库方法的主要优点之一就是它能够十分灵活地检索数据。

基本上能够以任何方式查看数据库中的数据。

关键在于能够正确写出SQL语言。

在关系数据库中有三个核心的检索操作:

选择、投影和连接。

五、问题与讨论

1、如何提高数据查询和连接速度?

对索引优化,建索引的选择必须结合SQL查询、修改、删除语句的需要,一般的说法是在WHERE里经常出现的字段建索引。

如果在WHERE经常是几个字段一起出现而且是用

AND连接的,那就应该建这几个字段一起的联合索引,而且次序也需要考虑,一般是最常出现的放前面。

广东工业大学实验报告

______________学院________________专业_____班成绩评定_______

学号__________姓名__________(合作者____号____)教师签名_______

预习情况

操作情况

考勤情况

数据处理情况

实验五题目数据库的嵌套查询实验第___周星期___第___节

一、实验目的与要求

进一步掌握SQLServer查询分析器的使用方法,加深SQL语言的嵌套查询语句的理解。

二、实验方案

通过SQLServer查询分析器实现对数据库的以下嵌套查询,并尝试用多种形式表示实验中的查询语句,并进行比较。

1、求选修了高等数学的学生学号和姓名;

2、求C1课程的成绩高于张五的C1课程成绩的学生学号和成绩;

3、求选修C2课程的学生姓名;

4、求没有选修C2课程的学生姓名;

5、求选修C1课程而没有选修C2课程的学生姓名;

三、实验结果和数据处理

1.selectStudent.学号,Student.姓名fromStudent,course,score

whereStudent.学号=score.学号

andcourse.课程号=score.课程号

andcourse.课程名='高等数学'

2.select学号,成绩fromscorewhere课程号='001'and成绩>

(selectscore.成绩fromStudent,score

whereStudent.姓名='张五'

andscore.课程号='001'

andStudent.学号=score.学号)

3.selectStudent.姓名fromStudent,course,score

whereStudent.学号=score.学号

andcourse.课程号=score.课程号

andcourse.课程号='002'

4.selectStudent.姓名fromStudent,course,score

whereStudent.学号=score.学号

andcourse.课程号=score.课程号

andcourse.课程号!

='002'

5.selectStudent.姓名fromStudent,score

whereStudent.学号=score.学号

andscore.课程号='001'

andscore.课程号!

='002'

四、结论

如何提高数据查询和连接速度?

对索引优化,建索引的选择必须结合SQL查询、修改、删除语句的需要,一般的说法是在WHERE里经常出现的字段建索引。

如果在WHERE经常是几个字段一起出现而且是用

AND连接的,那就应该建这几个字段一起的联合索引,而且次序也需要考虑,一般是最常出现的放前面。

五、问题与讨论

1.嵌套查询和连接查询有何区别?

在本实验的查询任务中,哪些是可以由嵌套查询和连接查询实现?

当查询同时涉及两个以上的表时,称为连接查询。

连接查询包括等值连接查询、自然连接查询、非等值连接查询、自身连接查询、外连接查询和复合条件查询。

在SQL语言中,一个SELECT-FROM-WHERE语句称为一个查询块,将一个查询块嵌套在另外一个查询块的WHERE字句或HAVING短语的条件中的查询称为嵌套查询。

连接查询:

求选修了高等数学的学生学号和姓名,求选修C2课程的学生姓名。

嵌套查询:

求C1课程的成绩高于张三的C1课程成绩的学生学号和成绩,求选修C1课程而没有选修C2课程的学生姓名

广东工业大学实验报告

____学院_____专业_____班成绩评定_______

学号__姓名_(合作者____号____)教师签名_______

预习情况

操作情况

考勤情况

数据处理情况

实验六数据库统计查询实验第___周星期___第___节

一、实验目的与要求

熟悉掌握SQLServer查询分析器的使用方法,加深对SQL语言查询语句的理解,熟悉掌握数据查询中的分组和统计的操作方法。

二、实验方案

通过SQLServer查询分析器实现以下对数据库的统计查询;

1.用SQL语句实现学生人数的统计;

2.用SQL语句实现计算机系学生人数的统计;

3.用SQL语句实现各系学生人数的统计;

4.用SQL语句统计选修某课程学生的人数;

5.用SQL语句统计选修了课程的学生的人数;

6.用SQL语句统计被选课程及选修该课程的人数;

7.用SQL语句统计每个学生全部课程的平均成绩;

8.用SQL语句统计选修课超过3门课的学生学号;(可选)

三、实验结果和数据处理

1.selectcount(*)as学生人数fromStudent

2.selectcount(*)as学生人数fromStudentwhere所属学院='计算机'

3.select所属学院,count(*)as学生人数fromStudentgroupby所属学院

4.select课程号,count(*)as学生人数fromscoregroupby课程号

5.selectcount(*)as学生人数fromscorewhere课程号isnotnull

6.select课程号,count(*)as学生人数fromscoregroupby课程号

 

7.select学号,avg(成绩)as平均成绩fromscoregroupby学号

8.selectscore.学号as学生学号fromscoregroupbyscore.学号havingcount(*)>3

表示没有选课超过3门的学生

四、结论

SQLServer包括很多内置的函数。

它们中的一些被称为聚集函数,聚集函数在结果列表中提供汇总值。

分组查询使用GROUPBY字句。

HAVING字句用于筛选分组的最终结果,只有满足HAVING字句指定条件的组才输出。

五、问题与讨论

1、试用GROUPBY(分组条件)字句后,语句中的统

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1