数据库中的五种约束
三级数据库技术

数据库的三级模式由外模式、模式、内模式构成。
数据库管理系统在这三种模式之间提供了两层映像。
外模式是用户可见的部分数据的存在模式;模式可以等价为全体数据的逻辑结构,且用户不可见,是三级模式的中间部分;内模式对应数据库的物理结构和存储方式。
当模式改变时,由数据库管理员对各个外模式/模式的映像作相应的改变,但是外模式可以不变。
应用程序是依据数据库的外模式编写的,从而应用程序可以不必修改,因此,外模式/模式映像保证了数据与程序的逻辑独立性。
模式/内模式映像提供了物理独立性。
三级加锁协议也称为三级封锁协议,它保证正确的调度事务的并发操作,是事务对数据库对象加锁、解锁必须遵守的一种原则数据库的转储机制一般有完全转储、差量转储和增量转储三种。
完全转储是指对整个数据库中的数据全部重新备份,效率低,时间长;差量转储是指基于上一次完全转储基点之后变化转储,是对上一次转储之后对所有文件中修改或删除的记录的转储,效率高,时间短;增量转储是对数据库中凡是有记录变化的文件的整个文件进行复制,效率介于两种转储方式之间数据仓库是为了构建新的分析处理环境而出现的一种数据存储和组织技术,基本特征包括:数据是面向主题的、集成的、非易失的看,随时间不断变化的数据集合,用来支持管理员的决策。
关系模式描述关系的静态结构,它是静态的、稳定的关系是动态、随用户对数据库的操作而变化的数据库系统设计的六个阶段:需求分析概念和意义:描述:对待开发的系统要做什么,完成什么功能的全面描述主要任务:分析清楚当前系统的业务流程,包括系统的体系结构,各职称部门完成的主要任务,各职称部门之间的关系及其交流的信息存在的问题:分析清楚系统存在的问题,包括需要解决的问题具体工作:通过对需求的调查、了解、观看和分析,采用已经证实的技术方法和工具,对原始材料进行加工整理,得到有关目标系统需要实现的功能以及其相互关系等一系列活动的集合。
目标:以使用者和开发人员都容易理解的文档形式提供一个关于目标系统所完成的全部功能以及性能等需求的完整描述,以保证目标系统后续阶段,如设计、编码、测试等阶段工作的顺利完成,为最终开发出一个满意度高的系统打下基础最终结果:以模型图的形式展示,如:DFD图、IDEF0图基本要求:需求描述要准确、清楚、一致、不存在任何不完全、含混或者二义性的描述需求获取的困难:软件功能复杂、需求的可变性、软件产品的不可见性需求获取的方法面谈问卷调查实地观察查阅资料需求分析的过程:标识问题建立需求模型描述需求(产出需求文档)需求确认需求分析的方法:DFD需求建模方法:也被称为过程建模和功能建模方法,核心是数据流,,从应用系统的数据流着手,以图形方式刻画和表示一个具体业务系统中的数据处理过程和数据流基本元素:规则:父图中描述过的数据流必须要在相应的子图中出现一个处理至少有一个输入流和一个输出流一个存储必定有流入的数据流和流出的数据流一个数据流至少有一端是处理框模型图中表达和描述的信息是全面的、完整的、正确的和一致的IDEF0方法IDEF0侧重描述系统功能需求,被称为功能建模方法左箭头:数据的输入右箭头:输出的结果上箭头:约束的机制下箭头:完成活动所需要的资源数据库结构设计概念结构设计概念设计的依据:需求分析阶段的文档概念设计的步骤:明确建模目标-定义实体集-定义联系-建立信息模型-确定实体属性-对信息模型进行集成与优化数据建模方法:ER模型:功能建模方法实体或实例:客观存在并且可以相互区分的事物(可以是具体的人或物,如:张三、一辆汽车等,也可以是抽象的概念,如:学生的一次选课,一场演出)实体集:实体的集合属性:实体的性质和特征域:属性的取值范围如:属性性别的域为:男、女码:实体集中能唯一标识每一个实例的属性或属性组如:实体集学生的码为学号或身份证联系:描述实体之间的关系一对一(1:1)一对多(1:n)多对多(m:n)IDEF1X建模方法:侧重分析、抽象和概括应用领域中的数据需求被称为数据建模方法建模元素:实体集联系实体集:在IDEF1x中,每一个实体集定义有一个唯一的名字和编码,名字和编码之间用斜杠/ 写在矩形框的上方,编码应该是正整数独立标识符实体集或独立实体集:一个实体集的每个实例都能被唯一的标识而不决定于他与其他实体集的联系从属标识符实体集或从属实体集:实体集的一个实例的唯一依赖于该实体集于其他实体集的联系联系:子实体集一侧有圆圈,联系名备注在直线旁标定型联系:儿子实体的实例都是由它与父亲实体的联系而确定,父亲实体的主关键字是儿子实体主关键字的一部分实直线表示非标定型联系:儿子实体的实例能够被唯一标识而无需依赖其与实体的联系,父亲实体的主关键字不是儿子实体的主关键字虚直线表示分类联系:一个实体实例是由一个一般实体实例及一个分类实体实例构成的一个一般实体实例是若干具体实例(分类实体)的类分类实体与一般实体具有相同的标识符不同分类实体除具有一般实体特征外,各自还可能具有不同的属性特征一圆圈带两横线:完全分类联系,一圆圈带一横线:非完全分类联系非确定联系:逻辑结构设计数据库逻辑设计的依据:信息模型和数据库概念设计说明书数据库逻辑设计的任务:把数据库概念设计的结果(ER图)转换为数据库管理系统支持的数据模型(常见的为关系模型)逻辑设计是面向机器世界的将ER图转换为关系模型:标识ER模型中的联系-》依次转换为与每个联系相关联的实体集及联系1.实体集转换为关系:实体集对应于一个关系关系名:与实体集相同属性:实体集的所有属性主码:实体集的主码2.联系转换为关系模式:1:1 将1:1联系转换为一个独立的关系将1:1联系与某一端实体集所对应的关系合并1:n 一种方法是将联系转换为一个独立的关系,其关系的属性由与该联系相关的各实体集的码以及联系本身的属性组成,而该关系的码为n端实体集的码另一种的方法是在n端实体集中增加新属性,新属性由联系对应的1端实体集的码和联系自身的属性构成,新增属性后原关系的码不变M:n 与该联系相连的各实体集的码以及联系本身的属性均转换为关系的属性,新关系的码为两个相连实体码的组合(该码为多属性构成的组合码)1:1:1 转换成的三个关系中,在一个关系模式中加入另外两个关系模式的码和联系的属性1:1:n 将n端添加另外两端的主键和联系的属性1:m:n 联系类型需转换为关系模式,属性为m端和n端的实体类型的键加上联系的属性,码为m端和n端的实体键组合M:n:p 联系类型转换为关系模式,属性为三端实体类型的键加上联系的属性,码为三端实体键的组合物理结构设计数据库应用系统功能设计与实施功能设计:总体设计、概要设计、详细设计事务设计:事务概要设计、事务详细设计DBAS概要设计功能角度DBAS四个层次:表示层、业务逻辑层、数据访问层、数据持久层表示层概要设计:人机界面设计业务逻辑层概要设计:梳理DBAS的各项业务活动业务逻辑层::数据持久层DBAS详细设计表示层详细设计:原型迭代法业务逻辑层:对概要设计的细化通过UML类图、活动图、协作图描述DBAS对用户业务的详细实现逻辑设计内部处理流程和算法、具体数据结构、对外详细接口等数据安全设计安全性保护、完整性保护、并发控制、数据库的备份和恢复、数据加密传输数据的安全性保护方式:用户身份鉴别、权限控制、视图机制复制数据库的方法有:1、使用复制数据库向导在服务器之间复制或移动数据库2、还原数据库备份,若要复制整个数据库,可以使用BACKUP和RESTORE Transact-SQL语句触发器是用户定义在关系表上的一类由时间驱动的特殊过程。
关于SQLServer数据表的五种约束

关于SQLServer数据表的五种约束
1、主键约束(PRIMARY KEY)
主键约束可以在表中定义⼀个主键值,它可以唯⼀确定表中每记录,每个表中只能有⼀个主键约束(只能有⼀个主键约束的意思并不是说受主键约束的列只能有⼀个),并且受主键约束的列不能为空值。
如果主键约束定义在不⽌⼀列上,则某⼀列中的值可以存在重复,但是受主键约束的所有列的组合值必须唯⼀。
2、唯⼀性约束(UNIQE)
唯⼀性约束确保在⾮主键列中不输⼊重复的值。
⽤于指定⼀个或多个列的组合具有唯⼀性,以防⽌在列中输⼊重复的值。
可以在⼀个表中定义多个唯⼀性约束,但是只能定义⼀个主键约束。
唯⼀性约束允许空值,但是当和参与唯⼀性约束的任何值⼀起使⽤时,每列只允许⼀个空值。
3、检查约束
检查约束对于输⼊列或者整个表中的值设置检查条件,可以限制输⼊值,以保证之间的完整性。
检查约束通过数据的逻辑表达式来确定有效值。
例如:定义⼀个age年龄字段,可以通过创建CHECK约束条件,将age字段⾥⾯的值的范围限定在0到150之间(age >=0 AND
age<=150)。
每个字段只能设置⼀个检查约束。
检查约束中不能包含⼦查询。
⼀个列级检查约束只能与限制的字段有关,⼀个表级检查约束只能与限制的表中的字段有关。
4、默认约束
默认约束指定在插⼊操作中如果没有提供输⼊值时,系统会⾃动制定插⼊值,即使该值是NULL。
当必须向表中加载⼀⾏数据但是不知道某⼀列的值,或者是该值尚不存在时,此时可以使⽤默认值约束。
5、外键约束。
数据库第五章习题及答案

数据库第五章习题及答案本文档为数据库第五章的习题及答案,帮助读者巩固数据库相关知识。
习题1. 数据库的优点有哪些?数据库具有以下优点: - 数据共享:多个用户可以同时访问和共享数据库中的数据。
- 数据一致性:数据库提供事务管理能力,保证了数据的一致性。
- 数据持久性:数据在数据库中是永久存储的,不会因为系统关机或程序结束而丢失。
- 数据冗余度低:数据库通过规范化设计,减少了数据的冗余性,提高了数据的存储效率。
- 数据独立性:数据库支持数据与应用程序的独立性,提高了系统的灵活性和维护性。
- 数据安全性:数据库提供了用户权限管理和数据备份机制,保证了数据的安全性。
2. 数据库的三级模式结构是什么?数据库的三级模式结构包括: - 外模式(视图层):外模式是用户所看到的数据库的子集,用于描述用户对数据库的逻辑视图。
每个用户可以有不同的外模式来满足自己的需求。
- 概念模式(逻辑层):概念模式是全局数据库的逻辑结构和组织方式,描述了数据的总体逻辑视图。
概念模式独立于具体的应用程序,是数据库管理员的角度来看待数据库的。
- 内模式(物理层):内模式是数据库的存储结构和物理组织方式,描述了数据在存储介质上的实际存储方式。
3. 数据库的完整性约束有哪些?数据库的完整性约束包括: - 实体完整性约束:确保表的主键不为空,每个实体都能够唯一标识。
- 参照完整性约束:确保外键的引用关系是有效的,即外键值必须等于被引用表中的主键值或者为空。
- 用户定义完整性约束:用户可以自定义额外的完整性约束,如检查约束、唯一约束、默认约束等。
4. 数据库的关系模型有哪些特点?数据库的关系模型具有以下特点: - 数据用二维表的形式进行组织,表由行和列组成,每一行表示一个实体,每一列表示一个属性。
- 表与表之间通过主键和外键建立关联关系,形成关系。
- 关系模型提供了一种数据独立性的设计方法,使得应用程序与数据的逻辑结构相分离,提高了系统的灵活性和可维护性。
firebird数据库语法

firebird数据库语法Firebird数据库是一种开源的关系型数据库管理系统,它采用SQL 语言进行数据操作和管理。
本文将介绍Firebird数据库的语法和用法,帮助读者更好地了解和使用Firebird数据库。
一、Firebird数据库的基本概念Firebird数据库是基于关系模型的数据库系统,它由多个表组成,每个表包含多个列,用于存储和管理数据。
Firebird数据库使用SQL语言进行数据的增删改查操作,可以灵活地满足各种应用程序的需求。
二、Firebird数据库的表操作在Firebird数据库中,可以使用CREATE TABLE语句创建表,语法如下:CREATE TABLE 表名(列1 数据类型,列2 数据类型,...);例如,创建一个名为"students"的表,包含"id"和"name"两列,数据类型分别为整数和字符串,可以使用以下语句:CREATE TABLE students(id INTEGER,name VARCHAR(50));三、Firebird数据库的数据插入操作在Firebird数据库中,可以使用INSERT INTO语句向表中插入数据,语法如下:INSERT INTO 表名 (列1, 列2, ...)VALUES (值1, 值2, ...);例如,向"students"表中插入一条数据,可以使用以下语句:INSERT INTO students (id, name)VALUES (1, '张三');四、Firebird数据库的数据查询操作在Firebird数据库中,可以使用SELECT语句查询表中的数据,语法如下:SELECT 列1, 列2, ...FROM 表名WHERE 条件;例如,查询"students"表中所有数据,可以使用以下语句:SELECT id, nameFROM students;五、Firebird数据库的数据更新操作在Firebird数据库中,可以使用UPDATE语句更新表中的数据,语法如下:UPDATE 表名SET 列1 = 值1, 列2 = 值2, ...WHERE 条件;例如,将"students"表中id为1的记录的name更新为"李四",可以使用以下语句:UPDATE studentsSET name = '李四'WHERE id = 1;六、Firebird数据库的数据删除操作在Firebird数据库中,可以使用DELETE FROM语句删除表中的数据,语法如下:DELETE FROM 表名WHERE 条件;例如,删除"students"表中id为1的记录,可以使用以下语句:DELETE FROM studentsWHERE id = 1;七、Firebird数据库的数据排序操作在Firebird数据库中,可以使用ORDER BY子句对查询结果进行排序,语法如下:SELECT 列1, 列2, ...FROM 表名ORDER BY 列 [ASC|DESC];其中,ASC表示升序排序,DESC表示降序排序。
数据库的约束简介

数据库的约束简介约束的简介数据的完整性是指数据的正确性和⼀致性,可以通过定义表时定义完整性约束,也可以通过规则,索引,触发器等。
约束分为两类:⾏级和表级,处理机制是⼀样的。
⾏级约束放在列后,表级约束放在表后,多个列共⽤的约束放在表后。
完整性约束是⼀种规则,不占⽤任何数据库空间。
完整性约束存在数据字典中,在执⾏SQL或PL/SQL期间使⽤。
⽤户可以指明约束是启⽤的还是禁⽤的,当约束启⽤时,他增强了数据的完整性,否则,则反之,但约束始终存在于数据字典中。
约束类型总的来说有五种:唯⼀性和主键约束、外键约束、检查约束、空值约束、默认值约束,有五⼤关键词,UNIQUE和Primary Key, Foreign Key, CHECK, NOT NULL, DEFAULT1。
唯⼀性和主键约束。
要求某⼀列,或⼏列不能有重复的值,建⽴主键约束和唯⼀约束时,Oralce会基于约束列⾃动建⽴唯⼀索引;主键约束不允许为NULL,唯⼀约束允许为NULL,⼀张表只能建⽴⼀个主键约束。
唯⼀性和主键约束类似,只是关键词不同⽽已,语法⼀致。
创建约束CREATE TABLE TABLE_NAME(COL1 VARCHAR2(32) NOT NULL PRIMARY KEY,)CREATE TABLE TABLE_NAME(COL1 VARCHAR2(32) NOT NULL CONSTRAINT PK_ID PRIMARY KEY,)CREATE TABLE TABLE_NAME(COL1 VARCHAR2(32) NOT NULL,COL2 VARCHAR2(32) NOT NULL Foreign Key,CONSTRAINT PK_TABLE_NAME PRIMARY KEY(COL1,COL2))修改约束ALTER TABLE Table_NameADD CONSTRAINT PK_Table_Name PRIMARY KEY NONCLUSTERED(Col1)【这⾥表明了是聚集还是⾮聚集主键索引】如果唯⼀性约束保护多个数据列,那么唯⼀性约束要作为表约束增加。
表的5种约束

表的5种约束表共有五种约束,它们是主键、⾮空、惟⼀、检查和外键。
1.主键(PRIMARY KEY)主键是表的主要完整性约束条件,主键惟⼀地标识表的每⼀⾏。
⼀般情况下表都要定义主键,⽽且⼀个表只能定义⼀个主键。
主键可以包含表的⼀列或多列,如果包含表的多列,则需要在表级定义。
主键包含了主键每⼀列的⾮空约束和主键所有列的惟⼀约束。
主键⼀旦成功定义,系统将⾃动⽣成⼀个B*树惟⼀索引,⽤于快速访问主键列。
⽐如图书表中⽤“图书编号”列作主键,“图书编号”可以惟⼀地标识图书表的每⼀⾏。
主键约束的语法如下:[CONSTRANT 约束名] PRIMARY KEY --列级[CONSTRANT 约束名] PRIMARY KEY(列名1,列名2,...) --表级2.⾮空(NOT NULL)⾮空约束指定某列不能为空,它只能在列级定义。
在默认情况下,Oracle允许列的内容为空值。
⽐如“图书名称”列要求必须填写,可以为该列设置⾮空约束条件。
⾮空约束语法如下:[CONSTRANT 约束名] NOT NULL --列级3.惟⼀(UNIQUE)惟⼀约束条件要求表的⼀列或多列的组合内容必须惟⼀,即不相重,可以在列级或表级定义。
但如果惟⼀约束包含表的多列,则必须在表级定义。
⽐如出版社表的“联系电话”不应该重复,可以为其定义惟⼀约束。
惟⼀约束的语法如下:[CONSTRANT 约束名] UNIQUE --列级[CONSTRANT 约束名] UNIQUE(列名1,列名2,...) --表级4.检查(CHECK)检查约束条件是⽤来定义表的⼀列或多列的⼀个约束条件,使表的每⼀列的内容必须满⾜该条件(列的内容为空除外)。
在CHECK条件中,可以调⽤SYSDATE、USER等系统函数。
⼀个列上可以定义多个CHECK约束条件,⼀个CHECK约束可以包含⼀列或多列。
如果CHECK约束包含表的多列,则必须在表级定义。
⽐如图书表的“单价”的值必须⼤于零,就可以设置成CHECK约束条件。
数据库系统概论(第五版)王珊第五章课后习题答案

数据库系统概论(第五版)王珊第五章课后习题答案1什么是数据库的完整性?答:数据库的完整性是指数据的正确性和相容性。
2 .数据库的完整性概念与数据库的安全性概念有什么区别和联系?答:数据的完整性和安全性是两个不同的概念,但是有⼀定的联系。
前者是为了防⽌数据库中存在不符合语义的数据,防⽌错误信息的输⼊和输出,即所谓垃圾进垃圾出( Garba : e In Garba : e out )所造成的⽆效操作和错误结果。
后者是保护数据库防⽌恶意的破坏和⾮法的存取。
也就是说,安全性措施的防范对象是⾮法⽤户和⾮法操作,完整性措施的防范对象是不合语义的数据。
3 .什么是数据库的完整性约束条件?可分为哪⼏类?答完整性约束条件是指数据库中的数据应该满⾜的语义约束条件。
⼀般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。
静态列级约束是对⼀个列的取值域的说明,包括以下⼏个⽅⾯: ( l )对数据类型的约束,包括数据的类型、长度、单位、精度等; ( 2 )对数据格式的约束; ( 3 )对取值范围或取值集合的约束; ( 4 )对空值的约束; ( 5 )其他约束。
静态元组约束就是规定组成⼀个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。
静态关系约束是在⼀个关系的各个元组之间或者若⼲关系之间常常存在各种联系或约束。
常见的静态关系约束有: ( l )实体完整性约束; ( 2 )参照完整性约束; ( 3 )函数依赖约束。
动态列级约束是修改列定义或列值时应满⾜的约束条件,包括下⾯两⽅⾯: ( l )修改列定义时的约束; ( 2 )修改列值时的约束。
动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满⾜某种约束条件。
动态关系约束是加在关系变化前后状态上的限制条件,例如事务⼀致性、原⼦性等约束条件。
4 . DBMS 的完整性控制机制应具有哪些功能?答:DBMS 的完整性控制机制应具有三个⽅⾯的功能: ( l )定义功能,即提供定义完整性约束条件的机制; ( 2 )检查功能,即检查⽤户发出的操作请求是否违背了完整性约束条件;( 3 )违约反应:如果发现⽤户的操作请求使数据违背了完整性约束条件,则采取⼀定的动作来保证数据的完整性。
数据库系统概论第五版课后习题答案

第1章绪论1 .试述数据、数据库、数据库系统、数据库管理系统的概念..答:l 数据 Data :描述事物的符号记录称为数据..数据的种类有数字、文字、图形、图像、声音、正文等..数据与其语义是不可分的..解析在现代计算机系统中数据的概念是广义的..早期的计算机系统主要用于科学计算;处理的数据是整数、实数、浮点数等传统数学中的数据..现代计算机能存储和处理的对象十分广泛;表示这些对象的数据也越来越复杂..数据与其语义是不可分的.. 500 这个数字可以表示一件物品的价格是 500 元;也可以表示一个学术会议参加的人数有 500 人;还可以表示一袋奶粉重 500 克..2 数据库 DataBase ;简称 DB :数据库是长期储存在计算机内的、有组织的、可共享的数据集合..数据库中的数据按一定的数据模型组织、描述和储存;具有较小的冗余度、较高的数据独立性和易扩展性;并可为各种用户共享..3 数据库系统 DataBas .. Sytem ;简称 DBS :数据库系统是指在计算机系统中引入数据库后的系统构成;一般由数据库、数据库管理系统及其开发工具、应用系统、数据库管理员构成..解析数据库系统和数据库是两个概念..数据库系统是一个人一机系统;数据库是数据库系统的一个组成部分..但是在日常工作中人们常常把数据库系统简称为数据库..希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”;不要引起混淆..4 数据库管理系统 DataBase Management sytem ;简称 DBMs :数据库管理系统是位于用户与操作系统之间的一层数据管理软件;用于科学地组织和存储数据、高效地获取和维护数据.. DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能..解析 DBMS 是一个大型的复杂的软件系统;是计算机中的基础软件..目前;专门研制 DBMS 的厂商及其研制的 DBMS 产品很多..著名的有美国 IBM 公司的 DBZ 关系数据库管理系统和 IMS 层次数据库管理系统、美国 Oracle 公司的orade 关系数据库管理系统、 s 油 ase 公司的 s 油 ase 关系数据库管理系统、美国微软公司的 SQL Serve ;关系数据库管理系统等..2 .使用数据库系统有什么好处答:使用数据库系统的好处是由数据库管理系统的特点或优点决定的..使用数据库系统的好处很多;例如;可以大大提高应用开发的效率;方便用户的使用;减轻数据库系统管理人员维护的负担;等等..使用数据库系统可以大大提高应用开发的效率..因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径;这些工作都由 DBMS 来完成..用一个通俗的比喻;使用了 DBMS 就如有了一个好参谋、好助手;许多具体的技术工作都由这个助手来完成..开发人员就可以专注于应用逻辑的设计;而不必为数据管理的许许多多复杂的细节操心..还有;当应用逻辑改变;数据的逻辑结构也需要改变时;由于数据库系统提供了数据与程序之间的独立性;数据逻辑结构的改变是 DBA 的责任;开发人员不必修改应用程序;或者只需要修改很少的应用程序;从而既简化了应用程序的编制;又大大减少了应用程序的维护和修改..使用数据库系统可以减轻数据库系统管理人员维护系统的负担..因为 DBMS 在数据库建立、运用和维护时对数据库进行统一的管理和控制;包括数据的完整性、安全性、多用户并发控制、故障恢复等;都由 DBMS 执行..总之;使用数据库系统的优点是很多的;既便于数据的集中管理;控制数据冗余;提高数据的利用率和一致性;又有利于应用程序的开发和维护..读者可以在自己今后的工作中结合具体应用;认真加以体会和总结..3 .试述文件系统与数据库系统的区别和联系..答:文件系统与数据库系统的区别是:文件系统面向某一应用程序;共享性差;冗余度大;数据独立性差;记录内有结构;整体无结构;由应用程序自己控制..数据库系统面向现实世界;共享性高;冗余度小;具有较高的物理独立性和一定的逻辑独立性;整体结构化;用数据模型描述;由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力..文件系统与数据库系统的联系是:文件系统与数据库系统都是计算机系统中管理数据的软件..解析文件系统是操作系统的重要组成部分;而 DBMS 是独立于操作系统的软件..但是 DBMS 是在操作系统的基础上实现的;数据库中数据的组织和存储是通过操作系统中的文件系统来实现的..4 .举出适合用文件系统而不是数据库系统的例子;再举出适合用数据库系统的应用例子..答:l 适用于文件系统而不是数据库系统的应用例子数据的备份、软件或应用程序使用过程中的临时数据存储一般使用文件比较合适..早期功能比较简单、比较固定的应用系统也适合用文件系统..2 适用于数据库系统而非文件系统的应用例子目前;几乎所有企业或部门的信息系统都以数据库系统为基础;都使用数据库..例如;一个工厂的管理信息系统其中会包括许多子系统;如库存管理系统、物资采购系统、作业调度系统、设备管理系统、人事管理系统等;学校的学生管理系统;人事管理系统;图书馆的图书管理系统;等等;都适合用数据库系统..希望读者能举出自己了解的应用例子..5 .试述数据库系统的特点..答:数据库系统的主要特点有:l 数据结构化数据库系统实现整体数据的结构化;这是数据库的主要特征之一;也是数据库系统与文件系统的本质区别..解析注意这里的“整体’夕两个字..在数据库系统中;数据不再针对某一个应用;而是面向全组织;具有整体的结构化..不仅数据是结构化的;而且数据的存取单位即一次可以存取数据的大小也很灵活;可以小到某一个数据项如一个学生的姓名;大到一组记录成千上万个学生记录..而在文件系统中;数据的存取单位只有一个:记录;如一个学生的完整记录..2 数据的共享性高;冗余度低;易扩充数据库的数据不再面向某个应用而是面向整个系统;因此可以被多个用户、多个应用以多种不同的语言共享使用..由于数据面向整个系统;是有结构的数据;不仅可以被多个应用共享使用;而且容易增加新的应用;这就使得数据库系统弹性大;易于扩充..解析数据共享可以大大减少数据冗余;节约存储空间;同时还能够避免数据之间的不相容性与不一致性..所谓“数据面向某个应用”是指数据结构是针对某个应用设计的;只被这个应用程序或应用系统使用;可以说数据是某个应用的“私有资源”..所谓“弹性大”是指系统容易扩充也容易收缩;即应用增加或减少时不必修改整个数据库的结构;只需做很少的改动..可以取整体数据的各种子集用于不同的应用系统;当应用需求改变或增加时;只要重新选取不同的子集或加上一部分数据;便可以满足新的需求..3 数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性..数据库管理系统的模式结构和二级映像功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性..4 数据由 DBMS 统一管理和控制数据库的共享是并发的共享;即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据..为此; DBMS 必须提供统一的数据控制功能;包括数据的安全性保护、数据的完整性检查、并发控制和数据库恢复..解析 DBMS 数据控制功能包括四个方面:数据的安全性保护:保护数据以防止不合法的使用造成的数据的泄密和破坏;数据的完整性检查:将数据控制在有效的范围内;或保证数据之间满足一定的关系;并发控制:对多用户的并发操作加以控制和协调;保证并发操作的正确性;数据库恢复:当计算机系统发生硬件故障、软件故障;或者由于操作员的失误以及故意的破坏影响数据库中数据的正确性;甚至造成数据库部分或全部数据的丢失时;能将数据库从错误状态恢复到某一已知的正确状态亦称为完整状态或一致状态..下面可以得到“什么是数据库”的一个定义:数据库是长期存储在计算机内有组织的大量的共享的数据集合;它可以供各种用户共享;具有最小冗余度和较高的数据独立性.. DBMS 在数据库建立、运用和维护时对数据库进行统一控制;以保证数据的完整性、安全性;并在多用户同时使用数据库时进行并发控制;在发生故障后对系统进行恢复..数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段..6 .数据库管理系统的主要功能有哪些答:l 数据库定义功能;2 数据存取功能;3 数据库运行管理;4 数据库的建立和维护功能..7 .什么是概念模型试述概念模型的作用..答:概念模型;也称信息模型;是按用户的观点来对数据和信息建模;主要用于数据库设计..概念模型实际上是现实世界到机器世界的一个中间层次..概念模型用于信息世界的建模;是现实世界到信息世界的第一层抽象;是数据库设计人员进行数据库设计的有力工具;也是数据库设计人员和用户之间进行交流的语言..8.定义并解释概念模型中以下术语:实体;实体型;实体集;实体之间的联系..答:实体:客观存在并可以相互区分的事物叫实体..实体型:具有相同属性的实体具有相同的特征和性质;用实体名及其属性名集合来抽象和刻画同类实体;称为实体型..实体集:同型实体的集合称为实体集;实体之间的联系:通常是指不同实体型的实体集之间的联系;实体之间的联系有一对一;一对多和多对多等多种类型..9 .试述数据模型的概念、数据模型的作用和数据模型的三个要素..答:数据模型是数据库中用来对现实世界进行抽象的工具;是数据库中用于提供信息表示和操作手段的形式构架..一般地讲;数据模型是严格定义的概念的集合..这些概念精确描述了系统的静态特性、动态特性和完整性约束条件..因此数据模型通常由数据结构、数据操作和完整性约束三部分组成..l 数据结构:是所研究的对象类型的集合;是对系统静态特性的描述..2 数据操作:是指对数据库中各种对象型的实例值允许进行的操作的集合;包括操作及有关的操作规则;是对系统动态特性的描述..3 数据的约束条件:是一组完整性规则的集合..完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则;用以限定符合数据模型的数据库状态以及状态的变化;以保证数据的正确、有效、相容..解析数据模型是数据库系统中最重要的概念之一..必须通过概论的学习真正掌握数据模型的概念和作用..数据模型是数据库系统的基础..任何一个 DBMS 都以某一个数据模型为基础;或者说支持某一个数据模型..数据库系统中;模型有不同的层次..根据模型应用的不同目的;可以将模型分成两类或者说两个层次:一类是概念模型;是按用户的观点来对数据和信息建模;用于信息世界的建模;强调语义表达能力;概念简单清晰;另一类是数据模型;是按计算机系统的观点对数据建模;用于机器世界;人们可以用它定义、操纵数据库中的数据;一般需要有严格的形式化定义和一组严格定义了语法和语义的语言;并有一些规定和限制;便于在机器上实现..10.试述层次模型的概念;举出三个层次模型的实例..答:l 教员学生层次数据库模型2 行政机构层次数据库模型3 行政区域层次数据库模型11.试述网状模型的概念;举出三个网状模型的实例..满足下面两个条件的基本层次联系集合为网状模型..l 允许一个以上的结点无双亲; 2 一个结点可以有多于一个的双亲..实例 1 :实例 2 :实例 3 :12 .试述网状、层次数据库的优缺点..答:层次模型的优点主要有: l 模型简单;对具有一对多层次关系的部门描述非常自然、直观;容易理解;这是层次数据库的突出优点; 2 用层次模型的应用系统性能好;特别是对于那些实体间联系是固定的且预先定义好的应用;采用层次模型来实现;其性能优于关系模型; 3 层次数据模型提供了良好的完整性支持.. 层次模型的缺点主要有: l 现实世界中很多联系是非层次性的;如多对多联系、一个结点具有多个双亲等;层次模型不能自然地表示这类联系;只能通过引入冗余数据或引入虚拟结点来解决; 2 对插入和删除操作的限制比较多; 3 查询子女结点必须通过双亲结点..网状数据模型的优点主要有: l 能够更为直接地描述现实世界;如一个结点可以有多个双亲; 2 具有良好的性能;存取效率较高..网状数据模型的缺点主要有: l 结构比较复杂;而且随着应用环境的扩大;数据库的结构就变得越来越复杂;不利于最终用户掌握; 2 其 DDL 、 DML 语言复杂;用户不容易使用..由于记录之间联系是通过存取路径实现的;应用程序在访问数据时必须选择适当的存取路径..因此;用户必须了解系统结构的细节;加重了编写应用程序的负担..13.试述关系模型的概念;定义并解释以下术语: l 关系 2 属性 3 域 4 元组 5 主码 6 分量 7 关系模式关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成..在用户观点下;关系模型中数据的逻辑结构是一张二维表;它由行和列组成.. l 关系:一个关系对应通常说的一张表; 2 属性:表中的一列即为一个属性; 3 域:属性的取值范围; 4 元组:表中的一行即为一个元组; 5 主码:表中的某个属性组;它可以惟一确定一个元组; 6 分量:元组中的一个属性值; 7 关系模式:对关系的描述;一般表示为关系名属性 1 ;属性 2 ; … ;属性 n14 .试述关系数据库的特点..答:关系数据模型具有下列优点: l 关系模型与非关系模型不同;它是建立在严格的数学概念的基础上的..2 关系模型的概念单一;无论实体还是实体之间的联系都用关系表示;操作的对象和操作的结果都是关系;所以其数据结构简单、清晰;用户易懂易用.. 3 关系模型的存取路径对用户透明;从而具有更高的数据独立性、更好的安全保密性;也简化了程序员的工作和数据库开发建立的工作..当然;关系数据模型也有缺点;其中最主要的缺点是;由于存取路径对用户透明;查询效率往往不如非关系数据模型..因此为了提高性能;必须对用户的查询请求进行优化;增加了开发数据库管理系统的难度..15.试述数据库系统三级模式结构;这种结构的优点是什么答:数据库系统的三级模式结构由外模式、模式和内模式组成..参见书上图 1 . 29 外模式;亦称子模式或用户模式;是数据库用户包括应用程序员和最终用户能够看见和使用的局部数据的逻辑结构和特征的描述;是数据库用户的数据视图;是与某一应用有关的数据的逻辑表示..模式;亦称逻辑模式;是数据库中全体数据的逻辑结构和特征的描述;是所有用户的公共数据视图..模式描述的是数据的全局逻辑结构..外模式涉及的是数据的局部逻辑结构;通常是模式的子集..内模式;亦称存储模式;是数据在数据库系统内部的表示;即对数据的物理结构和存储方式的描述..数据库系统的三级模式是对数据的三个抽象级别;它把数据的具体组织留给 DBMs 管理;使用户能逻辑抽象地处理数据;而不必关心数据在计算机中的表示和存储..为了能够在内部实现这三个抽象层次的联系和转换;数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像..正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性..16 .定义并解释以下术语:模式、外模式、内模式、 DDL 、 DML ..模式、外模式、内模式;亦称逻辑模式;是数据库中全体数据的逻辑结构和特征的描述;是所有用户的公共数据视图..模式描述的是数据的全局逻辑结构..外模式涉及的是数据的局部逻辑结构;通常是模式的子集..内模式;亦称存储模式;是数据在数据库系统内部的表示;即对数据的物理结构和存储方式的描述.. DDL :数据定义语言;用来定义数据库模式、外模式、内模式的语言.. DML :数据操纵语言;用来对数据库中的数据进行查询、插入、删除和修改的语句..17.什么叫数据与程序的物理独立性什么叫数据与程序的逻辑独立性为什么数据库系统具有数据与程序的独立性答:数据与程序的逻辑独立性:当模式改变时例如增加新的关系、新的属性、改变属性的数据类型等;由数据库管理员对各个外模式/模式的映像做相应改变;可以使外模式保持不变..应用程序是依据数据的外模式编写的;从而应用程序不必修改;保证了数据与程序的逻辑独立性;简称数据的逻辑独立性..数据与程序的物理独立性:当数据库的存储结构改变了;由数据库管理员对模式/内模式映像做相应改变;可以使模式保持不变;从而应用程序也不必改变;保证了数据与程序的物理独立性;简称数据的物理独立性..数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性..18 .试述数据库系统的组成..答:数据库系统一般由数据库、数据库管理系统及其开发工具、应用系统、数据库管理员和用户构成..19 .数据库管理员、系统分析员、数据库设计人员、应用程序员的职责是什么答:数据库管理员的职责:1决定数据库中的信息内容和结构;2决定数据库的存储结构和存取策略;3定义数据的安全性要求和完整性约束条件;4监控数据库的使用和运行;5数据库的改进和重组、重构..系统分析员负责应用系统的需求分析和规范说明;系统分析员要和用户及 DBA 相结合;确定系统的硬件、软件配置;并参与数据库系统的概要设计..数据库设计人员负责数据库中数据的确定、数据库各级模式的设计..数据库设计人员必须参加用户需求调查和系统分析;然后进行数据库设计..在很多情况下;数据库设计人员就由数据库管理员担任..应用程序员负责设计和编写应用系统的程序模块;并进行调试和安装..第二章关系数据库1 .试述关系模型的三个组成部分..答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成..2 .试述关系数据语言的特点和分类..答:关系数据语言可以分为三类:关系代数语言..关系演算语言:元组关系演算语言和域关系演算语言..SQL:具有关系代数和关系演算双重特点的语言..这些关系数据语言的共同特点是;语言具有完备的表达能力;是非过程化的集合操作语言;功能强;能够嵌入高级语言中使用..3 略4 .5 . 述关系模型的完整性规则..在参照完整性中;为什么外部码属性的值也可以为空什么情况下才可以为空答:实体完整性规则是指若属性A是基本关系R的主属性;则属性A不能取空值..若属性或属性组F是基本关系R的外码;它与基本关系S的主码Ks相对应基本关系R和S不一定是不同的关系;则对于R中每个元组在F上的值必须为:或者取空值F的每个属性值均为空值;或者等于S中某个元组的主码值..即属性F本身不是主属性;则可以取空值;否则不能取空值..6.设有一个SPJ数据库;包括S;P;J;SPJ四个关系模式:1求供应工程J1零件的供应商号码SNO:πSnoσJno=‘J1’SPJ2求供应工程J1零件P1的供应商号码SNO:πSnoσJno=‘J1’∧Pno=‘P1‘SPJ3求供应工程J1零件为红色的供应商号码SNO:πSnoπSno;;PnoσJno=‘J1‘ SPJ∞πPnoσCOLOR=’红‘ P4求没有使用天津供应商生产的红色零件的工程号JNO:πJno SPJ- πJNOσcity=‘天津’∧Color=‘红‘ S∞SPJ∞P5求至少用了供应商S1所供应的全部零件的工程号JNO:πJno;Pno SPJ÷πPnoσSno=‘S1‘ SPJ7. 试述等值连接与自然连接的区别和联系..答:连接运算符是“=”的连接运算称为等值连接..它是从关系R与S的广义笛卡尔积中选取A;B属性值相等的那些元组自然连接是一种特殊的等值连接;它要求两个关系中进行比较的分量必须是相同的属性组;并且在结果中把重复的属性列去掉..8.关系代数的基本运算有哪些如何用这些基本运算来表示其他运算答:并、差、笛卡尔积、投影和选择5种运算为基本的运算..其他3种运算;即交、连接和除;均可以用这5种基本运算来表达..第三章关系数据库语言SQL1 .试述 sQL 语言的特点..答:l综合统一.. sQL 语言集数据定义语言 DDL 、数据操纵语言 DML 、数据控制语言 DCL 的功能于一体.. 2高度非过程化..用 sQL 语言进行数据操作;只要提出“做什么”;而无需指明“怎么做”;因此无需了解存取路径;存取路径的选择以及 sQL 语句的操作过程由系统自动完成..3面向集合的操作方式.. sQL 语言采用集合操作方式;不仅操作对象、查找结果可以是元组的集合;而且一次插入、删除、更新操作的对象也可以是元组的集合..4以同一种语法结构提供两种使用方式.. sQL 语言既是自含式语言;又是嵌入式语言..作为自含式语言;它能够独立地用于联机交互的使用方式;作为嵌入式语言;它能够嵌入到高级语言程序中;供程序员设计程序时使用..5语言简捷;易学易用..2.3 1 select from S where A='10';2 select A;B from S;3 select A;B;S.C;S.D;E;F from S ;T where S.C=T.C and S.D=T.D;4 select from S ;T where S.C=T.C;5 select from S ;T where S.A<T.E;6 select S.C;S.D;T. from S ;T ;4.用 sQL 语句建立第二章习题 6中的 4 个表..答:对于 S 表: S SNO ; SNAME ; STATUS ; CITY ;建 S 表:CREATE TABLE S Sno C2 UNIQUE;Sname C6 ;Status C2;City C4;对于 P 表: P PNO ; PNAME ; COLOR ; WEIGHT ;建 P 表:CREATE TABLE PPno C2 UNIQUE;Pname C6;COLOR C2; WEIGHT INT;对于 J 表: J JNO ; JNAME ; CITY ;建 J 表:CREATE TABLE JJno C2 UNlQUE;JNAME C8; CITY C4对于 sPJ 表: sPJ sNo ; PNo ; JNo ; QTY ;建 SPJ 表:SPJSNO;PNO;JNO;QTYCREATE TABLE SPJSno C2;Pno C2;JNO C2; QTY INT针对建立的 4 个表用 sQL 语言完成第二章习题6中的查询..。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库中的五种约束数据库中的五种约束及其添加方法五大约束1.—-主键约束(Primay Key Coustraint)唯一性,非空性2.—-唯一约束(Unique Counstraint)唯一性,可以空,但只能有一个3.—-检查约束(Check Counstraint)对该列数据的范围、格式的限制(如:年龄、性别等)4.—-默认约束(Default Counstraint)该数据的默认值5.—-外键约束(Foreign Key Counstraint)需要建立两表间的关系并引用主表的列五大约束的语法示例1.—-添加主键约束(将stuNo作为主键)alter table stuInfoadd constraint PK_stuNo primary key(stuNo)2.—-添加唯一约束(身份证号唯一,因为每个人的都不一样)alter table stuInfoadd constraint UQ_stuID unique(stuID)3.—-添加默认约束(如果地址不填默认为“地址不详”)alter table stuInfoadd constraint DF_stuAddress default(‘地址不详’)for stuAddress4.—-添加检查约束(对年龄加以限定15-40岁之间)alter table stuInfoadd constraint CK_stuAge check(stuAge between15and40)alter table stuInfoadd constraint CK_stuSex check(stuSex=’男’or stuSex=’女′)5.—-添加外键约束(主表stuInfo和从表stuMarks建立关系,关联字段stuNo)alter table stuInfoadd constraint FK_stuNo foreign key(stuNo)references stuinfo(stuNo)约束(Constraint)是Microsoft SQL Server提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整性的介绍请参见第9章)。
在SQL Server中有5种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)和缺省约束(Default Constraint)。
1主关键字约束主关键字约束指定表的一列或几列的组合的值在表中具有惟一性,即能惟一地指定一行记录。
每个表中只能有一列被指定为主关键字,且IMAGE和TEXT类型的列不能被指定为主关键字,也不允许指定主关键字列有NULL属性。
定义主关键字约束的语法如下:CONSTRAINT constraint_namePRIMARY KEY[CLUSTERED|NONCLUSTERED](column_name1[,column_name2,…,column_name16])各参数说明如下:constraint_name指定约束的名称约束的名称。
在数据库中应是惟一的。
如果不指定,则系统会自动生成一个约束名。
CLUSTERED|NONCLUSTERED指定索引类别,CLUSTERED为缺省值。
其具体信息请参见下一章。
column_name指定组成主关键字的列名。
主关键字最多由16个列组成。
例7-3:创建一个产品信息表,以产品编号和名称为主关键字create table products(p_id char(8)not null,p_name char(10)not null,price money default0.01,quantity smallint null,constraint pk_p_id primary key(p_id,p_name))on[primary]2外关键字约束外关键字约束定义了表之间的关系。
当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同时,就可以将这些列或列的组合定义为外关键字,并设定它适合哪个表中哪些列相关联。
这样,当在定义主关键字约束的表中更新列值,时其它表中有与之相关联的外关键字约束的表中的外关键字列也将被相应地做相同的更新。
外关键字约束的作用还体现在,当向含有外关键字的表插入数据时,如果与之相关联的表的列中无与插入的外关键字列值相同的值时,系统会拒绝插入数据。
与主关键字相同,不能使用一个定义为TEXT或IMAGE数据类型的列创建外关键字。
外关键字最多由16个列组成。
定义外关键字约束的语法如下:CONSTRAINT constraint_nameFOREIGN KEY(column_name1[,column_name2,…,column_name16])REFERENCES ref_table[(ref_column1[,ref_column2,…,ref_column16])][ON DELETE{CASCADE|NO ACTION}][ON UPDATE{CASCADE|NO ACTION}]][NOT FOR REPLICATION]各参数说明如下:REFERENCES指定要建立关联的表的信息。
ref_table指定要建立关联的表的名称。
ref_column指定要建立关联的表中的相关列的名称。
ON DELETE{CASCADE|NO ACTION}指定在删除表中数据时,对关联表所做的相关操作。
在子表中有数据行与父表中的对应数据行相关联的情况下,如果指定了值CASCADE,则在删除父表数据行时会将子表中对应的数据行删除;如果指定的是NO ACTION,则SQL Server会产生一个错误,并将父表中的删除操作回滚。
NO ACTION是缺省值。
ON UPDATE{CASCADE|NO ACTION}指定在更新表中数据时,对关联表所做的相关操作。
在子表中有数据行与父表中的对应数据行相关联的情况下,如果指定了值CASCADE,则在更新父表数据行时会将子表中对应的数据行更新;如果指定的是NO ACTION,则SQL Server会产生一个错误,并将父表中的更新操作回滚。
NO ACTION是缺省值。
NOT FOR REPLICATION指定列的外关键字约束在把从其它表中复制的数据插入到表中时不发生作用。
例7-4:创建一个订货表,与前面创建的产品表相关联create table orders(order_id char(8),p_id char(8),p_name char(10),constraint pk_order_id primary key(order_id),foreign key(p_id,p_name)references products(p_id,p_name))on[primary]注意:临时表不能指定外关键字约束。
惟一性约束惟一性约束指定一个或多个列的组合的值具有惟一性,以防止在列中输入重复的值。
惟一性约束指定的列可以有NULL属性。
由于主关键字值是具有惟一性的,因此主关键字列不能再设定惟一性约束。
惟一性约束最多由16个列组成。
定义惟一性约束的语法如下:CONSTRAINT constraint_nameUNIQUE[CLUSTERED|NONCLUSTERED](column_name1[,column_name2,…,column_name16])例7-5:定义一个员工信息表,其中员工的身份证号具有惟一性。
create table employees(emp_id char(8),emp_name char(10),emp_cardid char(18),constraint pk_emp_id primary key(emp_id),constraint uk_emp_cardid unique(emp_cardid))on[primary]7.2.4检查约束检查约束对输入列或整个表中的值设置检查条件,以限制输入值,保证数据库的数据完整性。
可以对每个列设置符合检查。
定义检查约束的语法如下:CONSTRAINT constraint_nameCHECK[NOT FOR REPLICATION](logical_expression)各参数说明如下:NOT FOR REPLICATION指定检查约束在把从其它表中复制的数据插入到表中时不发生作用。
logical_expression指定逻辑条件表达式返回值为TRUE或FALSE。
例7-6:创建一个订货表其中定货量必须不小于10。
create table orders(order_id char(8),p_id char(8),p_name char(10),quantity smallint,constraint pk_order_id primary key(order_id),constraint chk_quantity check(quantity>=10),)on[primary]注意:对计算列不能作除检查约束外的任何约束。
7.2.5缺省约束缺省约束通过定义列的缺省值或使用数据库的缺省值对象绑定表的列,来指定列的缺省值。
SQL Server推荐使用缺省约束,而不使用定义缺省值的方式来指定列的缺省值。
有关绑定缺省约束的方法请参见“数据完整性”章节。
定义缺省约束的语法如下:CONSTRAINT constraint_nameDEFAULT constant_expression[FOR column_name]例7-7:constraint de_order_quantity default100for order_quantity注意:不能在创建表时定义缺省约束,只能向已经创建好的表中添加缺省约束。
7.2.6列约束和表约束对于数据库来说,约束又分为列约束(Column Constraint)和表约束(Table Constraint)。
列约束作为列定义的一部分只作用于此列本身。
表约束作为表定义的一部分,可以作用于多个列。
下面举例说明列约束与表约束的区别。
例7-8:create table products(p_id char(8),p_name char(10),price money default0.01,quantity smallint check(quantity>=10),/*列约束*/ constraint pk_p_id primary key(p_id,p_name)/*表约束*/。