Merhaba Mucip hocam,
Aslında veri bütünlüğü kavramı veritabanı seviyesinde ise bunu
transaction ile sağlıyorsunuz. Commit edilmemiş bir transaction diğer
hiçbir süreci etkilemez.
begin transaction
select field1 from ....
insert into ...
update ... where ...
delete ....
commit
bu süreç zaten sonlanana kadar veri bütünlüğü bozulmaz. Client tarafına
veri kopyalamak ve bunu kontrol etmeye çalışmak yanlış bir yaklaşım.
Relational db'lerin sanırım tümü transaction desteğine sahip ve tam
olarak çözdüğü şey de veri bütünlüğünü korumak.
On 04/19/2016 08:36 PM, [email protected] wrote:
Merhabalar,
QT-C++ ile PostgreSQL üzerinde denemeler yapıyorum. Gugıllayınca
birşeyler görünüyor ama burada deneyimlerinizi öğrenmek istedim.
Mesela veritabanı üzerinde bulunan kayıtlı bir faturayı çağırdınız.
Fatura üzerinde ve detayında değişiklik yaptınız ama neticede kaydet
tuşuna basmadınız ve bu işlemlerin takas bir alana yazılması ve kaydet
tuşuna basıldığında asıl alanlarına yazılması gerekir. Mesela faturaya
ek 20 kalem detay satırı girdi. Bu detay satırları geçizi olarak bir
yere yazılmalı. Veri bütünlüğü de korunmalı.
Mesela Progress ve 4GL kullanılırken kullandığınız tablo yapısının bir
benzerini o an için geçici olarak kendi lokalinizde
oluşturabiliyorsunuz. Ek olarak tabloda bulunan tüm triger ve veri
bütünlüğü şartları bu takas tabloda da geçerli oluyor. Kaydı bu takas
tabloya aktarıp orada yaptığınız her şeyi öncelikle takas tabloya
yazıp kaydet tuşu ile asıl tabloya yazabiliyorsunuz. Buna benzer bir
yapı PostgreSQL'de nasıl mümkün olabiliyor. SQLite olsa iyiydi. Zira
onda doğrudan hafızaya veritabanını veya bir kopyasını
oluşturabliyorsunuz. Peki PostgreSQL'de nasıl oluyor?...
--
Kolay gelsin,
Mucip:)
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php
--
M.Atıf Ceylan
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php