层次模型

tree

  • Record and field
  • Parent-Child relationship(PCR)

每个记录类型只有一个父节点

无法表达多对多信息

采用虚记录解决多对多

网状数据模型

系:主记录->属记录
主记录和属记录都可以有好多个

关系模型

表:table/relation

  • 拥有更高的抽象级别,可以用数学里面集合论的知识研究

  • 屏蔽底层编程细节,易于理解

  • 可以引入代数系统

  • 非过程化查询语言

  • 软链接,逻辑指针

  • 属性和域

  1. 原子数据:要求表的每个属性是原子的,不能再分。不允许出现表中套表。(一范式)
  2. 允许空值
  • 关系(表)和元组
    属性的个数称作目
    属性,列,字段
    元组,行,记录

主键:一组属性

  • unique
  • not null
  • 可以决定其他元组的其他属性
  • 属性组的子集不满足上述条件。如果不满足这个条件就称作超键。
  • 如果多个属性组满足上述条件,我们可以指定一个为主键,其他的为候补键
  • 如果这个属性组就是元组本身,称这个属性组为全键

外键:一组属性

  • 来自其他关系,并且是其他关系的主键。逻辑指针
  • 且必须在另一个表里面存在这个主键

域完整性约束:每个元组的每个属性的值都必须满足值域
实体完整性约束:主键不允许为空
引用完整性约束:外键的值必须在所引用的表中存在

关系代数

基本操作

  • 选择Selection σ\sigmaσ :选择一些行
  • 投影Projection π\piπ:选择一些列。投影操作应该消除可能出现的重复元素。实际的系统不会自动进行消除重复元素,除非用户要求。
  • 叉乘Cross-product ×\times× : 笛卡尔乘积
  • 集合差Set-difference−-−:集合减法
  • 合并Union∪\cup∪:将两个表合并起来

上述五种操作构成了数据库完备的操作集合。任何其他操作都可以通过这些操作完成。

上面的操作都是封闭的。

后面两种操作要求参与运算的两个集合满足并兼容的条件:

  • 属性个数一样
  • 属性类型一样

连接操作:先做笛卡尔乘积,再做选择。实际上可以进行查询优化,否则效率比较低。

  • 等值连接
  • 自然连接:按照两个表的共同属性进行等值连接

除法操作:A/B

A/B=πx(A)−πx(πx(A)×B−A)A/B = \pi_x(A)-\pi_x(\pi_x(A)\times B-A) A/B=πx​(A)−πx​(πx​(A)×B−A)

首先先将A中特有的属性x和B中的属性y分离开,然后再叉乘,得到的是一个比A大的集合,减去A后剩下的就是那些原本没有B属性的元组,将这些x提取出来再减去他们就是正确的x.

外连接:找不到匹配仍然保留元素,用空值填补

  • 左外连接:保留左边表的所有元素
  • 右外连接:保留右边表的所有元素
  • 全外连接:保留两张表中的所有元素

外并:将不满足并兼容的表并在一起,新表的属性是原来两张表的属性的并,元组加在一起,缺少的元素补空值。

关系演算

基于谓词逻辑的非过程化的表达

  • 元组关系演算TRC
  • 域关系演算DRC

等价的,区别在于变量的定义不同。域关系演算的变量是属性。

域关系演算

  • 原子公式

    • <x1,x2,…,xn>属于表
    • X op Y
    • X op constant
  • 公式
    • 原子公式
    • 逻辑运算
    • 使用量词

对某个变量使用量词就称这个量词被绑定

不安全的查询:如果查询结果是无限的,就说这个查询是不安全的。

安全的关系演算和关系代数是等价的。

SQL语言建立在关系演算之上。

元组关系演算

变量定义在元组上

ER数据模型

传统的数据模型擅长表达以记录为基础的结构化的数据,支持日常事务型的应用。

不能根据用户的需求或者应用的需求

不能用一种很自然的方法表达实体之间的关系

语义信息不够明确

支持的数据类型太少,有时候不能满足应用的需求

实体Entity:现实世界中可区别的对象,使用一组属性来描述
实体集Entity Set:实体的集合
允许复合类型,多值属性

联系Relationship:实体之间的联系

E-R图:对E-R模型的图形化的展示。

方框:实体
圆圈:属性
菱形:联系

基数比例约束:

  • 一对一
  • 一对多
  • 多对多

参与度约束:一个实体参与一个联系的最少和最多次数
全参与
部分参与

扩展ER模型:
弱实体:不能单独存在,必须依赖其他实体存在的实体。例如职工的家属
普遍化和特殊化
聚集:把联系看作实体集和其他实体发生联系
范畴:不同类型的实体组成范畴

面向对象数据模型

突破一范式的限制

数据库原理及应用【二】数据模型相关推荐

  1. 数据库原理(十 二)- 逻辑结构设计

    数据库原理(十 二)- 逻辑结构设计 前言 E-R图向关系模型的转换 数据模型的优化 设计用户子模式 前言 概念结构是独立于任何一种数据模型的信息结构,逻辑结构设计的任务就是概念结构设计阶段设计好的基 ...

  2. ORACLE与数据库原理实验 实验二 实验数据库的建立(答案全)

    实验二 实验数据库的建立 [实验目的] [预备知识] [实验内容] [实验目的] 1. 熟悉和掌握 SQL的 Create Table, Drop Table, Alter Table语句语法: 2. ...

  3. 西电_2022春_数据库原理_实验二

    实验内容及要求 [使用实验一创建的六个表,即学院表College,学生表Student,教师表Teacher,课程表Course,学习表Study,开课表Class ] 求选修了Wang老师所授课程D ...

  4. 数据库原理—数据库基础(二)

    数据库原理-数据库基础(二) 一.数据和信息 (一).信息 信息是客观存在的,是关于现实世界事物的存在方式或运动状态反映的综合 信息与材料和能源一个层次,是人类社会赖以生存和发展的三大资源之一 (二) ...

  5. 数据库原理实验二 数据库管理 实验报告

    广州大学学生实验报告实验二:数据库管理 此篇分享仅供参考学习,图文禁复制,勿作他用!谢谢配合! 数据库原理实验之实验二:数据库管理 软件:Oracle SQL Developer 今天实验才刚开始,花 ...

  6. 数据库原理—数据模型(三)

    数据库原理-数据模型(三)

  7. 《数据库原理与应用》实验二

    题目来源学校课后作业,禁商业用途,仅用于课业学习 <数据库原理与应用>实验二 一.实验目的及要求 1.掌握SQL查询语言的使用. 2.掌握SQL流程控制语句的使用. 3.要求独立完成,并记 ...

  8. 数据库原理-几种数据模型

    目录 数据库应用系统中三种不同的数据模型 数据模型的组成要素:数据结构.数据操作.数据完整性约束条件 数据结构 数据操作 完整性约束条件 数据库中主要的逻辑数据模型 层次模型(格式化模型) 网状模型( ...

  9. 数据库原理及应用(东南大学)笔记——第二章 数据模型

    第二章 数据模型(data model) 2.1 层次数据模型 2.1.1 基本思路: 现实世界中很多事物之间本就存在层次关系,该模型尝试用树状结构描述这种关系. 2.1.2 基本概念: 记录reco ...

  10. 【数据库原理及应用】经典题库附答案(14章全)——第十二章:数据库技术新发展

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

最新文章

  1. pgadmin使用教程
  2. 12.1 LNMP架构介绍;12.2 MySQL安装;12.3-2.4 PHP安装(上下);12.5
  3. android dialog 隐藏状态栏_Android开发不得不收集的工具类集合
  4. mysql 默认当前时间_复制信息记录表|全方位认识 mysql 系统库
  5. c#string倒数第二位插入字符_c#string倒数第二位插入字符_C#利用String类的IndexOf、LastIndexOf、...
  6. oracle 表达式1000,oracle环境下占用编号的方法报语法错误:ORA-01795: 列表中的最大表达式数为 1000...
  7. NO4 findmv--特殊符号..和.
  8. 使用pip安装opencv
  9. Xmodem、Ymodem、Zmodem
  10. java runnable线程锁_多线程 java 同步 、锁 、 synchronized 、 Thread 、 Runnable
  11. docker 删除image_不是吧!Docker上手,看会觉得自己又行了!
  12. 问题六十二:怎么求一元十次方程在区间内的所有不相等的实根(2)——修正“区间端点零值”问题
  13. 高效管理MacOS中文件的技巧
  14. Protel 介绍 protel99se正式汉化版下载 Protel DXP2004简体中文版
  15. 电子签章(Electronic Signature)在C#中的实现方法
  16. 计算机专业实习报告-5000字+,以及计算机专业实习周记-15篇
  17. 2018华为软件精英挑战赛体会
  18. 留学Assignment写作要注意逻辑谬误
  19. avr单片机c语言计算log,AVR单片机定时器初值计算公式与方法 - 单片机定时器初值计算公式(51单片机和AVR单片机的初值计算三种方法)...
  20. Span 介绍及使用(二)

热门文章

  1. 使用maven插件构建docker镜像
  2. 线索二叉树的C语言实现
  3. Struts2之环境配置
  4. EASYUI+MVC4通用权限管理平台
  5. Oracle ——如何确定性能差的 SQL
  6. SQL Server 2000数据库移植到SQL Server 2008R2数据库服务器中碰到的”3145错误”及解决办法...
  7. mysql 帐号开启远程_两大步骤教您开启MySQL 数据库远程登陆帐号
  8. 前端项目难点及解决方法_预埋件施工重点难点的解决方法
  9. ajax eval html,Ajax eval的应用示例
  10. 个人信息管理系统代码_Thymeleaf+SpringBoot+Mybatis实现的易游网旅游信息管理系统...