数据库sql完整性实验的答案
数据控制(完整性控制)
学号:111404107
姓名:
完成日期:2012年5月16日
实验环境:window7操作系统,SQL2000
(一) 实验内容及完成情况:
实验要求:使用SQL对数据进行完整性控制。用实验证实,当操作违反了完整性约束条件时,系统是如何处理的,记录证实过程,完成实验。(本实验报告以建立的s表,c表,及sc表为例)
(1) 实体完整性、参照完整性、用户定义完整性;
1.实体完整性:
○1检查主码值是否唯一,若不唯一时则拒绝插入或修改。
【例】插入与修改:
○2检查主码的各个属性是否为空值,有责拒绝插入和修改
【例】插入
修改
2.参照完整性
○1sc中增加一个元组,在s中找不到一个元组,其sno与之相等
【例】
○2修改sc中一个元组,s中无对应的sno与之相等。
○3从s中删除一个元组,sc中某些sno的在s中找不到与之对应的sno与之相等。
○4修改s中的sno属性,使sc中某些sno的在s中找不到与之对应的sno与之相等。
3.用户定义完整性
○1列值非空:
○2列值唯一:(定义s表中姓名唯一)
○3用check短语指定值满足条件(定义性别只能取男女)
(2)Check短语:用户定义完整性中已经给出例子。
(3)Constraint子句:○1删除
○2定义
(4)触发器:
(二)出现问题:
1.建表的时候,如何在企业管理器中直接定义主码,约束条件?
2能不能再建完表后在对这个表的某些属性进行约束?
3触发器到底应该怎么写??
(三)解决方案:
1.用查询分析器建表,尽可能的完整,否则删了重建。
(四)未解决问题:
1.建表的时候,如何在企业管理器中直接定义主码,约束条件?
2能不能再建完表后在对这个表的某些属性进行约束?
3触发器到底应该怎么写??
4为什么不能删除
附录:
本报告用到的表及建立时的约束条件:
1.s表的建立及数据
2.C表的建立及数据
3.sc表的建立及数据
数据库SQL实验题目(14-15-1)
实验一 数据定义操作
实验目的
1. 掌握数据库和表的基础知识
2. 掌握使用创建数据库和表的方法
3. 掌握数据库和表的修改、查看、删除等基本操作方法
实验内容和要求
一、数据库的创建
在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示:
Grademanager数据库参数表
参数 参数值 参数 参数值
存储的数据文件路径 D:\db\grademanager_data.mdf 存储的日志文件路径 D:\db\grademanager_log.ldf
数据文件初始大小 5MB 日志文件初始大小 2MB
数据文件最大值 20MB 日志文件最大值 15MB
数据文件增长量 原来10% 日志文件增长量 2MB
二、表的创建、查看、修改和删除
1.表的创建
在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:
(1)Student表的表结构
字段名称 数据类型 长度 精度 小数位数 是否允许Null值 说明
Sno Char 10 0 0 否 学号,主码
Sname Varchar 8 0 0 是 姓名
Ssex Char 2 0 0 是 性别,取值:男或女
Sbirthday Date 8 0 0 是 出生日期
Sdept Char 16 0 0 是 系名
Speciality Varchar 20 0 0 是 专业名
特别注意:
为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK约束”命令,然后按照图1进行设置。 2
(完整版)第五章_数据库完整性(习题)
(完整版)第五章_数据库完整性(习题)
一、选择题
1. 完整性检查和控制的防范对象是( ),防止它们进入数据库。安全性控制的防范对象是(),防止他们对数据库数据的存取。
A.不合语义的数据 B。非法用户 C.不正确的数据 D.非法操作
2. 找出下面SQL命令中的数据控制命令( ).
A。GRANT MIT C.UPDATE D.SELECT
3. 下述SQL命令中,允许用户定义新关系时,引用其他关系的主码作为外码的是()。
A。INSERT B。DELETE C.REFERENCES D. SELECT
4. 下述SQL命令的短语中,不用于定义属性上约束条件的是()。
A.NOT NULL短语 B。UNIQUE短语 C.CHECK短语 D。HAVING短语
二、填空题
1. 数据库的完整性是指 数据的正确性和相容性.
2. 关系模型的实体完整性在CREATE TABLE中用 primary key 关键字来实现。
3. 检查主码值出现 不唯一和有一个为空 违约情况时,则DBMS拒绝插入或修改。
4. 关系模型的参照完整性在CREATE TABLE中用 foreign key关键字来实现。
5. 当参照完整性检查出现违约情况时,则DBMS可以采用 拒绝、级联和设置为空 策略处理。
6. 参照完整性的级连操作的关键字是cascade .
7. 在CREATE TABLE中定义属性上的约束条件,包括not null 、unique 和 check。
8. 在CREATE TABLE中定义属性上的约束条件,检查列值唯一用unique 关键字。
9. 关系模型的元组上的约束条件的定义,在CREATE TABLE中用check关键字来实现。
10. 在Sno(学号)列上创建约束,要求Sno的值在18至22岁之间,约束名Sno_CK。请写出对应的完整性命名子句constraint
SQL数据库实验报告 (1)
资源与环境科学学院实验报告
一、上机实习名称:SQL Server的安装及数据库的建立
二、实验目的:
1、通过对某个商用数据库管理系统的使用,了解DBMS的工作原理和系统构架。
2、熟悉对DBMS的操作
3、熟悉如何使用SSMS和SQL建立数据库和表,并加深对于完整性的理解。
三、实验内容:
1、根据安装文件的说明安装数据库管理系统。
2、学会启动和停止数据库服务,思考可以用哪些方式来完成启动和停止。
3、掌握管理工具的使用
(1)SQL Server Management Studio的使用
➢ 连接服务器的方法
➢ 查询分析器的使用
(2)配置管理器的使用
4、了解数据库系统的逻辑组件:
它们主要是数据库对象,包括基本表、视图、触发器、存储过程、约束等。今后将学习如何操作这些数据库对象。
5.在SSMS中创建数据库和表
四、实验步骤
1. SQL Server 2008的体系结构和特点介绍
SQL Server 是一个关系数据库管理系统。由微软公司2008年第三季度正式发布, SQL Server 2008是一个重大的产品版本,在安全性、可用性、易管理性、可扩展性、商业智能等方面有了更多的改进和提高,对企业的数据存储和应用需求提供了更强大的支持和便利,使得它成为迄今为止最强大和最全面的SQL
Server版本。
SQL Server 2008 版本体系:根据不同的用户类型和使用需求,微软公司推出了5种不同的SQL Server版本,包括企业版(Enterprise)、标准版(Standard)、工作组版(Workgroup)、学习版(Express)和移动版(Compact) Microsoft SQL Server 2008系统由4个主要部分组成。这4个部分被称为4个服务,这些服务分别是数据库引擎、分析服务、报表服务和集成服务。
2. SQL Server管理工作室的启动
打开windows控制面板—管理—服务,启动SQL Server 服务,如下图
Sql Server上机实验答案
--以默认方式创建stu001数据库
create database stu001
--打开stu001数据库
use stu001
--创建学生表XS
create table xs
( 学号char(7) not null primary key,
姓名char(8) not null,
性别bit not null default 1,
出生日期smalldatetime not null,
班级char(5) default '41021' ,
总学分tinyint default 0,
备注text null
)
--创建课程表KC
create table kc
( 课程号char(3) not null primary key,
课程名char(20) not null,
开课学期tinyint not null default 1 check(开课学期>=1 and 开课学期<9 ),
学分tinyint not null default 0,
学时tinyint not null
)
--创建学生与课程表xs_kc
create table xs_kc
( 学号char(7) not null references xs(学号),
课程号char(3) not null references kc(课程号),
成绩 tinyint null default 0 check(成绩>=0 and 成绩<=100) ,
学分tinyint null default 0
primary key(学号,课程号)
)
--修改学生情况表(XS)的“出生日期”字段,使其数据类型改为datetime,且允许为空
use stu001
alter table xs
alter column 出生日期datetime null
数据库原理实验答案
课程结束各班学委统一收实验报告
数据库原理及应用(本科)
实验指导书1(报告)
计算机信息教研室
桂林理工大学信息科学与工程学院
二○二○年八月
目 录
实验1 创建数据库与数据表……………………………………………………………2
实验2 简单查询和连接查询……………………………………………………………10
实验3 嵌套查询和集合查询……………………………………………………………12
实验4 数据完整性………………………………………………………………………14
1 桂 林 理 工 大 学
实 验 报 告
班级 学号 姓名 同组实验者 无
实验名称 实验1 创建数据库与数据表 日期 年 月 日
一、实验目的:
1.熟悉SQL SERVER环境;
2.掌握数据库和数据表的创建和删除,实践SQL的CREATE、ALTER和DROP命令;
3.掌握数据表的创建和数据记录的插入方法。
二、实验环境:
Sqlserve数据库管理系统
三、实验内容:
1. 创建教学管理“JXGL”数据库,并建立学生STUDENT、课程COURSE和选修SC三个数据表,各表中的数据如下所示:
学生STUDENT:(注:CS计算机科学,IS信息系统,MA数学)
Sno Sname Ssex Sage Sdept
95001 李勇 M 20 CS
95002 刘晨 F 19 IS
95003 王敏 F 18 MA
95004 张立 M 18 IS
课程COURSE:(注:Pcno 先修课课程号)
Cno Cname Pcno Ccredit
1 数据库 5 4
2 数学 2
3 信息系统 1 4
4 操作系统 6 3
5 数据结构 7 4
6 数据处理
2
7 C语言 6 4
选修SC:
Sno Cno Grade
95001 1 92 2 95001 2 85
2021年数据库实验3答案
*欧阳光明*创编 2021.03.07
*欧阳光明*创编 2021.03.07 实验三:交互式SQL语句的使用
欧阳光明(2021.03.07)
1、实验目的
(1)掌握数据库对象的操作过程,包括创建、修改、删除
(2)熟悉表的各种操作,包括插入、修改、删除、查询
(3)熟练掌握常用SQL语句的基本语法
2、实验平台
使用SQL Server提供的Microsoft SQL Server Management
Studio工具,交互式使用SQL语句。
3 实验内容及要求
选择如下一个应用背景之一:
学生选课系统
习题3、4、和5中使用的数据库
其它你熟悉的应用
(1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。
(2)要求认真进行实验,记录各实验用例及执行结果。
(3)深入了解各个操作的功能。 *欧阳光明*创编 2021.03.07
*欧阳光明*创编 2021.03.07 实验要求包括如下方面的内容:
3.1 数据定义
1. 基本表的创建、修改及删除
2. 索引的创建
3. 视图的创建
3.2 数据操作
完成各类更新操作包括:
1. 插入数据
2. 修改数据
3. 删除数据
3.3 数据查询操作
完成各类查询操作
1. 单表查询
2. 分组统计
3. 连接查询
4. 嵌套查询
5. 集合查询
3.4 数据操作
1. 创建视图 *欧阳光明*创编 2021.03.07
SQLServer2005课后实训参考答案
1 / 55 课后实训参考答案
单元1(SQL Server概述)
1、使用SQL语句。在Sale数据库中创建名为MyDataType的用户定义数据类型,数据类型为NVARCHAR,长度为20,该列允许为NULL。
USE Sale
GO
EXEC sp_addtype MyDataType,'NVARCHAR(20)','NULL'
GO
单元2(单表数据)
使用查询窗口或sqlcmd实施查询。本实训使用Xk数据库。
--1.查看系部编号为“03”的系部名称。
USE Xk
GO
SELECT DepartName
FROM Department
WHERE DepartNo='03'
GO
--2.查看系部名称中包含有“工程”两个字的系的全名。
USE Xk 2 / 55 GO
SELECT DepartName
FROM Department
WHERE DepartName LIKE '%工程%'
GO
--3.显示共有多少个系部。
USE XK
GO
SELECT '系部总数'=COUNT(*)
FROM Department
GO
--4.显示“01”年级共有多少个班级。
USE XK
GO
SELECT '01 级班级数'=COUNT(*)
FROM Class
WHERE ClassNo LIKE '2001%'
GO
SELECT '01 级班级数'=COUNT(*)
FROM Class 3 / 55 WHERE ClassName LIKE '01%'
GO
SELECT '01 级班级数'=COUNT(*)
FROM Student
WHERE ClassNo LIKE '2001%'
数据库完整性实验报告
数据库系统原理,《实验指导书》
1 实验八:数据库完整性
1.1 实验背景
“存储在数据库中的所有数据值均是正确的状态。如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。”
这是SQL Server2000中给出数据库完整性的解释,但是我们要问两个问题:
什么是数据正确的状态?
如何确保数据是正确的?
对于第一个问题,确实很难回答,因为:“世界上所有事物本无正确与错误”,但是一些不符合逻辑的、前后矛盾的、没有满足人们需求的,可以说是“不正确的”。如:一个人的年龄是“-20岁”,这就是不符合逻辑的;在一个地方,这个人叫“张三”,但是换了个地方却记成“张山”,这就是矛盾;如果一笔订单金额没有达到1万元,却给记成打了8折,实际只能打9折,这就是不满足需求。
造成上述各种不正确的原因是什么呢?无外乎是人们输入错误、业务不熟悉、或者是捣乱分子故意为之。那么关键问题是我们如何在数据库中预防这种不正确的情况呢?这就是要问的第二个问题。
这需要靠数据库管理系统(DBMS)提供一套完整性约束机制来预防这种情况的发生。但是人们常说一句话“人无完人,金无足赤”,同样,要完全靠DBMS帮我们防住所有的不正确,本身就是不正确的,这不符合辩证哲学的观点。这说明DBMS只能是尽可能的预防。那么人们要深入研究有哪些完整性约束,DBMS应该提供哪些保障机制。
首先,完整性约束主要有以下几种:
实体完整性约束
参照完整性约束
用户定义完整性约束
其次,在关系型数据库中保证上述完整性约束的方法有以下几种:
表 1 数据库提供的约束
数据库提供的约束 理论上的完整性约束
主码约束 实体完整性约束
外码约束 参照完整性约束
Check约束
Null约束
索引约束
触发器
存储过程 用户定义完整性约束
我们可以看出主码、外码是我们经常接触到的数据库提供的约束方法,也是最重要的约束。但是,外码约束并没有我们想象那样简单,即只要把外码关系建立起来就行了,还要考虑到约束强度的问题:
(完整版)sql练习题+答案
( 一 ) 新建以下几个表 student( 学生表 ) :
sno sname sex dept birth age
其中约束如下:
( 1) 学号不能存在相同的
( 2) 名字为非空
( 3) 性别的值只能是'男'或'女'
( 4) 系包括这几个:信息系,计算机科学系,数学系,管理系,中文
系,外语系,法学系
( 5) 出生日期为日期格式
(6) 年龄为数值型,且在 0~100 之间
create table student (
sno smallint constraint a primary key , ---------- 设
置学生学号为 student 的主键
sname varchar ( 10) not null,
sex varchar ( 2) constraint b check ( sex in( ' 男
' ,' 女' )), 检查约束 ——性别的值只能是 '男'或'女'
dept varchar ( 20) constraint c check ( dept in( '
信息系 ' , ' 计算机科学系 ' , ' 数学系 ' , ' 管理系
' , ' 中文系 ' ,' 外语系',' 法学系' )), 检查约束
——系包括这几
个:信息系,计算机科学系,数学系,管理系,中文系,外 语系,法学系 birth datetime , age smallint constraint d check ( age between 0 and 100 ) - 检查约束 ——年龄为数值型,且在 ~100
之间
)
cs( 成绩表 ) :
sno cno cj
其中约束如下:
1) sno 和 cno 分别参照 student 和 course 表中的 sno,cno 的字段
2)cj( 成绩) 只能在
0~100之间,可以不输入值
create table cs (
数据库教程(SQL Server)课后习题及答案
课后习题及答案
习题1
3、简述数据库系统的组成。
答:数据库系统一般由数据库、数据库管理系统(及其开发工具)、数据库管理员(DataBase
Administrator,DBA)和用户组成。
4、试述数据库系统的三级模式结构。这种结构的优点是什么?
答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成,同时包含了二级映像,即外模式/模式映像、模式/内模式映像,如下图所示。
数据库应用1……外模式A外模式B模式应用2应用3应用4应用5……模式外模式/模式映像模式/内模式映像
数据库系统的这种结构具有以下优点:
(1)保证数据独立性。将外模式与模式分开,保证了数据的逻辑独立性;将内模式与模式分开,保证了数据的物理独立性。
(2)有利于数据共享,减少了数据冗余。
(3)有利于数据的安全性。不同的用户在各自的外模式下根据要求操作数据,只能对限定的数据进行操作。
(4)简化了用户接口。按照外模式编写应用程序或输入命令,而不需了解数据库全局逻辑结构和内部存储结构,方便用户系统。
5、什么是数据的物理独立性与逻辑独立性?并说明其重要性。
答:(1)数据的物理独立性是指数据的物理结构(包括存储结构、存取方式等)的改变,存储设备的更换,物理存储的更换,存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。
(2)数据的逻辑独立性是指数据库总体逻辑结构的改变,如修改数据模式,增加新的数据类型、改变数据间联系等,不需要相应修改应用程序。
(3)数据的独立性使得数据库中数据独立于应用程序而不依赖于应用程序,也就是说数据的逻辑结构、存储结构与存取方式的改变不影响应用程序。相应的,数据的独立性也使得应用程序的编制不再依赖于数据的物理和逻辑结构,提高了应用程序的可移植性与鲁棒性。从理论上说,数据的独立性可以使数据的组织和应用程序的编制完全分离。
8、什么是数据模型?
答:数据模型(Data Model)是一种抽象模型,是对现实世界数据特征的抽象。
