Hoş Geldiniz! KablosuzForum.net

Tüm özelliklerimize erişmek için şimdi bize katılın. Kaydolup giriş yaptıktan sonra konu oluşturabilir, mevcut konulara yanıt gönderebilir, diğer üyelerinize itibar kazandırabilir, kendi özel mesajlaşma programınızı edinebilir ve çok daha fazlasını yapabileceksiniz. Aynı zamanda hızlı ve tamamen ücretsizdir, peki daha ne bekliyorsunuz?

Soru Sor

Merak ettiğiniz, kafanıza takılan sorular hakkında konu açın, diğer üyelerimiz ve moderatörlerimiz cevaplasın.

Ticaret

Ticari konular açıp güven oluşturmak ve daha fazla satış rakamlarına ulaşmak için hesabını doğrula!

Bize ulaşın

Yönetim kadrosuyla iletişime geçin

Üyeliğini Yükselt!

Üyeliğinizi yükselterek birbirinden ayrıcalıklı özelliklere sahip olun!

PostgreSQL 16’da JSONB Generated Columns ile Dinamik Veri Modelleme: Geleneksel Sütunları Bileği

Resim 1 Resim 2

gultepearda

Arda Gültepe
KF Kullanıcı
Katılım
17 Eki 2024
Mesajlar
2
Tepkime puanı
13
Puanları
1

PostgreSQL 16’da JSONB Generated Columns ile Dinamik Veri Modelleme: Geleneksel Sütunları Bileği​


Merhaba veritabanı meraklıları!

Bugün sizlerle PostgreSQL 16’nın en az bilinen ama gizemli gücünü paylaşacağım: **JSONB’de Generated Columns**. Artık evrensel bir JSON yapılandırma bile, benimsediğiniz tek bir sütun tasarımıyla sanki ‘satır baryan' gibi ayağa kaldırılabiliyor.

## Neden Generated Columns?

Sadece tam metin arama değil, karmaşık JSON BLOB’ları sorgulamak da şu ana kadar parça parça kopyalama yapmak zorundaydık. Bir gün veri entegre ettiğimiz bir POI’nin “coğrafi koordinat” ikili alanını sanal sütunlarla otomatik dengeleyebilmek kadar sanal bir gücü bir veritabanı seni ürketecek?

## Örnek Tablo

```sql
CREATE TABLE mekanlar (
id serial PRIMARY KEY,
data jsonb NOT NULL,
lat double precision GENERATED ALWAYS AS (data->>'lat')::double precision STORED,
lng double precision GENERATED ALWAYS AS (data->>'lng')::double precision STORED
);
```

- **lat** ve **lng**: jsonb’deki `lat` sihirli değeri otomatik olarak alır.
- `::double precision`: JSON’daki string değerleri sayıya çevirir.
- STORED: Sabit sahne. Her güncelleme izlenir, sorgu süresi hızlıdır.

## Avantajları

1. **Tekrarlayan Tipik Altsorgu**: `JOIN`, `WHERE (data->>'lat')::double` yerine doğrudan `WHERE lat > 50`!
2. **Versiyon Kontrolü**: JSON değiştiğinde sanal sütunlar otomatik güncellenir—henüz güncellemeyi manuel yapmak zorunda değilsiniz.
3. **Karmaşık Hesaplamalar**: Koordinatları Euro dallarına dönüştürmek? Yön bilgisi eklemek? Birkaç `AS` satırı yeterli.
4. **Performans**: İndeksleyebilirsiniz; `CREATE INDEX ON mekanlar (lat, lng);` gibi.

## Sık Sorgulanan Kullanım

```sql
SELECT id, lat, lng
FROM mekanlar
WHERE lat BETWEEN 40 AND 45
AND lng BETWEEN -80 AND -75;
```

Bununla birlikte *JSONB* özelliği, aynı anda hem evrensel hem de sık sorgulanmış alanlarla kullanılabildiği için inşa ettiğiniz veritabanı camı şeffaf, esnek ve trafiğe dayanıklı bir kuleye dönüşür.

## Sonuç

PostgreSQL 16’nın bu yeteneği, **veri yapısına yeni bir yaklaşımla dalga dalga** çıkarmama izin verir. Artık JSON’un “veri zıpları” sağlıklı bir sütun gibi davranır, performans aşırlığını *model* ile birleştirir.

Yazının sonunda bir test fikri: Aynı tabloyu MongoDB’ye taşıp, nasıl farklı ideallerle çalışacağını inceleyin. Engelinizi kişisel verileri veya GDPR mekaniğini yanına getirin!

Takipte kalın, çünkü geotag ve JSON ile başka neler yapılabilir sizin tarafınızdan düşünülmezse de bir adım önde!



photo-1513101984273-b1633a917715
 
Responsive GIF Layout

shape1
shape2
shape3
shape4
shape5
shape6
Geri
Üst