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 章 引言 1.数据库管理系统( DataBase-Management System , DBMS ):由一个互相关联的数据的集合和一组用以访问这些数据的程序组成.这个数据集合通常称作数据库( ...

  2. 《数据库系统概念》一二章学习笔记

    书上的例子以及练习题都是用 Mysql 实现的,操作系统使用的 macOS.在使用 Mysql 遇到问题时,推荐查看官方文档 Mysql Reference Manual. 第一章 引言 第一章就是综 ...

  3. 《数据库系统概念》——关系数据库

    文章目录 一.引言 二.关系数据库 1. 关系模型介绍 1.1. 关系数据库的结构 1.2. 数据库模式 1.3. 码 △1.4. 模式图 1.5. 关系查询语言 1.6. 关系运算 1.7. 关系代 ...

  4. 数据库系统概念 引言(一)

    引言 数据库系统的应用 数据库管理系统(DataBase-Management System,DBMS):由一个互相关联的数据的集合和一组用以访问这些数据的程序组成.这个数据集合称作数据库 数据库应用 ...

  5. 《数据库系统概念》第一章:引言

    数据库(database):一个互相关联的数据的集合. 数据库管理系统(DataBase-Management System,DBMS):由数据库和一组用以访问这些数据的程序组成. 数据视图 数据抽象 ...

  6. 数据库系统概念Ch1

    数据库系统概念 CH1 数据:Data,数据是描述人.物体和事件的原始事实. 数据库:DataBase,相关数据的综合集合构成数据库(DB). 数据库管理系统:DataBase-Management ...

  7. 数据库系统概念第六版笔记

    Abraham Siberschatz Henry E Korth S.Sudarshan 杨冬青 李红艳 唐世渭等译. 华章一套书的标志性语言是: 文艺复兴以降,源远流长的科学精神和逐步形成的学术规 ...

  8. 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 ...

  9. 实体 联系 模型mysql_数据库系统概念读书笔记――实体-联系模型_MySQL

    bitsCN.com 数据库系统概念读书笔记--实体-联系模型 前言 为了重新回顾我写的消息系统架构,我需要重新读一下数据库系统概念的前三章,这里简单的做一个笔记,方便自己回顾 基本概念 实体-联系( ...

最新文章

  1. Sublime-text theme 颜色主题
  2. 臻好黄金百香果苗做一个有脑子的程序员
  3. Linux 修改SSH 默认端口 22,防止被破解密码
  4. 第八周项目三-指向学生类的指针
  5. 使用 Eclipse 调试 Java 程序的 10 个技巧
  6. linux下搭建vsftp锁定根目录,Linux服务搭建之vsftp
  7. udev工作流程简图
  8. 刷新所有视图存储过程
  9. 前端遇到瓶颈怎么办?我来告诉你
  10. 英语“就近原则”和“就远原则”
  11. matlab瓶盖盖严检查,口服液瓶盖密封性的质量检测方法你知道吗?
  12. 从陈年往事说说凡客的教训
  13. Java在线预览(word转html)--强势推荐
  14. android动图状态延迟获取到,android实现牛顿摆
  15. css第八课:文本属性(字体,颜色属性)
  16. elastic search 如何将yellow 状态变为green健康状态
  17. Xshell 下载地址
  18. 一种血氧仪方案算法探讨
  19. 纯javascript的HTML在线编辑器
  20. 2021年新版电影小程序商业版+前端无后门+搭建教程亲测可用

热门文章

  1. [设备数][dts]:Flattened Devicetree (DTB) Format
  2. Unity 单侧拉伸物体
  3. 如何批量提取文件名到excel?
  4. [附源码]java毕业设计图书馆自习室管理系统
  5. EOF的意义及用法(while(scanf(%d,n) != EOF))
  6. vscode 增加includepath
  7. linux中fork函数详解,fork() 函数详解
  8. Essential C++学习笔记及源代码(第1章 C++编程基础)
  9. 【踩坑系列】uniapp之h5 跨域的问题
  10. bugFree使用简介 禅道使用简介