Daha çox

PostGIS -də çoxbucaqlı sentroidlərin əlavə sütuna daxil edilməsi

PostGIS -də çoxbucaqlı sentroidlərin əlavə sütuna daxil edilməsi


ST_Centroid istifadə edərək bir cədvəl üçün x və y sentroidlərini hesablamağa çalışıram. Sənədlərdə bir həndəsənin həndəsi mərkəzini qaytardığı bildirilir. Əvvəlcə bir sütun hazırladımX:

ALTER TABLE "test_table" ADD X ikiqat dəqiqlik;

və sonra mərkəzdəki x komponentini orada saxlamağı planlaşdırırdı. Centroid hesablamaq üçün kodum belədir:

ST_Centroid (a.the_geom) seçin "test_table" AS AS

Ancaq bu sorğu başa düşmədiyim aşağıdakı nəticəni verir:

"01010000006BAEC2FBDFC61E415B3E9E2946520541" "0101000000E6ABADEBFEC51E4102E9A95858520541" "01010000003233333321C61E410BD7A370677888778788778789797979797979797979798

Bu yanaşma ilə ikinci problemim nəticəni saxlamaqdır. Bu nəticəni Sütuna daxil etməyə çalışandaXDüzgün sintaksisi anlaya bilmədim. İstifadə etməyə çalışdığım şey:

"Test_table" (X) VALUES (ST_Centroid (a.the_geom)) daxil edin, "test_table" dan AS

və həmçinin

"Test_table" (X) VALUES ("test_table" AS "ST_Centroid (a.the_geom) SELECT" daxil) daxil edin

amma bunların heç biri işləmir.

Mənim iki əsas sualım (1) hansı dəyərin geri qaytarılmasıdırST_Centroidvə (2) nəticəni mövcud bir cədvələ necə əlavə edə bilərəm?


X və y sütunlarını istəyirsinizsə:

ALTER TABLE "test_table" ADD x ikiqat dəqiqlik; ALTER TABLE "test_table" ADD və ikiqat dəqiqlik; YENİLƏN "test_table" SET x = ST_X (ST_Centroid (the_geom)); YENİLƏN "test_table" SET y = ST_Y (ST_Centroid (the_geom));

Bir həndəsə sütunu istəyirsinizsə (sxem adınızı və CRS -ni ehtiyaclarınıza uyğun olaraq tənzimləyin):

SEÇ AddGeometryColumn ('test_schema', 'test_table', 'centroid_geom', 4326, 'POINT', 2); YENİLƏN "test_table" SET centroid_geom = ST_Centroid (the_geom);

ST_X funksiyasından istifadə etməlisiniz.

Artıq həndəsə sütunu olan bir cədvəlin mərkəzinin x koordinatı ilə doldurmaq istədiyinizi fərz etsəniz, aşağıdakı kimi istifadə edə bilərsiniz:

YENİLƏNİB test_table SET x = ST_X (ST_Centroid (the_geom));

Fərqli bir şeyə ehtiyacınız varsa, daha dəqiq bir yardıma ehtiyacınız varsa masanın tam quruluşunu yazın.


Bu həndəsədir (əslində bir nöqtə). Gördüyünüz şey, çox güman ki, tanınmış mətn (WKT) istədiyiniz ayıklama məqsədləri üçün tanınmış ikili (WKB) olaraq mətnin təqdimatıdır (baxın https://postgis.net/docs/using_postgis_dbmanagement.html#OpenGISWKBWKT) ,

ST_AsText (ST_Centroid (a.the_geom)) seçin "test_table" AS

Görmək istədiyinizi göstərəcək.

Əlavə etmək üçün ikiqat deyil, həndəsə sütunu lazımdır. Bunun üçün sizin üçün lazım olan bütün mühasibat uçotunu aparan addGeometryColumn istifadə etməlisiniz (sütunu həndəsə sütunlarına metadata və s. Əlavə etmək kimi şeylər).


Postgresql Postgis SQL Complex Join (GIS ilə əlaqəli deyil)

Parlaqlığın olmaması üçün üzr istəyirəm, amma təsvir etmək çətindir.

Deyək ki, mənim iki cədvəlim var (cad və cad_polygon).

cad və cad_polygon bir-biri ilə əlaqəli eyni sütunu paylaşır (cad_pid).

cad bu sütunlara malikdir: cad_pid, jrsdctn_id

isə cad_polygon bu sütunlara malikdir: cad_pid, ogc_fid, wkb_geometry

İndi işlədiyim aşağıdakı sorğu (günün yarısı çalışıram) uzun, lat koordinatından dərəcəyə əsaslanaraq bir bağlama seçir, o qədər də çox olmayan çoxbucaqlı dəstədən, məsafəni verilən uzun, lat co-dan metrlərlə tapır. -ord, sonra yalnız mərkəz mərkəzinin uzun, lat koordinatından 500m məsafədə olan çoxbucaqları göstərir.

Buna əlavə etmək istəyirəm və bu sorğunun töküldüyü siyahıdan istifadə edərək digər cədvəlimə (cad) qoşulun ki, hər bir ortaya çıxan sətir üçün əlavə "jrsdctn_id" sütunu verim. yəni:

Orada bir sql sihirbazı kömək edərsə əla olar!


Verilənlər bazanızı PostGIS həndəsəsindən istifadə etməyə hazırlamaq

Coğrafi verilənlər bazanızda PostGIS həndəsə növündən istifadə etmək üçün verilənlər bazanızın PostGIS həndəsə tipini istifadə etməsi üçün aktivləşdirilməlidir. Bunu etmək üçün, PostGIS qurarkən yaradılan PostGIS şablon verilənlər bazasını istifadə edərək verilənlər bazası yaratmalısınız.

Windows ArcSDE Post Quraşdırma sihirbazını istifadə edərək coğrafi verilənlər bazanızı yaradırsınızsa, verilənlər bazanız PostGIS şablonundan başqa bir şablon istifadə edərək yaradılır. Buna görə də, PostGIS həndəsə növündən istifadə etmək istəyirsinizsə, quraşdırma sonrası quraşdırma başlamazdan əvvəl quraşdırma sihirbazından çıxmalı və verilənlər bazasında PostGIS şablonu, sde istifadəçisi və sde istifadəçi sxemindən istifadə edərək əl ilə bir verilənlər bazası yaratmalısınız. Sonra, Quraşdırma Sonrası sihirbazının ilk informasiya qutusunda Xüsusi düyməsini basaraq, sonrakı düyməni basaraq və SDE İstifadəçi Ətrafını Müəyyən et seçimini ləğv edərək sihirbazdan istifadə edərək quraşdırma sonrası qalan addımları tamamlaya bilərsiniz.

Qeyd: Linux -da PostGIS qurmaq üçün PostgreSQL mənbə fayllarını yükləməlisiniz.

İstifadəçilərə PostGIS həndəsə tipli sütunları olan cədvəllər yaratmaq hüququ verilməsi

PostGIS üçün bir verilənlər bazası aktiv edildikdə, ümumi sxemdə bir cədvəl və#8212geometry_cütunları yaradılır. Cədvəl bazasında məlumat yaradan hər hansı bir istifadəçiyə ən azından bu cədvəldə SELECT, INSERT, UPDATE və DELETE imtiyazları verməlisiniz.


ZWCAD YUNANISTAN

ZWCAD üçün məkan meneceri və ticarət

Ümumi

Məkan məlumatlarını ZWCAD təsvirlərinə daxil edin/ixrac edin

Yeni və ya mövcud ZWCAD təsvirlərindəki fayllar, məlumat serverləri və ya digər məkan məlumat mənbələri və obyektlər arasında məkan məlumatlarını idxal edin və ya ixrac edin. Məkan alfasayısal məlumat cədvəllərini yükləmək və ya saxlamaq üçün Extended Entity Data (EED) istifadə edin. İdxal və ixrac sehrbazları istifadəçini bütün lazımi parametrləri və bir çox maraqlı variantları seçməyə vadar edir

İdxal və ya ixrac edərkən koordinatların çevrilməsi

İdxal və ixrac proseslərinə uyğun olaraq xüsusiyyətlərin həndəsi çevrilməsi. Mənbə və hədəfin əlaqələndirmə istinad sistemi (CRS). Tam CRS kataloqu. Kataloq və açılan siyahılar ən son istifadə olunan CRS -ləri ehtiva edir


Rəsmin koordinat sistemini dəyişdirin

İki CRS arasındakı seçilmiş çevrilməyə uyğun olaraq, cari rəsmdən həndəsi cəhətdən yenilənmiş cisimlər daxil olmaqla avtomatik olaraq yeni bir rəsm yaradan bütöv bir rəsm və ya seçilmiş obyektlər dəstinin Koordinat Sistemini (CRS) çevirin.

OpenStreetMap, Bing, MapBox, Ordnance Survey və s. Və ya istifadəçi tərəfindən təyin edilmiş xəritələr kimi bir çox provayderdən bir çox Arxa Plan Xəritələri arasından seçin. Rəsmlərin keyfiyyətini artırır və istifadəçinin müqayisə etməsinə və daha yaxşı yoxlamasına imkan verir

Mətn axtarış pəncərəsi vasitəsilə İnternetin coğrafi yerləşmə xidmətlərinə daxil olun və seçilmiş yerin həndəsəsini avtomatik olaraq yaxınlaşdırın və ya daxil edin

Arazi və digər əlaqəli obyektləri yaratmaq üçün intuitiv bir interfeysi ehtiva edən qabaqcıl ərazi texnologiyası: 3D Nöqtələr (rəsm və ya İnternet xidmətləri), Konturlar, 3D Arazi modelləri və s.

Rəsmdəki obyektləri seçərkən onların EED'ləri tətbiq palitrasının "Xüsusiyyətlər" sahəsində göstəriləcək. Dəyərlər birbaşa palitrada düzəldilə bilər və köprülər daxil ola bilər

Məlumat quruluşunun idarə edilməsi

Obyektlərə əlavə edilmiş məlumatları saxlamaq üçün istifadə ediləcək quruluşu dizayn edin və redaktə edin. Masaları və sahələri ehtiyaclara görə idarə edin. Məlumatları əlavə etmək, ayırmaq və seçmək üçün yeni vasitələr

İdxal prosesləri

Yeni və ya açıq bir rəsmə idxal olunan təşkilatlar

İdxal prosesləri mövcud ZWCAD rəsmində və ya yeni rəsmlərdə həyata keçirilə bilər. Lazım gələrsə tətbiq avtomatik olaraq yeni təsvirlər açır

Sahə dəyərindən istifadə edərək əsas hədəf qatı və ya yeni hədəf qatları

Ümumi bir hədəf təbəqəsi təyin edin və ya hər yeni idxal olunan obyekt üçün dəyərlərini hədəf qatı olaraq qəbul etmək üçün gələn məlumat mənbəyindən bir sahə seçin.


Xallar və centroidlər üçün bloklardan istifadə edin

Nöqtə xüsusiyyətlərini və ya çoxbucaqlı xüsusiyyətlərin mərkəzini idxal edərkən ZWCAD Nöqtələri və ya Blok İstinadları arasında seçim edin. Bloklardan istifadə edərkən daxil etmək üçün Blok İstinad Adlarını seçmək üçün bir sahə seçə bilərsiniz və daxil olan məlumatlardan Blok tərifinin içərisindəki Xüsusiyyətlərə "xəritələşdirin".

Sahə dəyərlərindən daxiletmə parametrlərini bloklayın

Blokun miqyası və fırlanması kimi Blok daxiletmə parametrlərini təyin etmək üçün daxil olan məlumatların sahələrini də istifadə edin


Çoxbucaqlı doldurmalar və şəffaflıqlar

ZWCAD lyuklarından istifadə edərək çoxbucaqlı sahələri doldurun və nümunə, bucaq və miqyas kimi lyukların seçimlərini müəyyənləşdirin. Lyuklara şəffaflıq tətbiq edin

ZWCAD Nöqtələrindən və ya Blok İstinadlarından istifadə edərək çoxbucaqlı xüsusiyyətlər idxal edərkən isteğe bağlı mərkəzlər çəkin


İdxal edərkən obyektlərin etiketlənməsi

Hər hansı bir varlığı etiketləmək üçün bir məlumat sahəsi seçin: nöqtə növü, xətti tip və ya çoxbucaqlı tip (centroid). Xətti tipli obyektlər üçün ağıllı mətn yeri. Yeni mətnlərin xüsusiyyətləri (fırlanma, yüksəklik və s.) Digər məlumat sahələrindən götürülə bilər

Yalnız mövcud görünüşdəki obyektləri idxal edin


Sahə dəyərlərindən yüksəklik və qalınlıq

Yeni obyektlər üçün yüksəkliyi və/və ya qalınlığı təyin etmək üçün daxil olan məlumatlardan sahə dəyərlərini götürün

Genişləndirilmiş Sahə Məlumatı (EED) olaraq cədvəllərdən məlumatları idxal edin

Daha "ağıllı" ZWCAD rəsmləri əldə etmək üçün Xüsusiyyətlər məlumatlarını Varlıqlar Genişləndirilmiş Varlıq Məlumatları (EED) olaraq idxal edin


Sihirbazın bəzi addımlarını ataraq prosesləri sürətləndirin

Xüsusi bir iş üçün lazımsız addımları atın və idxal sihirbazının təyin etdiyi bütün qaydalara riayət etmək üçün birbaşa idxal prosesinin icrasına keçin.

Sezgisel palitrası seçimlərindən və ya sürətli idxal funksiyasından istifadə edin

Bu mənbədən idxal etmək üçün müəyyən bir məlumat mənbəyində sağ klikləmə menyusundan istifadə edin və ya istəmirsinizsə tətbiq palitrasını açmaqdan çəkinən idxal əmrini işlədin.

Bütün faylları bir qovluqdan bir anda idxal edin. Gerekirse, hər bir faylın məzmununu fərqli qatlarda ayırın

Tapşırıqlar, hər hansı bir idxal prosesini parametrlərini yenidən daxil etmədən istədiyiniz qədər təkrar etməyə imkan verir. Tətbiq palitrasında Tapşırıqları idarə edin və icra edin

İxrac prosesləri

Coğrafi məkan sənədlərinə və ya serverlərə ixrac edilən təşkilatlar

Mövcud rəsmdən fayllardakı və ya verilənlər bazasındakı yeni və ya mövcud cədvəllərə

İxrac ediləcək obyektləri seçin

Seçilmiş obyektləri, bir təbəqədəki varlıqları və ya bütün rəsmləri ixrac etmək arasında seçim edin


Qapalı polylinləri çoxbucaqlı kimi işlətmək imkanı

Çox vaxt qapalı polylines hədəf məlumat formatında çoxbucaqlı elementləri təmsil edir və bu dönüşüm avtomatik ola bilər

Həndəsə məlumatları üçün seçimlər

Məlumat cədvəllərinin yeni sahələrində X/Y/Z, Uzunluq, Sahə və Yüksəklik koordinatlarını ixrac edin


Z-Koordinat və Yüksəklik

Z koordinatı bütün hallarda ixrac olunur. Mövcud deyilsə, Yüksəklik müəssisəsi Z koordinatı olaraq ixrac olunur

Varlıqların xüsusiyyətləri üçün seçimlər

Məlumat cədvəllərinin yeni sahələrində Tutacaq və Obyektlərin Layerini ixrac edin


Blok istinadları üçün seçimlər

Məlumat cədvəllərinin yeni sahələrində Ad, Rotasiya, Ölçəklər və Blokun istinadlarının xüsusiyyətlərini ixrac etmək imkanı. Sahələrin və Xüsusiyyətlərin adları uyğun olacaq

Mətn obyektlərini və əsas xüsusiyyətlərini ixrac edin (Dönmə və Boy)

Hatch obyektlərini və xüsusiyyətlərini ixrac edin (Ad, Açı, Ölçək və s.)

Avtomatik kompleks həndəsi əməliyyatlar

Lazım gələrsə əyrilərdə çoxbucaqlı seqmentləşdirmə kimi hədəf formatında yerləşdirilmiş həndəsələri ixrac etmək üçün seçilmiş obyektlərin nəzərdən keçirilməsi və redaktə edilməsi


Uyğun olmayan varlıqların süzülməsi

Avtomatik olaraq süzülən ixrac prosesləri tərəfindən dəstəklənməyən (kompleks 3D obyektlər kimi) bir neçə varlıq növü var. İxrac etməzdən əvvəl filtr nəticəsi göstərilir

Bir fayla hər hansı bir ixrac prosesi başa çatdıqdan sonra, fayl yeri birbaşa açıla bilər. Bir KML və ya KMZ faylına ixrac edərkən, faylı Google Earth -də açmaq üçün seçilə bilər (quraşdırılıbsa)

Fiziki və ya net sürücüdəki hər hansı bir qovluğa istinad edin və qovluğa tez daxil olmaq üçün bu istinadı istifadəçi konfiqurasiyasında qeyd edin. Məlumat mənbələri palitrasındakı qısa yolları düzəldin, silin və ya sıralayın

Məkan məlumat fayllarına giriş (SHP, GPX, KML, OSM, GML və s.) ( tam siyahını göstər )

Bir çox məkan məlumat fayl növünə və ya kompleks məkan faylları içərisində olan qovluqlara və sxemlərə daxil olaraq məkan məlumat cədvəllərindən idxal/ixrac edin.


İstifadəçi Məlumat mənbələrinizi idarə edin

Məkan verilənlər bazası serverləri və ya məlumat mağazaları ilə asanlıqla əlaqə qurmaq və ya öz əlaqə parametrləri daxil olmaqla məkan məlumat fayllarına gedən yolu təyin etmək üçün tətbiqdə UDS texnologiyasından istifadə edin. Məlumat mənbələri palitrasında UDS -ləri düzəldin, silin və ya sıralayın

Məkan verilənlər bazası serverlərinə giriş (SQL Server, PostGIS və s.) ( tam siyahını göstər )

Sadə və ya mürəkkəb daxili strukturlar da daxil olmaqla bir çox məkan məlumat serverinə daxil olaraq masalara daxil olmaq və onları idxal etmək və ya ixrac etmək üçün UDS -lərdən istifadə edin.

WFS mağazaları və ya ODBC kimi xüsusi məkan məlumat əlaqələrinə daxil olmaq üçün UDS -lərdən də istifadə edin

Sxemləri və cədvəlləri idarə edin

Şemaları yaradın, silin və adını dəyişin. Cədvəllərin adını dəyişdirin və silin.

Koordinat İstinad Sistemini bir rəsmə təyin etmək və ya idxal / ixrac proseslərini həyata keçirərkən mənbəyə və hədəfə CRS təyin etmək üçün eyni vasitələrdən (əsasən CRS Kataloqu) istifadə edin.

Tətbiq hər hansı bir konfiqurasiya parametrinə girərkən kömək edir. Məsələn, Google Earth -dən (KML) idxal edirsinizsə, CRS mənbəyi avtomatik olaraq WGS84 olaraq təyin olunur və hədəf CRS standart proqnozlaşdırılan CRS olaraq təyin edilə bilər.

Yenilənmiş Koordinat Sistemləri obyektlərinin siyahısı

Obyektlər siyahısına Yerin bütün sahələri və coğrafi seqmentləri üçün 14000 -dən çox proyeksiya, ellipsoid, koordinat sistemləri, koordinat çevrilmələri və s. Bu siyahı tez -tez genişləndirilir, yenidən işlənir və yenilənir. Kataloqda ən son istifadə olunan CRS -ləri süzmək, axtarmaq və ya qruplaşdırmaq üçün bir sıra praktiki vasitələr var

Seçim qutularının bu Qrupdakı mövcud Xəritələrin önizləmə şəklini göstərdiyi müəyyən bir Xəritə Təchizatçı Qrupunu göstərmək üçün Arka Plan Xəritələri pəncərəsindəki nişanlardan istifadə edin. Hər hansı bir xəritəni tez bir zamanda göstərin və gizləyin. Alətləri bərpa edin

Xüsusi bir Koordinat İstinad Sistemini təyin etmədən belə yeni bir işə və ya layihəyə başlayarkən kartoqrafik bazaya sahib olmaq üçün Arxa Xəritələri boş rəsmlərdə qurmaq da mümkündür.

Minimum məlumat daxil edərək yeni Qruplar və yeni Xəritələr konfiqurasiya edin. Xəritələr konfiqurasiya məlumatlarını redaktə etmək və ya siyahıdan silmək üçün vasitələr də mövcuddur. İdxal et - İstifadəçi BG Xəritələrini paylaşmaq üçün ixrac edin

Xəritələrdən statik ZWCAD raster şəkillərini əldə edin. Dörd səviyyəyə qədər görüntü qətnaməsi. Xəritələri birləşdirmək və ya Xəritələri kəsmək üçün inkişaf etmiş bir Çap və ya Nəşriyyat vasitəsi olaraq fərqli Görünüş və/və ya Görünüşlər üçün fərqli xəritələr təyin etmək üçün maraqlı həllər təqdim edir.

Axtarış mətnini daxil etdikdən və & ldquoAxtar & rdquo düyməsini basdıqdan sonra İnternet axtarış xidmətləri tərəfindən qaytarılmış nəticələr pəncərədə görünəcək və Tam Ad, Növ, Həndəsə növü və Məkan xidmət mənbəyini ehtiva edəcək. Nəticə satırlarını fərqli pəncərə sütunlarına görə sıralaya bilərsiniz

İstənilən nəticə sətrini seçin və yeri yaxınlaşdıra, həndəsə növündən asılı olaraq rəsmə Geometriya, nöqtələr, çox xətlər, çoxbucaqlılar və s. Daxil edə və həndəsəyə yaxınlaşdıra və ya həndəsi zərf düzbucağını daxil edə biləcəksiniz. və zərfə yaxınlaşdırın
Çoxbucaqlı həndəsələr və ya düzbucaqlı zərflər daxil edərkən lyuk əlavə etmək üçün lyuk və rdquo istifadə edərək sahələri seçin və seçin.

Nəzərə alın ki, & lsquoSearch Location & rsquo pəncərəsi, siz istədiyiniz nəticələrlə hərəkətləri təkrarlaya bilmək üçün siz bağlanana qədər açıq qalır. Əslində, pəncərə hələ də ekranda olarkən, rəsm üzərində gəzə, rəsmini düzəldə bilərsiniz və s

Rəsmdə seçilmiş və ya hər hansı bir seçilmiş sahədə Yüksəklik xidməti təminatçılarından qurulmuş Nöqtələr və ya Bloklardan istifadə edin

Kiçik və böyük Konturlar yaradın, Kontur yüksəkliklərini fərqli Qatlarda və fərqli rəng modellərində ayırın. İsteğe bağlı əlavə edilmiş Məlumat Cədvəllərinə Kontur yüksəklik dəyərləri və növləri daxil ediləcək

Seçilmiş 3D obyektlərindən 3D Meshlər və ya digər CAD/BIM obyektləri istifadə edərək 3D modellər istehsalı

Tətbiqin qabaqcıl İxrac imkanlarından asılı olmayaraq, istifadəçi rəsmin görünən Qatlarında olan obyektlərin hamısını və ya bir hissəsini bir klik vasitəsilə KML və ya KMZ faylına (Google Earth) ixrac etmək üçün xüsusi bir vasitə tapa bilər. əməliyyat. Bundan əlavə, faylı birbaşa Google Earth -də açmaq mümkündür (quraşdırılıbsa)

Proses mövcud Layers təşkilatını və Layers və obyektlərin xüsusiyyətlərini nəzərə alacaq. KML/KMZ faylındakı elementlər rəsmdəki obyektlərin rənglərini, çəkilərini və s. Qatlardakı obyektlərin növlərinə əsaslanan bir bölmə də hər Layer üçün yaradılacaq

Məlumat Cədvəlləri hər hansı bir məlumat mənbəyindən elementlər idxal edilərkən avtomatik olaraq yaradıla və qurula bilər, lakin tətbiqdə istifadəçilərin yeni Cədvəllər yaratmaq və mövcud Cədvəlləri redaktə etmək və ya silmək üçün lazım olan bütün vasitələr var. Cədvəl dəyişdirildikdə və ya silindikdə, Cədvələ əlavə edilmiş bütün obyektlər avtomatik olaraq yenilənəcəkdir. Mövcud hər hansı bir cədvəldə sahələri yaradın, düzəldin və ya silin. İstənilən sahəyə standart dəyər təyin edə və sahə üçün məlumat növünü seçə bilərsiniz (Mətn, Tamsayı, Tarix və s.). Cədvəllərdə olduğu kimi, cədvəlin sahələrində hər hansı bir dəyişiklik baş verərsə, tətbiq avtomatik olaraq bütün əlavə edilmiş obyektləri yeniləyəcək.

Məlumat cədvəllərinə avtomatik və ya əl ilə Əlavə etmə, müəyyən bir əlavə edilmiş cədvəl əsasında Varlıqlar, Müəssisələr və Müəssisələr Seçimlərinin seçilməsi üçün Dəyərlər sahəsinə birbaşa baxmaq və redaktə etmək. Palitrası tətbiqindən Hyperlink sahələrinə birbaşa giriş

Rəsmdəki hər hansı bir cədvəldəki varlıq məlumatlarına baxa, düzəldə və s. Edə biləcəyiniz interaktiv və sinxron palitrası. Ayrıca, "Məlumat Şəbəkəsi" ndən obyektləri seçə, cədvəllərdən məlumatları ixrac edə və daha çox edə bilərsiniz

Sadə və ya mürəkkəb sorğularla rəsmlərdə obyektlərin seçilməsi. Mövcud seçim üçün sorğuları və ya sorğuları tamamlayın və nəticəni cari seçimə əlavə edin. Xüsusi bir cədvəl əsasında seçimlər. Seçilmiş obyektlərə yaxınlaşdırın


İki nöqtədən xətlər yaradın

Bir çox nöqtə məlumatı olan bu şəkil sənədinə sahibəm və bu nöqtələrin hər birini müəyyən bir nöqtəyə bağlayan xətlərlə başqa bir şəkil düzəltmə ehtiyacım var. Əl ilə etməklə bu yeni xətt şəklini yaratmaq üçün bir yol varmı?

Cari nöqtənin x və y koordinatları üçün atribut cədvəlində iki üzən sahə yaradın. ! Field.centroid.x ilə hər sahədə sahə kalkulyatorundan istifadə edin! və! forma.centroid.y! müvafiq olaraq onları doldurmaq.

İndi x və y xüsusi təyinat nöqtələri üçün daha iki üzən sahə yaradın. Bunları yenidən sahə kalkulyatoruna daxil edə bilərsiniz, bu dəfə x və ya y dəyərini qutuya yazın.

İndi hər bir nöqtənin koordinatlarını və hamısı üçün təyinat nöqtəsini ehtiva edən 4 yeni sütundan ibarət bir şəkil sənədiniz olmalıdır.

Məlumat idarəetmə alətlər qutusunda & gt xüsusiyyətlərində & quot üçün xətt çəkmək və quot etmək üçün istifadə edin. Başlanğıc və bitiş x və y uyğun qutular üçün yeni sahələr seçin. Digər qutuları da düzgün məlumatla doldurun və aləti işlədin.


Verilənlər bazası idarəetmə proqramının xüsusi bir tətbiqi daxilində qurular, fiziki bir verilənlər bazası dizayn prosesinin məhsulu olan fiziki məlumat modelinin inkişafına rəhbərlik edir. Fiziki məlumat modeli, məlumatların kompüter avadanlıqlarının saxlama mühitində necə saxlanılacağını və onlara necə daxil olacağını sənədləşdirir. Fiziki məlumat modeli, verilənlər bazası idarəetmə sistemi proqramında istifadə olunan xüsusi məlumat növlərindən və indeksləmə mexanizmlərindən asılıdır. Tam ədədlər, reals, xarakter simləri və digərləri kimi məlumat növləri fərqli saxlama quruluşlarına səbəb ola bilər. Bölgə ağacları və hash funksiyaları və digərləri kimi indeksləmə mexanizmləri giriş performansında fərqlərə səbəb olur. Məlumat növləri və saxlama strukturları ilə əlaqəli indeksləmə mexanizmləri haqqında fiziki məlumat modelləşdirmə seçimləri, fiziki verilənlər bazası dizaynının detallarını dəqiqləşdirir. Sahə, qeyd və fayl saxlama quruluşları ilə əlaqəli məlumat növləri, bu strukturlara giriş mexanizmləri ilə birlikdə verilənlər bazası dizaynının performansını artırır. Bütün proqramlar bir əməliyyat sistemindən istifadə edildiyindən, sahə, qeyd və fayl saxlama strukturları tətbiq olunmaq üçün əməliyyat sistemi konstruksiyalarına çevrilməlidir. Beləliklə, bütün saxlama strukturları əməliyyat sistemi və məlumat idarəetmə proqramına sahib olan xüsusi avadanlıqdan asılıdır.

"Fiziki Məlumat Modelləri" girişinin son versiyasına aşağıdakı kimi istinad edilə bilər.

Nyerges, T. (2017). Fiziki Məlumat Modelləri. Coğrafi İnformasiya Elmləri və Texnologiya Bilik Bədəni (1st Quarter 2017 Edition), John P. Wilson (red.). DOI: 10.22224/gistbok/2017.1.1

Bu giriş ilk dəfə 24 fevral 2017 -ci ildə nəşr edilmişdir.

Bu mövzu aşağıdakı nəşrlərdə də mövcuddur: DiBiase, D., DeMers, M., Johnson, A., Kemp, K., Luck, A. T., Plewe, B. və Wentz, E. (2006). Fiziki modellər. Coğrafi İnformasiya Elmləri və Texnologiya Bilik Bədəni. Vaşinqton, DC: Amerika Coğrafiyaçılar Birliyi. (2016 -cı ilin ikinci rübü, ilk rəqəmsal)

məlumat modeli: Məlumat modelinin bir çox tərifi var, ancaq iki əsas perspektiv var. Məlumat modelinin ən əhatəli tərifi Edgar Codd (1980) -dən gəlir: Məlumat modeli üç komponentdən ibarətdir: 1) məlumat strukturları, 2) məlumat strukturları üzərində əməliyyatlar və 3) əməliyyatlar və strukturlar üçün bütövlük məhdudiyyətləri. İkinci bir perspektiv, məlumat (baza) quruluş diaqramları ideyasını inkişaf etdirən James Martin (1976) və başqalarından yaranır. Beləliklə, Codd (1980) tərəfindən ifadə edilən ilk komponentlə uyğunlaşır və bu sadəlikdə daha populyar versiyadır. Burada daha populyar olan versiyadan istifadə edirik. Bununla birlikdə, Codd'un (1980) ikinci və üçüncü komponentləri, məlumatların və məlumatların törəmələrinin necə məlumat halına gəldiyini tam başa düşmək üçün lazımdır.

fiziki məlumat modeli: Məntiqi modelin xüsusi verilənlər bazası idarəetmə proqramı daxilində performans əldə etmək üçün fiziki saxlama strukturlarına və giriş mexanizmlərinə çevrilməsi. (Simsion & amp Witt, 2005, s. 17)

Məlumat modelinin ən əhatəli təriflərindən biri, əlaqəli məlumat modelini (Codd 1970) hazırladıqdan on il sonra Edgar Codd (1980) tərəfindən verilmişdir. Coddun marağı, fiziki modelin əksinə olaraq, bir məlumat modelinin məntiqi xarakterini aydınlaşdırmaqdan qaynaqlanırdı. Verilənlər bazası dizaynı baxımından GIS & ampT Knowledge Body -in ayrı -ayrı girişlərində olan konseptual və məntiqi məlumat modellərinin xarakteristikasında olduğu kimi, məlumat modelinin daha çox yayılmış və populyar anlayışı məlumatların quruluşunu və nəzərdə tutulan mənasını təyin etməsidir (Qərb 2011) , s.5). Bununla birlikdə, Codd's (1980, s. 112) daha ətraflı görünüşü bir məlumat modelini üç komponentdən ibarət olaraq xarakterizə edir: 1) məlumat quruluşu növləri toplusu (modele uyğun olan hər hansı bir verilənlər bazasının tikinti blokları) 2) operatorlar toplusu. və ya (1) -də sadalanan məlumat növlərinin hər hansı bir etibarlı vəziyyətinə tətbiq edilə bilən nəticə çıxarma qaydaları, istənilən struktur birləşmələrində bu strukturların hər hansı bir hissəsindən məlumat əldə etmək və ya əldə etmək üçün 3) gizli və ya açıq şəkildə ümumi bütövlük qaydaları toplusu. ardıcıl verilənlər bazası vəziyyətlərini və ya vəziyyətin dəyişməsini və ya hər ikisini təyin edin-bu qaydalar bəzən insert-update-delete qaydaları kimi ifadə oluna bilər. West (2011) tərəfindən təqdim olunan perspektiv, mahiyyətcə Codd (1980) tərəfindən təklif olunan ilk komponentdir. Fiziki məlumat modellərinin bu təsvirində Martin (1976) və Qərb (2011) tərəfindən verilən fikirlərə verdiyi töhfəni vurğulayırıq. Bununla birlikdə, qeyd edirik ki, Codd (1980) tərifi, verilənlər bazası dizaynına əlavə olaraq məlumat idarəetmə proqram dizaynını başa düşmək üçün xüsusilə faydalı olan əlavə fikirlər verir.

Məlumat modellərinin istifadəsinə uyğun olaraq, məlumat modelləşdirilməsi, tam tətbiq oluna bilən bir verilənlər bazası dizaynı yaratmaq məqsədi ilə konseptual, məntiqi və fiziki məlumat modellərinin yaradılmasından ibarət bir verilənlər bazası dizayn prosesini təsvir edir. Məntiqi məlumat modeli dizaynına əsaslanan üç səviyyədən üçündə bir fiziki məlumat modeli hazırlanır və GIS & ampT Məlumat Bədənində bu girişin mövzusu olan bu fiziki məlumat modelidir. Fiziki məlumat modeli, xüsusi məlumat idarəetmə proqramı ilə əlaqəli tətbiqetmə baxımından məntiqi məlumat model quruluşlarının təsvirlərini daha da xarakterizə edir. Saxlama quruluşları haqqında məlumatları və performansa imkan verən və/və ya məhdudlaşdıran məlumat əldə etmə detallarını əlavə edir. Fiziki məlumat modeli, tətbiq üçün seçilmiş proqram və hardware mühitində işləyən verilənlər bazasını xarakterizə edən əməliyyat modelidir.

Bütün verilənlər bazası idarəetmə sistemi (DBMS) proqram paketləri, məntiqi məlumat modelinin uzantısı olaraq fiziki məlumat modelini və buna görə də məntiqi məlumat modelinin əsaslandığı formalizmi özündə birləşdirir. Məntiqi məlumat modeli üçün GIS & ampT BoK girişi bir neçə növ məntiqi məlumat modelini təsvir edir, məsələn. əlaqəli, qrafik, obyekt yönümlü. Bu perspektiv nəzərə alınmaqla, məlumat idarəetmə proqramının niyə mövcud imkanları istiqamətləndirən məntiqi model tərəfindən aktivləşdirildiyi və məhdudlaşdırıldığı aydındır. Məlumat məntiqi quruluş cədvəlləri, obyektlər, atribut sahələri və əlaqələr, birincil və xarici açarlar üçün məlumat əldə etmə mexanizmləri olan fiziki məlumat saxlama quruluşları olaraq həyata keçirilir. Məntiqi quruluşlar əldə etmək və onları saxlama quruluşları baxımından saxlamaq üçün məntiqi əməliyyatlar və onların fiziki həyata keçirilməsi istifadə olunur. Dürüstlük qaydaları həm məntiqi, həm də fiziki mənada quruluş və əməliyyatları məhdudlaşdırır.

1990 -cı illərdə bir çox GIS proqram dizayneri məntiqi məlumat təşkil etmə üçün əlaqəli modelin sadə, lakin möhkəm quruluşlarını önə çəkdi (Codd 1970). Atribut sahələri üçün sütunları olan əlaqəli cədvəllər və obyektlər üçün nümunələri olan sətirlər, məntiqi əlaqələri xarakterizə edən coğrafi məlumatların dublikatlığını artırır. topoloji əlaqələr. Son zamanlarda, bir coğrafi məkan kontekstində ikiüzlülüyün qarşısını almaq üçün, əlaqəli məlumat modeli inkişaf etdiriciləri, məlumat tiplərini, coğrafi quruluşları kifayət qədər ifadə edən mücərrəd məlumat növləri daxil etmək üçün genişləndirdilər. Əlavə olaraq, inkişaf etmiş tətbiqlər üçün məntiqi məkan quruluşu yaratmaq üçün əlaqəli modelin genişləndirilmiş quruluş qabiliyyətinə əlavə olaraq obyekt mağazaları adlanan digər proqramlar istifadə olunur. Esri -nin coğrafi verilənlər bazası məlumat modeli bu strategiyadan istifadə edir, burada əlaqəli model fiziki səviyyəli məlumatların koordinat nümunələrini saxlamaq üçün istifadə olunur. Bu yanaşma dəyişikliyi, xüsusən çox istifadəçi verilənlər bazası mühitini dəstəkləmək üçün müəssisə məlumatlarının idarə edilməsinə ehtiyac duyulduqda, sağlam tətbiq strukturlarını qoruyaraq məntiqi səviyyədə təqdimat elastikliyini təmin edən proqram təminatının "tiering" dizaynının ortaya çıxması ilə gəldi.

Daha əvvəl də qeyd edildiyi kimi, CBS kontekstində DBMS proqramları arasındakı fərqlər məntiqi məkan məlumat növləri (məlumat strukturları), müvafiq əməliyyatlar və məlumat əldə etmək üçün bütövlüyü qorumaq üçün tətbiq olunan qaydalar baxımından məntiqi model fərqinə aid edilə bilər. Bununla birlikdə, növlər daxilində, hər bir proqram sisteminin əsas məlumat növlərini, məsələn, tam ədədlər, reals və xarakter sətirlərini tətbiq etmə üsulları arasında əlavə fərqlər ola bilər. Verilənlər bazasını fiziki cəhətdən fərqli edən bu fərqlərdir. Məsələn, birdən çox DBMS platformasının bir coğrafi verilənlər bazası tətbiq edə biləcəyi Esri məkan məlumat mühərriki (çox istifadəçi) geodatabase mühitində belə, məntiqi səviyyədə oxşar olsa da, geodatabazalar fiziki səviyyədə fərqlidir, çünki yazma fərqli şəkildə həyata keçirilir. Əlavə olaraq, bir əlaqəli model içərisində olan bir çox məntiqi cədvəl, bir tətbiqin performansını sürətləndirmək üçün tez -tez tək (və ya çox az) fiziki (əməliyyat sistemi) fayllarında saxlanılır. Bununla birlikdə, hər biri öz yolu ilə bunu edir, bu da tətbiqin xüsusi proqram təminatı üçün xüsusi olmasını təmin edir. Bu fiziki fayl formatlama fərqləri, məlumatların eyni məntiqi təqdimatı üçün fərqli performans səviyyələrini təmin edə bilər.

Fiziki məlumat modeli, proqram daxilində tətbiq olunan sahələr, qeydlər və fayllarla əlaqəli fiziki saxlama strukturları ilə məntiqi məlumat quruluşunu genişləndirir və dərinləşdirir. Bütün proqramlar bir əməliyyat sisteminin üstündə işlədiyindən, tətbiq olunmaq üçün sahələr, qeydlər və fayllar əməliyyat sistemi səviyyəsinə çevrilməlidir. Beləliklə, bütün saxlama strukturları əməliyyat sistemi və məlumat idarəetmə proqramına sahib olan xüsusi avadanlıqdan asılıdır.

3.1 Məlumat sahələri üçün məlumat növləri

Fiziki məlumat modeli, proqram tətbiqləri arasında tamamilə fərqli olmasa da, çox vaxt DBMS proqram tətbiqinə xas olan yaxşı müəyyən edilmiş məlumat tipli formatlardan istifadə edir. Məsələn, PostgreSQL verilənlər bazası idarəetmə sistemində tətbiq olunan məlumat növlərinin siyahısı aşağıdakı cədvəldə verilmişdir.

Sabit uzunluqlu bit xətti
Harada ölçü bit siminin uzunluğudur.

Dəyişən uzunluqlu bit xətti
Harada ölçü bit siminin uzunluğudur.


SpaceTime mənim üçün uyğundurmu?

SpaceTime verilənlər bazasını inkişaf etdirmək üçün motivasiyamız olduqca sadə idi-2 milyon yük maşınından real vaxtda gələn GPS mövqelərini səmərəli şəkildə indeksləmək və axtarmaq üçün bir yol tapmalı olduq. SpaceTime verilənlər bazasının ümumi məqsədli bir SQL RDBMS olmadığını nəzərə almaq lazımdır. Əsas məqsədi, miqyaslı olmayan (məsələn, məkan-müasir) məlumat növlərinin son dərəcə səmərəli saxlanması və sorğu-sual edilməsidir.

Bəzi ümumi nümunələr daxildir ağıllı şəhərlər ("gediş -gəliş qaydalarını təhlil edərək ictimai nəqliyyatı yaxşılaşdırın"), bağlı avtomobillər ("ABS -in həddindən artıq istifadəsi ilə yol seqmentlərini aşkar edin və dərhal digər sürücülərə xəbərdarlıq edin!"), bağlı sığorta ("ümumi yürüşünü, sola dönmə sayını və gecə sürücülərinin nisbətini ölçməklə sürücünün risk səviyyəsini qiymətləndirin"), pandemiyaya nəzarət ("kimin özünü təcrid etdiyini dərhal aşkar et"), sosial şəbəkələrdə məlumatların işlənməsi ("hazırda hansı dostlarım yaxınlıqdadır?") və mobil şəbəkə analizi ("80.000 ziyarətçi səbəbiylə futbol stadionu yaxınlığında xidmət keyfiyyəti birdən aşağı düşdü, qaynaqları yenidən bölüşdürün!").

Son olaraq, yüksəklikdə, uzunluqda və zaman damgasını ehtiva edən qeyri-bərabər paylanmış məlumatları son dərəcə yüksək nisbətlərdə davamlı olaraq istehsal edən məlumat mənbələri ilə məşğul olursunuzsa, həm canlı, həm də tarixi coğrafi məlumatların sürətli bir Böyük Məlumat Analizinə ehtiyacınız varsa, SpaceTime ən çox yəqin ki, sizin üçün doğru vasitədir. Bu halda bizimlə əlaqə saxlamaqdan çekinmeyin.

Digər tərəfdən, sistemi dərhal hərəkətdə görmək istəyirsinizsə, demo sifariş edə bilərsiniz.


Ətraflı MÜNDƏRİCAT

TƏŞƏKKÜRLƏR
GİRİŞ
SQL nədir?
Niyə SQL istifadə etməliyəm?
Bu Kitab haqqında
Kitabın Kod Nümunələrindən istifadə
PostgreSQL -dən istifadə
PostgreSQL quraşdırılır
PgAdmin ilə işləmək
PgAdmin -ə alternativlər
Sarma

1 İLK MƏLUMAT BAZANIZI VƏ CƏDVƏLİNİZİ YARADIR

Verilənlər bazasının yaradılması
SQL -i pgAdmin -də icra edir
Analiz verilənlər bazasına qoşulmaq
Cədvəl yaradılması
CƏDVƏL YARADIN
Müəllimləri cədvəl etmək
Satırlar Cədvələ daxil etmək
INSERT bəyanatı
Məlumatlara baxmaq
Kod pis olanda
Okunabilirlik üçün SQL formatlaşdırılması
Sarma

2 SELECT İLƏ MƏLUMAT KAHRƏTİNƏ BAŞLAYIR

Əsas SEÇİM Sintaksisi
Sütunların Alt Küməsini Soruşdurmaq
Unikal Dəyərlər Tapmaq üçün DISTINCT -dən istifadə
SİPARİŞ BY ilə məlumatların çeşidlənməsi
WHERE ilə sətirləri süzmək
WHERE ilə LIKE və ILIKE istifadə edin
AND və ya OR ilə operatorları birləşdirmək
Hamısını bir araya gətirmək
Sarma
Özünüz sınayın

3 VERİ NÖVLƏRİNİ ANLAMA

Simvollar
Nömrələri
Tam ədədlər
Avtomatik Artırılan Tam ədədlər
Ondalık Nömrələr
Nömrə Məlumat Növünüzü Seçin
Tarixlər və Vaxtlar
Hesablamalarda Məlumat Tipi intervalından istifadə
Müxtəlif növlər
CAST ilə dəyərləri bir növdən digərinə çevirmək
CAST Qısayol Göstərişi
Sarma
Özünüz sınayın

VERİLƏRİN İTHALATI VƏ İXRACATI

Ayrılmış Mətn Faylları ilə işləmək
Ayırıcıları olan Sitat Sütunları
Başlıq satırlarının işlənməsi
Məlumatları idxal etmək üçün COPY istifadə edin
Ölkələri Təsvir edən Siyahıyaalma Məlumatlarının İdxal edilməsi
Us_counties_2010 Cədvəlinin yaradılması
Siyahıyaalma Sütunları və Məlumat Növləri
COPY ilə siyahıyaalma idxalının aparılması
COPY ilə Sütunların Alt Küməsini İdxal etmək
İdxal zamanı Sütuna Varsayılan Dəyər Əlavə etmək
Məlumatları İxrac etmək üçün KOPYA istifadə edin
Exporting All Data
Exporting Particular Columns
Exporting Query Results
Importing and Exporting Through pgAdmin
Wrapping Up
Try It Yourself

5 BASIC MATH AND STATS WITH SQL

Math Operators
Math and Data Types
Adding, Subtracting, and Multiplying
Division and Modulo
Exponents, Roots, and Factorials
Minding the Order of Operations
Doing Math Across Census Table Columns
Adding and Subtracting Columns
Finding Percentages of the Whole
Tracking Percent Change
Aggregate Functions for Averages and Sums
Finding the Median

Finding the Median with Percentile Functions
Median and Percentiles with Census Data
Finding Other Quantiles with Percentile Functions
Creating a median() Function
Finding the Mode
Wrapping Up
Try It Yourself

JOINING TABLES IN A RELATIONAL DATABASE

Linking Tables Using JOIN
Relating Tables with Key Columns
Querying Multiple Tables Using JOIN
JOIN Types
JOIN
LEFT JOIN and RIGHT JOIN
FULL OUTER JOIN
CROSS JOIN
Using NULL to Find Rows with Missing Values
Three Types of Table Relationships
One-to-One Relationship
One-to-Many Relationship
Many-to-Many Relationship
Selecting Specific Columns in a Join
Simplifying JOIN Syntax with Table Aliases
Joining Multiple Tables
Performing Math on Joined Table Columns
Wrapping Up
Try It Yourself

7 TABLE DESIGN THAT WORKS FOR YOU

Naming Tables, Columns, and Other Identifiers
Using Quotes Around Identifiers to Enable Mixed Case
Pitfalls with Quoting Identifiers
Guidelines for Naming Identifiers
Controlling Column Values with Constraints
Primary Keys: Natural vs. Surrogate
Foreign Keys
Automatically Deleting Related Records with CASCADE
The CHECK Constraint
The UNIQUE Constraint
The NOT NULL Constraint
Removing Constraints or Adding Them Later
Speeding Up Queries with Indexes
B-Tree: PostgreSQL’s Default Index
Considerations When Using Indexes
Wrapping Up
Try It Yourself

8 EXTRACTING INFORMATION BY GROUPING AND SUMMARIZING

Creating the Library Survey Tables
Creating the 2014 Library Data Table
Creating the 2009 Library Data Table
Exploring the Library Data Using Aggregate Functions
Counting Rows and Values Using count()
Finding Maximum and Minimum Values Using max() and min()
Aggregating Data Using GROUP BY
Wrapping Up
Try It Yourself

INSPECTING AND MODIFYING DATA

Importing Data on Meat, Poultry, and Egg Producers
Interviewing the Data Set
Checking for Missing Values
Checking for Inconsistent Data Values
Checking for Malformed Values Using length()
Modifying Tables, Columns, and Data
Modifying Tables with ALTER TABLE
Modifying Values with UPDATE
Creating Backup Tables
Restoring Missing Column Values
Updating Values for Consistency
Repairing ZIP Codes Using Concatenation
Updating Values Across Tables
Deleting Unnecessary Data
Deleting Rows from a Table
Deleting a Column from a Table
Deleting a Table from a Database
Using Transaction Blocks to Save or Revert Changes
Improving Performance When Updating Large Tables
Wrapping Up
Try It Yourself

10 STATISTICAL FUNCTIONS IN SQL

Creating a Census Stats Table
Measuring Correlation with corr(Y, X)
Checking Additional Correlations
Predicting Values with Regression Analysis
Finding the Effect of an Independent Variable with r-squared
Creating Rankings with SQL
Ranking with rank() and dense_rank()

Ranking Within Subgroups with PARTITION BY
Calculating Rates for Meaningful Comparisons
Wrapping Up
Try It Yourself

11 WORKING WITH DATES AND TIMES

Data Types and Functions for Dates and Times
Manipulating Dates and Times
Extracting the Components of a timestamp Value
Creating Datetime Values from timestamp Components
Retrieving the Current Date and Time
Working with Time Zones
Finding Your Time Zone Setting
Setting the Time Zone
Calculations with Dates and Times
Finding Patterns in New York City Taxi Data
Finding Patterns in Amtrak Data
Wrapping Up
Try It Yourself

12 ADVANCED QUERY TECHNIQUES

Using Subqueries
Filtering with Subqueries in a WHERE Clause
Creating Derived Tables with Subqueries
Joining Derived Tables
Generating Columns with Subqueries
Subquery Expressions
Common Table Expressions
Cross Tabulations
Installing the crosstab() Function

Tabulating Survey Results
Tabulating City Temperature Readings
Reclassifying Values with CASE
Using CASE in a Common Table Expression
Wrapping Up
Try It Yourself

13 MINING TEXT TO FIND MEANINGFUL DATA

Formatting Text Using String Functions
Case Formatting
Character Information
Removing Characters
Extracting and Replacing Characters
Matching Text Patterns with Regular Expressions
Regular Expression Notation
Turning Text to Data with Regular Expression Functions
Using Regular Expressions with WHERE
Additional Regular Expression Functions
Full Text Search in PostgreSQL
Text Search Data Types
Creating a Table for Full Text Search
Searching Speech Text
Ranking Query Matches by Relevance
Wrapping Up
Try It Yourself

14 ANALYZING SPATIAL DATA WITH POSTGIS

Installing PostGIS and Creating a Spatial Database
The Building Blocks of Spatial Data
Two-Dimensional Geometries

Well-Known Text Formats
A Note on Coordinate Systems
Spatial Reference System Identifier
PostGIS Data Types
Creating Spatial Objects with PostGIS Functions
Creating a Geometry Type from Well-Known Text
Creating a Geography Type from Well-Known Text
Point Functions
LineString Functions
Polygon Functions
Analyzing Farmers’ Markets Data
Creating and Filling a Geography Column
Adding a GiST Index
Finding Geographies Within a Given Distance
Finding the Distance Between Geographies
Working with Census Shapefiles
Contents of a Shapefile
Loading Shapefiles via the GUI Tool
Exploring the Census 2010 Counties Shapefile
Performing Spatial Joins
Exploring Roads and Waterways Data
Joining the Census Roads and Water Tables
Finding the Location Where Objects Intersect
Wrapping Up
Try It Yourself

15 SAVING TIME WITH VIEWS, FUNCTIONS, AND TRIGGERS

Using Views to Simplify Queries
Creating and Querying Views
Inserting, Updating, and Deleting Data Using a View
Programming Your Own Functions

Creating the percent_change() Function
Using the percent_change() Function
Updating Data with a Function
Using the Python Language in a Function
Automating Database Actions with Triggers
Logging Grade Updates to a Table
Automatically Classifying Temperatures
Wrapping Up
Try It Yourself

16 USING POSTGRESQL FROM THE COMMAND LINE

Setting Up the Command Line for psql
Windows psql Setup
macOS psql Setup
Linux psql Setup
Working with psql
Launching psql and Connecting to a Database
Getting Help
Changing the User and Database Connection
Running SQL Queries on psql
Navigating and Formatting Results
Meta-Commands for Database Information
Importing, Exporting, and Using Files
Additional Command Line Utilities to Expedite Tasks
Adding a Database with createdb
Loading Shapefiles with shp2pgsql
Wrapping Up
Try It Yourself

17 MAINTAINING YOUR DATABASE

Recovering Unused Space with VACUUM
Tracking Table Size
Monitoring the autovacuum Process
Running VACUUM Manually
Reducing Table Size with VACUUM FULL
Changing Server Settings
Locating and Editing postgresql.conf
Reloading Settings with pg_ctl
Backing Up and Restoring Your Database
Using pg_dump to Back Up a Database or Table
Restoring a Database Backup with pg_restore
Additional Backup and Restore Options
Wrapping Up
Try It Yourself

18 IDENTIFYING AND TELLING THE STORY BEHIND YOUR DATA

Start with a Question
Document Your Process
Gather Your Data
No Data? Build Your Own Database
Assess the Data’s Origins
Interview the Data with Queries
Consult the Data’s Owner
Identify Key Indicators and Trends over Time
Ask Why
Communicate Your Findings
Wrapping Up
Try It Yourself
APPENDIX

ADDITIONAL POSTGRESQL RESOURCES
PostgreSQL Development Environments
PostgreSQL Utilities, Tools, and Extensions
PostgreSQL News
Sənədlər
İNDEKS

FOREWORD
When people ask which programming language I learned first, I often absent-mindedly reply, “Python,” forgetting that it was actually with SQL that I first learned to write code. This is probably because learning SQL felt so intuitive after spending years running formulas in Excel spreadsheets. I didn’t have a technical background, but I found SQL’s syntax, unlike that of many other programming languages, straightforward and easy to implement. For example, you run SELECT * on a SQL table to make every row and column appear. You simply use the JOIN keyword to return rows of data from different related tables, which you can then further group, sort, and analyze .
I’m a graphics editor, and I’ve worked as a developer and journalist at a number of publications, including POLITICO, Vox, and USA TODAY. My daily responsibilities involve analyzing data and creating visualizations from what I find. I first used SQL when I worked at The Chronicle of Higher Education and its sister publication, The Chronicle of Philanthropy. Our team analyzed data ranging from nonprofit financials to faculty salaries at colleges and universities. Many of our projects included as much as 20 years’ worth of data, and one of my main tasks was to import all that data into a SQL database and analyze it. I had to calculate the percent change in fund raising dollars at a nonprofit or find the median endowment size at a university to measure an institution’s performance. I discovered SQL to be a powerful language, one that fundamentally shaped my understanding of what you can and can’t do with data.
SQL excels at bringing order to messy, large data sets and helps you discover how different data sets are related. Plus, its queries and functions are easy to reuse within the same project or even in a different database. This leads me to Practical SQL. Looking back, I wish I’d read Chapter 4 on “Importing and Exporting Data” so I could have understood the power of bulk imports instead of writing long, cumbersome INSERT statements when filling a table. The statistical capabilities of PostgreSQL, covered in Chapters 5 and 10 in this book, are also something I wish I had grasped earlier, as my data analysis often involves calculating the percent change or finding the average or median values. I’m embarrassed to say that I didn’t know how percentile_cont(), covered in Chapter 5, could be used to easily calculate a median in PostgresSQ with the added bonus that it also finds your data’s natural breaks or quantiles. But at that stage in my career, I was only scratching the surface of SQL’s capabilities. It wasn’t until 2014, when I became a data developer at Gannett Digital on a team led by Anthony DeBarros, that I learned to use PostgreSQL. I began to understand just how enormously powerful SQL was for creating a reproducible and sustainable workflow.

When I met Anthony, he had been working at USA TODAY and other Gannett properties for more than 20 years, where he had led teams that built databases and published award-winning investigations. Anthony was able to show me the ins and outs of our team’s databases in addition to teaching me how to properly build and maintain my own. It was through working with Anthony that I truly learned how to code.
One of the first projects Anthony and I collaborated on was the 2014 U.S. midterm elections. We helped build an election forecast data visualization to show USA TODAY readers the latest polling averages, campaign finance data, and biographical information for more than 1,300 candidates in more than 500 congressional and gubernatorial races.
Building our data infrastructure was a complex, multistep process powered by a PostgreSQL database at its heart. Anthony taught me how to write code that funneled all the data from our sources into a half-dozen tables in PostgreSQL. From there, we could query the data into a format that would power the maps, charts, and front-end presentation of our election forecast. Around this time, I also learned one of my favorite things about PostgreSQL—its powerful suite of geographic functions (Chapter 14 in this book). By adding the PostGIS extension to the database, you can create spatial data that you can then export as GeoJSON or as a shapefile, a format that is easy to map. You can also perform complex spatial analysis, like calculating the distance between two points or finding the density of schools or, as Anthony shows in the chapter, all the farmers’ markets in a given radius.

It’s a skill I’ve used repeatedly in my career. For example, I used it to build a data set of lead exposure risk at the census-tract level while at Vox, which I consider one of my crowning PostGIS achievements. Using this database, I was able to create a data set of every U.S. Census tract and its corresponding lead exposure risk in a spatial format that could be easily mapped at the national level.
With so many different programming languages available more than 200, if you can believe it , it’s truly overwhelming to know where to begin. One of the best pieces of advice I received when first starting to code was to find an inefficiency in my workflow that could be improved by coding. In my case, it was building a database to easily query a project’s data. Maybe you’re in a similar boat or maybe you just want to know how to analyze large data sets.
Regardless, you’re probably looking for a no-nonsense guide that skips the programming jargon and delves into SQL in an easy-to-understand manner that is both practical and, more importantly, applicable. And that’s exactly what Practical SQL does. It gets away from programming theory and focuses on teaching SQL by example, using real data sets you’ll likely encounter. It also doesn’t shy away from showing you how to deal with annoying messy data pitfalls: misspelled names, missing values, and columns with unsuitable data types. This is important because, as you’ll quickly learn, there’s no such thing as clean data. Over the years, my role as a data journalist has evolved. I build fewer databases now and build more maps. I also report more. But the core requirement of my job, and what I learned when first learning SQL, remains the same: know thy data and to thine own data be true. In other words, the most important aspect of working with data is being able to understand what’s in it. You can’t expect to ask the right questions of your data or tell a compelling story if you don’t understand how to best analyze it. Fortunately, that’s where Practical SQL comes in. It’ll teach you the fundamentals of working with data so that you can discover your own stories and insights.

Graphics Editor at POLITICO

GİRİŞ
Shortly after joining the staff of USA TODAY I received a data set I would analyze almost every week for the next decade. It was the weekly Best-Selling Books list, which ranked the nation’s top-selling books based on confidential sales data. The list not only produced an endless stream of story ideas to pitch, but it also captured the zeitgeist of America in a singular way.
For example, did you know that cookbooks sell a bit more during the week of Mother’s Day, or that Oprah Winfrey turned many obscure writers into number one best-selling authors just by having them on her show? Week after week, the book list editor and I pored over the sales figures and book genres, ranking the data in search of the next headline. Rarely did we come up empty: we chronicled everything from the rocketrise of the blockbuster Harry Potter series to the fact that Oh, the Places You’ll Go! by Dr. Seuss has become a perennial gift for new graduates. My technical companion during this time was the database programming language SQL (for Structured Query Language). Early on, I convinced USA TODAY’s IT department to grant me access to the SQLbased database system that powered our book list application. Using SQL, I was able to unlock the stories hidden in the database, which contained titles, authors, genres, and various codes that defined the publishing world. Analyzing data with SQL to discover interesting stories is exactly what you’ll learn to do using this book.

What Is SQL?
SQL is a widely used programming language that allows you to define and query databases. Whether you’re a marketing analyst, a journalist, or a researcher mapping neurons in the brain of a fruit fly, you’ll benefit from using SQL to manage database objects as well as create, modify, explore, and summarize data.
Because SQL is a mature language that has been around for decades, it’s deeply ingrained in many modern systems. A pair of IBM researchers first outlined the syntax for SQL (then called SEQUEL) in a 1974 paper, building on the theoretical work of the British computer scientist Edgar F. Codd. In 1979, a precursor to the database company Oracle (then called Relational Software) became the first to use the language in a commercial product. Today, it continues to rank as one of the most-used computer languages in the world, and that’s unlikely to change soon.
SQL comes in several variants, which are generally tied to specific database systems. The American National Standards Institute (ANSI) and International Organization for Standardization (ISO), which set standards for products and technologies, provide standards for the language and shepherd revisions to it. The good news is that the variants don’t stray far from the standard, so once you learn the SQL conventions for one database, you can transfer that knowledge to other systems.

Why Use SQL?
So why should you use SQL? After all, SQL is not usually the first tool people choose when they’re learning to analyze data. In fact, many people start with Microsoft Excel spreadsheets and their assortment of analytic functions. After working with Excel, they might graduate to Access, the database system built into Microsoft Office, which has a graphical query interface that makes it easy to get work done, making SQL skills optional. But as you might know, Excel and Access have their limits. Excel currently allows 1,048,576 rows maximum per worksheet, and Access limits database size to two gigabytes and limits columns to 255 per table. It’s not uncommon for data sets to surpass those limits, particularly when you’re working with data dumped from government systems. The last obstacle you want to discover while facing a deadline is that your database system doesn’t have the capacity to get the job done.

Using a robust SQL database system allows you to work with terabytes of data, multiple related tables, and thousands of columns. It gives you improved programmatic control over the structure of your data, leading to efficiency, speed, and most important accuracy. SQL is also an excellent adjunct to programming languages used in the data sciences, such as R and Python. If you use either language, you can connect to SQL databases and, in some cases, even incorporate SQL syntax directly into the language. For people with no background in programming languages, SQL often serves as an easy-to-understand introduction into concepts related to data structures and programming logic.
Additionally, knowing SQL can help you beyond data analysis. If you delve into building online applications, you’ll find that databases provide the backend power for many common web frameworks, interactive maps, and content management systems. When you need to dig beneath the surface of these applications, SQL’s capability to manipulate data and databases will come in very handy.

Bu Kitab haqqında
Practical SQL is for people who encounter data in their everyday lives and want to learn how to analyze and transform it. To this end, I discuss realworld data and scenarios, such as U.S. Census demographics, crime statistics, and data about taxi rides in New York City. Along with information about databases and code, you’ll also learn tips on how to analyze and acquire data as well as other valuable insights I’ve accumulated throughout my career. I won’t focus on setting up servers or other tasks typically handled by a database administrator, but the SQL and PostgreSQL fundamentals you learn in this book will serve you well if you intend to go that route.

I’ve designed the exercises for beginner SQL coders but will assume that you know your way around your computer, including how to install programs, navigate your hard drive, and download files from the internet.
Although many chapters in this book can stand alone, you should work through the book sequentially to build on the fundamentals. Some data sets used in early chapters reappear later in the book, so following the book in order will help you stay on track. Practical SQL starts with the basics of databases, queries, tables, and data that are common to SQL across many database systems. Chapters 13 to 17 cover topics more specific to PostgreSQL, such as full text search and GIS. The following table of contents provides more detail about the topics discussed in each chapter:
Chapter 1: Creating Your First Database and Table introduces PostgreSQL, the pgAdmin user interface, and the code for loading a simple data set about teachers into a new database.
Chapter 2: Beginning Data Exploration with SELECT explores basic SQL query syntax, including how to sort and filter data.
Chapter 3: Understanding Data Types explains the definitions for setting columns in a table to hold specific types of data, from text to dates to various forms of numbers.
Chapter 4: Importing and Exporting Data explains how to use SQL commands to load data from external files and then export it. You’ll load a table of U.S. Census population data that you’ll use throughout the book.
Chapter 5: Basic Math and Stats with SQL covers arithmetic operations and introduces aggregate functions for finding sums, averages, and medians.
Chapter 6: Joining Tables in a Relational Database explains how to query multiple, related tables by joining them on key columns. You’ll learn how and when to use different types of joins.

Chapter 7: Table Design that Works for You covers how to set up tables to improve the organization and integrity of your data as well as how to speed up queries using indexes.
Chapter 8: Extracting Information by Grouping and Summarizing explains how to use aggregate functions to find trends in U.S. library use based on annual surveys.
Chapter 9: Inspecting and Modifying Data explores how to find and fix incomplete or inaccurate data using a collection of records about meat, egg, and poultry producers as an example.
Chapter 10: Statistical Functions in SQL introduces correlation, regression, and ranking functions in SQL to help you derive more meaning from data sets.
Chapter 11: Working with Dates and Times explains how to create, manipulate, and query dates and times in your database, including working with time zones, using data on New York City taxi trips and Amtrak train schedules.
Chapter 12: Advanced Query Techniques explains how to use more complex SQL operations, such as subqueries and cross tabulations, and the CASE statement to reclassify values in a data set on temperature readings.
Chapter 13: Mining Text to Find Meaningful Data covers how to use PostgreSQL’s full text search engine and regular expressions to extract data from unstructured text, using a collection of speeches by U.S. presidents as an example.
Chapter 14: Analyzing Spatial Data with PostGIS introduces data types and queries related to spatial objects, which will let you analyze geographical features like states, roads, and rivers.
Chapter 15: Saving Time with Views, Functions, and Triggers explains how to automate database tasks so you can avoid repeating routine work.

Chapter 16: Using PostgreSQL from the Command Line covers how to use text commands at your computer’s command prompt to connect to your database and run queries.
Chapter 17: Maintaining Your Database provides tips and procedures for tracking the size of your database, customizing settings, and backing up data.
Chapter 18: Identifying and Telling the Story Behind Your Data provides guidelines for generating ideas for analysis, vetting data, drawing sound conclusions, and presenting your findings clearly.
Appendix: Additional PostgreSQL Resources lists software and documentation to help you grow your skills. Each chapter ends with a “Try It Yourself” section that contains exercises to help you reinforce the topics you learned.

Using the Book’s Code Examples
Each chapter includes code examples, and most use data sets I’ve already compiled. All the code and sample data in the book is available to download at nostarch.com/practicalSQL/. Click the Download the code from GitHub link to go to the GitHub repository that holds this material. At GitHub, you should see a “Clone or Download” button that gives you the option to download a ZIP file with all the materials. Save the file to your computer in a location where you can easily find it, such as your desktop.
Inside the ZIP file is a folder for each chapter. Each folder contains a file named Chapter_XX (XX is the chapter number) that ends with a .sql extension. You can open those files with a text editor or with the PostgreSQL administrative tool you’ll install. You can copy and paste code when the book instructs you to run it. Note that in the book, several code examples are truncated to save space, but you’ll need the full listing from the .sql file to complete the exercise. You’ll know an example is truncated when you see snip inside the listing.

Also in the .sql files, you’ll see lines that begin with two hyphens (--) and a space. These are comments that provide the code’s listing number and additional context, but they’re not part of the code. These comments also note when the file has additional examples that aren’t in the book.

Of course, you can also use another database system, such as Microsoft SQL Server or MySQL many code examples in this book translate easily to either SQL implementation. However, some examples, especially later in the book, do not, and you’ll need to search online for equivalent solutions. Where appropriate, I’ll note whether an example code follows the ANSI SQL standard and may be portable to other systems or whether it’s specific to PostgreSQL.

Using PostgreSQL
In this book, I’ll teach you SQL using the open source PostgreSQL database system. PostgreSQL, or simply Postgres, is a robust database system that can handle very large amounts of data. Here are some reasons PostgreSQL is a great choice to use with this book:
Pulsuzdur.
It’s available for Windows, macOS, and Linux operating systems.
Its SQL implementation closely follows ANSI standards.
It’s widely used for analytics and data mining, so finding help online from peers is easy.
Its geospatial extension, PostGIS, lets you analyze geometric data and perform mapping functions.
It’s available in several variants, such as Amazon Redshift and Green - plum, which focus on processing huge data sets.
It’s a common choice for web applications, including those powered by the popular web frameworks Django and Ruby on Rails.


More Examples

The Well Known Text (WKT) and Well Known Binary (WKB) support is ideal for integrating with MySQL's or PostGIS's spatial capability. Once you have SELECTed your data with 'AsText('geo_field')' or 'AsBinary('geo_field')' , you can put it straight into geoPHP (can be wkt or wkb, but must be the same as how you extracted it from your database):

You can collect multiple geometries into one (note that you must use wkt for this):

Calling get components returns the sub-geometries within a geometry as an array.

An alternative is to use the asArray() method. Using the above geometry collection of two linestrings,

Clearly, more complex analysis is possible.


Spatial Databases – Build Your Spatial Data Empire

Spatial databases provide a strong foundation for accessing, storing, and managing your spatial data empire.

A database is a collection of related information that permits the entry, storage, input, output, and organization of data. A database management system (DBMS) serves as an interface between users and their databases.

A məkan verilənlər bazası includes yer. It has geometry as points, lines and polygons. GIS combines spatial data from many sources with many different people. Databases connect users to the GIS database.

For example, a city might have the wastewater division, land records, transportation, and fire departments connected and using datasets from common spatial databases. Let’s take a closer look at spatial databases and how they are used in GIS:

What is an attribute table in GIS?

First, let’s look at the basics:

By default, spatial vector features are always associated with non-spatial attribute tables in a GIS. Spatial features store harada objects are located on a map. Non-spatial attribute tables explain the objects on the map represent. Attribute tables are similar to spreadsheets.

FIELDS have different types such as text (strings), integers (whole numbers) and dates (YYYY/MM/DD). Field name are the title of the column names. A field name should be descriptive of the information being entered in the column. For example, the average population may have a field name of AVG_POP.

ROWS in an attribute table represents a spatial feature in the data set or an associated record of that data set.

Rows in an attribute can have relationships with spatial features. There are three types of relationships:

One-to-one relationships tie one table with one table

What are one-to-one relationships in GIS? When one feature is linked to one entry in a table, this is called a one-to-one relationship (1-1).

What’s unique about Geographic Information Systems is that one table ties into geographic coordinates. For example, here are the geographic locations of three cities in Germany:

As you can see, we can get some extra information about these five cities. We learn their latitude and longitude. Not only that, but we see additional information like their population.

One-to-many relationships ties multiple records from a table together

What are one-to-many relationships?

When one spatial feature is associated with multiple records in an attribute table this is called a one-to-many relationship (1-M). In this case, there is a unique identifier in the spatial table that is used to uniquely identify each row in a table. Bunlara deyilir keys and they exist in both the spatial and non-spatial attribute table.

This unique ID (primary key) is the primary linkage between geographic data and attribute table. This key must exist in the related table as a xarici Açar. 1-M relationships are commonly set up in spatial databases. Relationship classes set up the type of relationship and which features are being connected by a unique ID.

For example, one survey site can have multiple observations over several years. The survey site would have geographic coordinates. The table that it ties with would have corresponding records associated with that unique ID. The two fields that link up these attribute tables are the primary keys and must exist in both tables.

You can see how we are reducing redundancy. We are no longer storing the latitude and longitude in each observation. This is because each latitude and longitude is only being stored once in the survey points table. Many-to-many relationships in GIS are much less common in GIS. This type of relationship exists when there are many entries in related attribute tables and vice versa. An intersection table is usually generated to associate many records together.

Əlaqəli verilənlər bazası idarəetmə sistemi (RDBMS)

What is a relational database management system (RDBMS)?

As explained above, the two fields that link up these attribute tables are the primary keys Şəxsiyyət vəsiqəsiSURV_ID. What ties these tables together is user setting up a 1-M relationship.

This is an example of an RDBMS.

RDBMS is a relational storage concept for data. A relational database contains tables that hold records. Each record holds fields containing data for that record.

İstifadə edir normalizationseparate tables and link tables together. Normalization doesn’t waste space. It breaks out information into discrete components. RDBMS reduces repetitive information. In the example above, we take out duplicate information into multiple tables. There’s a foreign key on one table and we can gain access to that table through a relationship.

RDBMS can get very complex such as the example below:

What is Boolean Algebra?

Boolean algebra consists of conditions used to select features with a set of algebraic conditions. Conditions include AND, OR, or NOT.

When you filter the displayed features in the map by setting up a definition query using Boolean algebra. For example: CITY = “LARGE” AND COUNTRY = “NORTH AMERICA” would filter out all the records that meet this criteria

In GIS, Boolean algebra creates a set of conditions used to select features with a set of algebraic conditions. Conditions include AND, OR, or NOT. Venn diagrams are often used to represent Boolean operations. The name Boolean algebra originated by founder George Boole in 1847. Structured Query Language (SQL) is how users can interact with the database using Boolean algebra.

Spatial Database Examples

  • Proprietary Esri File Geodatabases stores vectors, rasters, tables, topology and relationships. Schemas can be set up for data integrity. File geodatabases offer structural, performance and data management advantages.
  • Open source PostGIS adds spatial objects to the cross-platform PostgreSQL database. The three features that PostGIS delivers to PostgreSQL DBMS are spatial types, indexes and functions. With support for different geometry types, the PostGIS spatial database allows querying and managing information about locations and mapping.
  • Other database examples include SQL Server (where geometry is just another data type, like char and int) and Microsoft Access (known as a personal geodatabase in ArcGIS).

Spatial databases provide a mechanism for multiple users to simultaneously access shared spatial data – similar to a DBMS.

The Final Word on Spatial Databases

A database management system (DBMS) allows users to store, insert, delete, and update information in a database.

RDBMS takes it a step further. It reduces redundancy through normalization. It links tables together through primary and foreign keys.

Spatial databases go a step even further because it records data with geographic coordinates.

From geodatabases to PostGIS, spatial databases have quickly become the primary method of managing spatial data.