MySQL数据分析—(4)关系数据库的三个逻辑框架
(一)前面课程逻辑梳理
任何一门数据的软件也好,数据构架也好,或者说是数据学科也好,最终都是要解决实际问题的,大家说是不是?
前面jacky讲为什么要引入数据库的时候,举了一个案例,大家还记的吗?大家还记得这张图吧
jacky说这家手机公司对于手机数据的管理是混乱的,给出了3点混乱的理由,然后引出了我们要引入数据库的必要性;jacky说既然我们的数据库这么重要,那么操作数据库的软件就一定会出现,那么MySQL就是其中最流行的软件之一,是吧,然后大家跟着jacky把MySQL都安在了电脑上,前面我讲的大概就是这些内容。
(二)本课时的逻辑
大家有没有发现,前面我们说手机案例的时候,只是把问题抛了出来,没有说具体应该如何处理这个问题;我们说MySQL软件很流行,大家也只是安装上了,不知道有什么用,也不知道应该怎样用,是吧?
下面的课程,jacky就会带着大家理清这些问题。
(三)数据库设计前的基础铺垫
先说前面手机销售公司的案例,我们抛出了问题,提出了引入共享数据管理的思想,我们说引入数据库是必要的,那结合我们实际的工作需求,我们该如何构建这个共享数据的体系呢?
构建共享数据体系这个内容如果说的更学术一定就是数据库设计,可能有朋友问,说jacky,我听过别人的课程啊,数据库设计都是放在后面来讲的,你怎么放在前面说呢?
熟悉jacky讲课风格的朋友都知道,jacky最重视知识的思维逻辑,这样的顺序也正符合我们实际工作中的逻辑顺序,也便于大家更好的理解知识;
回归主题,我们要分析数据库设计之前,jacky有必要引入一些数据库的一些术语,以便后面更好的讲解;
1.数据模型
我们知道,在实际业务,业务数据都存在着一定的关系,我们该怎样处理这些数据呢?这里,我们处理数据的一个思路就是将这些数据问题模型化,这就是我们引入的一个概念数据模型;
1.1数据模型的类型
数据模型更理论的叫法是逻辑数据模型,主要的数据模型有四种:
层次模型(Hierarchical Model)
网状模型(Network Model)
关系模型(Relational Model)
面向对象模型(Object-Oriented Model)
1.2 关系数据库
关于上面的4种数据模型,jacky这里只讲解关系型数据库,因为MySQL就是一个关系数据库管理系统,其他的三类jacky都把其归类为非关系数据库;
在实际工作中,关系型数据库是应用最广泛的数据库,那什么是关系型数据库呢?
- 和Excel工作表一样,关系型数据库也采用行列二维表结构来管理数据,所以简单易懂;同时,关系型数据库可以用专门的SQL语言对数据进行操作
1.3 关系数据库与非关系数据库的优缺点比较
关系数据库
优点:数据安全性,强;
优点:简单易懂;
- 但是二维表的形式存储数据,比较浪费空间,效率低
非关系数据库
优点:存储数据效率高
缺点:突然断电容易丢失数据
2.关系数据库的三个逻辑框架
下面的知识非常重要,如果说本小节的课程什么都没记住,下面关系数据库的三个逻辑也一定要记住,关系数据的三个逻辑框架分为三部分:第一部分是数据结构,第二部分是操作指令,第三部分是完整性约束,一个逻辑框架下的具体含义,jacky会逐一讲解;
大家发现没有,jacky的讲解在无时无刻的讲解逻辑,为什么我要这么强调逻辑,就拿关系数据库来说,我们按照关系数据库的三层逻辑弄清楚关系数据库的含义,那么当我们今后更深入的学习非关系数据库时,同样也要从这三个逻辑来学习,这就是学习的捷径,要善于总结,善于归纳;
2.1 数据结构
| 商品编号 | 商品名称 | 销售单价 | 登记日期 |
|---|---|---|---|
| 0001 | A品牌手机 | 1000 | 2018-02-23 |
| 0002 | B品牌手机 | 1500 | 2018-02-24 |
| 0003 | C品牌手机 | 2000 | 2018-02-25 |
关系数据库的数据结构就是二维表,我们看我们的示例图表:
二维表的列,也就是垂直方向,给它一个命名,叫做“字段”,它代表了保存在二维表中的数据项目,在这个示例表中我们可以看出,从商品编号到登记日期一共有4列;对于列的约束比Excel更加严格,定义为数字的列只能输入数字,定义为日期的列只能输入日期,关于列的约束,jacky后在后面的章节中详细介绍,这里我们先有个印象就可以;
那我们再来看,二维表的行,我们给它一个什么命名呢?行,我们命名为“记录”,它就相对于一条数据,我们可以看到示例表中总共有3行数据
2.2 操作指令
我们说关系数据三大逻辑框架的操作指令框架是指什么呢?
关系数据库的操作指令就是所有的SQL语句;
前面我们已经带大家安装了MySQL软件,大家还记得吗?这里,大家要清楚MySQL是一个一种C\S结构的软件,即分为:客户端和服务端;我们要想访问服务器,则必须通过客户端;服务器应该一直运行,客户端则在需要使用的时候运行。
jacky给大家画下客户端和服务端具体的交互过程:
左边方块里是我们数据库的客户端,右边方块里是我们的服务器,这里服务器是一直运行着的,那么MySQL具体的交互过程是怎样的呢?我们想要从数据库里调取数据,那么客户端会向我们服务器发送一条指令,告诉服务器我要调取的是怎样怎样的数据,那么服务器怎么才能接受到客户端发送的指令,做出回应呢?或者说它们是怎样沟通的呢?就是通过SQL语句,SQL语句我们也可以说是SQL语言,它作为客户端与服务器沟通的媒介,把客户端的需求翻译成服务器能听懂的语言,让服务器从客户端中调出请求,使得这个客户端能够使用取出的数据;
搞清楚MySQL背后客户端与服务器交互的过程,什么是关系数据库的操作指令,SQL语句有什么作用就迎刃而解了,下面我们总结下SQL是什么?
- SQL就是为操作数据而开发的语言,它可以提高数据库的查询效率,也可以进行数据增删改查,一系列的操作;
2.3 完整性约束
关于数据库的最后一个逻辑框架,完整性约束,为了深入浅出的将好这个体系的课程,jacky在这个小节只作框架展示,先不进行讲解,后面的课程有太多的实操案例供朋友们理解;在这个阶段,大家先看下我们结构导图,大概有一个印象就可以了
好,这就是本节jacky分享的内容,谢谢大家
MySQL数据分析—(4)关系数据库的三个逻辑框架的更多相关文章
- MySQL数据分析实战-朱元禄-专题视频课程
MySQL数据分析实战-496人已学习 课程介绍 本套课程由知名数据分析博主jacky老师录制,深入浅出讲解MySQL数据分析,从实战角度出发,帮助大家制胜职场!课程收益 1.学会 ...
- MySQL数据分析-(15)表补充:存储引擎
大家好,我是jacky,很高兴继续跟大家分享<MySQL数据分析实战>,今天跟大家分享的主题是表补充之存储引擎: 我们之前学了跟表结构相关的一些操作,那我们看一下创建表的SQL模型: 在我 ...
- MySQL数据分析-(11)表补充:数据类型
大家好,我是jacky,很高兴继续跟大家学习<Mysql 数据分析实战系列教程>,上次课程jacky讲解了表层面的增删改查,jacky说最重要的是增,增就是创建表,作为一个严谨的MySQL ...
- MySQL数据分析-(10)SQL基础操作之表操作
大家好,我是jacky,很高兴跟大家继续分享MySQL数据分析实战课程,前面我们学习了库层面增删改查的SQL语句,这次课jacky将给大家介绍表层面的增删改查, (一)本课时的学习逻辑 表层面的增删改 ...
- MySQL数据分析(7)-SQL的两大学习框架
大家好,我是jacky,很高兴继续跟大家分享<MySQL数据分析实战>课程,前面的课程基本上我把MySQL的原理都做了一定的介绍,有好多朋友说学习MySQL是没有逻辑的,其实jacky是非 ...
- MySQL数据分析-(6)数据库设计之规范化
大家好,我是jacky,很高兴继续跟大家学习MySQL数据分析这门课,上次课我们介绍了E-R图,我们要给手机销售公司设计数据库,那么同一个项目,10个设计人员可能设计出10种不同的E-R图:因为不同的 ...
- MySQL数据分析-(1) 数据库前言
(一)开场白 大家好,欢迎大家跟我一起学习<MySQL数据分析实战>这门课程,对于数据分析师来说,数据库是每一个从业者都必须掌握的课程,我们这门课是从实战的角度出发,我会帮助大家梳理MyS ...
- MySQL数据分析-(14)表补充:字符集
大家好,我是jacky朱元禄,很高兴继续跟大家学习<MySQL数据分析实战>,本节课程jacky分享的主题是表补充之字符集 在分享课程之前,jacky在跟大家强调一下逻辑的重要性,我们学习 ...
- MySQL数据分析-(13)表操作补充:索引
大家好,我是jacky朱元禄,很高兴继续跟大家学习MySQL数据分析实战,今天跟大家分享的主题是表补充之索引: (一)前面课程的小节以及本节课程的逻辑梳理 在正式分享主题之前,jacky先跟大家捋顺一 ...
随机推荐
- SpinWait
其实SpinWait的code 非常简单,以前看过很多遍,但是从来都没有整理过,整理也是再次学习吧. 我们先看看SpinWait的一些评论或者注意点吧:如果等待某个条件满足需要的时间很短,而且不希望发 ...
- (二)easyUI之消息提示框
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- EF6.0中出现未找到具有固定名称“System.Data.SqlClient”的 ADO.NET提供程序的实体框架提供程序解决办法
在多工程项目中,由于EF封装在某一个工程里,那么该项目用于EF相关类库 EntityFramework.dll,以及EntityFramework.SqlServer.dll的引用 那么你一个启动工程 ...
- office2019激活码 最新各个版本激活码
office2019专业版激活码 激活秘钥 一.office2019激活6月更新 [Key]:F4QWT-NMMKH-XPTV9-W9HFB-B4JCQ [剩余次数:900000+] office20 ...
- [NOIP2018模拟赛10.25]瞎搞报告
闲扯 最近有点颓,都修到好晚,早上起来和吔shi一样难受 忍着困意把题面看完,发现啥也不会,又是一场写暴力的模拟赛 T1发现似乎可以DP,顺手码了个 T2像个最小瓶颈路板子,但是只做过N^2算法的.. ...
- 线程池工具ThreadPoolExecutor
JDK1.5中引入了强大的concurrent包,其中最常用的莫过了线程池的实现ThreadPoolExecutor,它给我们带来了极大的方便,但同时,对于该线程池不恰当的设置也可能使其效率并不能达到 ...
- MGB的生成代码解析
目录 @ 问题描述 文字描述 问题是在我刚刚学习MyBatis逆向工程时出现的,我发现使用Example是可以创建两个Criteria对象,并且两个对象也都可以添加条件,但是在运行过程中只会执行第一次 ...
- 去“BAT”这样面试,拿到offer的几率是80%
一.概述 面试,难还是不难?取决于面试者的底蕴(气场+技能).心态和认知及沟通技巧.面试其实可以理解为一场聊天和谈判,在这过程中有心理.思想上的碰撞和博弈.其实你只需要搞清楚一个逻辑:“面试官为什么会 ...
- django中解决跨域问题
-跨域问题 -浏览器的:同源策略,浏览器拒绝不是当前域域返回的数据 -ip地址和端口号都相同才是同一个域 -如何解决: -CORS:跨域资源共享 -简单请求:发一次请求 -非简单请求:非简单请求是发送 ...
- 深度解析Graph Embedding
Graph Embedding是推荐系统.计算广告领域最近非常流行的做法,是从word2vec等一路发展而来的Embedding技术的最新延伸:并且已经有很多大厂将Graph Embedding应用于 ...