我刚刚完成了一个数据库课程,深入到数据库的内部。我试图将我们在课程中学到的所有术语连接起来,但我感觉我缺少一些片段。这里是我所知道的:数据库术语之间的区别
- 数据库:数据结构的“逻辑”表示 - 可互换地用来指物理数据,关系案例中的“表格”数据和DBMS。
- 数据库管理系统(DBMS):为管理员/用户提供开发加速访问等机制的工具。系统理解数据的统计信息,并可执行查询优化以开发良好的执行路径。例如:PostgreSql,MySQL,MongoDB。我想很多人会混淆DBMS和数据库是一回事吗?
- 数据存储在磁盘上。这些数据不是由文件系统管理的,但是DBMS执行与I/O有关的系统调用吗?
- 像map/reduce这样的框架被用于分布式数据库,因为它们提供了任务的“并行化”,因为我可以有很多映射器,框架抽象了系统细节,比如可伸缩性,负载平衡等。我很困惑,减少仅适用于HDFS,HBase等。
- 最终所有的数据都存储在一个磁盘上,而DBMS是这个数据写入的位置和结构的主脑。
我需要澄清和指导我的理解,我想连接点。
这是一个很好的总结需要连接的点。我会补充说,关于实现模型含义关系或其他方面,概念是中性的,逻辑与关系或SQL实现相关联,并且物理可以包括DBMS特定功能,例如某些特殊类型的索引或放置规则。 –
感谢您的赞扬和反馈,@WalterMitty。你在概念和物理层面上提出了很好的观点,虽然我同意逻辑层次与关系理论相关联(科德定理证明了等价于一阶逻辑的关系模型),但我并不认为这两者与一个SQL实现。虽然SQL DBMS支持与逻辑模型相当接近的物理实现,但对非集合和依赖关系的理解在非SQL数据库中同样重要。 – reaanb
我会接受的是,将关系模型绑定到SQL实现有点过分。在我的实践中,我创建的每个关系数据库都是针对一些DBMS(如Oracle),它既是SQL又是关系数据库(关闭近似)。我忽略了不是基于SQL的关系系统。 –