《数据库认证》大作业软件测试结果.docx

上传人:b****5 文档编号:6273883 上传时间:2023-01-05 格式:DOCX 页数:28 大小:58.43KB
下载 相关 举报
《数据库认证》大作业软件测试结果.docx_第1页
第1页 / 共28页
《数据库认证》大作业软件测试结果.docx_第2页
第2页 / 共28页
《数据库认证》大作业软件测试结果.docx_第3页
第3页 / 共28页
《数据库认证》大作业软件测试结果.docx_第4页
第4页 / 共28页
《数据库认证》大作业软件测试结果.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

《数据库认证》大作业软件测试结果.docx

《《数据库认证》大作业软件测试结果.docx》由会员分享,可在线阅读,更多相关《《数据库认证》大作业软件测试结果.docx(28页珍藏版)》请在冰豆网上搜索。

《数据库认证》大作业软件测试结果.docx

《数据库认证》大作业软件测试结果

华东交通大学

《数据库认证》课程大作业

——Northwind数据库综合应用设计方案

 

专业班级:

学院:

学生姓名:

学号:

分数:

学期:

2011-2012

(2)

任课教师:

刘常昱

Northwind数据库综合应用设计方案

一、Northwind数据库的分析

1)对Northwind数据库的各对象(包括数据库表、存储过程、视图、触发器等)进行分析,描述各自的大致内容和实现的功能。

1、创建数据库

createdatabasestudent--创建数据库:

student

onprimary

name=student,

filename='C:

\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\student.mdf',

size=10,

maxsize=unlimited,

filegrowth=5)

logon

name=student_log,

filename='C:

\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\student_log.LDF

size=5,

maxsize=100,

filegrowth=10%)

2、建表

createtableStudentInformation--学生信息表

(cStuIdchar(8)notnullconstraintpkStuIdprimarykey,--学生学号,设置为主键,使用了主关键字约束

cStuNamechar(8)notnull,--学生姓名

cSexchar

(2)check(cSex='男'orcSex='女'),--性别,性别只能取男或者女,使用了检查约束

cStuNativechar(20),--籍贯

sStuBirthdaysmalldatetime,--出生日期

cDepartmentIdchar(6)notnullreferencesDepartment(cDepartmentId),--院系编号,设置为外键,使用了外关键字约束

cSpecialityIdchar(8)notnullreferencesSpeciality(cSpecialityId),--专业编号,设置为外键,使用了外关键字约束

cClassNumchar(4),--班号

sEnterTimesmalldatetime,--入学时间

vStuAdrressvarchar(40),--学生家庭地址

vStuTelvarchar(20)--学生电话号码

createtableCourse--课程信息表

(cCourseIdchar(10)notnullconstraintpkCourseIdprimarykey,--课程编号,设置为主键,使用了主关键字约束

cSpecialityIdchar(8)notnullreferencesSpeciality(cSpecialityId),--专业编号,设置为外键,使用了外关键字约束

cCourseNamechar(20)notnullunique,--课程名称,使用unique进行唯一性约束

cCourseTypeIdchar(5)notnullreferencesCourseType(cCourseTypeId),--课程类型编号,设置为外键,使用了外关键字约束

iLectureint,--授课学时

tSemestertinyint,--开课学期

fCreditfloat,--课程学分

…….

3、视图

(1)创建视图

--建立学院代码为‘610000’教师的视图,包括教师的教师编号、姓名、性别和出生年月.使用withcheckoption可选项,是对视图进行更新操作(增加、删除、修改)时,要保证更新操作的行满足视图定义中的条件表达式

createviewTeacherInformation_view

as

selectcTeacherId,cTeacherName,sTeacherBirthday

fromTeacherInformationwherecDepartmentId='610000'

withcheckoption

select*fromTeacherInformation_view

--建立课程1(上课编号)的学生花名册的视图,该花名册包括学生的学号、姓名、专业名称和这门课程的成绩

createviewCourse1_StudentInformation_view

as

selectStudent_Course.cStuId,cStuName,cSpecialityName,fStuScorefrom

StudentInformation,Speciality,Student_Course

whereStudent_Course.sTeacherCourseId=1andStudent_Course.cStuId=StudentInformation.cStuId

andStudentInformation.cSpecialityId=Speciality.cSpecialityId

withcheckoption

select*fromCourse1_StudentInformation_view

(2)修改视图

--修改视图TeacherInformation_view,使其包括教师的职称这一列

alterviewTeacherInformation_view

as

selectcTeacherId,cTeacherName,cSex,sTeacherBirthday,cProfessionName

fromTeacherInformation,ProfessionwherecDepartmentId='610000'

andTeacherInformation.tProfessionId=Profession.tProfessionId

select*fromTeacherInformation_view

(3)删除视图

--删除视图TeacherInformation_view

dropviewTeacherInformation_view

4、存储过程

(1)创建和执行存储过程

--创建一个无参的存储过程,完成的功能是在表StudentInformation、Course、Student_Course、Teacher_Course中查询以下字段:

班级、学号、姓名、性别、课程名称、分数

createprocedureStuScoreInfo

as

begin

selectStudentInformation.cClassNumas班级,StudentInformation.cStuIdas学号,cStuNameas姓名,cSexas性别,cCourseNameas课程名称,fStuScoreas分数

fromStudentInformation,Course,Student_Course,Teacher_Course

whereStudentInformation.cStuId=Student_Course.cStuIdandStudent_Course.sTeacherCourseId=Teacher_Course.sTeacherCourseId

andTeacher_Course.cCourseId=Course.cCourseId

End

…..

(2)删除存储过程

--删除存储过程StuScoreInfo

dropprocedureStuScoreInfo

--删除存储过程Stu_Age

dropprocedureStu_Age

--删除存储过程list_student_department

dropprocedurelist_student_department

5、触发器

(1)--创建一个after触发器,要求实现以下功能:

在StudentInformation表上创建一个删除类型的触发器Stu_Delete,当在StudentInformation表中删除某一条记录后,触发该触发器,在Student_Course表中删除与此学号对应的记录

createtriggerStu_Delete

onStudentInformation

fordelete

as

begin

declare@StuIdchar(8)

select@StuId=cStuIdfromdeleted

deletefromStudent_CoursewherecStuId=@StuId

end

--创建了Stu_Delete触发器之后,输入以下语句

deletefromStudentInformationwherecStuId='02080001'

deletefromStudentInformationwherecStuId='02080002'

--删除Stu_Delete触发器

droptriggerStu_Delete

(2)--创建一个insteadof触发器,要求实现以下功能,在Student_Course表上创建一个删除类型的触发器NotAllowDelete,当在Student_Course表中删除记录时,触发该触发器,显示不允许删除表中数据的提示信息

createtriggerNotAllowDelete

onStudent_Course

insteadofdelete

as

begin

print'本表中的数据不允许被删除!

不能执行删除操作!

'

end

--创建了NotAllowDelete触发器之后,执行以下语句

deletefromStudent_CoursewherecStuId='02080002'

--删除NotAllowDelete触发器

droptriggerNotAllowDelete

(3)--创建一个after触发器,要求实现以下功能:

在Student_Course表上创建一个插入、更新类型的触发器ScoreCheck,当在fStuScore字段中插入或修改考试分数后,触发该触发器,检查分数是否在0-100之间

createtriggerScoreCheck

onStudent_Course

forinsert,update

as

ifupdate(fStuScore)

begin

declare@ScoreValuereal

select@ScoreValue=(selectfStuScorefrominserted)

if@ScoreValue>100or@ScoreValue<0

print'输入的分数有误,请确认输入的考试分数!

'

end

--创建了ScoreCheck触发器之后,输入以下语句

insertintoStudent_Course

values('02080002','5','-50')

insertintoStudent_Course

values('02080003','7','105')

--删除ScoreCheck触发器

droptriggerScoreCheck

6、事务

--事务的使用。

删除学号为02080001的学生的信息

declare@tran_namevarchar(20)

select@tran_name='my_tran_delete'

begintran@tran_name

deletefromStudentInformationwherecStuId='02080001'

deletefromStudent_CoursewherecStuId='02080001'

committran@tran_name

--事务的回滚,删除学号为02080002的学生的信息,让事务回滚到保存点savepoint

declare@tran_namevarchar(20)

select@tran_name='mytran'

begintran@tran_name

deletefromStudentInformationwherecStuId='02080002'

savetransave_point

deletefromStudent_CoursewherecStuId='02080002'

if@@error=0

begin

rollbacktransave_point

committran@tran_name

end

else

committran@tran_name

2)给出Northwind库的整体ER关系图,给出Employees和Customers表的数据库字典。

图1、图2为 sql2000示例数据库Northwind的ER图,使用Powerdesigner反向工程方法获得

 

                                      图

(1)

 

                         图

(2) 

 

 具体字段的含义如下:

① Categories:

种类表

相应字段:

CategoryID:

类型ID;

CategoryName:

类型名;

Description:

类型说明;

Picture:

产品样本

② CustomerCustomerDemo:

客户类型表1

相应字段:

CustomerID:

客户ID;

CustomerTypeID:

客户类型ID

③ CustomerDemographics:

客户类型表2

相应字段:

CustomerTypeID:

客户类型ID;

CustomerDesc:

客户描述

④ Customers:

客户表

相应字段:

CustomerID:

客户ID;

CompanyName:

所在公司名称;

ContactName:

客户姓名;

ContactTitle:

客户头衔;

Address:

联系地址;

City:

所在城市;

Region:

所在地区;

PostalCode:

邮编;

Country:

国家

Phone:

电话;

Fax:

传真

⑤ Employees:

员工表

相应字段:

EmployeeID:

员工代号;

LastName+FirstName:

员工姓名;

Title:

头衔;

TitleOfCourtesy:

尊称;

BirthDate:

出生日期;

HireDate:

雇用日期;

Address:

家庭地址;

City:

所在城市;

Region:

所在地区;

PostalCode:

邮编;

Country:

国家用;

HomePhone:

宅电;

Extension:

分机;

Photo:

手机;

notes:

照片;

ReportsTo:

上级;

PhotoPath:

照片

⑥ EmployeeTerritories:

员工部门表

相应字段:

EmployeeID:

员工编号;

TerritoryID:

部门代号

⑦ OrderDetails:

订单明细表

相应字段:

OrderID:

订单编号;

ProductID:

产品编号;

UnitPrice:

单价;

Quantity:

订购数量;

Discount:

折扣

⑧ Orders:

订单表

相应字段:

OrderID:

订单编号;

CustomerID:

客户编号;

EmployeeID:

员工编号;

OrderDate:

订购日期;

RequiredDate:

预计到达日期;

ShippedDate:

发货日期;

ShipVia:

运货商;

Freight:

运费;

ShipName:

货主姓名;

ShipAddress:

货主地址

ShipCity:

货主所在城市;

ShipRegion:

货主所在地区;

ShipPostalCode:

货主邮编;

ShipCountry:

货主所在国家

⑨ Products:

产品表

相应字段:

ProductID:

产品ID;

ProductName:

产品名称;

SupplierID:

供应商ID;

CategoryID:

类型ID;

QuantityPerUnit:

数量;

UnitPrice:

单价;

UnitsInStock:

库存数量;

UnitsOnOrder:

订购量;

ReorderLevel:

再次订购量;

Discontinued:

中止

⑩ Region:

地区表

相应字段:

RegionID:

地区ID;

RegionDescription:

地区描述

⑪ Shippers:

运货商

相应字段:

ShipperID:

运货商ID;

CompanyName:

公司名称;

Phone:

联系电话

⑫ Suppliers:

供应商表

相应字段:

ShipperID:

供应商ID;

CompanyName:

供应商姓名;

Phone;联系电话

⑬ Territories:

地域表

相应字段:

TerritoryID:

地域编号;

TerritoryDescription:

地域描述;

RegionID:

地区编号 

数据库名:

Northwind

Suppliers

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

字段说明

1

SupplierID

int

4

0

2

CompanyName

nvarchar

80

0

3

ContactName

nvarchar

60

0

4

ContactTitle

nvarchar

60

0

5

Address

nvarchar

120

0

6

City

nvarchar

30

0

7

Region

nvarchar

30

0

8

PostalCode

nvarchar

20

0

9

Country

nvarchar

30

0

10

Phone

nvarchar

48

0

11

Fax

nvarchar

48

0

12

HomePage

ntext

16

0

Region

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

字段说明

1

RegionID

int

4

0

2

RegionDescription

nchar

100

0

Products

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

字段说明

1

ProductID

int

4

0

2

ProductName

nvarchar

80

0

3

SupplierID

int

4

0

4

CategoryID

int

4

0

5

QuantityPerUnit

nvarchar

40

0

6

UnitPrice

money

8

4

(0)

7

UnitsInStock

smallint

2

0

(0)

8

UnitsOnOrder

smallint

2

0

(0)

9

ReorderLevel

smallint

2

0

(0)

10

Discontinued

bit

1

0

(0)

Orders

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

字段说明

1

OrderID

int

4

0

2

CustomerID

nchar

10

0

3

EmployeeID

int

4

0

4

OrderDate

datetime

8

3

5

RequiredDate

datetime

8

3

6

ShippedDate

datetime

8

3

7

ShipVia

int

4

0

8

Freight

money

8

4

(0)

9

ShipName

nvarchar

80

0

10

ShipAddress

nvarchar

120

0

11

ShipCity

nvarchar

30

0

12

ShipRegion

nvarchar

30

0

13

ShipPostalCode

nvarchar

20

0

14

ShipCountry

nvarchar

30

0

Employees

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

字段说明

1

EmployeeID

int

4

0

2

LastName

nvarchar

40

0

3

FirstName

nvarchar

20

0

4

Title

nvarchar

60

0

5

TitleOfCourtesy

nvarchar

50

0

6

BirthDate

datetime

8

3

7

HireDate

datetime

8

3

8

Address

nvarchar

120

0

9

City

nvarchar

30

0

10

Region

nvarchar

30

0

11

PostalCode

nvarchar

20

0

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

当前位置:首页 > 初中教育 > 英语

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

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