Tam o sırada, başka bir pillinetwork sitesi olan zamazing.org'da: "Valiziniz aynı zamanda bilgisayarınız olacak"

Kafama takılan bir soru var: İnsan nesnesini önümüze alalım. Kaydını yapacağımız binlerce insan olduğunu varsayalım. Her birinin birbiriyle öyle ya da böyle ilişkisi, her birinin bir işlevi ve bu işlev sonucunda oluşan bir verisi var. İnsanları nesne olarak göz önüne aldığımda onları ortak özelliklerine göre gruplandırabiliyorum. Ancak aşırıya kaçmaktan ve aralarındaki ilişkileri bir süre sonra takip edememekten, bir hata durumunda takibini sorunsuz gerçekleştirememekten çekiniyorum.

şu an web tabanlı bir tasarı geliştirme peşindeyim. canımı tek sıkan şey, nesnelerimin onlarca özelliği ve sayılarının fazla olması.

veritabanı sunucusunda verileri sunucu sunucu ayırmaktan, veritabanı veritabanı ayırmaya ve ardından tablo tablo ayırmaya kadar indim. ancak büyük açık kaynak içerik yönetim sistemlerinde dikkatimi çeken şey, o kadar karmaşık işlemler yapmalarına rağmen çoğu, bir veritabanından fazlasını kullanmıyorlar. tek sunucu üzerinde ve tek veritabanıyla gayet başarılı çalışıyorlar. bense çözümü, belli özellikleri büyük bölümünde ortak olan nesneleri bir veritabanına, diğerlerini bir veritabanına alarak sorunu çözmek istiyorum.

bir üniversiteyi düşünün. oradakilerin en genel farklılığı nedir? fakülte farklılığı. bir alt genel farklılığı? bölüm. bir altı? sınıf. öğrencileri fakültelerine göre veritabanlarına kaydetsek de, en alt seviyede herkesin bir numarası, herkesin seçmiş olduğu dersler ve bu derslerden almış olduğu notlar var. her ne kadar bölsek de yine bir yerde değişmez özellikleriyle karşılaşıyoruz. nerede kaldı pekâlâ ortak özellikleri? öğrencilerin ders seçimi, ders durumu, öğretim görevlisi durumu, ders programları ve saatlerini katmıyorum bunların içine.

yazdıklarıma benzer bir çalışma içerisindeyim. dediğim gibi, nesnelerimin sayısı çok fazla ve özellikleri de bir hayli kabarık. ilişkili olduğu nesnelerin de özellikleri kalabalık. bunların birleştirilmesi ve anlamlandırılması kafamı karıştırıyor.

sizlerden çözüm değil de çözüme ilişkin yönlendirme içerecek öneriler bekliyorum. büyük veri gruplarını bir veritabanında nasıl tutabiliriz? bu işlerde basamaklar nelerdir? sıradan tablo tablo veri çekme ve basit ilişkilerin ötesinde veritabanı yönetim sistemlerinin ne gibi çözümleri vardır? örnek çalışmalar ya da makaleler sunabilir misiniz? ya da hiç değilse ortaya bir şeyler atıp, üzerinde kafa yormamızı isteyebilir misiniz?

veritabanlarında verilerin gruplandırılması ve ilişkilendirilmesiyle ilgili sorum bu kadar. kesin olarak bir örnekle ilgili yanıt istemesem de, bu konuda fikri ve deneyimi olanlardan bir-iki cümle bir şeyler okumak istiyorum.
herkese teşekkür ederim, iyi günler...

Spacer
Spacer
 | 4 yorum var 
 | 29 Haziran 2009 11:35 

Yorumlar

tablolar bildiğimiz matrislere benziyor. ve bu matrisleri bir yerlerinden başka matrislerle iişkilendirmeye başladığımızda çok boyutlu (bir iki üç dört beş altı gider bu ) sorgularla anlamlı sonuçlar elde edebiliyoruz. buradaki püf nokta şu bir fakültedeki 70 yaşındaki adamları ararken hocaları, hizmetlileri, memurları öğrencilerden büyüklerdir nede olsa diye gruplayıp seçmek yerine yani işe çok matris sokmak yerine =70 yaş demek. yani makineye yakınlaşmak lazım işlerimizde falan. tam anlatamadım ama özetle bütün bu işleri yaparken makineyi yormamak maharet. yani olay çok komleks karışık falan değil.

ne demişler what is the matrix ? demi :)

zee  |  (0 puan) 30 Haziran 2009 06:52

kod iyileştirmenin ön planda olduğunu cebe koydum. peki, bu konuyla ilgili tanımlamalı ve örneklendirmeli yorumda bulunabilir miyiz?

Kaza yerine ulaştınız, ilk ne yapmalısınız?Peki bununla beraber ilkyardımla nasıl hayat kurtarabileceğinizi biliyor musunuz?
guldemgokalp  |  (0 puan) 30 Haziran 2009 15:44

bulunalım ama yinede söylediklerim sonunda kafandaki sorulara ışık tutmadığını düşüneceğinide söyleyelim efenim.

Bir kere takip için tanımlama bilgileri sistemde şarttır. Bunu zaten belirtmişiniz. öğrenci adı, soyadı tablosunda bir de bu öğrenciye veritabanındaki satır numarasını verelim. Bunların herbiri değişmez bilgilerdir.

Peki bu öğrenciyi fakulte ve bölüm tablosu ile ilişkilendirirken veritabanında nasıl takip edeceğiz ? İşte burada sistemde kendisine açtığımız ticket devreye giriyor. bu ticket sistemde nerede olursa olsun onu tanımamızı sağlıyor. bu da onun değişmez ana tablodaki (kullanıcı tablosu ) satır numarasıdır. Bir yeri dayanak alıcaksak bu en iyi yerdir bence.

Kullanıcı Tablosu :
---------------------------
satir_no | ad_soyad | öğrenci no | şifre

Fakulte_Bölüm Tablosu
---------------------------
satir_no | ogrenci_satirno | Fakulte | Bolum

Bu iki tablonun ilişkilendirilmesi ilke tablodaki satir_no kısmının ikinci tabloda ogrenci_satirno kısmıyla aynı olması üzerinden yapılıyor. Öğrencinin fakultesi kaydedilecekse haliyle önceden öğrenci kaydedildiğinden onun tanımlayıcı satır numarası fakulte tablosundada belirtilerek matriste bir boyuta daha açılınmış oluyor. Sorgularda bu satırno üzerinden farklı tablolardaki özelliği tanımlanıyor.

Buraya kadar zaten biliyorum diyeceğinizi de tahmin ediyorum. Burdan sonra kafanıza sınırsız özellike alabilecek öğrencinin tablolarla nasıl ifade edilebileceği ?

Bunuda öğrencinin özellikerinin gruplayarak yapabilirsiniz. Tanımlayıcı bilgiler ile ilgiliyse kullanıcı tablosuna, Fakulte bölüm ile ilgili bilgilerse fakulte tablosuna sutun eklentiler yaparak sağlarsınız. Ama bunlarıda gruplarken dikkat edeceğiniz şeyler,

- nasıl daha az veri depolarım ve aynı şeyleri
tekrar kaydetmem
- ihtiyacım olan sorguları kullanırken nasıl daha az birleşik ya da sub sorgu kullanırım
- databasede kullandığım veritipleri doğru mu ?

gibi pek çok soruda var.

Gelelim ekstreme durumlara ve türk programcısının ve pek çok programcının bulaşmadığı durumalara. Unutmamalıyız ki tablo yapısı sabit olmayabilir. Olmasıda gerekmez. 100 öğrenci içinde 30 öğrenciye özellik eklemek diğerlerini ayrı tutmak durumları oluşabilir. Bu durumda eğer mantıklı şekilde program sorguları veritabanını genişletebiliyorsa o program zekice yazılmıştır. Yani,

- Gerekir program varolan tabloya ek sutun açabilir

- Gerekirse program yeni özellikler gurubu oluşturmak için yeni ilişkilendirilmiş tablo açabilir.

- Gerekise geçici sutun ya da tablolar oluşturabilir,

- Gerekirse tablo yapılarında değişikliğe gidilebilir.

Pek çok farklı programlama yaklaşımı var. Mühim olan bunların içinde boğulmak kafayı çok fazla yormak değil neticeye bakmaktır aslında. Tutupta 100 sayfalık bir kod için, 10000 kişilik okul programı için bu kadar detaylı çalışmalar gerekmeyecektir. Ama sanatçıyada neden yaptın denmez :)

zee  |  (0 puan) 01 Temmuz 2009 04:32

:) uygulamanın esnekliği en önem verdiğim özelliklerden aslında. çünkü geliştiricisinin her an başında bekleyemeyeceği bir şey yapmak istiyorum. ayrıca uygulamada, uygulamayı sunucusuna kuran yönetici için nereye kuracağını, kimin yetkili olacağını, hangi özel durumlarda yeni eklemeler yapabileceğini ve XML biçiminde güncelliğini yitirmiş verilerin yedeklenmesi ve gerektiğinde tekrar gün yüzüne çıkmasını ve bazı zamanlanmış görevleri sağlamam gerekiyor.

bir de şununla ilgili bir şeyler geçsin istiyorum: güvenlik.
kullanıcılar parolalarının yanında e-posta veya numaralarıyla girebilmeliler diyorum. ancak ihtimallere karşı, içeride önemli işler yürütülürken nasıl bir güvenlik önlemi almalıyım acaba? gizli soru, şu bu? yoksa şu sahte e-postayı engelleyen gpg gibi harici bir güvenlik önlemi mi?
niye istiyorum? yetkili biri bilgilerini açıkta bırakırsa her şey altüst olabilir. her girdiğinde ondan farklı bir şey istemeliyim; geçmişteki verilerine dayanarak. bunu biraz araştırayım...

ayrıca @zee, tekrar sağ olun.

Kaza yerine ulaştınız, ilk ne yapmalısınız?Peki bununla beraber ilkyardımla nasıl hayat kurtarabileceğinizi biliyor musunuz?
guldemgokalp  |  (0 puan) 01 Temmuz 2009 09:07

üye olunpillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.

Bu yazıyı rapor et. Kural dışı içeriğe rastladığınızda editörlerimize rapor ederek müdahale edilmesini sağlayabilirsiniz. (Hangi durumlarda rapor edebilirim?)
bildirgec.org bölümleri
pillinetwork hesabınızla giriş yapın.

son yorumlar

bildirgecinfo

bildirgec.org içeriği kullanıcıları tarafından üretilen kolektif bir blogdur.

network siteleri

RSS Dosyası
pillikutu