数据库概论(数据库试卷及答案汇总)
"数据分析需要了解数据库的知识吗?"
李先生最近经常听到这样的问题。很多新人觉得如果只做业务,不走技术路线,是不是可以不学数据库?你不需要准备面试吗?
毕竟很多新人刚进公司,看到数据库里各种表格复杂的链接就开始头疼。更有甚者,他们连SQL和数据库的区别都不知道,更不用说数据仓库的概念了。
然而让很多人失望的是,数据库知识是我面试新人时问得最多的问题,没有之一。
数据分析需要懂数据库吗?您对数据库的了解程度取决于您所处的数据分析级别。我见过一些数据分析师,不懂数据库,基于Excel文件源做数据分析。他们更擅长做生意。
但是,他们通常必须依靠IT部门的支持,IT部门需要提供一些基本的分析数据。有了对业务的了解,对业务数据的了解也可以做好数据分析。
还有一类是数据分析师,从数据库和BI的角色转为纯数据分析师,通过了解业务和数据处理的技巧和知识,可以在分析领域做得很好。
他们的一个很大的优势就是很大程度上不需要太依赖IT部门。如果给他们一定的权限,他们可以直接面对统一的数据源做数据分析。有时候,一条SQL就是数据分析的一个环节。
所以,作为一个数据分析师,我个人觉得,多一些技能,多一些技巧,获取不同的数据渠道,自然是有好处的。
什么是数据库?首先,在了解数据库之前,我们需要了解数据是如何存储的。
众所周知,当我们的祖先还在荒野中吃东西喝血的时候,他们就学会了用打结的绳子来做记录,用于数据存储。这些打结的绳子就是“数据”,虽然这种数据很难保存和提取。
后来,祖先们用甲骨文、竹简和纸来存储文字资料。在现代,人们发明了录音机和摄像机来存储音频数据。虽然数据载体一直在变,但是数据存储的方式并没有太大的变化,都属于传统的存储方式。
直到信息时代的到来,数据存储的方式发生了重大变化,向两个方向发展:文件和数据库。
1.一个文件相当于在Excel中存储数据,形成一个读写文件,存储起来,然后通过python等工具对文件数据进行过滤、处理、提取;
2.数据库将数据按其结构存储在计算机中,形成一个数据量很大的数据集,相当于一个存放文件的文件柜。
目前,使用数据库存储数据是最流行的方式,因为数据库具有持久存储和高读写速度。更重要的是,数据库可以在很大程度上保证数据的有效性,不像Excel等文件容易出现修改错误。
数据库分类?根据早期的数据库理论,有三种流行的数据库模型,即层次数据库、网络数据库和关系数据库。在当今的互联网企业中,最常用的数据库模式有两种,即关系型数据库和非关系型数据库。
关系数据库模型是将复杂的数据结构简化为简单的二元关系(即二维表格形式)。在关系数据库中,几乎所有对数据的 *** 作都是基于一个或多个关系表,通过这些相关的表可以实现分类、合并、连接或选择等数据管理。
对关系的通俗理解是,数据是以二维数组的形式存在的,你可以理解为图书馆里书籍的排列。
书架和楼层可以理解为关系数据结构,书籍是作为数据存在的,所有的馆员都是数据库的进程,分别用于不同的工作。有人灭火(资料修复、备份),有人整理书架、书籍(资料整理、归档),用户流程指的是来图书馆的客户,他们看书、搬书,管理员会维护。
关系数据库诞生至今已有40多年。从理论的产生到开发到产品的实现,比如常见的MySQL和oracle,Oracle已经上升到数据库领域的主导地位,形成了每年数百亿美元的巨大产业市场。MySQL也是一个不可忽视的数据库,以至于被Oracle收购了。
非关系数据库也叫NoSQL数据库,意思是“不仅仅是SQL”,作为传统数据库的有效补充。NoSQL数据库在某些场景下可以发挥出难以想象的高效率和性能。
随着web2.0网站的兴起,海量数据对关系数据库的存储容量要求很高,单台计算机无法满足需求。很多时候需要集群来解决问题,所以关系数据库似乎做不到。
非关系型数据库诞生了。实际上,非关系型数据库是一种针对特定场景的高性能、便捷性的数据库产品,比如Google的BigTable和Amazon的Dynamo。
SQL与数据库的关系这个时候很多人会把sql和数据库的概念混淆。很多新人认为sql是用来存储数据的数据库,也有人认为Sql是数据库的一种。
为了便于你理解,我给你举个例子:
如果数据是表格,我们可以根据不同的表格关系放在不同的文件夹中。这个文件夹相当于数据库-数据表的基本组件。
当我们的文件夹也很复杂的时候,可以按照不同的构成类别存放在文件柜里。每个文件柜里可能会有很多类别来存放不同的文件夹,这个文件柜就相当于一个数据库。
当我们想从文件柜中找到一份文件时,需要按照一定的规则进行搜索,比如“合同文件放在三楼第四排的架子上”。这个搜索规则的实现需要通过一个数据库管理系统(DBMS)来实现,DBMS相当于一个文件管理员,帮助我们管理数据库中的数据。
最常见的数据库管理系统有SqlServer、MySql、Oracle等。
而如果要给文件管理人员下达指令,就需要一种通讯语言,就是SQL,所以SQL是 *** 作数据库管理系统的结构化查询语言。
它们之间的关系可以表示如下:
所以你不应该再把SQL当成数据库了吧?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)