对于大型互联网公司来说,数据的重要性可能比软件本身更重要。据说淘宝业务系统的开发大概消耗约7000万人民币,而其保存的用户数据的价值远高于此,加上数据分析算法的加持,其产生的价值和收益无疑是巨大的,远远超过静态的程序。

2、数据如何存储?

主流的操作系统都是基于文件的操作系统,Linux 下那句著名的“Linux 一切皆文件”更能说明这一点,所以数据的也是使用文件进行存储。

3、为什么使用数据库管理数据?

例如:可以使用 json 文件保存员工信息:

[
{"name":"张三", "age":25, "salary":5000, "dept": "dev"},
{"name":"李四", "age":24, "salary":7000, "dept": "dev"},
{"name":"王五", "age":35, "salary":15000, "dept": "dev"},
{"name":"赵六", "age":25, "salary":4000, "dept": "test"},
]

对于关系简单、数量小的数据可使用普通文件存储。而当存储数据量大、关系复杂的数据时,数据检索效率太低。例如无法进行条件查询和多表的关联查询数据等,这时就得借助专业的数据库软件。

4、什么是数据库管理系统?

数据库系统(DBMS)是指一个能为用户提供信息服务的系统。

5、什么是关系型数据库?

  • 关系型数据库系统(RDBMS)指使用了关系模型的数据库系统
  • 关系模型中,数据分类存放在不同表中,数据之间可以有联系

6、什么是非关系型数据库?

非关系型数据库又称NoSQL,也是数据分类存放,但数据之间没有关联关系。

7、为什么要使用NoSQL数据库?

NoSQL数据库是关系型数据库的补充,典型应用场景如秒杀库存,关系型数据库使用多线程访问,容易出现超卖等很难处理的问题,而Redis数据库使用单线程,就解决的超卖的问题;还有关系型数据库使用前需要先建立表结构,定义约束等,在高速写入时效率较低,对于海量的低价值数据,会极大降低数据库的处理效率,如登录信息、通知消息等就很适合保存在NoSQL中,NoSQL没有表结构,数据读写没什么校验,读写效率远超关系型数据库。

8、常用NoSQL数据库及使用场景

  • MongoDB:保存新闻或较长的文章字符串等
  • Redis:保存秒杀抢购的商品、热点微博信息等

关于数据库范式

构造数据库需要遵循一定的规则,这种规则就是范式。目前关系型数据库有6种范式,一般只需满足第三范式即可。

第一范式:原子性

数据表的每一列都是不可分割的基本数据项,同一列中不能有多个值,也不能存在重复属性。

如下数据表不符合第一范式:

student_id name class
1001 张三 一年级三班

修改后:

student_id name grade class
1001 张三 一年级 三班

第一范式是数据库的基本要求,不满足第一范式就不是关系型数据库。

第二范式:唯一性

数据表中的每一条记录必须是唯一的的,通常使用添加主键作为唯一标识。

如下数据不符合第二范式:张三同一天考了两次试,无法区分两次记录

student_id name exam_time
1001 张三 2021-02-15
1001 张三 2021-02-15

修改后:

id student_id name exam_time
1 1001 张三 2021-02-15
2 1001 张三 2021-02-15

第二范式的提出是为了避免保存重复数据,浪费空间。

第三范式:关联性

每列都与主键有直接关系,不存在传递依赖。

如下数据不符合第三范式:

class name english_score math_score
三班 张三 90 100

修改后:

class name student_id
三班 张三 1001
student_id english_score math_score
1001 90 100

当满足了第三范式之后,就同时满足了第一和第二范式

按照第三范式创建数据表,将来检索和提取数据时会很方便。按照第三范式,数据可以拆分保存到不同的数据表,彼此保持关联。

MySQL:初识数据库的更多相关文章

  1. Mysql初识数据库《五》初识sql语句

    初识sql语句 有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写 mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要 ...

  2. mysql 初识数据库

    一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件 ...

  3. mysql 初识数据库 目录

    数据库管理软件的由来 数据库概述 MySQL介绍 Window版本 安装mysql linux 安装mysql yum方式 windows平台mysql密码设置 windows平台mysql密码破解设 ...

  4. Mysql初识数据库《四》mysql安装与基本管理

    一.MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是 ...

  5. Mysql初识数据库《三》数据库概述

    1 什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机 在计算机中描述一个事物 ...

  6. Mysql初识数据库《二》数据库管理软件的由来

    数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运 ...

  7. MySQL初识数据库

    为什要用数据库 第一,将文件和程序存在一台机器上是很不合理的. 第二,操作文件是一件很麻烦的事 你可以理解为 数据库 是一个可以在一台机器上独立工作的,并且可以给我们提供高效.便捷的方式对数据进行增删 ...

  8. Mysql初识数据库《一》下载安装Mysql

    #1.下载:MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/ #2.解压 如果想要让MySQL安装在指定目录,那么 ...

  9. Mysql(一):初识数据库

    一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件 ...

  10. 第一章 初识数据库Mysql

    初识数据库Mysql(my)   在企业中 percona: 一.数据库基础知识 Mysql是一个开放源代码的数据库管理系统(DBMS),它是由Mysql AB公司开发.发布并支持的.Mysql是一个 ...

随机推荐

  1. D - LOL UVALive - 8521 (状压dp)

    https://nanti.jisuanke.com/t/A1616 思路:dp[i][j]表示前i列里面选了情况j有多少种组合方案 #include<bits/stdc++.h> usi ...

  2. 【hdu 1576】A/B(数论--拓展欧几里德 求逆元 模版题)

    题意:给出 A%9973 和 B,求(A/B)%9973的值. 解法:拓展欧几里德求逆元.由于同余的性质只有在 * 和 + 的情况下一直成立,我们要把 /B 转化为 *B-1,也就是求逆元. 对于 B ...

  3. c语言实现--带头结点单链表操作

    可能是顺序表研究的细致了一点,单链表操作一下子就实现了.这里先实现带头结点的单链表操作. 大概有以下知识点. 1;结点:结点就是单链表中研究的数据元素,结点中存储数据的部分称为数据域,存储直接后继地址 ...

  4. UVA - 12295 最短路(迪杰斯特拉)——求按对称路线最短路条数

    题意: 给你一个n,然后给你一个n*n的正方形w[i][j],你需要找到一个从(1,1)点走到(n,n)点的最短路径数量.而且这个路径必须按照y=x对称 题解: 我们把左上角的点当作(0,0)点,右下 ...

  5. PowerShell随笔10---Module

    我们总不能把所有脚本文件零散的放着,就像创建一个项目一样,我们创建一个Module. 创建好之后如何让系统认识我们创建的Module呢,我们需要放在指定的位置. 那到底应该放在什么位置呢? 我们可以通 ...

  6. ElasticSearch入门到筋痛

    1. 什么是ES ES中文网:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html ES:是一款基于Lucene ...

  7. markdown 公式编写及不同平台公式转换

    1.markdown 用法及公式编写,这块就不再重复,已有很多官方平台的文档说明很完善 有道云markdown写作文档 在博客园中插入公式 markdown公式输入(特殊符号) markdown 特殊 ...

  8. DCL 数据控制语言

    目录 授予权限(GRANT) 回收权限(REVOTE) 授予权限(GRANT) # 语法 mysql> help grant; Name: 'GRANT' Description: Syntax ...

  9. std::invoke_result的实现详解

    目录 目录 前言 invoke_result 标准库中的invoke_result 我的实现 后记 前言 本篇博文将详细介绍一下libstdc++中std::invoke_result的实现过程,由于 ...

  10. 宏&一个简单的宏病毒示例

    基于VisualBasicForApplications 其一:录制宏 在word,视图,宏,录制宏选项. 操作比较简单,不再赘述. (注意根据需求选择normal还是当前文档) 例如:录制宏:快捷键 ...