广东海洋大学_计算机科学与技术_data数据库实验4.doc
文本预览下载声明
实验四 数据的完整性、安全性
实验目的
掌握数据安全性和完整性的概念,以及如何保证数据库中数据安全及完整性。
掌握 SQL Server中有关用户、角色及操作权限的管理方法.
学会创建和使用规则、缺省。
实验内容
1 数据库的安全性实验,通过SSMS设置 SQL Server的安全认证模式.实现对SQL Server的用户和角色管理,设置和管理数据操作权限.
2数据库的完整性实验。使用Transact-SQL设计规则、缺省、约束和触发器。
实验要求
数据的完整性实验
CREATE DATABASE XSCJ
ON PRIMARY
(
NAME=Student_dat,
FILENAME=D:\XSCJ.mdf,
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=10%
)
LOG ON
(
NAME=Student_log,
FILENAME=D:\XSCJ.ldf,
SIZE=5MB,
FILEGROWTH=10%
)
GO
⑴用SQL语句创建一学生成绩数据库(XSCJ),包括学生(XSQK)、课程(KC)和成绩表(XS_KC):
学生情况表(XSQK)
列名 数据类型 长度 是否允许为空值 学号 Char 6 N 姓名 Char 8 N 性别 Bit 1 N 出生日期 smalldatetime 2 专业名 Char 10 所在系 Char 10 联系电话 char 11 Y CREATE TABLE XSQK(
学号CHAR(6) NOT NULL ,
姓名CHAR(8) NOT NULL,
性别BIT NOT NULL,
出生日期smalldatetime ,
专业名CHAR(10) ,
所在系 Char(10),
联系电话char(11)
) ;课程表(KC)
列名 数据类型 长度 是否允许为空值 课程号 Char 3 N 课程名 Char 20 N 教师 Char 10 开课学期 Tinyint 1 学时 Tinyint 1 学分 Tinyint 1 N CREATE TABLE KC(
课程号 Char(3) NOT NULL,
课程名 Char(20) NOT NULL,
教师 Char(10),
开课学期 Tinyint ,
学时 Tinyint ,
学分 Tinyint NOT NULL
) ;
成绩表(XS_KC)
列名 数据类型 长度 是否允许为空值 学号 Char 6 N 课程号
成绩 Char
Smallint 3
2 N
CREATE TABLE XS_KC(
学号 Char(6) NOT NULL,
课程名 Char(3) NOT NULL,
成绩 Smallint
) ;
⑵数据的实体完整性实验 V
①用SSMS分别将学生情况表(XSQK)的学号字段、课程表(KC)的课程号字段设置为主健
②用T-SQL语句将成绩表(XS_KC)的学号、课程号字段设置为主健
ALTER TABLE XS_KC ADD CONSTRAINT XS_KC_KEY PRIMARY KEY (学号,课程号)
⑶数据的参照完整性实验
①用SSMS为成绩表(XS_KC)创建外键FK_ XSQK_ID,外键FK_ XSQK_ID参照学生情况表(XSQK)表的学号
②用T-SQL语句成绩表(XS_KC)创建外键FK_ KC_ID,外键FK_ KC _ID参照课程表(KC)
表的课程号
ALTER TABLE XS_KC ADD CONSTRAINT FK_ KC_ID FOREIGN KEY (课程号) REFERENCES KC(课程号);
⑷数据的用户定义完整性实验
用T-SQL语句为学生情况表(XSQK)的姓名列创建一个唯一约束
ALTER TABLE XSQK ADD CONSTRAINT FK_XSQK_UNIQUE UNIQUE (姓名)
②用SSMS为学生情况表(XSQK)的性别列创建一个检查约束,使得性别的值为男或女
③用T-SQL语句为成绩表(XS_KC)的成绩列创建一个检查约束,使得成绩的值在(0~100)之间
ALTER TABLE XS_KC ADD CONSTRAINT GRADEchk CHECK(成绩BETWEEN 0 AND 100);
④用SSMS语句课程表(KC)的学时列创建一个缺省约束,缺省值为60
⑤用T-SQL语句课程表(KC)的学分列创建一个缺省约束,缺省值为2
ALTER TABLE KC ADD CONSTRAINT FK_KC_DEFAULT DEFAULT 2 FOR 学分
2.将如下数据分别转换成文
显示全部