数据库原理与设计-陶宏才PPT资料.ppt
《数据库原理与设计-陶宏才PPT资料.ppt》由会员分享,可在线阅读,更多相关《数据库原理与设计-陶宏才PPT资料.ppt(122页珍藏版)》请在冰豆网上搜索。
数据对象(实体集)用关系(表)来定义。
ER中实体集的属性表中的列(字段、属性);
ER中实体集中的每个实体实例表中的行(元组、记录)。
列,行,学生表,数据库原理及设计Dr.YanZhu,7,ER关系-表描述联系,ER模式中联系是单独描述的。
而在关系模式中,联系也可以用表来描述。
例如,选课联系选课表。
表中有来自学生和课程两个实体的属性,而成绩是选课关联自身的描述属性。
列的取值范围称为域(Domain)。
例如,成绩的范围一般是:
0-100。
学生选课表,数据库原理及设计Dr.YanZhu,8,关系模式、关系、主键、外键,关系模式(Schema)由关系名、和各个列表示。
数学上表示为:
R(A1,A2,An)。
关系实例:
由表中的各行构成。
常简称关系;
行序不重要,而列序重要。
每个元组的字段必须对应关系模式中的字段。
(物理存储要求的)关系实例表示:
,ai为属性Ai的值。
ER模型中的候选键关系中的候选键ER模型中的主键关系中的主键(PrimaryKey,PK)关系中的新概念-外键,描述表与表之间的关联。
数据库原理及设计Dr.YanZhu,9,表与表的联系,主键,外键,学生表,班级表,主键/候选键,外键(ForeignKey,FK):
A表中的某个属性(组)是B表中的候选键或主键,则称该属性(组)为A表的外键。
要使B表中的某个属性成为A表的外键,必须确定该属性为B表的主键或候选键。
如何指定?
完整性约束的任务。
数据库原理及设计Dr.YanZhu,10,关系模型术语,数据库原理及设计Dr.YanZhu,11,关系的性质,关系是一个集合。
集合中的元素是元组,每个元组的属性数目应该相同。
关系是一种规范化了的二维表格,不是一般的二维表。
它的性质是:
关系中每一个属性值都是不可分解的;
关系中不允许出现重复元组;
关系是元组的集合,因此无行序;
关系的列是有序的。
数据库原理及设计Dr.YanZhu,12,逻辑映射之数据结构映射,关系表,表的主键/候选键,表的列,表和列,表中的各行,?
数据库原理及设计Dr.YanZhu,13,SQL语言,SQL发音为Sequel,现在趋向于发音为S-Q-L。
最早在IBMSystem-RRDBMS上使用的查询语言;
第一个标准由ANSI于1986年制订,称为SQL-86;
1992年推出了SQL-92,是大多数RDBMS支持的版本;
1999年提出SQL:
1999(SQL3),是SQL-92的扩展。
SQL在数据库界之外也受到重视。
在软件工程、AI、万维网数据管理、等领域显示了潜力。
SQL成为国际标准后,由于各种类型的计算机和DBS都采用SQL作为其存取语言和标准接口,从而使数据库世界有可能链接为一个整体。
前景非常好。
数据库原理及设计Dr.YanZhu,14,几个重要的SQL语言命令,SQLDDL针对表结构的操作Create(创建)Drop(删除)Alter(修改)SQLDML针对表中数据的操作Insert(插入)Delete(删除)Update(修改)Select(查询),数据库原理及设计Dr.YanZhu,15,关系模型中的数据操作,动态的数据操作:
增加、删除、修改和查询,简称:
增删改查询。
增加:
INSERTRVALUES(林海,男)修改:
UPDATERSETname=张湖,数据库原理及设计Dr.YanZhu,16,逻辑映射之数据操作,关系表,表的主键/候选键,表的列,表和列,表中的各行,使用SQL语句对表进行操作,?
数据库原理及设计Dr.YanZhu,17,关系模型上完整性约束,完整性约束(IntegrityConstraints,ICs)可以帮助阻止非法数据的输入。
它要求存入DB的数据应满足一些条件。
在定义一个关系模式的同时,或之后定义完整性约束。
当表中数据发生变化(如Insert、Delete、Update)时,DBMS即检查更新的数据是否满足完整性约束指定的条件。
几种完整性约束:
域约束、主键约束、唯一约束、外键约束等。
数据库原理及设计Dr.YanZhu,18,几种完整性约束
(1),域限制(DomainConstraint)每个属性A的值必须是来自域dom(A)的原子值。
例如,表中某列的数据类型为“整数型”,那么该列的各记录值就不能是“字符串”。
不必显示指定。
主键约束(PrimaryKeyConstraint)概念:
针对主键而言,保证主键的完整性。
要求:
主键值必须唯一,且不能为空值。
例如:
作者不能作主键。
需要显示指定。
(如何指定,以后介绍),数据库原理及设计Dr.YanZhu,19,几种完整性约束
(2),唯一约束(UniqueConstraint)主键可以用主键约束来保证其值的完整性。
因为候选键也能唯一标识关系实例元组,因此,保证候选键的完整性,需要唯一约束。
要求值唯一,允许有一个且仅有一个空值。
以上是“表本身”的完整性约束。
外键限制(ForeignKeyConstraint)也被称为“参照完整性约束”。
目的:
用来维护表与表之间的数据一致性,即其中一张表的改动,可能要求另一张表要作出某些改动,以保持数据一致。
为使DBMS能做这样的检查,则应指定这种涉及两个表的ICs,此即外键限制。
数据库原理及设计Dr.YanZhu,20,主表与从表,主表:
指外键在另一张表中作主/候选键的表。
(例中的班级表)从表:
指含有外键的表。
(例中的学生表),班级表(主表),学生表(从表),数据库原理及设计Dr.YanZhu,21,外键约束的例子(主表从表),学生表(从表),班级表(主表),数据库原理及设计Dr.YanZhu,22,分析外键约束(主表从表),对主表进行三种操作,观察对表间完整性的影响:
对主表中的主键进行操作插入:
要求插入值满足主键限制即可,不影响其它表。
修改:
可能会影响与该主键相关的从表的外键值。
当相应的外键值存在时,有两个策略可用:
一是改变对应从表的所有外键值,使之与主键一致;
其二是不允许修改主表中的主键值。
删除:
若相应的外键值存在时,策略有二:
一是不允许删除主表的主键值;
二是级联删除从表中相应外键值所在的行。
数据库原理及设计Dr.YanZhu,23,外键约束的例子(从表主表),主键,学生表(从表),班级表(主表),数据库原理及设计Dr.YanZhu,24,分析外键约束(从表主表),对从表中的外键操作插入:
要求插入的外键值应“参照”(Reference)主表中的主键值。
要求修改的外键值“参照”主表中的主键值。
不需要参照主表中的主键值。
数据库原理及设计Dr.YanZhu,25,外键约束小结,维护表间数据完整性从两个方向上完成,即:
主表从表:
“主表”中的主键值在修改和删除时,“从表”中与该主键值相同的外键值可“级联”(CASCADE)修改和删除,或“禁止”(NOACTION)“主表”主键值的修改和删除。
从表主表:
表示“从表”中的外键值在插入和修改时,其值应“参照”(Reference)“主表”中的主键值。
数据库原理及设计Dr.YanZhu,26,表间数据完整性维护的实现,利用外键约束定义对从表定义外键限制(或称参照完整性)完成主表和从表间两个方向的数据完整性;
利用触发器主表的触发器维护主表到从表方向的数据完整性,而从表的触发器维护从表到主表方向的参照完整性。
SQL-92标准只支持外键约束方式。
如果使用触发器,必须检查所用的RDBMS是否支持。
数据库原理及设计Dr.YanZhu,27,其他的约束检查限制,域限制、主键限制、唯一限制和外键限制是关系数据模型中最基本的限制,大多数商用系统都支持他们。
其他还有更一般的限制,如:
检查限制(CheckConstraint,亦称“表限制”)检查某一列值是否在某一取值范围之内;
表中某几列是否满足指定的条件。
与单个表有关。
中学生的年龄定义为两位整数,范围很大,用户可以写如下规则,将年龄限制在10-20岁之间CHECK(AGEBETWEEN10AND20),数据库原理及设计Dr.YanZhu,28,其他的约束性断言限制,断言限制(Assertion)检查表中个别列、整个表或表与表之间是否满足指定的条件。
与多个表有关,是关系之间的约束。
希望限定计算机图书的作者一定是女性。
这时,仅靠键约束、唯一约束和外键限制不能实现,因为这个要求涉及到两张表(关系):
Book,Author。
可以写为:
CreateAssertionNoManComputerAuthorCheck(Book.计算机类.作者Author.性别为男性=空集)与主键约束和唯一限制的定义不同,定义表约束和断言约束时要显式定义。
数据库原理及设计Dr.YanZhu,29,完整性约束的实施,关系创建并指定了ICs后,当关系“更新”时(指插入、删除和修改)应实施检查。
对域限制、主键限制和唯一限制的实施由于影响直接,故只要插入/删除/修改命令违背了限制,即被拒绝。
而其它ICs(如一般性限制)的违背检查通常是在每个SQL语句之后。
对参照完整性(外键)限制的实施外键限制的影响较复杂,要从两个方向分别进行,但不是同时进行。
数据库原理及设计Dr.YanZhu,30,完整性约束小结,SQL中把完整性约束分成三大类:
域约束基本表约束:
主键约束;
候选键约束(唯一约束);
外键约束;
检查约束表间约束:
断言,数据库原理及设计Dr.YanZhu,31,逻辑映射之约束,关系表,表的主键/候选键,表的列,表和列,表中的各行,使用SQL语句对表进行操作,域约束、主键约束、唯一约束、外键约束、检查约束、断言,数据库原理及设计Dr.YanZhu,32,SQLServer对数据完整性约束的支持,不同的数据库管理系统厂商开发不同类型的SQL,被称为数据库方言。
MicrosoftSQLServer产品中的SQL方言叫Transact-SQL。
T-SQL,即事务SQL,是对标准SQL的扩展。
T-SQL由SQL语句、函数和存储过程三部分组成。
T-SQL除了具有标准的子语言:
DDL,DML,DCL之外,还具有过程控制能力和事务控制能力。
T-SQL有两类变量:
局部变量:
如name,price全局变量(系统定义,用户只能引用,不能修改、定义):
如error,rowcount,数据库原理及设计Dr.YanZhu,33,SQLServer系统数据类型
(一),179(pp139)表4-2Tinyint,1byte,数值范围是028-1精确小数是numer