2.1.1 关系


笛卡儿积
关系
candiate key 如果一组属性值可以唯一的标识一个元祖,但是他的子集不行,那么这是一个候选码
关系可以由三种类型
基本关系
查询关系
视图

为关系附加如下两条定义
无限关系是无意义的,
通过为关系附加一个属性名的方式取消 关系的有序性

基本关系有如下6条性质
列是同质的
不同的列可以取自同一个域
行的顺序无所谓
任意两个元祖的候选码不可以相同
分量必须是原子化的

2.1.2 关系模式

关系模式可以形式化的表现为
R(U,D,ROM,F)
U 是 组成关系的属性集合
D 是 属性所取值的域
ROM 是属性向域的映射集合
F 是属性之间依赖关系的集合

关系模式可以简记成R(U) R(A1,A2..) An 是属性名 , 其他的部分省略

2.2 关系操作

2.2.1 基本关系操作

选择 投影 连接 除 差 并 交 笛卡儿积

基本操作有: 选择 投影 并 差 笛卡儿积 五种

2.2.2 关系语言的分类

代数方式或者逻辑关系来表示

分别称为 关系代数和关系演算

  • 关系代数用对关系的运算来表达查询需求

  • 关系演算用谓词来表示 查询需求

关系演算又按照基本对象是 元组变量还是域变量 分为 元祖关系演算语言 和 域关系演算语言

和具有以上两种关系的语言 SQL

SQL 是集查询, 数据定义语言 数据操作语言, 数据控制语言 DCL 于一体的语言

2.3 关系的完整性

2.3.1 实体完整性

就是null 主属性都不可以为 NULL

2.3.2 参照完整性

就是如果F 是 R的 外码
与 S中的 Ks 相对应
那么 F 可以取空值
非空值要等于S中某一个主码的值

2.4 关系代数

关系代数分为 传统的集合运算和关门的关系运算符两种

2.4.1 传统的集合运算

差 并 交 笛卡儿积(广义的) 4种

2.4.2 专门的关系运算符号

包括 选择 投影 连接 除运算等

选择

选择表达式实际上是从关系 R种选择使得 F 为真的元组
σF(R) ={t | t属于R 并且F(t)='真'}

投影

投影是从R中选出若干属性列组成新的关系。
ΠA(R)={t[a] |t 属于R}

连接

也成为 θ 连接,从两个关系的笛卡尔积中选出满足一定条件的元祖来

θ 是= 的连接被称为等值连接

自然连接是一种特殊的等值连接 ,这要求 进行比较的两个关系中 属性名相等,并且在结果中 除去重复的列

关系R 中有些元组因为对应的 S 中不存在,所以有可能被放弃,变成悬浮元组,(dangline tuple)

保留悬浮元组并且 填上NULL 称为外连接 。 只保留左边和右边 分别是左连接 右连接

除运算

R / S ={Tr[X] | Tr 属于 R 并且Πy(S) 属于Yx}

关系演算

2.5.1 元组关系演算语言 ALPHA

1 检索操作

2.5.2元组关系演算

暂略

关系数据库(ch.2)的更多相关文章

  1. java基础学习总结——GUI编程(一) 还未仔细阅读

    一.AWT介绍

  2. 关系数据库理论 ch.6

    6.1 问题的提出 关系模式是一个5元组 R U,D,DOM,F U 属性 D 域 DOM 属性到域的映射 F 依赖 在本章中将关系模式看作 三元组 R U,D 属性-依赖 1NF 每一个分量是不可分 ...

  3. 关系数据库标准语言 SQL (ch.3)

    3.1 SQL 概述 3.1.2 特点 1 综合统一 非关系型语言 的数据语言都分为 DDL Scheme Data Definitin Language, 模式DDL SubScheme Data ...

  4. sqoop数据迁移(基于Hadoop和关系数据库服务器之间传送数据)

    1:sqoop的概述: (1):sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具.(2):导入数据:MySQL,Oracle导入数据到Hadoop的HDFS.HIV ...

  5. 关系数据库SQL之可编程性触发器

    前言 前面关系数据库SQL之可编程性函数(用户自定义函数)一文提到关系型数据库提供了可编程性的函数.存储过程.事务.触发器及游标,前文已介绍了函数.存储过程.事务,本文来介绍一下触发器的使用.(还是以 ...

  6. 前端开发必学技能之一———非关系数据库又像关系数据库的MongoDB快速入门第一步下载与安装

    数据库总的来说,分为两个方向:关系数据库和非关系数据库.我们常见的MySQL.Oracle.SQLSerever以及IBMDB2都是属于关系数据库,这里的关系值得是二维表的结构,但是由于随着web的应 ...

  7. CH模拟赛 皇后游戏

    /* 做的时候手推了一下n=2的四种情况,再排一下序就可以了,证明不是很严谨,但我想这就行了,毕竟全是套路 */ #include<iostream> #include<cstdio ...

  8. CH模拟赛 还教室

    /* 区间操作,可以推一推式子,方差为平方的平均数-平均数的平方,维护区间和与区间平方和,平方和的维护方法类似,式子推一推就行了,注意约分 */ #include<iostream> #i ...

  9. CH模拟赛 拆地毯

    /* MST,注意只能加K条边,但是备选是M条边 */ #include<iostream> #include<cstdio> #include<string> # ...

随机推荐

  1. Django缓存机制以及使用redis缓存数据库

    目录 Django 配置缓存机制 缓存系统工作原理 Django settings 中 默认cache 缓存配置 利用文件系统来缓存 使用Memcache来缓存: 使用Local-memory来缓存: ...

  2. Android基础控件DatePicker的使用

    1.简介 DatePicker日期选择器,自带spinner和calendar两种模式,相关属性: android:calendarTextColor : 日历列表的文本的颜色 android:cal ...

  3. jeecms v9 vue-CLI开发环境配置

    vue-CLI开发环境配置 Vue.js 提供一个官方命令行工具,可用于快速搭建大型单页应用.该工具提供开箱即用的构建工具配置,带来现代化的前端开发流程.只需几分钟即可创建并启动一个带热重载.保存时静 ...

  4. day71test

    目录 练习: settings.py views.py: exception.py urls.py 练习: 视图类渲染,解析, 异常配置: 作业: 1..简单过过请求模块的源码流程,建立一个视图类,完 ...

  5. 如何在easyui datagrid 中显示外键的值

    1.需要在角色列表显示角色类别的值,而角色类别是外键,关联数据字典,明细见下图: 2.代码如下: columns: [[ { field: 'ck', checkbox: true, align: ' ...

  6. centos Python2.6 升级到2.7

    需求: centos 6.x 系统默认Python 版本都是2.6,实际生产环境中需要用到Python 2.7.x Python 2.7 下载地址 [root@ansible package]# wg ...

  7. bzoj1003物流运输 最短路+DP

    bzoj1003物流运输 题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输 ...

  8. 关于js的闭包和复制对象

    一.有关js的闭包 1.概念:所谓的闭包,就是指的两个作用域,其中内层作用于可以访问外层作用域的函数的现象 2.简单应用 for(var i = 0;i< lis.lenth;i++){ (fu ...

  9. JavaSE_07_Collection接口的List和Set

    1.1 List接口介绍 java.util.List接口继承自Collection接口,是单列集合的一个重要分支 List接口特点: 它是一个元素存取有序的集合.例如,存元素的顺序是1.2.3.那么 ...

  10. python基础---递归函数真题解析

    方法一.有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中. 即: {'k ...