复习三——关系数据模型

数据模型

描述现实世界实体,实体间联系以及数据语义和一致性约束的模型。这个定义看起来没什么实际用途,但是理解了对使用power designer设计数据库有好处。嘛。。。反正我没理解透。

按照模型应用的不同目的,可以分为

  • 概念数据模型(概念模型):按用户的观点对数据进行建模,强调语义表达功能。主要用于数据库的概念设计。
  • 结构数据模型(数据模型):按计算机系统的观点对数据进行建模,直接面向数据库的逻辑结构。

现实世界——>信息世界 概念模型(如E-R模型,即实体-联系模型)——>机器世界 数据模型

数据模型的三要素

  • 数据结构:实体之间的联系
  • 数据操作:检索和更新的实现
  • 数据的完整性约束:数据之间的联系具有的制约和依赖关系

关系模型

形式化定义

R(U,D,dom,F)

R为关系模式名,U是属性集,D是U中属性的值所来自的值域,Dom是属性向域的映射集合,F是属性间的依赖关系。可以简写为

R(U)

重要概念

超码(Super Key)

唯一标识一个元组的属性集

候选码(Candidate Key)

不含多余属性的超码。包含在任何一个候选码的属性成为主属性(Primary Attribute),否则称为非主属性

主码(Primary Key)

用户选作元组标识的一个候选码称为主码,其余的候选码称为替换码(Alternate Key)。

外码(Foreign Key)

关系模式R的外码是它的一个属性集FK,满足:

  • 存在带有候选码CK的关系模式S
  • R的任一非空FK值在S的CK中有一个相同的值

S称为被参照关系,R称为参照关系。

总之就是说,我的属性里用到你的已经有的属性,并且那个属性被你用来当作候选码。比如银行系统里面,如果bank表有属性name,staff表里面有属性bank_name,并且bank_name的实例来自name已经有的实例,就说bank_name是外键,引用bank的name属性。

被引用了的表不能够直接删除(参照完整性)。比如bank里面有中国银行,staff里面有小明,来自中国银行。如果直接把bank删除,那么小明来自的中国银行就无从查找来自何处。有些数据库系统提供删除的级联操作,就是说,删除bank表的同时,把其他表中所有引用了它的实例都删除掉,mysql提供这种操作,不过需要解除外键检查。

SET FOREING_KEY_CHECKS=0

oracle就不支持级联删除。官方给出的解释是:这是没有意义的操作。想要删除的话,需要先删掉相应的外键约束,删除之后再加上外键约束。

三类完整性规则

  • 实体完整性(Entity Integrity):主码的所有属性不可为空
  • 参照完整性(Referential Integrity):参照关系R的任意一个外码值必须来自于参照关系S中所参照的候选码的某个值,或者为空。
  • 用户自定义完整性(User-Defined Integrity):针对某一数据的约束条件,比如成绩取值0到100,或者性别不能为空啥的。

关系代数

返回两个关系中所有元组

返回两个关系共同的元组

返回属于第一个关系但不属于第二个关系的元组

笛卡尔积

返回两个关系的元组的任意组合所得到的元组集合

选择

返回指定关系中满足给定条件的元组

投影

返回指定关系中去掉若干属性后所得的元组

联接

从两个关系的笛卡尔积中选区属性间满足给定条件的元组

  • 自然联接:相当于在R×S中选取R和S的所有公共属性值都相等的元组,并在结果中去掉重复属性
  • θ联接:相当于在R×S中选取R的属性A值与S的属性B值满足比较关系θ的元组。
  • 等值联接:θ关系为相等的时候,即为等值联接。比较的属性是两个公共属性时,为自然联接。

除的结果与第二个关系的笛卡尔积包含在第一个关系中

(气死我了,这个编辑器竟然不支持latex数学公式的编辑,好多符号打不出来)

附加的关系代数操作

扩展投影(广义投影)

投影列表可以是R的一个或多个属性,或者是重命名得出的属性,或者通过原关系模式多个属性运算得出的新属性。

聚集函数(aggregate)

  • SUM(求和)
  • COUNT(计数)
  • AVG(求均值)
  • MAX(求最大值)
  • MIN(求最小值)

分组(Group)

排序(sort)

赋值

数据更新

(感觉如果不是需要使用这些理论上的关系代数运算,可以直接看mysql或者oracle等的相关对应操作的解释或教程。菜鸟教程

原文地址:https://www.cnblogs.com/terieqin/p/9210983.html

时间: 2024-10-13 17:35:09

复习三——关系数据模型的相关文章

.NET - EntityFramework 实体关系数据模型

EntityFramework 实体关系数据模型(DO.NET Entity Framework) ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案.该框架曾经为.NET Framework的一部分,但version 6之后从.NET Framework分离出来. 在项目中使用Entity Framework 要得到最高版本的Entity Framework 程序包,可以通过扩展与更新或者右击项目-引

关系数据模型

一.数据结构 关系数据模型是有若干个关系模式组成的集合.关系模式的实例成为关系.每个关系可看为一个二维表,表的行称为元组,用来标识实体集中的一个实体:表的列称为属性,列名即为属性名,属性名不能相同. 关系的描述称为关系模式(Relation Schema)它可以形式化地表示为: R(U,D,dom,F) 其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合. 通常简记为: R(U)或R(A1,A2,…,An) 其中R为

逻辑数据模型之层次数据模型、网状数据模型和关系数据模型

上一篇文章简单介绍了概念数据模型.逻辑数据模型.物理数据模型的基本概念.特性以及三者所对应的数据库的开发阶段.现在针对逻辑数据模型中所用到的三种数据模型---层次数据模型.网状数据模型以及关系数据模型做一个相信的介绍与对比分析. 一.层次数据模型 定义:层次数据模型是用树状<层次>结构来表示实体类型和实体间联系的数据模型.(来自百度百科) 其实层次数据模型就是的图形表示就是一个倒立生长的树,由基本数据结构中的树(或者二叉树)的定义可知,每棵树都有且仅有一个根节点,其余的节点都是非根节点.每个节

数据库复习11——关系模式与范式

数据库复习 CH11 关系模式与范式 11.1 关系模式的设计 数据库模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,关系型数据库的模式又叫关系模式,我所理解的关系模式就是数据库中表结构的定义以及多张表之间的逻辑联系 关系模式的设计就是根据一个具体的应用,把现实世界中的关系用表的形式来表示的逻辑设计过程,不规范的关系模式设计会带来以下的问题: 数据冗余 更新异常 插入异常 删除异常 举ppt中例子说明四种问题,如下表中描述了老师信息(一个老师一个地址,可以教多门课,一门课只有一名老

数据库原理及应用-数据模型之关系数据模型

2018-02-04 23:03:28 一.关系数据模型 关系型数据模型的基本的数据结构只有一种:表(relation).在关系数据模型中将现实世界中的实体以及实体的联系都用表来表达,而层次数据模型中是用记录来表示实体,PCR表示关系,网状数据类型中是用记录来表示实体,系来表示关系,关系型数据模型将两者统一采用表来表达,这是一个很大的区别. 关系模型的特性: 基于集合论的知识,有更高的抽象级别 屏蔽掉底层的实现算法,容易理解 引入关系代数系统 引入结构化的查询语言 Soft link,软连接,通

概念模型、数据模型、关系数据模型

概念模型和数据模型 数据模型的定义 关系数据模型

Hibernate复习(三)配置文件详解

1.hibernate.cfg.xml 2.映射文件Person.hbm.xml Java的实体类是通过配置文件与数据表中的字段相关联.Hibernate在运行时解析配置文件,根据其中的字段名生成相应的SQL语句 a.id属性 <generator>子元素用来设定标识符生成器.Hibernate提供了多种内置的实现. b.property属性 ? name属性:指定持久化类的属性的名字. ? type属性:指定Hibernate或Java映射类型.Hibernate映射类型是Java类型与SQ

C#复习三(Day 22)

哈哈,又到了总结的时间了.今天还是在继续复习C#的基础语法.这次总结主要以一下小程序为主. Split()的运用 123-456---789-----123-2把类似的字符串中重复符号去掉,得到123-456-789-123-2. split() 结果: 集合——ArrayList的运用 static void Main(string[] args) { string[] strArray = { "伯牙绝弦", "心中的日月", "我们的歌"

数据库复习9——关系代数和关系演算

数据库复习 CH8 关系代数 8.1 关系代数 关系代数是SQL之外还有一种描写叙述数据库操作的形式化语言,关系变量(表)是关系代数中的基本表达式 关系代数三个重要的形式化定义例如以下: σF(E):E一个表达式(基本表达式或表达式中间结果).F是关于E中属性的断言,相当于where从句中限制条件(Restrict操作) ΠA(E):E一个表达式,A是E属性的子集,相当于select从句(Projection操作) ρX(E):E一个表达式,X是E表达式结果的重命名 8.2 关系代数操作符 (1