《数据库系统概念》3-主键、关系运算
来源:互联网 发布:淘宝直通车使用条件 编辑:程序博客网 时间:2024/06/05 15:29
一、关系数据库相关
a)在将数据呈现给用户时,主要需解决两个关键问题:如何检索、更新数据以及对数据的保护。
而用户对字段的使用决定了其是否原子性,比如phone,即使保存单个电话号码,如果根据电话号码区分运营商、地域,则是不满足原子性的。
b)键的分类:
超键(Super key),由若干字段组合起来,可以唯一地标识一个数据对象
候选键(Candidate key),超键的不同组合方式
主键(Primary key) 被数据库设计者选中的候选键
c)主键的选择需能够唯一地标识一个数据对象,且不会改变或很少变动
d)如果Department.dept_name为主键,instructor表通过instructor.dept_name与department表关联,则instructor.dept_name称为instructor表的外键(foreign key),从instructor.dept_name到department.dept_name的关系称为外键的参照关系(referencing relation),从department.dept_name到instructor.dept_name的关系称为被参照关系(referenced relation)。
e)参照关系必须遵守参照完整性约束,即参照关系中任意元组在特定字段上的值在被参照关系的元组的对应属性中存在。
f)表关系可以用Schema图来表示:
但虽然这种图可以表达外键关系,却无法显示参照完整性约束,后面学习的E-R图可以弥补这一点。
二、关系运算
常用关系运算有选择、投影、自然连接等:
选择σ
选择运算会输出满足谓词条件的行,比如where instructor.salary>=85000
投影∏
会输出包含指定列的数据,并去掉重复项
自然连接⋈
将两个关系的元组合并成单个元组,比如将instructor和department根据dept_name连接起来,就得到每个导师及其部门的信息
笛卡尔积×
笛卡尔积输出的是所有的元组对,比如教师与部门的笛卡尔积表示两者所有可能的对应情况
并∪
并运算会合并两个相似结构的表。
对于运算结果中的重复数据,有些SQL语言会严格遵守集合运算的数学定义去除重复,有些则考虑到去重需要大量相关处理,就保留了重复,比如T-SQL同时又UNION和UNION ALL。
学习资料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan
- 《数据库系统概念》3-主键、关系运算
- 《数据库系统概念》9-附加关系运算
- 《数据库系统概念》8-选择、投影等关系运算
- 数据库系统概念读书笔记(3)--关系模型
- 《数据库系统概念》笔记:关系模型
- 数据库系统概念笔记-关系模型介绍
- 数据库联合主键概念
- 数据库系统原理之关系运算
- 数据库系统概论----关系运算之除运算
- 数据库概念:主键,外键,索引
- 《数据库系统概念》4-DDL、集合运算、嵌套子查询
- 数据库系统概念中table/view/schema/index的关系
- 【数据库系统概念部分习题】第二章 关系模型介绍
- 数据库系统概念(第二章:关系模型介绍)
- 关系数据库相关概念
- 关系数据库中的概念
- 自考《数据库系统原理》(4)之关系运算
- 数据库中的关系运算
- 【Mybatis学习】Mybatis缓存
- Arrays&Collections总结
- HttpClient 超时相关参数设置
- 算法训练 乘法表
- Java for Web学习笔记(八八):消息和集群(3)序列化Serializable
- 《数据库系统概念》3-主键、关系运算
- 百钱买百鸡
- Spring Boot 快速入门 mac IDEA
- ES6之代码模块化
- C中程序的内存分配和函数调用时栈帧的创建
- sqlite学习笔记(3)用Doxygen辅助看代码
- 关于Python里pip安装库的时候总是超时的问题
- 11月11日一些小知识
- opencv split merge