习题四:建立应用数据库
一、目的:
分析数据库的存储结构和性能要求,掌握数据库、数据表的创建,掌握界面和T-SQL两种方法。
二、数据库建立练习:
创建一数据库,名称为“成绩管理”,存放在D盘自已的文件夹中。
在“成绩管理”,包括四个表:学生表(Student)、课程表(Course)、班级表(Class)以及成绩表(Grade)。四个表的结构如下所示,用SQL语句创建四个表。
成绩管理数据库的表结构
表(一) 学生表 表(三) 专业表
属性名
数据类型
可否为空
含义
属性名
数据类型
可否为空
含义
Sno
Char(7)
否
学号(唯一)
spno
Char(5)
否
专业号(唯一)
Sname
VarChar(20)
否
姓名
Spname
VarChar(20)
否
专业名
Ssex
Char(2)
否
性别
pno
Char(2)
可
系部号
Sage
Smalldatetime
可
出生年月
spno
Char(5)
否
专业号
Inyear
Char(4)
否
入校年份
表(二)课程表 表(四) 选课表
属性名 |
数据类型 |
可否为空 |
含义 |
|
属性名 |
数据类型 |
可否为空 |
含义 |
Cno |
Char(1) |
否 |
课程号(唯一) |
Sno |
Char(7) |
否 |
学号 |
|
Cname |
VarChar(20) |
否 |
课程名称 |
Cno |
Char(1) |
否 |
课程号 |
|
Credit |
Smallint |
可 |
学分 |
Gmark |
Numeric |
可 |
成绩 |
|
tno |
Char(3) |
可 |
教师号 |
|
|
|
|
|
要求:
1、建立上面个表
2、标识唯一的为主关键字。
3、建立个表之间的外键
4、输入各表的如下记录数据:
成绩管理数据库的表数据
表(一) 学生表
Sno
Sname
Ssex
Sage
spno
Inyear
2000101
李勇
男
1980-7-1
00311
1999
2000102
刘诗晨
女
1981-8-12
00311
1999
2000103
王一鸣
男
1982-12-20
00312
2001
2000104
张婷婷
女
1985-5-9
00312
2000
2001101
李敏
女
1989-3-9
01311
1999
2001102
贾向男
女
1982-9-3
01311
2000
2001103
陈李宝
男
1981-5-7
01311
1999
2001104
自已名称
自已性别
1986-8-6
01311
2001
表(二) 课程表
Cno
Cname
Credit
tno
1
数据库
4
101
2
离散数学
3
102
3
管理信息系统
2
103
4
操作系统
4
104
5
数据结构
4
105
6
数据处理
2
106
7
C语言
4
107
表(三) 专业表
spno
Spname
pno
00311
计算机软件
10
00312
计算机应用
10
01311
软件工程
10
01312
制图
11
01313
电工
12
表(四) 选课表
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5、在S中插入一个记录(2003002,’李明’,’男’,20,’03312’)。
6、在S中插入’03312’班学号为2003005、姓名为’刘海’的学生记录。
7、在S中将学号为2003015的学生姓名改为’张安’。
8、在SC中将所有’2003001’学生的成绩加3分。
9、在S中删除学号为2003007的学生记录。
10、在S中删除姓’王’的学生记录。
11、保存SQL脚本:
用SSMS和T-SQL语句两种方法做,并把创建“成绩管理”库及其中四个表的T-SQL脚本分别以文件名“实验二作业”存在D盘下的自已的文件夹中。
12、分别用SSMS和T-SQL语句实现如下操作,并把T-SQL脚本和操作的结果画面全部保存在”学号姓名实验八作业.doc”中(当堂交作业):定义两个用户自定义类型:stunum: varchar型,长度为9,cournum: char 型,长度为5,给学生表、专业表、课程表、选课表中的学号设置为stunum类型,给课程号设置为cournum类型。
13、通过上例写出用户自定义类型的作用。
14、给现有的学生表、专业表、课程表、选课表添加主键(即主键约束).
15、用关系图方式给该四个表设置关联(即外键约束).
16、删除除四个表之间的关联.
17、T-SQL语句设置四个表之间的关联(提示:用添加约束语句,见教案),再用关系图方式检查是否已正确设置关联.
18、四个表设置关联后,检查更新和删除的效果:1)更新专业表的00311专业号为00211;
2)删除学生表的李勇的记录;3)删除课程表的001号课程记录
19、用T-SQL语句创建学生表,表中字段及其数据类型如下所示:学生(学号char(10),姓名char(8),性别char(2),政治面貌char(20)),其中学号字段设置为主键字段。用SQL语句将学生表的政治面貌字段数据类型改为char(26)。用SQL语句为学生表增加一个新的字段:班级char(20)。用SQL语句删除学生表的班级字段。
20、使用索引有哪些优点?
21、按照存储结构划分,索引分为哪两类?各有何特点?
22、数据完整性可分为哪几种?在实际应用中它们各起到什么作用?
23、SQL Server 2000中有多少种约束?其作用分别为?
24、设有如下关系表S、C、SC:S(SNO,SNAME,SEX,SAGE,SCLASS),C(CNO, CNAME),SC(SNO, CNO, GRADE),其中SNO为学号,SNAME为姓名,SEX为性别,SAGE为年龄,SCLASS为班号,CNO是课程号,CNAME是课程名称,GRADE是成绩。1)请合理设置每张表的主键,并建立三张表之间的关系。2)请在SC表中创建一个CHECK约束,保证成绩在0-100分之间。
三、学生设计项目练习
1、根据本组项目系统的应用环境,分析数据库可能数据量和日常数据增长量;
2、数据库各类数据的安全级别;
3、分析数据库数据的更新频率;
4、分析数据库数据的备份级别;
5、根据上面信息规划数据库大小和增长率;
6、根据上面信息建立文件组,进行归类管理,并写建立出各文件组的出发点
7、分析本组课外项目,并用表绘制关系属性的详细描述说明;
8、分析业务规则,分析关系属性值的约束要求,并用文字说明;
9、建立数据表和数据完整性,保存建立脚本,并给出项的中文注释。
10、给出一份数据库生成的完整关系图。
11、分析超市销售管理系统中连接和查询频度较高的字段;为查询频度高的字段建立索引,保存建立脚本;
12、写出索引维护的管理规则。
13、在查询设计器下执行某一频度高的查询,显示执行计划。