处理数据:非关系型数据 插图由@sketchthedocs绘制 :---: 处理非关系型数据 - 插图由@nitya绘制 课前测验 数据不仅限于关系型数据库。本课程将重点介绍非关系型数据,并涵盖电子表格和NoSQL的基础知识。 电子表格 电子表格是一种存储和探索数据的流行方式,因为设置和开始使用它需要较少的工作。在本课程中,您将学习电子表格的基本组成部分,以及公式和函数。示例将以Microsoft Excel为例,但大多数部分和主题在其他电子表格软件中会有相似的名字和步骤。 一个包含两个工作表的空Microsoft Excel工作簿 电子表格是一种文件,可以在计算机、设备或基于云的文件系统中访问。软件本身可能是基于浏览器的,或者必须安装在计算机上或作为应用程序下载。
![]() |
|---|
| 处理非关系型数据 - 插图由@nitya绘制 |
数据不仅限于关系型数据库。本课程将重点介绍非关系型数据,并涵盖电子表格和NoSQL的基础知识。
电子表格是一种存储和探索数据的流行方式,因为设置和开始使用它需要较少的工作。在本课程中,您将学习电子表格的基本组成部分,以及公式和函数。示例将以Microsoft Excel为例,但大多数部分和主题在其他电子表格软件中会有相似的名字和步骤。

电子表格是一种文件,可以在计算机、设备或基于云的文件系统中访问。软件本身可能是基于浏览器的,或者必须安装在计算机上或作为应用程序下载。在Excel中,这些文件也被称为工作簿,并在本课程的其余部分中使用这一术语。
工作簿包含一个或多个工作表,每个工作表都通过标签来区分。在工作表中,有称为单元格的矩形,它们将实际数据包含其中。单元格是行和列交叉的地方,列用字母标记,行用数字标记。一些电子表格会在前几行包含标题,以描述单元格中的数据。
有了这些基本元素,我们将使用来自Microsoft模板的一个示例,该模板专注于库存管理,以进一步了解电子表格的其他部分。
名为“InventoryExample”的电子表格文件是一个格式化的库存项目列表,包含三个工作表,标签分别为“Inventory List”(库存清单)、“Inventory Pick List”(库存拣货单)和“Bin Lookup”(货位查找)。在“库存清单”工作表中,第4行是标题,描述了标题列中每个单元格的值。

有时,单元格的值取决于其他单元格的值。例如,“库存清单”电子表格跟踪其库存中每件物品的成本,但如果我们需要知道库存总价值是多少呢?公式对单元格数据执行操作,在此示例中用于计算库存成本。该电子表格在“库存价值”列中使用了一个公式,通过将“QTY”标题下的数量与“COST”标题下的单元格中的成本相乘来计算每件物品的价值。双击或选中单元格将显示公式。您会注意到公式以等号开头,后面跟着计算或操作。

我们可以使用另一个公式将所有“库存价值”的值加起来得到总价值。这可以通过逐个添加每个单元格来计算总和,但这可能是一项繁琐的任务。Excel提供了函数,即预定义的公式,用于对单元格值进行计算。函数需要参数,这些参数是执行计算所需的必需值。当函数需要多个参数时,它们需要按特定顺序列出,否则函数可能无法计算正确的值。此示例使用SUM函数,并使用“库存价值”列的值作为参数来生成行3、列B(也称为B3)中列出的总和。
NoSQL 是一种用于存储非关系型数据的不同方法的总称,可以理解为“非SQL”、“非关系型”或“不仅仅是SQL”。这些类型的数据库系统可分为四种类型。

键值 数据库将唯一的键与值配对,这些键是与值关联的唯一标识符。这些配对使用具有适当哈希函数的哈希表存储。

来源:Microsoft
图形 数据库描述数据中的关系,由一组节点和边表示。节点代表实体,如学生或银行对账单。边代表两个实体之间的关系。每个节点和边都有属性,提供有关每个节点和边的附加信息。

列式 数据存储按列和行组织数据,类似于关系数据结构,但每一列被分为称为列族的组,所有在同一个列下的数据都是相关的,并且可以作为一个单元检索和更改。
文档 数据存储建立在键值数据存储的概念之上,由一系列字段和对象组成。本节将探讨使用Cosmos DB模拟器的文档数据库。
Cosmos DB数据库符合“Not Only SQL”的定义,其中Cosmos DB的文档数据库依赖SQL来查询数据。上一课介绍了SQL语言的基础知识,我们可以在这里应用一些相同的查询到文档数据库。我们将使用Cosmos DB模拟器,它允许我们在本地计算机上创建和探索文档数据库。阅读更多关于模拟器的信息,请参阅这里。
文档是一系列字段和对象值的集合,字段描述对象值所代表的内容。以下是一个示例文档。
{ "firstname": "Eva", "age": 44, "id": "8c74a315-aebf-4a16-bb38-2430a9896ce5", "_rid": "bHwDAPQz8s0BAAAAAAAAAA==", "_self": "dbs/bHwDAA==/colls/bHwDAPQz8s0=/docs/bHwDAPQz8s0BAAAAAAAAAA==/", "_etag": "\"00000000-0000-0000-9f95-010a691e01d7\"", "_attachments": "attachments/", "_ts": 1630544034 }
这个文档感兴趣的字段是:firstname, id, and age. The rest of the fields with the underscores were generated by Cosmos DB.
You can download and install the emulator for Windows here. Refer to this documentation for options on how to run the Emulator for macOS and Linux.
The Emulator launches a browser window, where the Explorer view allows you to explore documents.

If you're following along, click on "Start with Sample" to generate a sample database called SampleDB. If you expand Sample DB by clicking on the arrow you'll find a container called Persons, a container holds a collection of items, which are the documents within the container. You can explore the four individual documents under Items.

We can also query the sample data by clicking on the new SQL Query button (second button from the left).
SELECT * FROM c returns all the documents in the container. Let's add a where clause and find everyone younger than 40.
SELECT * FROM c where c.age < 40

The query returns two documents, notice the age value for each document is less than 40.
If you're familiar with JavaScript Object Notation (JSON) you'll notice that documents look similar to JSON. There is a PersonsData.json file in this directory with more data that you may upload to the Persons container in the Emulator via the 上传项目按钮。
大多数情况下,返回JSON数据的API可以直接传输并存储在文档数据库中。以下是另一个文档,它表示从Twitter API检索到的Microsoft Twitter账户的推文,然后插入到Cosmos DB中。
{ "created_at": "2021-08-31T19:03:01.000Z", "id": "1432780985872142341", "text": "Blank slate. Like this tweet if you’ve ever painted in Microsoft Paint before. https://t.co/cFeEs8eOPK", "_rid": "dhAmAIUsA4oHAAAAAAAAAA==", "_self": "dbs/dhAmAA==/colls/dhAmAIUsA4o=/docs/dhAmAIUsA4oHAAAAAAAAAA==/", "_etag": "\"00000000-0000-0000-9f84-a0958ad901d7\"", "_attachments": "attachments/", "_ts": 1630537000
这个文档感兴趣的字段是:created_at, id, and text.
There is a TwitterData.json file that you can upload to the SampleDB database. It's recommended that you add it to a separate container. This can be done by:
/id上传项目按钮尝试运行几个选择查询以找到文本字段中包含Microsoft的文档。提示:尝试使用LIKE关键字。
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。