数据库实验指导 第2版 普通高等教育“十一五”国家级规划教材 教学课件 ppt 作者 杨海霞 第2章 管理与维护表

上传人:E**** 文档编号:89403242 上传时间:2019-05-24 格式:PPT 页数:40 大小:2.56MB
返回 下载 相关 举报
数据库实验指导 第2版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  杨海霞 第2章 管理与维护表_第1页
第1页 / 共40页
数据库实验指导 第2版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  杨海霞 第2章 管理与维护表_第2页
第2页 / 共40页
数据库实验指导 第2版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  杨海霞 第2章 管理与维护表_第3页
第3页 / 共40页
数据库实验指导 第2版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  杨海霞 第2章 管理与维护表_第4页
第4页 / 共40页
数据库实验指导 第2版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  杨海霞 第2章 管理与维护表_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《数据库实验指导 第2版 普通高等教育“十一五”国家级规划教材 教学课件 ppt 作者 杨海霞 第2章 管理与维护表》由会员分享,可在线阅读,更多相关《数据库实验指导 第2版 普通高等教育“十一五”国家级规划教材 教学课件 ppt 作者 杨海霞 第2章 管理与维护表(40页珍藏版)》请在金锄头文库上搜索。

1、数据库原理与设计,第2章 管理与维护表,关系模型 表结构与数据类型 表的创建、修改和删除 表的数据操作 实例-学籍管理数据库中表的创建,第2章 管理与维护表,2.1关系模型,2.1.1关系模型的基本术语,关系模型的数据结构的逻辑形式是一张二维表,这个二维表就叫做关系。下面以学生表Student为例,介绍关系模型的常用术语。,2.1关系模型,2.1.1关系模型的基本术语,关系:一个关系对应一张二维表。 元组:元组是表中的一行。 属性:属性是表中的一列,列名即为属性名。 值域:值域是属性的取值范围。 分量:是元组中的一个属性值。 关系模式:关系模式是对关系的结构性描述,即关系包括哪些属性,一般表示

2、为: 关系名(属性名1,属性名2,属性名n)。 例如,表2-1所示的学生关系的关系模式表示为: 学生(学号,姓名,性别,出生日期,班级编号),2.1关系模型,2.1.2关系的键,在给定的关系中,需要用某个或某几个属性来唯一地标识一个元组,称这样的属性或属性组为指定关系的键(Key)。通常键分为候选键、主键和外键。 候选键(Candidate Key):如果一个属性或属性集合的值能唯一标识一个关系的元组而又不含有多余的属性,则称该属性或属性集合为该关系的候选键。候选键可能包含一个属性,也可能包含多个属性。如果关系的全部属性构成关系的候选键,则称为全键(All-Key)。 主键(Primary K

3、ey):有时一个关系中有多个候选键,此时可以选择一个作为插入、删除或检索元组的操作变量,被选用的候选键称为主键。每一个关系“有且只有”一个主键。,例2-1 在SM数据库中班级、学生、课程、选修可以用下面的关系表示,其中主键用下画线标识: 班级(班级编号,班级名称) 学生(学号,姓名,性别,出生日期,班级编号) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 分析:在班级关系中,属性“班级编号”和“班级名称”都能唯一标识班级关系的一个元组,且不含有多余的属性,是学生关系和课程关系的候选键。通常选择“班级编号”为主键。 在学生关系和课程关系中,属性“学号”和“课程号”能唯一标识关系的一个

4、元组,且不含有多余的属性,是学生关系和课程关系的候选键,也是主键。 在选修关系中,属性“学号”和“课程号”合在一起构成候选键,也是主键。,外键(Foreign Key):设F是基本关系R的一个或一组属性,但不是关系R的键。如果F与基本关系S的主键Ks相对应,则称F是基本关系R的外键,并称基本关系R为参照关系(Referencing Relation),基本关系S为被参照关系(Referenced Relation)或目标关系(Target Relation)。,2.1关系模型,2.1.2关系的键,分析例2-1中的外键。 在例2-1中,学生关系的“班级编号”属性与班级关系的主键“班级编号”相对应

5、,因此“班级编号”属性是学生关系的外键。这里班级关系是被参照关系,学生关系为参照关系。如图2-1(a)所示。 在例2-1中,选修关系的“学号”属性与学生关系的主键“学号”相对应,“课程号”属性与课程关系的主键“课程号”相对应,因此“学号”和“课程号”属性是选修关系的外键。这里学生关系和课程关系均为被参照关系,选修关系为参照关系。如图2-1(b)所示。,2.1关系模型,2.1.3关系的完整性,(1)分量的原子性规则,(2) 实体完整性规则,(3) 参照完整性规则,(4) 用户定义的完整性规则,(5) 关系的其他性质,关系的每一个分量必须是一个不可分割的数据项,定义关系中主键的取值不能为空值NUL

6、L,若属性或属性组F是关系R的外键,它与关系S的主键Ks相对应,则对于R中每个元组在F上的值,或者取空值,或者等于S中某个元组的主键值。,针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。,2.2表结构与数据类型,2.2.1数据类型,关系的所有属性都需要用数据类型加以描述,目的是为了给不同的数据分配合适的空间,确定合适的存储形式。,SQL Server 2008提啊供了丰富的系统数据类型,包含字符串、Unicode字符串、二进制数据、位、整数数据、浮点数、日期和时间数据、货币数据等。,(1)系统数据类型,2.2表结构与数据类型,2.2.1数据类型,(2)用户自定

7、义数据类型,2.2表结构与数据类型,2.2.1数据类型,用户自定义数据类型是在SQL Server系统数据类型基础上定义的,定义时需要指定该类型的名称、建立在其上的系统数据类型以及是否允许为空值(NULL)等。自定义数据类型定义以后,使用方式同系统数据类型。 系统存储过程sp_addtype可用来创建用户自定义数据类型。其语法格式如下: sp_addtype新数据类型,系统数据类型 , null_type,例2-6 在学籍管理数据库SM中创建用户自定义数据类型studentNo,studentNo基于的系统数据类型是固定长度字符数据类型,长度为5,不允许为空。在Microsoft SQL Se

8、rver Management Studio中执行以下代码: USE SM GO EXEC sp_addtype studentNo,char(5),NOT NULL EXEC sp_help studentNo 运行结果如下图所示。,2.2表结构与数据类型,2.2.2约束,在设计表时,对于表和表中的某些列要进行完整性约束条件定义,以实现实体完整性、参照完整性和用户定义的完整性。 SQL Server提供了一些在列上强制完成数据完整性的约束机制,包括非空值约束(NOT NULL)、唯一性约束(UNIQUE)、主键约束(PRIMARY KEY)、外键约束(FOREIGN KEY)、检查约束(CH

9、ECK)和默认值约束(DEFAULT)。,(1)非空约束(NOT NULL) 空值(NULL)是当前不知道、不确定或无法填入的值。空值不能理解为0或空格。例如,某个学生选修某门课程的成绩是0和NULL具有不同的含义。成绩为0表示该学生该课程已经有了成绩,而为NULL则表明该学生此门课程的成绩还没有被填入。这是两个不同的概念。 当某列的取值不能为空值时,则可以在列级完整性约束定义中设置为非空值约束(NOT NULL)。其定义格式为: CONSTRAINT NOT NULL 注意:NOT NULL约束只能定义在列级完整性约束,不允许作为一个表级完整性约束来使用。,2.2表结构与数据类型,2.2.2

10、约束,2.2表结构与数据类型,2.2.2约束,(2)唯一性约束(UNIQUE) 唯一性约束(UNIQUE)用于限定基本表上的某个列或某些列的组合在不同元组中的取值不能相同(空值除外)。UNIQUE约束既可以作为列级约束,也可以作为表级约束。 UNIQUE约束定义格式为: CONSTRAINT UNIQUE 使用UNIQUE约束时,要注意以下几点。 如果没有为它指定聚簇索引或非聚簇索引,默认情况下会创建一个非聚簇索引。 每个UNIQUE约束自动生成一个索引,UNIQUE约束的数量不能导致表中索引的数量超过249个非聚簇索引和1个聚簇索引。 可以在列级或表级定义多个UNIQUE约束。当用作列级约束

11、时,UNIQUE只作用于其所在的列,无须指定列名表。当用作表级约束时,可以约束多个列的组合。,2.2表结构与数据类型,2.2.2约束,(3)主键约束(PRIMARY KEY) 用于定义基本表的主键,以实现实体完整性规则。如果某个列或列组合被定义为主键,那么该列或列组合唯一地标识表中的一个元组。其定义格式为: CONSTRAINT PRIMARY KEY 注意:使用PRIMARY KEY约束时,有以下几点要求。 每一个表仅能定义一个PRIMARY KEY约束。 主键值不可为空。 主键值不可重复。如果PRIMARY KEY约束建立在多列上,其中某一列上的数据可以重复,但是多列的值不能重复。 ima

12、ge和text类型的列不能定义PRIMARY KEY约束。 同唯一性约束一样,作为列级约束时可以省略列名表。,2.2表结构与数据类型,2.2.2约束,(4)外键约束(FOREIGN KEY) 主要用来维护两个表之间数据的一致性,它是保证系统参照完整性的手段。外键的取值,要么为空值,要么是引用表的某个主键或唯一性键的值。外键约束既可以作为列级约束,也可以作为表级约束。其定义格式为: CONSTRAINT FOREIGN KEY REFERENCES ON DELETE ON UPDATE,2.2表结构与数据类型,2.2.2约束,(4)检查约束(CHECK) 可以定义插入或修改某个元组时,元组应满

13、足的约束条件,通常用于限定某个列的取值范围或与其他列的关系。其定义格式为: CONSTRAINT CHECK 条件表达式是由列名、SQL所支持的运算符和函数等构成的逻辑表达式。CHECK约束既可以作为列级约束,也可以作为表级约束。作为列级约束,每一列只能有一个CHECK约束,但可以用逻辑运算符AND(与)或OR(或)等构成复合条件。,2.2表结构与数据类型,2.2.2约束,(5) DEFAULT默认值约束 作为列级约束,使用DEFAULT可以为某一列指定默认值,当用户插入或修改元组时,在没有为该列赋值的情况下,可以用指定的默认值填入该列。其定义格式为: CONSTRAINT DEFAULT 注

14、意: 每个列只能定义一个DEFAULT约束。 如果定义的默认值大于其允许的长度,那么输入到列的默认值将被截断。 DEFAULT约束表达式不能参照表中的其他列、其他表、视图或存储过程。,2.2表结构与数据类型,2.2.3表结构设计,设计表的实质就是设计表的结构,设置表和列的属性。创建表之前,先要确定表的名字、属性,同时确定表所包含的列名、列的数据类型、长度、是否为空值、约束条件、默认值设置、规则等,这些属性构成表的结构。 本小节以本书所使用到的学籍管理数据库SM中的三个表:学生表(表名为Student)、课程表(表名为Course)和选修表(表名为SC)为例介绍如何设计表的结构。,2.2表结构与

15、数据类型,2.2.3表结构设计,2.3表的创建、修改和删除,2.3.1表的创建,基本表的创建,用CREATE TABLE语句实现,其语法格式如下: CREATE TABLE ( 列级完整性约束条件 , 列级完整性约束条件 ,),例2-9 用CREATE TABLE语句创建SM数据库中的学生表Student,记录学生的基本信息,要求姓名不能为NULL,并约束性别的取值范围。 USE SM GO CREATE TABLE Student (SNo CHAR(5) CONSTRAINT PK_SNo PRIMARY KEY, CLno CHAR (6), SName VARCHAR(8) NOT N

16、ULL, SSex CHAR(2) CHECK(SSex IN (男,女), SBir DATETIME, Scredits NUMERIC(4, 0) ) 注意:USE命令用于指定要创建表的数据库。,例2-10 用CREATE TABLE语句创建SM数据库中的Course表,记录课程的基本信息,要求课程号为主键,课程名唯一,每门课的学分默认为4。 USE SM GO CREATE TABLE Course (CNo CHAR(5) CONSTRAINT PK_CNo PRIMARY KEY, CTno CHAR(2), CName VARCHAR(50) CONSTRAINT UK_CName UNIQUE, CInfo VARCHAR(50), CCredits NUMERIC(2,0) DEFAULT (4), CTtime NUMERIC(3,0), CPno CHAR(5), CTerm NUMERIC(1,0),例2-11

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号