【AI大数据工程师特训笔记】第01讲:数据库基本概念

目录

第一章:数据库基本概念

[1.1 什么是数据库?](#1.1 什么是数据库?)

[1.2 数据库的核心组成部分](#1.2 数据库的核心组成部分)

[1.2.1 数据库本身(存储仓库)](#1.2.1 数据库本身(存储仓库))

[1.2.2 数据库管理系统(DBMS)](#1.2.2 数据库管理系统(DBMS))

[1.2.3 ACID 特性(关系型数据库核心)](#1.2.3 ACID 特性(关系型数据库核心))

[1.2.4 数据库主要类型](#1.2.4 数据库主要类型)

第二章:数据库安装与连接实战

[2.1 Windows 直接安装 PostgreSQL(简要步骤)](#2.1 Windows 直接安装 PostgreSQL(简要步骤))

[2.2 在 WSL2(Ubuntu)中安装 PostgreSQL](#2.2 在 WSL2(Ubuntu)中安装 PostgreSQL)

[2.2.1 前提条件](#2.2.1 前提条件)

[2.2.2 进入 WSL2 终端并更新系统](#2.2.2 进入 WSL2 终端并更新系统)

[2.2.3 安装 PostgreSQL](#2.2.3 安装 PostgreSQL)

[2.2.4 启动 PostgreSQL 服务](#2.2.4 启动 PostgreSQL 服务)

[2.2.5 设置数据库用户密码](#2.2.5 设置数据库用户密码)

[2.2.6 配置 PostgreSQL 允许远程连接(供 Windows 主机访问)](#2.2.6 配置 PostgreSQL 允许远程连接(供 Windows 主机访问))

[2.2.7 获取 WSL2 虚拟机的 IP 地址](#2.2.7 获取 WSL2 虚拟机的 IP 地址)

[2.3 在 Windows 桌面使用 DBeaver 连接 WSL2 中的 PostgreSQL](#2.3 在 Windows 桌面使用 DBeaver 连接 WSL2 中的 PostgreSQL)

[2.3.1 安装 DBeaver(Windows 版)](#2.3.1 安装 DBeaver(Windows 版))

[2.3.2 启动 DBeaver 并新建连接](#2.3.2 启动 DBeaver 并新建连接)

[2.3.3 填写连接参数](#2.3.3 填写连接参数)

[2.3.4 测试连接并完成](#2.3.4 测试连接并完成)

[2.3.5 常见问题排查](#2.3.5 常见问题排查)

[2.4 验证数据库连接](#2.4 验证数据库连接)

[附录:SQL 语言分类速查表](#附录:SQL 语言分类速查表)


第一章:数据库基本概念

1.1 什么是数据库?

定义:数据库是一个有组织、有结构的集合,用于存储、管理和高效检索数据。

可以把数据库想象成一个高度现代化的"数字文件柜":

  • 文件柜 → 数据库系统

  • 抽屉/文件夹 → 数据库中的表(Table)

  • 每张纸 → 表中的一条记录(Row)

  • 图书 管理员数据库管理系统 DBMS ,负责查找、添加、修改、删除、安全控制等

数据库架构分为存算分离存算一体两种模式。

1.2 数据库的核心组成部分

1.2.1 数据库本身(存储仓库)

数据通常以表的形式组织:

  • :类似 Excel 工作表,存储特定类型的数据(如"用户表")。

  • 列(字段/属性):数据的某一类特征(如"姓名""电话")。

  • 行(记录/ 元组 :一个独立的数据实体(如一个具体用户)。

  • 主键:唯一标识每一行的一个或多个列(如"用户 ID")。

1.2.2 数据库管理系统(DBMS)

DBMS 是位于数据库和用户之间的软件层,主要功能包括:

  • 数据定义:创建、修改、删除表结构

  • 数据操作:使用 SQL 进行增、删、改

  • 数据查询:高效检索数据

  • 数据控制:管理访问权限

  • 事务管理:保证多操作要么全成功,要么全失败

  • 并发控制:防止多用户同时操作造成数据混乱

  • 备份与恢复:防止数据丢失

1.2.3 ACID 特性(关系型数据库核心)
特性 含义
原子性 事务中的操作要么全部成功,要么全部回滚
一致性 事务前后数据从合法状态变为另一合法状态
隔离性 多个事务并发执行时互不干扰
持久性 事务提交后数据永久保存(即使断电)
1.2.4 数据库主要类型
类型 特点 代表产品
关系型( RDBMS 表结构 + SQL + ACID MySQL, PostgreSQL, Oracle, SQL Server
非关系型( NoSQL 灵活模型,高扩展 MongoDB(文档), Redis(键值), Neo4j(图)
NewSQL 兼具 ACID 与扩展性 Google Spanner
内存数据库 数据在内存,极快 SAP HANA
时序数据库 处理时间序列数据 InfluxDB

第二章:数据库安装与连接实战

本章将介绍两种环境下的 PostgreSQL 安装,以及使用 DBeaver 图形化工具进行连接管理。

  • 方案一(传统):Windows 直接安装 PostgreSQL(简要回顾)。

  • 方案二(推荐):在 WSL2(Ubuntu)中安装 PostgreSQL,并从 Windows 桌面使用 DBeaver 连接。

2.1 Windows 直接安装 PostgreSQL(简要步骤)

详细步骤见原文档 1.3 节,此处仅列出关键节点。

(1)双击 postgresql-17.6-1-windows-x64.exe 安装包

(2)按向导依次选择:安装目录、组件(全选)、数据目录、设置密码(示例用 123456)、端口(默认 5432

(3)完成安装后,通过 pgAdmin 4 或命令行验证:

bash 复制代码
psql -U postgres -h localhost -p 5432
# 输入密码后执行 SELECT version();

(4)配置环境变量:将 C:\Program Files\PostgreSQL\17\bin 添加到 PATH

此方式简单直接,但不利于模拟 Linux 生产环境。推荐使用 WSL2 方案。

2.2 在 WSL2(Ubuntu)中安装 PostgreSQL

2.2.1 前提条件
  • Windows 10/11 已启用 WSL2,并安装了 Ubuntu 发行版(如 Ubuntu 22.04/24.04);

  • WSL2 已正确配置,可正常联网;

2.2.2 进入 WSL2 终端并更新系统

注意:这个地方并没有讲解如何安装 WSL,需要自己通过AI去解决。

打开 Windows 终端,输入 wsl 进入 Ubuntu,然后执行:

bash 复制代码
# 以管理员权限刷新软件源列表,并自动将所有已安装的软件包升级到最新版本。
sudo apt update && sudo apt upgrade -y
2.2.3 安装 PostgreSQL
bash 复制代码
# 创建一个文件夹,后续所有与大数据的内容都会安装在这个文件夹中
mkdir bigdata

# 进入文件夹中
cd bigdata

# Ubuntu 默认源中无 PostgreSQL 17,可先添加官方源:
# 添加 PostgreSQL 官方签名密钥和仓库
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install postgresql-17 postgresql-client-17 -y

输出如下内容:

2.2.4 启动 PostgreSQL 服务

在 WSL2 中,PostgreSQL 服务不会自动随系统启动(因为 WSL2 没有完整的 systemd),需要手动启动:

bash 复制代码
sudo service postgresql start

验证服务状态:

bash 复制代码
# 使用 PostgreSQL 自带的检测工具
sudo -u postgres pg_isready

# 尝试连接
sudo -u postgres psql -c "SELECT 1"

输出如下内容,即表示数据库完成安装并启动:

2.2.5 设置数据库用户密码

默认安装后,PostgreSQL 会创建一个名为 postgres 的 Linux 系统用户,同时也是数据库超级用户。首先切换到该用户,然后修改数据库密码:

bash 复制代码
sudo -u postgres psql

psql 命令行中执行:

bash 复制代码
# 修改数据库密码
ALTER USER postgres WITH PASSWORD '123456';

# 退出 PostgreSQL数据库
\q

密码可根据需要设置,本例统一用 123456 方便测试。

2.2.6 配置 PostgreSQL 允许远程连接(供 Windows 主机访问)

默认 PostgreSQL 只监听 localhost,需要修改配置以允许来自 Windows 宿主的连接。

① 修改监听地址

编辑配置文件 postgresql.conf

bash 复制代码
echo "listen_addresses = '*'" | sudo tee -a /etc/postgresql/17/main/postgresql.conf

保存退出(Ctrl+O -> 回车 -> Ctrl+X)。

② 修改客户端认证配置

编辑 pg_hba.conf

bash 复制代码
echo "host all all 0.0.0.0/0 md5" | sudo tee -a /etc/postgresql/17/main/pg_hba.conf

生产环境应限制为特定 IP 或网段,例如 192.168.1.0/24

重启 PostgreSQL 服务

bash 复制代码
sudo service postgresql restart
2.2.7 获取 WSL2 虚拟机的 IP 地址

Windows 宿主机需要知道 WSL2 的 IP 才能连接。在 WSL2 终端中执行:

bash 复制代码
ip addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'

输出如图内容:

记录下显示的 IP,例如 172.25.234.166

每次重启 WSL2 后 IP 可能会变,可以编写脚本或使用 localhost 的特殊方式?

注意:从 Windows 访问 WSL2 服务,不能直接使用 127.0.0.1,必须使用 WSL2 的虚拟 IP。也可以配置端口转发,但较为复杂,此处直接使用 IP 连接。

2.3 在 Windows 桌面使用 DBeaver 连接 WSL2 中的 PostgreSQL

2.3.1 安装 DBeaver(Windows 版)

(1)双击 dbeaver-ce-25.2.0-x86_64-setup.exe 安装包

(2)按向导选择安装类型(建议"All Users")、组件(全选)、安装路径(默认)

(3)完成安装后,勾选"Create Desktop Shortcut",点击 Finish

2.3.2 启动 DBeaver 并新建连接

(1)双击桌面 DBeaver 图标启动程序

(2)首次启动可能会提示创建示例数据库,选择"否"

(3)点击左上角"新建数据库连接"按钮(插头图标)→ 选择 PostgreSQL → 点击"下一步"

2.3.3 填写连接参数
参数
Host WSL2 的 IP 地址(如 172.xx.xx.xx
Port 5432
Database postgres(默认维护数据库)
Username postgres
Password 123456
2.3.4 测试连接并完成

(1)点击"测试连接"按钮

(2)如果提示下载 JDBC 驱动,点击"下载"

(3)看到"已连接"提示后,点击"完成"

此时 DBeaver 左侧会显示 PostgreSQL 服务器下的数据库列表,你可以展开 postgresSchemaspublic 查看表。

2.3.5 常见问题排查
现象 解决方法
连接超时 确认 WSL2 中 PostgreSQL 已启动(sudo service postgresql status
拒绝连接 检查 pg_hba.conf 是否已添加 0.0.0.0/0 并重启服务
密码错误 在 WSL2 中重新设置密码:sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '123456';"
WSL2 IP 变化 每次重启后重新获取 IP 并更新 DBeaver 连接设置,或使用脚本自动转发端口

进阶技巧 :可以在 Windows 中通过 PowerShell 设置端口转发,使 WSL2 的 5432 端口映射到 Windows 的 localhost,从而 DBeaver 固定使用 127.0.0.1:5432 连接。命令如下(以管理员身份运行):

bash 复制代码
netsh interface portproxy add v4tov4 listenport=5432 listenaddress=0.0.0.0 connectport=5432 connectaddress=<WSL2_IP>

但需要注意 WSL2 重启后 IP 会变,需重新执行或编写自动化脚本。

2.4 验证数据库连接

在 DBeaver 中打开 SQL 编辑器,输入以下语句并执行:

sql 复制代码
SELECT version();

输出如下内容即表示成功:

若返回 PostgreSQL 版本信息(如 PostgreSQL 17.6 on x86_64-pc-linux-gnu...),则代表连接成功,环境配置正确。

至此,你已完成:

  • ✅ 在 WSL2 中安装并配置 PostgreSQL

  • ✅ 在 Windows 桌面使用 DBeaver 远程连接 WSL2 中的数据库

  • ✅ 为后续 SQL 学习准备好运行环境

附录:SQL 语言分类速查表

类别 全称 核心命令 功能描述
DQL Data Query Language SELECT 查询数据
DML Data Manipulation Language INSERT, UPDATE, DELETE 增、删、改数据
DDL Data Definition Language CREATE, ALTER, DROP, TRUNCATE 定义或修改数据库结构
DCL Data Control Language GRANT, REVOKE 控制访问权限

后续章节将基于已连接的环境,详细讲解以上 SQL 命令的实战用法。

相关推荐
weilaieqi12 小时前
际连集团:印尼公司注册代办一站式服务
大数据
林间码客2 小时前
04 ROC曲线与AUC:从零开始手动计算
大数据·人工智能·算法
凡人叶枫2 小时前
Effective C++ 条款39:明智而审慎地使用 private 继承
java·数据库·c++·嵌入式开发
基德爆肝c语言3 小时前
MySQL表的操作
前端·数据库·mysql
穆利堂-movno13 小时前
住宅、写字楼、高校、医院物业后勤数字化升级:“收费+巡检+工单”全链路落地思路
大数据
makise-3 小时前
破译大数据底层密码:从 HDFS 存储基石到现代分布式计算引擎的架构演进
大数据·hdfs·架构
TDengine (老段)3 小时前
TDengine 连接算子 — Inner/Outer/ASOF/Window Join 的实现与使用
大数据·数据库·物联网·哈希算法·时序数据库·tdengine·涛思数据
春日见3 小时前
vscode的AI编程插件推荐:
大数据·ide·vscode·算法·机器学习·编辑器·ai编程
2601_959481923 小时前
CPT Markets:把信息披露习惯做到位——路径梳理与提示整理
大数据
Keano Reurink3 小时前
搜索API与GSC数据对比:发现数据盲区
数据库·python·数据挖掘