用SQL Server 2014实现数据完整性和数据库的安全性(数据库原理及应用实验)

本文主要是介绍用SQL Server 2014实现数据完整性和数据库的安全性(数据库原理及应用实验),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  1. 约束概念及实施
  1. 用对象资源管理器完成如下操作,并输入数据验证规则有效性
  1. 为Course表的学分 (Credit)字段列设置默认值为4

打开企业管理器SSMS,展开SQl server服务器,展开“选课系统”右击表Course弹出快捷菜单点击“设计”,打开表设计器在“默认值或绑定”列输入值为4

 

验证:插入一条记录,给不输入Credit的值,刷新后值为4

使用SQL插入给不输入Credit的值

刷新后值为4

 

  1. 为SC表中设置主键为Sno,Cno
  2. 打开企业管理器SSMS,展开SQl server服务器,展开“选课系统”右击表SC弹出快捷菜单点击“设计”,打开表设计器安按住ctrl键同时选中Sno,Cno两个字段列,在指针所在位置点击右键弹出快捷菜单点击“设置主键”
  3. 设置表SC中的外键Sno,Cno分别参表Student、Course中的主键。

打开企业管理器SSMS,展开SQl server服务器,展开“选课系统”右击表SC弹出快捷菜单点击“设计”,打开表设计器在工具栏点击“关系”按钮设置外键参照关系。

如下图:

 

验证:在SC表中输入一个student表中没有的学号,在SC表中输入一个course中没有的课程的号,系统显示违反参照完整性规则拒绝执行。

使用SQL插入在SC表中输入一个student表中没有的学号,在SC表中输入一个course中没有的课程的号:

 

  1. 设置Student表中字段Sage在10-100之间

打开企业管理器SSMS,展开SQl server服务器,展开“选课系统”右击表Student弹出快捷菜单点击“设计”,打开表设计器在工具栏点击“管理check约束”按钮,打开“check约束”对话框设置约束条件拒绝执行。

 

 

验证:修改Student中某个记录的年龄,系统显示违反设置约束条件拒绝执行。

用T—SQL完成以下操作,并输入数据验证规则有效性

用IN关键字设置表Students中的Ssex字段列建立一个check约束其值只能取‘男’或‘女’

use 选课系统

    go

 CREATE TABLE Students

 ( sno int NOT NULL,

sname nvarchar (10),

ssex char(2) check (ssex in('男','女')),

birthday datetime NULL,

sdept nchar(10));

验证:向studensts表中插入一个学生信息,ssex的值为”好”, 系统显示违反设置约束条件拒绝执行。

 

用SQL设置表SCS中的外键Sno,Cno分别参表Student、Course中的主键,设置插入、删除违约处理并验证。

use "选课系统"

    go

CREATE TABLE SCS

( Sno int NOT NULL,

Cno char(3) NOT NULL,

Grade smallint NULL,

credit smallint NULL

PRIMARY KEY (Sno,Cno), 

FOREIGN KEY (Sno) REFERENCES Student(Sno),

FOREIGN KEY (Cno) REFERENCES Course(Cno))

验证:

在SCS表中输入一个student表中没有的学号,在SCS表中输入一个course中没有的课程的号,系统显示违反参照完整性规则拒绝执行。

 

删除student中某个选课学生记录, 系统显示违反参照完整性规则拒绝执行。

 

  1. 默认值的概念及验证
  2. 为‘选课系统’数据库定义一个名为Ssex_default默认值,值为‘女’。

use 选课系统

go

Create default dept_student  as

  1. 将该值绑定到Student表中的Ssex字段列,并输入数据验证规则有效性。

use 选课系统

go

exec sp_bindefault dept_student,student.Ssex

验证:

使用SQL向Student中输入没有ssex字段的信息,Ssex默认为女。

 

 

  1. 删除该绑定

Exec sp_unbindefault student.Ssex

规则的概念及验证

1)为‘选课系统’数据库定义一个名为Grade_rule的规则,值在10-100之间

Use 选课系统

Go

Create rule sage_Student as @Sage>=10 and @Sage<=100

2)将该值绑定到SC表中的Grade字段列,并输入数据验证规则有效性. 

Use 选课系统

Go

Exec sp_bindrule sage_Student,student.Sage

验证:

使用SQL向SC表中添加Grade>100的信息,系统显示违反参照完整性规则拒绝执行。

 

3)删除该绑定

Exec sp_unbindrule student.Sage

这篇关于用SQL Server 2014实现数据完整性和数据库的安全性(数据库原理及应用实验)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/311934

相关文章

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致