数据库原理试验指导书.docx
- 文档编号:26704117
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:21
- 大小:20.49KB
数据库原理试验指导书.docx
《数据库原理试验指导书.docx》由会员分享,可在线阅读,更多相关《数据库原理试验指导书.docx(21页珍藏版)》请在冰豆网上搜索。
数据库原理试验指导书
《数据库系统概论》实验指导书
实验一建立数据库
一、实验目的
1.了解SQLServer2000;
2.掌握SQLServer2000数据库的建立和删除。
二、实验内容
1.查看SQLServer2000的所有组件
2.使用服务管理器
3.使用企业管理器
4.使用查询分析器
5.在企业管理器中建立和删除数据库
6.在查询分析器中建立和删除数据库
三、实验步骤
1.SQLServer2000的组件(9个)
(1)查询分析器:
执行输入的SQL语句并显示结果。
(2)导入和导出数据:
SQLServer2000与其他数据库系统进行相互转换。
(3)服务管理器:
管理SQLServer2000的各种服务。
(4)服务器网络实用工具:
管理和配置服务器网络。
(5)客户端网络实用工具:
管理和配置客户端网络。
(6)联机丛书:
帮助系统。
(7)企业管理器:
对本地或远程SQLServer2000服务器进行管理。
(8)事件探查器:
监视SQLServer2000执行的SQL语句。
(9)在IIS中配置SQLXML支持:
配置对IIS的XML的支持。
2.服务管理器
启动、暂停和停止指定服务器上的SQLServer2000的服务。
(1)Server:
指定服务器
(2)Services:
选择管理的4种服务
①SQLServer:
数据库引擎。
②SQLServerAgent:
自动化工作代理服务。
③MSSearch:
文本查询服务
④DistributedTransactionCoordinator:
分布式事务处理控制器。
(3)Start/Continue:
启动选定的服务
(4)Pause:
暂停选定的服务
(5)Stop:
停止选定的服务。
(6)“当启动OS时自动启动服务”复选框。
3.企业管理器
对本地或者远程服务器进行管理操作。
1)管理服务器:
(1)服务器服务:
①Database:
数据库(master、tempdb、msdb、model)
②DataTransformationServices:
转移
③Management:
管理(Agent、Backup、Activity、Plans、logs)
④Replication:
复制
⑤Security:
安全(logins、ServerRoles、LinkedServers、RemoteServers)
⑥SupportServices:
支持(DTC、Serch、Mail)
⑦MetaDataServices:
元数据
(2)服务器分组:
将多服务器分组(top组或sub组),默认组为SQLServerGroup
(3)服务器注册:
①选择服务器:
自动检测,手工添加
②选择验证方式:
Windows验证和SQLServer验证
③选择服务器组:
AddSQLServerGroup或CreateNewtopGroup
2)管理数据库
(1)自动建立的数据库(6个)
①master:
主数据库,记录登录和用户,系统配置设置,其他数据库包括数据库文件的位置等。
②tempdb:
临时数据库。
保存所有临时表和临时存储过程。
③msdb:
任务代理数据库。
供SQLServerAgent服务完成自动化工作使用。
④model:
模板数据库。
⑤Northwind:
销售范例数据库
⑥pubs:
书籍出版范例数据库。
(2)数据库对象(10个)
每个数据库中有10个目录结构,称之为数据库对象。
①关系图(Digram)
②表(Table)
③视图(View)
④存储过程(StoredProcedure)
⑤用户(User)
⑥角色(Role)
⑦规则(Ruler)
⑧默认(Default)
⑨用户定义的数据类型(UserDefinedDataType)
⑩用户定义的函数(Function)
4.查询分析器
执行输入的SQL语言。
查询分析器是SQLServer的交互界面,接受SQL语句,检查语法错误,执行语句,返回执行结果。
查询分析器是学习数据库操作的主要工具。
5.企业管理器中建立和删除数据库
(1)建立数据库
打开企业管理器,在数据库上选择菜单NewDatabase或CreateDatabaseWizard,主要参数:
数据库名:
name
主数据文件.mdf:
每一个数据库对应的文件,包括逻辑名、物理位置、物理文件
次数据文件.ndf:
包括逻辑名、物理位置、物理文件
日志文件.ldf:
每个数据库必须至少有一个日志文件,包括逻辑名、物理位置、物理文件
文件属性:
自动扩展及其扩展方式和最大空间
(2)删除数据库
选择要删除的数据库,选择菜单上的删除命令。
6.查询分析器中建立和删除数据库
(1)建立数据库以mydb为例
CREATEDATABASEmydb;--数据库名
(2)删除数据库
DROPDATABASEmydb;
四、实验小结
1.小结CREATEDATABASE语句的基本语法格式。
实验二建立表
一、实验目的
1.掌握表的建立和删除
2.掌握完整性规则的设置
二、实验内容
1.建立dept表,并设置完整性规则
2.建立student表,并设置完整性规则
3.建立course表,并设置完整性规则
4.建立study表,并设置完整性规则
5.删除建立的4个表。
三、实验步骤
运行实验1的SQL语句。
CREATEDATABASEmydb;
1.建立dept表,并设置完整性规则
CREATETABLEdept(
dnoCHAR
(2),
dnameVARCHAR(20)NOTNULL,
CONSTRAINTdept_pkPRIMARYKEY(dno),
CONSTRAINTdept_ukUNIQUE(dname)
);
2.建立student表,并设置完整性规则(5+8)
CREATETABLEstudent(
snoCHAR
(2),
snameVARCHAR(20)NOTNULL,
ssexCHAR
(2)NOTNULLDEFAULT'男',
sageINTNOTNULL,
dnoCHAR
(2)NOTNULL,
CONSTRAINTstudent_pkPRIMARYKEY(sno),
CONSTRAINTstudent_fkFOREIGNKEY(dno)REFERENCESdept(dno)
ONDELETECASCADEONUPDATECASCADE,
CONSTRAINTstudent_ckCHECK(ssexin('男','女'))
);
3.建立course表,并设置完整性规则(3+6)
CREATETABLEcourse(
cnoCHAR
(2),
cnameVARCHAR(20)NOTNULL,
pcnoCHAR
(2),
creditINTNOTNULL,
CONSTRAINTcourse_pkPRIMARYKEY(cno),
CONSTRAINTcourse_fkFOREIGNKEY(pcno)REFERENCEScourse(cno),
CONSTRAINTcourse_ukUNIQUE(cname),
CONSTRAINTcourse_ckCHECK(credit>0)
);
4.建立study表,并设置完整性规则(3+3)
CREATETABLEstudy(
snoCHAR
(2),
cnoCHAR
(2),
gradeINT,
CONSTRAINTstudy_pkPRIMARYKEY(sno,cno),
CONSTRAINTstudy_fk_snoFOREIGNKEY(sno)REFERENCESstudent(sno),
CONSTRAINTstudy_fk_cnoFOREIGNKEY(cno)REFERENCEScourse(cno)
);
5.删除建立的4个表。
DROPTABLEdept;
DROPTABLEstudent;
DROPTABLEcourse;
DROPTABLEstudy;
思考:
删表能顺利进行吗?
为什么?
四、实验小结
1.小结CREATETABLE语句的基本语法格式。
2.小结SQLServer2000的基本数据类型(20种)。
3.小结SQLServer2000的完整性规则定义语法。
实验三数据更新
一、实验目的
1.掌握数据的增删改操作
2.进一步掌握完整性规则
二、实验内容
1.对dept表进行数据增删改,并检查完整性规则
2.对student表进行数据增删改,并检查完整性规则
3.对course表进行数据增删改,并检查完整性规则
4.对study表进行数据增删改,并检查完整性规则
三、实验步骤
运行实验1、2的SQL语句。
CREATEDATABASEmydb;
USEmydb
CREATETABLEdept(
dnoCHAR
(2),
dnameVARCHAR(20)NOTNULL,
CONSTRAINTdept_pkPRIMARYKEY(dno),
CONSTRAINTdept_ukUNIQUE(dname)
);
CREATETABLEstudent(
snoCHAR
(2),
snameVARCHAR(20)NOTNULL,
ssexCHAR
(2)NOTNULLDEFAULT'男',
sageINTNOTNULL,
dnoCHAR
(2)NOTNULL,
CONSTRAINTstudent_pkPRIMARYKEY(sno),
CONSTRAINTstudent_fkFOREIGNKEY(dno)REFERENCESdept(dno)ONDELETECASCADEONUPDATECASCADE,
CONSTRAINTstudent_ckCHECK(ssexin('男','女'))
);
CREATETABLEcourse(
cnoCHAR
(2),
cnameVARCHAR(20)NOTNULL,
pcnoCHAR
(2),
creditINTNOTNULL,
CONSTRAINTcourse_pkPRIMARYKEY(cno),
CONSTRAINTcourse_fkFOREIGNKEY(pcno)REFERENCEScourse(cno),
CONSTRAINTcourse_ukUNIQUE(cname),
CONSTRAINTcourse_ckCHECK(credit>0)
);
CREATETABLEstudy(
snoCHAR
(2),
cnoCHAR
(2),
gradeINT,
CONSTRAINTstudy_pkPRIMARYKEY(sno,cno),
CONSTRAINTstudy_fk_snoFOREIGNKEY(sno)REFERENCESstudent(sno),
CONSTRAINTstudy_fk_cnoFOREIGNKEY(cno)REFERENCEScourse(cno)
);
1.对dept表进行数据增删改,并检查完整性规则
完整性规则如下(3):
dnoCHAR
(2)PRIMARYKEY
dnameVARCHAR(20)NOTNULL,UNIQUE
(1)增加数据
INSERTINTOdeptVALUES('D1','计科系');
----正常插入
INSERTINTOdeptVALUES('D2','电信系');
----正常插入
INSERTINTOdeptVALUES(NULL,'机械系');
----违反dno的主键(NOTNULL)规则
INSERTINTOdeptVALUES('D2','机械系');
----违反dno的主键(UNIQUE)规则
INSERTINTOdeptVALUES('D3',NULL);
----违反dname的NOTNULL规则
INSERTINTOdeptVALUES('D3','计科系');
----违反dname的UNIQUE规则
INSERTINTOdeptVALUES('D3','机械系');
----正常插入
(2)删除数据
DELETEFROMdeptWHEREdno='D3';
----正常删除
(3)修改数据
UPDATEdeptSETdname='计算机科学系'WHEREdno='D1';
----正常修改
UPDATEdeptSETdname='电信系'WHEREdno='D1';
----违反dname的UNIQUE规则
UPDATEdeptSETdname=NULLWHEREdno='D1';
----违反dname的NOTNULL规则
UPDATEdeptSETdno='D2'WHEREdno='D1';
----违反dno的主键(UNIQUE)规则
UPDATEdeptSETdno=NULLWHEREdno='D1';
----违反dno的主键(NOTNULL)规则
dept操作后的数据维持为:
dno
dname
D1
计科系
D2
电信系
2.对student表进行数据增删改,并检查完整性规则
完整性规则如下(6):
snoCHAR
(2)PRIMARYKEY
snameVARCHAR(20)NOTNULL,
ssexCHAR
(2)NOTNULLCHECK(ssexin('男','女'))DEFAULT'男',
sageINTNOTNULL,
dnoCHAR
(2)NOTNULL,FOREIGNKEYREFERENCESdept(dno)
ONDELETECASCADEONUPDATECASCADE
(1)增加数据
INSERTINTOstudentVALUES('S1','张刚','男',20,'D2');
----正常插入
INSERTINTOstudentVALUES('S2','李梅','女',21,'D2');
----正常插入
INSERTINTOstudentVALUES('S2','吴敏','男',20,'D1');
----违反sno的主键(UNIQUE)规则
INSERTINTOstudentVALUES(NULL,'吴敏','男',20,'D1');
----违反sno的主键(NOTNULL)规则
INSERTINTOstudentVALUES('S3','吴敏','男',NULL,'D1');
----违反sage的NOTNULL规则(注:
多条NOTNULL规则,可只测试一次)
INSERTINTOstudentVALUES('S3','吴敏','M',20,'D1');
----违反ssex的CHECK规则
INSERTINTOstudentVALUES('S3','吴敏','男',20,'D3');
----违反dno的外键规则
INSERTINTOstudentVALUES('S3','吴敏','男',20,'D1');
----正常插入
(2)删除数据
DELETEFROMstudentWHEREsno='S3';
(3)修改数据
UPDATEstudentSETsname='赵强',dno='D1'WHEREsno='S1'
----正常修改
UPDATEstudentSETsname=NULLWHEREsno='S1'
----违反sname的NOTNULL规则
UPDATEstudentSETssex='F'WHEREsno='S1'
----(选做)违反ssex的CHECK规则
UPDATEstudentSETsno='S2'WHEREsno='S1';
----违反sno的主键(UNIQUE)规则
UPDATEstudentSETsno=NULLWHEREsno='S1';
----违反sno的主键(NOTNULL)规则
UPDATEstudentSETdno='D3'WHEREsno='S1'
----违反dno的外键规则
UPDATEdeptSETdno='D3'WHEREdno='D1'
----(选做)检查dno的外键ONUPDATE规则
DELETEFROMdeptWHEREdno='D2'
----(选做)检查dno的外键ONDELETE规则
student操作后的数据保持为:
sno
sname
ssex
sage
dno
S1
赵强
男
20
D1
S2
李梅
女
21
D2
3.对course表进行数据增删改,并检查完整性规则
完整性规则如下(6):
cnoCHAR
(2)PRIMARYKEY
cnameVARCHAR(20)NOTNULLUNIQUE
pcnoCHAR
(2)FOREIGNKEY(pcno)REFERENCEScourse(cno)
creditINTNOTNULLCHECK(credit>0)
(1)增加数据
INSERTINTOcourseVALUES('C1','操作系统',3);
----正常插入
INSERTINTOcourseVALUES('C2','数据库原理',4);
----正常插入
INSERTINTOcourseVALUES(NULL,'计算机网络',3);
----违反cno的主键(NOTNULL)规则
INSERTINTOcourseVALUES('C2','计算机网络',,3);
----违反cno的主键(UNIQUE)规则
INSERTINTOcourseVALUES('C3',NULL,3);
----违反cname的NOTNULL规则
INSERTINTOcourseVALUES('C3','数据库原理',3);
----违反cname的UNIQUE规则
INSERTINTOcourseVALUES('C3','计算机网络',NULL);
----违反credit的NOTNULL规则
INSERTINTOcourseVALUES('C3','计算机网络',3);
----正常插入
(2)删除数据
DELETEFROMcourseWHEREcno='C3';
----正常删除
(3)修改数据
UPDATEcourseSETcname='操作系统原理'WHEREcno='C1';
----正常修改(再次修改为'操作系统')
UPDATEcourseSETcname='数据库原理'WHEREcno='C1';
----违反cname的UNIQUE规则
UPDATEcourseSETcname=NULLWHEREcno='C1';
----违反cname的NOTNULL规则
UPDATEcourseSETcredit=NULLWHEREcno='C1';
----违反credit的NOTNULL规则
UPDATEcourseSETcredit=-3WHEREcno='C1';
----违反credit的CHECK规则
UPDATEcourseSETcno='C2'WHEREcno='C1';
----违反cno的主键(UNIQUE)规则
UPDATEcourseSETcno=NULLWHEREcno='C1';
----违反cno的主键(NOTNULL)规则
course操作后的数据维持为:
cno
cname
credit
C1
操作系统
3
C2
数据库原理
4
4.对study表进行数据增删改,并检查完整性规则
完整性规则如下(3):
cnoCHAR
(2)FOREIGNKEY,
cnoCHAR
(2)FOREIGNKEY,
gradeINT,
PRIMARYKEY(sno,cno)
(1)增加数据
INSERTINTOstudyVALUES('S1','C1',100);
----正常插入
INSERTINTOstudyVALUES('S1','C2',90);
----正常插入
INSERTINTOstudyVALUES('S2','C1',80);
----正常插入
INSERTINTOstudyVALUES('S2','C1',70);
----违反(cno,sno)的主键(UNIQUE)规则
INSERTINTOstudyVALUES('S2',NULL,70);
----违反(cno,sno)的主键(NULL)规则
INSERTINTOstudyVALUES('S3','C1',70);
----违反sno的外键规则
INSERTINTOstudyVALUES('S2','C3',70);
----违反cno的外键规则
INSERTINTOstudyVALUES('S2','C2',70);
----正常插入
(2)删除数据
DELETEFROMstudyWHERE(sno='S2'ANDcno='C2');
----正常删除
(3)修改数据
UPDATEstudySETgrade=95WHERE(sno='S1'ANDcno='C1')
----正常修改
UPDATEstudySETcno='C2'WHERE(sno='S1'ANDcno='C1');
----违反(sno,cno)的主键(UNIQUE)规则
UPDATEstudySETcno=NULLWHERE(sno='S1'ANDcno='C1');
----违反(sno,cno)的主键(NOTNULL)规则
UPDATEstudentSETsno='S3'WHEREsno='S1'
----(选做)检查sno的外键ONUPDATE规则
DELETEstudentWHEREdno='S1'
----(选做)检查sno的外键ONDELETE规则
UPDATEcourseSETcno='C3'WHEREcno='C1'
----(选做)检查cno的外键ON
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 试验 指导书