Bir veritabanı dizini, veri ve dizinin veri yapısını koruyan ve ek depolama alanı maliyetiyle bir veritabanı tablosundaki veri alma işlemlerinin hızını artıran bir veri yapısıdır. İndeksler, bir veritabanı tablosuna yapılan bütün erişimlerde, veritabanı tablosundaki her satırı tek tek aramaya gerek kalmadan hızlı bir şekilde verileri bulmak için kullanılır. İndeksler, hızlı rastgele aramalarda ve sipariş edilen kayıtların verimli bir biçimde erişimine olanak sağlayan bir veritabanı tablosunun bir veya daha fazla sütunu kullanılarak ve genişletilerek oluşturulabilir.
Dizin, bir verinin seçilen sütunlarının bir kopyasını, çok verimli bir şekilde aranabilen, aynı zamanda bir alt düzey disk blok adresi veya kopyalanan verinin tüm satırına doğrudan bağlantı içeren bir kopyadır. Bazı veritabanları, geliştiricilerin işlevler veya ifadeler üzerinde dizinler oluşturmalarına izin vererek dizin oluşturma gücünü genişletir. Örneğin, last_name alanının yalnızca büyük harf sürümlerini dizinde saklanacak üst(last_name) adlı bir dizin oluşturulabilir. Bazen desteklenen başka bir seçenek, parçalı indekslemelerin kullanılmasıdır; buradaki dizin girdileri yalnızca bazı koşullu ifadeleri karşılayan kayıtlar için oluşturulmuştur. Esnekliğin bir diğer yönü, kullanıcı tanımlı işlevlerin yanı sıra sunucu taraflı işlevlerin pek çok çeşidinden oluşan ifadelerin kullanılarak, dizine eklenmesine izin vermektir.
Kullanımı
Hızlı arama desteği
Çoğu veritabanı yazılımında, veri setinden yapılacak olan doğrusal bir arama, büyük veritabanlarında verimsizdir, bu nedenle performansı artırmak için doğrusal olmayan arama biçimini sağlayan dizin oluşturma teknolojileri bulunmaktadır.
Bir veritabanının N adet veri maddesini içerdiğini ve yalnızca bir verinin seçilmesi gerektiğini varsayalım. Basit bir uygulama, gerekli denetimleri yapmak amacıyla her bir maddeyi tek tek alır ve inceler. Eşleşen tek bir öge varsa, bu tek bir ögeyi bulduğunda durabilir, ancak birden çok eşleşme varsa, her şeyi denetlemelidir.Bu, en kötü durumda operasyonların sayısı O(N) veya doğrusal zaman artımının bütün veri setinin sonuna kadar süreceği anlamına gelir.Veritabanları çok sayıda nesnelerden oluşabilir ve arama sıklıkla yapılan bir işlemdir.Bu durumda genellikle, performansı artırmak arzu edilir.
İndeksleme, arama performansını artıran herhangi bir veri yapısıdır. Bu amaçla kullanılan birçok veri yapısı vardır. Arama performansı, dizin boyutu ve dizin güncelleme performansı gibi fenomenleri içeren karmaşık tasarım biçimleri vardır. Çoğu dizin tasarımları logaritmik(O (log (N))) arama performansı sergiler ve bazı uygulamalarda düz (O (1)) gibi bir performansın elde edilmesi de mümkündür.
Veritabanı kısıtlamaları
İndeksler, UNIQUE, EXCLUSION, PRIMARY KEY ve FOREIGN KEY gibi veritabanı kısıtlamalarını kullanır.Bir dizin, tabloda eş değersiz bir kısıt oluşturan UNIQUE kullanabilir. Veritabanı sistemleri genellikle gizli biçimde PRIMARY KEY olarak tanımlanan bir dizi sütun gruplarından üst bir dizin oluşturur ve bazıları ise bu kısıtlamayı kontrol etmek için mevcut bir dizini kullanabilir. Çoğu veritabanı sistemi, FOREIGN KEY sınırlamasındaki her başvuru için, başvurulan sütun kümesinin dizine eklenmesini gerektirir, böylece kısıtlamaya katılan tablolarda ekleme, güncelleme ve silme performansını artırır.
Bazı veritabanı sistemleri, yeni eklenen veya güncellenen bir kayıt için belirli bir yüklemin başka hiçbir kayıt için tutulmadığını garanti eden bir EXCLUSION kısıtlamasını desteklemektedir. Bu ise; eşsiz bir kısıtlama sağlamak ve örtüşen zaman aralıklarının veya kesişen geometri nesnelerinin tabloda ilaveten depolanmamasını sağlamak gibi daha karmaşık sistemleri uygulamak için kullanılabilir. Böyle bir kısıtlamayı kullanmak için kayıtların hızlı aranmasını destekleyen bir indeksleme yöntemi gereklidir.
Kaynakça
- ^ "PostgreSQL 9.1.2 Documentation: CREATE TABLE". 2 Eylül 2017 tarihinde kaynağından . Erişim tarihi: 30 Ocak 2017.
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Bir veritabani dizini veri ve dizinin veri yapisini koruyan ve ek depolama alani maliyetiyle bir veritabani tablosundaki veri alma islemlerinin hizini artiran bir veri yapisidir Indeksler bir veritabani tablosuna yapilan butun erisimlerde veritabani tablosundaki her satiri tek tek aramaya gerek kalmadan hizli bir sekilde verileri bulmak icin kullanilir Indeksler hizli rastgele aramalarda ve siparis edilen kayitlarin verimli bir bicimde erisimine olanak saglayan bir veritabani tablosunun bir veya daha fazla sutunu kullanilarak ve genisletilerek olusturulabilir Dizin bir verinin secilen sutunlarinin bir kopyasini cok verimli bir sekilde aranabilen ayni zamanda bir alt duzey disk blok adresi veya kopyalanan verinin tum satirina dogrudan baglanti iceren bir kopyadir Bazi veritabanlari gelistiricilerin islevler veya ifadeler uzerinde dizinler olusturmalarina izin vererek dizin olusturma gucunu genisletir Ornegin last name alaninin yalnizca buyuk harf surumlerini dizinde saklanacak ust last name adli bir dizin olusturulabilir Bazen desteklenen baska bir secenek parcali indekslemelerin kullanilmasidir buradaki dizin girdileri yalnizca bazi kosullu ifadeleri karsilayan kayitlar icin olusturulmustur Esnekligin bir diger yonu kullanici tanimli islevlerin yani sira sunucu tarafli islevlerin pek cok cesidinden olusan ifadelerin kullanilarak dizine eklenmesine izin vermektir KullanimiHizli arama destegi Cogu veritabani yaziliminda veri setinden yapilacak olan dogrusal bir arama buyuk veritabanlarinda verimsizdir bu nedenle performansi artirmak icin dogrusal olmayan arama bicimini saglayan dizin olusturma teknolojileri bulunmaktadir Bir veritabaninin N adet veri maddesini icerdigini ve yalnizca bir verinin secilmesi gerektigini varsayalim Basit bir uygulama gerekli denetimleri yapmak amaciyla her bir maddeyi tek tek alir ve inceler Eslesen tek bir oge varsa bu tek bir ogeyi buldugunda durabilir ancak birden cok eslesme varsa her seyi denetlemelidir Bu en kotu durumda operasyonlarin sayisi O N veya dogrusal zaman artiminin butun veri setinin sonuna kadar surecegi anlamina gelir Veritabanlari cok sayida nesnelerden olusabilir ve arama siklikla yapilan bir islemdir Bu durumda genellikle performansi artirmak arzu edilir Indeksleme arama performansini artiran herhangi bir veri yapisidir Bu amacla kullanilan bircok veri yapisi vardir Arama performansi dizin boyutu ve dizin guncelleme performansi gibi fenomenleri iceren karmasik tasarim bicimleri vardir Cogu dizin tasarimlari logaritmik O log N arama performansi sergiler ve bazi uygulamalarda duz O 1 gibi bir performansin elde edilmesi de mumkundur Veritabani kisitlamalari Indeksler UNIQUE EXCLUSION PRIMARY KEY ve FOREIGN KEY gibi veritabani kisitlamalarini kullanir Bir dizin tabloda es degersiz bir kisit olusturan UNIQUE kullanabilir Veritabani sistemleri genellikle gizli bicimde PRIMARY KEY olarak tanimlanan bir dizi sutun gruplarindan ust bir dizin olusturur ve bazilari ise bu kisitlamayi kontrol etmek icin mevcut bir dizini kullanabilir Cogu veritabani sistemi FOREIGN KEY sinirlamasindaki her basvuru icin basvurulan sutun kumesinin dizine eklenmesini gerektirir boylece kisitlamaya katilan tablolarda ekleme guncelleme ve silme performansini artirir Bazi veritabani sistemleri yeni eklenen veya guncellenen bir kayit icin belirli bir yuklemin baska hicbir kayit icin tutulmadigini garanti eden bir EXCLUSION kisitlamasini desteklemektedir Bu ise essiz bir kisitlama saglamak ve ortusen zaman araliklarinin veya kesisen geometri nesnelerinin tabloda ilaveten depolanmamasini saglamak gibi daha karmasik sistemleri uygulamak icin kullanilabilir Boyle bir kisitlamayi kullanmak icin kayitlarin hizli aranmasini destekleyen bir indeksleme yontemi gereklidir Kaynakca PostgreSQL 9 1 2 Documentation CREATE TABLE 2 Eylul 2017 tarihinde kaynagindan Erisim tarihi 30 Ocak 2017