当前位置: 首页 > news >正文

关系型数据库 期末复习(未完

关系型数据库

  • 绪论
    • 概念间的关系
    • 数据库的历史
    • 信息和数据
    • 数据模型
  • 关系模型
    • 数据结构
    • 关系完整性
    • 关系操作
      • 语言
  • 关系代数语言

绪论

概念间的关系

数据->数据库->数据库管理系统->数据库系统

数据库的历史

人工管理阶段 -> 文件系统阶段 -> 数据库系统阶段

数据库系统结构:三级模式、二级映射

  • 外模式:用户
  • [概念]模式
  • 内模式:数据库的物理存储

信息和数据

信息抽象于现实,可用E-R图描述,包括:

  • 实体 entity :具体的事物 或 抽象概念 或 他们之间的联系
  • 实体集 entity set
  • 属性 attribute
  • 属性域 domain :属性的取值范围
  • 码 key :唯一标识实体的属性(集)
  • 实体型 entity type
  • 联系 relationship
    不同实体型之间有三种联系:1:1,1:n,m:n (可以没有)

数据由信息转化,对应计算机,包括:

  • 字段 field 或数据项 data item:标记实体的属性
  • 记录 record
  • 记录型
  • 文件
  • 码 key

数据模型

分类:层次模型 hierarchical model ,网状模型 network model,关系模型 relational model ,面向对象数据模型 object oriented data model ,对象关系数据模型,半结构化数据模型等
操作:增删改查
数据结构

  • 码、主关键字 primary key:唯一标识
  • 域 domain
  • 行=元组 tuple =记录
  • 列=属性 attribute =字段
  • 主属性包括主码、候选码
  • 分量

完整性约束:实体完整性、参照完整性、用户定义完整性(用户自定义域)

关系模型

描述:关系名(属性1,属性2,……属性n)
关系的每一个分量必须是不可分的数据项

数据结构

  • 域 domain
    值域,表示属性的取值范围
    域中所包含的值的个数称域的基数(m)
  • 笛卡尔积 cartesian product
    D 1 × D 2 = { ( d 1 , d 2 ) ∣ d i ∈ D i } D_1\times D_2=\{(d_1,d_2)|d_i\in D_i\} D1×D2={(d1,d2)diDi}
    ( d 1 , d 2 ) (d_1,d_2) (d1,d2)[二]元组,其中的每一个值叫做分量
    笛卡尔积的基数是各域的基数之积
  • 关系 relation
    笛卡尔积的子集叫在域D1,…Dn上的关系,表示为 R ( D 1 , D 2 , . . . , D n ) R(D_1,D_2,...,D_n) R(D1,D2,...,Dn)
    R是关系的名字,n是关系的
    若关系中,某一属性组的值能唯一地标识一个元组,而其子集不能,则称候选码,候选码的诸属性称为主属性。候选码可只包含一个属性,也可能包含全部属性,此时称为全码
    从候选码中选出一个来作为主码,主码也可以是多个属性共同构成的。
    外部码,在本关系中不是码,但是其他某一关系的码。
    笛卡尔积没有意义,其子集才有意义。关系必须是有限集合。
    关系可有:基本表(实际)、查询表、视图表(虚表)

关系完整性

  • 实体完整性 entity integrity
    主属性不能取空
  • 参照完整性 referential integrity
    属性F是关系R的属性但不是R的码,K是关系S的主码,F与K定义在同一个域上(相对应),则F是R的外部码,R是参照关系,S是被参照关系(目标关系),R中任一元组在F上的值为:F=S中某个元组的K值 或 空值
  • 用户定义完整性 user-defined integrity
    用户自定义域

关系操作

增删改查
查询包括:选择投影、连接、除、、交、笛卡尔积
标粗的是基本操作,其他操作可以用五种基本操作来定义和导出

语言

  • 关系代数语言 relational algebra 查询 ISBL
  • 关系演算语言 relational calculus 查询 元组演算:ALPHA 域演算:QBE
  • 关系数据库标准语言 SQL(structured query language) 更加强大

只需要给出查询,不需要考虑如何实现查询

关系代数语言

集合运算:

  • 并union:R和S具有相同目n,且相应属性取自同一个域 R ∪ S = { t ∣ t ∈ R ∨ t ∈ S } R\cup S=\{t|t\in R\vee t\in S\} RS={ttRtS}
  • 差except:R和S具有相同目n,且相应属性取自同一个域 R − S = { t ∣ t ∈ R ∧ t ∉ S } R- S=\{t|t\in R\wedge t\notin S\} RS={ttRt/S}
    从R中减去和S相同的
  • 交intersection:R和S具有相同目n,且相应属性取自同一个域 R ∩ S = { t ∣ t ∈ R ∧ t ∈ S } R\cap S=\{t|t\in R\wedge t\in S\} RS={ttRtS}
  • 广义笛卡尔积 cartesian product:连接

引入表示符号:

  • 关系 R ( A 1 , A 2 , . . . , A n ) R(A_1,A_2,...,A_n) R(A1,A2,...,An)
    t ∈ R , t\in R, tR,其中t是元组
    t [ A i ] t[A_i] t[Ai]表示元组t中的分量Ai
    A是属性列/域列
    A ˉ \bar{A} Aˉ表示从关系中去掉A属性后剩余的属性组

  • R是n目关系,S是m目关系, t r ∈ R , t s ∈ S t_r\in R,t_s\in S trR,tsS
    $\stackrel\frown{t_rt_s} $是元组的连接 concatenation,是一个(n+m)列的元组

  • 给定关系R(X,Z),XZ为属性组,定义当t[X]=x时,x在R中的象集images set是 Z x = { t [ Z ] ∣ t ∈ R , t [ X ] = x } Z_x=\{t[Z]|t\in R,t[X]=x\} Zx={t[Z]tR,t[X]=x},它表示R中属性组X上值为x的各元组在Z上分量的集合

关系运算:

  • 选择运算 selection/restriction:选择元组 σ F ( R ) = { t ∣ t ∈ R ∧ F ( t ) = t r u e } \sigma_F(R)=\{t|t\in R\wedge F(t)=true\} σF(R)={ttRF(t)=true}
    F是一个公式,由逻辑运算符 ∨ ∧ ¬ \vee \wedge \neg ¬连接算数表达式 > < ≥ ≤ = ≠ > < \ge \le = \ne ><≥≤==构成
  • 投影运算projection:选择列 π A ( R ) = { t [ A ] ∣ t ∈ R } \pi_A(R)=\{t[A]|t\in R\} πA(R)={t[A]tR},取消重复行
  • 连接运算join: R ⋈ F S R\underset{F}{\Join} S RFS
    • 等值连接:F中算数表达式是=, R ⋈ A = B S R\underset{A=B}{\Join} S RA=BS
    • 自然连接(常用且默认):进行比较的分量必须是相同的属性,并且在结果中去掉重复的属性 R ⋈ S R\underset{}{\Join} S RS,会有悬浮元组消失
    • 半连接 :自然连接后仅保留对R属性的投影
    • 左外连接:若S中找不到匹配的元组,则不匹配的元素用空值匹配
    • 右外连接:若R中找不到匹配的元组,则不匹配的元素用空值匹配
    • 全外连接:所有不匹配的元组均用空值匹配
  • 除:R(X,Y),S(Y,Z), R ÷ S = { t r [ X ] ∣ t r ∈ R ∧ Y X ⊇ π Y ( S ) } R\div S=\{t_r[X]|t_r\in R\wedge Y_X\supseteq \pi_Y(S)\} R÷S={tr[X]trRYXπY(S)}
    X的象集Yx包含S在Y上的投影

运算之间的转换:
R ∩ S = R − ( R − S ) 或 S − ( S − R ) R\cap S=R-(R-S)或S-(S-R) RS=R(RS)S(SR)
R ÷ S = π X ( R ) − π X ( ( T ∗ π Y ( S ) − R ) R\div S=\pi_X(R)-\pi_X((T*\pi_Y(S)-R) R÷S=πX(R)πX((TπY(S)R)
此处应看ppt

http://www.lryc.cn/news/218974.html

相关文章:

  • 【学习笔记】CF1895G Two Characters, Two Colors
  • GZ035 5G组网与运维赛题第10套
  • 基于SSM的教学管理系统(有报告)。Javaee项目。
  • 软件测试工作流程
  • 高级文本编辑软件 UltraEdit mac中文版介绍说明
  • python模块的介绍和导入
  • 基于单片机的智能饮水机系统
  • CSS画圆以及CSS实现动态圆
  • K8S知识点(一)
  • 人工智能师求职面试笔试题及答案汇总
  • 【Windows-软件-FFmpeg】(01)通过CMD运行FFmpeg进行操作,快速上手
  • Spring Data Redis + RabbitMQ - 基于 string 实现缓存、计数功能(同步数据)
  • Facebook Developer 的 HashCode
  • 下载使用 ant design Pro 中遇到的一些问题
  • 「Java开发指南」如何用MyEclipse搭建Spring MVC应用程序?(一)
  • [动态规划] (七) 路径问题:LCR 166.剑指offer 47. 珠宝的最高价值
  • Mysql进阶-SQL优化篇
  • VueI18n中英文切换 vue2.0
  • VUE组件间通信的七种方式
  • 问chatgpt最近生活的困难
  • Flink源码解析八之任务调度和负载均衡
  • 4.3 传送门
  • NLP之Bert介绍和简单示例
  • 【Windows】Google和火狐浏览器禁用更新的操作方式
  • 关于编程不得不说的事
  • 2.4G合封芯片 XL2422,集成M0核MCU,高性能 低功耗
  • 【QT基础入门 控件篇】QLineEdit 基础、高级和样式表使用详解
  • 网络安全(网络安全)小白自学
  • dupeGuru 清理微信重复文件
  • 华为RS设备状态及接口配置命令