[架构之路-236]:目标系统 - 纵向分层 - 数据库 - 数据库系统基础与概述:三阶段模型(概念模型、逻辑模型、物理模型)、三级模式结构(外模式、模式、内模式)

目录

一、数据库设计阶段性模型:概念模型、逻辑模型、物理模型

1.1 概念模型(Conceptual Model)- 业务模型:

实体:entity

属性或特征:

key键值/码:

域(Domain):

实体类型:entity type

实体集合:

联系:

1.2 逻辑模型(Logical Model)- 内存模型(最核心):

1.3 物理模型(Physical Model)- 磁盘模型

二、三级模式结构(外模式、模式、内模式)

2.1 三种模式结构概述

2.2 外模式到模式的映射

2.3 模式到内模式的映射


一、数据库设计阶段性模型:概念模型、逻辑模型、物理模型

在数据库设计和开发过程中,可以使用不同层次的数据模型来描述不同方面的数据结构和关系。

常见的数据模型包括以下几种:

1.1 概念模型(Conceptual Model)- 业务模型:

概念模型位于数据模型的最高层次,描述了数据的整体组织结构和高级概念,独立于任何具体的技术实现,概念模型是现实世界和现实业务系统的最直接的抽象,也计算机系统和编程语言无关,因此主要用于描述需求。概念模型通常使用实体-关系(ER)模型或统一建模语言(UML)等进行建模,强调数据实体、属性和实体间的关系

实体:entity

在数据库中,实体是指具有独立身份和属性的现实世界的对象或概念。实体可以是人、物、事件、地点或概念等,是数据库中存储和管理数据的基本单位。

在数据库设计中,实体通常被表示为一个数据表中的行(row),每一行对应着一个具体的实体实例。表的列(column)则表示实体的属性或特征,每个属性对应着表中的一个列。例如,对于一个学生实体,表的列可以包括学生的学号、姓名、年龄、性别等属性。

实体通过唯一的标识符(通常是一个或多个属性的组合)来区分和识别。这个标识符被称为实体的主键(Primary Key)。主键的作用是保证每个实体实例在数据库中都有唯一的标识,并且可以通过主键来进行查询和关联其他表的数据。

实体与关系数据库的关系模型中的表是一一对应的。每个实体对应一个表,每个属性对应一个列,每个实体实例对应表中的一行。通过定义实体和属性的结构,以及它们之间的关系,数据库可以有效地存储和管理大量的数据,并支持各种查询和操作。

总而言之,实体是数据库中存储和管理数据的基本单位,代表着现实世界的对象或概念。它通过表中的行和列来表示,并使用主键来唯一标识和区分不同的实例。实体的定义和组织是数据库设计的重要部分,对数据的存储和查询有着重要影响。

属性或特征:

属性或特征是用于描述实体的各个方面、特点或性质的具体数据项。属性或特征提供了关于实体的更多详细信息,帮助我们理解和区分不同的实体实例。

在数据建模和数据库设计中,属性或特征是描述实体的基本构成要素。它们可以包括以下类型的信息:

  1. 基本属性:这些属性通常是用于对实体进行基本描述的信息,比如姓名、年龄、性别、地址等。

  2. 标识属性:标识属性用于唯一地标识和区分不同的实体实例。例如,对于学生实体,学生ID或学号可以作为标识属性,确保每个学生实例具有唯一的标识。

  3. 附加属性:附加属性提供了有关实体的额外信息。这些属性通常是可选的,用于完善实体的描述。例如,对于学生实体,附加属性可以是出生日期、邮箱地址、电话号码等。

  4. 多值属性:多值属性是指具有多个值的属性。例如,对于一本书的实体,书籍可以有多个作者,因此"作者"属性可以是一个多值属性。

  5. 导出属性:导出属性是通过计算、推导或其他方式从其他属性派生出来的属性。它们可以根据其他属性的值计算而来,而不是直接存储在数据库中。例如,对于一个员工实体,导出属性可能包括计算出的年龄或工资等。

在数据库中,属性或特征在表的列中表示,每个属性对应着表中的一个列。通过定义属性和它们的数据类型、约束和关系,数据库可以有效地存储和管理实体的相关信息。

总而言之,属性或特征是用于描述实体的各个方面、特点或性质的数据项。它们提供了实体的详细信息,帮助我们理解和组织数据。通过属性的定义和组织,数据库可以有效地存储和管理实体的相关信息,并支持各种数据查询和操作。

key键值/码:

在数据库中,键值(Key)或码(Key)是用于唯一标识和区分不同数据项或实体实例的一组属性或属性组合。键值在数据库中起着非常重要的作用,用于建立数据项之间的关系、支持数据的快速查找和检索,以及维护数据的一致性和完整性

键值有以下几种常见的类型:

  1. 主键(Primary Key):主键是数据库表中唯一标识每个实体实例的属性或属性组合。主键值在表中是唯一且非空的。主键的作用是确保每个实体实例都有唯一的标识,并且可以通过主键进行数据的关联和查询。

  2. 外键(Foreign Key):外键是关系数据库中用于建立不同表之间关系的属性或属性组合。外键是表中的一种特殊属性,它引用另一个表的主键作为其值。通过外键,可以建立表与表之间的关系,实现数据的关联和完整性约束。

  3. 唯一键(Unique Key):唯一键是确保表中的某个属性或属性组合值的唯一性的约束。与主键类似,唯一键也可以唯一标识每个实体实例,但可以允许为空值。

  4. 候选键(Candidate Key):候选键是可以作为主键的一组属性或属性组合。一个表可以有多个候选键,但只能选择其中一个作为主键。

键值的选择和定义是数据库设计的重要部分,它对于数据的组织、查询效率和数据完整性至关重要。合适的键值的选择可以提高数据库的性能,确保数据的一致性和完整性,并支持各种查询和操作。

域(Domain):

在数据库中,域(Domain)指的是属性或字段的取值范围或数据类型。它定义了属性可以存储的有效数据的集合。

域可以包括以下几个方面:

  1. 数据类型:域定义了属性可以存储的数据类型,例如整数、字符、日期、布尔值等。不同的数据类型具有不同的取值范围和数据存储方式。

  2. 字符长度:某些数据类型,如字符或文本类型,可能限制属性值的最大长度。例如,一个名字的域可以设置为最大长度为50个字符。

  3. 约束:域可以通过约束来限制属性的取值范围或满足特定的条件。常见的约束包括非空约束(属性值不能为空)、唯一性约束(属性值在表中必须唯一)以及范围约束(属性值必须在一定范围内)等。

  4. 默认值:域可以为属性指定一个默认值,该值将在没有显式指定属性值时自动填充。

  5. 验证规则:域可以定义验证规则,以确保只有满足特定条件的属性值才能被接受。例如,一个日期域可以定义验证规则,要求日期值必须大于当前日期。

域的定义和设置是数据库设计的一部分,通过合理定义域,可以确保数据的完整性、一致性和合法性。数据库管理系统将根据域的定义来验证和处理数据,使得数据库中存储的数据符合预期的要求。

总而言之,域是属性或字段的取值范围或数据类型。它定义了属性可以存储的有效数据集合,并可以通过约束、默认值和验证规则等来限制和处理属性值。通过合理定义和使用域,可以确保数据库中存储的数据的有效性和一致性。

实体类型:entity type

实体类型(Entity Type)是数据库设计中的一个重要概念,用于描述有相似性质和特征的实体的集合。实体类型表示一类具有相同属性和关系的实体。

在概念模型和实体关系模型中,实体类型是由一组特定属性组成的,用于描述相同类型实体的结构和行为。每个实体类型由多个属性组成,这些属性描述了实体的特征和属性。

举个例子,假设我们设计了一个学生管理系统。在这个系统中,"学生"可以被视为一个实体类型。学生实体类型可能包括以下属性:学生ID、姓名、年龄、性别等。

实体类型具有以下特点:

  1. 唯一性:每个实体类型具有唯一的名称,用于在数据库中标识和引用该实体类型。

  2. 属性:实体类型由一组属性组成,这些属性描述了实体的特征和属性。每个属性都有名称、数据类型和约束条件。

  3. 标识:实体类型具有一个标识属性或属性组合,用于唯一标识和区分不同的实体实例。

  4. 关系:实体类型之间可以存在关系,如一对一、一对多、多对一和多对多关系等,用于描述实体之间的联系和依赖。

在数据库中,实体类型通常被映射为表和表之间的关系。每个实体类型对应数据库中的一个表,表中的列(属性)对应实体类型的属性。通过定义实体类型和属性,可以更好地组织和管理数据,以及支持各种查询和操作。

总而言之,实体类型是数据库设计中描述具有相似性质和特征的实体的概念。它由一组属性组成,用于描述和区分不同的实体实例。实体类型在数据库中通常被映射为表,用于存储和管理实体的相关信息。

实体集合:

实体集合(Entity Set)是数据库设计中的概念,它表示具有相同实体类型的实体的集合。实体集合包含了具有相同属性和关系的实体实例。

实体集合可以理解为一组具有相同实体类型的个体或对象。每个实体集合都与一个实体类型相对应。例如,在一个学生管理系统中,"学生"这个实体类型对应的实体集合可以是所有已注册的学生。

联系:

联系(Relationship)在数据库设计中是描述实体之间相互关系的概念

联系指示不同实体集合之间的关联和依赖关系,帮助我们理解和组织数据之间的连接和交互。

联系具有以下特点:

  1. 类型:联系可以分为不同的类型,如一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)和多对多(Many-to-Many)等。联系的类型取决于实体之间的关系和依赖性。

  2. 关联:联系描述了实体之间的关联。通过联系,我们可以建立实体之间的关系,了解不同实体集合之间的连接。例如,学生和课程之间可以建立选课关系,表示一个学生可以选择多门课程。

  3. 依赖:联系可以表示实体之间的依赖关系。某些实体的存在和属性值可能依赖于其他实体的存在和属性值。例如,在一个订单管理系统中,订单实体依赖于顾客实体和产品实体。

  4. 关系属性:联系也可以具有自己的属性。这些属性描述了关系本身的特征和属性。例如,在学生-课程关系中,选课时间和成绩等属性可以添加到关系中。

  5. 约束:联系可以具有一些约束条件,用于限制和保护联系的完整性和一致性。例如,一对一联系可以有唯一性约束,以确保每个实体只能关联到一个实体。

联系是数据库设计中建立不同实体集合之间关联的重要手段。通过联系,不同实体的信息可以相关联,从而支持数据的组合查询和联合操作。

重要:实体之间的关系是通过一个实体是另一个实体的某种属性来体现的!!!!或者说一个实体的某个属性,是另一个实体,这就是实体之间的某种关系!!!!比如学生的属性中,有一个属性就是其班主老师,而班主任老师本身就是一个实体。

总而言之,联系是描述实体之间相互关系的概念。通过联系,实体集合之间可以建立关联和依赖关系。联系可以有不同的类型,并可以具有关系属性和约束条件。在数据库设计中,联系帮助我们理解和组织数据之间的连接,支持数据的关联查询和操作。

1.2 逻辑模型(Logical Model)- 内存模型(最核心):

逻辑模型是在概念模型的基础上进一步细化,具体描述了数据的实际结构和逻辑关系(非物理关系),但仍与具体的数据库管理系统(DBMS)无关。逻辑模型通常使用关系模型或对象模型,以表、实体类、属性和关联等方式来表示数据结构和关系。常见的逻辑模块包括:层次模型、网状模型、关系模型等。

逻辑模式是指一个数据库中的实体,在内存中的数据结构,即数据库的逻辑模型(实体与实体之间的逻辑关系属性)

在数据库领域,常见的数据库类型包括关系型数据库、层次型数据库、网状型数据库以及最近出现的NoSQL数据库。下面是对这些数据库类型的简要比较:

  1. 关系型数据库(Relational Database):

    • 使用关系模型组织和管理数据,数据以表格(关系)的形式存储。
    • 表格之间通过关联主键和外键建立联系。
    • 通过结构化查询语言(SQL)进行数据的查询、插入、更新和删除等操作。
    • 具备事务处理和 ACID(原子性、一致性、隔离性、持久性)特性,适用于大部分结构化和事务性的应用。
  2. 层次型数据库(Hierarchical Database):

    • 使用树状结构组织和管理数据。
    • 数据以父子关系的方式存储,一个父节点可以有多个子节点,但每个子节点只能有一个父节点。
    • 适用于一些具有明显层次结构的数据,例如组织结构、文件系统等。
    • 不支持灵活的查询和扩展,主要应用在特定的领域。
  3. 网状型数据库(Network Database):

    • 使用网络结构组织和管理数据。
    • 不同于层次型数据库的单向父子关系,网状型数据库允许多对多的关联关系。
    • 可以通过指针进行跨表关联,具备灵活的数据访问能力。
    • 不同于关系型数据库的SQL查询语言,通常使用自定义的查询语言。
    • 网状型数据库在过去较为流行,现在已经较少使用。
  4. NoSQL数据库:

    • NoSQL(Not Only SQL)数据库是一种非关系型的数据库分类,不依赖于固定的表格模式。
    • 非结构化的数据以键值、文档、列族、图等方式存储和管理。
    • 适用于大规模数据、高并发、分布式环境下的应用,具备水平扩展性和灵活性。
    • NoSQL数据库包括键值存储数据库、文档数据库、列族数据库、图数据库等。

不同类型的数据库适用于不同的应用场景和需求。关系型数据库在传统和企业级应用中广泛使用,NoSQL数据库逐渐成为大数据和分布式应用的主要选择。选择合适的数据库类型需要综合考虑数据结构、查询需求、性能要求等因素。

1.3 物理模型(Physical Model)- 磁盘模型

物理模型是对逻辑模型的具体实现,考虑了数据库管理系统的特性、性能和存储要求。物理模型定义了如何在特定的DBMS中创建表、索引、分区、存储过程等物理对象,以及如何存储和访问数据。物理模型通常与具体的DBMS密切相关,如基于关系模型的SQL模型。物理模型定义了数据的最底层的抽象,描述了数据库在磁盘文件中的物理存储格式、存取方式等

这三个层次的数据模型在数据库设计和开发过程中起着重要的作用。概念模型用于整体抽象和需求分析逻辑模型用于描述数据结构和关系,重在设计物理模型用于具体实现和优化。从概念模型到物理模型的转换过程涉及到对数据需求、业务流程、性能需求等的理解和转化,以便设计出高效、可靠和灵活的数据库系统。

请注意,概念模型、逻辑模型和物理模型之间存在一定的层次上的抽象和精确度的差异,每个模型都服务于不同的目标和使用场景。在数据库设计过程中,常常需要从概念模型开始,逐步细化为逻辑模型和物理模型,并根据具体的需求和限制进行调整和优化。

数据库的物理模型是指在数据库实现层面上,将逻辑数据模型转化为计算机可以理解和存储的实际物理结构。它描述了数据库中各个表、列、索引以及相关存储细节的安排方式。

数据库的物理模型设计主要包括以下几个方面:

  1. 表的结构: 此部分定义了表的名称、列名、数据类型、约束等信息。每个表都由一系列列组成,列定义了表中存储的不同属性。

  2. 主键和外键: 主键用来唯一标识表中的每条记录,而外键则定义了不同表之间的关联关系。主键和外键都在物理模型中进行定义,以确保数据的完整性和一致性。

  3. 索引: 索引是一种用来提高数据检索效率的数据结构。在物理模型中,可以定义不同的索引类型(如B树索引、哈希索引等),并指定需要创建索引的列。

  4. 存储结构: 物理模型需要考虑数据在磁盘或内存中的存储方式。这包括选择合适的存储引擎、表空间分配、数据页的组织方式等。

  5. 分区和分表: 对于大型数据库,可以将数据按照某种规则进行分区和分表,以提高查询和维护效率。通过分区和分表,可以将数据分布在不同的物理设备上,从而减少单个设备的负载压力。

物理模型的设计与具体的数据库管理系统有关,不同的数据库系统提供了不同的工具和语法来进行物理模型的设计和实现。正确设计和优化的物理模型可以提高数据库的性能,实现更高效的数据存储和查询操作。

二、三级模式结构(外模式、模式、内模式)

2.1 三种模式结构概述

视图级外模式是数据库系统中的一个概念,用于描述用户或应用程序对数据库中特定数据视图的访问方式和权限控制。

视图级外模式是在外模式的基础上进一步细化,它定义了用户或应用程序对数据库中某个特定数据视图的逻辑结构和操作方式。通过视图级外模式,用户或应用程序可以只关注所需的数据视图,而不需要了解整个数据库的结构和复杂性。

三级模式结构是数据库系统中一种常见的组织方式,它包括外模式(External Schema)、模式(Conceptual Schema)和内模式(Internal Schema),用于描述和管理数据库的不同层次和视图。

  1. 外模式(External Schema):外模式是指数据库中的用户视图层面,也称为用户模式。每个用户或应用程序都可以拥有一个或多个外模式,用来描述他们在数据库中所关心的数据和操作。外模式定义了用户能够看到和访问的数据的逻辑结构和组织方式,以及他们能够执行的操作。

  2. 模式(Conceptual Schema):模式是数据库中的全局视图,是对整个数据库的逻辑结构和组织方式的描述。它定义了数据库中的所有实体、实体之间的关系、约束和操作等。模式是数据库的中间层,它隐藏了物理存储细节,对用户和应用程序提供了一个一致和抽象化的视图。

  3. 内模式(Internal Schema):内模式是数据库中最底层的视图,也称为存储模式或物理模式。它描述了数据在存储介质上的物理表示形式,包括数据存储的数据结构、索引方式、文件组织格式等。内模式对于数据库的性能和存储管理非常重要,通过内模式可以对数据库的物理存储进行优化。

        三级模式结构将数据库的组织层次清晰地分为外模式、模式和内模式。外模式为用户和应用程序提供了定制化的数据访问接口;模式提供了整个数据库的逻辑结构和组织方式;内模式则管理着底层的物理存储细节。这种分层结构使得数据库系统能够实现数据的独立性和逻辑抽象,提高了系统的可维护性、可扩展性和性能。

2.2 外模式到模式的映射

外模式到模式的映射(External-to-Conceptual Mapping)是将外模式中定义的用户视图和操作映射到模式级别的过程,用于建立外模式与模式之间的对应关系。

外模式到模式的映射通常由数据库管理员或设计人员完成,以下是映射过程的一般步骤:

  1. 理解用户需求:首先需要充分了解外模式中定义的用户需求,包括对数据的查询、插入、更新、删除等操作,以及对数据结构和约束的要求。

  2. 分析外模式和模式结构:对比分析外模式和模式之间的结构差异,包括数据的组织方式、实体关系、数据类型、约束条件等。确定外模式和模式之间的对应关系。

  3. 建立映射规则:根据分析结果,制定外模式到模式的映射规则。例如,确定外模式中的一个实体对应模式中的一个表,或者外模式中的一个查询对应模式中的一组表连接。

  4. 进行映射操作:根据映射规则,逐个将外模式中的用户视图和操作映射到模式级别。这可能涉及到创建新的实体、表、视图、索引等数据库对象,以及指定数据的访问权限和约束条件。

  5. 测试和验证:进行测试和验证,确保映射后的数据库能够满足用户需求,并且数据的一致性和完整性得到保证。

映射过程中需要考虑数据的一致性、完整性和性能等方面的要求。此外,映射操作需要与数据库管理系统的具体实现相匹配,确保外模式和模式之间的对应关系能够正确地被解释和执行。

外模式到模式的映射过程是数据库系统设计的关键环节,它将用户需求与底层的数据模型结合起来,实现了用户视图和底层模式的衔接。这种映射关系有效地实现了数据独立性,使得数据库系统能够更灵活地适应用户需求的变化。

2.3 模式到内模式的映射

模式到内模式的映射(Conceptual-to-Internal Mapping)是将数据库的模式层级映射到内模式层级的过程,用于定义模式中的数据对象和结构如何映射到物理存储层。

模式到内模式的映射通常由数据库管理员或设计人员完成,以下是映射过程的一般步骤:

  1. 理解模式结构:首先需要充分了解模式中定义的数据库对象、实体关系、约束条件和操作方式等,包括表的结构、索引、视图、触发器等。

  2. 分析模式和内模式的结构:对比分析模式和内模式之间的结构差异,包括数据的物理存储方式、磁盘分布、索引方式、文件组织格式等。确定模式和内模式之间的对应关系。

  3. 建立映射规则:根据分析结果,制定模式到内模式的映射规则。例如,确定模式中的一个表对应内模式中的一个存储文件,或者模式中的一个索引对应内模式中的一个存储结构。

  4. 进行映射操作:根据映射规则,逐个将模式中的数据库对象和结构映射到内模式级别。这可能涉及到指定数据的存储位置、定义存储结构和索引方式、确定文件组织方式等。

  5. 测试和验证:进行测试和验证,确保映射后的数据库能够正常运行,并且满足性能和存储管理等方面的要求。

映射过程中需要考虑持久化、性能优化和存储管理等方面的要求。此外,映射操作需要与数据库管理系统的具体实现相匹配,确保模式和内模式之间的对应关系能够正确地被解释和执行。

模式到内模式的映射过程是数据库系统设计和实现的关键环节,它将抽象的模式层级转化为底层的物理存储实现。这种映射关系使得数据库系统能够高效地管理数据,并满足性能、可靠性和可维护性等要求。同时,它也为数据库管理员提供了更精细的控制和管理能力。

  • 10
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文火冰糖的硅基工坊

你的鼓励是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值