目前最常用的三种数据模型及其特点是什么

上周 看这段数据模型的东西。

层次模型啊。
树形结构。
一对多关系。
IMS模型是典型。
优点是存取效率高。
结构清晰。
数据修改方便。
但多对多关系不行。
得加冗余节点。

网状模型。
网状结构。
多对多关系。
DBTG模型是代表。
优点是表达复杂关系。
灵活。
适合关联查询。
但结构复杂。
维护成本高。

关系模型。
二维表。
行和列。
表示实体和属性。
没层级结构。
不用指针。
数学理论。
支持所有逻辑运算。
优点是灵活。
容易理解。
增删简单。
支持跨类型搜索。
查询强大。
SQL语言。
现在都用这个。
MySQL、Oracle。

扩展说明啊。
概念模型、逻辑模型、物理模型。
概念模型是面向用户的。
逻辑模型是面向数据库的。
物理模型是面向存储的。

层次和网状被关系取代了。
但关系在复杂关系表达上还有用。
关系是主流。

算了。

常用的数据模型有哪些

上周。
关系模型最常用。
是二维表。
行是记录。
列是属性。
不依赖层级或指针。
操作便捷。
能跨表搜索。
组合数据。
维护简单。
删数据。
就改表内容。
标准化程度高。
理论体系完善。
现代数据库主流。

网状模型。
用指针。
多对多关系。
典型是DBTG模型。
表达能力强。
能描述多向关联。
灵活性高。
数据间连接。
用指针动态定义。

层次模型。
树形结构。
一对多关系。
典型是IMS模型。
存取效率高。
检索路径明确。
结构直观。
层级关系清晰。
扩展性强。
数据修改。
就调整局部节点。
关键属性检索。
通过层级路径。
快速定位数据。

关系模型。
应用最广泛。
概念统一。
操作灵活。
层次和网状。
特定领域。
有应用价值。
算了。

数据库常用的数据模型有哪三种

哎,你问我数据库的三种老模型啊?这事儿我得跟你唠唠,我之前搞信息化项目的时候碰到过不少坑。

层次模型 这玩意儿,最早的时候用得挺多,大概8 0年代那会儿。
它结构就是一棵树,像啥?像公司的组织架构图,或者文件系统里的目录树。
根节点在上面,下面一层一层往下分,比如"总部"下面是"分部","分部"下面是"部门"。
特点就是,每个节点(比如一个部门)只能有一个人管它(比如一个经理),不能有俩老板。
你想加个新员工到没人的空部门底下?对不起,层次模型不支持这种操作,因为它死脑筋地规定每个节点必须有个爹。
这导致后来用起来特别麻烦,数据更新或者查询不方便,所以现在基本不用了,除了某些特老的系统还在维护。

网状模型 比层次模型稍微灵活点,但也复杂多了。
大概9 0年代初还有人在用。
它允许一个部门下面有多个经理,也能有没经理的部门,关系搞成网状了。
好处是能表示多对多的关系,比如一个员工可以参与多个项目,一个项目可以有多个员工。
但你看,结构一复杂,数据库设计、写查询语句就特别费劲,而且当时没有统一的标准接口(比如ANSI/SPARC标准),各家厂商的网状数据库差异很大,开发人员都得学特定公司的语言。
维护成本高,所以也慢慢被淘汰了。

关系模型 才是现在的主流啊!从8 0年代中期开始逐渐成为标准,现在9 9 %的数据库都是关系型的。
它用二维表格表示数据,你想想Excel表格就差不多了。
理论基础是数理逻辑和关系代数,特别硬核。
最大的优点是抽象层次高,跟现实世界的概念(实体、属性、联系)对应得比较好,而且查询语言SQL通用,开发人员容易上手。
而且它解决了前两种模型的数据冗余和更新异常问题,因为要求数据规范化的嘛,表跟表之间通过键关联。
像MySQL、Oracle、SQL Server、Access(对,你例子里说的Access,虽然它功能上更像是桌面型数据库,但底层也是关系模型)这些都是关系数据库。
现在你再去学数据库,几乎都是从这个模型开始的。

所以你看,这三种模型是数据库发展的历史足迹。
层次和网状是早期为了管理数据结构尝试出来的,但各有局限,现在基本被关系模型这个更通用、更强大的方案给取代了。
不过了解它们的历史还是有用的,能帮你理解现在数据库的一些底层设计思路。

数据库中最常用的数据模型是哪种

哎,听你说的这些模型啊,我当年刚上班那会儿,也懵懵懂懂。
那时候公司搞了个新系统,老板非让我们用层次模型。

记得是2 008 年吧,在杭州那边。
当时有个小项目,存点客户信息,产品信息啥的。
老板说,层次模型最简单,上层是客户,下层是客户买的产品,一层一层套上去。
结果呢?客户A买了好几个产品,产品B也属于好几个客户,搞得层数乱七八糟,查询起来特麻烦。
你想查客户买了啥,得一层层顺着树往下找,能找到崩溃。
那会儿真觉得这模型太死板了。

后来呢,大概2 01 2 年,公司接了个大单,跟银行合作搞系统。
银行那边数据关系复杂,客户、账户、交易、卡,一堆东西相互关联。
这时候用网状模型就顺多了。
网状模型一个点可以连着好多点,反正关系多,啥都能套进去。
账户可以属于多个客户,一张卡也能关联好几个交易,搞起来灵活多了。
虽然设计的时候脑子疼,画图画到头秃,但用起来是真方便。
你想查哪个客户的所有交易,直接在网里找,一通连接,哗啦一下全出来了。

再后来,2 01 5 年左右吧,接触了互联网公司,他们那套系统全是关系模型。
啥都是表格,一张用户表,一张订单表,一张商品表,互相之间用ID关联。
用SQL查数据,那叫一个溜。
为啥?简单啊!表就是二维,行就是记录,列就是字段,谁都能看懂。
而且数据独立性强,想改个字段,只要改表结构,不用动其他表。
不像以前那两个模型,稍微改动一下,下面一层一层或者一张张网都跟着变,头都大了。

所以说啊,模型这东西,得看场景。
简单点、关系直接点,用关系模型。
复杂点、关联多,用网状模型。
层次模型现在基本不用了,太老了。
不过话说回来,当年要是能早点明白这些,少走多少弯路啊!