什么是数据库(DataBase)

【分享成果,随喜正能量】生命是一段匆匆而过的旅程,只有把握好每一天,才能拥有一个实实在在的美好人生。虽然世事总是不尽如人意,但我们要设法使自己适应现状,而不是设法使一切适合自己的心意。。 ​​

《VBA数据库解决方案》教程(10090845)是我推出的第二套教程,目前已经是第二版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,教程第一版的修订内容主要是完成所有程序文件的32位和64位OFFICE系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:什么是数据库(DataBase)

大家好,在讲数据库之前,我用了很长的时间,和大家分享了很多VBA方面的一些知识点,其中很多是我个人对VBA的理解。从这讲开始我们要在原先的基础上深入的讲解一些VBA的提高利用,这套教程主解数据库知识。

在《VBA数据库解决方案》中,我会讲解到数据库的简单知识,数据的操作,窗体控件的利用等等。望有这方面需求的朋友多关注,多提宝贵的意见。

我们今天讲什么是数据库,或许很多朋友一听到这个词感觉很高大上,其实你大可不必仰视。

我们先看看数据库的定义,数据库(DataBase),是存储在计算机上,结构化的相关数据的集合。是长期储存在计算机内的、有组织的、可共享的数据集合。

从上面的定义可以看出:

1) 数据库是一个数据的集合。那么什么是数据呢?我们可以这样定义:用来描述事物的数字、文字、图形、图像、声音、语言等符号就是数据,数据有多种表现形式,它们都可以经过数字化后存入计算机。我们得出了这样的结论:

① 数据不一定是数字

② 数据是用来描述事物的

③ 数据是可以存储

④ 上述描述事物的数据的集合就构成了数据库

如, 姓名:张一;性别:男;年龄:55;组织:保卫处 构成了对保卫处某员工张一的描述,这个就是数据,若干这样的数据组成的集合就构成了某公司人员的数据库。

2) 数据库是有结构和有组织的。这一点又该如何理解呢?

其实,为了反映事物本身及事物之间的各种联系,数据库中的数据必须有一定的结构,这种结构用数据模型来表示,下图就是一个数据的模型。

在数据库的定义中我们讲了:数据库是具有一定结构的,那么这种结构又是靠什么来约束的呢?其实就我个人的理解,对于数据库的结构最为关键的就是要规范,也就是说:

1)用来描述事物的语言必须规范。这里把描述的语言称为事物的属性,在同一个数据库中描述同一个事物的属性必须具有共性,不能缺失。

2)在同一个数据库中,相同事物的描述不能出现多个相同的属性,就是说属性具有唯一性。

3)描述事物的属性次序无关紧要。

4)在同一个数据库资料中,如果属性值完全相同,应该是同一数据。

5)在一个数据库资料中,所描述事物的次序无关紧要。

上面的内容是比较好理解的,不再多讲。

有了上面的规范,我们再来看一下数据如何记录:

1) 描述事物的属性值的记录,就是数据库中表的记录,表也称为关系,一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名(表名)。是数据库的核心,是所有操作的前提。

2) 关系的结构, 就是表头。 这表明了事物需要具有哪些属性,如上面的例子,在描述一个人员时的属性有:姓名;性别;年龄:组织

3) 每个事物的属性值的记录,是关系表中水平方向的行。

4) 属性值是关系表中垂直方向的列。在Access 2003中属性被称为字段,属性名叫做字段名。

5) 域(有效性规则)就是属性的取值范围

6) 关键字(主键),属性或属性的组合,其值能够唯一标识一个记录。

今日内容回向:

1 什么是数据记录?

2 什么是数据库?

3 数据库的记录的特点.

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

【分享成果,随喜正能量】世事无常,人生起落,唯有心明,才是在这修行的道场中,呵护好自己。。

什么是数据库?

什么是数据库?我又来汉化分享啦~

#编程真好玩,小白科普:一图搞懂 什么是数据库?

主要有哪几种数据库类型?(图转自bytebytego,翻译整理by dogstar)

✅ 第1种、关系型数据库最为常见的莫过于关系型数据库,通过二维表格来存放数据。支持事务、关联查询等操作。典型代表的关系型数据库有:开源的MySQL、微软的SQLServer、甲骨文的Oracle。另外,还有偏向数据分析的OLAP数据库,其特点是:数据量巨大、分布式存储、偏向数据计算、聚合和转换,俗称的数据仓库/大数据分析。搭建好之后,不管背后存了多少TB/多少GB/甚至PB数据,只需要在应用层发起一条查询,就会有一堆服务器集群帮你计算(厉害吧 ^_^)。

✅ 第2种、键值数据库特点:在一个无序的键值集合中通过 key-value 键-值对 存放你的数据。很明显,key是唯一的、不能重复的(但value可以重复),无序(即不支持key排序)。那有什么好处呢?好处就是搜索查找指定的key非常棒!常见的就有高效缓存 Redis、Memcache等,也俗称NoSQL。

✅ 第3种、文档数据库可以理解为把一大坨数据存到一个key,它将数据存储为一系列的文档,通常使用JSON、BSON或XML格式进行序列化。例如:MongoDB。

✅ 第4种、列式存储数据库主要是以列相关存储架构进行数据存储的数据库,适合于批量数据处理和即时查询。相比行式数据库,可能可以更好解决“稀疏矩阵”的空间浪费,并且查询效率更高,特别适用 读多写少 的场景。典型的有PostgreSQL。

最后科普:

1)Database是指数据库、SQL是指结构化查询语言(Structured Query Langauge),通过SQL语句,你只需要告诉数据库你要什么数据,而不用关心具体的实现过程。例如查询全世界年龄最大的人是谁。

2)数据库表关系之间有:一对一(1:1)、一对多的关系(1:N),甚至多对多(N:M)。

3)怎么编程?采用ORM框架。为什么?因为主流的编程思想是OOP面向对象编程,每个类中有属性和行为;而关系数据库是二维表,不能直接映射,因此需要通过ORM方式进行匹配。所以有时你会听到:Has-One、IS-One、HAS-Many、BELONGS-TO这些关系的表述。

#数据库##列式存储##nosql##ORM# #OLAP##什么是 OLAP 型数据库?##mysql##如何学习SQL语言##图数据库##面向对象数据库#

天天鼓捣数据,你知道数据库长啥样吗?

来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。

在家里,找一个东西,经常找了几个小时找不到,最终放弃。

在宜家,找任何东西,基本都可以靠编号自助搞定。

是什么导致了这种区别?

很好理解,宜家的所有东西都在一张表上登记过,然后在这张表里面填上了物品即将被放置的地址编号,最终这件物品才被工作人员最终放置到那个地址编号所对应的货架上,便于寻址(计算机中的寻址就是“找”的意思,不一下,半夜写文章还真有点儿困)。在表上填写若干件物品的名称和相应的地址,有需要的时候再把它找出来,有的时候要进行统计每种物品的库存数量,其实就是一个典型的数据库的应用场景,只不过我举的例子好像是一个纯人工手工的操作,用脚后跟想想,21世纪的今天,肯定也是由电脑完成的哦。

数据库的英文叫做DB(DataBase),数据仓库的意思,就是存储数据的仓库呗,跟宜家存储是真正的物品没有什么不同,一个是在硬盘上,一个是在真正的三维空间中而已。

数据库中有多个表(最少要有一张表,空的数据库什么也表示不了哦,表的英文叫table),表中真正存储的才是数据记录,一张表简单理解成excel的一张二维表格,你就真正理解数据库了,哈哈,如下表所示,表仍然以行列描述其结构,列id,name,address分别描述了物品的编号,名称以及地址,明眼人应该看清楚了,每一列就是一个物品的一个属性,也就是这个物品的一个特点。每一行代表了一条记录(record),这条记录有三个列(特点)。

这张表格如此清晰,我上面这张图也是从excel截取出来的,那为啥不用excel直接管理数据啊?主要是因为数据库的存取效率较excel更高,好多系统是没有用户界面的,你也用不了excel,最重要的是全世界的数据库都支持一种叫做SQL语言的东西来进行“增删改查”操作,数据库是有事务系统的(一系列步骤的一步出错了,全部回滚到最初状态),数据库是支持命令操作的,而不是简简单单的鼠标操作,这就更减少了人为出错,数据库是支持索引的,数据库的查询效率更高等等等等,后面省略一万条原因。

作为一名产品或设计人员,你只需要把数据库简单理解为,数据库是一个大文件,这个大文件当中有若干个excel表格,每张表格里面存储了若干条记录就。

以宜家举例,宜家的后台一定是个大数据库,这个数据库里面至少有两张表,第一张表记录了所有的员工信息,包括姓名,年龄,手机,家庭住址,银行卡帐号等等。第二张表记录了所有商品的信息,包括商品编号,价格,库存,货架位置等等。

你的新浪微博的用户名和密码,是存储在新浪的后台数据库中的一个表当中的。

你的QQ号码,也是存储在腾讯的服务器中的某一个数据库里面的。

你的京东购物车的物品列表,也是存储在京东的一个数据库当中的。

数据库的操作一般有“增”“删”“改”“查”四种操作,都是借助于SQL语句完成的,SQL读作【se一声】【kou一声】,我们写程序的时候,一般用C语言,C++或者Java等,但是操作数据库的话,全世界的程序员都是统一的,都是用SQL语句来操作数据库,我交你写一句最简单的SQL语句,剩下的就靠自学了,哈哈。Select * From table1 where name=“桌子”,这个SQL语句的意思是,查询出table1这张表中所有名字为“桌子”的记录。其实一个牛逼的程序员可以用一条非常漂亮的SQL语句来解决许多复杂问题。

数据库的知识概念很多,我挑几个重要的简单介绍下:

  1. 索引,数据库经常有上亿条记录,查询会很慢很慢的,数据库会提供一个功能,像字典一样编制一个”索引“,就是新华字典的前几页一样,靠拼音或偏旁来查询的功能,这个就是索引,这个经常能大幅度提高查询速度。
  2. 事务,数据库提供了一种机制,就是一件事,必须做完,如果中间出了差错,他会清理掉一切痕迹,回到最初状态,这对于保持数据的一致性和完整性有功不可没的作用。
  3. 联合查询,经常一张表格解决不了你的问题,比如有两张表,一张表是员工基本信息,另一张表是工资表,这个时候,要查询某某员工的工资,就要两张表一起来“联合查询”

最后简单介绍下,一个应用程序怎么使用数据库呢?第一步,首先建立和数据库的连接,第二步,利用这个连接,来进行数据库的建表,删表,以及对表的增删改查操作,第三部,关闭数据库连接。最后一步是最容易犯错误的,不关闭数据库连接,经常会产生内存泄漏,以及各种异常。

说了很多废话,其实数据库的直观表现就可以看成一个excel表格。

PS:如果你想跟我交流,对公众号像跟朋友那样聊微信回复就可以了,亲,不能保证每一条都回,但是每一条肯定都会认真看。如果觉得我每天的分享有价值,你能帮我分享给你周围的同事和朋友,想必那是极好的~~~

给产品经理讲技术,微信公众号(pm_teacher),人人都是产品经理专栏作家。资深程序猿,专注客户端开发若干年,对前端、后台技术略懂,热衷于对新的科技领域的探索。

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。