数据库初识

【1.0】数据库初识

【一】存储数据的演变过程

【1】文件存储

  • 在早期,随意地存放到一个文件中、数据格式也是千差万别的,完全取决于个人

【2】软件开发目录规范

(1)概要

  • 限制了存储数据的具体位置

  • 建立专门的文件夹存储数据

(2)软件开发目录规范

  • bin:主要存放主程序文件,例如main.py;

  • conf:主要存放配置文件,例如settings.py;

  • lib:主要存放公用函数或类库,例如common.py;

  • core:主要存放核心模块代码,例如src.py;

  • interface:主要存放用户界面代码,例如interface.py;

  • db:主要存放数据库模块和操作脚本,例如moduls.py和db_hander.py;

  • log:主要存放日志文件,例如logs.log;

  • README.md:主要存放项目说明文档。

(3)数据存储在本地

  • 假设上面是一个游戏

  • 每一个人的游戏数据只会保存在本地

  • 注册登录账号也只能在本地有效

(4)单机变成联网

  • 然而,在现代互联网环境下,单机模式已经不能满足需求,需要将数据库服务端建立起来,将数据库保存部分统一到一个位置。

  • 所有的数据操作都会经过这个总的数据库。

  • 这样不仅可以实现数据共享,还可以保证数据的安全性和稳定性。

  • 同时,也可以通过增加服务器集群等方式,提高系统的性能和可扩展性。

【二】数据库的本质

  • 数据库其实就是一块基于网络通信的应用程序

  • 每个人都有开发一块数据库的能力

【三】数据库的介绍

【1】关系型数据库

  • MySQL

  • Oracle

  • db2

  • access

  • sql server

这些数据库都采用关系模型来组织数据,并且支持SQL查询语言。

【2】非关系型数据库

  • Redis

  • MongoDB

  • Memcached

这些数据库不采用关系模型来组织数据,而是采用了其他的模型,例如键值对模型、文档模型、图形模型等。

【3】关系型(存储数据)

  • 彼此之间有关联

  • 存储数据的表型形式通常以表格形式存储

  • 每个字段限制每个字段下的存储数据的格式例如字符串、数字、日期等。

  • 同时,关系型数据库还支持各种数据操作,例如插入、删除、更新和查询等。

【4】非关系型(缓存数据)

  • 存储数据通常是K:V形式存储数据

  • 非关系型数据库通常用于存储临时性的、高速访问的数据,这些数据通常以键值对的形式存储,其中“键”表示数据的唯一标识,“值”表示实际的数据内容。

  • 由于非关系型数据库通常不提供事务支持和复杂的查询功能,因此不适合存储长期保存的历史数据。

【四】数据库的应用场景

【1】需求

  • 假设现在你已经是某大型互联网公司的高级程序员,让你写一个火车票购票系统,来hold住十一期间全国的购票需求,你怎么写?

  • 在同一时段抢票的人数如果太多,那么你的程序不可能运行在一台机器上,应该是多台机器一起分担用户的购票请求。

【2】实现需求

  • 那么问题就来了,票务信息的数据存在哪里?存在文件里么?

  • 如果存储在文件里,那么存储在哪一台机器上呢?是每台机器上都存储一份么?

    • 首先,如果其中一台机器上卖出的票另外两台机器是感知不到的,

    • 其次,如果我们将数据和程序放在同一个机器上,如果程序和数据有一个出了问题都会导致整个服务不可用。

    • 最后,操作或修改文件中的内容对python代码来说是一件很麻烦的事。

  • 基于上面这些问题,单纯的将数据存储在和程序同一台机器上的文件中是非常不明智的。

  • 根据上面的例子,我们可以知道,将文件和程序存在一台机器上是很不合理的,同时,操作文件是一件很麻烦的事,所以我们可以使用数据库来存储数据。

【2.0】SQL语句介绍

【一】SQL语句的由来

【1】socket通信

  • 任何基于网络通信的应用程序底层用的都是scoket

    • 服务端

      • 基于socket通信

      • 收发消息

    • 客户端

      • 基于socket通信

      • 收发消息

【2】SQL语句的由来

  • 为了使 MySQL 不仅能支持 MySQL 自己的客户端应用程序,还能支持其他编程语言

  • MySQL 采用了 SQL 作为统一的语言来进行数据操作。

  • 这样就可以让服务器端兼容所有语言,因为所有的客户端应用程序都可以通过执行相同的 SQL 语句来进行数据操作。

【二】库/表/记录/表头/表单

【1】库(Database)

  • 库是指在数据库管理系统中用于存储和组织数据的容器。

  • 它可以视为一个文件夹,用于存放相关的数据表。 数据库中可以包含多个库,每个库可以包含多个表。

【2】 表(Table)

  • 表是数据库中的一个基本组成单位,用于存储和展示数据。

  • 表由行(记录)和列(字段)组成,每一行表示一个记录,每一列表示一个字段,通过为一个的行列坐标可以定位到唯一的数据

  • 表可以看作是一个二维数据结构,类似于电子表格。

【3】记录(Record)

  • 记录也称作行,是表中的一个数据项或实体。

  • 每一行都代表了一个完整的数据记录,其中包含了各个字段的具体数值或信息。

  • 例如,在一个学生信息表中,每一行代表一个学生的具体信息。

【4】表头(Header)

  • 表头是表中的第一行,用于描述每个列字段的含义或名称

  • 表头通常包含了列的标签或标题,通过表头可以了解每个列字段锁代表的意义,方便数据的理解和查询

【5】表单(Form)

  • 表单是一种用来收集和展示数据的解码形式,常见于数据输入和显示的场景中

  • 表单通常包含了各种输入字段(例如文本框、下拉列表等)和相关的操作按钮,用户可以通过表单进行数据的录入、编辑和提交等操作

  • 表单的数据库被存储到相应的表中,用于后续的数据处理和分析

【6】小结

  • 库:

    • 相当于我们的文件夹

  • 表:

    • 相当于我们的文件

  • 记录:

    • 相当于我们一行行的数据

  • 表头:

    • 表格的第一行字段

  • 表单:

    • 表头对应的每一条数据

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值