1.粒度问题 java
关系型数据库对UDT(自定义对象) 支持度不高,而且产品间几乎不兼容。sql
2.子类型问题数据库
SQL数据库目前还缺少一种表示多态关联的明显方式,一个外键约束会准确的引用一张目标表;但定义一个引用多张表的外键并不简单,你必须编写一个程序性约束强制实现这类完整性规则。网络
3.标识问题spa
数据库中若是找不到一个好的天然主键,则使用代理键(目前本身的项目所有使用代理键),代理键对程序一般没有任何意义,通常也不会呈现给用户,其存在的惟一目的就是识别应用程序内部的数据。代理
3.与关联相关的问题对象
在java中 想要关联对象 ,比较容易,不管单项双向关联,只需相互定义关联,在关系数据库中,有了外键甚至中间表就能够查询出来。内存
4.数据导航的问题get
JAVA中 user.get.... .get.... 就能够了, 可是sql 须要先肯定要访问对象网络的那一部分,不然一不当心就会检索数据太多浪费内存。这就是使人担忧的N+1查询方式。产品