数据库的4个特点

数据库的四个主要特征是: 1 .总体数据结构。
锚定:消除冗余数据,例如用户信息只需要存储一次。
2 .数据共享程度高。
对接:接入多个用户、多个应用,如财务系统、人力资源系统共享员工数据。
3 . 数据自由度高。
对接:硬盘迁移等物理自由,添加字段等逻辑自由,不影响应用。
4 .高水平的数据控制能力。
锚定:授权管理、完整性约束、锁定机制、日志备份。

警告:实际应用中,应优先解决数据一致性问题。

聊一聊:数据库都有哪些类型?

说实话,刚入行的时候,选择数据库让我非常头疼。
当我正在做一个项目时。
团队中有人要求我将关系数据库 MySQL 更改为 MongoDB,只是为了“保持正轨”。
结果,业务上线后;支付模块的数据一致性问题差点让我们跳楼。
所以这并不取决于技术有多酷;而是取决于技术有多酷。
但对于商业来说有必要吗?
关系数据库(SQL)给我印象最深的是在银行的项目中使用Oracle。
系统在焊接时运行稳定,但无论何时升级。
它必须排队等候昂贵的制造商工程师。
但其坚固的一致性确实令人印象深刻。
即使系统晃动半秒,交易数据也会保持稳定。
正如您所说,银行转账必须通过或失败。
如果你切换到NoSQL;必须添加大量逻辑来确保这一点。

有趣的是 NoSQL 的兴起。
去年我接手了一个电商项目,后端团队直接使用MongoDB来存储产品数据。
首先,查询的虽然我很关心效率。
我发现它使用了 JavaScript 风格的查询语言。
调整索引后,检索嵌套结构信息的速度是 SQL 的两倍。
但后来他们遇到的问题是,按品类计算销售额时必须使用MapReduce脚本,开发效率再次下降。
这正好证实了你所说的,NoSQL在复杂查询方面存在缺陷。

TiDB等NewSQL;我已经运行了测试环境。
严格来说,它的目的是为SQL添加一个分布式内核。
我在金融系统上试用时,Transaction支持比较稳定,但是配置参数比普通MySQL复杂很多。
团队里有人说,“这个东西学起来就像是啃硬骨头,很难说值不值得。

我联系了 AWS Aurora 来获取云原生数据库。
客户端可以使用其全球分布的版本,将数据同步延迟控制在几毫秒以内。
如果将其融入到传统建筑中。
要达到此级别,您必须添加 CDN。
但是,他们把数据库直接放在云端之后;运营和维护成本我发现从几个人下降到了零,这很有趣。

说到选型,我有一个万无一失、效果特别好的方法:先列出一个需求清单,比如“必须支持跨表连接”、“明年数据量可能会增长1 0倍”。
然后使用这个列表来比较表格数据库和文档数据库的优缺点。
在系统友看来,MySQL+Redis的组合确实是经典。
用户关系链使用SQL来保证一致性,消息流使用NoSQL来削减开销。
这种组合比使用单个数据库可靠得多。

我在处理数据规模时遇到问题。
有一家物流公司,最初使用单机MySQL来存储订单。
一年半后,当数据量增加时;页面搜索查询直接延迟到一分钟。
后来它被转换成一个隔离的集群。
架构升级耗时三个月,系统响应时间瞬间就是二流。
因此,你不能只是摸着头脑,通过预测数据量来决定。
指数增长的痛苦你必须明白。

最后说一句我的心里话。
在选择数据库时我最担心的是团队里有一个每天喊着“XXX就是未来”的技术专家,但最终业务根本不需要它。
选择技术就像买车——有些人坚持买一辆跑车是为了赛道,但买杂货时你却必须每天把车开动。
哪一个最好?不要仅仅为了新技术而使用新技术。

什么是数据库的逻辑结构设计

2 02 3 年,我的朋友正在做一个数据库项目。
他告诉我,设计数据库的逻辑结构其实是一个技术活。
首先,您需要将概念模型转换为通用数据模型,就像使用 ER 图绘制现实世界的事物一样。
因此,需要根据不同的数据库管理系统来适配数据模型,例如MySQL和MongoDB,它们支持不同的模型。
接下来,需要优化数据模型,以提高性能和可维护性,例如规范化、非规范化、索引优化等。
他表示,整个过程复杂且关键,需要深入了解概念模型、DBMS能力和优化策略。
不过,他也表示,这个问题相当令人不安,有时他必须挣脱出来,想其他办法。
算了,你懂的。