Veritabanı Tavsiyesi
Veritabanı Tavsiyesi
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....
tablomda 16 adet alan var ve hepside txt veri...
Şimdiden tavsiyeleriniz için teşekkürler....
Re: Veritabanı Tavsiyesi
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.
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
Re: Veritabanı Tavsiyesi
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
Re: Veritabanı Tavsiyesi
s.a.
gibi sütünları neden birleştirme ihtiyacı hissettiniz anlamadım....
6 ad ve soyad
7 ad ve anaadı
8 ad ve babaadı
9 soyad ana adı
10 soyad baba adı...
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: Veritabanı Tavsiyesi
Sutunları birleştirmiyorum arama yaparken kullancağım kriterler... o alanlarda sadece arama yapacağım
Re: Veritabanı Tavsiyesi
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ı.
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
Re: Veritabanı Tavsiyesi
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 ?
Re: Veritabanı Tavsiyesi
İ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.
Ö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.
Re: Veritabanı Tavsiyesi
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
http://en.wikipedia.org/wiki/Database_normalization
Re: Veritabanı Tavsiyesi
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