建立表和定义完整性约束
数据库系统包括题目和答案

【据库系统原理复习题第4章、选择题1.数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是(A )。
A DBS 包枯DB 和DBMS B. DBMS 包括DB 和DBSC. DB包括DBS和DBMSD. DBS就是DB,也就是DBMS2•概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是(D )。
A层次模型 B.关系模型 C.网状模型 D.实体-联系模型3.目前,数据库管理系统最常用的逻辑数据模型是(C)。
A.网状模型B•层次模型C .关系模型D •面向对象模型4.下列四项中,不属于数据库系统特点的是(C)oA数据共享 B.数据完整性 C.数据冗余度高 D.数据独立性高5.数据模型的三个要素分别是(B )。
A.实体完整性、参照完整性、用户自定义完整性B.数据结构、数据操作、数据完整性约束条件C.插入数据、修改数据、删除数据D.外模式、模式、内模式6.数据库三级结构从内到外的3个层次依次为(B)。
A外模式、模式、内模式 B.内模式、模式、外模式C.模式、外模式、内模式D.内模式、外模式、模式7.下列关于数据库系统的正确叙述是(A):A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型的一致D.数据库系统比文件系统能管理更多的数据8.数据的逻辑独立性是指(B)。
A.外模式改变时保持应用程序不变B.模式改变时保持外模式不变C.内模式改变时保持模式不变D.数据改变时保持应用程序不变9.数据的物理独立性是指(C)。
A.外模式改变时保持应用程序不变B•模式改变时保持外模式不变C•内模式改变时保持模式不变 D.数据改变时保持应用程序不变10.公司有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从部门到职员的联系类型是(D)。
A.多对多B. 一对一C.多对一D.—对多11.储蓄所有多个储户,储户在多个储蓄所之间存款,储户与储蓄所之间是(C)。
创建表的约束条件

创建表的约束条件创建表的约束条件是在数据库中定义表结构时,为了保证数据的完整性和一致性,对表中的数据进行限制和规范的条件。
下面将介绍常见的表约束条件及其作用。
1. 主键约束:主键是用于标识表中每条记录的唯一标识符。
主键约束要求主键的值在表中是唯一的,并且不能为空。
主键可以是单个列,也可以是多个列的组合。
主键约束的作用是保证数据的唯一性和查询的高效性。
2. 唯一约束:唯一约束要求某个或某些列的值在表中是唯一的,但可以为空。
唯一约束的作用是保证数据的唯一性,可以用于限制某个字段的取值范围。
3. 非空约束:非空约束要求某个或某些列的值不能为空。
非空约束的作用是保证数据的完整性,防止出现空值。
4. 默认约束:默认约束是指在插入数据时,如果没有指定某个列的值,那么该列使用默认值。
默认约束的作用是提供默认值,简化数据插入操作。
5. 外键约束:外键约束用于建立两个表之间的关联关系,通过外键可以实现表与表之间的数据一致性和完整性。
外键约束要求外键列的值必须在主表中存在,或者为空。
外键约束的作用是保证数据的一致性和完整性,限制了数据之间的关联关系。
6. 检查约束:检查约束是对某个列的取值进行限制的条件,只有满足条件的数据才能插入或修改。
检查约束的作用是保证数据的合法性和一致性,可以用于限制某个字段的取值范围。
7. 级联约束:级联约束是指在对主表进行更新或删除操作时,自动更新或删除与之关联的从表中的数据。
级联约束的作用是保证关联表之间的数据一致性和完整性。
8. 域约束:域约束是在某个列的取值范围内进行限制的条件。
域约束的作用是保证数据的合法性和一致性,可以用于限制某个字段的取值范围。
9. 长度约束:长度约束是指对某个列的字符长度或数值长度进行限制的条件。
长度约束的作用是保证数据的完整性和一致性,可以用于限制某个字段的长度。
10. 唯一组合约束:唯一组合约束要求某几个列的组合在表中是唯一的。
唯一组合约束的作用是保证多个字段的组合值的唯一性。
数据库设计与规范化确保数据的一致性与完整性

数据库设计与规范化确保数据的一致性与完整性在当今信息化时代,数据的管理和维护对于企业的决策和运营起着至关重要的作用。
而数据库的设计和规范化则是确保数据的一致性与完整性的关键。
本文将从数据库设计原则、规范化过程以及数据一致性与完整性保障方面进行讨论。
一、数据库设计原则数据库设计是一个综合性的任务,需要考虑多方面因素。
以下是一些数据库设计的基本原则,能够帮助我们确保数据的一致性与完整性。
1. 合理划分数据表:将数据按照其内在逻辑关系进行划分,形成多个数据表。
通过合理的数据表划分,能够减少数据冗余和冗长,提高数据查询效率。
2. 定义适当的字段:在数据库表中定义合适的字段,确保每个字段存储的数据类型和长度都是符合实际需求的。
这样能够避免数据溢出或数据类型不匹配的问题。
3. 设定有效的主键:为每个数据表设定一个唯一标识,即主键。
主键能够确保每条记录的唯一性,方便数据的查询和关联。
4. 建立合适的索引:通过创建索引来提高数据库的查询性能。
根据实际需求,选择合适的字段作为索引,能够加快查询速度,并提高数据的一致性。
二、规范化过程规范化是数据库设计的重要步骤,通过将数据库分解为多个关系表,从而减少数据冗余,并确保每个关系表都符合一定的规范化要求。
常用的规范化形式有第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。
1. 第一范式(1NF):确保每个字段都是原子性的,不可再分解。
即每个字段中的值都是不可再分解的最小单位。
2. 第二范式(2NF):在1NF的基础上,消除非主键字段对主键字段的部分依赖。
即每个非主键字段都必须完全依赖于主键字段。
3. 第三范式(3NF):在2NF的基础上,消除非主键字段对其他非主键字段的传递依赖。
即任何非主键字段都不依赖于其他非主键字段。
通过规范化的过程,我们能够将数据表分解为更小、更精确的关系表,减少冗余数据,提高数据的一致性。
三、数据一致性与完整性保障数据库设计和规范化的过程可以帮助我们确保数据的一致性和完整性。
新SQL——SERVER实验练习

实用文档SQL-Server实验答案上海师范大学计算机系目录第一部分企业管理器的使用 (4)试验一注册服务器....................................... 错误!未定义书签。
试验二创建数据库....................................... 错误!未定义书签。
试验三创建表........................................... 错误!未定义书签。
实验四数据输入......................................... 错误!未定义书签。
实验五登录到数据库服务器............................... 错误!未定义书签。
第二部分 SQL语言 (4)第二部分 SQL语言 (4)试验一数据库创建 (4)试验二创建表 (4)试验三创建数据完整性 (6)试验四数据完整性试验 (8)试验五索引 (11)试验六更新数据 (12)试验七 Sql 查询语句 (13)试验八视图 (16)试验九安全性控制实验 (17)试验十存储过程 (18)试验十二触发器 (23)试验十二恢复技术 (26)试验十三事务 (27)试验十四锁 (28)第一部分企业管理器的使用第二部分 SQL语言试验一数据库创建目的:1掌握利用SQL语言进行数据库的创建、维护。
2 sp_helpdb 命令要求:1 创建数据库 2 修改数据库 3 删除数据库一建立school 数据库1 使用查询分析器创建数据库 schoolCreate DataBase school2 使用 SP_helpdb 查询数据库 School 的信息3 使用SQL-Server 的企业管理器查看数据库 school 的信息。
4 记录:1)school 数据库文件所在的文件夹。
2)school 数据库的文件名二删除School数据库1 使用查询分析器删除数据库 schoolDROP DATABASE school2 使用SQL-Server 的企业管理器删除数据库 school 。
实验三、四创建表及输入数据及完整性约束

实验三、四 创建表及输入数据及完整性约束本实验需要4学时。
一、实验目的要求学生熟练掌握和使用Transact-SQL、SQL Server企业管理器创建表、索引和修改表结构,并学会使用SQL Server 查询分析器接收Transact-SQL语句和进行结果分析。
学生熟练掌握使用 SQL、Transact-SQL和SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。
二、实验内容1 创建表、确定表的主码和约束条件。
为主码建索引。
2 查看和修改表结构。
3 输入数据、修改数据和删除数据三、实验步骤(1)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为;图书(书号,类别,出版社,作者,书名,定价,作者).读者(编号,姓名,单位,性别,电话).借阅(书号,读者编号,借阅日期)要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。
(2)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。
(3)通过企业管理器,在图书借阅数据库的图书、读者和借阅3个表中各输入10条记录。
要求记录不仅满足数据约束要求.还要有表间关联的记录。
(4)通过企业管理器实现对图书借阅数据库的图书、读者和借阅3个表中数据的插入。
删除和修改操作。
(5)通过企业管理器实现对学生选课库的数据增加、数据删除和数据修改操作、要求学生、课程和选课表中各有10条以上的记录。
四、实验方法1 新建表在 SQL Serve 2000的数据库中,文件夹是按数据库对象的类型建立的.文件夹名是该数据库对象名。
当在企业管理器中选择服务器和数据库文件夹,并打开已定义好的图书.读者数据库后,会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。
MYSQL练习题及答案

题目一问题描述:为管理岗位业务培训信息,建立3个表:S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄C (C#,CN ) C#,CN 分别代表课程编号、课程名称SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名--实现代码:SELECT SN,S# FROM SWHERE [S#] IN(SELECT [S#] FROM C,SCWHERE C.[C#]=SC.[C#]AND CN=N\'税收基础\')2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位--实现代码:SELECT S.SN,S.SD FROM S,SCWHERE S.[S#]=SC.[S#]AND SC.[C#]=\'C2\'3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位--实现代码:SELECT SN,SD FROM SWHERE [S#] NOT IN(SELECT [S#] FROM SCWHERE [C#]=\'C5\')4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位--实现代码:SELECT SN,SD FROM SWHERE [S#] IN(SELECT [S#] FROM SCRIGHT JOINC ON SC.[C#]=C.[C#] GROUP BY [S#]HAVING COUNT(*)=COUNT([S#]))5. 查询选修了课程的学员人数--实现代码:SELECT 学员人数=COUNT(DISTINCT [S#]) FROM SC6. 查询选修课程超过5门的学员学号和所属单位--实现代码:SELECT SN,SD FROM SWHERE [S#] IN(SELECT [S#] FROM SCGROUP BY [S#]HAVING COUNT(DISTINCT [C#])>5)题目二问题描述:本题用到下面三个关系表:CARD 借书卡。
数据库题库及答案

数据库1. 在关系数据库系统中,当关系的模式改变时,用户程序也可以不变,这是()[单选题] *A.数据的物理独立性B.数据的逻辑独立性(正确答案)C.数据的位置独立性D.数据的存储独立性2. E-R图用于描述数据库的() [单选题] *A.数据模型B.概念模式(正确答案)C.存储模型D.逻辑模型3. 在建立表时,将年龄字段值限制在18-40之间,这种约束属于() [单选题] * A.实体完整性约束B.用户定义完整性约束(正确答案)C.参照完整性约束D.视图完整性约束4. SQL是一种()语言。
[单选题] *A.高级算法B.人工智能C.关系数据库(正确答案)D.函数型5. SQL语言按其功能可分为4类,包括查询语言、定义语言、操纵语言和控制语言,其中最重要的,使用最频繁的语言为()。
[单选题] *A.定义语言B.查询语言(正确答案)C.操纵语言D.控制语言6. 要保证数据库的数据独立性,需要修改的是()。
[单选题] *A.三层模式之间的两种映射(正确答案)B.模式与内模式C.模式与外模式D.三层模式7. 下列SQL语句中,实现数据记录修改的语句是()。
[单选题] *A. ALTERB. UPDATE(正确答案)C. CREATED.SELECT8. 两个表的记录数为5和4,对两个表执行连接查询,查询结果最多得到()条记录。
[单选题] *A.16B.63C.20(正确答案)D.29. 以下操作不会对数据库安全性产生威胁的是()。
[单选题] *A.非授权用户对数据库的恶意存取和破坏B.数据中重要或敏感的数据被泄露C.安全环境的脆弱D.授权给有资格的用户访问数据库的权限(正确答案)10. 视图是一个“虚表”,视图的构造基于()。
[单选题] *A.基本表B.视图C.基本表或视图(正确答案)D.数据字典11. 一个关系中的候选关键字()。
[单选题] *A.至多一个B.可多个(正确答案)C.必须多个D.至少三个12. 在数据库中,产生数据不一致的根本原因是。
实验六 数据库的完整性定义与检查 (2)

实验六数据库的完整性定义与检查实验目的:1.充分理解关系数据库中关于数据库完整性的概念。
2.掌握实体完整性的定义和检查方法。
3.掌握参照完整性的定义和检查方法。
4.掌握用户自定义完整性的定义和检查方法。
实验内容:一、在企业管理器中定义以下数据表中各字段的完整性约束(包括实体完整性、参照完整性和用户定义完整性)。
1.Student表。
记录学生基本信息。
表1-1 Student 表结构[Sno] [char](9)PRIMARY KEY,[Sname] [char](8)NOT NULL,[Ssex] [char](2)CHECK(Ssex IN('女','男')),[Sage] SMALLINT CHECK(Sage>=15 AND Sage<=45),[Sdept] [char](20)default('计算机'))2.Course表。
记录课程信息。
表1-2 Course 表结构[Cno] [char](10)PRIMARY KEY,[Cname] [char](20)NOT NULL,[Ccredit] SMALLINT CHECK(Ccredit>0),[Semester] SMALLINT CHECK(Semester>0),[Period] SMALLINT CHECK(Period>0),)3.Sc表。
记录学生选修课程的信息。
表1-3 Sc 表结构[Sno] [char](9)NOT NULL,[Cno] [char](10)NOT NULL,[Grade]SMALLINT CHECK(Grade>=0 and Grade<=100),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno))二、在查询编辑器中,写出创建表的语句同时写出设置实体完整性、参照完整性和用户自定义完整性的语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机科学与技术系
实验报告
专业名称计算机科学与技术
课程名称数据库系统及应用
项目名称建立表和定义完整性约束
班级
学号
姓名
实验日期 2015/10/27
一、实验目的与要求:熟练掌握表的建立和数据完整性约束的定义方法,实践DBMS提供的数据完整性功能,加深对数据完整性的理解。
实验要求:(1)用CREATE DATABASE命令建立数据库(自己命名数据库的名称)。
(2)用CREATE SCHEMA命令建立架构(自己命名架构的名称)。
(3)在定义的架构下参考课本138页图5-1所示的样本数据库和表5-8具体要求使用TABLE命令建立表并定义完整性约束。
(4)使用ALTER TABLE命令按如下要求修改表结构:
①为学生表增加一个“平均成绩”字段,类型为短整形,默认是空值;
②为课程表的“学时”字段重新定义约束:取值为8的倍数,不允许为空值;
③将院系表的名称字段的类型修改为varchar(30)。
④为教师表增加一个工资字段,类型为5位整数、2位小数的数值型。
二、实验方法:(代码)
--create database
create database 学生管理系统
create table yuanxi
(
编号 smallint primary key,
名称 char(20) unique not null,
负责人 char(10),
办公地点 char(20)
)
--drop table yuanxi
create table xuesheng
(
学号 char(8) primary key,
院系 smallint foreign key references yuanxi(编号),
姓名 char(10) not null,
性别 char(2) check (性别 = '男' or 性别 = '女'),
生源 char(6),
状态 char(4) check (状态 = '正常' or 状态 = '留级' or 状态 = '休学' or 状态 = '退学') )
create table jiaoshi
(
教师编号 char(8) primary key,
院系 smallint foreign key references yuanxi(编号),
姓名 char(10) not null,
性别 char(2) check (性别 = '男' or 性别 = '女'),
职称 char(6) check (职称 = '教授' or 职称 = '副教授' or 职称 = '讲师' or 职称 = '助教'), 专业 char(10)
)
create table kecheng
(
课程编号 char(8) primary key,
课程名称 char(20) not null,
负责讲师 char(8) foreign key references jiaoshi(教师编号),
学时 smallint not null,
课程性质 char(10) check(课程性质 = '公共基础' or 课程性质 = '专业基础' or 课程性质 = '专业选修' or 课程性质 = '任意选修')
)
create table xuanke
(
学号 char(8)
foreign key references xuesheng(学号),
课程编号 char(8) foreign key references kecheng(课程编号),
成绩 smallint check(成绩 >= 0 and 成绩 <=100) default null ,
primary key(学号,课程编号)
)
--drop table xuanke
alter table xuesheng
add 平均成绩 smallint default null
alter table xuesheng
drop column 平均成绩
alter table jiaoshi
add 工资 numeric(5,2)
alter table yuanxi
alter column 名称 varchar(30)
alter table kecheng
add check (学时 / 8 =0)
三、实验分析与小结:
数据库是一门很难学的课程,而且,我在平时比较少关注这方面的东西,所以,我在做这个实验的时候就觉得十分的困难。
很多的时候我都需要别人的帮助。
我是一个比较粗心的人,因此,我在做这个实验的时候没有留意输入的时候要用英文符号,要加空格。
所以,我总是出现错误,让我觉得很烦恼。
但是,在做这个实验的时候,我觉得一点快乐。
因为我又接触了以前我从未接触过的东西,我又学了一点新的知识。
过程是最重要的,在这个实验过程中我学会了新知识,这是最重要的。
得分(百分制)。