当前位置: 首页 > news >正文

【PostgreSQL】安装及使用(Navicat/Arcgis),连接(C#)

简介

PostgreSQL 是一个功能强大的开源对象关系数据库系统

下载地址

PostgreSQL: Downloads

由于我电脑上安装的是arcgispro3.1所以需要下载对应的postgresql版本

PostgreSQL 12 对应的 PostGIS 版本主要是 3.5.0 或更高版本。

安装

一般设置为postgresql

安装扩展插件

此处就是告诉你是否需要下载额外的插件

扩展的详情介绍请查看

【PostgreSQL】扩展插件介绍-CSDN博客

我选择npsql是因为我需要用.net连接数据库

而且下边也有介绍

PostgreSQL的。net数据提供程序。由EnterpriseDB打包。

选择postgis是应为需要连接arcgis/geoscene/qgis,将空间数据进行上传到数据库

PostGIS“在空间上启用”PostgreSQL服务器,允许它被用作地理信息系统(GIS)的后端空间数据库。

等待下载

下载完成

安装.net数据库驱动

完成扩展

安装PostGis扩展

此处输入的是PostgreSQl数据库的密码postgresql

设置空间数据库的名称

安装

安装完成

扩展全部安装完成

操作

连接postgresql

创建数据库

Navicat操作PostgreSql

连接

创建空间数据库

创建成功,有tiger和tiger_data和topolpgy说明创建的是带有空间属性的数据库

在PostgreSQL中创建数据库时,确实会自动创建一个名为public的模式。这个模式是每个新数据库默认包含的,无论用户是否指定模式名称,PostgreSQL都会将其放入public模式中。

在PostgreSQL数据库中,"tiger"和"tigerdata"以及"topology"模式分别有其特定的用途和背景。

TIGER(Topologically Integrated Geographic Encoding and Referencing)是一个由美国人口普查局开发的地理编码系统。它是一个数字化(计算机可读)的地理数据库,用于支持人口普查和调查程序中的地图制作及相关地理活动。TIGER 数据库的内容通过各种“TIGER 提取”文件提供给公众,并且不断更新。

在PostGIS中,可以生成一个shell脚本,用于下载TIGER数据并将其暂存到名为tiger_data的模式中。每个州的脚本都会作为单独的记录返回。这表明tiger_data模式是专门用来存储从TIGER数据库中提取的数据的逻辑层面数据集合。

PostgreSQL中的topology模式包含用于创建拓扑结构的函数及拓扑目录表。如果该模式不存在,则说明尚未安装相关的扩展。拓扑结构在地理信息系统(GIS)中非常重要,用于描述空间对象之间的拓扑关系。

综上所述,tigertiger_data模式主要用于处理和存储与地理信息相关的数据,而topology模式则用于构建和管理复杂的拓扑结构。这些模式在PostgreSQL数据库中扮演着重要的角色,特别是在地理空间数据分析和处理中。

表空间介绍

表空间可以分为系统表空间和非系统表空间。系统表空间如SYSTEMSYSAUX用于存储系统数据,而非系统表空间用于存储用户数据。

在PostgreSQL中,表空间实际上是为表指定一个存储目录。创建表空间时可以指定存储位置,并在创建数据库时指定默认的表空间。

在PostgreSQL中,可以通过创建不同的表空间来管理不同类型的数据。

在PostgreSQL中,pg_globalpg_default是两个默认的表空间,它们在数据库初始化时自动创建。以下是它们的详细描述:

  1. pg_global

    • pg_global表空间用于存储共享的系统目录对象。这些对象是所有数据库共享的系统表,例如pg_databasepg_authid等。
    • 它的物理文件位置通常在数据目录的global目录中。
    • pg_global表空间是全局的,适用于所有数据库。
  2. pg_default

    • pg_default表空间是默认的表空间,用于存储用户创建的对象,如用户表、用户表索引、临时表、临时表索引等。
    • 它是template1template0数据库的默认表空间,因此也是其他数据库的默认表空间,除非在创建数据库时通过TABLESPACE子句指定其他表空间。
    • 它的物理文件位置通常在数据目录的base目录中。
    • pg_default表空间是每个数据库的默认存储位置,除非用户明确指定其他表空间。

总结来说,pg_global主要用于存储系统级的共享数据,而pg_default则是用户数据和默认对象的存储位置。这两个表空间在PostgreSQL的体系结构中扮演着关键角色,确保了系统数据和用户数据的分离与管理。

使用ArcGIS/GeoScenePro连接

配置

arcgispro路径

D:\Program Files\GeoScene\Pro\Resources\DatabaseSupport\GeoScenePro_41_ST_Geometry\PostgreSQL\12

 postgresql路径

D:\Program Files\PostgreSQL\12\lib

创建企业级地理数据

 授权文件地址

C:\Program Files\ESRI\License11.1\sysgen

连接

连接成功

使用C#连接数据库

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Npgsql;namespace ConnectDatabase
{internal class Program{static void Main(string[] args){// 连接字符串,包含了数据库的位置,用户名和密码string connString = "Host=localhost;Username=postgres;Password=postgresql;Database=GeoData";// 使用using语句确保连接会被正确关闭和释放using (var conn = new NpgsqlConnection(connString)){conn.Open();// 创建一个SQL查询string sql = "SELECT version()";using (var cmd = new NpgsqlCommand(sql, conn)){// 执行查询并读取结果var version = cmd.ExecuteScalar();Console.WriteLine($"PostgreSQL version: {version}");}}Console.ReadKey();}}
}

连接成功

参考文档

PostgreSQL关系型数据库安装教程 (qq.com)

 数据库连接时的表空间 (metaso.cn)

pg_global 和 pg_default (metaso.cn)

http://www.lryc.cn/news/439350.html

相关文章:

  • 第L6周:机器学习-随机森林(RF)
  • 【电路笔记】-差分运算放大器
  • git 命令---想要更改远程仓库
  • LeetCode:2848. 与车的相交点 一次遍历,时间复杂度O(n)
  • Xcode 16 RC (16A242) 发布下载,正式版下周公布
  • git 更换远程地址的方法
  • 9. 什么是 Beam Search?深入理解模型生成策略
  • Spring自定义注解
  • 微信小程序:wx.login或调用uni.login时报错the code is a mock one
  • URL的执行流程
  • 双指针算法专题(2)
  • 加密与安全_优雅存储用户密码的最佳实践
  • 【多线程】深入剖析线程池的应用
  • 『功能项目』切换职业面板【48】
  • 【EasyExcel】@ColumnWidth(value = 20) EasyExcel设置列宽不生效
  • CPU 和 GPU:为什么GPU更适合深度学习?
  • 【机器学习】:解锁数据背后的智慧宝藏——深度探索与未来展望
  • 【Kubernetes】常见面试题汇总(十八)
  • 无限边界:现代整合安全如何保护云
  • HTML贪吃蛇游戏
  • HTML 揭秘:HTML 编码快速入门
  • Ubuntu22.04系统安装opencv步骤简述及问题解决方法
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——13.mapset
  • 【webpack4系列】webpack基础用法(二)
  • Python Pyvis库创建交互式网络图 高级功能详解
  • Linux服务器上安装git lfs命令
  • S100A9:鸡支原体感染中的免疫调控“双面间谍”【AbMole】
  • 黑神话悟空黑风山攻略
  • Android 11 FileProvider的使用和限制
  • 闭包+面试真题