您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 数据库实验-建立表和数据完整性
计算机科学与技术系实验报告专业名称软件工程课程名称数据库实验项目名称建立表和数据完整性班级()班学号姓名同组人员无实验日期20年月日一、实验目的与要求:(简述本次实验要求达到的目的,涉及到的相关知识点,实验的具体要求。)实验目的:1.掌握表的基本操作。1)建立表。2)修改表的结构。2.索引的建立方法。3.掌握数据完整性的功能,加深对数据完整性的理解。实验要求:1)使用实验一的技术建立名称为“学生管理”数据库。2)建立如图所示的订单管理数据库中的5张表,同时完成数据完整性的定义(实体完整性、参照完整性和用户定义的域完整性),各个表的具体描述如下:院系字段名数据类型主关键字外部关键字参照的表取值说明编号短整数Yes名称20个字符唯一,不允许为空值负责人10个字符办公地点20个字符学生字段名数据类型主关键字外部关键字参照的表取值说明学号8个字符Yes院系短整数Yes院系表的编号字段姓名10个字符不允许空值性别2个字符必须取值“男”或“女”生源6个字符状态4个字符教师字段名数据类型主关键字外部关键字参照的表取值说明教师编号8个字符Yes院系短整数Yes院系表的编号字段姓名10个字符不允许为空值性别2个字符必须取值“男”或“女”职称6个字符取值“教授”、“副教授”、“讲师”或“助教”专业10个字符课程字段名数据类型主关键字外部关键字参照的表取值说明课程编号8个字符Yes课程名称20个字符不允许为空值责任教师8个字符Yes教师表的教师编号字段学时短整数不允许为空值课程性质10个字符取值为公共基础、专业基础、专业选修和任意选修选课字段名数据类型主关键字外部关键字参照的表取值说明学号8个字符YesYes学生表的学号字段课程编号8个字符YesYes课程表的课程编号字段成绩短整型取值在0~100之间,并且默认为空值3)修改表的结构,具体要求如下:a.为学生表增加一个“平均成绩”字段,类型为短整型,默认是空值。b.为课程表的“学时”字段重新定义约束:取值为8的倍数,不允许为空值。c.将院系表的“名称”字段的类型修改为varchar(30)。d.为教师表增加一个“工资”字段,类型为5位整数、2位小数的数值型。4)分别建立如下索引a.在客户表的客户名称字段上建立普通升序索引。b.在产品表的客户名称字段上建立惟一索引。c.在订购单表的订单号字段上建立聚集索引。d.在订单名细表的订单号(升序)、序号(升序)和数量(降序)三个字段上建立一个普通索引。二、实验内容(根据本次实验项目的具体任务和要求,完成相关内容,可包括:实验目的、算法原理、实验仪器、设备选型及连线图、算法描述或流程图、源代码、实验运行步骤、关键技术分析、测试数据与实验结果、其他)1)、建立数据库createdatabase学生管理on(name=order_dat,filename='c:\mssql\data\orderdat.mdf',size=10MB,maxsize=50MB,filegrowth=5MB)logon(name=order_log,filename='d:\mssql\log\orderlog.ldf',size=5MB,maxsize=25MB,filegrowth=5MB)2)、建立表createtable院系(编号intprimarykey,名称char(20)notnull,负责人char(10),办公地点char(20),unique(名称))createtable学生(学号char(8)primarykey,院系intforeignkeyreferences院系(编号),姓名char(10)notnull,性别char(2)check(性别like'男'or性别like'女'),生源char(6),状态char(4))createtable教师(教师编号char(8)primarykey,院系smallintforeignkeyreferences院系(编号),姓名char(10)notnull,性别char(2)check(性别like'男'or性别like'女'),职称char(6)check(职称like'教授'or职称like'副教授'or职称like'讲师'or职称like'助教'),专业char(10))createtable课程(课程编号char(8)primarykey,课程名称char(20)notnull,责任教师char(8)foreignkeyreferences教师(教师编号),学时intnotnull,课程性质char(10)check(课程性质like'公共基础'or课程性质like'专业基础'or课程性质like'专业选修'or课程性质like'任意选修'))createtable选课(学号char(8)foreignkeyreferences学生(学号),课程编号char(8)foreignkeyreferences课程(课程编号),成绩intcheck(成绩=0and成绩=100)defaultnull,primarykey(学号,课程编号))3).修改表的结构,具体要求如下:a为学生表增加一个“平均成绩”字段,类型为短整型,默认是空值。altertable学生add平均成绩smallintdefaultnullb为课程表的“学时”字段重新定义约束:取值为8的倍数,不允许为空值。altertable课程addcheck(学时/8=0)c将院系表的“名称”字段的类型修改为varchar(30)。altertable院系altercolumn名称varchar(30)d为教师表增加一个“工资”字段,类型为5位整数、2位小数的数值型。altertable教师add工资numeric(5,2)4)分别建立如下索引a.在客户表的客户名称字段上建立普通升序索引。createclusteredindexcname_indexoncustomer(cnameasc)b.在产品表的客户名称字段上建立惟一索引createuniqueclusteredindexcname_indexonproduct(cname)c.在订购单表的订单号字段上建立聚集索引。createclusteredindexdno_indexondinggou(dno)d.在订单名细表的订单号(升序)、序号(升序)和数量(降序)三个字段上建立一个普通索引。createclusteredindexdno_indexondingdan(dnoasc,duxasc,dshudesc)三、实验分析与小结:(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析;有待优化思路)通过本次实验,掌握表的基本操作:建立表、修改表的结构。索引的建立方法以及掌握数据完整性的功能,加深对数据完整性的理解。但是我对这些操作都不怎么熟练,应该多加实践。四、其它得分(百分制)
本文标题:数据库实验-建立表和数据完整性
链接地址:https://www.777doc.com/doc-5207339 .html