美文网首页
关系模型

关系模型

作者: 我好菜啊_ | 来源:发表于2018-03-16 13:15 被阅读0次
  • 数据模型三要素
    数据结构(静态特性):描述数据库的组成对象及对象间的联系
    常用来命名数据模型:层状模型,网状模型,关系模型
    数据操作(动态特性)
    数据上的约束:一组完整性规则的集合

两种非常重要的数据模型
1.关系数据模型
2.半结构化数据模型(XML)


高效性 易用性


关系模型的组成
(1) 关系数据结构:
关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
(2) 关系操作集合:常用的关系操作包括查询、插入、删除、修改等
(3) 关系完整性约束:
<1> 实体完整性约束: 若属性A是基本关系R的主属性,则属性A不能取空值。(注意:说的是主属性,不仅仅指键属性)
<2> 参照完整性约束: 若属性(组)F是基本关系R的外码,它与基本关系S(或者R本身)的主码Ks相对应,则对于R中每个元组在F上的值必须为:空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。
<3> 用户定义的完整性:针对某一具体应用所涉及的数据必须满足的语义要求,对关系数据库中的数据定义的约束条件。


  • 关系:命名的二维表 用来描述事物及事物间的联系
  • 属性
  • 关系模式:关系名和其属性集合的组合(无序集合)
    关系名(属性1,属性2...)
  • (关系)数据库模式:数据库的关系模式的集合
  • 域:属性的数据类型,取值范围
    关系名(属性1:string,属性2:integer...)
    域必须是原子的(域中的元素是不可再分的单元)
  • 元组:除首行外其他的每一行
    (分量1,分量2,……)
  • 分量:元组的属性(元组的每个分量有特定顺序)
  • 键:属性(组),可唯一确定一个元组,若删去其中一个就不能(否则叫超键)
    A,B为键的话就代表没有哪两个元组A,B上的分量均相同(仅仅A或仅仅B
    相同是可以的
  • 候选码:具有键的性质的属性(组)
  • 主属性:包含在候选码中
  • 非主属性
  • 主码(主键):在关系模式中用下划线表示
  • 全码:若一个关系的所有属性一起才能构成该关系的码
  • 外键:a(被参照)表的主键作为b(参照)表的外键

  • 关系实例:一个给定关系中元组的集合
  • 当前实例:当前元组集合
  • 模式:关系名和属性集合,不太变(数据库的逻辑设计)
  • 实例:元组集合,经常变(给定时刻数据库中数据的一个快照)

在SQL中定义关系模式
1.数据定义:用于定义数据库模式的子语言
2.数据操纵:用于查询和更新数据库的子语言


SQL区分三类关系
1.表:存储的关系,存储在数据库中
2.视图:通过计算来定义的关系,不在数据库中存储,只在需要的时候被完整或部
分地构造
3。临时表:执行数据查询和更新时由SQL处理程序临时构造,处理结束后被删除
不会存储在数据库里


数据类型
char(n):最大为n个字符的固定长度字符串(未满的空间会被自动填充)
varchar(n):最大n个字符的可变长度字符串(结束符标记,未满空间不会被填充)
bit(n)
bit varying(n)
boolean:true,false,unknown
int/integer
shortint
float/real
double precision:精度更高
decimal(n,d)
numeric
date:DATE'1983-06-17'
time:TIME'15:00:02.5'


  • 模式图

关系查询语言

  • 过程化语言:用户指导系统对数据库执行一系列操作以计算出结果
  • 非过程化语言:用户只需描述所需信息
    实际使用的查询语言两种成分都有

关系代数

一种抽象的查询语言
关系模型数据操纵语言的一种传统的表达方式 ,使用户可以对数据进行查询和修改。

原子操作数:代表关系的变量和代表有限关系的常量
操作:并,交,差;选择(消除某些行),投影(消除某些列);组合两个关系元组:笛卡儿积(所有可能的连接),连接(有选择的连接);重命名
关系代数的表达式称为查询


并,交,差
前提:R和S的模式具有相同的属性集,且顺序相同(属性名不同,可以改名。)


投影:π{小小的下标:title,year,length}(Movies)
会对结果产生的关系进行去重


选择:
σ{小小的下标作为元组选择的条件:length>100 and studioName='fox'}(Movies)


运算施加在单个关系或一对关系上,运算结果也总是单个关系


  • 笛卡尔积运算:RXS其结果包含来自两个关系元组的所有对,无论属性值是
    否匹配(有序对的集合)
    若R和S中都有属性m,则要重命名R.m,S.m
  • 自然连接:natural join R⋈S两个关系上的自然连接运算所匹配的元组在两个关系
    共有的所有属性上取值相同,生成连接元组,共同的属性只用写一列
    悬浮元组:不能和另外关系中的任何一个元组匹配

注:
自然连接由笛卡尔积、选择、投影三个步骤实现的:
笛卡尔积:拼接元组
选择:选出公共属性上相同的行
投影:去掉一组公共属性

自然连接符合结合律:
(R1⋈R2)⋈ R3 等价于 R1⋈(R2⋈ R3)
可简记为 R1⋈R2⋈ R3

  • θ连接:R⋈{小小的下标表示条件:C}S
    先得到RXS 然后在得到的关系中寻找满足条件C的元组
    若R和S中都有属性m,则要重命名R.m,S.m
    笛卡尔积、选择——》θ连接

关系表达式树


重命名:ρ{小小的下标:S(A1,A2,A3……)}(R)
把关系R的名字改成S,并且属性的名字改成A1,A2……


并,差,选择,投影,积运算,重命名无法用其它操作来实现


一般参与运算(尤其连接运算)的数据越少速度越快(所以优化应该是可以先选择,投影再连接。)


代数表达式的线性符号


用关系代数表示约束
1.引用完整性:在一个关系属性A列中出现的值也必须在同一个或不同关系相应列
B中 π{下标A}(R)⊆π{下标B}(S)(下标中可以有多个属性)
2.键约束:键上值相同,其它属性不同的两个元组是不存在的
σ{下标:MS1.name=MS2.name and MS1.addr≠MS2.addr}(MS1XMS2)=Φ
(MS1,MS2都是movieStar重命名之后的关系)

相关文章

  • 海量数据--在线大数据处理的理论与实践--淘宝沈询_Whispe

    从需求出发来看关系模型与非关系模型--关系模型与非关系模型概述 1.层次模型2.关系模型3.ORMapping的作...

  • 数据库原理

    关系模型 关系模型 实体关系模型 对象关系模型 半结构化数据模型 XML(扩展标记语言) 数据语言 DML 数据操...

  • 数据库设计(四)关系模型和关系数据库

    关键词 关系模型,关系数据库,关系操作,完整性约束 关系模型 关系模型是目前最为重要的数据模型,关系数据库采用关系...

  • Linux之MariaDB基础详解

    Lamp之MariaDB 数据库结构模型分类 1、层次模型 2、网状模型 3、关系模型 关系模型的组成部分 二维关...

  • 数据库-关系数据库

    关系是一种二维平面表,关系模型由关系数据结构、关系完整性约束和关系操作集合三部分组成。 1.关系数据模型:关系模型...

  • 关系模型

    数据模型三要素数据结构(静态特性):描述数据库的组成对象及对象间的联系常用来命名数据模型:层状模型,网状模型,关系...

  • 关系模型

    (一)视角,换个角度,冰山一角,对和错之间的纠结,思路打不开 生活中习以为常的事情全新定义,换个角度看问题,经常审...

  • 模型关系

    模型关系主要分为一对一,一对多和多对多。在flask官网中只给出了一对多和多对多的解释应用,所以一对一的实现依赖于...

  • 关系模型

    基本概念 在关系型数据库中,关系模型中的概念与数据库层面上的概念的对应关系如下: 关系(relation)指关系型...

  • 关系模型

网友评论

      本文标题:关系模型

      本文链接:https://www.haomeiwen.com/subject/gfvlqftx.html