HERO联盟知识学堂第一期——数据库工程师进阶之路——化繁为简,从“新”开始——LV1(一)未完
本文是对华为云Hero联盟知识学堂第一期的知识点整理与汇总
HCIA-GaussDB课程安排
数据库介绍
数据库技术概述
内容要点:
详细讲解了DATA、DB、DBS和DBMS的基本概念;
讲解了存放在数据库中数据的特点有:永久存储、有组织、可共享;
介绍了属于数据库系统这个概念范围的组成部分有数据库管理系统、数据库、应用开发工具、应用程序。
数据库技术:数据库技术是数据库管理的有效技术,研究如何对数据进行科学管理,从而为人们提供可共享的、安全的、可靠的数据
DATA:数据
DB:Database 数据库
DBMS:DataBase Management System 数据库管理系统
DBS:DataBase System 数据库系统
数据(Data)
数据除了数值外,还有数据的含义,称为数据的语义。
记录
记录是在计算机中表示和存储数据的一种格式或一种方法。
数据库(Database,DB)
数据库是存放数据的仓库,是大量数据的集合。
数据库中数据的特点:永久存储、有组织、可共享
数据库管理系统(DBMS)
DBMS是一个能够科学地组织和存储数据,从而高效地获取和维护数据的系统软件,是位于用户和操作系统之间的数据管理软件,主要功能有:
- 数据定义功能
- 数据组织、存储和管理功能
- 数据操纵功能
- 数据库的事务管理和运行管理功能
- 数据库的建立和维护功能
- 与其他软件系统的通信功能
数据库系统(Database System,DBS)
数据库系统由数据库(DB)、数据库管理系统(DBS及其应用开发工具)、应用程序和数据库管理员(DBA) 组成的存储、管理、处理和维护数据的系统
数据库技术发展史
内容要点:
详细讲解了层次、网状、关系三种模型和结构化查询语言SQL语句;
讲解了的键值数据库Redis、列式数据库HBase、文档数据库MongoDB、图文数据库Graph等;
介绍了云数据库的发展趋势及相较传统数据库的易、稳、快、弹、密等特性。
数据库技术因数据管理任务的需要而产生
数据管理的发展
- 应用需求推动
- 软硬件的飞速发展为基础
- 三个阶段:人工管理、文件系统、数据库系统
角度 | 层面/阶段 | 人工管理阶段 | 文件系统阶段 | 数据库系统阶段 |
---|---|---|---|---|
背景 | 应用背景 | 科学计算 | 科学计算、数据管理 | 大规模数据管理 |
硬件背景 | 无直接存取存储设备 | 磁盘、磁鼓 | 大容量磁盘,磁盘阵列 | |
软件背景 | 无操作系统 | 有文件系统 | 有数据库管理系统 | |
处理方式 | 批处理 | 联机实时处理,批处理 | 联机实时处理,分布处理,批处理 | |
特点 | 数据管理者 | 用户(程序员) | 文件系统 | 数据库管理系统 |
数据面向的对象 | 某一应用程序 | 应用程序 | 现实世界(个人,部门,企业等) | |
数据的共享程度 | 无共享,冗余度大 | 共享性差,冗余度大 | 共享性高,冗余度小 | |
数据的独立性 | 不独立,完全依赖于程序 | 独立性差 | 具有高度的物理独立性和一定的逻辑独立性 | |
数据的结构化 | 无结构 | 记录内有结构,整体无结构 | 整体结构化,用数据模型描述 | |
数据控制能力 | 应用程序控制 | 应用程序控制 | 有数据库管理系统提供数据安全性、完整性、并发控制和恢复能力 |
数据库系统优势
- 整体数据结构化
- 数据面向整个系统而不是单个应用,被多个应用共享
- 数据的共享性高,冗余度低且易扩充
- 数据独立性高
- 物理独立性:应用程序与数据库中数据的物理存储是相互独立的
- 逻辑独立性:应用程序与数据库的逻辑结构是相互独立的
- 统一管理和控制
- 数据的安全性保护
- 数据的完整性检查
- 并发控制
- 数据库恢复
数据库系统发展特点
- 数据库的发展集中表现在数据模型的发展上
- 与其它计算机技术交叉结合
- 面向应用领域发展数据库新技术
层次,网状,关系模型
- 层次模型(本质是树)
- 有且只有一个节点没有双亲,该结点被称为根节点(root)
- 根节点以外的其他节点有且只有一个双亲节点
- 网状模型(本质是图/网)
- 允许一个以上的节点无双亲
- 一个节点可以有多于一个的双亲
- 关系模型(本质是一张二维表)
- 建立在严格的数据概念基础上
- 关系必须是规范化的
- 关系的分量必须是一个不可分的数据项
模型对比
特点 | 层次模型 | 网状模型 | 关系模型 |
---|---|---|---|
数据结构 | 格式化模型,树形结构简单清晰 | 格式化模型 | 符合规范的模型要求 |
数据操作 | 没有双亲节点,不能插入子女节点;删除双亲节点时,子女节点同时被删除 | 增加和删除节点时,也要在双亲节点中增加或删除相应的信息(如指针) | 数据的操作都是集合操作,操作对象和结果都是关系,数据操作必须满足关系的完整性约束 |
数据联系 | 存取路径反映了数据之间的联系 | 存取路径反映了数据之间的联系 | 通过关系反映数据之间的联系 |
优点 | 数据结构简单清晰;查询效率高;提供良好的完整性支持 | 能够更为直接地描述现实世界,可以反映多对多关系;具有良好的性能,存取效率较高 | 建立在严格的数学理论基础上;概念单一,用关系来表示实体和实体之间的联系;存取路径对用户透明,具有更高的独立性和保密性;简化程序员的开发工作 |
不足 | 现实世界很多非层次性联系,不适合用层次模型表示;表达多对多的时候产生很多数据冗余;结构严密,层次命令程序化 | 结构复杂,随着应用扩大,结构会变得极为复杂;对象定义和操作语言复杂,需要嵌入高级语言(COBOL,C),用户不易掌握,不易使用;存在多种路径,用户必须了解系统结构细节,增加编写代码负担 | 存取路径的隐蔽导致查询效率不如格式化数据模型;需要对用户的查询进行优化 |
结构化查询语言(SQL,Structed Query Language)
- 高级的非过程化编程语言,允许用户在高层数据结构上工作
- 不要求用户指定数据存放方法
- 不需要用户了解具体数据存放方式
- 底层结构完全不同的各类关系型数据库可以使用相同的SQL语言作为数据操作和管理的接口
其他数据模型
- 面向对象数据模型(Object Oriented Data Model, OO模型):过于复杂,没有得到开发人员认可
- XML数据模型
- RDF数据模型
数据管理技术的新挑战
5V特性:Volume(数量)、Variety(多样性)、Value(价值)、Velocity(速度)、Veracity(真实性)
管理需求:高可扩展性、高性能、容错性、高伸缩性
NoSQL技术特点和类型
NoSql(Not Only SQL)非关系型、分布式、不保证满足ACID特性的一类数据管理系统。
常见NoSQL数据库:
- Key-Value键值数据库
- Graph图数据库
- Column Family列式数据库
- Document文档数据库
分类 | 代表产品 | 典型应用场景 | 数据模型 | 优点 | 限制性 |
---|---|---|---|---|---|
键值数据库 | Redis、MemCahed | 缓存用户信息,会话信息,配置文件,购物车等 | Key指向Value,通常基于Hash table实现 | 查找速度快 | 数据无结构化,字符串或者二进制数据 |
列式数据库 | HBase、Cassandra | 日志、博客平台 | 列族式存储 | 查找速度快,课容易分布式扩展 | 不适合随机更新,不适合做有删除和更新的实时操作 |
文档型数据库 | DouchDB、MongoDB | 日志,可以存储不同模式的日志信息。基于弱模式的数据分析 | 和K-V类似,Value的数据结构要求不严格,无需预先定义表结构 | 表结构可变,扩展性好,适合非结构化对象,有些产品不支持事务操作 | |
图数据库 | Neo4j、 Infinite、Graph | 推荐引擎、关系图谱 | 图结构 | 借助图论算法处理特定领域问题 | 非图领域的应用受限 |
NoSQL不是为了取代DRBMS
- 优势显著,缺点也较明显
- 与RDBMS一起构建完整的数据库生态系统
NewSQL浅谈
NewSQL:指追求NoSQL的可扩展性同时能够支持关系模型(包括ACID特性)的关系型数据库系统,主要面向OLTP场景,能够支持SQL作为主要的使用语言。
分类:
- 采用了新架构重新构建产品
- 采用Transparent Sharding中间件技术
- DAAS(Database-as-a-Service,数据库即服务)
云数据库:指被优化部署到一个虚拟计算环境中的数据库
2020年,华为推出了云数据库GaussDB
传统数据库VS云数据库
传统数据库 | 云数据库 | |
---|---|---|
建设和运维成本高 | 易使用易管理,业务敏捷上线 | 易 |
扩展不灵活 | 高可靠,业务零中断,跨地域容灾备份 | 稳 |
性能冗余 | 数据读写时延低,快速响应业务需求 | 快 |
资源隔离差 | 扩展性好,快速自动弹性伸缩 | 弹 |
集成性能差 | 数据安全性好,全同态加密 | 密 |
关系型数据库架构介绍
关系型数据库主流应用场景
数据库基础知识
数据库管理简介
数据库重要概念
SQL语法入门
SQL语句概述
数据类型
系统函数
操作符
SQL语法分类
数据查询
数据操作
数据定义
数据控制
其他
数据库安全基础
数据库安全功能总览
访问控制
用户权限管理
CTS审计
数据库开发环境
GaussDB数据库驱动
数据库工具
客户端工具
数据库设计基础
数据库设计概述
需求分析
概念设计
逻辑设计
物理设计
数据库设计案例
华为GaussDB数据库
华为GaussDB数据库总览
关系型数据库产品介绍
NoSQL数据库产品介绍
- 点赞
- 收藏
- 关注作者
评论(0)