《DBA修炼之道:数据库管理员的第一本书》——3.4节概念、逻辑和物理数据模型

简介:

本节书摘来自华章社区《DBA修炼之道:数据库管理员的第一本书》一书中的第3章,第3.4节概念、逻辑和物理数据模型,作者(美)Craig S. Mullins,更多章节内容可以访问云栖社区“华章社区”公众号查看

3.4 概念、逻辑和物理数据模型
到现在已经讨论了通常所讲的数据模型。但实际上有三种类型的数据模型:概念、逻辑和物理。
概念和逻辑都是描述数据建模不同阶段的松散术语。概念数据模型与完整的逻辑数据模型相比,通常更抽象且不详细。两者之间没有明确的分界线,但以下论述在很大程度上是建模界所接受的。
概念数据模型描述了一种高水平的、面向业务的信息视图。为了强调最重要的实体、属性和关联,该模型舍弃了一些非关键性的细节。概念数据模型可能包含多对多的关联。概念建模的终极目标是简单明了,因此,没必要发现并记录各实体的每一个属性。此外,一些问题如基数、可选择性和数据类型在概念层面上也可以不予考虑。一些简单的候选码可能被记录下来,但概念数据模型对多数的码无法识别,因为高度抽象化使得原本有效的码标识变得不切实际也不大可能。该模型中的关联是不需要命名的,因为其终极目标是高度简单化,如果关联名称使数据模型图变得杂乱,这就与其目标相违背了。
概念数据模型描述了一种高水平的、面向业务的信息视图。
逻辑数据模型由完全规范化的、定义了全部属性的实体组成。此外,各个属性的域或者数据类型必须定义。逻辑数据模型需要规范的候选码来唯一标识实体的每一个实例。对于有多个候选码的实体,逻辑数据模型必须注明哪个候选码用作标识,即主码。外码的定义应清晰或由数据关联暗示。多对多的关联应翻译成中间实体(详见“中间实体”),这可能会获得额外的属性或标识符。在逻辑数据模型中,其他细节(如基数和关联是可选或必选的)都必须记录下来。所有的关联的命名也应清晰且明确。逻辑数据模型应可以作为开发物理数据库的完整文档。
逻辑数据模型提供了一个全面的形式结构来作为业务数据的蓝图。
创建物理数据模型是为了通过使用具体的DBMS产品(如DB2、Oracle或SQL Server),将逻辑数据模型转化成物理实现。有关物理数据模型的详细介绍请参考第4章。
物理数据模型通过具体的DBMS产品将逻辑数据模型转化成物理实现。

相关文章
|
3月前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
287 0
|
1月前
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
46 5
Mysql(3)—数据库相关概念及工作原理
|
1月前
|
关系型数据库 MySQL 数据库
MySQL数据库:基础概念、应用与最佳实践
一、引言随着互联网技术的快速发展,数据库管理系统在现代信息系统中扮演着核心角色。在众多数据库管理系统中,MySQL以其开源、稳定、可靠以及跨平台的特性受到了广泛的关注和应用。本文将详细介绍MySQL数据库的基本概念、特性、应用领域以及最佳实践,帮助读者更好地理解和应用MySQL数据库。二、MySQL
98 5
|
1月前
|
SQL 存储 安全
SQL查询数据库:基础概念与操作指南
在数字化时代,数据库已成为信息管理的重要工具之一。作为管理和操作数据库的核心语言,SQL(结构化查询语言)已成为数据管理和查询的关键技能。本文将全面介绍SQL查询数据库的基本概念、语句和操作指南,以帮助初学者快速上手,同时为进阶用户提供有价值的参考。一、数据库与SQL简介数据库是一种存储、管理和检索
36 3
|
3月前
|
存储 SQL 安全
【数据库高手的秘密武器:深度解析SQL视图与存储过程的魅力——封装复杂逻辑,实现代码高复用性的终极指南】
【8月更文挑战第31天】本文通过具体代码示例介绍 SQL 视图与存储过程的创建及应用优势。视图作为虚拟表,可简化复杂查询并提升代码可维护性;存储过程则预编译 SQL 语句,支持复杂逻辑与事务处理,增强代码复用性和安全性。通过创建视图 `high_earners` 和存储过程 `get_employee_details` 及 `update_salary` 的实例,展示了二者在实际项目中的强大功能。
41 1
|
3月前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
2月前
|
前端开发 数据库 开发者
数据模型(数据库表设计)生成代码
BizWorks ToolKit 插件集成 Mybatis-Plus 代码生成工具,支持从数据库表批量生成代码,简化开发流程。本文详细介绍配置方法及项目示例,包括配置文件格式、生成选项及具体操作步骤,帮助开发者快速实现代码同步更新。配置文件 `.mp.yaml` 支持自定义输出目录、生成组件等,适用于多种项目结构。
46 0
|
3月前
|
存储 前端开发 中间件
CTO要求把所有逻辑放到数据库:合理性的深度剖析
【8月更文挑战第12天】在软件开发领域,关于系统架构的决策往往能深刻影响项目的成败。当CTO提出将所有逻辑放到数据库中的要求时,这一决策无疑会引发团队内部的广泛讨论。本文将从技术合理性、维护性、性能及可扩展性等多个维度,深入探讨这一要求的合理性与潜在影响,旨在为读者提供全面而深入的技术见解。
48 1
|
3月前
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
112 0
|
3月前
|
API 数据库 开发者
【独家揭秘】Django ORM高手秘籍:如何玩转数据模型与数据库交互的艺术?
【8月更文挑战第31天】本文通过具体示例详细介绍了Django ORM的使用方法,包括数据模型设计与数据库操作的最佳实践。从创建应用和定义模型开始,逐步演示了查询、创建、更新和删除数据的全过程,并展示了关联查询与过滤的技巧,帮助开发者更高效地利用Django ORM构建和维护Web应用。通过这些基础概念和实践技巧,读者可以更好地掌握Django ORM,提升开发效率。
39 0