Builder

web application developer blog

Etiket: PostgreSQL

LATERAL Joins veya CROSS APPLY ile Tekrarsız Alt Sorgular Yazmak

İleri seviye SQL kullanımında, standart JOIN ile ilişkilendirmelerin artık işe yaramamaya başladığı ve iç içe SELECT sorguları yazmaya başladığınızda, aynı alt-sorgunun hem SELECT içinde, hem WHERE içinde belki başka bloklarda da kullanmanız gerekebilir. İşte o zaman bu alt-sorgular RDBMS’in  canına okuyacaktır. Eğer bir SQL GURU’su iseniz ne dediğimi çoktan anlamışsınızdır 🙂 Bu problemin çözümü PostgreSQL ‘de LATERAL, MSSQL’de CROSS APPLY,…

Hybrit Data Model 2. Bölüm: PostgreSQL’de JSON sorguları

Hibrit Datamodelin ne olduğuna dair daha önceki yazımı kaçıranlar şuradan başlayabilirler. Bu yazımda kullandığım örneklerde, öncekinden farklı olarak JSONB veri tipi var. JSONB Postgresql’de Binary JSON veri tipidir ve 9.4 versiyonundan itibaren desteklenmektedir. Hibrit Datamodel’de JSON sorgusu örneklerine başlamadan önce, örnek bir tablomuz olması lazım:

Bir de bu tabloda sql sorguları yapabileceğimiz örnek kayıtlara ihtiyacımız var.

Üç telefon…

SQL ve NoSQL modelleme, Hibrit Data Model

Bilişim okutulan okullarda yıllardır, ilişkisel veri modeli ve RDMS (Relational Database Management System) programlar okutuluyor. Bunlardan en popülerleri Açık Kaynak tarafında, MySQL, diğer tarafta MS SQL server ve Kurumsal alanlarda da Oracle. PostgreSQL, ülkemiz için pek popüler olmasa da bilhassa Python programcıları başta olmak üzere dünyada saygın yeri olan bir başka RDMS. Ülkemizdeki Oracle müptelaları için şunu da hemen belirteyim…

SQLAlchemy Model Class Generator for PostgreSQL

Şu üç teknolojiyi bir arada kullanıyorsanız: Python SQLAlchemy (zaten Python‘suz olmaz 🙂 ) PostgreSQL ve benim gibi, önce model class’ı yazmak yerine veri tabanı tablolarını oluşturmayı seviyorsanız. Model class’larını oluşturacak bir reverse engineering scripti zorunlu oluyor. Özellikle de büyük projelerde her bir modeli tek tek yazmak tam bir işkence ve hata yapma ihtimali çok yüksek. Oysa veri tabanı tabloları ER diagramında oluşturulmalı diye…