• 数据库复习第二章


    2.1 关系数据结构及形式化定义

    1.关系

    关系模型的数据结构只有一个数据结构:关系

    关系数据结构的形式化定义:

    1.域(domain)

    ​ 一组具有相同数据类型的值的集合(如 (1...100) 的所有正整数集合)

    2.笛卡尔积(cartesian product)

    在域上的一种运算

    定义:

    给定一组域, (D_1,D_2,....D_n)其笛卡尔积为

    (D_1 imes D_2 imes ... imes D_n = { (d_1,d_2,...,d_n)| d_i in D_i , i = 1,2...,n})

    其中,每一个元素 ((d_1,d_2,...,d_n)) 叫做一个 (n) 元组 ,每一个值 (d_i) 叫做一个分量

    一个域允许的不同取值个数称为基数

    (D_i) 为有限集,其基数为 (m_i) ,则 笛卡尔积的基数 (M) 为:

    $M = prod_{i=0}^{n} m_i $

    例:

    (D_1 = { a,b,c } , D_2 = { 1,2 })

    $ D_1 imes D_2 = { (a,1),(a,2),(b,1),(b,2),(c,1),(c,2)}$

    3.关系(relation)

    定义:

    $D_1 imes D_2 imes ... imes D_n $ 的子集叫做在域 (D_1 , D_2 ,..., D_n) 上的关系 表示为:

    (R(D_1,D_2,...D_n)) $ R $是关系的名字, (n) 是关系的度 (degree)

    若关系中的某一属性的值能唯一地标识一个元祖(可以理解为某一个实例),而其子集不能,则称该属性组为候选码。

    若一个关系有多个候选码,则选定其中一个作为主码。

    候选码中的属性为主属性,否则为非主属性,或者非码属性

    例:

    ​ 一个学生有身份证号,学号,姓名这三个属性,身份证号和学号都能唯一标识一个元祖,所以是候选码,主码在这两个中间选取。而姓名为非主属性。

    2.关系模式

    可以形式化的表示为:

    $ R(U,D,DOM,F)$

    (R) 为关系名, (U) 为组成该关系的属性名集合, (D)(U) 中属性所来自的域 , (DOM) 为属性向域的映像集合 , (F) 为属性间数据的依赖关系集合。

    关系是关系模式在某一时刻的状态或内容 。 关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的。

    3.关系数据库

    关系数据库的型也成为关系数据库模式,是对关系数据库的描述。

    关系数据库的值是这些关系模式在某一时刻对应的关系的集合(和上面的关系模式的描述对应),通常就称为关系数据库。

    2.2关系操作

    3.关系的完整性

    1.实体完整性

    若属性A(一个或者一组)是基本关系R的主属性,则A不能为空(不知道或者无意义)

    2.参照完整性

    不同表之间的属性值存在互相引用,则需要保证这些值不存在非法的情况。

    定义:(F) 为基本关系 (R) 的一个或一组属性,但不是 (R) 的码。(K_s) 是基本关系 (S) 的主码。如果 (F)(K_s) 相对应,则称 (F)(R) 的外码,并称基本关系 (R) 为参照关系。

    另外,外码不一定要和相应的主码同名

    接上面的定义:

    对于每个 (R) 中每个元组在 (F) 上的值必须为空值或者 (S) 中某个元组的主码的值

    (可以理解为值必须是有意义的)

    4.关系代数

    1.集合运算

    (1)并

    (R cup S = { t | t in R or t in S}) 结果仍然为 (n) 目关系

    (2)差

    (R - S = { t | t in R and t otin S})

    (3)交

    (R cap S = { t | t in R and t in S})

    (R cap S = R - (R-S))

    (4)笛卡尔积

    (之前叙述过,就不说了

    2.关系运算

    (1)选择

    (sigma (R) = { t|t in F(t)='true'})

    (F) 表示选择条件,是一个逻辑表达式

    (2)投影

    (R) 上的投影是从(R) 中选择出若干属性组成新的关系

    $Pi _A(R) = { r[A]|t in R } $

    (A)(R) 中的属性列,投影操作是从列的角度进行的运算

    (3)连接

    从两个关系的笛卡尔积中选取属性间满足一定条件的元组

    ({ t_rt_s | t_r in R and t_s in S and t_r[A] heta t_s[B] })

    ( heta) 是比较运算符,A和B分别是R和S上列数相等且可比的属性组。

    连接运算从R和S的笛卡尔积中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系 $ heta $的元组

    运算为 = 的连接成为等值连接。自然连接是一种等值连接

    (4)除

    若T为关系R除以关系S的结果,那么T包含所有在R中但不在S中的属性和值

    且T的元组和S的元组的所有组合都在R中

    (R div S = { t_r [X] |t_r in R and Pi _Y (S) sube Y_x })

  • 相关阅读:
    KMP算法的Next数组详解(转)
    公开封尘已久的即时通讯源码(转)
    《C语言编写 学生成绩管理系统》
    随想录(从编程语言到库、框架、软件)
    Effective Objective-C 2.0 笔记三(Literal Syntax简写语法)
    Java Swing 探索(一)LayoutManager
    Codeforces Round #FF 446 C. DZY Loves Fibonacci Numbers
    ARM体系结构与编程
    div:给div加滚动栏 div的滚动栏设置
    DS18B20
  • 原文地址:https://www.cnblogs.com/SCaryon/p/9206492.html
Copyright © 2020-2023  润新知