目录
什么是数据库
客户端-服务器(Client-Server)
数据库分类
MySQL服务器安装
内存和外存
什么是数据库
存储数据用文件就可以了,为什么还要弄个数据库?
文件保存数据有以下几个缺点:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于存储海量数据
- 文件在程序中控制不方便
为了解决上述问题,专家们设计出更加利于管理数据的软件——数据库,它能更有效的管理数据。数据库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。
数据库(Database)是一种结构化数据的集合,以及用于存储、管理、检索和操作这些数据的系统。数据库的存在是为了解决数据存储和管理的各种问题,相对于简单的文件存储,数据库具有以下优点:
- 1. 数据的安全性:数据库系统提供了访问控制和权限管理机制,可以确保只有授权的用户可以访问特定数据。这增强了数据的安全性,防止未经授权的访问和数据泄露。
- 2. 数据查询和管理:数据库系统允许用户使用SQL(Structured Query Language)等查询语言轻松地执行复杂的数据查询操作。这使得数据的检索和管理变得更加灵活和高效。
- 3. 存储海量数据:数据库系统可以轻松处理大量数据,因为它们经过了优化,能够高效地存储和检索海量数据。这对于需要处理大型数据集的应用程序非常重要,如企业级系统和互联网应用。
- 4. 数据的一致性和完整性:数据库系统可以实施数据完整性约束,确保数据的一致性和正确性。这意味着数据在数据库中始终保持有效和可靠。
- 5. 并发控制:数据库系统具有并发控制机制,允许多个用户同时访问数据库而不会导致数据混乱或冲突。这对于多用户环境中的应用程序至关重要。
- 6. 数据备份和恢复:数据库系统提供了备份和恢复功能,以防止数据丢失或损坏。这有助于保护数据的可用性和持久性。
- 7. 数据库服务器:数据库可以部署在服务器上,允许远程连接和服务。这使得多个用户可以通过网络访问和共享数据,促进了协作和数据共享。
总之,数据库系统是一种专门设计用于高效、安全、可管理和可扩展地存储和操作数据的软件。在许多应用程序和业务场景中,使用数据库能够更好地满足数据管理的需求,提高了数据的可用性和可靠性。
客户端-服务器(Client-Server)
你还可以说,MySQL是一个客户端-服务器(Client-Server)架构的数据库管理系统。在这种架构中,客户端和服务器之间通过网络进行通信,实现了多个程序之间的相互作用和协作。
以下是关于MySQL客户端-服务器模型的一些关键概念:
-
客户端(Client): 客户端是主动发起请求的一方,通常是应用程序或工具,它需要与MySQL服务器进行交互来执行数据库操作。客户端负责向服务器发送SQL查询、更新或其他请求。
-
服务器(Server): 服务器是被动接受请求的一方,它运行MySQL数据库管理系统,并等待来自客户端的连接请求。一旦建立连接,服务器会处理客户端的请求,执行相应的数据库操作,并将结果返回给客户端。
-
请求(Request): 请求是客户端发送给服务器的数据,通常是包含SQL查询或其他数据库操作的请求。服务器接收到请求后,会解析并执行其中的操作。
-
响应(Response): 响应是服务器对客户端请求的回应,通常包含查询结果、错误信息或其他相关信息。客户端接收响应后,可以根据需要进行后续处理。
客户端-服务器模型的优点之一是它允许多个客户端同时连接到同一个MySQL服务器,从而实现了多用户的并发访问和操作数据库的能力。这种模型还使得应用程序与数据库之间的分离成为可能,允许不同的应用程序通过相同的服务器与数据库进行交互。
分布式系统也通常采用客户端-服务器架构,这种架构模型在分布式环境中非常常见。在分布式系统中,客户端和服务器之间仍然存在通信和交互,但在这种情况下,客户端和服务器可能分布在不同的物理或虚拟位置,并通过网络进行通信。
分布式系统(Distributed System)是由多个独立的计算机节点或处理单元组成的集合,这些节点通过网络连接在一起,并共同工作以完成特定的、更复杂的任务或提供服务。这些节点可以位于不同的地理位置,彼此之间通过网络通信来协作和共享资源。
数据库分类
数据库可以大致分为关系型数据库(RDBMS)和非关系型数据库(NoSQL数据库),它们在数据组织和存储方式上有很大的区别:
1.关系型数据库(RDBMS):
这种类型的数据库采用了关系模型,将数据组织成二维表格(表)的形式,表之间通过关系(关联键)相互连接。关系型数据库使用SQL(Structured Query Language)进行数据操作和查询。常见的关系型数据库包括:
- Oracle:适合大型企业项目,支持复杂的业务逻辑,如ERP和OA系统。属于商业产品,需要付费使用。
- MySQL:开源的关系型数据库,适用于中小型项目和轻量级应用。免费使用。
- SQL Server:微软的数据库产品,适用于中大型项目,通常在Windows Server上部署。需要购买许可证。
2. 非关系型数据库(NoSQL数据库):
这种类型的数据库不遵循传统的关系模型,通常用于存储大量非结构化或半结构化的数据。NoSQL数据库有多种类型,包括:
- 键值对数据库(Key-Value):使用键值对存储数据,如Memcached和Redis,适用于高速缓存和分布式存储。
- 文档型数据库(Document):存储文档格式的数据,如MongoDB,适用于处理半结构化数据,如JSON或XML。
- 列族数据库(Column-Family):以列族的形式存储数据,如HBase,适用于大规模的分布式数据存储。
- 图数据库(Graph):用于存储图形数据结构,如Neo4j,适用于处理关系密集型数据,如社交网络和推荐系统。
非关系型数据库通常在大数据、实时应用和分布式系统中表现出色,因为它们具有更高的伸缩性和灵活性,能够应对不同类型的数据和工作负载。关系型数据库则更适合需要强一致性和事务支持的应用程序。选择哪种数据库取决于具体的应用需求和数据特点。
MySQL服务器安装
你需要安装的是MySQL服务器和客户端。
服务器才是真正的本体,是存储数据的部分。客户端的话都可以,我自己用的是官方客户端(自带命令行客户端),你想用第三方的客户端也可以。
MySQL的最新版本是8.0系列,但是我建议安装5.0系列的(5.6、5.7……都无所谓),因为最新的版本不一定是最好的,可能有些bug。
区区安装这种小事我想应该难不住你。安装教程和视频某站上一搜一大把,我就不多提了……
安装好了之后是这样的:
确保你的服务器是在正常工作了:
命令行客户端:
建议你选择下面那个,因为这两个编码方式不一样,下面那个使用的是utf-8编码。
如果你找不到你的客户端,可以找找MySQL的安装目录:
把这个目录复制,粘贴,打开:
找到mysql.exe,但是不要双击,一双击就会闪退。
打开CMD,把它拖过来,输入相关指令,然后再输入密码:
这个密码是你在安装数据库服务器的时候设置的。
如果闪退了,要么服务器没有正常工作,要么就是你的密码输入错误。不要用太复杂的密码,你的数据库非常安全,我想应该没有黑客想要盗取你的数据库吧……
就OK了。
每次从客户端登录都要输密码的。
然后刚刚提到的那个“ "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe" "--defaults-file=C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" "-uroot" "-p" "--default-character-set=utf8" ” 上述这串命令其实就是运行快捷方式。
内存和外存
我们之前提到,MySQL的本体是服务器,在服务器这边来负责存储和管理数据。
那么它是把数据具体存储在那个设备上呢?
MySQL数据库通常将数据存储在硬盘驱动器(Hard Disk Drive,HDD)或固态硬盘(Solid State Drive,SSD)上。这些存储设备是永久性的,用于持久化地存储数据库的数据。
-
HDD(硬盘驱动器): 传统的机械硬盘驱动器使用旋转磁盘来存储数据,速度相对较慢。它们适合存储大容量的数据,但对于需要快速随机访问的数据库操作来说,性能可能有限。
-
SSD(固态硬盘): 固态硬盘使用闪存存储数据,速度非常快,对于随机访问非常高效。因此,SSD通常用于需要更快读写速度的数据库应用,能够提供更好的性能。
生活中的硬盘、U盘、软盘、光盘其实都算外存。而且如果一个人和你说:“我这个手机是256G内存的!”,实际上这里的内存并不是真正的内存,而是硬盘。手机真正的内存是“运存”。
既然提到外存,那肯定也要了解一下内存咯~
内存(RAM)和硬盘(硬盘驱动器)是计算机中两种不同类型的存储设备,它们在功能和性能方面有着显著的区别。下面是内存和硬盘的主要区别:
内存(RAM - Random Access Memory):
-
功能: 内存是计算机用于存储正在运行的程序和数据的临时存储设备。它用于存储当前正在执行的应用程序的代码和数据,以便CPU可以快速访问并执行它们。
-
速度: 内存的访问速度非常快,几乎是瞬间级别。这使得它非常适合用于暂时存储需要快速访问的数据。
-
临时性: 内存中存储的数据是临时的,通常在计算机关机或重启时会被清除。它不是永久存储设备。
-
容量: 内存容量通常相对较小,以GB为单位。它的主要任务是支持当前运行的任务。
硬盘(Hard Disk Drive):
-
功能: 硬盘是用于永久性存储数据的设备。它可以存储操作系统、应用程序、文档、多媒体文件等数据,并在计算机关闭时保持数据的持久性。
-
速度: 硬盘的访问速度比内存慢得多,通常以毫秒为单位。尽管较新的固态硬盘(SSD)比传统机械硬盘速度更快,但仍然较内存慢。
-
持久性: 硬盘中存储的数据是持久的,不会因计算机关机而丢失。
-
容量: 硬盘的容量通常远大于内存,以TB(千兆字节)为单位,用于存储大量数据。
关于手机内存和存储的区别,你提到的是正确的。手机通常会有两种存储设备:
-
运行内存(RAM): 也称为手机的内存,用于暂时存储当前运行的应用程序和数据,以便CPU快速访问。它的容量通常以GB为单位。
-
存储(Storage): 存储是用于永久性存储数据、操作系统、应用程序和文件的设备,通常是硬盘或闪存。它的容量可以非常大,通常以GB或TB为单位。