首页 > 数据库 >【一】MySQL数据库之引入

【一】MySQL数据库之引入

时间:2023-06-30 20:46:01浏览次数:34  
标签:文件 机器 数据库 组件 MySQL 引入 数据

【一】MySQL数据库之引入

【一】数据库管理软件的由来

  • 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上。

  • 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题。

  • 很不幸,这些假设都是你自己想象出来的,上述假设存在以下几个问题

【1】程序所有的组件就不可能运行在一台机器上

  • 因为这台机器一旦崩溃则意味着整个软件的崩溃,并且程序的执行效率依赖于承载它的硬件
    • 而一台机器的性能总归是有限的,受限于目前的硬件水平,就一台机器的性能垂直进行扩展是有极限的。
  • 于是我们只能通过水平扩展来增强我们系统的整体性能
    • 这就需要我们将程序的各个组件分布于多台机器去执行。

【2】数据安全问题

  • 根据1.1中的描述,我们将程序的各个组件分布到各台机器
    • 但需知各组件仍然是一个整体
    • 言外之意,所有组件的数据还是要共享的。
    • 但每台机器上的组件都只能操作本机的文件,这就导致了数据必然不一致。
  • 于是我们想到了将数据与应用程序分离:
    • 把文件存放于一台机器,然后将多台机器通过网络去访问这台机器上的文件(用socket实现)
    • 即共享这台机器上的文件
    • 共享则意味着竞争,会发生数据不安全,需要加锁处理。。。。

【3】并发

  • 根据上述的描述
    • 我们必须写一个socket服务端来管理这台机器(数据库服务器)上的文件
    • 然后写一个socket客户端,完成如下功能:
1.远程连接(支持并发)
2.打开文件
3.读写(加锁)
4.关闭文件

【4】总结

  • 我们在编写任何程序之前,都需要事先写好基于网络操作一台主机上文件的程序(socket服务端与客户端程序)
  • 于是有人将此类程序写成一个专门的处理软件,这就是MySQL等数据库管理软件的由来
  • 但MySQL解决的不仅仅是数据共享的问题
  • 还有查询效率,安全性等一系列问题
  • 总之,把程序员从数据管理中解脱出来,专注于自己的程序逻辑的编写。

【二】数据库概述

【1】什么是数据(Data)

  • 描述事物的符号记录称为数据
    • 描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等
    • 数据由多种表现形式,它们都可以经过数字化后存入计算机
  • 在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如:
dream,male,18,2001,北京,计算机系,2023,school
  • 单纯的一条记录并没有任何意义
    • 如果我们按逗号作为分隔
    • 依次定义各个字段的意思
    • 相当于定义表的标题
# 字段
name, sex,age,birth,born,addr,major,entrance_time,school 

# 记录
dream,male,18,2001,北京,计算机系,2023,school  

【2】什么是数据库(Database,简称DB)

  • 数据库即存放数据的仓库
    • 只不过这个仓库是在计算机存储设备上
    • 而且数据是按一定的格式存放的
  • 过去人们将数据存放在文件柜里
    • 现在数据量庞大,已经不再适用
  • 数据库是长期存放在计算机内、有组织、可共享的数据即可。
  • 数据库中的数据按一定的数据模型组织、描述和储存
    • 具有较小的冗余度、较高的数据独立性和易扩展性
    • 并可为各种 用户共享

【3】什么是数据库管理系统(Database Management System 简称DBMS)

  • 在了解了Data与DB的概念后
    • 如何科学地组织和存储数据
    • 如何高效获取和维护数据成了关键
  • 这就用到了一个系统软件—数据库管理系统
    • 如MySQL、Oracle、SQLite、Access、MS SQL Server
  • MySQL主要用于大型门户,它主要的优势就是开放源代码
    • 因为开放源代码,这个数据库是免费的
    • 他现在是甲骨文公司的产品。
  • oracle主要用于银行、铁路、飞机场等。
    • 该数据库功能强大,软件费用高。
    • 也是甲骨文公司的产品。
  • SQL server是微软公司的产品
    • 主要应用于大中型企业,如联想、方正等。

【4】数据库服务器、数据管理系统、数据库、表与记录的关系(重点)

记录:1 张三 324245234 22(多个字段的信息组成一条记录,即文件中的一行内容)

  • 表:
    • student,school,class_list(即文件)
  • 数据库:
    • oldboy_stu(即文件夹)
  • 数据库管理系统:
    • 如MySQL(是一个软件)
  • 数据库服务器:
    • 一台计算机(对内存要求比较高)

总结:

数据库服务器 运行数据库管理软件
数据库管理软件 管理数据库
数据库 文件夹,用来组织文件/表
即文件,用来存放多行内容/多条记录

【三】MySQL介绍

  • MySQL是一个关系型数据库管理系统
    • 由瑞典MySQL AB 公司开发
    • 目前属于 Oracle 旗下公司。
  • MySQL 最流行的关系型数据库管理系统
    • 在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System
    • 关系数据库管理系统) 应用软件之一。

【四】MySQL是什么

MySQL就是一个基于socket编写的C/S架构的软件

  • 客户端软件
    • MySQL自带:
      • 如MySQL命令,MySQL dump命令等
    • python模块:
      • 如pymysql

数据库管理软件分类

  • 分两大类:
    • 关系型:
      • 如sqllite,db2,oracle,access,sql server,MySQL
      • 注意:sql语句通用
    • 非关系型:
      • mongodb,redis,memcached

关系型数据库与非关系型数据库的联系

  • 关系型数据库需要有表结构
  • 非关系型数据库是key-value存储的,没有表结构

标签:文件,机器,数据库,组件,MySQL,引入,数据
From: https://www.cnblogs.com/dream-ze/p/17517767.html

相关文章

  • 【二】MySQL数据库之下载安装
    【二】MySQL数据库之下载安装【1】Window系统(1)安装1、下载MySQLCommunityServer5.7.16http://dev.mysql.com/downloads/mysql/2、解压如果想要让MySQL安装在指定目录那么就将解压后的文件夹移动到指定目录如:C:\mysql-5.7.16-winx643、添加环境变量【右键......
  • 【四】MySQL数据库之MySQL语句初识
    【四】MySQL数据库之MySQL语句初识有了mysql这个数据库软件就可以将程序员从对数据的管理中解脱出来专注于对程序逻辑的编写mysql服务端软件即mysqld帮我们管理好文件夹以及文件前提是作为使用者的我们需要下载mysql的客户端或者其他模块来连接到mysqld然后使用mys......
  • 【三】MySQL数据库之MySQL软件基本管理
    【三】MySQL数据库之MySQL软件基本管理关于Linux版本的基本管理与破解密码详情:【1】登录,设置密码(1)初始状态下,管理员root,密码为空,默认只允许从本机登录localhost(2)设置密码[root@egon~]#mysqladmin-urootpassword"123"(3)设置初始密码由于原密码为空,因此-p可以......
  • 【五】MySQL数据库之库相关操作
    【五】MySQL数据库之库相关操作库相关操作【一】系统数据库information_schema:虚拟库不占用磁盘空间存储的是数据库启动后的一些参数如用户表信息、列信息、权限信息、字符信息等performance_schema:MySQL5.5开始新增一个数据库:主要用于收集数据库服务器性能参数......
  • 【七】MySQL数据库之记录相关操作
    【七】MySQL数据库之记录相关操作记录相关操作【一】介绍MySQL数据操作:DML在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括使用INSERT实现数据的插入UPDATE实现数据的更新使用DELETE实现数据的删除使用SELECT查询数据以及。本节内容包括:......
  • 【八】MySQL数据库之数据库IDE与pymysql模块
    【八】MySQL数据库之数据库IDE与pymysql模块数据库IDE与pymysql模块【一】IDE工具介绍生产环境还是推荐使用mysql命令行但为了方便我们测试可以使用IDE工具在此我们推荐使用Navicat软件或pycharm来连接数据库这样就能更详细直观地查询数据掌握:#1.测试+链接数据......
  • mysql什么时候会行锁升级为表锁(转)
    行锁升级为表锁总所周知,MySQL的InnoDB存储引擎支持事务,支持行级锁(InnoDB的行锁是通过给索引项加锁实现的)。得益于这些特性,数据库支持高并发。如果InnoDB更新数据使用的不是行锁,而是表锁呢?是的,InnoDB其实很容易就升级为表锁,届时并发性将大打折扣了。常用的索引有三类:主键......
  • Mysql基础篇(二)之函数和约束
    一.函数Mysql中的函数主要分为四类:字符串函数、数值函数、日期函数、流程函数1.字符串函数常用函数如下:函数功能CONCAT(S1,S2,......Sn)字符串拼接,将S1,S2,.....Sn拼接成一个字符串LOWER(str)将字符串str全部转为小写UPPER(str)将字符串str全部转为大写......
  • MySQL分区表各个分区如何创建在不同目录
     MySQL分区表各个分区如何创建在不同目录 分区表无法创建在共享表空间(系统表空间,通用表空间),只能放在不同的独立表空间上。以下是分区表不同分区放在不同目录的示例:CREATETABLEzkm.employees(idINTNOTNULL,fnameVARCHAR(30),lnameVARCHAR(30),......
  • MySQLINNODB表空间分类简单介绍
     MySQLINNODB表空间分类简单介绍 从功能上看INNODB表空间共以下几种:系统表空间File-Per-Table表空间通用表空间Undo表空间临时表空间 从共享与否角度看上边提到的五种表空间可以这么归类。共享表空间独立表空间官档中有明确提到“共享表空间”这个说法:http......