面试心得之ORM

来源:互联网 发布:淘宝电脑版 编辑:程序博客网 时间:2024/06/06 03:05

前言:

之前一直是电话面试,今天居然让我去北京面试,而且早上8:40签到,这样呐宝宝有生以来终于在今天赶了一趟帝都的早高峰,不得不感叹、咱们的北京——人真多,一个大高峰一个小高峰,能在北京活下来也是需要勇气的(开玩笑,不要介意,其实我是在夸很多人)找地方也是颇费了一些周折,顾忌今天晚上亲爱哒大企鹅会给我一个行走步数的冠军或者亚军吧,从早上到11点40,然后10分钟左右面试结束,这个面试经历……好了进入正题

正文:

ORM:

关系型数据库和实体间做映射,操作对象的属性和方法,跳过SQL语句

对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),用于实现面向对象编程语言里不同类型系统的数据之间的转换。其实是创建了一个可在编程语言里使用的"虚拟对象数据库"。Object是可以继承的,是可以使用接口的,而Relation没有这个概念。

    

面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,

关系数据库则是从数学理论发展而来的,为了解决这个不匹配的现象,对象关系映射技术应运而生。


原则:

简单:最基本的形式建模数据

传达性:语言文档化(数据库结构易理解)

精确性:基于数据模型创建正确标准化了的结构


建模者

收集   不熟悉数据建模(对数据抽象组织,确定数据库范围、数据组织形式,建立数据库实体及其关系)者的信息  开发  信息模型(对象建模、关系描述、数据流动方式)

在概念层次上与数据结构通讯

单元分析信息

样本数据处理

提供了易于理解的模型化数据的方法


描述对象和数据库间的映射的元数据,将程序中对象自动持久化到关系数据库中

将数据从一种形式转换到另一种形式:额外开销

对象(业务实体在内存中)、关系数据(数据库中):两种表现形式——中间件——映射——转换——原则——开销


映射模式:

数据类型

简单数据类型模式:UML、关系型数据库——映射表

枚举:每种枚举对应一个表,Only一列表示枚举值

基于类:外键约束,基础列、基于类的类型实例关联

类,每个类对应一个表,单值属性、多值属性、继承关系

单值属性:cardinality(类似于对应关系,一对一 一对多 多对多……)上界为1的属性,映射到类所对应的表的列上,若下界也是1 列属性 not null

多值:每个映射一个独立表,外键连接到类所对应的表上

继承模式:加入类的实例时,根继承关系自顶向下生成类对象(相同ID、主键)。删除时自底向上删除

关联

一对一:两端各加一列

一对多:同楼上

多对多:关联单独一个表

组合:级联式删除

反演关联(what? don't know):关联两端指向相关的类型

成对:关联记录类间关系,交集类关联、单独一个表,每个关联一个表,外键表关系

引用映射模式:

UML中不存在MOF(元对象机制)特征,


优点:

专用、庞大的数据库访问层可能不再需要、提高效率

像操作对象一样提取数据

缺点:

固定思维模式、牺牲执行效率

很有可能将全部数据提取到内存对象中,持久化所有属性——不希望

小结:

本来想一篇全写完的,奈何IT深似海,总也结不完,那这一篇先写一下ORM吧,之前也写过一些东西,可能用的太少还是没有用心,都似烟云、只有风的痕迹,哪里出了问题?这样不行


感谢分享:

ORM的优缺点

ORM的概念, ORM到底是什么