您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 第2章 关系数据库基本原理(1)
11第2章关系数据库基本原理22本章内容2.1关系数据库概述2.2关系代数的基本原理2.3关系模式的分解2.4关系模型的完整性约束2.5数据库的设计方法第2章关系数据库基本原理332.1关系数据库概述关系模型的基本概念:1.关系一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名。442.1关系数据库概述2.元组二维表的每一行在关系中称为元组(Tuple)。一行描述了现实世界中的一个实体,或者描述了不同实体间的一种联系。3.属性二维表的每一列称为属性(Attribute),每个属性都有一个属性名,各个属性的取值称为属性值。每个属性有一定的取值范围,称为值域。552.1关系数据库概述4.关键字关系中能惟一区分、确定不同元组的属性或属性组合,称为该关系的一个关键字。关键字又称为键或码(Key)。665.候选关键字凡在关系中能惟一区分、确定不同元组的属性或属性组合,都称为该关系的一个候选关键字。6.主关键字在候选关键字里选一个作为关键字,称为该关系的主键。2.1关系数据库概述777.外部关键字如果关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,则称此属性或属性组合为本关系的外部关键字或外键(ForeignKey)。在关系数据库中,用外部关键字表示两个表间的联系。2.1关系数据库概述88部门编号部门名称员工编号身份证号员工姓名性别住址D001总经理办E00137021456789460钱达理男东风路78号D001总经理办E00237021456789461东方牧男五一北路25号D002市场部E00337021456789462郭文斌男公司集体宿舍D003销售部E00437021456789463肖海燕女公司集体宿舍候选关键字是:员工编号、身份证号选员工编号为主关键字2.1关系数据库概述99职工号姓名出生日期部门号2006014张海良75/8/92012006021房明明78/8/126012006025王晓利77/2/14301部门号部门部门经理201销售部张宏301公关部张丰601人事部韩强502生产部李涛职工基本情况表部门基本情况表主键主键外关键字10108.分量元组中的一个属性值。9.关系模式对关系的描述关系名(属性1,属性2,…,属性n)例:学生(学号,姓名,年龄,性别,系,年级)2.1关系数据库概述11112.1关系数据库概述关系数据库基本特征有坚实的理论基础数据结构简单、易于理解对用户提供了较全面的操作支持得到了众多开发商的支持12122.2关系代数的基本原理关系的数学定义1.集合集合是与某一研究过程相关的一类对象的整体,这些对象称为集合的元素。2.元组几个元素组成的一个有序组称为一个元组,通常元组用圆括号括起来的一些元素表示,元素间使用逗号分隔。例如(3,5,6)和(E001,钱达理,男,东风路78号)是元组的例子。13132.2关系代数的基本原理3.笛卡尔积由R中的每一个元组与S中的每一个元组两两相连,把R和S的元组以所有可能的方式组合起来,合并为R×S的元组。4.关系关系是一个集合,其组成元素是元组而不是组成元组的元素。1414例:现有学生表、必修课程表,每个学生必须学习所有必修课程,要求形成选课表。可以利用关系乘运算实现。学号姓名0406001王晓立0406002张大卫学生表R广义笛卡尔积(续)1515必修课程表S课程号课程名学分C601数据库3C602操作系统2C603数学5广义笛卡尔积(续)1616新关系R×S学号姓名课程号课程名学分0406001王晓立C601数据库30406001王晓立C602操作系统20406001王晓立C603数学50406002张大卫C601数据库30406002张大卫C602操作系统20406002张大卫C603数学517172.2关系代数的基本原理关系运算:对二维表格进行运算的机制。1.并设A、B同为n元关系,则A、B的并也是一个n元关系,记作A∪B。A∩B包含了所有分属于A、B的元组。2.交设A、B同为n元关系,则A、B的交也是一个n元关系,记作A∩B。A∩B包含了所有同属于A、B的元组。18183.差设A、B同为n元关系,则A、B的差也是一个n元关系,记作A-B。A-B包含了所有属于A但不属于B的元组。1919【例】现有在职职工和离退修职工两个表,若需要所有职工的表,可以利用运算实现。在职职工表R工号姓名性别状态106001张春来男1103026马宏明男1105008王红女1离退休职工表S工号姓名性别状态106008李建新男0104012王红女0并2020工号姓名性别状态106001张春来男1103026马宏明男1105008王红女1106008李建新男0104012王红女0新关系R∪S2121【例】某商店有本店商品表,接到不合格商品表后,需要将本店中的不合格商品去掉。可以利用运算实现。品牌名称厂家106001奶粉天南103026奶粉地北205008白糖南山204045白糖北山302034食盐西山本店商品表R差不合格商品表S品牌名称厂家103026奶粉地北4023037火腿西山204045白糖北山2222新关系R-S品牌名称厂家106001奶粉天南205008白糖南山302034食盐西山2323【例】找出本店内不合格的商品,可以用运算实现。品牌名称厂家103026奶粉地北204045白糖北山新关系R∩S交2424关系R的选择运算是从关系R中选择满足指定条件(用F表示)的元组构成的新关系。换言之,选择运算的结果是一个表的水平方向的子集。关系R的选择运算记为:4.选择运算σF(R)2525选择运算(续)学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19ISStudent2626选择运算(续)[例]查询信息系(IS系)全体学生结果:SnoSnameSsexSageSdept95002刘晨女19IS95004张立男19ISσSdept='IS'(Student)或σ5='IS'(Student)2727工号姓名性别状态106001张春来男1103026马宏明男1105008王红女1106008李建新男0104012王红女0职工表E[例]求所有在职男职工信息。σ性别=‘男’∧状态=1(E)2828投影:关系R的投影运算是从R中选择某些属性的所有值组成的新关系。换言之,投影运算的结果是一个表的垂直方向的子集。关系R的投影运算记为:πA(R)。其中,A为R的一组属性列。投影的结果将消除重复的元组。5.投影运算2929工号姓名性别状态106001张春来男1103026马宏明男1105008王红女1106008李建新男0104012王红女0职工表E投影运算(续)【例】从职工表中列出所有职工的名单,可以通过运算实现投影3030姓名张春来马宏明王红李建新π姓名(E)投影运算(续)注意:π姓名(E)运算的结果将同名的两个“王红”去掉重复,只保留一个。3131【例】列出职工姓名及其任职状态,可以通过投影运算实现。姓名状态张春来1马宏明1王红1李建新0王红0π姓名,状态(E)3232关系R与关系S的连接运算是从两个关系的广义笛卡尔积中选取属性间满足一定条件的元组形成一个新关系。记作:SRAθB3.连接运算:其中:A为包含R中的属性的表达式B为包含S中属性的表达式θ通常为关系比较符。3333等值连接:θ为“=”的连接运算称为等值连接。关系R和S的等值连接是从R和S的广义笛卡尔积R×S中选取A与B等值的那些元组形成的关系。自然连接关系R和S的自然连接是一种特殊的等值连接,它要求关系R和S中进行比较的分量必须是相同的属性组的一种连接,并且在结果中把重复的属性列去掉(只保留一个)。自然连接记为:SR连接运算(续)3434连接(续)举例ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS3535连接(续)RSAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310C<E3636连接(续)等值连接RSR.B=S.BAR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b323737连接(续)自然连接RSABCEa1b153a1b267a2b3810a2b3823838【例】设有图书借阅信息表和图书信息表,求各读者借阅图书的信息。读者编号图书编号借期还期2004060002F12.242004-6-292002060328F23.552004-5-262004-12-222004160426G11.112004-10-212002060328G12.082004-8-262002060328G11.222004-9-012004160426G12.102004-9-142004-11-08借阅信息表borrowinf3939编号书名作者出版社出版日期定价F12.24计算机文化基础刘凌志青山2002.521.80F33.33数据结构实用教程王云晓蓝天2002.522.00G22.12VisualBasic实用教程梁晓峰碧水2003.1028.00G11.22Java实用教程张大海碧水2004.720.80F23.55数据结构(C语言版)马志刚青山2004.724.50G11.11C语言程序设计张大海蓝天2004.826.30G12.08C语言程序设计梁晓峰青山2004.1022.00G12.10C语言程序设计梁晓峰青山2004.1022.00图书信息表books4040求各读者借阅图书的信息,可通过等值连接实现:borrowinfbooks图书编号=编号结果为:连接(续)4141读者编号图书编号借期还期编号书名作者出版社出版日期定价2004060002F12.2452004-6-29F12.245计算机文化基础刘凌志青山2002.521.802002060328F23.552004-5-262004-12-22F23.55数据结构(C语言版)马志刚青山2004.728.002004160426G11.112004-10-21G11.11C语言程序设计张大海蓝天2004.82002060328G12.082004-8-26G12.08C语言程序设计梁晓峰青山2004.102002060328G11.222004-9-01G11.22Java实用教程张大海碧水2004.720.802004160426G12.102004-9-142004-11-08G12.10C语言程序设计梁晓峰青山2004.1022.00连接(续)4242提问什么是选择、投影运算?什么是并、交、差运算?什么是连接运算?等值连接与自然连接有何区别?4343自然连接一定是等值连接,但等值连接不一定是自然连接,因为自然连接要求相等的分量必须是公共属性,而等值连接要求相等的分量不一定是公共属性等值连接不把重复属性去掉,而自然连接要把重复属性去掉4444应用实例设教学数据库中有三个关系学生关系(学号,姓名,性别,年龄,所在系,专业)课程关系(课程号,课程名,学时数)选课关系(学号,课程号,成绩)45451.检索年龄大于18的男生的学号和姓名学号,姓名(年龄18^性别=‘男’(学生))2、检索学习课程号为C201的学生的学号与成绩学号,成绩(课程号=‘C201’(选课))4646学号,姓名(课程号=‘C142’(学生∞选课))应用实例3、检索学习课程号为C142的学生的学号与姓名4.检索不学课程代号为c345的学生的姓名与年龄姓名,年龄(学生)-姓名,年龄(课程号=‘c345’(学生∞选课))47475.检索李强同学不学课程的课程号课程号(课程)-课程号(姓名=‘李强’(学生∞选课))4848应用实例设教学数据库中有三个关系student(sno,sname,ssex,sage,sdept)course(cno,c
本文标题:第2章 关系数据库基本原理(1)
链接地址:https://www.777doc.com/doc-3152097 .html