Veri Tabanı Sistemleri 3.hafta Flashcards
(31 cards)
Veri tipi seçimi, veri tabanı sisteminin hangisi olduğu neden önemlidir?
MySQL, Oracle, PostSQL vb. ile çalışılıyorsa bunlara bağımlılık oluşur ve bunlarla devam etmek gerekir.Çünkü sistem veri tabanına bağımlıdır. örn integer yerine mysql veri tipi mediuminteger (3 byte) veri tipi kullanırsan sonrasında da mysql kullanmak zorunda kalırız.
Veri tabanı bağımlılığını gidermek
Veri tipi bağımsız sitemleri kurmak güçtür ancak bağımsız olur.
Domain nedir?
Domain yaratmak
Create Domain
domain etki kümesidir. Tabloda yıllar yada film isimleri vb. sütunları domaindir.
Create domain ile yaratırken kısıtlar, veri tipi bilgileri verilerek oluşturulur.
Drop (delete) domain komutu domaini siler.
relation →
tuple →
attribute →
relation → table,
tuple → row,
attribute → column
Birincil anahtar olmadan tablo oluşturma
Veri tabanları kendine has komutlarla id oluşturabilir. Ancak her veritabanının komutları farklıdır.
Drop komutunun geri dönüşü yoktur.
Verilen komuta dikkat edilmelidir.
SQL büyük küçük harfle yazımı…
Geleneksel olarak SQL büyük harfle yazılır çünkü bazı sistemlerde bu fark eder.
Veri tabanı oluşturulan işletim sistemi de önemlidir.
Windowsta çalışan Linuxta format farkı nedeniyle çalışmayabilir.
Table creation, tablo oluşturma komutlarında null yada not null seçilebilir. boş geçilemez yada geçilir. Varsayılan değer nedir?
Nullable yani boş geçilebilirdir.
Veri tabanında kısıtlar koyarak girilebilecek verilerin aralığı belirlenebilir.
Uniqueness
Veri tabanına veri eklenirken aynı satırın girişini tekrar yapmaz.
Physical Delete
Logical Delete
Logical delete’de aslında silme işlemi yapılmıyor ancak sadece gösterilmiyor.
Bağlantıları logical delete’e atıf yapılacaksa dikkat edilmesi gerekli.
Index Nedir, ne işe yarar?
Full table scan işini veri tabanı sistemleri kendileri yapabilirler. Bu işi indexleme ile yaparak çok kısaltırlar.
işlem karmaşıklığı nedir?
işlem karmaşıklığı bir işlemi gerçekleştirmek için gerekli çabayı ifade eder. n eleman sayısı ise bazı algoritmalarda n^2 kadar işlem gerekebilir.
Indexing işleminde tek sıra liste yerine ne kullanılırsa aranan veri bulma işi hızlanır?
Binary tree yöntemiyle arama işlemi çok kısaltılır.
Logn yöntemi ile büyük verilerin arama işlemi daha da kısalır.
Indexleme örneği;
Logn yöntemi daha çok elemanlı veri içerisinde daha kolay bulma yöntemi sağlar.
Örn. 4 milyar elemanlı bir veride aranan eleman en fazla 32 adımda bulunabilir.
Integer yerine string verililerde indexleme neye göre yapılır?
Integer için sayının diğerine göre büyük yada küçük olmasına bakılırken string için sözlük sırasına göre binary ve logn yöntemi kullanılabilir.
Indexleme hangi durumlarda çok verimli olmaz.
Eğer sürekli giriş (insert) ve güncelleme (update) yapıyorsam indexlemenin hızlı çalışabilmesi için sürekli dengede tutacak şekilde güncellemem gerekir. Bu da ayrı bir iş ve maliyettir. Bu durumlarda full scan indexin daha mantıklıdır.
Data Manipulation Language DML
Tabloya satır eklemek - Insert Into
Row deletion uyarısız siler.
Update ile güncellemede SET ile koşullar girilir. WHERE ile hangi veride yapılacağı belirtilir.
INSERT INTO MOVIE VALUES (
…
…
burada kolonlar belirtilmeyebilir.
Budurumda veriler, kolonlar hangi sıradaysa bu sıraya göre verilmiş olmalıdır.
Referential Integrity
Foreign Key Example
Okun ucu boşta kalmayacak kuralını gerçeklemeye çalışırız.
Foreign Key silme yada güncelleme durumlarında ne olacağı da seçilir.
NULL yada atıf yapılanları silme gibi seçenekler vardır.
Tanımlama yapılmamışsa silinene atıf yapılmış yada başka satırlarca gösterilmişse genelde default olarak izin vermez. ON DELETE RESTRICT. Bunun dışında silinir.
Örnek: Referential Integrity Example yansısına bak.
Kodlamada WAMP kullanacağız.
Aynı şeyleri DATAGRIP ile de yapabiliriz. Veri tabanına göndereceği kod cümleciğini kendisi oluşturur kullanıcı dostu arayüzü sayesinde. Yani IDE gibi bir şey. Third part generator.
Primary Key özelliği nedir
Tekrarlamamalı ve dolu olmalıdır.
Bunun dışında değiştirilebilir.
MySQL ve DataGrip’i kurmaya çalış.