数据库原理及应用(四)关系数据库

关系模型及其定义

        关系数据结构的定义

                1.关系的数学定义         (1)域的定义:一组具有相同数据类型的值的集合{0,1}、{男、女}

                                                     (2)笛卡尔积的定义

                                                 (3)关系的定义

                                 关系是笛卡尔积中有意义的元组(很多没用的元组)

                                  关系中的基本名词       

                                        1.元组:一个横行

                                         2.属性:一个列

                                         3.候选码:能唯一标识一个元组

                                         4.全码:包含全部属性的候选码(单属性候选码、多属性候选码)

                                         5.主属性和非属性:候选码的属性为主属性

                2.数据库中关系的类型

                        (1)基本表:实际存在的表,是实际存储数据的逻辑表示

                        (2)视图表:由基本表或其他视图表导出的表(数据虚表,用于查询和处理数据)

                        (3)查询表:由查询结果临时生成的表

                3.数据库中基本关系的性质

                        (1)同一属性的数据具有同质性:同一列的数据必须来自一个域(同类型数据)

                        (2)同一关系的属性名具有不能重复性

                        (3)关系中的列具有顺序无关系性:交换位置不影响使用

                        (4)关系具有元组无冗余性:任意两个元组不能完全相同

                        (5)关系中的元组位置具有顺序无关性

                        (6)关系中每一个分量都必须是不可分的数据项

                 4.关系模式的定义

                 5.关系数据库:实体集及实体集间的联系都是用关系表示的

关系操作概述

        关系操作的基本内容:选择、投影、连接、除、并、交、差、笛卡尔积

        关系操作的特点              1.语言操作一体化

                                                2.方式是一次一集合的方式

                                                3.是高度非过程化的语言

                                                        (1)采用最简单的、最规范的数据结构

                                                        (2)运用了先进的数学工具--集合运算和谓词运算

        关系操作语言:        1.关系代数语言

                                          2.关系演算语言

                                          3.基于映像的语言

        关系的完整性:        1.关系模型的实体完整性        (1)实体完整性能保证实体的唯一性

                                                                                        (2)实体完整性能够保证实体的可区分性

                                          2.关系模型的参照完整性

                                                (1)外码和参照关系

                                                (2)参照完整性规划        外码不能为空值

                                                (3)用户定义的完整性

关系代数

        传统的集合运算 

                并(Union)                R U S         由R和S的元组组成

                差(Diffrence)            R - S          数据属于R但是不属于S

                交(Intersection)        R ∩ S        数据即属于S又属于R

                 笛卡尔积                 R X S        S和R排列组合

        专门的关系运算

                记号说明        

                 专门关系运算的定义

                        1.选择(Selection)

                        2.投影(projection去重)

                         3.连接(join)

                        4.除(Division)

                 关系演算

                        元组关系演算预言ALPHA

                                基本操作格式为:

                                        操作语句   工作空间名(表达式): 操作条件

                                操作语句主要有GET,PUT,HOLD,UPDATE,DELETE,OEOP

                                1.检索操作

GET W(选课.课程号)--简单检索

GET W(学生.学号):   学生.所在系='计算机' ^ 学生.年龄>20--带条件检索

GET W(学生.学号):   学生.所在系='计算机'  DOWN 学生.年龄--带排序

GET W(1)(学生.学号):    学生.所在系=‘数学系’--带定额检索

RANGE 选课 X
GET W(X.学号):    X.课程号=‘C1’--带元组变量的检索(RANGE来说明元组变量)

RANGE 选课 X
GET W(学生.姓名):    ∃X(X.学号=学生.学号^X.课程号="C1")--查询选修C1的学生的名字

RANGE 选课 X
GET W(学生.姓名):    ∀X(X.学号=学生.学号^X.课程号=‘C1’)--查询没有选修C1的学生(全量词检索)

                                 2.修改数据

                                        (1)用HOLD语句将要修改的元组读取到工作空间

                                        (2)用宿主语言修改工作空间中元组的属性

                                        (3)用UPDATE将修改后的元组送回数据库中

HOLD W(学生.学号,学生.所在系):学生.学号='98005'    (获取数据,不能使用GET语句)
MOVE '计算机系' TO W.所在系    (修改)
UPDATE W    (将修改后的元组送回数据库)

                         不能直接修改主码,如果需要修改主码则需要先删除新增

                                3.插入

MOVE '98007' TO W.学号
MOVE '王勇'  TO W.姓名
PUT W(学生)

                                 4.删除

HOLD W(学生):学生.学号='98005'
DELETE W

                                 5.修改主码

HOLD W(学生):学生.学号='98007'
DELETE W

MOVE '98005' TO W.学号
MOVE ....
PUT (学生)

                                 6.提供的集函数

                                        COUNT:计数        TOTAL:求和        MAX,MIN,AVG

GET W(COUNT(课程.课程号))        --计算课程数

GET(AVG(学生.年龄)):学生.所在系='数学系'    --计算数学系学生的平均年龄

         域关系演算语句QBE

 

 

 

 

 

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值