<br />ORM:object relation mapping,即对象关系映射,简单的说就是对象模型和关系模型的一种映射。为什么要有这么一个映射?很简单,因为现在的开发语言基本都是oop的,但 是传统的数据库却是关系型的。为了可以靠贴近面向对象开发,我们想要像操作对象一样操作数据库。<br />举个例子:获取一篇文章,传统的方式先要执行一个sql检索数据<br /> <br />select * from post where id = 1<br /> <br />然后输出标题和内容使用<br /> <br />echo $post['title']; echo $post['content'];<br /> <br />上面的代码遇到面向对象强迫症者,他们会纠结死的。<br />所以他们想出了这个东西,在ORM里获取一篇文章可以这样:<br /> <br />$post = postTable::getInstance()->find(1);#会再内部执行select * from post where id = 1<br /> <br />然后输出:<br /> <br />echo $post->getTitle();echo $post->getContent();<br /> <br />高级点的应用,文章和分类是一对多关系、文章和标签是多对多关系<br /> <br />$cate = $post->getCategory(); //获取文章分类<br />echo $cate->getName(); //获取分类名<br />$tags = $post->getTags(); //获取一个文章的所有标签<br /> <br />是不是一个sql都没写就获取到我们需要的所有数据了?使用ORM可以完全不写sql而实现应用,这些ORM都替我们做了。<br />除此之外,orm还可以隔离底层数据库层,我们不需要关心我们使用的是mysql还是其他的关系型数据库。<br /> <br />我知道的orm: doctrine和propel<br />除了orm之外还有odm,即object document mapping,对象文档映射,使用文档数据库比如mongodb时使用<br /> <br />ORM<br />对象-关系数据库映射。是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。<br />ORM技术特点: <br /> 1.提高了开发效率。由于ORM可以自动对Entity对象与数据库中的Table进行字段与属性的映射,所以我们实际可能已经不需要一个专用的、庞大的数据访问层。 <br /> 2.ORM提供了对数据库的映射,不用sql直接编码,能够像操作对象一样从数据库获取数据<br />ORM的优缺点 <br /> ORM的缺点是会牺牲程序的执行效率和会固定思维模式。 <br /> 从系统结构上来看,采用ORM的系统一般都是多层系统,系统的层次多了,效率就会降低。ORM是一种完全的面向对象的做法,而面向对象的做法也会对性能产生一定的影响。 <br /> 在我们开发系统时,一般都有性能问题。性能问题主要产生在算法不正确和与数据库不正确的使用上。ORM所生成的代码一般不太可能写出很高效的算法,在数据 库应用上更有可能会被误用,主要体现在对持久对象的提取和和数据的加工处理上,如果用上了ORM,程序员很有可能将全部的数据提取到内存对象中,然后再进 行过滤和加工处理,这样就容易产生性能问题。 <br /> 在对对象做持久化时,ORM一般会持久化所有的属性,有时,这是不希望的。 <br /> 但ORM是一种工具,工具确实能解决一些重复,简单的劳动。这是不可否认的。但我们不能指望工具能一劳永逸的解决所有问题,有些问题还是需要特殊处理的,但需要特殊处理的部分对绝大多数的系统,应该是很少的。<br /> <br />CURD<br />是一个数据库技术中的缩写词,它代表创建(Create)、更新(Update)、读取(Read)和删除(Delete)操作。<br /> <br />关系型数据库<br />关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。表与表之间的数据记录有关系。用户用查询 (Query)来检索数据库中的数据。一个Query是一个用于指定数据库中行和列的SELECT语句。关系型数据库通常包含下列组件: 客户端应用程序(Client) 数据库服务器(Server) SQL语句(Structured Query Language)是Client端和Server端的桥梁,Client用SQL来向Server端发送请求,Server返回Client端要 求的结果。现在流行的大型关系型数据库有IBM DB2、Oracle、SQL Server、SyBase、Informix、access、foxpro等。<br /> <br />RBAC<br />基于角色的访问控制,说白了就是User用户, Role角色, Permission许可 三个对象。<br /> <br />DAO<br />数据访问对象DataAccessObjects<br />DAO(DataAccessObjects)是由VB提供的应用程序接口(API),它可以使程序员访问MicrosoftAccess数据库。DAO对象包括Access的数据引擎功能。通过数据引擎功能,它可以访问结构化查询语言(SQL)数据库。