O/R映射

O/R映射,即对象-关系映射,指从UML类模型映射到RDB模式的设计,这一映射必须要考虑到关系模型的限制,难点在于要将类图的描述性语义转换为逻辑模式设计中的过程性解决方案(类的某些内部描述性语义无法用关系模式表示,这些语义只能通过存储过程从过程上解决)。

映射实体类

实体类到关系表的映射必须满足1NF,即列必须是原子的。
由于UML有同样的限制,所以关系模型中的这个限制不是问题。
UML的类属性是基于原子数据类型和一些固有的结构化数据类型,原子数据类型取决于目标程序设计语言,类似的结构化数据类型则得到了RDBMS的支持。

映射关联

关联到RDB的映射涉及表间的参照完整性约束,任何一对一或一对多的关联可以通过直接在表中插入一个外键以匹配另一个表的主键来实现。
对于一对一关联,外键可以加给任何一个表(根据关联使用的模式来决定),也可以将两个实体类组合为一个表(取决于所期望的范式化级别)。
对于递归一对一关联和一对多关联,外键和主键都放在同一个表中。
无论是否递归,每个多对多关联都需要一个交叉表。

映射聚合

除了以过程方式来实现的触发器或存储过程外,RDB中不区分关联和聚合。
映射关联的主要原理也适用于映射聚合,只有当一个关联可以转换成多个组合关系时,才需要特殊处理聚合的语义。
在组合(强聚合)的情况下,应该尝试将子集和超集实体类组合成一个表,在一对一聚合中这是可能的。
对于一对多聚合,在强聚合或弱聚合中,必须

【数据库系统】O/R映射相关推荐

  1. 4.Hibernate O/R 映射

    O/R 映射 目前为止我们已经通过应用 Hibernate 见识过十分基础的 O/R 映射了,但是还有三个更加重要的有关映射的话题需要我们更详细的探讨.这三个话题是集合的映射,实体类之间的关联映射以及 ...

  2. 微软获得O/R映射技术专利 业界担忧阻碍技术进展

    一组微软员工申报了O/R映射技术的专利. 该专利将对业界现有的O/R映射产品造成怎样的影响目前尚不清楚,但有业界专家担忧微软将借此专利打压竞争对手. 这份专利档案是被网友无意间在专利信息查询网站Fre ...

  3. 怎么把arraylist集合的值放在实体类的属性了_原创 | 使用JPA实现DDD持久化-O/R映射元数据:类级映射-实体和值对象...

    类级映射:实体和值对象 可以被持久化的类包括实体和值对象两大类. 一.实体映射 通过给一个类添加@Entity逻辑注解,告知JPA这是一个可以持久化的实体类. 请注意@Entity逻辑注解不可以继承. ...

  4. R 数据的导入和导出

    2019独角兽企业重金招聘Python工程师标准>>> R 数据的导入和导出 这是从R中导入或导出数据的一个指导手册. 本文档的当前版本为0.01 β.该文档译自 R-2.6.1 文 ...

  5. PowerDesigner中的对象与关系映射建模

    概述     从80年代中期开始,随着C++语言的成功,面向对象语言已经成为软件开发中的主导语言.现在很多商用软件,尤其是企业信息系统,都是使用面向对象语言进行开发的.应用面向对象方法,我们通过类来抽 ...

  6. jpa 实体映射视图_JPA教程:映射实体–第1部分

    jpa 实体映射视图 在本文中,我将讨论JPA中的实体映射过程. 至于我的示例,我将使用与 我以前的一篇文章中使用的模式相同的模式 . 在前两篇文章中,我解释了如何在Java SE环境中设置JPA. ...

  7. JPA教程:映射实体–第1部分

    在本文中,我将讨论JPA中的实体映射过程. 至于我的示例,我将使用与 我以前的一篇文章中使用的模式相同的模式 . 在前两篇文章中,我解释了如何在Java SE环境中设置JPA. 我不打算为Web应用程 ...

  8. R语言利用igraph和networkD3包快速入门做出炫酷的社交网络图等几类图。

    原来CDSN编辑器老出问题,图片各种显示不好(老文章依然是原来编辑器),又将本文整理了一遍地址. 1.igraph包绘制社交关系图(也有叫知识图谱的) 绘图的快速入门技巧是三步:1.看数据源和数据类型 ...

  9. 深度之眼Paper带读笔记GNN.05.TransE/H/R/D

    文章目录 前言 论文结构 导读 研究背景 Trans系列算法概述 数据集简介 研究成果 研究意义 摘要 论文结构 论文精读 知识树 算法模型总览 算法系列图谱 Notation 细节一:TransE模 ...

最新文章

  1. “不亦乐乎”是“乐”还是“悦”?
  2. Scala中集合类型与java中集合类型转换
  3. 安全预警:勒索软件正成为制马人的新方向
  4. Google产品主管Ken Norton的6条心得:如何招聘一位优秀的产品经理?
  5. Hello,Expression Blend 4 (含Demo教程和源码)
  6. yml文件配置mysql表大小写_springboot常用配置(yml文件)
  7. Python学习笔记之Windows下通过pip安装Django详细介绍
  8. 像QQ一样输入表情图像
  9. (三)Netty之Channel通道
  10. PyTorch 中自定义数据集的读取方法
  11. B树与B+树 有动画
  12. 诡异的dp(凸多边形分割):catalan数
  13. 元宇宙NFT商城系统|艺术数字藏品平台源码部署
  14. intel固态硬盘损坏修复
  15. RestAsured测试框架
  16. Python sys模块常见函数
  17. 1754. 骑士精神
  18. 计算机网络数据爆分片MTU,踢走绊脚石,MTU解析与常见问题汇总-上篇
  19. channel java_Java Channel
  20. vue将文件图片批量打包下载zip

热门文章

  1. UI控件之UISlider
  2. linux的NetworkManager服务(转)
  3. 一看就会之—利用IIS服务发布网站(实践篇)上
  4. Firefox下强制页面缓存失效的设置方法
  5. .NET 指南:捕获并且抛出标准的异常类型
  6. go 怎么等待所有的协程完成_理解真实世界中 Go 的并发 BUG
  7. linux下toe网卡驱动,toe命令是干什么的,有没有大神解答一下
  8. java 配置jmstemplate_Spring JMSTemplate 与 JMS 原生API比较
  9. java中子线程与主线程通信_Android笔记(三十二) Android中线程之间的通信(四)主线程给子线程发送消息...
  10. 未定义函数或变量_变量提升:JavaScript是顺序执行,为什么变量在定义之前执行不会报错而是报Underfined...