面向小型公司的数据库教程(二)

原文:Databases for small business

协议:CC BY-NC-SA 4.0

八、数据保护、安全和隐私政策

大多数企业持有一些个人数据,例如,客户或员工的个人信息。如果这些数据与某个可以被识别的人有关,你很可能要承担重要的法律责任。如果数据遭到破坏,财务后果和对您声誉的影响可能非常严重;处罚的确切性质取决于适用于您企业的司法管辖区。与任何法律一样,了解它如何影响您的业务、如何遵守以及如何将任何要求纳入您的业务政策非常重要。此外,数据泄露可能会导致其他费用,如客户赔偿和数据恢复成本。

保护数据所花费的时间通常比发生问题后恢复损失所花费的时间要少得多。新的威胁总是存在,企业必须保持警惕。数据保护和安全是通过员工教育、高效的业务流程和清晰的业务政策的结合来实现的。战略必须是全面的,并整合到业务的各个方面。小型企业比大型企业更容易受到攻击,因为它们无力承担最有效的数据安全措施。

如果发生违规,企业需要确保能够尽快处理,避免严重后果。违约后很难重新获得客户的信任。

数据保护立法

长期以来,个人数据一直面临电子和物理盗窃的风险,但近年来移动设备和云的使用意味着犯罪分子或简单的人为错误有更多的机会导致违规。适用的数据保护立法越来越多。美国有大约 20 部国家隐私或数据安全法,以及各州之间的数百部此类法律。例如,加利福尼亚州有超过 25 个州的隐私和数据安全法。这些法律针对特定的问题或行业,在此提供完整的总结是不实际的。目的是提供一些指导。

一些美国企业已同意遵循 1998 年英国数据保护法案中与数据处理相关的前七项原则。如果你遵循这些原则,不管适用于你的企业的管辖权,你很可能会在良好的法律地位。以下各节中概述的这七条原则是您考虑数据保护问题的有用起点,即使它们可能不是您所在国家的法律。它们对于整合存储、处理和保留数据的业务策略特别有用。

《英国数据保护法》适用于纸质记录以及以电子形式保存的记录,并赋予个人某些权利。它还规定记录和使用个人数据的企业有义务公开这些数据是如何被使用的。术语“个人”是指顾客、客户、询盘者或任何最适合您的小企业的术语。

应该公平合法地处理数据

您必须向个人提供您的企业名称以及他们的个人数据将被用于的目的。就个人如何访问和更正您掌握的个人数据给出明确的说明。您应该只从合法授权提供个人数据的人那里获取这些数据;在大多数情况下,这将是个人自己,除非他们是未成年人。

您必须向个人解释他们的个人数据是否会以任何不明显的方式使用。对于他们的个人数据被保存或使用的目的,你不能欺骗。例如,你必须告诉个人,他们的个人信息是否会被传递给征信机构。

简而言之,持有个人数据的企业应定义(可能在公开的隐私政策中)以下内容:

  • 将保存哪些数据
  • 持有该等资料的目的
  • 是否会向任何第三方披露任何数据,如果会,是哪些第三方
  • 加工的任何不明显的结果
  • 个人可以撤回同意企业持有或使用的任何个人数据
  • 个人如何检查或修改企业持有的数据或请求删除该数据

必须为特定的合法目的处理数据

你必须有一个具体的、合法的理由来收集数据;你不能简单地投机性地收集它。此外,您不能将收集的数据用于其他不相关或非法的目的。例如,未经个人事先同意,小型企业为衡量客户满意度而收集的数据不应用于直接营销。

数据必须足够、相关,并且不要过多

持有的个人数据的级别应仅限于这些详细信息的相关程度,以及实现所述目的所需的程度。因为个人数据在以后可能有用而持有这些数据是不可接受的。

只有在绝对必要的情况下,才能保存敏感的个人数据。例如,如果你不需要知道一个人的种族,收集这样的数据将是过度的。然而,如果种族是项目的关键,收集它被认为是相关的。在"连接南方"的案例研究中,授予该组织的赠款特别指出,该服务的目标之一是向不同族裔的人提供服务。为了证明该组织实现了赠款的这一特定目标,必须收集关于其询问者的种族的数据。

总的来说,记录下需要任何个人数据的原因对您的企业是非常有用的。

数据必须准确和最新

您持有的任何数据必须真实准确,并在必要时进行更新。根据您的业务性质,您可能需要开发允许个人快速更新其详细信息的程序。

通过确保您定期检查客户详细信息并在您意识到变化时立即更新您的记录,可以使您的数据库保持最新。细节可能随时改变。个人也可以随时要求更改他们的详细信息。

保持数据准确(或清理)在第十章的中介绍,保持数据最新(或维护)在第十一章的中介绍。

数据不得保留超过必要的时间

如果您收集数据的目的具有时间敏感性,您必须确保不再需要该数据时不再保留该数据。如果适用,您应该告诉个人数据将保留多长时间。

很有可能您的数据库包含您不再需要的数据,对您的数据进行年度审计会很有用。但是,如果税务和其他机构要求您保留此类数据,那么将其保存在档案中是有意义的。

您应该创建一个数据保留策略,规定哪些数据需要存档、存档多长时间以及存档的原因。

必须根据个人权利处理数据

该法案规定了个人的权利以及数据持有者的责任。重要的是要确保你理解这些权利,并按照这些权利行事。

Individuals have the right to access copies of personal data held about them, either on computer or in a structured manual filing system.   Individuals have the right to ask in writing that the business not process data where it is likely to cause them damage or distress.   Individuals have the right to ask the business in writing to cease processing their personal data for direct marketing purposes.   Individuals have the right to object to a business in writing to decisions affecting them where they are made by automated processes and can request that decisions are made with human involvement.   Individuals have the right to compensation through the courts for any damage and distress suffered as a result of any breaches of the Data Protection Act committed by a business.   Individuals have the right to rectification of data that’s inaccurate or contains expressions of opinion based on inaccurate information.

数据必须安全

您的企业必须采取所有适当的措施来保护个人数据的安全,无论其格式如何(纸质或电子)。确保程序到位,以防止非法和/或未经授权的处理,并保证数据受到保护,防止意外丢失和破坏或损坏。这项义务涵盖远程工作的员工。您可能需要开发技术和组织过程来处理这一义务。以下部分提供了有关保护数据安全的指导。

自学

避免在网上工作时点击未知链接和弹出窗口,或者在无法核实来源时打开任何电子邮件附件。保存机密数据的设备不用于搜索互联网或浏览社交媒体网站可能是明智的。锁定您的手机和平板设备。

破解密码的软件在网上很容易买到,因此仔细创建密码至关重要。

  • 使用包含八个或更多字符以及字母、数字和符号组合的强密码
  • 在不同的网站上使用不同的密码
  • 定期更改密码
  • 不要与任何人共享密码或写下密码

未受管理的管理员权限可能会造成安全威胁,因此请确保为非管理员员工创建适当的访问限制,尤其是当这些员工使用自己的设备时。

如果有人能接触到你的电脑,所有这些预防措施都毫无意义。如果有人可以访问你的电脑,甚至连登录密码都可以被轻易绕过。常见的情况是笔记本电脑或 USB 驱动器在旅途中丢失或被盗。在云中存储机密数据有助于解决这些问题,这将在第十八章中讨论。

大多数公共 Wi-Fi 区域,如酒店提供的互联网和网吧,不会加密数据。这意味着您的未加密数据可能会被中断。你必须要么使用加密软件,要么只对你乐意公开的数据使用公共 Wi-Fi。

尽量减少纸质文件,并锁在文件柜中。这些应该被扫描,所以总是有一个数字备份。如果纸没必要留着,最好切碎。

教育你的员工

如果您网络上的一台计算机遭到破坏,您的整个企业都将面临风险。员工必须接受有关互联网安全、安全性和最新威胁的教育,以及如果他们放错数据或怀疑恶意软件(恶意软件)感染了他们的机器时该怎么办。

确保对所有员工进行如何管理敏感数据的培训。机密信息通常是由未接受过适当培训的员工无意中泄露的。您可以通过特定的教学课程和印刷材料,或者使用员工手册来进行培训。培训应包括以下所有内容

  • 如何构造强密码
  • 通过电话或电子邮件安全提供的数据类型
  • 使用公司电脑、智能手机和其他设备的限制
  • 小心打开附件或点击垃圾邮件中嵌入的链接
  • 相关商业政策

第二十章给出了员工培训的进一步指导。

安全策略

一个既能保证数据安全又能让员工尽可能自由工作的系统是确保遵守安全政策的关键。在员工开始使用他们自己的设备之前,所有的安全策略都应该在您的整个企业内达成一致并清楚地写入和共享。

正式的商用计算机政策应概述员工可接受和禁止的在线活动。例如,该政策可以向员工明确表示,商业设备不应用于个人电子邮件或社交媒体。可以就办公室内外笔记本电脑和其他设备的使用提供指导。

应对数据进行备份,并在适当时进行存档。第十一章和第十七章详细介绍了数据备份和数据存档。对于当前正在使用的数据,制定数据恢复计划和灾后计划是非常有用的。如果你不幸不得不使用这些计划中的任何一个,你将会处于压力之下,并且很可能无法使用公司的资源。提供清晰、详细的说明,包括所有的电话号码和网站,以执行您的计划。在多个现场和非现场地点保留一份计划副本。

数据保护应该是您办公室的首要任务。每个季度,留出时间审查您的安全策略并做出调整。例如,您可能添加了需要保护的新技术。

使用软件保护您的数据

确保您使用的是高效的防病毒软件,并保持更新。此外,如果可能,请确保您使用的是最新版本的操作系统,并且所有更新都已就绪。如果可能,使用最新的技术加密您的数据。第十一章详细介绍了这些问题。

原则八

英国《1998 年数据保护法》的原则八与美国无关,因为它规定任何国家都不应将数据转移到欧洲经济区以外的国家。然而,这是一个有用的警告,因为在跨境开展业务时,你必须保持警惕。许多国家没有处理数据泄露的立法,如果您的数据在海外遭到破坏,您可能没有任何追索权。

摘要

在工作过程中持有个人相关数据的小型企业必须考虑:

  • 他们持有的数据是否受《数据保护法》概述和本章描述的要点的约束
  • 他们所做的安排是否满足该法案对他们所持数据安全性的要求
  • 采取什么程序来迅速回应个人的个人资料要求

即使这些特定的数据保护法不适用于您居住的地方,遵守这些要点也是谨慎和良好的做法。为便于参考,表 8-1 中概述了这些原理。

表 8-1。

First Seven Principles of the 1998 Data Protection Act

| 原则 | 标题 | | --- | --- | | one | 应该公平合法地处理数据 | | Two | 数据应出于特定的合法目的进行处理 | | three | 数据应该是充分的、相关的,而不是过多的 | | four | 数据应该是准确的和最新的 | | five | 数据不应保存超过必要的时间 | | six | 应根据个人权利处理数据 | | seven | 数据应该是安全的 |

九、收集您的数据

明确的目标对于有效的数据收集至关重要。任何技术对你的小企业所能做的最好的事情就是帮助它廉价而快速地实现目标。第五章讲述了设定业务目标、杠杆和指标。第七章讲述了数据库设计,将业务目标牢记在心。本章介绍了数据收集,并解释了一些收集数据的方法。

概观

十有八九,你已经在收集数据了。例如,如果你接受顾客的钱,你可能会给他们开发票并做记录。这些数据可以直接放入你的数据库。然而,以这种方式收集数据并不能帮助你理解为什么人们会有这样的行为。因此,需要进一步的数据收集技术来帮助回答特定的问题,并帮助您的企业朝着其特定的目标前进。如果你想改善和发展你的业务,你可能想超越你收集的数据的界限。可能有益的数据包括:

  • 您客户的人口统计数据
  • 客户对你提供的产品/服务的反馈
  • 您的客户对特定变化的态度

小型企业收集描述其当前客户的数据至关重要。关于性别、年龄和种族的人口统计数据很重要,尽管还必须考虑数据保护和隐私:第八章规定了关于数据保护的指导原则。数据收集可以简单到询问人们向朋友和同事推荐你的公司的可能性有多大,也可以包括关于客户体验各方面满意度的详细问卷。

您应该以足够频繁的时间间隔收集数据,以实现您的最终目标。例如,库存数据可能必须连续收集,而关于新产品发布的反馈可以在需要时收集。

小型企业应该和大型企业一样重视数据收集的准确性,如果不是更多的话。例如,一个大企业可能一个月丢几张发票,但对小企业的影响可能要大得多。充分的培训和监督对于确保准确收集和输入您的数据至关重要。员工培训包含在第二十章中。

数据收集应该是一致的,这样你就可以跟踪一段时间的趋势。例如,当收集关于客户发票的数据时,确保每次都以完全相同的方式进行。数据应安全存储(参见第八章)并且数据收集程序应尽可能简单。

数据收集方法

收集数据的方法有很多种,如下面几节所述,您将了解每种方法的优缺点。对第 2–4 章中介绍的三个案例研究最有用的方法也进行了说明。

这里考虑的所有方法都需要参与者积极参与。然而,在许多采用这种收集方法的情况下,参与率可能非常低。幸运的是,被动收集数据也是可能的。例子包括当人们浏览你的公司网页时,收集他们的网络浏览习惯的数据。谷歌分析(Google Analytics)等工具可以帮助你做到这一点,因为它使你能够确定,例如,你的网站上最受欢迎的页面,你的访问者用来访问你的网站的关键字类型,以及你的访问者来自哪些国家。

此外,有可能获得不特定于您的业务的数据,但如果将其趋势与您收集的数据进行比较,可能会有用。一个例子是来自美国人口普查局的数据,可从census.gov获得,它涵盖了美国各地理区域的各种人口统计特征。从这些数据中提供的信息是有用的,因为它可以告知您当地的人口趋势,并帮助您将您从您的业务中收集和分析的数据放在正确的位置。

在线调查工具

在线调查工具是从客户那里获取数据的一种非常直接的方式。在线调查(或称电子调查)已经成为进行客户满意度调查以及产品和服务反馈评估的首选方式。

Note

调查收集工具的例子有 AskNicely、Survey Monkey、SurveyGizmo、Qualtrics、Woofu 和 Google Forms。

选择在线调查而不是其他数据收集方法有许多原因,包括节省成本、节省时间,以及通过自动回复收集提高数据准确性。

给自己最好的机会来吸引对您的调查的回应是很重要的。对任何调查的回复率影响最大的因素是受访者对该主题的兴趣。例如,对现有客户的调查可能比对非客户的调查有更高的回应率,因为受访者是从与您的业务有关系的一群人中抽取的。

尽管如此,还有其他因素可以提高答复率,如下所示:

  • 目标受众必须经常使用电脑和互联网。
  • 调查的标题应该简短且切题。
  • 应该清楚如何开始调查以及如何完成调查。
  • 问题应该具体且易于理解,例如,“您对我们的客户服务的满意度如何,从 1 到 5 分?”。
  • 为了简单起见,调查应该使用一个目标。
  • 文本应该保持最少:一页包含三到四个问题就足够了。当顾客想要买东西时,他们不会喜欢填写详细的问卷。

你可以使用各种类型的问题,比如多项选择、复选框、是/否等等。开放式问题很难管理。开放式问题的一个例子是,“描述一下我们的服务有多有用”。足够宽泛以捕捉真实反应的特定选择提供了更易于使用的数据。尽管如此,添加一个可选的文本框还是很有帮助的,这样参与者可以根据自己的意愿扩展他们的回答。参与者应该能够在 10 分钟内完成整个问卷。

以下标准将有助于提高您的回复率:

  • 解释将如何使用数据,并解决相关的数据保护问题(第八章详细介绍了数据保护)
  • 给你的客户一些好处,作为他们提供数据的回报,比如参加抽奖
  • 避免询问“识别”数据,如姓名、地址或出生日期—地理区域等数据可以在州级别获取,年龄范围(如 20-29 岁、30-39 岁等)可用于封装年龄
  • 自愿提供联系信息,如电子邮件地址

在线调查很容易分发。您可以使用电子邮件向目标受众发送链接,请他们完成调查。但是,请确保您的电子邮件地址是准确的,并且您的列表是最新的。您可以将调查的链接放在您的企业网站或博客上。你也可以使用社交媒体,如脸书、Twitter 或 LinkedIn 来推广你的调查,并寻求反馈。最后,如果合适,您可以通过书面信函提供调查的详细信息。

好的调查问题很难写,而且可能需要相当长的时间来开发。因此,彻底测试问卷很重要,也许可以利用你的员工。

请注意,调查需要回答者填写问卷,并且通常需要一定的文化水平。如果多种语言在您的业务中很常见,请确保使用您的目标群体的所有主要语言来准备调查问卷。许多在线调查平台迎合多种语言。

与其他数据收集方法相比,在线调查有许多优势:

  • 与邮政调查相比,它们的管理费用更低,覆盖的地理区域也更广
  • 与电话采访或面对面采访等方法相比,评估者产生偏见的可能性更小,因为相同的问题是直接问所有受访者的,没有采访者参与
  • 有些人觉得回答调查比参加面试更舒服
  • 将封闭式回答列表是一个简单明了的过程

但是,在选择在线调查之前,您应该考虑几个问题:

  • 除了语言障碍(可以在一定程度上缓解),问题对所有受访者的意义可能不尽相同。这可能导致不能正确反映意见的不准确结果。在面试中,这些类型的误解更容易被发现和纠正。
  • 由于缺乏与受访者的联系,你永远不知道谁真正完成了调查。
  • 你没有资格探究更多的细节。

邮政调查

您可以通过邮件分发或发送打印好的问卷,然后收集问卷或用贴有邮票的信封寄回问卷。

为了便于以结构化格式填写表单和数据条目,表单应该是机器可读的,或者至少具有清晰可识别的数据字段和预编码的响应。除了这些方面之外,您还可以像设计在线调查一样设计打印问卷。

自填式调查依赖于包含被调查者正确姓名和邮政地址的适当数据库。如果您的列表过时、包含拼写错误、重复或由不合适的参与者组成,回复率将会很低。

面对面面试:使用纸质表格

面对面的面试可以是结构化的,也可以是开放式的。结构化面试是通过使用类似于在线调查的调查表格来进行的,尽管仍有余地使其更长。开放式面试包括在面试过程中做笔记,这些笔记稍后会被整理。移动设备是在面对面访谈中收集数据的一种有用方式,我们将在本节稍后讨论。

面对面面试有以下优势:

  • 它们使您能够提出比在线调查更复杂的问题
  • 您可以在收集数据时验证数据,从而提高数据质量
  • 你可以对一个回答的有效性有更深的理解
  • 可以与受访者互动;例如,你可以给他们看样品
  • 更容易在更长的时间内保持受访者的兴趣
  • 受访者不太可能拒绝回答问题
  • 您可以更容易地解决任何关于保密性的问题,因为查询可以直接处理
  • 面对面的采访对于收集引语和故事特别有用

面对面面试也有很多缺点:

  • 组织这些活动的费用可能会很高,尤其是如果活动发生在广阔的地理区域
  • 采访者经常独自工作,工作的质量很大程度上取决于他或她的责任心
  • 由于受访者之间的旅行时间,这些调查通常很耗时
  • 他们容易受到面试偏见的影响
  • 他们可能会对被调查者造成干扰

与准备网上调查一样,在面试开始前彻底测试为面试设计的表格是很重要的。

电话采访

电话采访可以平衡(在线和邮寄)调查和面对面采访的优缺点。与在线和邮寄调查不同,电话采访使采访者能够直接与他们的受访者互动,从而导致更深入和可能更准确的采访。然而,时间和费用通常要高得多。

当电话面试与面对面的面试相比时,他们可能会节省时间和金钱。电话面试通常比在线或邮寄调查持续时间更长;20 分钟是一个合理的长度。另外,也没有时间和金钱花在旅行上。面对面的采访确实具有有效利用视觉效果的优势,尽管随着 Skype 等在线技术的普及,这不再是一个问题。在电话面试中缺乏个人接触也会妨碍评估者对回答背后隐藏的东西的判断。同样,像 Skype 这样的技术可以帮助减轻这种情况。

采访者使用移动技术收集数据

结合(在线和邮寄)调查和面对面访谈优势的另一种方法是使用移动技术通过电话或面对面访谈收集数据。你可以使用智能手机和平板电脑来收集数据。移动技术具有以下优势:

  • 您可以节省收集和交付数据的时间,因为数据直接输入到您的移动设备中:数据不必从纸质问卷转录到电子存储中。
  • 数据质量更好。将数据直接输入到移动技术中,避免了对糟糕笔迹的破译。
  • 也有可能在输入数据时识别出任何错误,从而在这些问题变得普遍之前,通过与采访者的沟通来纠正这些问题。
  • 鉴于智能手机和平板电脑的广泛使用,面试官可能只需要很少的技术培训。
  • 根据所使用的技术,可以将文本与其他格式的数据(如照片)结合起来。

使用移动技术时也有潜在的问题:

  • 您的公司可能需要购买平板电脑和智能手机,并支付相关使用合同的费用。
  • 存储在设备上并在设备之间传输的数据可能易受攻击。在设备级别和传输过程中使用加密会有所帮助;这些问题在第十一章中有更详细的介绍。
  • 移动设备上的数据收集会随着技术的变化而变化,所以你必须仔细地做好长期规划。

作为数据收集工作一部分的案例研究

案例研究全面展示了人们对某项服务的体验。它们代表数据的深度而不是广度,因此,它们最好与本章中描述的其他方法一起使用。为案例研究收集数据、组织数据和分析数据通常非常耗时。这些数据通常是通过采访收集的,最好是面对面的采访。但是,组织可能有足够的数据来汇总案例研究,而无需进行广泛的数据收集。如果是这种情况,你必须确保那些参与的匿名。

团体活动/焦点小组

以前的每一种方法都与个人层面的数据有关。但是,在组级别收集数据也很有用。团队中的人有时会互相交流想法,产生比单独接触更多的反馈。

数据不一定代表其他组,随机样本可能是一个解决方案。在某些情况下,焦点小组可能是合适的,特别是当它由生活方式与计划的产品发布相关的人组成时。

组织这样的活动需要时间和资源,人们需要强烈的动机来参加。群体事件容易产生采访者偏见。此外,如果面试官不能有效控制团队,少数参与者可能会主导讨论。

案例研究:智能手推车公司的数据收集。

Smart 独轮车公司的许多数据是作为日常业务的一部分收集的。新客户下订单时会添加客户详细信息,必要时会更新现有客户的详细信息。类似地,关于发票、产品、供应商和材料的数据作为业务操作的一部分被存储。

第五章探讨了 Smart 独轮车公司的目标、杠杆和指标。回想一下,目标之一是增加利润。这一章考虑了提高利润的各种手段。在这些杠杆中,有两个非常适合本章描述的数据收集方法——扩大客户群和接受信用卡。

扩大客户群

第一个想法是,客户基础可以扩展到儿童。明智的做法是进行一些市场调查,看看是否有人对儿童用的小手推车感兴趣。该公司可以设计一个带有几个问题的在线调查,旨在收集关于潜在兴趣的有用数据。例如,他们可以把调查放在他们的网站上。问卷示例如图 9-1 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 9-1。

Online survey form for Smart Wheelbarrows Inc.

调查结束时会询问受访者是否愿意参加价值 100 美元的花园中心代金券抽奖。如果是这样,他们需要留下他们的电子邮件地址。否则,他们可以提交调查问卷,而不留下任何联系方式。

接受信用卡

智能手推车公司增加利润的另一个潜在方法是引入信用卡的使用。他们可以进行市场调查,以确定客户会发现这项服务有多有用。他们希望能够证明使用信用卡所产生的费用是合理的,并在设计调查问卷时考虑到这一点。

案例研究:詹宁斯-哈佛律师事务所

Jennings-Havard 律师事务所的目标是提高客户保持率。他们发现的一个杠杆是本章所描述的数据收集方法的理想工具——确定客户是否对他们接受的服务满意。其他两个杠杆,最大化客户交互和随着时间的推移跟上客户需求,由企业已经收集的数据来满足。

确定客户对他们接受的服务是否满意

像 Jennings-Havard 律师事务所这样的公司可能有一些使用互联网的客户,也有一些不使用互联网的客户。因此,网上调查和书面调查相结合是合适的。调查应该很短,但提供足够的数据,给公司明确的方向,哪里需要改进。示例如图 9-2 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 9-2。

Online survey form for Jennings-Havard Law Offices

可以在所有电子邮件通信中包含调查的链接,并且可以在所有发出的邮件中添加纸质副本。前台也有打印好的表格。

案例研究:连接南区

Connecting South Side 有可能使用许多数据收集方法来实现其目标。

该组织将电话评估作为其日常工作的一部分,因此直接询问询问者是否会参加正式的电话面试。访谈的目的可能是收集有关连接南区的反馈,目的是向授权人展示该服务广受欢迎。在线和纸质问卷也可以用来收集对服务的意见。

“连接南方”可以使用数据库中存储的查询描述来生成匿名案例研究,这将展示工作的性质和深度。他们需要小心数据隐私,并确保在这些案例研究中没有识别因素,例如生活在不寻常环境中的人。一个例子是有人在很小的时候就有了异常多的孩子。

连接南区参与各种当地活动。通常这包括派一两个员工去推销服务。这些员工可以收集当地服务中有问题的差距的数据。他们可以通过纸质表格或移动设备收集这些数据,并反馈给拨款委员会。

摘要

表 9-1 总结了本章介绍的数据收集方法。本章探讨了每种方法的优点和缺点,因此您可以明智地选择最适合您业务的方法。为了提供真实的例子,本章还探讨了在第 2–4 章中介绍的三个案例研究可以使用的数据收集方法。

表 9-1。

Summary of Data Collection Tools

| 数据收集方法 | 何时使用 | | --- | --- | | 在线调查工具 | 当成本很重要时,当时间很重要时,当客户群可以在线访问并掌握技术时 | | 邮政调查 | 适合那些对使用在线调查没有信心或没有互联网接入的人 | | 面对面面试:使用纸质表格 | 当需要与受访者进行非结构化互动和/或视觉演示会有所帮助时,此功能非常有用 | | 电话采访 | 介于(在线和邮寄)调查和面对面采访之间:它们比面对面采访更快更便宜,也比调查更深入 | | 采访者使用移动技术收集数据 | 当钱不是问题,但时间和数据质量很重要时,这很有用 |

数据收集与数据清理密切相关,数据清理在第十章中有所描述。糟糕的数据收集会导致数据错误百出。可能需要改进数据收集来缓解这种情况。

进一步阅读

互联网、电话、邮件和混合模式调查:量身定制的设计方法。约翰·威利父子公司;4 th 版精装,2014,ISBN-13: 978-1118456149。

十、清理您的数据

每组数据都包含一些错误。检测和消除这些疏忽,即所谓的数据清理,通常是一个漫长的过程。然而,为了能够从数据分析中得出准确的结论,高效的数据清理是必不可少的。此外,《数据保护法》的原则之一(在第八章中描述)是确保您的数据是准确的,并且在必要时是最新的。

概观

数据清理包括三个主要步骤:

Detecting the errors   Selecting and applying the most appropriate methods to correct the errors   If possible, preventing the errors from happening again

数据清理的过程通常是开放式的,因为有些错误很难发现和消除。此外,数据库很少是静态的,而是定期更新和追加。因此,不干净数据的可能性始终存在。

根据数据的预期应用,您必须决定要在数据清理上花费多少精力。您的准确性标准可能会根据数据的预期用途而有所不同。

大型组织通常将数据清理步骤外包出去。然而,小型企业通常在内部进行数据清理,并需要获得适当的技能。以下部分描述了可能出现的错误类型,并给出了有关如何查找、补救和预防这些错误的建议。

为什么干净的数据很重要

你的数据越干净,你的分析和行动就越有用和准确。不干净的数据可能代价相当高。例如,这些成本可能表现为未能满足法规遵从性或未能及时解决客户问题。

数据分析可用于确定企业的进一步投资。例如,如果一家企业的销售额在过去几年中有所增长,那么现有的商店可能不足以应付预期的销售额。因此,将需要更多的商店和员工。显然,如果这种投资是基于不干净和错误的数据分析,金钱和时间可能会被浪费。制定此类决策时,干净的数据至关重要。

当不准确的数据被用来支持广告时,会导致不必要的成本和可能的声誉损失。例如,客户地址、购买习惯和偏好的列表应该是正确的,没有重复的,如果它是通过直接邮寄来为新产品做广告的话。任何不正确的地址都可能导致信件因无法投递而被退回,从而浪费金钱;邮件列表中的重复客户将会收到不止一封信,再次导致企业不必要的开支以及客户的失望。关于消费者购买习惯和偏好的不准确数据可能导致不良的客户描述和不符合人们兴趣的产品广告。

正如第章第 2–第 4 中的案例研究所示,业务数据不仅仅包含客户数据。例如,智能手推车公司有一个标准化零件代码的材料数据库表。这些数据必须准确,以便订购正确的零件并联系到供应商。如果不是这样,那么订购错误的材料会浪费金钱和时间。

不干净数据的原因

了解不干净数据的原因有助于改进数据收集程序(在第九章中讨论)和改进数据清理技术。例如,如果你断定一个错误的数据输入是由打字错误引起的,键盘的布局可能会引导你找到正确的输入。

以下部分确定了不干净数据的许多原因。

数据输入中的打字错误

数据输入通常是手工完成的。数据可以是电话交谈的结果,也可以来自书面或印刷来源。在这些情况下,由于拼写错误或对数据源的误解,在将数据键入数据库时可能会出现错误。有时,数据值可能被输入到错误的列中,这使得错误难以检测。

其他问题包括在列中单词的开头添加额外的空格,这在数据处理过程中会引起问题,例如在对数据进行排序时。例如,如果猫、玫瑰、船、汽车和城堡是 Cards for Everyone Inc .的产品名称,并且它们是按字母顺序排序的,我们会认为顺序是船、汽车、城堡、猫和玫瑰。然而,如果一个空间被不经意地放在了猫的前面,顺序就会变成猫、船、车、城堡和玫瑰。在一个简短的列表中,这不是一个大问题。然而,在具有数百个条目的列表中,由于这些条目被有效地隐藏起来,所以出现在意想不到的地方的数据项妨碍了列表的排序。

文本中的非打印字符

非打印字符是不希望在文本中看到的指令,而是用于在后台格式化文本。来自 HTML(用于编写网页)的一个例子是\n,意思是“移动到新的一行”。当文本从一个地方转移到另一个地方时,非打印字符可能会变得可见,从而导致混乱。

文本不一致

大小写的差异会导致排序错误,至少会使数据库看起来不整洁。比如“瑜伽课”和“瑜伽课”指的是同一个东西。MS Access 不区分大小写,但是您需要检查您使用的数据库包是如何处理大写和小写的。

使用单数和复数名词也会引起问题。例如,“铰链”和“铰链”可能指的是同一个东西。如果数据库中同时有这两个记录,可能会导致重复记录(这将在本章后面讨论)。

编码错误

当输入不正确的代码时,会出现编码错误。例如,如果 1 =男性,2 =女性,并且在某些情况下错误地输入了女性的 1 而不是 2,那么这就形成了编码错误。这种错误通常发生在数据收集时,例如在电话或面对面访谈中。

有时可以将列自动设置为默认值。例如,默认情况下,代表性别的列可以设置为男性。如果数据输入者错误地忽略了这一列,即使是女性顾客,也会保留默认值。

缺失数据

数据丢失可能有多种原因。例如,客户可能拒绝回答问题,数据输入者可能没有数据输入数据库,等等。如果我们忽略所有缺少值的行,那么有用的数据就会被浪费掉。

缺失值不一定以一致的方式出现在数据库中。例如,缺失的数据可以用超出范围的数据进行编码,例如 999,这样就很容易看到。但是,有时像 0 这样的值可能用于编码可能不突出的丢失值。其他时候,缺失的数据由默认值替换(例如,性别=男性)。虽然这样的值看起来是正确的,不会留下明显的错误痕迹,但过一会儿,数据就会变得没有意义或有误导性。

数据类型

在数据库中,数字有时不是数字类型,而是以文本类型存储,如“短文本”。这意味着计算总数、平均值等所需的数学运算不能应用于该值。此外,这些数字不能以数字精确的方式排序。例如,如果数字 5、11、4、10 和 9 以“短文本”数据类型保存并按升序排序,则结果将是 10、11、4、5 和 9,这在数字上是不准确的。

输入日期时应使用“日期/时间”之类的类型。否则,诸如过滤给定月份的所有行之类的操作将无法应用。

Note

筛选器使您能够专注于感兴趣的行的子集。例如,您可以只查看或搜索包含给定时间段内的日期的行;包含以 s 开头的名称的所有行;或者包含数量少于 5 的所有行。图 10-1 显示了 Access 中可用的过滤器类型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 10-1。

The filter function in MS Access

数据集成错误

您的数据库可能包含使用各种方法从多个来源获取的数据。这可能意味着使用不同的数据表示,不一致地使用单位和缩写,等等。例如,可以使用其他格式来表示客户地址:一种格式将除邮政编码之外的整个地址放在一列中,另一种格式将地址的每个部分放在不同的列中。

以下是不同格式的货币数据的一些示例:

  • 500 万美元
  • 3000 万至 3500 万美元
  • 15 亿
  • 20 亿美元
  • One million
  • One thousand

因此没有一致的单位或数据类型。

截尾和截断

截尾数据指的是有限但不精确的测量值。例如,所有持续时间超过 20 分钟的电话都被记录为持续 20 分钟。这意味着数据可能不反映实际情况:如果所有呼叫持续时间超过一小时,在这种情况下,它们仍然会被记录为持续 20 分钟,这并不反映实际情况。

截断数据是指超出或低于某个界限时被丢弃的数据。例如,每月通话时间少于两分钟的客户不会被输入数据库。与审查一样,截断会导致数据不能反映真实事件。

单个单元格中有多个数据项

我们在第七章中看到,每个单元格应该只包含一个数据项。例如,输入为“瑜伽课和太极课”的活动应分别输入为“瑜伽课”和“太极课”。

极端值

术语“异常值”指的是与预期的显著偏离。例如,在每个人的卡公司的每个客户每月卡销售额的下列数字序列中,最后一个值是意外的,因为它远远高于所有其他值:

2,4,9,5,10,2,7,6,8,3,104

离群值可能是合理的,并且非常有用。例如,如果 104 是正确的,它可能代表高利润的客户。然而,104 也可能代表打字错误。

有些异常值可能只有在两列比较时才会出现,比如年龄和性别。举个例子,假设你有一群男女混合的人,M =男,F =女,年龄平均分布在 20 到 50 之间,如表 10-1 中的合计列所示。假设其中一名女性比其他所有女性年轻 10 岁。只有当性别年龄分开时,人们才会注意到这一点,如表 10-1 所示。

表 10-1。

An Example of an Outlier Based on Two Columns

| 年龄范围 | 频率(米) | 频率(华氏度) | 总数 | | --- | --- | --- | --- | | 40 | Eleven | nine | Twenty | | 30 | nine | eight | Seventeen | | 20 | Eighteen | one | Nineteen |

不合逻辑的行

发生一些错误是因为它们不符合您的业务逻辑流程。例如,发票日期早于业务开始日期是不合逻辑的。此外,任何产品的数量都不应小于零。

重复行

重复行是指表示同一事物(如客户或产品)的两行或更多行,而实际上应该只有一行。这些行的值不需要完全相同:它们可以表示相同的内容,但是它们的所有或部分列的值不同。例如,由于错误的更新,Cards for Everyone Inc .的客户可能在两行中有相同的姓名,但有不同的联系人数据。重复项可能由不同的行组成,这增加了检测它们的难度。

相同的事物使用不同的名称会产生重复的行。例如,“糖尿病南区”和“糖尿病南区”指的是同一个组织,需要删除一个。

形容词的使用也可能导致重复行。例如,“放松瑜伽课”与“瑜伽课”相同,只需要使用“瑜伽课”。

以“the”为前缀的名称也可能导致重复。例如,“咨询中心”和“咨询中心”是一样的。

数据库表之间的链接断开

随着时间的推移,插入、删除和更新将导致链接断开。例如,在 Cards for Everyone Inc .中,供应商可能会停止交易。如果您要从“供应商”表中删除供应商,但不从“产品”表中删除他们提供的相应卡片,您可能会向您的客户提供不再可用的卡片。

除了表之间的链接之外,查询、窗体和报表还可能基于以不兼容的方式进行了调整或不再存在的表。

检测、纠正和防止错误

以下部分假设您的数据存储在数据库内的一系列链接表中,如第七章中所述——所有记录长度相等,所有列的数据类型相同,每一行都有唯一的标识符。

与任何数据处理练习一样,在开始之前备份数据库是非常重要的。完成后,使用以下步骤来检测、纠正并最终防止错误。您的数据库应该使您能够自动执行这些操作。本章中的示例使用 MS Access 2013。

错误检测、纠正和预防的背景通常来自于您自己对业务的认识。例如,知道数量的缺失值条目是“999”。这种信息通常只存在于人们的头脑中,因此有必要对其进行记录,以确保其能够被传递。

打字错误的检测和纠正

您应该从检测和纠正打字错误开始,因为它们会加剧其他错误。

一些打字错误可能来自一个雇员小组,如果每个人都在他们插入的任何行上附上他们的姓名首字母,那么在需要的地方可以给予额外的培训。

拼写检查器

大多数数据库都有拼写检查功能,使您能够查找和纠正拼写错误的单词。拼写检查器还可以找到不经常使用的值,如产品或公司名称。

频率分布

当您在寻找输入错误时,考虑频率的分布是否符合您的预期。在像性别这样的列中,你会看到两个类别——男性和女性。频率分布将有助于显示频率中的任何偏差。

频率分布提供了每个值在数据中出现的次数。在第一章中,您已经看到了“人人卡公司”的各类卡的频率分布示例;如图 10-2 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 10-2。

Sample query for Cards for Everyone Inc.

您可以看到数据库中有两张类别为“生日”的卡片,其他三个类别各有一张。频率分布可应用于由名称(如图 10-2 所示)和数字数据组成的数据。

例如,如果您注意到男性比女性多,您可能会考虑这是否是输入错误。

频率分布还将显示拼写错误:例如,如果每个人公司的卡片的“生日”类别之一被拼写为“生日”,则频率分布将有一个“生日”出现,一个“生日”出现。图 10-3 显示了图 10-2 中存在生日拼写错误的查询。频率分布在第十三章中有更详细的介绍。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 10-3。

Sample query with spelling mistake in the Cards for Everyone Inc. database

从文本中删除不需要的空格

要删除不需要的空格,可以对给定的列应用以下函数:LTrim(删除左边的空格)、RTrim(删除右边的空格)和 Trim(删除两边的空格)。

使用移动技术

将数据直接输入智能手机或平板电脑等移动设备,可以防止手写问题,并有助于减少输入错误。移动技术包含在第九章中。

文本中的非打印字符

更正非打印字符通常就是找到并删除它们。通过使用内置的查找和替换功能来查找字符,也许可以在数据库中更正这些错误。最困难的步骤是识别可能出现的非打印字符的类型。建立一个清单是有意义的。您的列表可能包括:

  • \n(新行)
  • \b(粗体)
  • \ul(下划线)

由于许多非打印字符包含\,您可以从搜索文本中的\开始,并使用结果来识别您的非打印字符。理想情况下,编写一个能够自动查找和替换非打印字符列表的宏会很有用。

Note

宏是一条指令,当它运行时,启动一条或多条指令来执行任务。宏适用于电子表格、文字处理器文件和数据库。编写宏通常是为了执行一组经常需要的任务,例如创建一个带有固定标题集的表格。

作为预防措施,如果您的非打印字符似乎来自给定的来源,您可以尝试确定一种替代方法来获取数据。

文本中的不一致

文本的短列中的不一致,例如姓名的第一个字母(即 pat 相对于 Pat ),可以通过按字母顺序对该列进行排序并向下扫描任何不正确的内容来检测。

一些数据库具有可以纠正大小写不一致的功能。例如:

LOWER: Convert all uppercase letters in a text string to lowercase. UPPER: Convert text to uppercase letters.

单数/复数错误可能很难发现和纠正。创建每次数据清理期间要应用的检查列表可能会有所帮助。例如,您的列表可能包括检查:

  • 阶级与阶级
  • 会话与会话
  • 教堂对教堂

如果您选择用 Class 替换 Class 的每个实例,您可以使用 find and replace。

编码错误

为了避免默认值,例如男性代表性别,可以使用一个查询表,将未知作为默认值。这也有助于在一个列表中有清晰的代码和相应描述的查找表,这样就不会有歧义。

列可以设置为查找类型。这意味着它的值可以以下拉菜单的形式预先确定。这些菜单可用于表格或表单中的数据输入。图 10-4 显示了“产品”表中“人人公司”卡片的“类别”列的下拉菜单。填写该栏时,可以选择所需的值。这些值在每次使用时都是一致的,因为它们是由下拉菜单决定的。打字错误是不可能的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 10-4。

Lookup table for the PRODUCTS Table in Cards for Everyone Inc.

缺失值和异常值

频率分布可能有助于检测缺失值。例如,对于数字数据,由超出范围的数字(如 99)表示的缺失值将很容易被发现,因为它们通常显示出异常高的频率。但是,如果缺少的值用一个范围内的数字表示,比如 0,那么就不太容易找到。如果您有一个频率为 0 的分布,其中一些可能表示缺少值,可能需要密切关注。

频率分布还以局部方式显示数据是否丢失。例如,如果某个特定地理区域的所有调查都丢失了,那么很明显该区域出现了问题。

条形图对于检测异常值很有用。条形图显示不同类别或组的频率或其他度量,不同条形图的高度与其代表的类别大小成比例。

例如,图 10-5 中的条形图显示了异常值部分描述的 Everyone Inc .客户的 11 张卡的月销售量。这些是:

2,4,9,5,10,2,7,6,8,3,104

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 10-5。

Outlier detection for Cards for Everyone Inc.

您可以立即看到,客户 11 的月销售额远远高于其他客户,这反映出它是一个异常值。

当您收集所谓的连续比率数据时,可能会发生一个特别有趣的情况,这是一种允许无限细分的数字数据。你将在第十三章中了解更多。有了这样的数据,一种模式通常被称为正态分布。这是数据以非常规则的方式围绕平均值均匀分布的地方。

的意思是:)

这个在第十三章中有涉及。

如果将数据的频率分布绘制成线形图,它将呈现钟形曲线的形状,钟形曲线的峰值位于平均值处(图 10-6 )。简而言之,正态分布告诉我们,大多数数据将接近平均值,如果有很大一部分不接近,就可能有问题。图 10-6 中一些虚构的连续比率数据的概率显示了观察到任何观察值的可能性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 10-6。

A normal distributuion with the mean equal to 15

因此,分析正态分布可以帮助您检测错误。但是,不能保证您的数据将遵循正态分布,因此应谨慎遵循此建议。如需进一步阅读,请参阅本章末尾的参考资料。

可以用数值代替缺失的数据,如列平均值。这一过程被称为“插补”。像这样的简单插补没有考虑到列之间的任何关系,应该谨慎使用,因为它可能会引入偏差。

当您输入数据时,对缺少的值应用一致且适当的编码是很重要的。例如,在值状态的上下文中,使用术语“无”来表示缺少数据是令人困惑的。这可能意味着客户住在国外。诸如“未知”之类的条目会更合适。第二十章涵盖了通过有效的员工培训减少价值缺失的主题。

与缺失值一样,处理异常值的最佳方式可能是将它们设置为列平均值。但是,与缺失值一样,您必须小心不要过于频繁地应用这种方法。

检测由一对列生成的异常值的有效方法是使用散点图。散点图显示数值对之间的关系:在本例中,是同一数据库表中的列。一个点代表每个个体或物体,并参照两个轴上的测量值进行定位。图 10-7 显示了一个例子。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 10-7。

A scatter plot depicting the relationship between price and amount sold per week for Smart Wheelbarrows Inc.

寻找与其他点不同的点。图 10-7 显示了不同价格的小型豪华独轮车的周销售量。你可以看到,当价格设定为 90 美元时,销售额的下降与其他销售水平不成比例。散点图在第十三章中有详细讨论。

标识每列的数据类型

应该确定每一列的数据类型。在 MS Access 中,数据类型列在相应表的设计视图中,如本书末尾的附录所示。

给定列的数据类型应该反映该列中数据的性质:不匹配可能表示有错误。

  • 日期有一种类型,如日期/时间
  • 美元有一种类型,如货币
  • 只回答“是”或“否”的列具有“是/否”这样的类型
  • 任何包含需要应用计算和排序的数字的列都应该有一个数字类型,如数字或货币
  • 根据要插入的文本数量,文本可以出现在不同类型的列中,例如,MS Access 中的短文本最多可容纳 255 个字符

这种错误很容易纠正,因为您可以在表的设计视图中直接改变数据类型。应用此操作时,可能会警告您数据可能会丢失,因此请确保您正在进行正确的更正,并且您的数据库已备份。

数据集成错误

从外部数据源导入数据后,常见的任务是将两列或更多列合并为一列,或将一列拆分为两列或更多列。例如,您可能希望将包含全名的列拆分为名和姓列。或者,您可能希望将包含地址字段的列拆分为单独的街道、城市、地区和州列。反过来也可能是正确的。

与 MS Excel 一样,LEFT、MID、RIGHT、SEARCH 和 LEN 函数可用于在 MS Access 查询中将一列拆分为两列或更多列。在名称中搜索空格后,名称将被拆分。

同样,与 MS Excel 一样,可以使用&函数来合并列。

Note

在这个早期阶段,与其学习如何在数据库中应用这些函数,不如将数据发送到 MS Excel 电子表格中,在您熟悉的环境中应用这些函数,然后将数据发送回数据库中经过调整的表中。

截尾和截断误差

频率分布可能显示截断误差和截尾误差。例如,如果频率分布显示大量电话呼叫持续了 20 分钟,但您知道许多电话呼叫持续的时间超过了 20 分钟,则此类分析可能表明存在截断错误。

或者,如果出现频率分布左端的数据丢失,表明在特定时间之内的呼叫没有被记录,即使您知道它们已经发生,这可能表明审查错误。

一般来说,检测删截和截断错误依赖于业务人员的知识。重要的是,任何审查和截断方法都要记录在案,以便其他员工了解它们。

将一行拆分成两行或更多行

数据项可能已经合并,需要分离。例如,输入为“瑜伽班和太极班”的组织应该在两个单独的行中输入为“瑜伽班”和“太极班”。

检测这样的条目并不容易。您可以搜索逗号之类的分隔符。你可以搜索像“和”这样的词。当您在日常工作中进行数据清理或使用数据库时,您可能会注意到这些错误。

除非这种错误经常发生,否则最好是通过向有问题的表中添加一个新行并拆分有问题的单元格来手动更正它们。

检查不合逻辑的错误

您可以使用约束检查来识别可能出现不合逻辑错误的列错误。例如,您可以确保:

  • 发票表中的日期总是在业务开始日期之后
  • 订购数量绝不会少于 1
  • 某人的头衔和性别是一致的——例如,如果他们的头衔是夫人,他们的性别就不应该被编码为男性

除了手动搜索这些错误之外,在一些数据库中还可以设置一个验证规则。这种规则限制不满足约束的数据的输入。有效性规则的语法与 MS Excel 等电子表格中使用的表达式相似。一些不合逻辑的错误,如涉及姓名和性别的错误,在入境时可能难以识别,一些手工检查可能是必要的。

消除重复行

您应该尝试在数据清理过程的最后消除重复行。这是因为错误删除的过程会使重复的行更加明显,所以您需要最后再做一次,以确保它们都被更正。

您需要决定如何处理某些名称—例如,是否要从“连接南区”中使用的组织名称的开头删除“the”。

一些行可能表示相同的东西,但使用稍微不同的名称。

对包含许多不同条目的列的频率分布使用字母排序有助于识别几乎相同的名称。一旦确定了它们,就可以给它们起一致的名字。

或者,可以确保给定地址的每个客户都是唯一的,假设这是一个合理的假设。如果名称稍有不同,可以合并这些行。

和任何生意一样,你对当地的了解是最重要的。例如,在 Connecting South Side,组织表中可能会列出许多瑜伽课程。这些课程可以用 Yoga 这个词来过滤,它们的形容词也可以去掉,比如把放松瑜伽课改成瑜伽课,以达到一致性。

一旦找到了不一致的地方,就可以应用许多数据库都提供的重复检测技术来识别匹配或部分匹配的行。

Note

您可能会发现,对表中的一组列应用频率分布比应用重复检测方法更容易。任何出现频率超过一次的行都可能是重复的。

检测表之间断开的链接

避免表与查询、窗体和报表之间断开链接的最佳方法是,如果插入、更新或删除行或表会导致断开链接,则指示数据库不要这样做。这是在表之间插入链接时强制执行的一个预防步骤。

Note

这个过程被称为加强关系完整性。

如果您在建立关系时没有设置这些措施,您可以下载免费的数据库插件来识别所有断开的链接。

定位两个链接表之间断开的链接的另一种方法是使用两个表中的列运行查询,通过相应的行有效地连接表。这就是所谓的连接查询。如果结果查询的行数少于“子”表,则子表包含断开的链接。这本书的附录告诉你如何建立一个简单的查询。

Cards for Everyone Inc .的一个例子涉及到 Customers 表和 Invoices 表之间的链接。这两个表之间的关系是一对多的,发票是子表,客户是父表。如果连接的客户和发票表的行数少于发票表的行数,您就会知道有些发票没有链接到客户。图 10-8 显示了客户和发票表之间可能的连接查询的查询设计,图 10-9 显示了输出。图 10-9 显示了 5 行,即与发票表相同,所以你可以断定没有遗漏环节。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 10-9。

Output from the join query shown in Figure 10-8

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 10-8。

Query design of a join query between the Customers and Invoices tables of the Cards for Everyone Inc. database Note

连接查询至少由两个表中的一列组成。

您的数据库可以让您快速识别所有不匹配的行。例如,MS Access 有一个名为“查找不匹配的查询”的工具。

数据库维护

数据库不是静态的,会定期添加新的记录。清洁也必须经常进行。这是第十一章中讨论的数据库维护的一部分。

摘要

干净的数据是做出有效业务决策的基础。清理数据的过程可能是一个漫长的过程,涉及到检测、纠正和有希望的防止错误。错误可能来自许多方面,这意味着清理过程可能很复杂。此外,必须定期完成数据清理,以跟上数据库的发展。

表 10-2 总结了本章讨论的错误的纠正和预防。

表 10-2。

Summary of Error Correction and Prevention Techniques

| 错误类型 | 清洁技术 | | --- | --- | | 打字错误 | 数据库拼写检查频率分布使用移动技术从文本中删除不需要的空格 | | 显示非打印字符 | 识别和定位违规字符并删除 | | 矛盾 | 使用内置命令(标准化大小写)选择单数或复数名词并编辑 | | 编码错误 | 只提供名称或同时提供名称和代码的查找表 | | 缺少值 | 频率分布条形图正态分布 | | 错误的数据类型 | 直接在设计视图中更改数据类型 | | 数据集成错误 | 使用内置命令(拆分列) | | 截尾和截断误差 | 内部知识的频率分布 | | 一个单元格中的多个数据项 | 将一行拆分成两行或更多行 | | 不合逻辑的错误 | 使用验证规则 | | 重复行 | 频率分布和排序使用内置的重复检测工具 | | 检测断开的链接 | 联接查询运行查找不匹配项查询 |

进一步阅读

《假人统计学》,作者黛博拉·j·拉姆齐、约翰·威利父子公司;第二版,2011 年,ISBN-13: 978-0470911082。

十一、维护您的数据库

数据库维护旨在保持数据库平稳运行。数据库不是静态的;数据被添加、删除和移动,随着时间的推移,这种变化会导致数据库变得缓慢。性能不佳的数据库会耗费您的资金并浪费用户的时间。数据库维护包括备份数据库、压缩数据库和保护数据。本章与数据清理有重叠,数据清理在第十章中讨论。本章讨论您需要定期执行的作业。

备份您的数据库

维护数据库的一个重要方面就是定期备份。这样,如果它发生任何问题,将有另一个副本可用。如果没有最近的备份,您就没有机会在灾难发生后恢复数据,例如计算机丢失或被盗,或者硬盘停止工作。

只要有时间就备份数据库是不够的。应该定期安排备份。一些数据库系统自动执行备份,定期将备份发送到另一个位置。云还提供备份服务,这将在第十八章中介绍。

理想情况下,您应该随着时间的推移运行多个备份,而不是重复覆盖同一个备份。这种方法为您提供了从任何给定时间点发生的问题中恢复的选项。最好将所有备份的数据加密,这样它们就不会被窃取;在本章的后面,您将了解更多关于加密数据的内容。

虽然现场备份很重要,但在异地保存数据库的加密副本也很重要。如果自然灾害或盗窃导致无法访问您的现场计算机或服务器,那么异地备份就变得至关重要。一般来说,备份任何一旦丢失就会妨碍业务的数据。

备份的频率取决于您特定的行业和业务需求。对于大多数企业来说,每夜备份就足够了。但是,如果您的数据在一天中发生了巨大变化,那么在关键信息发生变化时,全天备份数据库可能是有意义的。

当你有了一个好的备份系统后,你需要定期测试它以确保它能正常工作。您还需要决定谁将负责备份。

压缩您的数据库

当您向数据库中添加和更新数据和/或更改其设计时,文件会变得更大。这一增长部分来自新数据,但部分来自其他来源:

  • 当您删除数据库行或对象(表、查询、表单等)时。),行或对象占用的磁盘空间不会自动回收。这是因为被改变的行或对象不能被删除,而它仍然可以连接到其他地方的其他行和对象。
  • 您的数据库创建临时的、隐藏的行和对象来完成各种任务。要求对数据进行排序的查询就是一个例子。有时,在任务完成后,这些临时行和对象会保留在数据库中。

数据库文件可能会快速增长,被临时行和已删除行的剩余部分以及表、表单和查询等对象填满。性能可能会受到影响:对象打开速度可能会变慢,查询运行时间可能会比平时长,典型操作可能会更耗时。

为了解决这个性能问题,一旦不再需要这样的对象和行版本,就可以回收它们占用的空间,供新的对象和行使用。避免数据库增长和随之而来的损坏的最简单方法是定期压缩数据库。许多数据库都有一个允许你这样做的功能;比如 MS Access 有一个功能叫压缩和修复。压缩过程复制数据库文件,修复其对象,删除任何临时数据,并重新排列碎片。

显然,频繁接收更新或删除的表比很少更新的表需要更频繁地压缩。设置只压缩选定表的定期任务,跳过那些不经常改变的表,这可能是有用的。

至少,每天在低使用率时间压缩一次数据库是有意义的,必要时还可以压缩更新频繁的表。请记住,不能在共享数据库打开时压缩它。因此,您需要告诉用户在多长时间内他们必须避免使用数据库。如果您记录了压缩数据库需要多长时间,您就可以对数据库不可用的时间做出相当精确的估计,并相应地提供指导。

优化您的硬盘和存储设备

优化您的硬盘,有时被称为碎片整理,可以被视为压缩和修复您的硬盘或存储设备。当您保存、更改或删除文件时,碎片会随着时间的推移而产生。保存到文件的更改通常存储在与原始文件不同的位置。随着时间的推移,你的机器会变慢,因为它必须在不同的地方寻找打开一个文件。磁盘优化或碎片整理是将碎片数据整合到硬盘或存储设备上的过程,因此它的工作效率会更高。

碎片严重的文件(或驱动器)速度很慢。繁忙的数据库使问题更加复杂,因为所有这些事务会产生更多碎片。因此,你应该定期整理你的硬盘。您的操作系统提供了一种称为碎片整理程序的碎片整理工具。默认情况下,一些碎片整理程序会定期自动运行;例如,在 Windows 8.1 上,碎片整理程序每周运行一次。但是,如果您愿意,也可以手动操作。

碎片整理可能需要一段时间,所以将其安排在系统不使用的时候。您拥有的每个程序和文件都将从这一过程中受益,而不仅仅是您的数据库。但是,由于数据库的大小,它特别容易因为碎片而导致性能下降。

拆分数据库

我们在本书中讨论的数据库,如 MS Access 或 LibreOffice 和 OpenOffice 开源数据库,都存在于桌面上。这意味着它们的文件结构不同于 SQL Server 等大型数据库,因为数据和对象存储在同一个文件中。但是,最好将数据库分成两个独立的文件—一个数据库包含表、查询、表单和报表等对象形式的数据(后端),另一个数据库包含用户友好界面形式的入口点(前端)。

前端的一个例子是一个网页,它使用户能够预订机票,而所有的数据处理都在后台数据库中进行。

这种设置有助于防止数据库文件损坏,并通过将数据保存在用户不直接访问的单独文件中来限制数据丢失。当需要升级数据库时,只需用新版本替换旧的前端文件。如果您将数据和前端存储在同一个文件中,则必须将数据从旧文件移动到新文件中,这样效率很低。

您的数据库应该包含一个工具,使您能够使用几个简单的步骤来拆分它:MS Access 使用一个名为数据库拆分器的工具。

审核用户

应定期检查授权用户。对于小型企业,这可能是每个月左右。例如,您公司的一些前员工可能仍然可以访问您的数据库,这需要解决。理想情况下,最好在更改发生时更新权限,但是定期审计将帮助您找到您忘记或错过的更改。

维护安全的密码列表

如果您对数据库文件进行密码保护,保留一份所有密码的安全列表是很重要的。该列表及其位置需要与您信任的人共享。如果你生病了,发生了事故,或者正在度假,这时用户忘记了密码,或者新员工需要培训,那么这个列表将是必不可少的。

使用防火墙、防病毒和间谍软件保护软件

您的数据库需要持续和最新的病毒和间谍软件防护,系统中的所有文件也是如此。

Note

计算机病毒是一种在你不知情的情况下被加载到你的计算机上的软件,通常会执行一些不受欢迎的操作。即使是简单的病毒也能自我复制,并迅速使计算机停止运行。一些病毒访问私人数据或损坏数据。

间谍软件与病毒的相似之处在于,它会在没有警告的情况下出现,并继续做一些不受欢迎的事情。它通常旨在监视您或您的计算机,经常跟踪您访问的网站并记录您的击键,以窃取您的帐户登录信息。

防火墙是位于计算机和网络之间的软件或硬件块,只允许某些类型的数据通过。例如,防火墙可能允许检查电子邮件和浏览网页,但可能不允许诸如文件共享之类的操作。如果您通过路由器连接到互联网,那么您已经有了一种硬件防火墙来防止随机网络威胁到达您的系统。

有时病毒能够穿越防火墙进入你的系统。因此,在包括笔记本电脑和平板电脑在内的所有计算机上使用和更新抗病毒和反间谍软件是至关重要的。请记住,每天都有新的病毒产生,软件设计者需要一段时间才能赶上黑客。因此,保持您的病毒定义最新至关重要。

病毒扫描程序将定位并清除硬盘上的病毒。实时病毒扫描程序会在它们到达时注意到它们,甚至在它们攻击磁盘之前就注意到了,但这些可能很贵,并会使您的计算机稍微变慢。

让您的硬件、操作系统和其他软件保持最新

病毒可以在旧设备上滋生。为了保护您的数据库和其他文件,尽可能升级到新的路由器和计算机非常重要。

操作系统应该是相当新的,应该包含最新的更新,包括最新的安全修复。在您的系统上运行的其他软件也是如此。

随着时间的推移,旧的操作系统变得不受支持。例如,自 2014 年 4 月起,微软停止支持 Windows XP,并且不再提供更新。当使用 Windows XP 时,您的计算机仍然可以工作,但是它可能更容易受到安全风险和病毒的攻击。也不再支持 Internet Explorer 8。

加密您的数据库

您的数据库需要加密,以保护其中的数据免受黑客攻击。这是一种数据保护措施;数据保护在第八章的中介绍。

Note

加密意味着以这样一种方式转换数据,即只有具有特定代码(称为密钥)的人才能读取它。

您可以激活许多操作系统标配的全磁盘加密工具。但是,Windows 8.1 的标准版本不包括加密。您需要升级到专业版或企业版。或者,你可以使用免费的加密工具,比如 TRUECRYPT 和 GnuPG。

维护干净的数据库

清理数据是一项耗时且昂贵的任务,详见第十章。清理完数据后,您不会希望在一小部分值发生变化后,在整个数据库中重复整个过程。确定如何保持数据库的整洁是一项挑战。两种可能的方法是:

  • 在添加新数据之前,清理所有发往数据库的新数据。
  • 使用 Windows 中的数据库比较功能等工具清除数据库中修改过的任何数据,该功能可标记数据库两个版本之间对象的设计更改。如果您想识别数据本身的变化,一种方法是将您的数据移动到电子表格并使用电子表格比较。

除了检查单个值的准确性之外,您还需要识别重复的行。当进行修改以及向表中添加新行时,可能会发生这种情况。第十章解释了如何检测重复行。

摘要

数据库维护包括您将定期执行的任务。目标是让您的数据库尽可能平稳地运行,并保护它免受灾难和外部威胁。诸如备份数据库、压缩数据库以及保持软件和硬件最新等任务都很重要。

十二、搜索您的数据库

如果不能有效地访问数据,那么将数据存储在数据库中就没有什么意义。例如,当您在数据库中搜索他们的详细信息时,客户不喜欢长时间等待。一般来说,如果您了解一些基本的技术,很容易快速找到数据。

将本章放在上下文中,第十三章涵盖了数据分析,它涉及到数据的检查,而本章关注的是发现数据,这是分析之前的步骤。本章与第十九章有些重叠,后者涵盖了在线搜索。此外,您的员工能够高效地搜索数据库也很重要;员工培训包含在第二十章中。

与本书中的所有章节一样,示例使用 MS Access 2013。书的附录也有 LibreOffice 5 Base 中的例子。

搜索类型

您可能想知道您想要在数据库上执行什么类型的搜索,以及哪些类型是可能的。决定因素包括:

  • 搜索将覆盖的数据库表的数量
  • 无论您有完整的还是部分的搜索词
  • 无论是搜索单个数据项还是大部分数据

搜索示例包括:

  • 确定客户是新客户还是现有客户
  • 识别给定产品的供应商
  • 寻找最老的顾客
  • 标出不付账的顾客

数据库搜索是你营销工作的一个有用的前奏。例如,大多数企业不会只迎合一种类型的客户,即使他们销售单一的产品或服务。例如,智能手推车公司可以向大型花园中心以及公寓的所有者销售。这是两种截然不同的客户,有着不同的需求。因此,用相同的广告电子邮件瞄准这些客户不如发送每个定制的信息有效。花园中心的所有者可能对批量购买手推车的交易感兴趣,而个人可能对单项商品的折扣感兴趣。能够根据一列或多列(如地址、年龄和性别)将数据库划分为客户群是很重要的:这个过程称为细分。

就像整本书一样,本章中的许多例子都是基于 Cards for Everyone Inc .的案例研究。图 12-1 重述了其数据库的设计,以供参考。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-1。

Database design for Cards for Everyone Inc.

在表格中搜索一行或多行

涉及给定表中一行或多行的搜索可以分为基于给定列值的搜索和基于多个列值的搜索。

基于给定的列值进行搜索

以下部分介绍了基于给定列值搜索一行或多行。

搜索单行

最简单的搜索类型是根据给定的列值在给定的表中查找一行,比如根据客户的姓氏来搜索客户。如果您想知道向您购买产品的人是新客户还是现有客户,这将非常有用。

最明显的方法是直接看表。通过按字母顺序对所需的列进行排序,可以使搜索变得容易得多。图 12-2 显示了在按姓氏排序之前每个人公司卡中的客户表,图 12-3 显示了之后的表。(为了使示例更加有用,在第一章中使用的表格中增加了三个额外的名字。)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-3。

The Customers table from Cards from Everyone Inc. sorted on the LastName column

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-2。

The Customers table from Cards from Everyone Inc. Note

对数据库列中的数据进行排序将在本书末尾的附录中介绍。

排序后的列表就像一个姓名索引,可以通过扫描找到与搜索词匹配的姓名。

要避免扫描名称列表,请使用 Filter 命令。如果您使用 Filter 命令的 Equals 选项,您将直接找到所需的数据。要操作筛选器命令,请在要应用筛选器的列中选择一个单元格,然后执行下列操作之一:

  • 点击出现在上图 12-2 中上部的过滤器图标,并选择文本过滤器。
  • 右键单击并从菜单中选择文本过滤器。

图 12-4 显示了产生的过滤器命令。当您单击 OK 时,将显示 Customers 表中包含“LastName 等于 Garcia”的单行。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-4。

A text filter on the LastName field is applied to the Customers table of the Cards from Everyone Inc. database

这是一个非常简单的例子。在现实世界中,搜索可能要复杂得多。如果出现以下情况,则需要进一步搜索:

  • 不止一个顾客姓加西亚。
  • 加西亚拼错了。
  • 只有丽莎的名字被输入。

有搜索可以覆盖这些可能性;它们将在本章后面讨论。

搜索多行

或者,您可以根据一列中的值在给定的表中查找多行,例如在 Cards for Everyone Inc .数据库中,所有类别为“生日”的产品。

图 12-5 显示了每个人卡片的产品表,图 12-6 显示了只有生日卡片的同一张表。在后一种情况下,应用了类别=“生日”的过滤器。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-6。

The Products table with the Category = ‘Birthday’ filter applied

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-5。

The Products table in the Cards for Everyone Inc. database

另一种类型的搜索涉及应用于数值的过滤器。例如,在产品表的情况下,图 12-7 显示了根据小于或等于$3.00 的价格筛选行的情况。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-7。

The Products table for the Cards for Everyone Inc. database filtered on Price ≤ ‘$3.00’ Note

除了选项应用于数字之外,可以使用与前面解释的文本相同的方法在 motion 中设置这样的过滤器。

基于给定表中的多个列值进行搜索

您可能会根据多个列中的值在给定的表中查找一行或多行,例如根据名字和姓氏查找客户。例如,假设每个人公司的卡的客户表中有一个名为约翰·加西亚的客户,如图 12-8 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-8。

Updated Customers table in the Cards for Everyone Inc. database

对 LastName = 'Garcia '进行过滤得到的输出如图 12-9 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-9。

Filtering the Customers table from the Cards for Everyone Inc. database on LastName = ‘Garcia’

如果过滤后的输出很长,您可以使用 FirstName = 'Lisa '应用第二个过滤器(当然,假设您只尝试查找 Lisa Garcia)。

单个表上的搜索技术概述

对于这种在给定表中查找一行或多行的搜索,排序和过滤是查找相关数据的理想方法。使用表格符合您的电子表格知识,因为您使用的是您已经熟悉的查看数据的方法。

前面的例子非常简单地描述了您可能会遇到的情况。随着业务的增长,您的数据库表可能会有数百或数千行,因此仔细应用排序和筛选非常重要。

本节假设您拥有关于您正在查找的数据的完整信息。本章后面关于部分数据的部分将考虑不属于这种情况的情况。

基于多个表格的搜索

在这一节中,我们感兴趣的是涉及多个链接表的搜索。这种搜索的一个例子是 Cards for Everyone Inc .数据库中来自给定供应商的所有产品。在这种搜索中,行的概念失去了相关性:products 表中有包含产品的行,而 Suppliers 表中有包含供应商的行。但是,为了进行搜索,您会对这些行在数据库中是如何链接在一起的感兴趣。

不再可能单独打开“产品”或“供应商”表来执行搜索,因为只有您需要的部分数据可用。你需要一种方法来把它们整合在一起。当您的搜索涉及多个链接表时,您将开始理解数据库有多强大,以及它们与电子表格有何不同。

基于多个表进行搜索时,主要考虑的是如何将相关数据组合在一起以及如何查看这些数据。有两个主要的选择,这两个你以前都遇到过。你可以使用一个连接查询(在第十章中介绍)或者一个表单(在第一章中介绍)。

使用连接查询

由于连接查询最类似于电子表格,我们将从这种方法开始。

Note

这本书的附录描述了如何建立一个简单的查询。

每次设计任何查询时,都必须首先选择要从中选择数据的表。要在 Cards for Everyone Inc .数据库中查找来自给定供应商的产品,需要选择 products 和 Suppliers 表。如附录中所述,您可以使用查询向导或查询设计。这里我使用查询设计,因为它显示了表的图形表示。图 12-10 显示了 Cards for Everyone Inc .数据库的链接产品和供应商表以及两个选定的列——产品名称和供应商名称。没有选择其他列,因为对于这次搜索,我们只对供应商的名称感兴趣,仅此而已。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-10。

Query design over the Products and Suppliers tables in the Cards for Everyone Inc. database

图 12-11 显示了运行图 12-10 中的查询的结果:注意查询的输出看起来像一个表格或电子表格,并反映了您习惯的数据表示。这些表已经在 SupplierID 列的基础上“连接”起来,SupplierID 列将它们链接在一起。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-11。

Output of the Products and Suppliers query on the Cards for Everyone Inc. database

通过少量的输出,很容易识别您正在寻找的数据——例如,哪些产品由哪些供应商提供。但是,和前面几节一样,如果有大量的行,还需要做进一步的工作。与表一样,可以使用本章前面介绍的技术对查询进行排序或筛选。例如,如果您想知道谁提供了船只,您可以按字母顺序对 ProductName 进行排序,向下扫描船只列表,并从相邻列中读取供应商的名称 Old Favorites。或者你可以在 ProductName = 'Boats '上过滤,这将给出如图 12-12 所示的结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-12。

Query in Figure 12-11 for the Cards for Everyone Inc. database filtered on ProductName = ‘Boats’

使用表单

图 12-13 显示了一个表格,该表格涵盖了每个产品的组合数据及其供应商的相关数据。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-13。

A form combining data from the Products and Suppliers tables of the Cards for Everyone Inc. database Note

本书末尾的附录解释了如何创建一个简单的表单。

总共有五个表格,每个产品一个。表单上的框对应于数据库中“产品”和“供应商”表的列,与查询一样,您可以选择包含的列。每个框都可以排序和过滤,就像它存在于一个表中一样。图 12-14 显示了在 ProductName = 'Boats '上过滤的图 12-13 中的表单。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-14。

A form combining the data from the Products and Suppliers tables of the Cards for Everyone Inc. database filtered on ProductName = ‘Boats’

然后,您可以直接从表单中确定船只的供应商,这是以前的最爱。

多个表的搜索技术总结

跨多个表进行搜索需要一种将数据集中在一起的方法。最常用的技术是连接查询和表单,其中的选择很大程度上取决于个人偏好。一旦可以在单一位置查看数据,就可以使用排序和过滤直接找到所需的项目。

如前所述,本节假设您已经获得了关于您正在寻找的数据的完整信息。本章后面关于部分数据的部分将考虑不属于这种情况的情况。

基于几个标准的搜索

您可以同时对同一个数据库列应用多个筛选器。例如,如果您正在查找一个链接到 Connecting South Side 的组织,并且您知道该名称包含单词“Yoga”和“Center ”,但是您不确定确切的名称,您可以对 Organizations 表中的 OrganizationName 列应用两个过滤器(图 12-15 ,如下所示:

  • Apply one filter to the OrganizationName that contains the word “Center,” giving you the output shown in Figure 12-16.

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    图 12-16。

    The OrganizationName column of the Organizations table filtered for the word “center”

  • 如果第一个过滤器返回了很多行,那么对 OrganizationName 应用第二个过滤器,使用单词“Yoga”。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-15。

The first few columns of the Organizations table from Connecting South Side

无论是在同一个表中,还是在查询或窗体的多个表中,都可以对同一列应用多个筛选器,也可以同时对多个列应用筛选器。例如,如果要在 Cards for Everyone Inc .数据库的 Customers 表中查找 Lisa Garcia,可以同时应用两个筛选器:LastName = 'Garcia '和 FirstName = 'Lisa '。

基于部分列值进行搜索

您在前面几节中对 Garcia 的搜索可能没有成功。可能是 Lisa 的姓氏输入不正确,这是在数据清理过程中被忽略的错误。Lisa 的姓氏可能根本没有输入,也可能 Lisa 不是现有客户。

在放弃寻找之前,你还有其他的选择。过滤器可以搜索部分数据。以下是一些筛选器搜索与 Garcia 这个名字相关的部分数据的示例:

  • 搜索名称的开头,使用“以 G 开头”、“以 Ga 开头”、“以 Gar 开头”等等。
  • 使用“以 a 结尾”、“以 ia 结尾”、“以 cia 结尾”等搜索名称的结尾。
  • 使用“包含 ar”、“包含 arc”、“包含 arci”等搜索名称的中间(或两端)。

如果 Garcia 被拼错为 Garica,那么下面的过滤器将会选择它,尽管有些过滤器会返回比其他过滤器更多的行:

  • 以 G 开头,“以 Ga 开头”和“以 Gar 开头”
  • 以’结尾
  • 包含 ar '(以及 G,Ga,Gar,a,r,I)

建议找到名称中不常见的特征,以便过滤器返回的行数尽可能少。

下列过滤器在 Garica 的情况下不会成功:

  • “以加西亚开头”或“以加西亚开头”
  • 以 ia 结尾’(以及 cia、rcia、arcia)
  • “包含弧”或“包含弧”

搜索过程可能是重复的,需要反复试验:不要期望马上得到你要找的数据。根据命中次数和结果的相关性,根据需要修改您的搜索。

这些类型的搜索可能很耗时,而且可能不会有任何结果。例如,如果 Lisa 的姓氏没有输入到数据库中,您将搜索不存在的东西。考虑到这一点,您可能希望过滤其他列,以获得正确的数据。您可以按如下方式对其他列进行筛选:

  • 名字等于“丽莎”
  • 性别等于“女性”(如果你知道丽莎是女性)
  • State 包含“MI”(如果您知道 Lisa 住在密歇根州)
  • InvoiceDate 等于“上个月”(如果您知道 Lisa 之前的订单是上个月)

每次应用额外的筛选器时,返回的行数将与以前相同或更少。数量越少,就越容易识别 Lisa 的记录(假设它存在)。

可能会有这样一个时刻,当你尽了一切合理的努力去寻找 Lisa 的详细信息时,你需要停下来总结 Lisa 是一个新客户。

您可以通过在某些表格中添加关键字来提高搜索效率。例如,如果 Pat at Cards for Everyone Inc .面临非常模糊的搜索标准,例如“所有上面有动物的卡片”,那么搜索所有卡片以查看它们是否符合这一要求将是没有效率的。更有效的方法是在 Products 表中添加一个 keywords 列,其中的关键字反映了卡片上的图片,例如猫和兔子代表动物,玫瑰代表花。图 12-17 中显示了人人卡公司数据库的产品表示例。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-17。

Adding a Keywords column to the Products table of the Cards for Everyone Inc. database

有了关键字,你可以使用一个过滤器,比如关键字包含“动物”来识别动物卡片。图 12-18 显示了产品表中的过滤结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-18。

The Keywords column in the Products table for the Cards for Everyone Inc. database filtered on Keywords Contains ‘Animals’

个案研究

以下部分给出了您可以在属于第 2–4 章中描述的每个小型企业的数据库上运行的搜索示例。

智能手推车公司。

智能手推车公司的数据由客户、材料、产品和供应商组成。其数据库设计已在第七章的中介绍过,图 12-19 中再次显示,以供参考。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-19。

Overview of the complete database design for Smart Wheelbarrows Inc

潜在搜索的数量很大,而且多种多样。这里有几个例子:

  • 某个组件或材料存在缺陷,需要确定其供应商—需要进行搜索以将该组件或材料与其供应商相匹配,从而解决问题。在涵盖跨多个表的搜索的部分中,您看到了一个示例,其中 Cards for Everyone Inc .数据库中的 Products 和 Suppliers 表是使用联接查询或表单合并的。在这种情况下,两种方法都可以使用。
  • 为了满足质量审核的要求,第五章讨论了 Smart 独轮车公司开发儿童独轮车的可能性。为了开发这样一种产品,很可能需要进行质量审核,将每个组件追溯到其来源,以确保儿童使用安全。这种审计将涉及确定拟议产品的每一个组成部分,并将它们与供应商联系起来。在相关材料清单的帮助下,这可以通过与单个组件相同的方式完成。
  • 确定客户以前是否从该企业购买过产品—这应该是一个简单的搜索(如果客户的姓名输入正确),或者如果有输入错误,可能是一个漫长的过程。按照本章所述的步骤,在 Cards for Everyone Inc .数据库中找到 Lisa Garcia。如果所有这些寻找客户的尝试都一无所获,很可能你有了一个新客户。
  • 识别不支付账单的客户—许多小企业都受到不支付账单的客户的影响。搜索以识别未支付的发票和负责的客户可能是有用的。这是一个搜索示例,目前无法使用 Smart 独轮车公司的数据库进行搜索,因为 CustomerInvoices 表中没有保存发票何时支付的数据的列。但是,这是一个简单的添加—该列可以称为 DatePaid,数据类型为 Date/Time。

一旦 date payed 列就绪,就可以使用连接查询或表单连接 Customers 和 CustomerInvoices 表(请参阅基于多个表的搜索一节),并且可以过滤 date payed 列中的空值。出现在这个过滤的查询或表单上的客户还没有支付他们的账单(假设数据库已经保持最新)。

詹宁斯-哈佛法律事务所有限公司。

Jennings-Havard 法律事务所的数据包括客户、案例和人口统计数据。在第七章的中介绍过的整个数据库设计再次显示在图 12-20 中,以供参考。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-20。

Overview of the database design for Jennings-Havard Law Offices

以下搜索会很有用:

  • 识别某人是新客户还是现有客户——如前几节所述的 Smart 独轮车公司和 Lisa Garcia。
  • 识别回头客——客户忠诚度对任何企业都很重要,尤其是像 Jennings-Havard 律师事务所这样的律师事务所,他们可能会留住客户很多年。

查找重复客户的一种方法是在客户和客户联系人之间建立一个连接查询,从客户联系人表中选择 ClientID 列,从客户表中选择 FirstName 和 LastName,如图 12-21 所示。这个查询将客户的名字与他们的每个联系人放在一起,使他们能够被计数。运行查询后,显示图 12-22 中的表格。你可以看到金珠已经联系了公司两次。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-22。

Query showing repeat clients for Jennings-Havard Law Offices

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-21。

Query design for repeat clients of Jennings-Havard Law Offices

连接南侧

Connecting South Side 保存关于他们的查询者、查询者被指引到的组织以及关于查询者的人口统计细节的数据。在第七章的中介绍过的整个数据库设计再次显示在图 12-23 中,以供参考。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12-23。

Database design for Connecting South Side

下面的搜索会很有用。

  • 确定询问者之前是否联系过 Connecting South Side 与 Lisa Garcia 的流程相同。
  • 识别与当前问题类似的询问者—识别与当前问题类似的客户可能有助于避免重复工作,尤其是在最近一段时间。包含每个案例说明的列在案例表中被标注为 AboutContact。如果跨查询者和案例表创建了连接查询或表单,并且针对可能提供关联的单词和短语过滤了 NotesAboutContact 列,则可能会显示相关的案例。

例如,如果一个查询者联系了 Connecting South Side 关于糖尿病和酒精消费的帮助,可以在 NotesAboutContact 列上使用诸如糖尿病、酒精等词进行搜索。幸运的话,这将识别出最近的一个案例,在这个案例中,一个询问者已经被指示在这种情况下寻求帮助,而新的研究将是不必要的。

摘要

不同类型的数据库搜索的数量是巨大的。在这一章中,我们考虑了在一个表中的那些,跨多个表的那些,以及涉及多个标准的那些。搜索可以基于完整或部分数据。搜索数据的过程经常是重复的。本章介绍了许多可用于搜索的工具,有了经验,您将能够有效地应用它们。

十三、分析您的数据

你不能按下一个按钮就指望所有的数据分析都自动进行。数据分析涉及对数据元素或结构的详细检查,是业务决策的基础。

以下部分介绍了数据分析技术,并描述了应用这些技术的最佳环境。即使是公认的数据分析技术也可能被错误地应用,知道要寻找什么陷阱是很重要的。

您必须选择技术来满足给定数据集的要求和您的小型企业的目标。如果您刚刚开始,尝试几种技术来感受它们是如何工作的可能是个好主意。制作数据库的副本或组装一个简单的测试数据库是明智的。这里考虑的工具可以在数据库包或电子表格中找到。

概观

数据分析可以分为两种主要类型——探索性和验证性。探索性数据分析包括应用给你数据“感觉”的技术,使你对可能发生的事情产生预感(或假设)。例如,你可能会有这样的印象,对某个营销活动反应良好的女性多于男性。验证性数据分析测试直觉,并以特定的准确度产生估计值。

在统计学中,区分了:

  • 一个数据样本,从中可以预测总体的详细信息
  • 假设为总体的数据

在本章中,除非另有说明,否则假设您已经获得了所有感兴趣的数据。关于使用样本的细节可以从本章末尾列出的进一步阅读材料中获得。

数据类型

数据分析应该总是从评估数据的特征开始。如您所见,数据并不完全相同,您必须仔细进行分析,即使测量结果看起来非常简单。在这一章中,我们将考虑三种类型的数据,每一种都向其前身添加了更多的属性:

  • 名义上的
  • 序数
  • 比例

Note

定义测量级别的传统尺度是名义、顺序、间隔和比率。区间数据和比率数据的区别在于比率数据包含一个有意义且非任意的零。

标称数据

名义数据包括由简单命名系统区分的项目,例如 Cards for Everyone Inc .数据库中的卡片类别、customer 表的 address 列中的州名列表以及 Smart 独轮车公司数据库中的部件名称。每一项都不与其他任何一项重叠。为了简化收集和参考,标称项目可能会分配有编号,例如 1 =蓝色,2 =红色,3 =黄色。这些数字没有任何数学意义,因此不能相加。

序数数据

序数数据有一个自然的顺序,因此得名。这种数据经常用于要求人们表明其偏好的调查中。它们还被用来表示企业中的工资级别和其他许多方面。这些项目的顺序通常是通过给它们分配数字来表示它们的相对位置来定义的。也可以适当地使用字母或其他顺序符号。和标称数一样,你不能对序数进行算术运算:它们只显示顺序。此外,间隔序数不能进行比较。例如,在一个五分制的问题量表中,四和五之间的差异不能与二和三之间的差异相比较。

比率数据

在比例上,数字可以相加。倍数也可以比较。例如,一种产品可能比另一种产品贵一倍,因为价格是一个比率数字。

比率数据可以分为连续型和离散型。连续数据是沿着可以分成分数的连续尺度测量的,例如高度。连续数据允许无限精细的细分。

离散数据是通过一组固定值来衡量的,例如以年为单位的年龄。

频数分布

在第十章中介绍的频率分布对于显示数据的“形状”很有用,也就是说,数据值是如何分布的。频率是某件事情发生的频率。例如,在给定的一周中,每个人的卡公司可能在星期六上午销售一张卡,在星期六下午销售一张,在星期三上午销售一张。频率是周六两个,周三一个,全周三个。希望这不是正常销售的指标!频率分布可以应用于上一节中探索的每种类型的数据,如下一节所示。

离散比率数据

通过计算频率,我们可以制作一个频率分布表。例如,假设 Cards for Everyone Inc .的每个客户每月的卡销售额如下:

2, 3, 1, 2, 1, 3, 2, 3, 4, 5, 4, 2, 2, 3

相应的频率分布如表 13-1 所示。

表 13-1。

Example of a Frequency Distribution for Cards for Everyone Inc.

| 每位顾客每月的卡销售额 | 频率 | | --- | --- | | one | Two | | Two | five | | three | four | | four | Two | | five | one |

从表 13-1 中,我们可以看到一些有趣的事情,例如:

  • 顾客每月购买两张卡是最常见的情况
  • 只有一次顾客在一个月内买了五张卡

接下来是 Cards for Everyone Inc .的一个例子,一些客户下了更大的订单:

2, 8, 2, 5, 1, 6, 9, 3, 11, 5, 4, 12, 3, 15

为了避免 15 行的冗长表格,这些值被分成三组,如表 13-2 所示。

表 13-2。

Example of a Frequency Distribution with Grouped Values for Cards for Everyone Inc.

| 每位顾客每月的卡销售额 | 频率 | | --- | --- | | 1 – 3 | five | | 4 – 6 | four | | 7 – 9 | Two | | 10 – 12 | Two | | 13 – 15 | one |

一般来说,间隔的数量应该限制在大约 8 到 10。标签应该清晰,不能重叠。例如,如果您有 10-12 和 12-14,您将不知道将每月购买 12 张卡的客户放在哪里。

名义数据和顺序数据

标称和序数数据可以用频率分布来表示,如表 13-1 所示。然而,如表 13-2 所示,对名义数据和顺序数据进行分组是不正确的,因为它们之间没有数学关系。

表 13-3 显示了 Everyone Inc .卡产品表中卡类别的频率分布。即使频率为零,也应包括所有类别。

表 13-3。

Frequency Distribution for the Card Category in the Products Table of Cards for Everyone Inc.

| 卡的类别 | 频率 | | --- | --- | | 生日 | Two | | 新生婴儿 | one | | 谢谢你 | one | | 情人 | one |

连续比率数据

将连续的比率数据表示为频率分布中的单个值既不容易也不准确。这是因为值之间的间隔可能非常小(可能无限小)。例如,价格的值可以用一美分来分隔,一个详细列出所有可能的美分值的频率的表将是巨大而无用的。因此,连续数据表示为间隔,例如$0 < Price ≤ $5, $5 < Price ≤ $10, etc. Such intervals must be written so that there is no ambiguity as to where any of the prices belong. For example, $5 belongs in the $0 < Price ≤ $5 interval. Table 13-4 显示了 Cards for Everyone Inc .数据库的产品表中价格的频率分布。

表 13-4。

Example of a Frequency Distribution for Price Taken from the Products Table for Cards for Everyone Inc.

| 价格 | 频率 | | --- | --- | | 0 | Zero | | 1 | one | | 2 | Two | | 3 | Zero | | 4 | Two |

图表

创建频率分布表后,您可以构建条形图或饼图。

条形图

条形图是最常用的图表类型之一。它们用于显示和比较标称数据、序数数据、离散比率数据和分组连续比率数据的频率或其他度量。不同条形的高度与它们所代表的数据项的大小成比例。因为水平轴代表不同的类别,所以它没有刻度。垂直轴的刻度是测量单位。也可以水平绘制条形,当类别名称很长时,这对于名义数据特别有用。图 13-1 显示了表 13-3 中所列数据的横条图。MS Excel 等电子表格将直接从频率分布表中生成条形图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 13-1。

Horizontal bar chart for the Categories column in Cards for Everyone Inc.’s Products table

饼图

饼图用于可视化名义数据。它们也可用于顺序数据、离散比率数据和分组连续比率数据,尽管这种情况不太常见。它们显示了总数据在不同类别之间的分布情况,是将部分与整体联系起来的有效方法。当类别数量较少时,它们工作得最好。饼图的每个部分反映了每个类别占整个数据集的比例。零件通常按尺寸降序排列。

图 13-2 中的示例显示了与上表 13-3 中所示的人人卡公司的卡类别的频率分布相对应的饼图。因为有两张生日类别的卡片,所以这些卡片被分配了一块比其他卡片大一倍的饼。MS Excel 等电子表格将直接从频率分布表中生成饼图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 13-2。

Pie chart for the Categories column in Cards for Everyone Inc.’s Products table

直方图

直方图是条形图的一种特殊形式,其中的数据代表连续的比率数据。软件包通常会为您划分数据,而无需您构建频率分布。例如,Excel 2013 将输入数据列表和用户定义的条块列表作为直方图命令的输入。然后,它将数据放入这些箱中,并生成频率分布和直方图。图 13-3 显示了与上表 13-4 中的数据相对应的输入数据和 bin。Bin 2 对应于 1 <价格≤ $2,因此直方图上的“条”代表该区间。与条形图不同,在直方图中,两个轴都有刻度。这意味着条形的面积与所代表的量的大小成正比,而不仅仅是它的高度。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 13-3。

Histogram for the data shown in Table 13-4 Note

要在 MS Excel 2013 中构建直方图,您需要安装软件附带的分析工具库。

描述统计学

描述性统计有助于总结您的数据。在接下来的章节中,将会考虑平均值和扩散的测量。

集中趋势测量

集中趋势或平均值的度量是有用的,因为它们可以用一个数字概括许多数据。例如,Cards for Everyone Inc .可能会发现,平均而言,每个客户每次交易都会购买两张卡。不可能每个顾客每次交易都恰好买两张卡;有的会多买,有的会少买。然而,每笔交易两张卡的数字是一个很好的指标,表明了总体的卡购买量。

平均值有三种不同的定义,即均值、中值和众数。每一项都是用不同的方法计算的,当应用于同一组数据时,通常会产生不同的值。

选择使用哪个定义部分取决于数据的类型。理解每个统计数据告诉你什么是非常重要的,这样你就可以做出最适合你正在进行的分析的明智选择。

这人

默认情况下,人们在日常语言中谈论平均值时通常指的是平均值。一组数据项的平均值计算如下

Adding all the data items.   Dividing this total by the number of data items.

当数据项分布相对均匀,没有特别高或特别低的值时,最好使用平均值。此外,对于名义数据或顺序数据,平均值不是适当的平均值,因为不可能对这些数据进行数学运算。平均值可应用于离散比率数据,尽管结果需要四舍五入到最接近的整数。

如果一组数据项包含少量相对较高或较低的值,则作为一个整体,平均值将不是数据项的典型值,因为这些非典型值将对平均值有相对较强的影响。

在第十章中,以下示例用于定义异常值。数字序列显示了卡为每个人公司的每个客户的每月卡销售额:

2, 4, 9, 5, 10, 2, 7, 6, 8, 3, 104

平均值= 160/11 = 14.55(或最接近卡片的 15)。这个平均数不能很好地反映数字的顺序,因为除了一个以外,所有的数字都较低。最后一个数字异常高,对计算有不成比例的影响。

Note

在 MS Access 中,使用Avg命令计算平均值。

中间值

计算一组有序数据的平均值的最合适的方法是使用中位数或众数。中值是指一组数据中的中间值,这些值按大小从最小到最大的顺序排列,反之亦然。当数据集中有奇数个值时,中间值很容易找到。当有偶数个值时,两个中心值之间的中点就是中间值。

当数据包含相对较高或较低的值时,中位数是衡量比率数据平均值的好方法,因为这些值对结果有相同的影响,这与平均值不同。

例如,上一节中用于显示 Cards for Everyone Inc .每个客户每月卡销售额的数字序列为:

2, 4, 9, 5, 10, 2, 7, 6, 8, 3, 104

平均值为 15。相比之下,可以通过首先对序列进行排序(此处为升序)来找到中值:

2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 104

因为有 11 个数字,所以中位数在第六位,也就是数字 6。请注意,6 的中值比 15 的平均值更能代表序列的中心。

模式

与平均值和中值不同,该模式可应用于名义数据。它还可以应用于顺序数据和比率数据(离散数据和分组连续数据)。众数是在一组数据中出现频率最高的值。因为它是最常见的值,所以它具有代表性或典型性。如果几个值同样常见,则一组数据中可能有一个以上的模式。在表 13-3 所示的 Everyone Inc .的卡类别的频率分布中,模式(或模式类)是生日,因为该类别出现的频率最高。

传播的量度

分布的度量用于描述一组数据的可变性。目的是提供一个概念,说明所选的集中趋势度量(平均值、中值或众数)代表数据的程度。如果数据集中的值的分布很大,则集中趋势的度量不像数据的分布很小时那样具有代表性。这是因为较大的分布表明各个数据项之间可能存在较大的差异。

范围

范围是一组数据中最高值和最低值之间的差值,适用于顺序数据以及离散和连续比率数据。例如,上一节中用于显示 Cards for Everyone Inc .每个客户每月卡销售额的数字序列为:

2, 4, 9, 5, 10, 2, 7, 6, 8, 3, 104

最大值是 104,最小值是 2。这导致范围为 104 - 2 = 102。虽然使用范围作为分布的度量是有限的,但它确实设置了数据项的值的边界。

四分位数和四分位数间距

四分位数通过将一组数据分成四份来告诉我们它的分布情况,就像中位数将它分成两半一样。四分位数是有序数据的最佳分布度量,也是离散比率数据的有用分布度量。

例如,上一节中用于显示 Cards for Everyone Inc .每个客户每月卡销售额的数字序列为:

2, 4, 9, 5, 10, 2, 7, 6, 8, 3, 104

按升序排列,至于中位数,这是:

2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 104

四分位数如下:

  • 第一个四分位数(Q1)是标记序列中四分之一路径的数据项。在本例中,这是第三个数据项 3。
  • 第二个四分位数(Q2)是标记序列中间位置(中位数)的数据项。在本例中,它是第六个数据项 6。
  • 第三个四分位数(Q3)是标记序列中四分之三部分的数据项。在本例中,这是第九个数据项 9。

对于偶数个数据项,四分位数的计算方法是取每个四分位数周围两个数据项的和,然后将它们减半。

表示四分位数的一种常见方式是四分位数间距。四分位数范围描述了第三个四分位数(Q3)和第一个四分位数(Q1)之间的差异,告诉我们分布中数据项的中间一半的范围。因此,在前面的例子中,四分位数间距= Q3 - Q1 = 9 - 3 = 6

方差和标准差

对于比率数据,分布的度量是方差或标准差。

差异的计算方法如下:

Adding the squared differences between each data item and the mean.   Dividing by the total number of data items.

对差异求平方会移除负值,并对远离平均值的值给予不成比例的权重。因此,如果数据集中的值分散开,方差将是一个很大的数字。相反,如果分数接近平均值,方差将是一个较小的数字。但是,方差的单位与数据集中的值不同,这意味着很难解释它的值。

计算标准偏差(取方差的平方根)提供了一个与所考虑的数据集具有相同单位的结果。尽管如此,分析方差在一些统计分析中是极其重要的,这将在本章末尾的进一步阅读中讨论。

Note

MS Access 提供了计算方差(Var)和总体标准差(STDEV.P)的函数。

交叉列表和分段

交叉制表有助于您理解两列或多列数据之间的关系。例如,假设 Cards for Everyone Inc .的经理 Pat 想回答这样一个问题:“男性和女性再次购买的意愿有什么不同吗?”假设已经进行了一项调查,询问参与者是否会再次从该企业购买(y 或 n)以及他们的性别(m 或 f),可以设置一个查询,如图 13-4 所示。输出如图 13-5 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 13-5。

Query output for a cross-tabulation between Intent and Gender for Cards for Everyone Inc.

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 13-4。

Query design for a cross-tabulation between Intent and Gender for Cards for Everyone Inc.

在图 13-5 中,您可以看到 10 名女性做出了积极回应,而男性只有 5 名。

分割数据(在第十二章中讨论)和应用数据分析工具的潜力非常大,例如前面章节中讨论的工具。两个例子是比较不同州和不同年龄组的卡片销售情况。Cards for Everyone Inc .可以根据购买频率进行细分,并奖励忠诚的购物者。

文本分析

在调查中,通常会有一些开放式问题,让受访者填写自己的答案。当样本较大时,很难分析每个回答者的答案。如果你有文本数据,那么有一个文本分析工具是很有帮助的。顶级工具并不便宜(如 NVivo),但通常一个词云会提供一些有用的信息。一个特别著名的工具是 Wordle.net。例如,假设 Cards for Everyone Inc .向其调查对象提出了一个开放式问题,如“您还有其他反馈吗?”并收到了以下五份答复:

快速服务

卡片不错,质量很好

良好的响应时间,非常快

高质量的卡片

友好、高效的服务

相应的输出如图 13-6 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 13-6。

Output from wordle.net for the Cards for Everyone Inc. survey

对每个词的强调是基于它在调查中的出现和位置。试用这样的软件包将有助于你有效地分析你的文本。

相关性和散点图

当您想要了解两列连续比率数据之间的关系时,可以使用相关性。例如,Cards for Everyone Inc .可能想知道名为“Paris by Moonlight”的卡的销售与其价格变化之间的关系,因为他们怀疑他们一直在以相当低的价格出售该卡,并想知道提高其价格对销售的潜在影响。

  • 如果相关性为 1,则卡的价格与其销量完全正相关,同涨同跌。
  • 如果相关性为 0,则这两个变量之间没有相关性。
  • 如果相关性为-1,则卡的价格和销售额完全负相关,这意味着一个卡的价值越高,另一个卡的价值越低。

如果相关性的绝对值大于 0.5,变量之间的相关性通常被认为是“显著的”,这意味着观察到的相关性不太可能是偶然发生的。

Note

根据给定的概率对相关数据进行精确的显著性检验是很简单的。请参阅本章末尾的参考资料,以便进一步阅读。

假设 Cards for Everyone Inc .从 2015 年 4 月 6 日开始每周记录“巴黎月光”卡的价格和相应销售水平的微小变化。以下示例提供了两种可能的结果。图 13-7 显示了《月光下的巴黎》价格的逐渐上涨和销量的逐渐下降。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 13-7。

Example of a high negative correlation between Price and Sales from Cards for Everyone Inc. Note

价格是独立的列;sales 是因变量,因为它依赖于 price 的值。

通过使用 MS Excel 中的CORREL函数获得的相关性(本例中为=CORREL (A2:A12,B2:B12))给出了非常高的负相关性-0.97,如图 13-7 的单元格 A:13 所示。这种相关性表明,即使价格小幅上涨也会对销售产生负面影响,对利润的影响也应仔细考虑。

另一方面,图 13-8 所示的示例显示单元格 A:13 中的相关性非常低,为 0.14。这表明几乎没有证据表明价格上涨会导致需求下降。然而,由于这种相关性低于 0.5,在做出任何确定的结论之前,还需要进行更多的调查。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 13-8。

Example of a low positive correlation between Price and Sales from Cards for Everyone Inc.

你应该小心使用相关性。相关性计算仅适用于遵循直线的关系。因此,相关性最好用散点图来表示。散点图在第十章中介绍,用于显示来自同一对象或个人的成对比率数据之间的关系。一个点代表每一个人或每一个对象(在本例中为卡片),它是根据两个轴(在本例中为价格和销售额)上的度量来定位的。

通过分析构成散点图的点的模式,您可以直观地看到两组测量值之间是否存在相关性计算所指示的关系,或者点的线是否是非线性的,从而使相关性计算变得不可靠。此外,相关性并不意味着一件事导致另一件事(可能有其他原因导致数据具有良好的相关性)。

线性回归

回归是测试列之间关系的一种比相关更准确的方法,用于预测未来值。例如,在销售“月光下的巴黎”卡的情况下,在实际观察到卡的价格变化之前,可以使用回归来预测卡的销售,从而避免潜在的低销售期。

价格并不是影响《月光下的巴黎》销量的唯一因素——一年中的时间、经济状况等等。,可能也有关系。然而,如果我们有兴趣预测未来一小段距离(即轻微的价格上涨),那么几乎所有的非线性函数都可以用一条直线来近似。

当在回归中使用一个独立的列时,它被称为简单回归;当使用两个或多个独立的列时,称为多元回归。线性模型假设列之间的关系是直线关系。

要实现预测,首先要像上一节一样在散点图上绘制数据。独立列和从属列之间的理想相关性介于 0.5 和 0.99 之间,或者介于 0.99 和 0.5 之间。我们的相关性是-0.97。

为了做出这些预测,必须从散点图中出现的数据绘制一条回归线。图 13-9 与上面图 13-7 所示的散点图相同,增加了一条拟合数据的回归线。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 13-9。

A regression line fitted to the data in Figure 13-7 covering price and sales from Cards for Everyone Inc.

从图 13-9 中,你可以看到,如果价格提高到 3.25 美元,预期的销售价值大约是 60 张卡片。

回归线是其自身与散点图上每个数据点之间距离最小的线。数据点到回归线的距离称为残差。寻找最佳拟合线(即最小化所有残差大小的线)的典型过程称为最小二乘法。

这种计算通常使用计算机软件进行。例如,可以使用趋势线工具在 MS Excel 2013 中直接在散点图上绘制回归线。回归线几乎总是包含误差项,因为现实世界并不完美。

以下假设是在线性回归中做出的。如果您的数据不符合这些条件,您可能需要考虑一个更复杂的模型:

  • 这两列之间的关系是线性的
  • 回归线周围的方差对于垂直轴上的所有值都是相同的(在本例中为 Sales)
  • 你的每一个观察都是相互独立的(这里,给定价格下一天的销售数量不应该取决于以前的结果)
  • 残差不应该显示模式,如果存在模式,则表明两列(在本例中为价格和销售额)之间的关系不是线性的,需要更复杂的回归形式
  • 残差应该与一个模态类合理对称(即,它们遵循正态分布)

验证性数据分析

验证性数据分析使用传统的统计推断工具来评估探索性分析的观察结果在多大程度上是偶然发生的。目的是从总体人口的随机数据样本中得出结论。使用的两种方法的例子是:

  • 置信区间—估计汇总统计的精确度,如平均值、标准偏差等。例如,95%的置信区间保证了在 95%的时间内摘要统计的真实值将被包括在内。
  • 假设检验——评估数据组之间的差异(如平均值、方差等)。)是偶然发生的或统计上显著的结果(即真正的差异)。推论的过程从一个中立的立场开始——通常被称为“零假设”——这个立场一般被设定为“没有区别”。

关于验证性分析的细节,请参考本章末尾提供的进一步阅读材料。

摘要

在任何数据分析练习中,重要的是从评估数据的特征开始。考虑到这一点,表 13-5 列出了本章中描述的每一种技术及其适用的数据类型。

表 13-5。

Summary of Data Analysis Techniques and the Types of Data They Can Be Applied To

| 技术 | 数据类型 | | --- | --- | | 图表 |   | | 条形图 | 名义数据、顺序数据、离散比率数据和分组连续比率数据 | | 圆形分格统计图表 | 名义数据、顺序数据、离散比率数据和分组连续比率数据 | | 柱状图 | 连续比率数据 | | 集中趋势测量 |   | | 平均 | 连续比率数据 | | 中位数 | 序数数据和比率数据 | | 方式 | 名义数据、顺序数据、离散比率数据和分组连续比率数据 | | 传播的量度 |   | | 范围 | 名义数据、序数数据和比率数据 | | 四分位数和四分位数间距 | 有序和离散比率数据 | | 方差和标准差 | 连续比率数据 | | 交叉列表和分段 | 名义数据、顺序数据、离散比率数据和分组连续比率数据 | | 文本分析 | 文本 | | 相互关系 | 连续比率数据 | | 线性回归 | 连续比率数据 |

进一步阅读

《商业和经济统计》,作者:保罗·纽博尔德、威廉·卡尔森和贝蒂·索恩,培生教育公司;第八版,平装本,2012,ISBN-13: 978-0273767060。

十四、报告您的小型企业数据分析

小型企业定期向内部决策者、外部顾问、融资机构、会计师和许多其他人报告数据分析的结果。数据库报告包含对决策有用的信息,这些信息应该与业务目标直接相关。

报告的性质在很大程度上取决于分析的目的以及分析结果所针对的受众。分析结果往往被用来做出决策,例如:

  • 重复分析,但进行修改
  • 一起执行另一个分析
  • 影响你的小企业的杠杆

Note

目标、杠杆和指标包含在第五章中。

该报告应提供足够的细节,以便能够从同一组数据中重复得出结果。

写作风格

写作风格应该尽可能的直截了当,这样读者就可以专注于分析而不会分心。一方面,非常正式或华丽的语言最好避免。另一方面,过度放松或非常简短的语言也是不合适的。此外,语法和拼写错误会偏离报告的主线,所以要注意改正。还应避免使用高度技术性的语言。

在报告中,整数通常被写成数字,而不是在文本中拼写出来。例如,“人人卡公司今年有 85 种新型卡”,而“人人卡公司今年有 85 种新型卡”数字应该保持简单,这可能意味着:

  • 在不需要确切数字的情况下,四舍五入以避免使用小数位;例如,2 而不是 1.99
  • 用文字说明单位(例如,400 万美元而不是 4,000,000 美元)

文本和图表之间应该有一个良好的平衡,因为有些读者对图像的反应更好,而有些读者对文本的反应更好。一个好的平衡会适合每个人。

你报告的结构

请记住,您要向其汇报的人员和组织可能有不同于此处建议的要求。然而,这些基本要素应包含在大多数报告中:

Introduction   Body   Conclusion(s)/Discussion   Appendix/Appendices

导言

简介应包括以下信息,按照给定的顺序排列:

  • 分析和数据的简要概述,以及任何相关的背景问题
  • 数据分析提出的主要问题和结论摘要
  • 这些问题的答案和下一步行动的总结
  • 报告其余部分的简要概述

报告您没有预料到的发现是合理的,否则这些发现被称为次要发现。然而,你要回答的问题应该优先考虑。

报告的正文

报告的正文可以用不同的方式来理解。

它可以分为几个部分,与导言的级别相同,标题如下:

  • 方法
  • 分析
  • 结果

或者,报告的主体可以形成一个单独的部分,有时称为“分析”,用一个小节来回答导言中提出的每个问题。在每个小节中,对每个问题进行了分析,并给出了结论。

数据和方法

一份报告应该以这样一种方式来写,让阅读它的人清楚地知道你从哪里开始。你还应该报告分析的时间尺度。

对分析中使用的数据给出清晰的细节是有帮助的。例如,同意参与调查的客户可能在重要方面与选择不参与的客户不同。例如:

  • 他们可能过着有更多空闲时间的生活方式(可能偏向退休人员)
  • 那些参与者可能处于满意度的两端——要么对产品非常满意,要么非常不满意

这两种情况都可能导致结果的偏差。

此外,最好描述用于分析数据的软件,因为不同的包之间的结果可能略有不同。

结果

结果部分应该简明扼要。避免证明这些发现——这留给讨论部分。结构使信息更容易吸收,并可以采取多种形式。例如,可以从最一般到最具体,或者从最重要到最不重要来呈现结果。

你应该从你的分析中提供证据(例如通过使用表格或图表)来支持每一个观点,尽管详细的证据以及其他额外的材料最好放在附录中。

开始结果部分的一个好方法是使用一个表格,用数字汇总基础数据。这样的表格为读者提供了一个清晰的数据概念,以及如何与更广泛的人群进行比较。这通常是报表中的第一个表。表 14-2 说明了表 14-1 中所列数据的潜在汇总表,该表由第一章重述而来。

表 14-2。

Summary Products Table

| 列标题 | 范围 | 平均 | | --- | --- | --- | | 价格(美元) | 2.00 ≤价格≤ 5.00 | Three point four | | 可用数量 | 5 ≤可用数量≤ 11 | nine |

表 14-1。

Basic Product Table from Chapter 1

| 产品 ID | 供应商 ID | 产品名称 | 种类 | 价格(美元) | 可用数量 | | --- | --- | --- | --- | --- | --- | | Eleven | One hundred | 猫 | 生日 | Two | five | | Twenty | Two hundred | 玫瑰 | 谢谢你 | Three | eight | | Twenty-three | Two hundred | 船 | 生日 | Two point five | Ten | | forty-two | Three hundred | 心 | 情人 | Four point five | nine | | Sixty-one | Three hundred | 兔子 | 新生婴儿 | Five | Eleven |

Note

在表 14-1 中,可用数量四舍五入到最接近的整数。

这一节的措辞必须附有高质量的图表,以便读者能容易地理解论点。有关表格和图形的更多信息,请参见本章的最后一节。

如果您的业务目标起草得很仔细,您的数据库是根据这些目标设计的,并且您的数据收集得很有效、很干净,那么您的分析应该会提供可靠的结果。

讨论

你分析的目的是产生可以考虑和采取行动的结果。讨论部分不是一个你可以放入所有你在报告的前三个部分放不下的信息的地方。如果你已经以清晰的方式陈述了你的方法和结果,讨论部分可以让你以一种读者可以自己拿主意的方式陈述结果。

首先讨论主要分析的含义。在分析过程中得出的任何结果都可以在以后提及,以免转移对业务目标的关注。此外,你应该提及数据收集、分析或解释的任何缺点或优点。将这些问题公之于众为你提供了一个为它们辩护和/或推荐克服它们的方法的机会。

该报告应包括与结果相关的不确定性的讨论。这种不确定性可能以多种方式出现,向读者展示这些不确定性可以确保你已经考虑到了分析的局限性。可能出现的不确定性类型有:

  • 由于无法解释数据中所有潜在的变异来源而导致的不确定性
  • 数据收集、编码和分析过程中可能出现的未知错误导致的不确定性
  • 不确定性:数据中的发现与分析时一样

当出现这些或任何其他不确定性时,提供讨论是有用的。

结论

将你的结论限制在你的分析所支持的范围内。重要的注意事项如下:

  • 对积极和消极的发现给予同等的关注。
  • 根据事实和逻辑得出你的结论。
  • 做因果联系和关联的时候要小心。例如,正如在第十三章中提到的,数据库表中两列之间的相关性并不意味着一个导致另一个。

表格和图表

呈现数字数据有三种主要方法:

  • 将它融入正文中
  • 在表格中单独呈现
  • 构建一个图表

确定哪种方法是最好的取决于您要处理的数据量及其复杂性。相关的文字应该描述数据揭示的主题,但不应该重复图表中描述的内容。

当只有两个数值需要比较时,数字最好作为文本的一部分呈现。例如:

Cards for Everyone Inc 的女性顾客定期购买贺卡,而男性顾客的比例为 62%

如果你在讨论三个或更多的数字,用表格往往更合适。表格是展示数据的有效方式:

  • 当您要展示一些数字时(一个表格中的数字太多会让人感到困惑)
  • 当精确的值对你的论点至关重要,而一个图表不能表达同样的精确程度时。例如,当重要的是读者知道结果是 2.48 而不是 2.45 时

如果您希望引起对数据模式的注意,最好在表的列中显示,而不是在行中,因为向下读取一列比读取一行更容易。决定哪一列包含最重要的趋势,并以此为焦点来构建表格。如果不止一列同样重要,那么包含两个或多个简单的表通常比使用一个更复杂的表更好。

根据数值大小(例如从大到小)对列中的数字数据进行排序通常会有所帮助,除非您想要突出显示数据中的特定模式或趋势。有效表格呈现的其他要点如下:

  • 所有表格都应包含一个描述性标题,其中包含足够的细节,读者无需查阅随附的文本即可理解内容,标题中应包含计量单位(如百分比、总数和频率)
  • 可以使用线条和/或粗体文本将标题与数据主体分开
  • 特定行可以突出显示/加阴影以引起注意
  • 应该避免列与列之间有很大的间隙,因为这样很难一行一行地阅读

图形和图表是呈现大量数据的一种特别有效的方式,但也可以用来代替表格来呈现较小的数据集。图表和图形可以用来快速说明数据。二维图表通常比三维图表更容易阅读。一般来说,图表应该:

  • 始终显示标题和轴标签,并在必要时提供一个键
  • 显示测量单位(如百分比、总数和频率)
  • 尽可能使用天平
  • 使用不影响数据的细微网格线
  • 在条形图、直方图和饼图中使用颜色或阴影图案来反映正在绘制的数据类别中的任何自然序列,以便相邻区域的颜色从暗到亮渐变,反之亦然

以图表的方式呈现数据可能需要一些预先考虑,以便选择最佳的比例。例如,数据的最佳视图可能来自于从非零点开始任一轴。图 14-1 显示了人人卡公司的销售数据图,其中纵轴从零开始。图 14-2 显示了相同的数据,但是垂直轴从 96 开始。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 14-2。

An example of sales data from Cards for Everyone Inc. presented on a graph with the vertical axes starting at 96

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 14-1。

An example of sales data from Cards for Everyone Inc. presented on a graph with the vertical axes starting at zero

数据中的趋势在图 14-2 中更容易看到。在这种情况下,应该清楚地标记起始值,将读者的注意力吸引到文本中的非零起始值上。

直接从数据库生成报告

报告使文档可以从数据库表或查询中设计出来,这些表或查询可以以电子形式轻松共享,也可以在远离计算机的地方查看。例如,报告可以用来总结哪些产品卖得好,哪些客户一直在购买。图 14-3 显示了最初出现在第一章中的查询,图 14-4 显示了相应的报告,该报告也出现在第一章中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 14-4。

Sample report for Cards for Everyone Inc.

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 14-3。

Sample query for Cards for Everyone Inc.

有关从数据库生成简单报告的详细信息,请参见本书末尾的附录。

案例研究和描述性报告

不是所有的数据都会涉及到分析数字。你报告的一部分可能会描述事件。例如,"连接南方"可能在其报告中包括一些案例研究,描述其询问者面临的问题以及工作人员如何帮助他们。此类案例研究将揭示团队在每项调查中投入的精力,这些精力很难通过调查者数量、每个调查者的电话数量等数量分析来捕捉。

为了保护查询者的匿名性,任何姓名和具体细节都应小心隐藏。通常,仅仅删除姓名和地址是不够的。某人的特殊情况可能意味着他们很容易被认出来——例如,某人有着不寻常的职业。每个案例研究都应该由团队中的许多人进行校对,以确保任何识别特征都被掩盖。

作为一个团队制作报告

与数据库和一些电子表格一样,团队报告通常需要几个人同时访问。最有效的方法是使用云,这将在第十八章中介绍。过去的趋势是通过电子邮件交换报告的版本,这可能会导致版本混淆。

当几个人对报告做出贡献时,你需要确保每个部分都是一致的。这包括语言以及字体样式和字体大小。请至少一个没有参与撰写的人通读报告是有用的,以便找出不一致的地方。

当报告准备好时,以只读格式保存它,这样就不能对它进行未经授权的更改。PDF 格式是一个很好的选择,因为任何人都可以使用免费的 PDF 阅读器查看它,不管他们使用的是什么操作系统。

摘要

你的数据分析报告应该简洁明了,有很好的文字和图表组合。你分析的目的、结果和结论都应该清晰。该报告的主要目的是促进基于您的业务目标的有效决策。

十五、根据报告采取行动

数据分析报告,如果有效地执行,可以让您了解您的企业如何实现其目标。如果需要变革,变革越快越好,这样你的企业就能尽可能保持竞争力。这些操作可能涉及到对数据库进行永久更改。相比之下,第十六章考虑了如何在不对数据库做任何改变的情况下响应一次性的外部数据请求。

概观

为了对报告进行操作,您的数据库设计必须灵活,并且您必须能够使数据库在短时间内脱机。需要培训员工使用调整后的数据库:培训在第二十章中介绍。

以下部分使用 Cards for Everyone Inc .中的一个示例,描述了响应报告时更改数据库的可能方法。

例如:人人卡公司。

图 15-1 ,重述自第十二章,显示了每个人公司数据库的卡片设计,作为提醒。正如在第一章中所描述的,Cards for Everyone Inc .出售在其网站上展示的卡片。该数据库包含客户、发票、产品和供应商的表,以及员工及其工资的表。每个客户购买的每个产品的数量存储在 Invoices2Products 表中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 15-1。

Database design for Cards for Everyone Inc.

假设 Cards for Everyone Inc .的一份报告提供证据表明,一年后卡片销售趋于平稳,表明业务增长停滞不前。经理帕特想调查并找出销售不景气的原因。

Pat 认为,Cards for Everyone Inc .的主要吸引力在于客户可以在任何地方快速地在线购买卡片,并且在网站上很容易搜索到这些卡片。她想回顾数据收集和数据分析,以下降的销售额为焦点,以便找出正在发生的事情。

进一步的数据收集和分析

帕特组织了一次顾客满意度调查,以判断销售额下降的原因。调查的反馈表明,与商业街商店或其他互联网企业提供的卡片相比,顾客发现 Cards for Everyone Inc .的卡片选择相当有限。顾客也想设计他们自己的卡片——例如从照片或个人艺术作品中设计。此外,一些客户对信用卡缺货、订单被延迟或取消表示愤怒。

Pat 尝试了几种方法来提高销售额并留住客户:

  • 通过尝试新的供应商来增加卡片的选择
  • 通过供应商提供新的服务,这些供应商能够根据照片和图纸制作您自己的卡片
  • 出售与卡片相关的物品,如邮票、包装纸、礼品标签和小礼物
  • 分析全年的销售情况,以确定何时是增加库存的最佳时机,并提高企业对订单的响应能力

定期重复数据分析,以评估这些额外步骤对销售的影响。针对人人用卡公司的新重点,对数据库进行了一些更改,包括:

  • 新列的添加
  • 新表格的添加
  • 拆分现有表格
  • 更改现有查询
  • 改变现有的形式

这些步骤将在接下来的章节中进行说明。

添加新列

由于产品的类型将不再局限于卡片,因此在 Products 表中增加一列来进行区分将会很有用。ProductType 列被添加到 Products 表中,该表可以接受这些值—卡片、邮票、包装纸、礼品标签、礼品和个性化。

Note

确保在向表中添加新列时,遵循“进一步检查”一节中的第七章中概述的规则是很重要的。

通过转到数据库中有问题的表的设计来添加新列。在 MS Access 中,就是进入设计视图并添加列名和数据类型,如图 15-2 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 15-2。

Adding a new column called ProductType to the Products table of the Cards for Everyone Inc. database Note

关于创建和查看表格的具体细节可以在本书末尾的附录中找到。

图 15-2 中表格显示的 ProductType 列的数据类型为短文本。为了保持数据尽可能的“干净”,最好将产品类型列的数据类型设置为查找,并包括每个可供选择的产品类型,如第十章所述。

在这一阶段,ProductType 列已经添加到 Products 表中,但是还没有填充数据。如果没有将 ProductType 列引入数据输入表单、查询、报告等,它将保持未使用状态。对 Pat 来说,向她的团队解释已经做出的改变以及解释为什么有必要做出改变是很重要的。

在此示例中,将 ProductType 列添加到数据库需要四个操作:

  • 需要将新的供应商添加到供应商表中
  • 相应的产品需要添加到 products 表中,并带有它们的 ProductID 和 SupplierID
  • 对于每个新产品,需要添加相应的产品类型
  • 需要为 products 表中在添加 ProductType 列之前就存在的产品填充 ProductType 列;这些都有 ProductType = 'Card ’

假设 Cards for Everyone Inc .选择了三家新供应商——Art and Stuff(销售卡片和包装纸)、Glittery Fun(销售卡片、包装纸和小礼物)和 My Designs(利用照片和图画制作卡片)。供应商表将更新为三个新的供应商,如图 15-3 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 15-3。

Adding new suppliers to the Suppliers table of the Cards for Everyone Inc. database

许多这些新的卡片没有一个特定的类别,里面是空白的:一个新的类别被引入来包括这样的产品,称为所有场合。这一类别可适用于卡片以外的产品,如包装纸。

Cards for Everyone Inc .可以代表其客户在任何给定时间订购多达 100 张的个性化卡片:因此在 QuantityAvailable 一栏中最多有 100 张。

产品表将被更新,如图 15-4 所示,每个新产品都有相应的产品类型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 15-4。

Populating the ProductType column with new entries in the Products table of the Cards for Everyone Inc. database

在图 15-4 中,您可以看到在添加 ProductType 列之前,所提供的产品没有 ProductType。如图 15-5 所示,这可以通过向这些行中的每一行添加 ProductType = 'Card '来纠正。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 15-5。

Completing the ProductType column for earlier entries in the Products table of the Cards for Everyone Inc. database

随着业务的增长,手动完成如图 15-5 所示的变化是不太可能的。你需要将它们自动化。更新查询可用于一次自动更改一列中的几个值。本书末尾的附录中详细介绍了建立一个简单查询所需的过程。下面是一个简短的更新查询示例。

在开始此过程之前,请备份您的数据库。然后有两个步骤。

第一步是选择要更新的列中的数据。您可以通过指定所需的标准来做到这一点。图 15-6 显示了一个例子,它要求 ProductType 的所有空值——即 ProductType 的所有未被填充的值。它还要求输入 ProductName,以便可以识别 ProductType 的每个实例。检查查询是否返回了正确的行。否则,您需要调整标准陈述。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 15-6。

Query to select Null values in the ProductType column for the Products table of the Cards for Everyone Inc. database

一旦确定选择了相关列的正确值,第二步就是应用更新查询。在 MS Access 2013 中,从“查询类型”部分的“设计”选项卡中选择 UpdateQuery。图 15-7 展示了一个更新查询,它用值‘Card’替换 ProductType 列中的所有空值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 15-7。

Update query that completes the ProductType column for earlier entries in the Products table of the Cards for Everyone Inc. database

添加新表格

决定在 Cards for Everyone Inc .的数据库中添加一个名为 Orders 的新表,以便 Pat 可以密切关注库存水平。新表包含以下列:

  • 产品 id
  • 供货商编号
  • 预测或梦想数量
  • NextOrderDate

在下新订单之前,需要检查 Products 表中的 QuantityAvailable 列。

创建新表非常简单。需要采取第七章中的步骤,并插入图 15-8 中所示的所需关系。订单表和数据库的其余部分之间有两种关系:

  • 订单和产品之间的一对一关系。每种产品的库存都是单独考虑的。每当下新订单时,它只适用于一种产品。相反,当产品需要重新订购时,只需下一个订单。
  • 供应商和订单之间的一对多关系。每份订单都交给一个供应商。但是,一个供应商可以接收多个订单。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 15-8。

The relationships of the Orders table Note

数据库关系在第七章中有详细介绍。

与上一节中的新列一样,如果新表没有被填充和合并到表单和查询中,它将不会被使用。

拆分表格

Pat 决定将 QuantityAvailable 列从 Products 表中删除,放在 Orders 表中以避免混淆。做出这一决定的原因是 QuantityAvailable 列中的数据与订单直接相关,但与产品不直接相关。诸如此类的观察结果将在第七章的章节“进一步检查”中讨论。拆分表有许多步骤,当您对导入和导出数据越来越熟悉时,拆分会变得越来越容易。

Note

本书末尾的附录中介绍了数据的导入和导出。

有许多方法可以将可用数量从 Products 表移动到新创建的 Orders 表中。这里有一个建议:

Back up your database   Create a new table called Orders with the ProductID, SupplierID, QuantityAvailable, PredictedOrderAmount, and NextOrderDate columns.   Export the data from Products to a spreadsheet.   On the spreadsheet, delete all the columns in Products except ProductID, SupplierID, and QuantityAvailable, as shown in Figure 15-9.

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 15-9。

Exported and cropped data from the Products table of the Cards for Everyone Inc. database   Create two new columns on the spreadsheet entitled PredictedOrderAmount and NextOrderDate, as shown in Figure 15-10.

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 15-10。

The PredictedOrderAmount and NextOrderDate columns added to the Orders table   Add the data to the PredictedOrderAmount and NextOrderDate columns, as shown in Figure 15-10. (You can do this after the data has been imported to the Orders table in your database if you prefer.)   Import the data from the spreadsheet to the Orders table and ensure that it has moved successfully.   Delete the QuantityAvailable column from the Products table.

您需要仔细研究拆分“产品”表对任何使用产品的查询、窗体或报表的影响。移动 QuantityAvailable 列可能会导致链接断开和错误,您可能需要在以后的阶段修复这些错误。

重要的是让每个人都知道变化即将到来,这样他们就可以做好准备。此外,如前所述,在进行更改时,数据库应该脱机。

添加新对象

新查询、表单和报告的添加遵循与之前相同的步骤。但是,您必须确保对数据库所做的更改没有损坏任何表或查询。检查表之间的链接、表列中的值以及查询是否按预期运行。一旦你对一切正常感到满意,你就可以按照本书附录中的步骤添加新的对象。

摘要

阅读完本章后,您应该有信心评估何时需要对数据库进行更改以及如何实现这些更改。数据库可以非常灵活,所有的设计工作都需要在项目开始时进行,这是一个神话。小企业需要能够对市场状况做出反应,以保持竞争力和发展。

第十六章考虑了对外部请求的响应,与本章不同,它不涉及对数据库的永久更改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值