数据库系统概念 Relational Model
Structure of Relational Databases
- 关系数据库由表 (table) 的集合构成,每个表有唯一的名字
- 表中的一行戴奥了一组值之间的一种联系 (relationship)
- 表是这种联系的一个集合
- Venn图如下
可以看到,table和relation两个概念密切相关。
- relation⟹tablerelation\implies{table}relation⟹table
- attribute⟹columnattribute\implies{column}attribute⟹column
- 关系实例 (relation instance):一个关系的特定实例,即即一组特定的行;
- 对于关系的每个属性,都存在一个允许取值的集合,成为该属性的域 (domain)
- 关系的所有属性的域都具有原子性 (atomic 不可再分)
Database Schema
- Database Schema 数据库模式:数据库的逻辑设计 可类比变量定义
- Databse Instance 数据库实例:给定时刻数据库中状态 类比某一时刻变量的值
Keys
用于区分给定关系中不同元组的方法。
- Superkey 超码:能够在一个关系中唯一地标识一个元组的,一个或多个属性的集合。
- Candidate key 候选码:如果一个超码地任意真子集都不能成为超码,这样最小的超码称为候选码。
- Primary key 主码:被数据库设计者选中的、主要用来在一个关系中区分不同元组的候选码。
- Venn图如下
需要注意,码是整个关系的一种性质,而不是单个元组的性质。
- 一个关系模式(r1)可能在它的属性中包括另一个关系模式和(r2)的主码,这个属性在r1上称作参照r2的外码 (foreign key)
r1称为外码的参照关系(referencing relation)
r2称为外码的被参照关系(referenced relation)
Schema Diagrams
一个含有主码和外码依赖的数据库模式可以用模式图(schema diagram)表示。
Relational Query Languages
查询语言(query language) 是用户用来从数据库中请求获取信息的语言。
过程化与非过程化。
Relational Operations
Symbol (Name) | Usage | Example |
---|---|---|
σ\sigmaσ (Selection) | 返回输入关系中满足谓词的元组 | σage>=18(student)\sigma_{age>=18}(student)σage>=18(student) |
Π\PiΠ (Projection) | 对输入关系的所有行输出指定的属性。从输出中去除重复元组 | ΠID,salary(instructor)\Pi_{ID,salary}(instructor)ΠID,salary(instructor) |
⋈⋈⋈ (Natural join) | 从两个输入关系中输出这样的元组对:他们在具有相同名字的所有属性上取值相同 | instructor⋈departmentinstructor⋈departmentinstructor⋈department |
×\times× (Cartesian product) | 从两个输入关系中输出所有的元组对 | instructor×departmentinstructor \times departmentinstructor×department |
⋃\bigcup⋃ (Union) | 输出两个输入关系中元组的并 | Πname(instructor)⋃Πname(student)\Pi_{name}(instructor) \bigcup \Pi_{name}(student)Πname(instructor)⋃Πname(student) |
−-− (Set Difference) | 输出两个输入关系中元组的差 | Πname(instructor)−Πname(student)\Pi_{name}(instructor) - \Pi_{name}(student)Πname(instructor)−Πname(student) |
例题:
(1)Πperson_name(σcity="Miami"(employee))\Pi_{person\_name}(\sigma_{city="Miami"}(employee))Πperson_name(σcity="Miami"(employee))
(2)Πperson_name(employee⋈σsalary>100000(works))\Pi_{person\_name}(employee⋈\sigma_{salary>100000}(works))Πperson_name(employee⋈σsalary>100000(works))
(3)Πperson_name(σcity="Miami"(employee)⋈σsalary>100000(works))\Pi_{person\_name}(\sigma_{city="Miami"}(employee)⋈\sigma_{salary>100000}(works))Πperson_name(σcity="Miami"(employee)⋈σsalary>100000(works))
(4)Πperson_name,city(employee⋈σcompany_name="FirstBankCorparation"(works))\Pi_{person\_name, city}(employee⋈ \sigma_{company\_name="First Bank Corparation"}(works))Πperson_name,city(employee⋈σcompany_name="FirstBankCorparation"(works))
(5)Πperson_name,street,city(employee⋈σcompany_name="FirstBankCorparation"⋀salary>10000(works))\Pi_{person\_name, street, city}(employee ⋈ \sigma_{company\_name="First Bank Corparation"\bigwedge salary>10000}(works) )Πperson_name,street,city(employee⋈σcompany_name="FirstBankCorparation"⋀salary>10000(works))
(6)Πperson_name(σemployee.city=company.city(employee×(works⋈company)))\Pi_{person\_name}(\sigma_{employee.city=company.city}(employee \times (works ⋈ company)))Πperson_name(σemployee.city=company.city(employee×(works⋈company)))
数据库系统概念 Relational Model相关推荐
- 数据库系统概念—学习笔记1
第1 章 引言 1.数据库管理系统( DataBase-Management System , DBMS ):由一个互相关联的数据的集合和一组用以访问这些数据的程序组成.这个数据集合通常称作数据库( ...
- 《数据库系统概念》一二章学习笔记
书上的例子以及练习题都是用 Mysql 实现的,操作系统使用的 macOS.在使用 Mysql 遇到问题时,推荐查看官方文档 Mysql Reference Manual. 第一章 引言 第一章就是综 ...
- 《数据库系统概念》——关系数据库
文章目录 一.引言 二.关系数据库 1. 关系模型介绍 1.1. 关系数据库的结构 1.2. 数据库模式 1.3. 码 △1.4. 模式图 1.5. 关系查询语言 1.6. 关系运算 1.7. 关系代 ...
- 数据库系统概念 引言(一)
引言 数据库系统的应用 数据库管理系统(DataBase-Management System,DBMS):由一个互相关联的数据的集合和一组用以访问这些数据的程序组成.这个数据集合称作数据库 数据库应用 ...
- 《数据库系统概念》第一章:引言
数据库(database):一个互相关联的数据的集合. 数据库管理系统(DataBase-Management System,DBMS):由数据库和一组用以访问这些数据的程序组成. 数据视图 数据抽象 ...
- 数据库系统概念Ch1
数据库系统概念 CH1 数据:Data,数据是描述人.物体和事件的原始事实. 数据库:DataBase,相关数据的综合集合构成数据库(DB). 数据库管理系统:DataBase-Management ...
- 数据库系统概念第六版笔记
Abraham Siberschatz Henry E Korth S.Sudarshan 杨冬青 李红艳 唐世渭等译. 华章一套书的标志性语言是: 文艺复兴以降,源远流长的科学精神和逐步形成的学术规 ...
- 15-445 lecture#1 Relational Model Relational Algebrae
1 Databases A database is an organized collection of inter-related data that models some aspect of t ...
- 实体 联系 模型mysql_数据库系统概念读书笔记――实体-联系模型_MySQL
bitsCN.com 数据库系统概念读书笔记--实体-联系模型 前言 为了重新回顾我写的消息系统架构,我需要重新读一下数据库系统概念的前三章,这里简单的做一个笔记,方便自己回顾 基本概念 实体-联系( ...
最新文章
- Sublime-text theme 颜色主题
- 臻好黄金百香果苗做一个有脑子的程序员
- Linux 修改SSH 默认端口 22,防止被破解密码
- 第八周项目三-指向学生类的指针
- 使用 Eclipse 调试 Java 程序的 10 个技巧
- linux下搭建vsftp锁定根目录,Linux服务搭建之vsftp
- udev工作流程简图
- 刷新所有视图存储过程
- 前端遇到瓶颈怎么办?我来告诉你
- 英语“就近原则”和“就远原则”
- matlab瓶盖盖严检查,口服液瓶盖密封性的质量检测方法你知道吗?
- 从陈年往事说说凡客的教训
- Java在线预览(word转html)--强势推荐
- android动图状态延迟获取到,android实现牛顿摆
- css第八课:文本属性(字体,颜色属性)
- elastic search 如何将yellow 状态变为green健康状态
- Xshell 下载地址
- 一种血氧仪方案算法探讨
- 纯javascript的HTML在线编辑器
- 2021年新版电影小程序商业版+前端无后门+搭建教程亲测可用
热门文章
- [设备数][dts]:Flattened Devicetree (DTB) Format
- Unity 单侧拉伸物体
- 如何批量提取文件名到excel?
- [附源码]java毕业设计图书馆自习室管理系统
- EOF的意义及用法(while(scanf(%d,n) != EOF))
- vscode 增加includepath
- linux中fork函数详解,fork() 函数详解
- Essential C++学习笔记及源代码(第1章 C++编程基础)
- 【踩坑系列】uniapp之h5 跨域的问题
- bugFree使用简介 禅道使用简介