【软件系统架构】系列三:数据库系统之一

数据库系统 DBS 的组成: 数据库、硬件、软件、人员。

数据库管理系统 DBMS 的功能: 数据定义、数据库操作、数据库运行管理、数据的存储管理、数据库的建立和维护等。

DBMS 的分类: 关系数据库系统 RDBS、面向对象的数据库系统 OODBS、对象关系数据库系统 ORDBS。

数据库系统的体系结构: 集中式数据库系统(所有东西集中在 DBMS 电脑上)、客户端/服务器体系结构(客户端负责请求和数据表示,服务器负责数据库服务)、并行数据库系统(多个物理上在一起的 CPU)、分布式数据库系统(物理上分布在不同地方的计算机)。

1.三级模式-两级映像

(1)数据库系统的三级模式结构

数据库系统的三级模式结构由外模式、模式和内模式组成

内模式

  • 定义:管理如何存储物理的数据,包括数据的存储方式、优化和存放等。

  • 理解:内模式是数据库系统最底层的抽象,它描述了数据在物理存储设备上的组织方式。例如,数据以文件形式存储在磁盘上,内模式定义了这些文件的结构、索引、存储空间分配等。

模式(概念模式)

  • 定义:又称为概念模式,是我们通常使用的“表”这个级别。根据应用和需求,将物理数据划分成一张张表。

  • 理解:概念模式是数据库系统中间层的抽象,它描述了数据库中所有数据的逻辑结构,是所有用户的公共数据视图。它定义了实体、属性、实体之间的关系等。

外模式

  • 定义:对应数据库中的“视图”这个级别,将表进行一定的处理后再提供给用户使用。例如,将用户表中的用户名和密码组成视图提供给登录模块使用,而用户表中的其他列则不对该模块开放,增加了安全性。

  • 理解:外模式是数据库系统最高层的抽象,它描述了用户或应用程序所使用的部分数据的逻辑结构,是用户特定的数据视图。不同的用户或应用程序可以有不同的外模式。

(2)数据库系统的两级映像

数据库系统的两级映像是指外模式/模式映像和模式/内模式映像。

外模式-模式映像

  • 定义:是表和视图之间的映射,存在于概念级和外部级之间。若表中数据发生了修改,只需要修改此映射,而无需修改应用程序。

  • 理解:外模式-模式映像定义了外模式到概念模式的映射关系,实现数据逻辑独立性,即当概念模式改变时,只需要修改映像,而不需要修改外模式。

模式-内模式映像

  • 定义:是表和数据的物理存储之间的映射,存在于概念级和内部级之间。若修改了数据存储方式,只需要修改此映射,而不需要去修改应用程序。

  • 理解:模式-内模式映像定义了概念模式到内模式的映射关系,实现数据物理独立性,即当内模式改变时,只需要修改映像,而不需要修改概念模式。

数据库系统
数据库系统

2.数据库的设计

数据库设计是一个将现实世界的数据组织转化为可以在计算机系统中高效存储和访问的过程。它主要包括以下几个阶段:

(1) 需求分析

  • 目的:分析数据存储的要求,理解用户对系统的期望。

  • 产出物:数据流图、数据字典、需求说明书。

  • 核心内容:获取用户对系统的三个关键要求:

    • 信息要求:系统需要存储哪些数据。

    • 处理要求:系统需要对数据进行哪些操作。

    • 系统要求:系统的性能、安全、可靠性等方面的要求。

(2) 概念结构设计

  • 核心内容:设计E-R图(实体-联系图)。E-R图是一种独立于具体数据库管理系统的概念模型,用于描述实体、实体的属性以及实体之间的联系。

  • 工作步骤

    • 选择局部应用:确定需要建模的业务范围。

    • 逐一设计分E-R图:针对每个局部应用,设计相应的E-R图。

    • E-R图合并:将各个分E-R图合并成一个全局E-R图。

  • 合并E-R图时的冲突

    • 属性冲突:同一属性在不同的分E-R图中可能具有不同的类型、取值范围或单位。

    • 命名冲突:相同意义的属性在不同的分E-R图中可能有不同的名称,或者相同的名称代表不同的含义。

    • 结构冲突:同一实体在不同的分E-R图中可能有不同的属性,或者同一对象在一个图中被抽象为实体,而在另一个图中被抽象为属性。

(3) 逻辑结构设计

  • 核心内容:将概念结构设计阶段得到的E-R图转换为关系模式,即实际的表及其列属性。

  • 关键考虑:需要考虑数据库的规范化,以减少数据冗余和提高数据一致性。

  • 工作步骤

    • 确定数据模型:选择适合应用需求的数据模型,如关系模型。

    • 将E-R图转换为指定的数据模型:将E-R图中的实体、属性和联系转换为关系模型中的表、列和关系。

    • 确定完整性约束:定义实体完整性、参照完整性和用户定义的完整性约束,以保证数据的有效性和一致性。

    • 确定用户视图:定义用户可以访问的数据视图,以实现数据的安全性和简化用户操作。

(4) 物理设计

  • 核心内容:根据逻辑结构设计阶段生成的表等概念,生成物理数据库。

  • 工作步骤

    • 确定数据分布:确定数据在物理存储设备上的分布方式,如分区、分片等。

    • 存储结构:选择合适的存储结构,如索引、聚簇等,以提高数据访问效率。

    • 访问方式:确定数据访问的策略和方法,如查询优化、缓存等。

(5)数据库实施阶段

  • 核心任务:根据逻辑设计和物理设计阶段的结果,建立实际的数据库。

  • 具体步骤

    • 建立数据库:使用数据库管理系统(DBMS)创建数据库结构,包括表、索引、视图等。

    • 编制与调试应用程序:开发与数据库交互的应用程序,并进行调试。

    • 组织数据入库:将现有数据导入到数据库中,可能包括数据转换、数据清洗等。

    • 试运行:在模拟环境中测试数据库和应用程序,验证其功能和性能。

(6)数据库运行和维护阶段

  • 核心任务:确保数据库系统的稳定运行,并根据需要进行维护和优化。

  • 具体步骤

    • 系统评价:定期评估数据库系统的性能、可用性、安全性等方面。

    • 调整:根据评价结果,调整数据库配置、优化查询、更新索引等。

    • 修改:根据业务需求的变化,修改数据库结构、应用程序等。

数据库的设计
数据库的设计

关键概念

  • 数据流图:描述数据在系统中如何流动和处理。

  • 数据字典:描述数据元素的定义、属性和关系。

  • 需求说明书:详细描述用户需求和系统功能。

  • E-R 模型:描述实体、属性和实体之间的联系。

  • 关系模式:描述关系数据库中的表结构和关系。

  • 规范化理论:用于减少数据冗余和提高数据一致性。

  • 视图:用户可以访问的虚拟表,用于简化用户操作和提高数据安全性。

  • 完整性约束:用于保证数据的有效性和一致性。

3.E-R模型

数据模型的三要素: 数据结构、数据操作、数据的约束条件。

在 E-R 模型中,使用椭圆表示属性(一般没有)、长方形表示实体、菱形表示联系,联系的两端要填写联系类型,示例如下图:

E-R模型
E-R模型

联系类型: 一对一 1:1、一对多 1:N、多对多 M:N。

属性分类: 简单属性和复合属性(属性是否可以分割)、单值属性和多值属性(属性有多个取值)、NULL 属性(无意义)、派生属性(可由其他属性生成)。

那么 E-R 模型如何转换为关系模型呢(实际就是转换为多少张表)?

每个实体都对应一个关系模式;

联系分为三种:1:1 联系中,联系可以放到任意的两端实体中,作为一个属性(要保证 1:1 的两端关联);1:N 的联系中,联系可以单独作为一个关系模式,也可以在 N 端中加入 1 端实体的主键;M:N 的联系中,联系必须作为一个单独的关系模式,其主键是 M 和 N 端的联合主键。

以上,明确了有多少关系模式,就知道有多少张表,同时,表中的属性也确定了,注意联系是作为表还是属性,若是属性又是哪张表的属性即可。

【软件系统架构】系列

系统架构设计教程简介【软件系统架构】系列简介-优快云博客
【软件系统架构】系列三:数据库系统之一【软件系统架构】系列三:数据库系统之一_内模式映像-优快云博客
【软件系统架构】系列三:数据库系统之二【软件系统架构】系列三:数据库系统之二-优快云博客
【软件系统架构】系列三:数据库系统之三【软件系统架构】系列三:数据库系统之三-优快云博客
【软件系统架构】系列三:数据库系统之四-Redis数据库(1)https://blog.youkuaiyun.com/moton2017/article/details/145990776
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

34号树洞

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值