Coursera 笔记

Module 01 · Relational Database Concepts

Database Usage Patterns数据库使用模式

Coursera ↗

看完本视频后,您将能够:

  • 识别主要的数据库用户类别及其访问数据库的用例。
  • 解释不同类型数据库用户使用的接口和工具。

一、 数据库用户的主要类别

不同的工作角色使用不同的工具来访问数据库。数据库用户主要分为三类:

  1. 数据工程师和数据库管理员 (DBA)
  2. 数据科学家和业务分析师 (Business Analysts)
  3. 应用程序开发人员 (Application Developers)

二、 角色与使用工具详解

1. 数据工程师和数据库管理员 (DBA)

  • 主要活动:
    • 从事数据库管理工作,包括数据库对象的建立和监督。
    • 实施访问控制。
    • 监控和增强性能。
  • 核心目标: 致力于创建高效存储和管理数据的坚实基础。
使用的机制和工具
机制 描述 示例
图形用户界面 (GUIs) / Web 管理工具 常见的数据库交互方式。数据库通常提供图形工具、Web 界面(特别是云数据库)和移动应用程序。如果供应商工具不具备足够功能或用户友好性,用户可能会转向第三方或专业替代方案。 Oracle SQL Developer(Oracle 提供的图形工具)。
命令行接口 (CLIs) 和实用程序 在 GUI 工具普及的情况下仍然发挥着关键作用。用户可以直接发出数据库命令或利用交互式 shell 进行高效的命令行交互。 直接命令:例如 db2 create database sample;mysqldump sakila > sakila.sql。


交互式 Shell:例如 Oracle 的 sqlplus 或 db2 clp(如 db2 > connect to sample)。


其他:从 shell 执行 SQL 脚本和批处理文件。
应用程序编程接口 (APIs) 数据库通常包含用于管理任务的编程接口或 API,可从数据工程师或第三方创建的应用程序和工具中访问。 当需要自动化或程序化访问来执行创建和管理数据库对象、设置访问控制和监控性能等任务时,通常使用 API。

2. 数据科学家和业务分析师

  • 主要活动:
    • 数据分析、洞察提取和数据驱动的预测。
    • 典型的数据访问模式涉及读取现有数据源,偶尔需要创建和填充数据库对象(尤其是在他们的沙盒环境中)。
使用的工具
任务类别 常用工具 交互方式
数据科学与机器学习 Jupyter、R Studio、Zeppelin、SAS、SPSS。
报告、仪表板和商业智能 (BI) Microsoft Excel、Microsoft PowerBI、Tableau、Microstrategy。 通过 SQL 接口和 API 与关系型数据库交互,通常抽象了直接使用 SQL。
即席查询 (Ad-hoc Querying) SQL 查询工具(数据库提供或第三方解决方案)。 用户也可以选择 SQL 查询工具。

3. 应用程序开发人员

  • 主要活动:
    • 很少直接访问数据库。
    • 创建需要对数据库进行读写访问的应用程序。
  • 使用的编程语言: C++、C#、Java、JavaScript、.NET、PHP、Perl、Python 和 Ruby。
数据库通信
  • 低级 API: 编程语言通过 SQL 接口和 API(如 ODBC 和 JDBC)与数据库通信。一些数据库(尤其是基于云的数据库)也包含用于数据访问的 REST API。
  • 面向对象映射 (ORM) 框架:
    • 现状: 尽管使用低级 API 进行编程可行(过去是传统方法),但现在大多数程序员在处理数据库时选择 ORM 框架。
    • 定义: ORM 框架是软件开发中的工具,旨在促进关系型数据库与面向对象编程语言之间的交互。
    • 优势: 它们用户友好,可以隐藏底层关系型数据库和 SQL 的复杂性。
    • 流行示例: Ruby 应用中的 ActiveRecord、Python 中的 Django、.Net 中的 Entity Framework、Java 中的 Hibernate 和 JavaScript 中的 Sequelize。

总结要点

  • 数据库服务于多种用户角色,包括数据工程师/DBA、数据科学家/分析师和应用程序开发人员。
  • 数据工程师/DBA 使用 GUI、命令行接口和 API 进行管理任务。
  • 数据科学家/分析师 利用 Jupyter、R Studio 和 SQL 接口进行分析;而 PowerBI、Tableau 等 BI 工具则抽象了 SQL 交互。
  • 应用程序开发人员 使用编程语言和 ORM 框架进行应用程序开发。