
Modern iş dünyasında, güçlü ve esnek bir CRM sisteminin önemi her geçen gün artmaktadır. Salesforce, bulut tabanlı CRM çözümleri alanında lider konumda olup, arkasındaki güçlü veritabanı mimarisi sayesinde işletmelere benzersiz bir veri yönetim platformu sunmaktadır. Ancak Salesforce’un gerçek potansiyelini açığa çıkarmak, onun veritabanı yapısını anlamakla başlar. Bu yazıda, Salesforce veritabanının temellerini, objelerini ve alanlarını detaylı bir şekilde inceleyeceğiz. İster Salesforce ekosistemine yeni adım atıyor, ister mevcut bilgilerinizi derinleştirmek istiyor olun, bu rehber size Salesforce veritabanının nasıl çalıştığını anlamanızda yardımcı olacaktır.
Salesforce Veritabanı Temelleri
Salesforce’un başarısının arkasındaki en önemli faktörlerden biri, güçlü ve ölçeklenebilir veritabanı mimarisidir. Peki, bu mimari nasıl çalışır ve neden bu kadar etkilidir?
İlişkisel Veritabanı Yapısı
Salesforce veritabanı, temelde ilişkisel bir veritabanı modelini kullanır. Bu model, verilerin birbiriyle ilişkili tablolarda (Salesforce’ta bunlara “objeler” denir) saklanmasını sağlar. İlişkisel model, karmaşık veri yapılarını yönetmeyi ve veri tekrarını azaltmayı kolaylaştırır.
Salesforce, Oracle veritabanı teknolojisini kullandığı halde, kullanıcılarına sunduğu arayüz ve programlama modeli bunu tamamen soyutlaştırmıştır. Bu sayede, veritabanı yönetimi konusunda derin teknik bilgiye sahip olmadan da Salesforce üzerinde güçlü uygulamalar geliştirebilirsiniz.
Multi-tenant Mimarisi
Salesforce’un en dikkat çekici özelliklerinden biri, “multi-tenant” (çoklu kiracı) mimarisidir. Bu mimari, tek bir Salesforce altyapısı üzerinde birden fazla müşterinin verilerinin güvenli bir şekilde barındırılmasını sağlar. Her müşterinin verileri mantıksal olarak birbirinden ayrılmış olsa da, aynı fiziksel altyapıyı paylaşırlar.
Bu yaklaşımın avantajları şunlardır:
- Maliyet Verimliliği: Kaynaklar daha verimli kullanıldığından, hizmet maliyetleri düşüktür.
- Otomatik Güncellemeler: Tüm müşteriler, aynı anda en güncel yazılım sürümüne erişebilir.
- Ölçeklenebilirlik: İşletmeniz büyüdükçe sistem bununla birlikte kolayca ölçeklenebilir.
- Güvenlik: Her müşterinin verisi birbirinden izole edilmiştir, bu da veri güvenliğini artırır.
Metadata-Driven Mimari
Salesforce, “metadata-driven” (üst veri güdümlü) bir mimari kullanır. Bu, uygulama yapılandırmalarının ve özelleştirmelerin veritabanında metadata olarak saklandığı anlamına gelir. Metadata tabanlı yaklaşım, Salesforce’un “click-not-code” (kod yazmadan tıkla) felsefesinin temelini oluşturur ve yöneticilerin karmaşık uygulamaları kod yazmadan oluşturabilmesini sağlar.
Veri Güvenliği Yaklaşımı
Salesforce veritabanı, çok katmanlı bir güvenlik yaklaşımı benimser:
- Organizasyon Seviyesi: Her müşteri organizasyonu birbirinden tamamen izole edilmiştir.
- Nesne Seviyesi: Her bir obje için erişim hakları tanımlanabilir.
- Alan Seviyesi: Hassas alanlar için özel erişim hakları belirlenebilir.
- Kayıt Seviyesi: Paylaşım kuralları, sahiplik ve hiyerarşi bazlı erişim kontrolü sağlanır.
Bu çok katmanlı güvenlik modeli, Salesforce’u çeşitli sektörlerdeki işletmeler için güvenilir bir çözüm haline getirir.
Salesforce Objeler
Salesforce’un veritabanı yapısının temel yapı taşları objelerdir. Objeler, geleneksel veritabanı terminolojisindeki tablolara benzer ve belirli bir veri türünü temsil eder. Her obje, kayıtların bir koleksiyonunu içerir ve her kayıt, o objenin bir örneğidir.
Standart Objeler
Salesforce, kutudan çıkar çıkmaz kullanıma hazır çok sayıda standart obje ile gelir. Bunlar, çoğu işletmenin temel CRM ihtiyaçlarını karşılamak üzere tasarlanmıştır:
- Account (Hesap): İşletmenizin etkileşimde olduğu şirketleri veya organizasyonları temsil eder.
- Contact (İlgili Kişi): Hesaplarla ilişkili kişileri temsil eder.
- Opportunity (Fırsat): Potansiyel satışları veya anlaşmaları izlemek için kullanılır.
- Lead (Müşteri Adayı): Potansiyel müşterileri temsil eder.
- Case (Vaka): Müşteri destek sorunlarını izlemek için kullanılır.
- Product (Ürün): Şirketinizin satış yaptığı ürün veya hizmetleri temsil eder.
Bu standart objeler, çoğu iş süreçlerini yönetmek için yeterli olsa da, Salesforce’un gerçek gücü özel objeler oluşturabilme esnekliğindedir.
Özel Objeler
Özel objeler, işletmenizin benzersiz ihtiyaçlarını karşılamak için oluşturulan objelerdir. Bunlar, standart objelerle aynı şekilde davranır, ancak tamamen sizin iş gereksinimlerinize göre tasarlanır.
Örneğin, bir eğitim kurumu için Salesforce kullansanız, “Kurs”, “Öğrenci”, “Eğitmen” gibi özel objeler oluşturabilirsiniz. Özel objeler, Salesforce Setup menüsünden birkaç tıklamayla veya programatik olarak oluşturulabilir.
// Apex kodu ile özel obje oluşturma örneği
Metadata.CustomObject customObject = new Metadata.CustomObject();
customObject.fullName = ‘CustomObject__c’;
customObject.label = ‘Custom Object’;
customObject.pluralLabel = ‘Custom Objects’;
customObject.nameField = new Metadata.CustomField();
customObject.nameField.type = Metadata.FieldType.Text;
customObject.nameField.label = ‘Custom Object Name’;
customObject.deploymentStatus = Metadata.DeploymentStatus.Deployed;
customObject.sharingModel = Metadata.SharingModel.ReadWrite;
Objeler Arası İlişkiler
Salesforce veritabanının gerçek gücü, objeler arasında kurulabilen ilişkilerdedir. Üç temel ilişki türü vardır:
Lookup İlişkisi (One-to-Many)
En yaygın ilişki türüdür ve bir objeden diğerine referans oluşturur. Örneğin, bir Contact kaydı bir Account’a bağlıdır, ancak bir Account birden fazla Contact ile ilişkilendirilebilir.
Master-Detail İlişkisi (One-to-Many, Sıkı Bağlı)
Bu ilişki türü, “çocuk” kayıtların “ana” kayda sıkı sıkıya bağlı olduğu durumlar için kullanılır. Ana kayıt silindiğinde, ilişkili tüm çocuk kayıtlar da otomatik olarak silinir. Ayrıca, çocuk kayıtlar ana kaydın güvenlik ve paylaşım ayarlarını miras alır.
Junction Objeler ile Many-to-Many İlişkisi
İki obje arasında many-to-many (çoktan çoğa) ilişki kurmak istediğinizde, bir junction obje kullanılır. Bu, iki Master-Detail ilişkisi aracılığıyla iki objeyi birbirine bağlayan üçüncü bir objedir.
Obje Limitleri ve En İyi Uygulamalar
Salesforce’ta veri modeli tasarlarken dikkat edilmesi gereken çeşitli limitler ve en iyi uygulamalar vardır:
- Bir organizasyonda en fazla 2.000 özel obje oluşturulabilir (ancak bu limit, iyi bir veri modeli tasarımında nadiren sorundur).
- Bir objede en fazla 500 alan olabilir.
- Objeler arası ilişki sayısının optimize edilmesi önemlidir, çünkü çok sayıda ilişki performans sorunlarına yol açabilir.
- Obje adlandırma kurallarına dikkat edilmeli: API isimleri benzersiz olmalı ve __c ile bitmelidir.
- Özel objeler, veri modelinizi gereksiz yere karmaşıklaştırmadan, gerçek iş ihtiyaçlarını karşılayacak şekilde tasarlanmalıdır.
Salesforce Alanlar
Objeler Salesforce’un tablolarıysa, alanlar da bu tabloların sütunlarıdır. Her alan, belirli bir veri türünü temsil eder ve bir objedeki kayıtlar hakkında belirli bilgileri saklar.
Alan Tipleri
Salesforce, çeşitli veri türlerini destekleyen geniş bir alan tipi yelpazesi sunar:
Temel Alan Tipleri
- Metin (Text): Harfler, sayılar ve semboller içerebilen kısa metin alanları. 255 karaktere kadar sınırlıdır.
- Metin Alanı (Text Area): Daha uzun metin parçaları için kullanılır. Zengin metin formatlamasını destekleyen varyantları da vardır.
- Sayı (Number): Tam sayılar veya ondalık sayılar için kullanılır.
- Para Birimi (Currency): Para değerlerini saklar ve organizasyonun para birimi ayarlarına göre formatlanır.
- Yüzde (Percent): Yüzde değerlerini saklar ve otomatik olarak yüzde işaretiyle görüntüler.
- Telefon (Phone): Telefon numaralarını saklar ve formatlar.
- E-posta (Email): E-posta adreslerini saklar ve doğrular.
- URL: Web adreslerini saklar ve tıklanabilir bağlantılar olarak gösterir.
- Tarih (Date): Yalnızca tarih bilgisini saklar.
- Tarih/Saat (Date/Time): Hem tarih hem de saat bilgisini saklar.
- Onay Kutusu (Checkbox): Boolean (doğru/yanlış) değerlerini saklar.
İlişkisel Alan Tipleri
- Lookup: Bir objeden başka bir objeye bağlantı oluşturur.
- Master-Detail: Daha sıkı bir ilişki kurar, çocuk kayıtlar ana kayda bağımlıdır.
- Hiyerarşi (Hierarchy): Kullanıcılar arasında hiyerarşik ilişkileri tanımlamak için kullanılır.
Özel Alan Tipleri
- Otomatik Numara (Auto Number): Otomatik olarak benzersiz tanımlayıcılar oluşturur.
- Formül (Formula): Diğer alanların değerlerine dayalı hesaplanmış değerler üretir.
- Roll-up Özeti (Roll-up Summary): İlişkili çocuk kayıtlardaki değerleri toplar, sayar veya hesaplar.
- Geolocation: Enlem ve boylam koordinatlarını saklar.
- Şifrelenmiş (Encrypted): Hassas veriler için şifreleme sağlar.
Standart Alanlar ve Özel Alanlar
Her Salesforce objesi, otomatik olarak belirli standart alanlarla gelir:
- Id: Her kaydın benzersiz tanımlayıcısı.
- Name: Kaydın görünen adı.
- CreatedById: Kaydı oluşturan kullanıcının ID’si.
- CreatedDate: Kaydın oluşturulma tarihi ve saati.
- LastModifiedById: Kaydı son güncelleyen kullanıcının ID’si.
- LastModifiedDate: Kaydın son güncellenme tarihi ve saati.
- OwnerId: Kaydın sahibi olan kullanıcının ID’si.
Özel alanlar, standart alanların yanı sıra, işletmenizin özel ihtiyaçlarını karşılamak için oluşturduğunuz alanlardır. Bunlar her zaman API adında __c son ekiyle tanımlanır.
Formül Alanları
Formül alanları, diğer alanların değerlerine dayalı hesaplanmış değerler üretir. Bu alanlar salt okunurdur ve değerleri otomatik olarak hesaplanır. Formüller, matematiksel işlemler, metin manipülasyonları, mantıksal işlemler ve daha fazlasını gerçekleştirebilir.
Örnek bir formül alanı:
IF(Amount > 100000, “Büyük Fırsat”,
IF(Amount > 50000, “Orta Fırsat”, “Küçük Fırsat”))
Bu formül, bir Opportunity kaydındaki Amount değerine bağlı olarak “Büyük Fırsat”, “Orta Fırsat” veya “Küçük Fırsat” metnini döndürür.
Alan Validasyonları
Alan validasyonları, veri girişinin belirli kurallara uymasını sağlar. Validasyon kuralları, kaydın kaydedilmeden önce belirli koşulları karşılamasını gerektirir.
Örnek bir validasyon kuralı:
NOT(REGEX(Email__c, “^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$”))
Bu kural, Email__c alanının geçerli bir e-posta formatına sahip olmasını sağlar.
Roll-up Özeti Alanları
Roll-up özeti alanları, bir ana kaydın ilişkili çocuk kayıtlardan bilgi toplamasını sağlar. Bu alanlar şunları yapabilir:
- Çocuk kayıtları sayabilir (COUNT)
- Belirli bir alan değerini toplayabilir (SUM)
- Minimum değeri bulabilir (MIN)
- Maksimum değeri bulabilir (MAX)
Örneğin, bir Account objesinde, ilişkili tüm Opportunity’lerin toplam tutarını hesaplayan bir roll-up özeti alanı oluşturabilirsiniz.
Alan Limitleri ve En İyi Uygulamalar
Salesforce alanlarını kullanırken dikkat edilmesi gereken bazı limitler ve en iyi uygulamalar:
- Bir objede en fazla 500 alan olabilir (standart ve özel alanlar dahil).
- Performans nedeniyle, bir sayfada çok sayıda formül alanı kullanmaktan kaçınılmalıdır.
- Veri tipi seçimi önemlidir: Örneğin, gelecekte ondalık sayılar içerebilecek bir alan için Number alanını Integer olarak ayarlamak sorunlara neden olabilir.
- Alan etiketleri kısa ve açıklayıcı olmalıdır.
- Yardım metinleri, kullanıcılara alanın amacı hakkında ek bilgi sağlamak için kullanılmalıdır.
- Gerektiğinde alan seviyesi güvenlik kullanılarak hassas verilere erişim kısıtlanmalıdır.
Salesforce Veritabanı Sorgulama
Veritabanında saklanan verilerinize erişmek ve manipüle etmek için, Salesforce iki güçlü sorgu dili sunar: SOQL ve SOSL.
SOQL (Salesforce Object Query Language)
SOQL, SQL’e benzer bir sorgu dilidir ve belirli kriterlere dayalı olarak verileri sorgulamak için kullanılır. SOQL, tek bir objeden veya ilişkili objelerden veri çekmek için kullanılabilir.
Temel SOQL sözdizimi:
SELECT alan1, alan2, (SELECT altalan1, altalan2 FROM İlişki)
FROM Obje
WHERE koşul
ORDER BY alan1
LIMIT sayı
Örnek bir SOQL sorgusu:
SELECT Id, Name, Phone, (SELECT FirstName, LastName FROM Contacts)
FROM Account
WHERE Industry = ‘Technology’
ORDER BY Name
LIMIT 10
Bu sorgu, “Technology” sektöründeki en fazla 10 Account’u, ilişkili Contact kayıtlarıyla birlikte getirir.
SOSL (Salesforce Object Search Language)
SOSL, birden fazla objede metin tabanlı arama yapmak için kullanılır. Google benzeri bir arama deneyimi sağlar ve SOQL’den daha esnek bir metin arama kabiliyeti sunar.
Temel SOSL sözdizimi:
FIND ‘aranacakMetin’ IN ÖZEL_ALAN
RETURNING Obje1(alan1, alan2), Obje2(alan1, alan2)
Örnek bir SOSL sorgusu:
FIND ‘Acme’ IN ALL FIELDS
RETURNING Account(Id, Name), Contact(FirstName, LastName, Email), Lead(FirstName, LastName, Company)
Bu sorgu, tüm alanlarda “Acme” metnini arar ve eşleşen Account, Contact ve Lead kayıtlarını döndürür.
Veritabanı Performans İyileştirme
Salesforce veritabanı sorgularının performansını artırmak için çeşitli stratejiler vardır:
- Seçici Sorgular: Yalnızca ihtiyaç duyulan alanları seçin, SELECT * kullanmaktan kaçının.
- Filtreler: WHERE cümleciklerini etkili bir şekilde kullanarak döndürülen kayıt sayısını sınırlayın.
- LIMIT Kullanımı: Büyük veri kümeleriyle çalışırken LIMIT kullanarak sonuçları sınırlayın.
- İndeksleme: Sık sorgulanan alanlar için özel indeksler oluşturun.
- Sorgu Planı: Developer Console’daki Query Plan aracını kullanarak sorguların nasıl yürütüldüğünü analiz edin.
Veritabanı İndeksleme
Salesforce, sık kullanılan sorgu alanları için otomatik olarak indeksler oluşturur, ancak özel indeksler de talep edilebilir. İndeksler, özellikle büyük veri kümeleriyle çalışırken sorgu performansını önemli ölçüde iyileştirebilir.
İndekslenmesi gereken alan türleri:
- Sık kullanılan WHERE koşullarında yer alan alanlar
- Foreign key olarak kullanılan lookup ve master-detail ilişki alanları
- ORDER BY cümleciklerinde kullanılan alanlar
Veri Yönetimi ve Entegrasyon
Salesforce veritabanının etkili kullanımı, sağlam veri yönetimi stratejileri ve diğer sistemlerle entegrasyonu gerektirir.
Veri İçe/Dışa Aktarma Yöntemleri
Salesforce, çeşitli veri içe/dışa aktarma araçları sunar:
- Data Loader: Büyük veri kümeleri için komut satırı aracı
- Data Import Wizard: Az sayıda kayıt için kullanıcı dostu bir arayüz
- Weekly Export Service: Otomatik yedekleme için
- API’ler: Programatik veri erişimi için
Veri Kalitesi ve Temizliği
Veritabanınızın etkinliği, içerdiği verilerin kalitesiyle doğrudan ilişkilidir. Veri kalitesini artırmak için:
- Validasyon Kuralları: Hatalı veri girişini önlemek için
- Duplicate Management: Yinelenen kayıtları önlemek için
- Düzenli Veri Temizliği: Eski veya geçersiz verileri temizlemek için
- Veri Zenginleştirme: Üçüncü taraf hizmetlerle verileri tamamlamak için
Diğer Sistemlerle Entegrasyon
Salesforce, çeşitli entegrasyon seçenekleri sunar:
- API’ler: REST, SOAP, Bulk ve Streaming API’ler
- Heroku Connect: Heroku PostgreSQL ile senkronizasyon
- MuleSoft: Kapsamlı entegrasyon platformu
- AppExchange Bağlayıcıları: Popüler sistemler için hazır entegrasyonlar
- Platform Events: Gerçek zamanlı olay tabanlı entegrasyonlar
API Kullanımı ve Veri Bütünlüğü
API’ler aracılığıyla Salesforce veritabanıyla etkileşimde bulunurken, veri bütünlüğünü korumak için:
- Batch İşlemler: Büyük miktarda veriyi işlerken Bulk API kullanın
- Hata İşleme: Tüm entegrasyon senaryolarında sağlam hata işleme mekanizmaları uygulayın
- Güvenlik: OAuth ve diğer güvenlik protokollerini kullanarak API erişimini güvence altına alın
- Sınırlama: API sınırlamalarını dikkate alın ve buna göre işlemleri optimize edin
Salesforce Veritabanı: Güçlü CRM Altyapısının Özeti ve Yararları
Salesforce veritabanı, işletmelerin müşteri verilerini yönetmek, analiz etmek ve zenginleştirmek için kullandığı güçlü bir platformdur. Obje ve alan yapısını, ilişki modellerini ve sorgu yeteneklerini anlamak, Salesforce’un tam potansiyelini açığa çıkarmanın anahtarıdır.
Salesforce’un çoklu kiracı mimarisi, metadata temelli yaklaşımı ve güçlü API’leri, onu sadece bir CRM sisteminden çok daha fazlası haline getirir. Hem kod yazmadan yapılandırma yeteneği hem de gelişmiş programlama seçenekleri, farklı teknik becerilere sahip kullanıcıların ihtiyaçlarına cevap verir.
Salesforce veritabanı konusundaki bilgilerinizi derinleştirmek için Salesforce’un resmi dokümantasyonunu, Trailhead eğitim platformunu ve Salesforce geliştirici topluluğunu keşfetmenizi öneririz. Salesforce ekosistemine hakimiyetiniz arttıkça, platformun işletmeniz için sunduğu sınırsız olanakları keşfedeceksiniz.