Bu repo; Oracle (Docker) üzerinde telecom verisini ayağa kaldırıp, CSV import ettikten sonra istenen SQL sorgularını çalıştırarak çıktıları üretmek için hazırlanmıştır.
docker-compose.yml: Oracle Free (Oracle XE uyumlu) konteyneriscripts/TABLE_CREATION_SCRIPTS.sql: tablo + index + constraint scriptleriscripts/SOLUTIONS.sql: tüm soru çözümleri (her soru için 3+ cümle açıklama içerir)CUSTOMERS.csv,TARIFFS.csv,MONTHLY_STATS.csv: verilen datasetoutputs/output-*.csv: her sorunun sorgu çıktısı (export)
Oracle’ı başlatın:
docker compose up -dContainer adı: i2i-telco-db
Port: 1521
Not: İlk açılışta Oracle’ın ayağa kalkması birkaç dakika sürebilir.
DBeaver’da Oracle driver ile aşağıdaki şekilde bağlanabilirsiniz:
- Host:
localhost - Port:
1521 - Database / Service name:
FREEPDB1(bazı kurulumlardaFREEolarak da görünebilir) - Username:
SYSTEM - Password:
i2i
Bu projede tablolar FREEPDB1 üzerinde ve SYSTEM schema altında oluşturulacak şekilde tasarlanmıştır.
docker-compose.yml içindeki volume mount sayesinde ./scripts dizini konteynerde /container-entrypoint-initdb.d altına bağlanır.
Bu nedenle Oracle ilk initialize olurken scripts/TABLE_CREATION_SCRIPTS.sql otomatik çalışır ve tablolar oluşur.
Eğer otomatik çalışmadıysa, DBeaver (veya SQL*Plus) üzerinden scripts/TABLE_CREATION_SCRIPTS.sql dosyasını manuel çalıştırabilirsiniz.
Oracle veritabanı docker-compose.yml ile ayağa kaldırılır.
./scripts dizini konteyner içinde /container-entrypoint-initdb.d altına bağlanır. Veritabanı ilk initialize olurken bu dizindeki SQL scriptleri çalıştırılabilir.
Not: Init script mekanizması genelde ilk initialize sırasında çalışır; stop/start işlemleri tekrar çalıştırmayabilir.
- Oracle’ı başlat:
docker compose up -d- Oracle’ın ayağa kalkmasını bekle (ilk açılış birkaç dakika sürebilir).
- DBeaver’dan bağlan:
- Host
localhost, Port1521, ServiceFREEPDB1, UserSYSTEM, Passwordi2i
- Host
- Tabloların oluştuğunu kontrol et (ör.
CUSTOMERS,TARIFFS,MONTHLY_STATSlistelenmeli). - CSV import et.
scripts/SOLUTIONS.sqlçalıştır, sonuçlarıoutputs/altına export et.
Ekran görüntüleri images/ altındadır.
1) Docker Compose ile Oracle’ı ayağa kaldırma:
2) DBeaver bağlantı testi (Oracle):
3) Tabloların oluştuğunu doğrulama:
4) SOLUTIONS.sql çalıştırma ve sonuç görüntüleme:
5) CSV import (örnek: TARIFFS.csv):
6) Query sonucu export (CSV):
CSV import için DBeaver’da:
CUSTOMERS.csv→CUSTOMERSTARIFFS.csv→TARIFFSMONTHLY_STATS.csv→MONTHLY_STATS
İpucu: DBeaver “Import Data” akışında Header seçeneğinin açık olduğundan ve tarih alanlarının doğru parse edildiğinden emin olun.
Tüm çözümler scripts/SOLUTIONS.sql içindedir. DBeaver’da dosyayı açıp çalıştırarak her soru için sonuç setlerini alabilirsiniz.
Bu repodaki export dosyaları aşağıdaki sorulara karşılık gelir:
outputs/output-1.1.csv→ 1.1outputs/output-1.2.csv→ 1.2outputs/output-2.1.csv→ 2.1outputs/output-3.1.csv→ 3.1outputs/output-3.2.csv→ 3.2outputs/output-4.1.csv→ 4.1outputs/output-4.2.csv→ 4.2outputs/output-5.1.csv→ 5.1outputs/output-5.2.csv→ 5.2outputs/output-6.1.csv→ 6.1outputs/output-6.2.csv→ 6.2





