赛前培训 | 全国大学生计算机系统能力大赛喊你学习啦

2024 OceanBase 数据库大赛于7月18日启动报名,本届赛事由全国高等学校计算机教育研究会、系统能力培养研究专家组、系统能力培养研究项目发起高校主办,旨在提升学生的技术创新、工程实践、团队协作能力,为高水平计算机人才成长搭建交流、展示、合作的开放平台。与此同时,一年一度的赛前训练营也接踵而至!

正所谓良好的开端是成功的一半,为帮助大家更好地上手大赛,OceanBase 推出免费教程「从0到1数据库实战教程」,从 MiniOB 入门到 OceanBase 进阶,展开每周一次、为期近两个月的线上学习。从零开始带领大家系统化地学习数据库理论知识,并进入真实的实践环境,磨练数据库实践能力。

该教程也在过去三届 OceanBase 数据库大赛中,被作为赛前培训教程及初赛题目来源,深受参赛者的喜爱,积累了良好口碑,看下方时刻表提前了解教程安排。

教程内容包含什么?

对于该教程,入门部分将学习项目MiniOB。MiniOB 整体代码简洁,容易上手,期望通过 MiniOB 的训练,同学们能够熟练掌握数据库内核模块的功能和协同关系,并具备一定的工程编码能力,例如内存管理、网络通信和磁盘 I/O 处理等, 这将有助于学习者在未来的面试和工作中脱颖而出。

进阶部分基于原生分布式数据库OceanBase,这是一款为企业核心系统提供稳定可靠的数据底座,连续 12 年稳定支撑“双 11”,凭借高性能和高可用真正实现应用无限扩展和服务永远在线。

2024 「从0到1数据库实战教程」在前三届教程的基础上,保留经典,优化模块。首先在原有基础上优化了MinOB 部分。MiniOB 是一个持续发展的数据库教程平台,本次我们将更新的模块做了重新讲解,包括MiniOB框架、开发环境搭建与调试、一些题目的解析等。

还有哪些学习资料?

除了视频教程在线学习外,还有以下材料帮助同学们高效学习:

  • 每期视频学习结束后,技术专家在线QA ,及时解答你的疑问。
  • 《从 0 到 1 OceanBase 原生分布式数据库内核实战》的基础版进阶版
  • 推荐学习《OceanBase 数据库源码解析》纸质书

学完该教程,我能获得什么?

收获一:掌握数据库内核原理,拥有数据库内核工程实践能力,设计更高效的 SQL,研究新的数据库架构发展方向!

收获二:参与教程有机会获得 OceanBase 专属定制周边礼品。

学习的正确姿势

阶段1:准时参与直播教程学习

阶段2:进入教程学习群进行技术交流,技术“大牛”在线答疑

阶段3:参与并完成MiniOB训练题

相关入口

小伙伴们可提前了解 :point_right: 训练营使用说明

MiniOB 训练营:OceanBase 社区

了解OceanBase 源码:https://github.com/oceanbase/oceanbase

在OceanBase 社区论坛提问及解答:https://ask.oceanbase.com/

在第一期教程我可以学到什么?

8月7日19:30 我们将正式开启 从0到1数据库实践教程 第一期内容: 数据库系统概述与OceanBase 研发入门。
如果你是数据库零基础,赶紧上车,老司机带你快速 Get 数据库内核知识!
如果你已经学习了数据库理论知识,却苦于没机会在真实企业级环境中动手实践过,那你更不能错过在「从 0 到 1 数据库实践教程」中动手实践企业级应用的机会。
此外,MiniOB 和 OceanBase 内核源代码也已备好,等你解构,并带你了解企业级分布式数据库的整体架构和模块组成,以及一些关键数据的结构和方法。真正从理论到实践,由浅入深地带你掌握数据库内核开发。赶快扫描下方海报中的二维码报名,和讲师进行互动吧!

基础课程大补习
了解数据库系统
数据库管理系统的组成
DBMS(数据库管理系统) 允许用户创建数据库并对数据库中的数据进行查询和修改,同时提供故障时的数据恢复功能和多用户同时访问时的并发控制功能。
如图是一个 DBMS 的内部结构示意图。其中单线框表示系统模块,双线框表示内存中的数据结构,实线表示控制流+数据流,虚线表示数据流。该图反映了 DBMS 的几大主要功能的处理流程,即数据定义、数据操纵和事务管理,这些功能均依赖底层的存储管理及缓冲区管理组件提供对磁盘中数据的访问支持。

数据库模型和语言
关系模型采用的数据结构称为关系。在关系模型中,数据库中的全部数据及数据间的联系都用关系来表示。关系是一个无序的元组集合,每个元组由一组属性值构成,表示一个实体。一个有n个属性的关系称为n元关系。由于关系中的元组是无序的,因此DBMS可以采用任何它希望的方式存储它们,以便进行优化。
SQL 是关系数据库的标准语言,它是1974 年由Boyce和Chamberlin提出的,最初叫 Seque(Structured English Query Language), 并在IBM公司研发的关系数据库管理系统原型System R上实现,后改名为SQL(Structured Query Language)。SQL是一种通用的、功能极强的关系数据库语言,其功能不仅仅是查询,还包括数据库模式创建、数据库数据的插入与修改、数据库安全性完整性定义与控制等一系列功能。但是,数据查询仍然是SQL中最重要、也最具特色的功能。

MiniOB 概述
MiniOB 是 OceanBase 团队基于华中科技大学数据库课程原型,联合多所高校重新开发的、专为零基础的同学设计的数据库入门学习项目。MiniOB 的目标是为在校学生、数据库从业者、爱好者或对基础技术感兴趣的人提供一个友好的数据库学习项目,更好地将理论、实践进行结合,提升同学们的工程实战能力。

OceanBase 架构和基本介绍
在搭建研发环境前,我们需要对OceanBase数据库架构有基础认识。

OceanBase 的一个集群由若干个节点组成。这些节点分属于若干个区(Zone),每个节点属于一个区。区是一个逻辑概念,表示集群内具有相似硬件可用性的一组节点,它在不同的部署模式下代表不同的含义。例如,当整个集群部署在同一个数据中心(IDC)内的时候,一个区的节点可以属于同一个机架,同一个交换机等。当集群分布在多个数据中心的时候,每个区可以对应于一个数据中心。每个区具有 IDC 和地域(Region)两个属性,描述该区所在的 IDC 及 IDC 所属的地域。一般地,地域指 IDC 所在的城市。区的 IDC 和 Region 属性需要反映部署时候的实际情况,以便集群内的自动容灾处理和优化策略能更好地工作。

在 OceanBase 中,一个表的数据可以按照某种划分规则水平拆分为多个分片,每个分片叫做一个表分区,简称分区(Partition)。某行数据属于且只属于一个分区。分区的规则由用户在建表的时候指定,包括 hash、range、list 等类型的分区,还支持二级分区。例如,交易库中的订单表,可以先按照用户 ID 划分为若干一级分区,再按照月份把每个一级分区划分为若干二级分区。对于二级分区表,第二级的每个子分区是一个物理分区,而第一级分区只是逻辑概念。一个表的若干个分区可以分布在一个区内的多个节点上。

为了能够保护数据,并在节点发生故障的时候不中断服务,每个分区有多个副本。一般来说,一个分区的多个副本分散在多个不同的区里。多个副本中有且只有一个副本接受修改操作,叫作主副本(Leader),其他叫作从副本(Follower)。主从副本之间通过基于 Multi-Paxos 的分布式共识协议实现了副本之间数据的一致性。当主副本所在节点发生故障的时候,一个从节点会被选举为新的主节点并继续提供服务。

预告 :下一篇是内核实战教程第二期|带你揭开数据库存储结构的神秘面纱。

1 个赞

不错哦

教程本周三开启,欢迎加入学习队伍呀 :grin:

1 个赞