July 18, 2012

Alıntı (huseyin325325):

>

Yani ad ve şifre birar Subtable

Eğer sonunda doğru anlıyorsam :) sanıyorum 'relational database' özelliğimizin olması gerekiyor. Yani belirli bir tablodaki veri başka tablodaki verilerle ilişkili (related). Ben veri tabanlarının nasıl gerçekleştirildiklerini de bilmiyorum. :(

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 18, 2012

Yani her tablonun aynı sayıdaki satırı aynı kaydın parçaları oluyor. Olabilir ama kulağa riskli de geliyor: Tabloların her zaman için aynı sayıda elemandan oluştuklarını garanti altına almak gerek. Hata ile birisinde eksik bilgi kalsa bütün kayıtlar karışabilir.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 27, 2012

Alıntı (acehreli:1342650040):

>

Alıntı (huseyin325325):

>

Yani ad ve şifre birar Subtable

Eğer sonunda doğru anlıyorsam :) sanıyorum 'relational database' özelliğimizin olması gerekiyor. Yani belirli bir tablodaki veri başka tablodaki verilerle ilişkili (related). Ben veri tabanlarının nasıl gerçekleştirildiklerini de bilmiyorum. :(

Ali

Haklısınız. Veri tabanlarında veri türleri için hazırlanan tablolarda otomatik olarak artan bir kayıt numarası olur. Bir verinin biricik olabilmesi için aynı kayıt satırında o biricikliği sağlayan id(kimlik) ad, soyad, elektronik posta, doğum tarihi vs gibi veriler bulunabiliyor.( ki üye için bir sayaç ile her kayıtta +1 artan bir int türü düşünebilirsiniz burada) Sadece isme ve şifreye dayalı bir veri mimarisi genellikle bu tür çözümsel sıkıntılara neden olmakta. Sanırım sıkıntı da buradaki veri türünün tam işlenebilme yönteminin tasarlanamıyor oluşunda.

Hüseyin;
Üyeyi temsil eden bütün verilerin bir tabloda ve biricik verilerinin bir kayıt satırında olduğunu düşünmeye çalışmalısın.
O üyenin de ilişkili verileri yani okuduğu kitapları, kitaplar tablosunda (ki bunlarda da ısbn gibi değişmez ve biricik bir kayıt seti kimliği bulunmalıdır) toplanmalıdır. böylece kitap isimleri ve yazarları birbirine karışabileceğinden öksüz(orphan) kayıtlar ile veri tabanımızı boşuna şişirmeyelim, gittiği filmleri de ayrı bir tabloya imdb numarası gibi yine biricik bir anahtarla kayıt satırlarına ekleriz. Burada da yürütülen mantık aynı. Düşünmemiz gereken o türden bir veriyi o türe ait her kayıt seti için değişmez ve tek bir kimlik bilgisi ile ilgili tablosuna eklemek. Ardından o tablolarda üyemize ait değişmez olan biricik kimlik(id) bilgisini de ilgili tabloların ilgili satırlarına işlemek.

Böylece verileri çekerken de ilişkisel veri yapısı mantığından hareketle her tablonun kayıt satırlarındaki değişmez biricik numaraları eşleştirerek üyemize ait kitap veya film bilgilerine erişmek kalıyor bize.
Bu tür işlemleri sql ile basitçe Joinler(left, alias, as vs. gibi anahtar kelimeler ) kullanarak kısaltma yoluna gideriz.

Burası da tasarladığın kodlarda ilişkili olacağından senin düşünce sistemine kalıyor.

Ali hocam' da Kadir Can' da mantığını belirtmişler ben biraz daha açayım istedim.

Basit bir uyeler tablomuz olsun;
uyeNo | adi | soyadi
001 |Kadir | Can
002 | Can |Alpay
003 | Salih | Dinçer

Veriyi girerken kullandığımız basit bir sql sorgusu:

INSERT INTO uyeler (adi, soyadi) VALUES ('Ali', 'Çehreli');

Açıklaması ; Veri tabanımda bulunan uyeler adlı tablomun adı ve soyadı sütunlarına ad değeri için Ali, soyad değeri için Çehreli verilerini ekle.

İşleyiş; Bu komut ile uyeler tablosunda uyeNo sütunu otomatik olarak artan yapısı ile kimlik bilgisi için yeni kayıt seti açılır ve 004 olarak numaralandırılır. 004 adlı satırda adi sütununa Ali bilgisini, soyadi sütununa Çehreli bilgisini ekler.

Veriyi çekerken kullandığımız basit bir Sql sorgusu:

SELECT adi, soyadi FROM uyeler ORDER BY adi;

Açıklaması; veri tabanımdaki uyeler adlı tablomdan tüm üyeleri adı sütununu alfabetik sıralamaya sokarak ad ve soyad biçiminde listele.

İşleyişi; bu sorgu ile içeriğinde bir çok tablo bulunan veri tabanımızın uyeler adlı tablosuna erişilir. Tüm uyelerin ad ve soy ad verileri ad sütunundaki veriler alfabetik olarak küçükten büyüğe doğru sıralanır ve sıralı liste kullanıcıya verilir.

Başka bir örnek daha;

SELECT * FROM uyeler WHERE adi = 'Salih' OR soyadi='Dinçer';

Açıklaması; Uyeler tablomuzda bulunan tüm verileri al, adı Salih'e veya soyadı Dinçer'e eşit olan kayıtları listele.

İşleyişi; Bu sorgu veri tabanımızın uyeler tablosuna eriştiğinde SELECT' ten sonra koyduğumuz yıldız işaretinden ötürü tüm kayıtları bir alanda toplar, önce adi sütununda adın Salihe eşit olduğu satırları arar, bulduğunu listeler, bulunamayan kayıt varsa soyadi sütununda Dinçer adlı kayıtların olup olmadığına bakar. Bulduğunu listeler.

İşinize yarayacağını umaraktan,

mert

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 27, 2012

Düşündüm de belki hayal etmenizi kolaylaştırmak için kitaplar adlı veri tabanı tablomuzu da basitçe örneklersem daha kolay anlaşılır sql konumuz.

okunanKitap adlı tablomuz basitçe şöyle tasarlanabilir

okunanKitaplar
ISBN | kitapAdı | yazarı | yayinEvi | okuyanUyeNo
9753880022 | dirimin Öldürülüşü| Wilhelm reich| Payel | 001

Böyle bir tablo tasarladığınızda basitçe hangi üyenin hangi kitabı okuduğunu rahatlıkla ve bir karışıklık olmadan takip edebilirsiniz.
Bunun için basitçe ister önce üyeye ait numarayı elde eder o numara ile sorguya girer okunan kitap bilgilerini listeletirsiniz, isterseniz birleşik sorgu ile hem üye bilgilerini elde eder, o bilgilerden uyeNumarasını kullanarak okunan kitaba erişim sağlarsınız. Böylece hem üye bilgilerini, hem kitap bilgilerini listeleyebilirsiniz.

Sorgularınızda sistem yükünüz ve listelenecek veri detayları gibi tercihleriniz söz konusu olduğundan ilişkisel yapının listelenme tercihleri tamamen sizin talepleriniz doğrultusunda şekillenecektir.

Not; İdeal veritabanı tasarımlarında okuyanUyeNo ile okunanKitaplar aynı kayıt setinde toplanmak yerine kitaplar adlı ayrı bir tablo, okunanKitaplar için sadece ISBN ve uyeNo 'yu tutacak ayrı bir veri tabanı tablosu oluşturulur. Örnekleme veri tabanı tasarımını daha rahat kavratabilmek için bilinçli olarak basitleştirilmiştir. Elbette bu basitlik hataya da açıktır. Dikkatinize sunarım.

Değişiklik nedeni: Not verme ihtiyacı

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 27, 2012

Evet okumaya daha yeni vaktim oldu ilgilendiğin için teşekkür ederim aslında sql den az cok anlıyorum asıl sorun olan konu benim için şu sql deki tabloların nasıl saklanmakta oldukları
benim veritabanımda şu şekilde saklanıyor
|;bizimtablomuz|;
;ad;
ALİ
SALİH
CAN
;soyad;
ÇEHRELİ
DİNÇER
ALPAY

sanırım benim yapmam gereken depolama şekilini değiştirmek olabilir
|;bizimtablomuz|; //tablo tanımlansın
;ad;-;soyad; //anahtar tanımlansın
ALİ,ÇEHRELİ //verilerin hepsi yan yana alınsın
SALİH,DİNÇER
CAN,ALPAY

sizce bunu okumak daha kolay olur mu ?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 27, 2012

merhaba Hüseyin;
Hangi Ali, hangi Salih, hangi Can? sorularını yanıtsız bırakmış oluyoruz böylelikle. İsim Soyad çiftleri kendi başlarına gerçek yaşamlarımızda bile yeterli değillerdir. İsim soyad ve benzersiz bir tanımlayıcıya ve onun da biricik, tek değişmez sembolüne( ki biz bunun için bir eposta adresine bağlı olan bir adet int değerinin en basit veri yapısı olduğunu düşünürüz.) ihtiyacımız bulunmakta.

Örneğin ad = Kadir soyad = Can ile,
Ad = Can soyad = Alpay daha ilk eşleştirmede verilerin tanımlanmasını olanaksızlaştırıyor. Soyadlarını sütun bazında alırsan hem isim hem soyisimden oluşan Can Alpay'ın sadece soyisimler satırlarının - ki farklı kayıt satırlarındaki verilerden bahsediyoruz- bir araya getirilmesi ile bir isim soyad çifti gibi davrandığını görebilirsin.

tablomuz
kimNo | ad | soyad | Benzersiz bir bilgi(örnek Lakap kullanıcıAdı | varsa tc kimlik no gibi benzersiz olacağını düşüneceğin bir veri daha eklenen sütun.

Okumak kolay kolay olmasına da veriler arttığında onları birbirine karıştırmadan çözümleyip işleyebilecek veri yapılarını oluşturabilmemiz gerekmekte.

No |Ad | soyad | BenzersizBirİlişkiliDeğer

001 | Hüseyin | soyadınız | 325325
gibi gibi bir düzenleme hem algılayışı hem de kodlarımızın düzenli sistematik ve hatasız çalışabilmesini garanti edebilir.

Kolaylıklar diliyorum

Değişiklik imla vs.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 27, 2012

Teşekkür ederim uzun zamandır hareketsiz bir projemiz var biraz hareket gerekiyordu kodlara bir göz atayım
Ayrıca şuan kullandığımız veri yapısı yeterlı olurmu bilemiyorum onun hakkında da görüşlerinizi almak isterim

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

1 2 3 4 5
Next ›   Last »