什么是数据库?

什么是数据库?,第1张

1.什么是数据库呢?

每个人家里都会有冰箱,冰箱是用来干什么的?冰箱是用来存放食物的地方。

同样的,数据库是存放数据的地方。正是因为有了数据库后,我们可以直接查找数据。例如你每天使用余额宝查看自己的账户收益,就是从数据库读取数据后给你的。

你可能会问了:我的数据就存放在自己电脑的excel表里就可以了,为什么还要搞个数据库呢?

这是因为数据库比excel有更多的优势。数据库可以存放大量的数据,允许很多人同时使用里面的数据。

举个例子你就明白了,excel好比是一个移动硬盘,你使用了这个移动硬盘其他人就用不了了。

数据库好比是网盘,很多人可以同时访问里面里的数据。

而且网盘比移动硬盘能放更多的数据。

2.数据库是如何存放数据的?

数据库有很多种类,这里我们重点学习使用最广泛的关系数据库。

关系数据库是由多个表组成的。如果你用过Excel,就会知道Excel是一张一张的二维表。每个表都是由行和列组成的。

同样的,关系数据库里存放的也是一张一张的表,只不过各个表之间是有联系的。所以,简单来说:

关系数据库=多张表+各表之间的关系

应的,学会关系数据库我们只要掌握两点就可以:

1)多张表里面,每一张表的结构

2)各表之间的关系

我们接下来分别来看看这两个知识点。

1) 表的结构

表的结构是指要了解关系数据库中每张表长什么样。

每个表由一个名字标识。表包含带有列名的列,和记录数据的行。我们举个具体的例子就一目了然了。

下面图片里的表名是:学生表,记录了每个学生的信息。

表中每一列都有一个名字来标识出该列,这个表里有4列,列名分别是学号,姓名,出生日期,性别。从列名上你也可以知道这一列对应记录的是什么数据。

表的每一行里记录着数据。这里的一行表示该名学生的信息,比如第2行是学号0002学生的信息,他的姓名是猴子,出生日期是1990-12-21,性别是女。

2)各表之间的关系

关系数据库是由多张表组成的,图片里是存放在学校数据库里的4张表。

你能发现下面这4张表之间有什么关系吗?

什么是关系呢?

你是你爸爸的儿子,你是你的儿子的爸爸,这就是生活中的关系。其实,数据之间也是有关系的。关系数据库里各个表之间如何建立起关系呢?

我们来看图中“学生表”,“成绩表”这两个表之前的关系。

这两张表通过”学号”关联起来,为了更清楚的看到这两个表的关系,PPT里我用相同颜色代表同一个学生的信息。

例如我想知道学生表里学号“0001” 的成绩是多少?那么我就可以在成绩表里去查找“学号”值是0001的行,最后在成绩表里发现有3行数据的学号都是“0001” ,对应的就找到了该学生的三门课程的成绩。

通过这个例子你应该对表之间的关系有了大概的了解。关系就是数据能够对应的匹配,在关系数据库中正式名称叫联结,对应的英文名称叫做join。

联结是关系型数据库中的核心概念,务必记住这个概念,后面会在多表查询中具体学到。

3.什么是数据库管理系统?

前面讲的都是关系数据库原理方面的基本理论。理论有了,当然的就的有对应的软件实现才能用起来,不然再强大的理论都是一堆无用的东东。这就好比,建筑师如果只有设计草图是无法盖起楼房的,得有具体的建筑人员才能盖起楼房。

所以,上面讲的关系数据库原理就是“设计草图”,那么对应的“建筑人员”是谁呢?

实现数据库原理的“建筑人员”就是数据库管理系统,用来管理数据库的计算机软件。

关系数据库管理系统有很多种,比如MySQL、Oracle、SQL Server等都是实现上面理论的关系数据库。

4.什么是sql?

建筑施工人员通过使铲子,拉土机等工具来盖房子。

那么,我们通过什么工具来 *** 作数据库里的数据呢?

这个工具就是SQL。

SQL是为 *** 作数据库而开发的一种语言,它可以对数据库里的表进行 *** 作,比如修改数据,查找数据。

之前我在社群里举过一个例子,我觉得可以很好的说明白数据库和sql是什么关系。

把数据库比如一碗米饭,里面放的米是数据。现在我们要吃碗里的米饭,怎么取出碗里的米饭呢?

这时候我们拿一双筷子,用筷子 *** 作碗里的米饭。这里的筷子就是SQL,用来 *** 作数据库里的数据。

5.总结

1)什么是数据库?

数据库用于存放数据,

关系数据库=多张表+各表之间的关系

2)关系数据库表长什么样?

关系数据库中每个表由一个名字标识。表包含带有列名的列,和记录数据的行。

主键是关系数据库中重要的概念,用来标识数据的唯一性。

3)关系数据库里各个表之间如何建立联系呢?

关系数据库中,如果一张表要关联其他表,通过对应的列产生了关系。这个关系叫做联结。

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

实现数据库原理的“施工团队”就是,用来管理数据库的计算机软件叫做数据库管理系统。

常用的关系数据库管理系统有mysql,orcale,sql server为了方便描述,我们后面说到数据库,都是指数据库管理系统。

5)什么是SQL?

数据库里面放着数据,SQL是用来 *** 作数据库里数据的工具。

现在我们可以理解支付宝的背后的运行原理了,用户把钱存放到支付宝数据库里,当用户查看支付宝余额的时候,后台使用SQL这个工具 *** 作支付宝的数据库,把里面的数据查找出来,然后返回给用户,这样用户就可以看到存放到支付宝里的钱和每天的收益了。

下面这个分析得很透彻,可以参考,ppt就自己根据需要做吧:

在我们实际的开发过程中,我们当前这样定位前端、后端开发人员。

1)前端开发人员:精通JS,能熟练应用JQuery,懂CSS,能熟练运用这些知识,进行交互效果的开发。

2)后端开发人员:会写Java代码,会写SQL语句,能做简单的数据库设计,会Spring和iBatis,懂一些设计模式等。

现在来看,我们对前后端的要求还是蛮低的,尤其是后端,新员工经过培训之后都是可以参与到后端开发的,没有太高的技术门槛,唯一需要做的就是先变成熟练工种,这个阶段没有涉及到设计模式、架构、效率等一些列问题。

还是先google一下,看看网上对Web前端开发、Web后端开发分别是什么?

Web前端: 顾名思义是来做Web的前端的。我们这里所说的前端泛指Web前端,也就是在Web应用中用户可以看得见碰得着的东西。包括Web页面的结构、Web的外观视觉表现以及Web层面的交互实现。

Web后端:后端更多的是与数据库进行交互以处理相应的业务逻辑。需要考虑的是如何实现功能、数据的存取、平台的稳定性与性能等。

我们再来看看大公司对前后端人员招聘的要求,通过这个角度看看前端、后端的技术要求:

Web前端:

1)精通HTML,能够书写语义合理,结构清晰,易维护的HTML结构。

2)精通CSS,能够还原视觉设计,并兼容业界承认的主流浏览器。

3)熟悉JavaScript,了解ECMAScript基础内容,掌握1~2种js框架,如JQuery

4)对常见的浏览器兼容问题有清晰的理解,并有可靠的解决方案。

5)对性能有一定的要求,了解yahoo的性能优化建议,并可以在项目中有效实施。

6)......

Web后端:

1)精通

jsp,servlet,java

bean,JMS,EJB,Jdbc,Flex开发,或者对相关的工具、类库以及框架非常熟悉,如

Velocity,Spring,Hibernate,iBatis,OSGI等,对Web开发的模式有较深的理解

2)练使用oracle、sqlserver、mysql等常用的数据库系统,对数据库有较强的设计能力

3)熟悉maven项目配置管理工具,熟悉tomcat、jboss等应用服务器,同时对在高并发处理情况下的负载调优有相关经验者优先考虑

4)精通面向对象分析和设计技术,包括设计模式、UML建模等

5)熟悉网络编程,具有设计和开发对外API接口经验和能力,同时具备跨平台的API规范设计以及API高效调用设计能力

6)......

从几个公司的招聘要求可以看到,做Web开发,对前端和后端的要求是各自所不同的。而我们目前的实际情况,也和这个差不多,但是,我们无论在知识的掌握程度上,还是知识掌握的宽度上,都是不够的。

首先,我们在前端缺乏积累,没

有沉淀,专业的前端技术的积累是从去年才开始的,同时,在前端也缺乏支撑与高手,所以,走起来比较困难。同时,前端人员培养的较少,一个原因是对前端了解

太少,另外一个原因就是对前端与后端的工作比例估计不足。所幸,我们在这一年也在前端有了很快的进步,培养了几个优秀的开发人员,有意识的解决了前端的用

户体验,这都是可喜的。今年,需要更进一步,专业化。

其次,我们在后端发展的不够宽,后端的知识体系已经比较完善,但是,很多应用点都没有涉及到。同时,对现有技术框架的理解都不够深入,太浮躁。我们目前的

设计团队在解决互联网高并发、大数据量的存取上经验与能力都还不足,需要正视这些问题。后端技术的发展需要更加的精进,以解决实际存在的问题为主。

最后,我们在前端、后端都缺乏熟练工,这会影响到开发的速度,同时,也不利于后期技术的研究。

1、数学知识

数学知识是数据分析师的基础知识。对于初级数据分析师,了解一些描述统计相关的基础内容,有一定的公式计算能力即可,了解常用统计模型算法则是加分。

对于高级数据分析师,统计模型相关知识是必备能力,线性代数(主要是矩阵计算相关知识)最好也有一定的了解。

而对于数据挖掘工程师,除了统计学以外,各类算法也需要熟练使用,对数学的要求是最高的。

所以数据分析并非一定要数学能力非常好才能学习,只要看你想往哪个方向发展,数据分析也有偏“文”的一面,特别是女孩子,可以往文档写作这一方向发展。

2、分析工具

对于初级数据分析师,玩转Excel是必须的,数据透视表和公式使用必须熟练,VBA是加分。另外,还要学会一个统计分析工具,SPSS作为入门是比较好的。

对于高级数据分析师,使用分析工具是核心能力,VBA基本必备,SPSS/SAS/R至少要熟练使用其中之一,其他分析工具(如Matlab)视情况而定。

对于数据挖掘工程师……嗯,会用用Excel就行了,主要工作要靠写代码来解决呢。

3、编程语言

对于初级数据分析师,会写SQL查询,有需要的话写写Hadoop和Hive查询,基本就OK了。

对于高级数据分析师,除了SQL以外,学习Python是很有必要的,用来获取和处理数据都是事半功倍。当然其他编程语言也是可以的。

对于数据挖掘工程师,Hadoop得熟悉,Python/Java/C++至少得熟悉一门,Shell得会用……总之编程语言绝对是数据挖掘工程师的最核心能力了。

4、业务理解

业务理解说是数据分析师所有工作的基础也不为过,数据的获取方案、指标的选取、乃至最终结论的洞察,都依赖于数据分析师对业务本身的理解。

对于初级数据分析师,主要工作是提取数据和做一些简单图表,以及少量的洞察结论,拥有对业务的基本了解就可以。

对于高级数据分析师,需要对业务有较为深入的了解,能够基于数据,提炼出有效观点,对实际业务能有所帮助。

对于数据挖掘工程师,对业务有基本了解就可以,重点还是需要放在发挥自己的技术能力上。

业务能力是优秀数据分析师必备的,如果你之前对某一行业已经非常熟悉,再学习数据分析,是非常正确的做法。刚毕业没有行业经验也可以慢慢培养,无需担心。

4、逻辑思维

这项能力在我之前的文章中提的比较少,这次单独拿出来说一下。

对于初级数据分析师,逻辑思维主要体现在数据分析过程中每一步都有目的性,知道自己需要用什么样的手段,达到什么样的目标。

对于高级数据分析师,逻辑思维主要体现在搭建完整有效的分析框架,了解分析对象之间的关联关系,清楚每一个指标变化的前因后果,会给业务带来的影响。

对于数据挖掘工程师,逻辑思维除了体现在和业务相关的分析工作上,还包括算法逻辑,程序逻辑等,所以对逻辑思维的要求也是最高的。

5、数据可视化

数据可视化说起来很高大上,其实包括的范围很广,做个PPT里边放上数据图表也可以算是数据可视化,所以我认为这是一项普遍需要的能力。

对于初级数据分析师,能用Excel和PPT做出基本的图表和报告,能清楚的展示数据,就达到目标了。

对于高级数据分析师,需要探寻更好的数据可视化方法,使用更有效的数据可视化工具,根据实际需求做出或简单或复杂,但适合受众观看的数据可视化内容。

对于数据挖掘工程师,了解一些数据可视化工具是有必要的,也要根据需求做一些复杂的可视化图表,但通常不需要考虑太多美化的问题。

6、协调沟通

对于初级数据分析师,了解业务、寻找数据、讲解报告,都需要和不同部门的人打交道,因此沟通能力很重要。

对于高级数据分析师,需要开始独立带项目,或者和产品做一些合作,因此除了沟通能力以外,还需要一些项目协调能力。

对于数据挖掘工程师,和人沟通技术方面内容偏多,业务方面相对少一些,对沟通协调的要求也相对低一些。

7、快速学习

无论做数据分析的哪个方向,初级还是高级,都需要有快速学习的能力,学业务逻辑、学行业知识、学技术工具、学分析框架……数据分析领域中有学不完的内容,需要大家有一颗时刻不忘学习的心。

快速学习非常重要,只有快速进入这一行业,才能抢占先机,获得更多的经验和机会。如果你完全零基础想要尽快进入数据分析行业,选择一家专业的大数据培训机构是个不错的选择。缩短学习周期,提高学习效率,时间即金钱!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9916868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存