数据库MySQL

(备注:这是学习笔记,其中结合了网课及书籍上的知识点,有部分基础的知识点没写入其中,0基础的不推荐看)

第一章数据库系统概述

一.常见的数据库管理系统排名(DBMS):

目前互联网上常见的数据库管理系统软件有Oracle、MySQL、MS SQL Server、PostgreSQL

1.Oracle(甲骨文):成立时间:1977年所在地:美国

简述:全球知名的企业级软件公司,提供数据库、工具和应用软件以及相关的咨询、培训和支持服务。其核心产品“Oracle数据库”是世界上流行的关系数据库管理系统,以高性能、可扩展性、可靠性、安全性、易用性、完整性等优点在业界享有盛誉。

2.MySQL:开发者:瑞典软件公司(后被甲骨文收购)

简述:世界上应用广泛的开源数据库,凭借其久经考验的性能、可靠性和易用性,已成为基于Web的应用程序的领先数据库。

3.SQL Server:开发者:微软集团
简述:著名的关系型数据库管理系统,使用方便,可伸缩性强,与相关软件集成度高,同时也支持跨平台使用。

4.PostgreSQL:简述:一个功能性比较强大的数据库管理软件,以加州大学计算机系开发的软件版本作为基础进行管理,具有着强大的特性。

二.MySQL介绍

1.公司介绍:

MySQL是一个开放源代码的关系型数据库管理系统,由瑞典MySQLAB(创始人MichaelWidenius)公司1995年开发,迅速成为开源数据库的 No.1。
2008被 Sun 收购(10亿美金),2009年Sun被 0racle收购。 MariaDB 应运而生。,(MySQL的创造者担心MySQL有闭源的风险,因此创建了 MySQL的分支项目 MariaDB)。

2.详细介绍

MySQL因其高性能、可扩展性、易用性和开放性等特点,在全球范围内拥有广泛的应用。

技术特点:
1.高性能:MySQL具有快速的读写速度和高效的查询性能,能够处理大量并发连接和大型数据库。其优化的SQL查询算法和多线程支持能够充分利用CPU资源,提高数据处理效率。
2.可扩展性:MySQL支持多种存储引擎,包括InnoDB、MyISAM、Memory等,每个引擎都具有不同的特性和优点,可以根据实际需求进行选择。此外,MySQL还可以扩展到支持数百万个并发连接和大量的数据,满足各种规模的应用需求。
3.安全性:MySQL提供了多种安全功能,包括数据加密、访问控制、身份验证和审计功能等,保障用户数据的安全性和完整性。
4.灵活性:MySQL支持多种操作系统和编程语言,具有强大的API接口,可以与多种应用程序进行集成。此外,MySQL还支持多语言支持,常见的编码如中文的GB 2312、BIG5等都可以用作数据表名和数据列名。

MySQL6.x 版本之后分为 社区版 和 商业版。                                                                                    MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL是开源的,所以你不需要支付额外的费用。
MySQL是可以定制的,采用了GPL(GNU General Public License)协议,你可以修改源码来开发自己的MySQL系统。
MySQL支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为 8TB。
MySQL使用 标准的SQL数据语言 形式。
MySQL可以允许运行于多个系统上,并且支持多种语言。这些编程语言包括c、C++、Python、Java、Perl、PHP和Ruby等。

3.关于MySQL8.0

MySQL从5.7版本直接跳跃发布了8.8版本,可见这是一个举足轻重的里程碑版本。MySQL8.0版本在功能上做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是多MySQL optimizer优化器进行了改进。不仅在速度上得到了改善,还为用户带来了更好的性能和更棒的体验。

4.选择MySQL的原因

1.开放源代码,使用成本低。
2.性能卓越,服务稳定。
3.软件体积小,使用简单,并且易于维护。
4.历史悠久,社区用户非常活跃,遇到问题可以寻求帮助。
5.许多互联网公司在用,经过了时间的验证。

5.Oracle 与 MySQL比较

Oracle适合大型跨国企业使用,因为对价格不敏感,但对性能要求及安全性有更高的要求(贵但安全)

MySQL由于其体积小、速度快、总体拥有成本低,可处理上千万条记录的大型数据库,尤其是开放源码这一特点,使得很多互联网公司、中小型网站选择了MySQL作为网站数据库。

三.RDBMS与非RDBMS

1数据模型:

数据模型是数据库系统的核心和基础,数据模型的发展经历了结构化模型,半结构化模型,OLAP分析模型和大数据模型。

1.1组成要素:

数据模型应满足三方面要求:

一是能比较真实地模拟现实世界。

二是容易为人所理解。

三是便于在计算机上实现。

一种数据模型要很好地、全面地满足这三方面的要求在目前尚很困难。因此,在数据库系统中针对不同的使用对象和应用目的,采用不同的数据模型。在开发实施数据库应用系统中也需要使用不同的数据模型,根据数据库系统设计的不同阶段需要用到概念模型、逻辑模型和物理模型。

概念模型,也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。

逻辑模型主要包括层次模型、网状模型、关系模型(后面会细说)、面向对象数据模型和对象关系数据模型、半构化数据模型等。它是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现。

物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。物理模型的具体实现库管理系统的任务,数据库设计人员要了解和选择物理模型,最终用户不必考虑物理级的细节。

查看数据库最新排名:DB-Engines Ranking - popularity ranking of database management systems

从排名的Database Model中可以看出关系型数据库是DBMS的主流

2.关系型数据库(RDBMS)

2.1概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库

2.2特点:

1.使用表存储数据,格式统一,便于维护

2.使用SQL语言操作,标准统一,使用方便

3.非关系型数据库(NoSQL)

3.1 概念:
非关系型数据库(NoSQL)是一种与传统的关系型数据库(RDBMS)不同的数据存储方式。它不是建立在关系模型基础上,而是采用键值对、列存储、文档、图形等多样化的数据模型来存储和管理数据。

3.2 特点:

1.灵活性:不依赖于预定义的数据模型,允许开发者根据需要自由地定义数据结构。
可以适应各种不同类型的数据,包括半结构化数据,如JSON对象或XML文档。
2.可扩展性:通常具有更好的可扩展性,可以更容易地添加新的数据类型或字段。
支持水平扩展,即通过增加服务器数量来处理更多的数据请求。
3.高性能:通常具有更高的性能,因为它们不依赖于复杂的事务处理机制,能更快地执行查询操作。
采用分布式架构,将数据分散存储在多个节点上,提高数据的读取和写入速度。
4.高可用性:不依赖于单个服务器或数据库实例,可以更容易地实现冗余和备份。
支持自动故障转移和数据复制,确保数据的持久性和可靠性。
5.数据分片存储:基于分布式架构,可以将数据分片存储在多个节点上,提高数据的可用性和冗余度,降低单点故障的风险。
6.低成本:部署简单,基本都是开源软件,硬件和维护成本相对较低。
7.数据类型多样:支持多种数据类型,如键值对、列存储、文档、图形等,满足不同的应用场景需求。
8.适合大数据:特别适合大数据存储和分析,能够方便地存储和处理海量的非结构化或半结构化数据。
9.实时数据处理:分布式架构和高性能特点使得它非常适合处理实时大数据流,如电商网站的实时用户行为跟踪和分析。
10.学习成本:由于不提供SQL支持,对于习惯于关系型数据库的开发者来说,学习和使用成本可能较高。

非关系型数据库在灵活性、可扩展性、高性能、高可用性和成本效益等方面具有显著优势,特别适用于需要处理大量非结构化或半结构化数据、实时数据处理和大数据存储与分析的场景。然而,它们也面临一些挑战,如事务处理支持不完善、数据结构相对复杂和复杂查询方面稍欠等。

                                                          数据库系统关系图示

三.数据库体系结构

1.三级模式:

1.1模式:(只能有一个)

模式(Schema)又称概念模式(ConceptualSchema)或数据库模式(DataBase Schema)

它是数据库中全体数据的总体逻辑描述,用于对数据库逻辑结构和内容所进行的描述,是所有用户的公共数据视图。

模式的主体是数据库的数据模型。它不涉及数据的物理存储细节和硬件环境,也与具体的应用程序及开发工具无关。定义模式时不仅要定义数据的逻辑结构,还要定义数据项之间的联系,不同记录之间的联系,定义与数据有关的安全性,完整性等要求。
DBMS提供模式描述语言(模式DDL)来定义模式。用模式DDL给出的一个数据库逻辑定义的全部语句,构成了该数据库的模式。

1.2外模式:(可以有多个)

外模式(ExternaLSchema)也称为子模式(Subschema)或用户模式。

它是个别用户涉及的数据库的局部逻辑结构描述,是个别用户的数据视图,是与某一应用有关的数据的逻辑麦示。

一个应用程序只能启用一个外模式,一个外模式可被同一用户的若干应用程序使用,不同用户的外模式是不同的(可互相覆盖)。

DBMS提供外模式描述语言(外模式DDL)来定义外模式。用外模式DDL给出的一个用户数据库逻辑定义的全部语句,构成了该数据库的外模式。

1.3内模式:(只能有一个)

内模式(Internal Schema)也称为存储模式。它既定义了数据库中全部数据的物理结构,还定义了数据的存储方法、存取策略等。
DBMS提供内模式描述语言(内模式DDL)来描述和定义内模式。

外模式是模式的逻辑子集,它可以从模式推导出来,模式是各外模式的逻辑汇总,内模式是模式的具体实现。一个数据库可以有多个外模式,而模式和内模式只能有一个。

外模式、模式、内模式这三级模式是对数据库结构的三个抽象级别的描述,它们仅是装配数据库的框架。以外模式为框架装人数据后得到用户数据库,以模式为框架装人数据后得到概念数据库,以内模式为框架装入数据后得到物理数据库。在这三级数据库中,只有物理数据库才真正存在,它是存放在外存上的实际数据,而其他两级数据库在外存上是不存在的,仅存在其结构的描述,但DBMS能够从相应物理数据库中构造出概念数据库和用户数据库,因此,从用户的角度看,认为它们存在。

用户数据库是概念数据库的部分抽取;概念数据库是用户数据库的汇集和综合,又是物理数据库的抽象;物理数据库是概念数据库的具体实现。

设计数据库时,设计者主要考虑的是整个数据库的框架结构,而使用数据库的用户关心的是数据库的内容。数据库的框架是相对稳定的,而数据库的内容是经常变化的。

2.映射模式:

DBMS提供了数据库的二级映像,即外模式/模式映像和模式/内模式映像。

当模式改变时,只要相应改变外模式/模式映像,即可使外模式保持不变;当数据库的存储结构发生改变时,只需要相应改变模式/内模式映像,即可使模式/内模式保持不变。

2.1独立性:

由于数据库管理系统在三级模式之间提供了两级映像,所以保证了数据库系统中的据具有较高独立性。数据独立性是指应用程序与数据库的数据结构之间相互独立,互不响。也就是说,应用程序的任何改动都不会影响数据结构,同样,数据结构的任何改动也不会使应用程序做出相应修改。

数据独立性分为数据的物理独立性和数据的逻辑独立性两个级别:

(1)数据的物理独立性。
当数据库的内模式要修改时,即数据库的物理结构发生变化,由数据库管理员对模式内模式映像做相应的修改使模式尽可能保持不变,从而使外模式和应用程序保持不变。这样,保证了数据与程序的物理独立性,简称为数据的物理独立性。

(2)数据的逻辑独立性。
当数据库的模式要修改时,例如增加新的关系、新的属性或改变属性的数据类型等,由数据库管理员对各个外模式/模式映像做相应的修改使外模式尽可能保持不变。由于应用程序是根据数据的外模式编写的,所以应用程序不必修改,这样,保证了数据与程序的逻辑独立性,简称为数据的逻辑独立性。

  • 18
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值