【数据库】01——精通数据库需要掌握这九个维度 2

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 【数据库】01——精通数据库需要掌握这九个维度

5 数据库设计有哪些步骤

数据库的设计需要考虑很多问题,但主要是数据库模式的设计,这里我们将讨论数据库模式的设计和查询语句的编写。

(1)需求确定。数据库设计的初始阶段是和领域专家、数据库用户充分讨论,形成数据库用户需求说明书文档,说明数据库用户的数据需求,以及将怎样构造数据库用户满足这些需求。

(2)概念设计。下一步,设计者要选择一个数据模型,将需求转换成一个数据库的概念模式,形成企业的详细综述,再复审这个模式,确保满足所有的数据需求并且需求之间没有冲突。

从关系模型角度,这个阶段还需要涉及数据库应该包含哪些属性,以及如何组织这些属性到各个表中。前者主要是决策,后者主要是计算机科学问题,解决方法主要有两种,一种是使用实体-联系模型,另一种是使用一套算法,后续我们将详细介绍。

一个开发完整的概念模式还将指出企业的功能需求。也就是用户需要做哪些增删改查,进行复审,确保其满足需求。

(3)逻辑设计。将高层的概念映射到要实现的数据库系统的系统模型上。

(4)物理设计。说明数据库的物理特性,包括文件的组织形式和内部存储特征。

6.数据库引擎——如何存储、查询并保证数据安全

数据库系统大致可以分为以下功能模块:存储管理器、查询处理器和事务管理部件。

数据库的存储管理十分重要,因为企业数据库的大小通常达到数百个gigabyte(千兆字节),甚至达到terabyte(万亿字节)。最大的企业数据库规模达到数个petabyte(千万亿字节)。计算机主存存储不了这么多信息,而且系统奔溃时主存会丢失,因此,信息被存储在磁盘中。从磁盘读取数据速度是很慢的,因此,固态硬盘也被越来越多的应用到了数据库的存储中。


查询处理器也很重要,他简化和促进了用户对数据的访问,使得用户能够获得很高的性能,同时有不必要了解系统实现的物理层细节和负担。


事务处理器同样也很重要,它使应用开发人员能够把一系列的数据库操作当作一个单元来看待,保证数据的安全性。、


传统的数据库引擎是集中式的计算机系统,而现代数据库引擎则非常注重并发数据存储和并发查询处理。

6.1 存储管理器

存储管理器是存储数据,并对应用程序以及向系统提交的查询之间的提供查询接口的部件。它主要负责数据库中数据的存储、检索和更新。

存储管理器部件主要包括。


权限及完整性管理器。检测用户访问权限与数据是否满足一致性约束。

事务管理器。保证即使系统发生了故障,数据库也保持在一致状态。并且保证并发事务的执行不发生冲突。

文件管理器。管理磁盘存储空间的分配,管理用于磁盘上所存储信息的数据结构。

缓冲区管理器。负责将数据从磁盘上取到内存中,并决定哪些数据应该被缓冲存储在内存中。

数据文件(data file)。存储数据库自身。

数据字典(data dictionary)。它存储关于数据库结构的元数据,特别是数据库模式。

索引。更快的访问数据。

6.2 查询处理器

查询处理器包括。

  • DDL解释器。解释DDL并将其记录在数据字典中。

DML编译器。翻译DML语句为存储引擎能够理解的低级指令。它还执行查询优化,选出代价最小的执行计划。

查询执行引擎。执行 DML编译器产生的低级指令。

6.3 事务管理

事务的原子性和持久性都是数据库系统的自身职责,确切的说,是恢复管理器的职责。如果事务总能被成功的执行,那么自然可以保证原子性。但是如果一系列的事务不总成功被执行完毕,为了保证原子性,失败的事务不应该对数据库产生任何影响,在这种情况下,数据库系统需要进行故障恢复,也就是它必须检测系统故障并且将数据库恢复到故障发生以前的状态。


另外,当几个事务并发对数据库进行更新时,即使每个单独的事务是正确的,对数据库的一致性也可能被破坏。并发控制管理器控制并发事务间的相互影响。保证数据库的一致性。事务管理器包括并发控制管理器和恢复管理器。

7 数据库的应用体系结构

现在我们终于可以来给出数据库的体系结构图了。


be3e96f8dcf34aa9a5278f1dde6437d2.png


上面的数据库体系结构是集中式的。虽然有多个cpu进行并行存储,但是所有cpu都i访问一个公共的共享内存。为了扩展到更大的数据库规模和更高的处理速度,研究人员又设计了包括多台机器的集群上的并行数据库(paraller database)。

8 数据库用户和管理员

8.1 数据库用户和用户界面

数据库系统把用户分成了四种,不同用户访问不同类型的数据库界面。

  • 初学者用户。提供典型的表格界面。
  • 应用程序员,提供工具共应用程序员开发用户界面。
  • 老练用户。不需要编写程序来同系统交互。提供查询语句或者数据分析软件。

8.2 数据库管理员

数据库管理员(Database Adminitrator,DBA)对数据和访问数据的程序进行集中控制。他们的作用包括:


模式定义。通过执行DDL编写一系列定义语句来创建最初的数据库模式。

存储结构及存取方法定义,DBA可以具体说明与数据物理组织及索引创建相关的一些参数。

模式及物理组织的修改。由DBA对模式和物理组织进行修改。以反映机构的需求变化,或者为了提高性能选择不同的物理组织。

数据访问授权。授予不同用户类型的权限。

日常维护。数据库管理员的日常维护工作包括:周期性的备份数据库到远程服务器上,确保在正常运转时有足够的存储空间,适时升级存储空间。监视数据库上运行的作业,并确保数据库性能。

9 数据库系统的历史

数据库最早起源于20世纪初,Herman Hollerith发明穿孔卡片,记录美国人口普查数据,采用机械系统来存储卡片的显示结果。


afb63455234d4cbc95d1b6cf42e423cd.jpg

20世纪50年代到60年代初,磁带被开发来数据存储。它只能顺序读取,数据规模可以比内存大很多。

5484348061f3479e8e7c3daf0fa2cff2.jpg

20世纪60年代末和70年代初,硬盘广泛用于存储数据。磁盘任何位置都可以在几十毫秒内访问到,数据摆脱了顺序访问的限制。

image.jpeg


Edgar Codd在1970年撰写了关系模型论文,至此关系型数据库诞生,关系型数据库其简单性和对程序员屏蔽所有实现细节对程序员充满了诱惑力。


20世纪70年代末和80年代。第一个关系型数据库SQL/DS诞生,同一时期,Oracle的第一个版本诞生了。到80年代默契,关系型数据库打败了层级和网状数据库,独占鳌头。


80年代,人们还对分布式和并行数据库有了很多研究。


948a75d31b554c67babd012dcd9526e0.jpg

20世纪90年代。数据库最开始设计时时为了支持决策,80年代数据库的支柱却是查询密集、更新密集的事务处理。90年代,数据库决策概念再次大火,数据分析工具有了更加广泛的应用,与此同时,互联网在这一时期爆炸式发展,数据库逐渐要求高性能,高可用,高可靠。

a9c3694edaa548b393235be71d2ab3b7.jpg


21世纪第一个十年。XML发展成数据交换的标准,紧随其后,适用于javascript与其他语言交换数据的格式JSON开始重要起来。数据库系统增加了对这两种格式数据的支持。空间数据在导航等系统广泛应用,数据库系统也增加了对这些数据的支持。

image.png

开源数据PostSQL和MySQL的使用不断增长,“Auto-admin”特性被加到数据库中,使其能够自动重新配置,以适应不断变化的工作负载。减少了数据库管理的工作。

12eb837db0b747e98aef77ed18ec1dce.jpg

社交网络平台的发展,也促进数据库从表格化到图形数据库的发展。

在第一个十年的后期,数据挖掘应用变得特别普遍,适合数据挖掘市场的数据库系统被开发出来,如“列存储”,将表按列进行存储,而不是按照主流数据库进行行存储。

380472eb8cbc4eeb8da55582dd7adf0b.png

各种各样的新的数据密集型应用以及对快速开发的需求,特别是新兴的公司的需求,导致了"NoSQL"的诞生。NoSQL的数据脱离关系型的严格一致性支持,是的分布式数据库具有更大的灵活性,它的特点是“最终一致性”。

1ba71e8f5e1b48e5a058805d0b1ddbed.png

21世纪的第二个10年,NoSQL尽管带来了高可用性和可伸缩性,但是渐渐被发现其不一致性使得程序员和数据库管理员的工作越来越复杂,应用系统逐渐演化为提供特性以支持一致性的更加严格的概念,并且继续支持高可用和可伸缩性。


各个企业越来越多的外包他们的数据存储和管理,企业开始把数据存储在“云”服务中。这使企业节约了成本,但是也产生了新的问题,主要输数据安全、责任以及所有权的问题。网络安全面临新的挑战。

5f6ba1223a75446b8453a1f4506bf9f9.jpg


相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
7月前
|
关系型数据库 分布式数据库 数据库
【PolarDB开源】PolarDB安全策略:强化数据库防护的多维度措施
【5月更文挑战第24天】PolarDB,阿里云的高性能云原生数据库,提供全面的安全策略,包括SSL/TLS加密、VPC网络隔离、用户访问控制、数据加密和监控审计,构建多层防护体系。通过角色权限、列级加密和审计日志等措施,确保数据传输、访问和存储的安全。建议定期审计、更新系统、安全培训和备份策略,以增强数据库安全性。
331 2
|
SQL 存储 缓存
我们常说的数据库优化,可以从哪些维度入手?
我们常说的数据库优化,可以从哪些维度入手?
136 0
|
SQL 存储 安全
【数据库】01——精通数据库需要掌握这九个维度 1
【数据库】01——精通数据库需要掌握这九个维度
|
NoSQL Redis 数据库
|
3天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
13 3
|
3天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
19 3
|
3天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
22 2
|
17天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
117 15
|
10天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。