第三章 关系数据库系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三章关系数据库系统主讲:吴绪玲#1、基本概念•关系:关系模型中的数据表示,由关系模式和关系实例组成,关系模式用来描述关系表中的列,关系实例为关系中的各行。因此,可认为关系是一张具有行、列的表。数据库原理及设计M.XulingWuER关系•数据对象(实体集)用关系(表)来定义。•ER中实体集的属性表中的列(字段、属性);•ER中实体集中的每个实体实例表中的行(元组、记录)。姓名学号D.O.B…PeterBach20001015-10-1982LisaBaumann200010212-7-1982列行学生表数据库原理及设计M.XulingWuER关系-表描述联系•ER模式中联系是单独描述的。而在关系模式中,联系也可以用表来描述。例如,选课联系选课表。•表中有来自学生和课程两个实体的属性,而成绩是选课联系自身的描述属性。•列的取值范围称为域(Domain)。例如,成绩的范围一般是:0-100。学生选课表姓名学号课程号课程名成绩PeterBach2000101A1033数据库85LisaBaumann2000102A1030数据仓储化91数据库原理及设计M.XulingWu2、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作为其存取语言和标准接口,从而使数据库世界有可能链接为一个整体。前景非常好。数据库原理及设计M.XulingWu几个重要的SQL语言命令•SQLDDL——针对表结构的操作1.Create(创建)2.Drop(删除)3.Alter(修改)•SQLDML——针对表中数据的操作1.Insert(插入)2.Delete(删除)3.Update(修改)4.Select(查询)数据库原理及设计M.XulingWu关系模型中的数据操作•动态的数据操作:增加、删除、修改和查询,简称:增删改查询。•增加:INSERTRVALUES(‘林海’,‘男’)•修改:UPDATERSETname=‘张湖’数据库原理及设计M.XulingWu关系模式、关系、主键、外键•关系模式(Schema)由关系名、和各个列表示。数学上表示为:R(A1,A2,…,An)。•关系实例:由表中的各行构成。常简称关系;行序不重要,而列序重要。每个行的字段必须对应关系模式中的字段。(物理存储要求的)关系实例表示:{a1,a2,…,an},ai为属性Ai的值。•ER模型中的候选键关系中的候选键•ER模型中的主键关系中的主键(PrimaryKey,PK)•关系中的新概念-外键,描述表与表之间的关联。数据库原理及设计M.XulingWu表与表的联系姓名学号D.O.B班号PeterBach2000-1015-10-1986计算机200001主键班号班名人数…计算机200001计1班50…外键学生表A班级表B主键/候选键外键(ForeignKey,FK):A表中的某个属性(组)是B表中的候选键或主键,则称该属性(组)为A表的外键。要使B表中的某个属性成为A表的外键,必须确定该属性为B表的主键或候选键。如何指定?完整性约束的任务。数据库原理及设计M.XulingWu关系模型术语关系模式术语一般术语关系模式记录类型属性字段属性值字段值元组1记录1计算机2000015-10-19862000101PeterBach班号D.O.B学号姓名R数据库原理及设计M.XulingWu关系的性质•关系是一个集合。集合中的元素是元组,每个元组的属性数目应该相同。•关系是一种规范化了的二维表格,不是一般的二维表。它的性质有:1.关系中每一个属性值都是不可分解的;2.关系中不允许出现重复元组;3.关系是元组的集合,因此无行序;4.关系的列是有序的。数据库原理及设计M.XulingWu逻辑映射之数据结构映射概念模式与逻辑模式的对应ER模型关系数据模型数据结构实体集实体集属性联系集与属性实体的实例主键/候选键?????数据操作/?约束联系类型约束键约束完全参与约束?关系表表的主键/候选键表的列表和列表中的各行?数据库原理及设计M.XulingWu关系模型上完整性约束•完整性约束(IntegrityConstraints,ICs)可以帮助阻止非法数据的输入。•它要求存入DB的数据应满足一些条件。•在定义一个关系模式的同时,或之后定义完整性约束。•当表中数据发生变化(如Insert、Delete、Update)时,DBMS即检查更新的数据是否满足完整性约束指定的条件。•几种完整性约束:域约束、主键约束、唯一约束、外键约束等。数据库原理及设计M.XulingWu几种完整性约束(1)•域限制(DomainConstraint)每个属性A的值必须是来自域dom(A)的原子值。例如,表中某列的数据类型为“整数型”,那么该列的各记录值就不能是“字符串”。不必显示指定。•主键约束(PrimaryKeyConstraint)概念:针对主键而言,保证主键的完整性。要求:主键值必须唯一,且不能为空值。例如:作者姓名不能作主键。需要显示指定。(如何指定,以后介绍)数据库原理及设计M.XulingWu几种完整性约束(2)•唯一约束(UniqueConstraint)•唯一性约束:候选键约束将保证该列数据在记录中没有重复。若规定客户信息中的客户代码不能重复,销售数据中的销售单据号不能重复,这样就可以他们为候选键,要保证数据表中这两列的数据不重复就用唯一性约束。关键字Unique用来指定唯一性列,一个表中可以有很多个唯一性列。•UNIQUE(唯一性)约束可以在创建表时定义;也可以在已经有数据但没有重复值的列或列的集合中添加UNIQUE(唯一性)约束。主键约束与唯一性约束的联系•相同点:它们都属于实体完整性约束.•不同点:•(1)唯一性约束所在的列允许有空值,但是主键约束所在的列不允许空值。(2)可以把唯一性约束放在一个或者多个列上,这些列或列的组合必须有唯一的。但是,唯一性约束所在的列并不是表的主键列。(3)唯一性约束强制在指定的列上创建一个唯一性索引。在默认情况下,创建唯一性的非聚簇索引,但是,也可以指定所创建的索引是聚簇索引。•(4)一个表最多只有一个主键,但可以有很多候选键数据库原理及设计M.XulingWu•以上是“表本身”的完整性约束。•外键限制(ForeignKeyConstraint)也被称为“参照完整性约束”。目的:用来维护表与表之间的数据一致性,即其中一张表的改动,可能要求另一张表要作出某些改动,以保持数据一致。为使DBMS能做这样的检查,则应指定这种涉及两个表的ICs,此即外键限制。数据库原理及设计M.XulingWu数据库原理及设计M.XulingWu主表与从表•主表:指主键在另一张表中作主/候选键的表。(例中的班级表)•从表:指含有外键的表。(例中的学生表)姓名学号D.O.B班号PeterBach2000-1015-10-1986计算机200001班号班名人数…计算机200001计1班50…计算机200010计10班45…班级表(主表)学生表(从表)数据库原理及设计M.XulingWu分析外键约束(主表从表)•对主表进行三种操作,观察对表间完整性的影响:对主表中的主键进行操作插入:要求插入值满足主键限制即可,不影响其它表。修改:可能会影响与该主键相关的从表的外键值。当相应的外键值存在时,有两个策略可用:一是改变对应从表的所有外键值,使之与主键一致;其二是不允许修改主表中的主键值。删除:可能会影响与该主键相关的从表的外键值。若相应的外键值存在时,策略有二:一是不允许删除主表的主键值;二是级联删除从表中相应外键值所在的行。数据库原理及设计M.XulingWu外键约束的例子(主表从表)姓名学号D.O.B班号PeterBach2000-1015-10-1986计算机200001班号班名人数…计算机200001计1班50…计算机200010计10班45…学生表(从表)班级表(主表)外键主键插入删除修改数据库原理及设计M.XulingWu分析外键约束(从表主表)•对从表中的外键操作插入:要求插入的外键值应“参照”(Reference)主表中的主键值。修改:要求修改的外键值“参照”主表中的主键值。删除:不需要参照主表中的主键值。数据库原理及设计M.XulingWu外键约束的例子(从表主表)姓名学号D.O.B班号PeterBach2000-1015-10-1986计算机200001主键班号班名人数…计算机200001计1班50…学生表(从表)班级表(主表)外键主键/候选键插入删除修改数据库原理及设计M.XulingWu外键约束小结维护表间数据完整性从两个方向上完成,即:主表从表:“主表”中的主键值在修改和删除时,“从表”中与该主键值相同的外键值可“级联”(CASCADE)修改和删除,或“禁止”(NOACTION)“主表”主键值的修改和删除。从表主表:表示“从表”中的外键值在插入和修改时,其值应“参照”(Reference)“主表”中的主键值。数据库原理及设计M.XulingWu表间数据完整性维护的实现•利用外键约束定义对从表定义外键限制(或称参照完整性)完成主表和从表间两个方向的数据完整性;•利用触发器主表的触发器维护主表到从表方向的数据完整性,而从表的触发器维护从表到主表方向的参照完整性。•SQL-92标准只支持外键约束方式。如果使用触发器,必须检查所用的RDBMS是否支持。数据库原理及设计M.XulingWu其他的约束–检查限制•域限制、主键限制、唯一限制和外键限制是关系数据模型中最基本的限制,大多数商用系统都支持他们。其他还有更一般的限制,如:检查限制(CheckConstraint,亦称“表限制”)1.检查某一列值是否在某一取值范围之内;2.表中某几列是否满足指定的条件。与单个表有关。例如:中学生的年龄定义为两位整数,范围很大,用户可以写如下规则,将年龄限制在10-20岁之间CHECK(AGEBETWEEN10AND20)数据库原理及设计M.XulingWu其他的约束性–断言限制•断言限制(Assertion)检查表中个别列、整个表或表与表之间是否满足指定的条件。与多个表有关,是关系之间的约束。•例如:希望限定计算机图书的作者一定是男性。这时,仅靠键约束、唯一约束和外键限制不能实现,因为这个要求涉及到两张表(关系):Book表,Author表。可以写为:CreateAssertionNoManComputerAuthorCheck(Book.计算机类.作者∩Author.性别为男性=空集)•与主键约束和唯一限制的定义不同,定义表约束和断言约束时要显式定义。数据库原理及设计M.XulingWu完整性约束的实施•关系创建并指定了ICs后,当关系“更新”时(指插入、删除和修改)应实施检查。•对域限制、主键限制和唯一限制的实施由于影响直接,故只要插入/删除/修改命令违背了限制,即被拒绝。而其它ICs(如一般性限制)的违背检查通常是在每个SQL语句之后。•对参照完整性(外键)限制的实施外键限制的影响较复杂,要从两个方向分别进行,但不是同时进行。数据库原理及设计M.XulingWuSQLServer对数据完整性约束的支持•不同的数据库管理系统厂商开发不同类型的SQL,被称为数据库方言。例如:MicrosoftSQLServer产品中的SQL方言叫Transact-SQL。•T-SQL,即事务SQL,是对标准SQL的扩展。•T-SQL由SQL语句、函数和存储过程三部分组成。•T-SQL除了具有标准的子语言:DDL,DML,DCL之外,

1 / 58
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功