Кеңістіктік деректер базасы

= **Кеңістіктік деректер базасы** =
**Кеңістіктік деректер базасы**– кеңістіктік нысандар туралы деректерді сақтау және оларға сұраныстарды орындау үшін оңтайландырылған деректер базасы. Мұндай нысандар белгілі бір абстракциялар арқылы ұсынылады: нүкте, сызық, көпбұрыш және соған ұқсас геометриялық пішіндер. Дәстүрлі деректер базалары негізінен сандық және мәтіндік ақпаратты сақтау мен өңдеуге арналған болса, кеңістіктік деректер базалары толыққанды кеңістіктік нысандармен жұмыс істеу мүмкіндігіне ие. Бұл нысандарда бір мезгілде атрибуттық (сипаттамалық) және геометриялық (нысанның кеңістіктегі орналасуы) деректер біріктіріледі. Кеңістіктік деректер базасын қолдайтын деректер базасын басқару жүйелері (ДББЖ) кеңістіктік операторларды қолдана отырып аналитикалық сұраныстарды орындауға мүмкіндік береді. Мысалы, нысандар арасындағы кеңістіктік-логикалық қатынастарды талдау: «қиылысады…», «жанасады…», «ішінде орналасқан…», «құрамында бар…», «берілген қашықтықта орналасқан…», «сәйкес келеді…» және т.б. 

Геоақпараттық жүйелер саласындағы халықаралық стандарттарды әзірлеуді үйлестіретін OGC консорциумы кеңістіктік нысандардың негізгі типтерін ұсынуға арналған спецификацияны (англ. *simple features*) әзірлеп, бекітті, сондай-ақ кеңістіктік деректермен жұмыс істеуге арналған деректер базасын басқару жүйелерінің қосымша функционалдық мүмкіндіктеріне арналған стандарттарды белгіледі.

#### '''Кеңістіктік деректерге қол жеткізу'''
Кеңістіктік деректер базаларында кеңістіктік операцияларды жылдамдату үшін арнайы кеңістіктік индекстер қолданылады. Кеңістіктік деректер базаларын қолдайтын ДББЖ әдетте келесі мүмкіндіктерді қамтамасыз етеді:

- Кеңістіктік өлшемдер (*spatial measurements*): нүктелер, көпбұрыштар және басқа нысандар арасындағы қашықтықты анықтау.

- Кеңістіктік функциялар (*spatial functions*): бар нысандарды(*features*) өзгерту арқылы жаңа нысандарды құру (мысалы, нысанның айналасында буферлік аймақ құру, нысандардың қиылысуын анықтау және т.б.);

- Кеңістіктік предикаттар (*spatial predicates*): «жоспарланған сыра барының құрылыс орнынан 300 метр қашықтықта қандай да бір білім беру мекемесі бар ма?» деген сияқты сұрақтарға жауап беру;

- құру функциялары (англ. *constructor functions*): SQL-сұраныстардың көмегімен жаңа нысандарды құру, сызықтардың төбелерін (түйіндерінің, нүктелерінің орналасуын) көрсету арқылы; егер бірінші төбе координаталары бойынша соңғысымен сәйкес келсе, онда нысан тұйық шекарасы бар көпбұрышқа да айналуы мүмкін;

- Аналитикалық есептеу функциялары (*observer functions*) нысандар туралы нақты ақпаратты қайтаратын сұраныстар (мысалы, шеңбердің центр координаттарын анықтау).
Әртүрлі ДББЖ осы мүмкіндіктердің әртүрлі жиынтықтарын қолдайды.

#### '''Деректер базасын басқару жүйелері (ДББЖ)'''
Көптеген танымал коммерциялық ДББЖ кеңістіктік деректермен жұмыс істеуді қолдайды. Мысалы: Oracle Database – 1990-жылдардың соңынан бастап Spatial модулін (қазіргі атауы – Oracle Spatial and Graph) ұсынады. Microsoft SQL Server жүйесінде 2008 нұсқасынан бастап кеңістіктік деректер типтері (geometry және geography) енгізілген. SAP HANA деректер базасы да Spatial кеңейтімі арқылы кеңістіктік деректерді өңдеуді қолдайды. MySQL жүйесі geometry деректер типін және OGC спецификациясынан тыс кейбір кеңістіктік функцияларды қолдайды (нысандардың кеңістіктік қатынастарын талдайтын функциялар нақты геометриялық ақпаратпен емес, нысанды қоршап тұрған тікбұрыштың негізінде жұмыс істеумен шектеледі).

Кеңістіктік деректер типтерін бастапқыда қолдамайтын ДББЖ-ға арналған арнайы кеңейтімдер де бар. Мысалы: Spatial Query Server (Boeing компаниясы) – Adaptive Server Enterprise жүйесін кеңістіктік деректер базасын басқару жүйесіне айналдырады. Ал PostGIS – PostgreSQL ДББЖ-сына кеңістіктік деректермен жұмыс істеу мүмкіндігін қосады. NoSQL деректер базаларының ішінде кеңістіктік деректермен жұмыс істеуді қолдайтындар: MongoDB және RethinkDB Сонымен қатар Cassandra үшін геокеңейтімдер бар, ал кейбір толықмәтіндік іздеу жүйелері (мысалы, Elasticsearch) де кеңістіктік сұраныстарды орындау мүмкіндігін ұсынады.