?《数据库系统概念》3-主键、关系运算

?

一、关系数据库相关

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

时间: 2024-11-06 07:40:58

?《数据库系统概念》3-主键、关系运算的相关文章

MySQL的几个概念:主键,外键,索引,唯一索引

概念: 主键(primary key) 能够唯一标识表中某一行的属性或属性组.一个表只能有一个主键,但可以有多个候选索引.主键常常与外键构成参照完整性约束,防止出现数据不一致.主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引. 外键(foreign key) 是用于建立和加强两个表数据之间的链接的一列或多列.外键约束主要用来维护两个表之间数据的一致性.简言之,表的外键就是另一表的主键,外键将两表联系起来.一般情况下,要删除一张表中的主键必须首

关系运算 - 数据库系统原理

关系模型有三个重要组成部分: 数据结构.数据库中全部数据及其相互联系都被组织成"关系"(二维表格)的形式. 数据操纵.关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作.关系运算又分为:关系代数和关系演算两类. 数据完整性规则.数据库中数据必须满足实体完整性.参照完整性.用户定义完整性等三类完整性规则. 关系代数的五个基本操作 关系代数是以关系(属性个数相同的元组的集合)为运算对象的一组高级运算的集合.关系代数的操作可以分为两类: 传统的集合操作:并.差.交.笛卡尔积(乘法)

SQL存储原理及聚集索引、非聚集索引、唯一索引、主键约束的关系(补)

索引类型 1.          唯一索引:唯一索引不允许两行具有相同的索引值 2.          主键索引:为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型.主键索引要求主键中的每个值是唯一的,并且不能为空 3.          聚集索引(Clustered):表中各行的物理顺序与键值的逻辑(索引)顺序相同,每个表只能有一个 4.          非聚集索引(Non-clustered):非聚集索引指定表的逻辑顺序.数据存储在一个位置,索引存储在另一个位置,索引中包含指

数据库系统基础笔记(3)--主键/外键 索引

本文转载自:http://www.cnblogs.com/longyi1234/archive/2010/03/24/1693738.html 作者:蔚蓝色的天空 一.什么是主键.外键 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 :  学生表 (学号,姓名,性别,班级)  其中每个学生的学号是唯一的,学号就是一个主键  课程表(课程编号,课程名,学分)  其中课程编号是唯一的,课程编号就是一个主键  成绩表(学号,课

数据库模型设计——关系的实现,主键的设计

一.关系的实现 在实体关系模型中,我们知道有三种关系:一对一.一对多.多对多.这只是概念上的关系,但是在真实的关系数据库中,我们只有外键,并没有这三种关系,那么我们就来说一说在关系数据库管理系统中,怎么实现这三种关系. 一对多 这里先讲解一对多,因为这个关系最简单.一对多和多对一是一回事,所以就不再提多对一这个词.一对多的概念是一个对象A会对应多个对象B,而从B的角度看,一个对象B只会对于一个对象A.比如说班级和学生就是一对多关系.一个班级对应多个学生,一个学生只会对于一个班级. 一对多的关系之

[原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

mysql|中主外键关系(转)

http://my.oschina.net/liting/blog/356150 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的.所以说,如果谈到了外键,一定是至少涉及到两张表.例如下面这两张表: 上面有两张表:部门表(dept).员工表(emp).Id=Dept_id,而Dept_id就

mysql中主外键关系

一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的.所以说,如果谈到了外键,一定是至少涉及到两张表.例如下面这两张表: 上面有两张表:部门表(dept).员工表(emp).Id=Dept_id,而Dept_id就是员工表中的外键:因为员工表中的员工需要知道自己属于哪个部门,就可以通过外键Dep

关于表的主外键关系练习 师生 分数表

--创建三个表 --表一:学生表 student--学号:code int (主键)从1开始--姓名:name varchar(50)--性别:sex char(10)--班级:banji char(10)--语文教师编号:yujiao int --数学教师编号:yujiao int --英语教师编号:yujiao int --表二:教师表 teacher--教师名字:name --教师编号:code int (主键) 从1001开始--负责课程:lesson char(10)(语文.数学.英语