Veritabanı Tavsiyesi

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
esrehmaan

Veritabanı Tavsiyesi

Mesaj gönderen esrehmaan »

Merhabalar arkadaşlar, büyük verili bir projeye başlayacağın bu projede yaklaşık 50 milyon veri olacak ve il bazında olacak hangi veritabanını önerirsiniz ve tablo yapım en mantıklı ve kasmayacak şekilde olması gerekir...

tablomda 16 adet alan var ve hepside txt veri...

Şimdiden tavsiyeleriniz için teşekkürler....
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: Veritabanı Tavsiyesi

Mesaj gönderen AhmetNuri »

bu denli büyük bir projeye başlıyacaksen dikkat etmen gereken çok fazla şey var.
Veri tabanı interne üzerinde çalışacak mı?
Hangi alanlarda sık arama yapılacak?
veriler el ile mi girilecek bir yerden inport mu edeceksiniz?
gibi. Veri tabanı tasarlamak işi bir ev yapmak gibidir ve eğer temeli sağlam atmasan ev tamalandı dediğinde göçer kalır. Süleyman Demirel in bir sözü var,
Yaptığı bina depremde yıkılınca O bine 35 sene ayakta kaldı kimse taktir etmedi. Depremde yıkılınca mı hesap soruyorsun ?
İş aynen buna dönebilir. Bu kadar bilgi ile sana doğru yönlendirme yapmak çook zor. Tasarımsırasında indexleme filan çok önemlidir ve bu konuyu uzun uzun buraya yazamayız. Ama acı bir tecrube yaşamaman için eğer konuyu tam olarak bilmiyorsan ya bir kursa git yada en azından tasarım aşamasında bilen birilerinden ücretli destek al ki iş sonradan başına patlamasın.
Kısaca doğru tasarlarsan günümüzdeki bütün sql veri tabanları için 50 millyon kayıt çıtır çerez hemen yurtalar. Veri tabanı inşaatın malzemesi ise malzeme kalitesi kadar ustalık ta çok önemlidir. Soruna genel cevap vermek gerekirse,
Ücretsiz veritabanlarına bakıyorsan, Sadece network ortamında kullanacak ve internete açılmayacaksen Firebird 2.1.4 versiyonunu kullanabilirsin. Ama unutma ki firebird veri tabanını bir yerden başka bir yere taşırsan şifreyi sıfırlar bu açıdan bir güvenlik sorunu olabilir. Bu sıkıntı Fİrebird 3.0 sürümünde gideriliyor fakat 3.0 iki seneden erken kullanılabilir sürüm yayınlamaz gibi geliyor bana
Eğer ücretsiz network ve internet üzerinde çalışacak bir veri tabanı arıyorsan PostgreSQL kullanmalısın.
Ücretli veri tabanı kullanma imkanın varsa MsSQL yada Oracle kullanabilirsin.
MySQL li localde kullanırsan Lisans ödemen gerekir. Sadece internet versiyonu ücretsizdir.
Not : Doğru tasarlamasan Oracle de kullansan eline yüzüne bulaşır. bilgin olsun.
Ahmet DENİZ
esrehmaan

Re: Veritabanı Tavsiyesi

Mesaj gönderen esrehmaan »

AhmetNuri yazdı:bu denli büyük bir projeye başlıyacaksen dikkat etmen gereken çok fazla şey var.
Veri tabanı interne üzerinde çalışacak mı?
Hangi alanlarda sık arama yapılacak?
veriler el ile mi girilecek bir yerden inport mu edeceksiniz?
gibi. Veri tabanı tasarlamak işi bir ev yapmak gibidir ve eğer temeli sağlam atmasan ev tamalandı dediğinde göçer kalır. Süleyman Demirel in bir sözü var,
Yaptığı bina depremde yıkılınca O bine 35 sene ayakta kaldı kimse taktir etmedi. Depremde yıkılınca mı hesap soruyorsun ?
İş aynen buna dönebilir. Bu kadar bilgi ile sana doğru yönlendirme yapmak çook zor. Tasarımsırasında indexleme filan çok önemlidir ve bu konuyu uzun uzun buraya yazamayız. Ama acı bir tecrube yaşamaman için eğer konuyu tam olarak bilmiyorsan ya bir kursa git yada en azından tasarım aşamasında bilen birilerinden ücretli destek al ki iş sonradan başına patlamasın.
Kısaca doğru tasarlarsan günümüzdeki bütün sql veri tabanları için 50 millyon kayıt çıtır çerez hemen yurtalar. Veri tabanı inşaatın malzemesi ise malzeme kalitesi kadar ustalık ta çok önemlidir. Soruna genel cevap vermek gerekirse,
Ücretsiz veritabanlarına bakıyorsan, Sadece network ortamında kullanacak ve internete açılmayacaksen Firebird 2.1.4 versiyonunu kullanabilirsin. Ama unutma ki firebird veri tabanını bir yerden başka bir yere taşırsan şifreyi sıfırlar bu açıdan bir güvenlik sorunu olabilir. Bu sıkıntı Fİrebird 3.0 sürümünde gideriliyor fakat 3.0 iki seneden erken kullanılabilir sürüm yayınlamaz gibi geliyor bana
Eğer ücretsiz network ve internet üzerinde çalışacak bir veri tabanı arıyorsan PostgreSQL kullanmalısın.
Ücretli veri tabanı kullanma imkanın varsa MsSQL yada Oracle kullanabilirsin.
MySQL li localde kullanırsan Lisans ödemen gerekir. Sadece internet versiyonu ücretsizdir.
Not : Doğru tasarlamasan Oracle de kullansan eline yüzüne bulaşır. bilgin olsun.

Hocam cevap için teşekkürler...

local çalışacak aşağıdada belirtiğim gibi yaklaşık 16 sutun var belirtmek gerekirse

id tc ad soyad anaadı babaadı....vs gibi şeyler...

Arama yaparken kullanacağım şeyler ise şu

1 tc
2 ad
3 soyad
4 anaadı
5 babaadı
6 ad ve soyad
7 ad ve anaadı
8 ad ve babaadı
9 soyad ana adı
10 soyad baba adı
.....vs ve tabiki illerde var


veritabanı olarak firebird yada interbase 6,5( delphi 7 ile gelen) kullanmayı düşünüyorum...

localde çalışacağı için hiç bir yere taşımayacağım sadece tek benim pc de kalacak...

ve bahsettiğim gibi 16 sutun ama bunların hepsi dolu değil çoğunun tc alanıdır boş..vs boş olanlar var ama ad soyad ..vs. sizce alanlarımı indexlerimi nasıl yapayım bu konuda tavsiye verirseniz sevinirim...

ve merak ettiğim bir başka konu ise table ve query arasında ki fark arama yaparken hangisi daha hızlı ve sağlam sonuç verir...

Şimdiden cevaplar için teşekkürler
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Veritabanı Tavsiyesi

Mesaj gönderen aslangeri »

s.a.
...
6 ad ve soyad
7 ad ve anaadı
8 ad ve babaadı
9 soyad ana adı
10 soyad baba adı...
gibi sütünları neden birleştirme ihtiyacı hissettiniz anlamadım.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
esrehmaan

Re: Veritabanı Tavsiyesi

Mesaj gönderen esrehmaan »

Sutunları birleştirmiyorum arama yaparken kullancağım kriterler... o alanlarda sadece arama yapacağım
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: Veritabanı Tavsiyesi

Mesaj gönderen AhmetNuri »

1 tc
2 ad
3 soyad
4 anaadı
5 babaadı
bu durumda aşağıdaki gibi alanarında arama yapacaksın demektir.
eğer tc kimlik noların hepsi dolu ise primary key olarak onu kullan ama baoşluk var demişsin. onun için vatandas_id gibi otomatik artan bir primary key oluşturman lazım. firebird varken delphi 7 ile gelen interbase in yüzüne bile bakmana gerek yok. zaten firebird 1.0 interbase 6.0 ın kodları üzrine gelişiyor ve şu anda arada devasa fark var. ama interbase in son versiyonunu alırım dersen durum farklı. table ve query arasında query sorguda daha hızlıdır. hele read only query sorgu için çok hızlıdır. ben data kaydı için dataset kullanıyorum. sorgu için ise veri tabanı içerisine view tanımlıyorum. oradan sorgu çekiyorum.
5 tane index pek iyi değildir. bu aramalarda bir sıklık olmalı.
index tanımlama ile ilgili viewtopic.php?t=9848 bunu okumanı tavsiye ederim.
örnek bir tablo hazırladım ama sorgu sıklığına göre azaltabildiğin kadar index sayısını düşürmeni tavsiye ederim. tabi alanda sık sorgu çekeceksen yapacak bir şey yok index ide kullanacaksın. örnek dosyayı kullanamk için fb 2.5 kurulu olmalı.
Dosya ekleri
VATANDAS.zip
(43.45 KiB) 203 kere indirildi
Ahmet DENİZ
esrehmaan

Re: Veritabanı Tavsiyesi

Mesaj gönderen esrehmaan »

Hocam şunuda sorayım şimdi verilerim il bazında her il için ayrı tablomu yapmam daha mantıklı olur yoksa tüm veriyi aynı tabloda tutmak mı yoksa her biri için ayrı veritabanı yapmam mı daha mantıklı olur ?
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: Veritabanı Tavsiyesi

Mesaj gönderen emin_as »

İlleri ayrı bir tablo yapıp, diger tablona baglayabilirsin.
Örnegin:
iller tablosu:
plakaid (smallint)- il_adi (VarChar 30)
...
34 - istanbul
35 - izmir

Genel tablonda sadece il in plakaid sini tutarsın, böylelikle her kayıtta önemli bir alan kazanırsın. 50 milyon kaydın olacagı düşünülürse, bu tablonu küçültüp, sorgularınıda daha hızlı almanı saglar.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Veritabanı Tavsiyesi

Mesaj gönderen orhancc »

Her il için bir tablo yapman daha iyi olur bence de ve ayrıca benzer bilgileri tek bir tabloda tutman da daha iyi olacaktır, Veritabanı Normalizasyonu yapmalısın. Doğru alanlara index tanımla ve sorgularda select * from kullanma sadece gerekli alanları çek.

http://en.wikipedia.org/wiki/Database_normalization
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: Veritabanı Tavsiyesi

Mesaj gönderen AhmetNuri »

bölmen iyi olur. hatta sık sorgu yaptığın alanları bir tabloya diğer alanları da detail tabloya atsan daha iyi olabilir
Ahmet DENİZ
Cevapla