4 关系模型基本原理ppt课件数据库原理与应用 .pptx
《4 关系模型基本原理ppt课件数据库原理与应用 .pptx》由会员分享,可在线阅读,更多相关《4 关系模型基本原理ppt课件数据库原理与应用 .pptx(85页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、数据库原理与应用数据库原理与应用4.1关系模型基本概念数据库原理与设计数据库原理与设计2数据库原理与应用数据库原理与应用(1 1)关系关系(RelationRelation):是用于描述数据的一张):是用于描述数据的一张二维表二维表,组成,组成表的行称为表的行称为元组元组,组成表的列称为,组成表的列称为属性属性。4.1.1 4.1.1 基本术语基本术语(2 2)域()域(DomainDomain):指属性的取值范围。):指属性的取值范围。(3 3)超键()超键(Super KeySuper Key):能唯一的标识关系中每一个元组的):能唯一的标识关系中每一个元组的属性或属性集。属性或属性集。(
2、4 4)候选键候选键(Candidate KeyCandidate Key):也称为候选码。如果一个属):也称为候选码。如果一个属性集能唯一的标识一个元组,且又性集能唯一的标识一个元组,且又不含有多余的属性不含有多余的属性,则这个,则这个属性集称为关系的候选键。属性集称为关系的候选键。数据库原理与应用数据库原理与应用(5 5)主键主键(Priamary KeyPriamary Key,PKPK):也称为主码。一个唯一识):也称为主码。一个唯一识别关系中元组的最小属性集合。别关系中元组的最小属性集合。可以从关系的候选键中,指定其中一个作为关系的主键。可以从关系的候选键中,指定其中一个作为关系的主
3、键。一个关系最多只能指定一个主键。一个关系最多只能指定一个主键。要求作为主键的列不允许取要求作为主键的列不允许取NULLNULL值。值。(6 6)全码()全码(ALL-keyALL-key):关系中所有属性的组合是该关系的一):关系中所有属性的组合是该关系的一个候选码,则该候选码称为全码。个候选码,则该候选码称为全码。(7 7)外键外键(Foreign KeyForeign Key,FKFK):关系):关系R R中的某个属性中的某个属性k k是另一是另一个关系个关系S S中的主键,则称该属性中的主键,则称该属性k k是关系是关系R R的外键。通过外键可以的外键。通过外键可以建立两个关系间的联系
4、。建立两个关系间的联系。数据库原理与应用数据库原理与应用(1 1)关系中元组的位置具有顺序无关性,即元组的顺序可以任)关系中元组的位置具有顺序无关性,即元组的顺序可以任意交换。意交换。4.1.2 4.1.2 关系的特征关系的特征(2 2)同一属性的数据具有同质性,即每一列中的分量是同一类)同一属性的数据具有同质性,即每一列中的分量是同一类型的数据,来自同一个域。型的数据,来自同一个域。(3 3)同一关系的属性名具有不可重复性,即同一关系中不同属)同一关系的属性名具有不可重复性,即同一关系中不同属性的数据可出自同一个域,但不同的属性要给予不同的属性名。性的数据可出自同一个域,但不同的属性要给予不
5、同的属性名。(4 4)各列的顺序在理论上是无序的,即列的次序可以任意互换,)各列的顺序在理论上是无序的,即列的次序可以任意互换,但使用时按习惯考虑列的顺序。但使用时按习惯考虑列的顺序。(5 5)关系中任意两个元组不能完全相同,即任意两个元组的侯)关系中任意两个元组不能完全相同,即任意两个元组的侯选键不能相同。选键不能相同。数据库原理与应用数据库原理与应用(6 6)关系中每个分量必须取原子值,即每一个分量都必须是不)关系中每个分量必须取原子值,即每一个分量都必须是不可分的数据项。可分的数据项。s_idf_idf_namef_price101a1apple5.2b1blackberry10.210
6、2bs1orange11.2105bs2melon8.2不是原子不是原子值4.2数据库完整性数据库原理与设计数据库原理与设计7数据库原理与应用数据库原理与应用 数据库完整性是指数据库中数据在逻辑上的一致性、正确性、数据库完整性是指数据库中数据在逻辑上的一致性、正确性、有效性和相容性。有效性和相容性。什么是数据库完整性?什么是数据库完整性?为了维护数据库的完整性,为了维护数据库的完整性,DBMSDBMS必须能够:必须能够:(1 1)提供定义完整性约束条件的机制)提供定义完整性约束条件的机制(2 2)提供完整性检查的方法)提供完整性检查的方法(3 3)违约处理)违约处理数据库原理与应用数据库原理与
7、应用学学 号号姓姓 名名性性 别家庭住址家庭住址1001张三男北京市1002李四女西安市1001张三男北京市学学 生生关系中重复行会带来的危害?关系中重复行会带来的危害?如何避免在关系中输入重复如何避免在关系中输入重复行行,确保数据的唯一性?确保数据的唯一性?数据冗余数据冗余数据的不一致数据的不一致设置置实体完整性体完整性4.2.1 4.2.1 三类完整性规则三类完整性规则数据库原理与应用数据库原理与应用学学 号号姓姓 名名性性 别家庭住址家庭住址1001张三男北京市1002李四女西安市学学 生生如何确保选课关系中的学号应取学生关系中如何确保选课关系中的学号应取学生关系中学号的值?学号的值?设
8、置置参照完整性参照完整性选课选课学学 号号课号号成成绩1001C01951002C0190数据库原理与应用数据库原理与应用如何约束成绩取值在如何约束成绩取值在0-1000-100之间?之间?设置置用用户定定义完整完整性性选课选课学学 号号课号号成成绩1001C01951002C0190数据库原理与应用数据库原理与应用水果订单明细水果订单明细(orderitems)1.1.实体完整性实体完整性实现:实现:设置设置主键主键约束(约束(Primary key)。)。要求:要求:主键值主键值唯一唯一,且,且各个属性都各个属性都不能为空值不能为空值。数据库原理与应用数据库原理与应用水果表(水果表(fru
9、its)2.参照完整性参照完整性实现:实现:设置设置外键外键约束(约束(Foreign key)。)。要求:要求:1)1)外外键或者键或者取空值取空值,或者等于,或者等于被参照关系被参照关系中的中的 主键主键的某个的某个值值。2)被参照关系的列必须设置为主键被参照关系的列必须设置为主键供应商表(供应商表(suppliers)数据库原理与应用数据库原理与应用3.用户定义完整性用户定义完整性实现:实现:属性的取值应当满足用户定义的约束条件。属性的取值应当满足用户定义的约束条件。设置检查约束(设置检查约束(Check)。)。水果表(水果表(fruits)数据库原理与应用数据库原理与应用4.2.4.2
10、.2 2 MySQL MySQL约束控制约束控制1.非空(非空(NOT NULL)约束约束字段名字段名 数据类型数据类型 NOT NULL|NULL【说明】【说明】(1 1)字段默认状态为允许取空值,也可以通过)字段默认状态为允许取空值,也可以通过NULLNULL关键字关键字显式的指明。显式的指明。(2 2)使用了非空约束的字段,如果用户在添加数据时没有)使用了非空约束的字段,如果用户在添加数据时没有给定值,数据库管理系统将会报错。给定值,数据库管理系统将会报错。数据库原理与应用数据库原理与应用【例【例4-2】建立非空约束示例。建立非空约束示例。CREATE TABLE fruits(f_id
11、 CHAR(10)NOT NULL,s_id INT NOT NULL,f_name CHAR(255)NULL,f_price DECIMAL(8,2);DESC fruits;数据库原理与应用数据库原理与应用2主键(主键(PRIMARY KEY)约束)约束作为主键的字段必须满足两个条件:作为主键的字段必须满足两个条件:(1)值唯一;)值唯一;(2)不能为空值。)不能为空值。主键约束分为列级和表级两种定义方式。主键约束分为列级和表级两种定义方式。(1)列级针对表中的一列,)列级针对表中的一列,(2)表级针对同一表中的一列或多列。)表级针对同一表中的一列或多列。数据库原理与应用数据库原理与应用
12、【例【例4-3】建立主键约束示例。建立主键约束示例。CREATE TABLE fruits(f_id CHAR(10)NOT NULL PRIMARY KEY,s_id INT NOT NULL,f_name CHAR(255)NULL,f_price DECIMAL(8,2);(1)列级列级主键约束主键约束数据库原理与应用数据库原理与应用(2)表级表级PRIMARY KEY约束约束CREATE TABLE fruits(f_id CHAR(10)NOT NULL,s_id INT NOT NULL,f_name CHAR(255)NOT NULL,f_price DECIMAL(8,2),P
13、RIMARY KEY(s_id,f_name);CREATE TABLE fruits(f_id CHAR(10)NOT NULL,s_id INT NOT NULL PRIMARY KEY,f_name CHAR(255)NOT NULL PRIMARY KEY,f_price DECIMAL(8,2);这个创建语句是否正确?数据库原理与应用数据库原理与应用【例【例4-4】修改主键约束示例。修改主键约束示例。ALTER TABLE fruits DROP PRIMARY KEY;(1)删除主键约束)删除主键约束(2)为已有表添加主键约束)为已有表添加主键约束ALTER TABLE fruit
14、s ADD PRIMARY KEY(f_id);数据库原理与应用数据库原理与应用3唯一(唯一(UNIQUE)约束)约束要求作为候选键的字段满足要求作为候选键的字段满足2个条件:个条件:(1)值唯一;)值唯一;(2)可有一个且仅有一个空值。)可有一个且仅有一个空值。唯一约束既可以在列级定义,也可以在表级定义。唯一约束既可以在列级定义,也可以在表级定义。数据库原理与应用数据库原理与应用【例【例4-5】唯一约束示例。唯一约束示例。CREATE TABLE suppliers(s_id int NOT NULL PRIMARY KEY,s_name char(50)NOT NULL,s_city ch
15、ar(50)NULL,s_zip char(10)NULL,s_call CHAR(50)NOT NULL UNIQUE);(1)创建)创建suppliers表,为表,为s_call字段定义唯一约束。字段定义唯一约束。数据库原理与应用数据库原理与应用 一个表中可以创建多个唯一约束,为了便于管理,可以采一个表中可以创建多个唯一约束,为了便于管理,可以采用表级方式,通过用表级方式,通过CONSTRAINT关键字为每个唯一约束指关键字为每个唯一约束指定名称。定名称。CREATE TABLE suppliers(s_id int NOT NULL PRIMARY KEY,s_name char(50)
16、NOT NULL,s_city char(50)NULL,s_zip char(10)NULL,s_call CHAR(50),CONSTRAINT call_UQ UNIQUE(s_call);数据库原理与应用数据库原理与应用ALTER TABLE suppliers DROP INDEX call_UQ;(2)删除唯一约束)删除唯一约束call_UQ。(3)为已有表)为已有表suppliers根据根据s_call字段创建唯一约束,约字段创建唯一约束,约束名为束名为call_UQ。ALTER TABLE suppliers ADD CONSTRAINT call_UQ UNIQUE(s_ca
17、ll);数据库原理与应用数据库原理与应用【例【例4-6】检查约束示例。检查约束示例。CREATE TABLE employee(eno DECIMAL(2)PRIMARY KEY,ename VARCHAR(8),age DECIMAL(3)CONSTRAINT age_CK CHECK(age20 AND age20 AND age60 AND address LIKE 北京市%);数据库原理与应用数据库原理与应用5外键(外键(FOREIGN KEY)约束)约束以供应商表和水果表为例:以供应商表和水果表为例:供应商表(供应商编号,名称,所在城市,邮编,电话)供应商表(供应商编号,名称,所在城
18、市,邮编,电话)水果表(水果编号,名称,单价,供应商编号)水果表(水果编号,名称,单价,供应商编号)主(父)表主(父)表从(子)表从(子)表主主键外外键数据库原理与应用数据库原理与应用对对主表主表主键进行主键进行INSERT、DELETE、UPDATE操作,操作,会对从表有什么影响呢?会对从表有什么影响呢?(1)插入()插入(INSERT)主表中主键值的插入,主表中主键值的插入,不会影响不会影响从表中的外键值。从表中的外键值。(2)修改()修改(UPDATE)如果从表中的外键值与主表中的主键值一样,则对主表中主如果从表中的外键值与主表中的主键值一样,则对主表中主键值的修改将键值的修改将影响影响
19、到从表中的外键值。到从表中的外键值。(3)删除()删除(DELETE)主表中主键值的删除,可能会对从表中的外键值产生主表中主键值的删除,可能会对从表中的外键值产生影响影响,除非主表中的主键值没有在从表中的外键值中出现。除非主表中的主键值没有在从表中的外键值中出现。数据库原理与应用数据库原理与应用对对从表从表外键进行外键进行INSERT、DELETE、UPDATE操作,操作,又会对主表有什么影响呢?又会对主表有什么影响呢?(1)插入()插入(INSERT)插入从表的外键值时,要求插入的外键值应插入从表的外键值时,要求插入的外键值应“参照参照”主表主表中的主键值。中的主键值。(2)修改()修改(U
20、PDATE)修改从表的外修改从表的外键值时键值时,要求修改的外,要求修改的外键值键值需需“参照参照”主表中的主表中的主主键值键值。(3)删除()删除(DELETE)从表中元组的删除从表中元组的删除不不需要需要参照参照主表中的主键值。主表中的主键值。数据库原理与应用数据库原理与应用定义外键约束表级语法格式定义外键约束表级语法格式:FROEIGN KEY(字段字段,字段字段)REFERENCES 主表主表(字段字段,字段字段)ON DELETE CASCADE|SET NULL|NO ACTION ON UPDATE CASCADE|SET NULL|NO ACTION(1)CASCADE:主表:
21、主表记录记录的的删删除或者修改操作,会自除或者修改操作,会自动删动删除或除或修改子表中与之修改子表中与之对应对应的的记录记录。(2)SET NULL:主表:主表记录记录的的删删除或者修改操作,会将子表中与除或者修改操作,会将子表中与之之对应记录对应记录的外健的外健值值自自动设动设置置为为NULL。(3)NO ACTION:主表:主表记录记录的的删删除或者修改操作,如果子表中除或者修改操作,如果子表中存在与之存在与之对应对应的的记录记录,则删则删除或修改操作将被禁止除或修改操作将被禁止执执行。行。数据库原理与应用数据库原理与应用【例【例4-7】外键约束示例。外键约束示例。CREATE TABLE
22、 suppliers(s_id int NOT NULL PRIMARY KEY,s_name char(50)NOT NULL,s_city char(50)NULL,s_zip char(10)NULL,s_call CHAR(50)NOT NULL);(1)建立)建立fruits和和suppliers表,实现两表间的外键约束,并指定表,实现两表间的外键约束,并指定为级联更新。为级联更新。数据库原理与应用数据库原理与应用CREATE TABLE fruits(f_id char(10)NOT NULL PRIMARY KEY,s_id INT NOT NULL,f_name char(25
23、5)NOT NULL,f_price decimal(8,2)NOT NULL,CONSTRAINT sid_FK FOREIGN KEY(s_id)REFERENCES suppliers(s_id)ON UPDATE CASCADE);CREATE TABLE fruits(f_id char(10)NOT NULL PRIMARY KEY,s_id INT REFERENCES suppliers(s_id)ON UPDATE CASCADE,f_name char(255)NOT NULL,f_price decimal(8,2)NOT NULL);表表级列列级数据库原理与应用数据库原
24、理与应用(2)删除)删除fruits表上的表上的sid_FK约束。约束。ALTER TABLE fruits DROP CONSTRAINT sid_FK;(3)为)为fruits表设置与表设置与suppliers表的外键约束,并指定为表的外键约束,并指定为级联删除和级联更新。级联删除和级联更新。ALTER TABLE fruits ADD CONSTRAINT sid_FK FOREIGN KEY(s_id)REFERENCES suppliers(s_id)ON DELETE CASCADE ON UPDATE CASCADE;数据库原理与应用数据库原理与应用6.自增(自增(AUTO_IN
25、CREMENT)约束)约束 默认情况下,在默认情况下,在MySQL中中AUTO_INCREMENT的初始的初始值是值是1,每新增一条记录,字段值自动加,每新增一条记录,字段值自动加1。一个表只能有一个字段使用一个表只能有一个字段使用AUTO_INCREMENT约束,约束,且该字段必须为主键的一部分。且该字段必须为主键的一部分。AUTO_INCREMENT约束的字段可以是任何整数类型,约束的字段可以是任何整数类型,如如TINYINT、SMALLINT、INT、BIGINT等。等。数据库原理与应用数据库原理与应用【例【例4-8】自增约束示例。自增约束示例。CREATE TABLE supplier
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系模型基本原理ppt课件数据库原理与应用 关系 模型 基本原理 ppt 课件 数据库 原理 应用
限制150内