Edgedb Tuple Kullanımı

[en] Read in English

2023-04-11

Edgedb, tuple veri tipini destekleyen modern bir veri tabanıdır. Tuple veri tipi, farklı veri türlerinin birleşimlerini temsil etmek için kullanılır ve bu veri yapısı, adı konulmuş veya adlandırılmamış öğeleri içerebilir.

Tuple veri tipi, birden çok farklı veri türünün birleşimlerini saklamak için kullanılır. edgedb’de tuple veri tipi, tuple sözcüğünü kullanarak tanımlanır. Aşağıdaki örnek, adı konulmamış bir tuple örneği tanımlar ve bu tuple, bir str ve bir int64öğesi içerir:

SELECT ('Ali Veli', 35);

Bu örnekte, ('Ali Veli', 35) ifadesi, bir tuple veri tipini temsil eder. Bu tuple, str türünde “Ali Veli” adlı bir kişinin adını ve int64 türünde 35 yaşını içerir.

Tuple veri tipi ayrıca adlandırılmış öğeleri de destekler. Adlandırılmış tuple öğeleri, öğelerin adlandırılmış bir şekilde saklanmasına olanak tanır ve daha okunaklı kod yazmayı kolaylaştırır. Aşağıdaki örnek, adlandırılmış bir tuple örneği tanımlar ve bu tuple, name adlı bir str ve age adlı bir int64 öğesi içerir:

SELECT (name := 'Ali Veli', age := 35);

Bu örnekte, (name := 'Ali Veli', age := 35) ifadesi, adlandırılmış bir tuple veri tipini temsil eder. Bu tuple, str türünde “Ali Veli” adlı bir kişinin adını ve int64 türünde 35 yaşını içerir.

Tuple veri tipi, veri tabanı işlemlerinde sık sık kullanılır. edgedb, tuple’ları işlemek için bir dizi özel işlemci işlevi sağlar. Bu işlevler, bir tuple içindeki öğeleri sıralamak, tuple içinde belirli bir öğe veya öğeleri aramak, bir tuple içindeki öğeleri filtrelemek, bir tuple içindeki öğeleri toplamak ve daha pek çok işlem yapmak için kullanılabilir.

Aşağıdaki örnekler, edgedb’deki tuple işlemlerini göstermektedir:

-- Tuple içindeki öğeleri sıralama
SELECT (35, 'Ali Veli') ORDER BY 1 DESC;

-- Adlandırılmış tuple içinde belirli bir öğe veya öğeleri arama
SELECT User FILTER User(name='Hatice')

-- Adlandırılmış tuple içindeki öğeleri filtreleme
SELECT User{name, age} FILTER User.age >= 18;

-- Adlandırılmış tuple içindeki öğeleri toplama
SELECT sum(User.age) FILTER User.age >= 18;

Bu örnekler, tuple işlemlerinin bazı örneklerini göstermektedir. İlk örnek, tuple içindeki öğeleri sıralamak için kullanılır. İkinci örnek, adlandırılmış tuple içinde belirli bir öğe veya öğeleri aramak için kullanılır. Üçüncü örnek, adlandırılmış tuple içindeki öğeleri filtrelemek için kullanılır ve son örnek, adlandırılmış tuple içindeki öğeleri toplamak için kullanılır.

Tuple veri tipi, diğer veri tipleriyle de birlikte kullanılabilir. Örneğin, tuple veri tipi, edgedb’de array veri tipinde saklanabilir. Aşağıdaki örnek, bir tuple’ın bir array veri tipinde saklanmasını göstermektedir:

SELECT ['Ali Veli', 35];

Bu örnekte, ['Ali Veli', 35] ifadesi, bir array veri tipini temsil eder ve bu array, bir str ve bir int64 öğesi içerir. Bu örnekteki tuple, array’in öğeleri arasında saklanır.

Tuple veri tipi, ayrıca edgedb’de birçok diğer veri tipiyle birlikte kullanılabilir. Örneğin, tuple’lar, edgedb’deki join işlemlerinde kullanılabilir ve özellikle birden çok veri türünü içeren sonuç setlerini birleştirmek için kullanışlıdır. Tuple’lar ayrıca edgedb’deki fonksiyon parametreleri ve döndürülen sonuçlar gibi diğer yerlerde de kullanılabilir.



Bu gibi daha fazla gönderi...

Edgedb Computed Links

2023-04-12 | #edgedb #edgedb-links

Computed Links, iki nesne arasındaki ilişkileri tanımlamak için kullanılan bir yapıdır. Bu bağlantılar, ilişkilendirilmiş nesnelerin birbirine olan ilişkisini hesaplamak için tanımlanmış bir sorgu veya fonksiyon kullanarak oluşturulur. Bu yapı, veritabanında tutulan verilerin tutarlılığını sağlamak için oldukça yararlıdır. Computed Links, veriler arasında sıkı bir şekilde bağlantı kurmanın yanı sıra, veritabanında saklanan verilerin değiştirilmesi veya güncellenmesi durumunda bağlantıların otomatik olarak güncellenmesini sağlar. Ayrıca, sorgulama ve raporlama işlemlerini kolaylaştırmak için de kullanılabilir. Örneğin, bir Computed Link aracılığıyla iki nesne arasındaki ilişkiyi hesaplayarak, sorgulama işlemini daha verimli hale getirebilirsiniz.

Devamı 


Edgedb İlişkiler

2023-04-12 | #edgedb #edgedb-links #edgedb-multi-link

Edgedb’de iki tablo arasında ilişki kurmak için link anahtar kelimesi kullanılır. Linkler, bir objenin başka bir objeyle ilişkilendirilmesine izin verir. Örneğin, bir User tablosu ve bir Article tablosu varsa, Article tablosundaki her bir Article, bir Userya atfedilebilir. Bu durumda, User ve Article tabloları arasında bir ilişki kurabiliriz. İlk olarak, User tablosunda bir id özelliği tanımlarız. Bu özellik, kullanıcının benzersiz bir kimliğini temsil eder. type User { required property id -> uuid; property name -> str; } Ardından, Article tablosunda bir author özelliği tanımlarız.

Devamı 


Edgedb Exclusive Constraint

2023-04-12 | #edgedb #edgedb-constraints

Edgedb’de exclusive constraint (özel kısıtlama) terimi, belirli bir özelliğin benzersiz olmasını veya belirli bir aralıkta olmasını sağlayan bir kısıtlama türünü ifade eder. Örneğin, bir User objesinde email özelliğinin benzersiz olmasını sağlayan bir özel kısıtlama oluşturabilirsiniz. Böylece, her bir User’ın sadece bir kez kaydedilmesini sağlayabilirsiniz. Aşağıdaki örnekte, email özelliğinde benzersizlik sağlayan bir özel kısıtlama tanımlıyoruz: type User { required property id -> uuid; required property name -> str; exclusive constraint unique_email on (.

Devamı 