MySQL:初识数据库
对于大型互联网公司来说,数据的重要性可能比软件本身更重要。据说淘宝业务系统的开发大概消耗约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:初识数据库的更多相关文章
- Mysql初识数据库《五》初识sql语句
初识sql语句 有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写 mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要 ...
- mysql 初识数据库
一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件 ...
- mysql 初识数据库 目录
数据库管理软件的由来 数据库概述 MySQL介绍 Window版本 安装mysql linux 安装mysql yum方式 windows平台mysql密码设置 windows平台mysql密码破解设 ...
- Mysql初识数据库《四》mysql安装与基本管理
一.MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是 ...
- Mysql初识数据库《三》数据库概述
1 什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机 在计算机中描述一个事物 ...
- Mysql初识数据库《二》数据库管理软件的由来
数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运 ...
- MySQL初识数据库
为什要用数据库 第一,将文件和程序存在一台机器上是很不合理的. 第二,操作文件是一件很麻烦的事 你可以理解为 数据库 是一个可以在一台机器上独立工作的,并且可以给我们提供高效.便捷的方式对数据进行增删 ...
- Mysql初识数据库《一》下载安装Mysql
#1.下载:MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/ #2.解压 如果想要让MySQL安装在指定目录,那么 ...
- Mysql(一):初识数据库
一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件 ...
- 第一章 初识数据库Mysql
初识数据库Mysql(my) 在企业中 percona: 一.数据库基础知识 Mysql是一个开放源代码的数据库管理系统(DBMS),它是由Mysql AB公司开发.发布并支持的.Mysql是一个 ...
随机推荐
- Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords(贪心/数学)
题目链接:https://codeforces.com/contest/1366/problem/A 题意 有两个数 $a$ 和 $b$,每次可以选择从一个数中取 $2$,另一个数中取 $1$,问最多 ...
- CodeForces - 916C 思维
题意:给你n,m,表示n个顶点和m条边,让你构造一个图. 要求 1.1->n最短路为素数 2.最小生成树边权和为prime 3.没有重边 4.边大小[1,1e9]. (题目给定m>n-1) ...
- Strategic game POJ - 1463 树型dp
//题意:就是你需要派最少的士兵来巡查每一条边.相当于求最少点覆盖,用最少的点将所有边都覆盖掉//题解://因为这是一棵树,所以对于每一条边的两个端点,肯定要至少有一个点需要放入士兵,那么对于x-&g ...
- python代理池的构建3——爬取代理ip
上篇博客地址:python代理池的构建2--代理ip是否可用的处理和检查 一.基础爬虫模块(Base_spider.py) #-*-coding:utf-8-*- ''' 目标: 实现可以指定不同UR ...
- [视频] FFMpeg 基本组成和入门示例
目录 FFmpeg基本组成 编解码工具 ffmpeg.exe ffmpeg.exe的工作流程 播放器 ffplay.exe 多媒体分析器 ffprobe FFmpeg基本组成 AVFormat 封装了 ...
- 爬虫入门一 基础知识 以及request
title: 爬虫入门一 基础知识 以及request date: 2020-03-05 14:43:00 categories: python tags: crawler 爬虫整体概述,基础知识. ...
- 操作系统 part2
一.程序的内存结构 references: newcoder 运行时,程序分为:text段.data段.BSS段(2个合称数据段).堆.栈. text段:代码段,静态分配内存,只读. data段:初始 ...
- mysql 查询,天,周,月等写法
1.查询当天的数据 select * from 表名 where TO_DAYS(时间字段)=TO_DAYS(NOW()); 2.查询当周的数据 select * from 表名 where YEAR ...
- Redis-第八章节-应用场景
目录 概述 详解 1.概述 Redis支持五种数据类型:String(字符串).Hash(哈希).List(列表).Set(集合).Zset(有序集合). 2.详解 1.String(字符串) 定义: ...
- μC/OS-III---I笔记13---中断管理
中断管理先看一下最常用的临界段进入的函数:进入临界段 OS_CRITICAL_ENTER() 退出临界段OS_CRITICAL_EXIT()他们两个的宏是这样的. 在使能中断延迟提交时: #if OS ...