Data Science Roadmap - İlişkisel Cebir, Veritabanı Temelleri (Relational Algebra Database Basics)

watch_later 4/12/2020
İlişkisel Cebir(Relational Algebra)
Muhammad ibn Musa al-Khwarizmi Al-jabr kitabının yazarıdır. Kitabın başlığı Al-jabr (Cebir) Algebra’ya ismini vermiştir. İlişkisel Cebir genel anlamıyla ilişkisel veritabanının nasıl çalışacağına dair kurallara uygun tanımdır. Veritabanında verinin nasıl saklandığına dair bir arayüzdür. SQL işlemlerini destekleyen matematiktir.

İlişkisel cebirdeki operatörler SQL operatörleri ile aynı isimlere sahip olmak zorunda değildirler. Mesela SELECT ifadesi SQL’de de ilişkisel cebirde de vardır. Fakat kullanımları aynı değildir. Veri tabanı yönetim sistemi kullanıcı her ne yazarsa, yazılanı veritabanına uygulamadan önce alıp, ilişkisel cebir işlemlerine çevirmelidir.



İşlemler (Operations)
Bir İlişkili İşlemler (unary operations)
    Seçim (Selection)(σ): İlişkinin satırlarının bir alt kümesini seçer.
    Yansıtma (Projection)(π): İlişkinin istenmeyen sütunlarını siler.
    Yeniden Adlandırma (Rename)(ρ): İlişkinin istenilen sütunlarının adını değiştirir.
Küme Teorisi İşlemleri
     Küme farkı (Set-difference)(-): Birinci ilişkide bulunup ikinci ilişkide bulunmayan çoklular.
     Birleşim (Union)(): Birinci ve ikinci ilişkide bulunan çoklular.
     Kesişim (intersection)(∩): Birinci ve ikinci ilişkide ortak bulunan çoklular.
     Kartezyen çarpım (Cross-product)(x): İki ilişkiyi birleştirmeye yarar.
İkili İşlemler (binary operations)
    Bitişme (join)
    Bölme(division)
Diğer İşlemler
   Aggregate Functions (Sum, Count, Avg, Min, Max)

Aşağıdaki ilişkiler üzerinden örneklerimizi verelim:
Örnek Veritabanı İçerisindeki Kayıtlar
Örnek Veritabanı İlişkileri
Seçim (Selection) (σ)
Seçim şartını gerçekleyen satırları seçer.
Sonuçta tekrarlar yoktur.
Sonucun şeması girdi ilişkisinin şeması ile aynıdır.
Sonuç başka bir ilişkisel cebir işlemi için girdi olarak kullanılabilir.
Selection İşlemi
                      
Yansıtma (Projection) (π)
Yansıtma listesinde olmayan özellikleri siler.
Sonuç şeması tam olarak yansıtma listesinde olan özellikleri, girdi olan ilişkideki isimlerle, içerir.
Yansıtma işlemi tekrarları elemelidir.
   
Not: Gerçek hayatta tekrarlar kullanıcı açıkça istemedikten sonra elenmez.
Projection İşlemi
                                                   
Yeniden Adlandırma (Rename)(ρ)
İlişki veya ilişki özniteliklerinin adlarını değiştirmekte kullanılır.

Rename İşlemi
Rename İşlemi Uygulanmadığında
                                                 
Birleşim (Union), Kesişim (Intersection), Küme Farkı (Set-Difference)
Bütün bu işlemler girdi olarak iki ilişki alır, ki bu iki ilişki birleşime uyumlu olmalıdır.
1. Aynı sayıda alana sahip olmalıdır.
2. Karşılıklı alanlar aynı tipte olmalıdır.

Örnek Veritabanı İçerisindeki Kayıtlar
Birleşim (Union)(U)
Union İşlemi
                                              
Kesişim (Intersection)(∩)
Intersection İşlemi
                                                              
Küme Farkı (Set-Difference)(-)
Set-Difference İşlemi
                                                          
Union ve intersection yer değiştirme özelliği vardır.
 S = S  R 
R ∩ S = S ∩ R

Union ve intersection birleşme özelliği vardır.
 (S  T) = (R  S)  T
(R ∩ S) ∩ T = R ∩ (S ∩ T)

Set difference işleminin yer değiştirme özelliği yoktur.
R – S ≠ S – R

Kartezyen Çarpım (Cross-product) (x)
S1 x R1 : S1 in her satırı R1 in herbir satırıyla eşleşir.
Sonucun şeması S1 ve R1 deki herbir alana karşılık bir alan içerir.



Cross-Product İşlemi
                               
Bitiştirme (Join) ()
Kartezyen çarpım ve seçim işlemi birlikte kullanılırsa bitiştirme işlemi yapılmış olur.
Yani Join belirtilen iki işlemi birleştiren özel bir işlemdir.

Şartlı Bitiştirme (Conditional Join) (c)
S = σc(R x S)
Sonuç şeması kartezyen çarpımdaki gibidir.
Kartezyen çarpımdan daha az çoklu içermesi daha verimli bir biçimde hesaplamayı sağlar.
Teta bitiştirmesi diye de adlandırılır.

Eşit Bitiştirme (Equijoin) (e)
e’nin herhangi bir eşitliğe karşılık geldiği özel bir şartlı bitiştirmedir.
Sonucun şeması kartezyen çarpımdakine benzerdir, sadece eşitliğin belirlendiği alanın tek kopyası vardır.

Doğal Bitiştirme (Natural join) (*)
Equijoin’deki aynı isimli öznitelik karşılaştırmalarını tekrar tekrar yazmamak için kullanılan işlemdir.
İki ilişkideki aynı isimli özniteliklerin eşitliğini karşılaştırır.
                         

Bölme (Division)(÷)
R’nin 2 A ve B isimli alanı, S’nin yalnız A isimli bir alanı olsun.
Eğer S' deki A kümesi R’deki bir A ile ilişkilendirilmişse ve R A ile ilişkili bir şekilde S deki tüm A’ları kapsıyorsa, bu A  R/S kümesi içerisindedir.

                                                  

Veritabanı Temelleri(Database Basics)

SQL Geçmişi(SQL History)
1970 yılında, Dr. EF Codd "Büyük Paylaşılan Veri Bankaları İçin İlişkisel Veri Modeli” yayınladı. Codd'un makalesinin yayınlanmasından kısa bir süre sonra IBM, ilişkisel bir veritabanı oluşturmak için çalışmaya başladı. 1979 ve 1982 arasında, Oracle (sonra Relational Software, Inc.), Relational Technology, Inc. (daha sonra Computer Associates tarafından satın alındı) ve IBM, ticari ilişkisel veritabanlarını ortaya koydu ve 1986'da hepsi veri sorgulama dili olarak SQL kullanıyorlardı.
1986'da Amerikan Ulusal Standartlar Enstitüsü (ANSI) SQL standardize etti. Bu standart birkaç yılda bir güncellenir. Standart SQL bazen ANSI SQL olarak adlandırılır. Tüm büyük ilişkisel veritabanları bu standardı destekler, ancak her birinin kendi özel uzantıları vardır. Aksi belirtilmedikçe, bu derste öğretilen SQL standart ANSI SQL'dir.
SQL açılımı Structured Query Language

İlişkisel Veritabanları(Relational Databases)
İlişkisel veritabanı en basit haliyle veri depolamak için kullanılan bir dizi tablodur. Her tablonun benzersiz bir adı vardır ve ortak değerler aracılığıyla veritabanındaki bir veya daha fazla tabloyla ilişkili olabilir.
Tablolar(Tables): Veritabanındaki bir tablo, satır ve sütun koleksiyonudur. Tablolar varlık veya ilişki olarak da bilinir.
Satırlar(Rows): Bir satır, tablodaki tek bir öğeye veya kayda ait verileri içerir. Satırlar, kayıt veya tuples olarak da bilinir.
Sütunlar(Columns): Sütun, tablodaki kayıtların belirli bir özelliğini temsil eden veriler içerir. Sütunlar, alanlar veya özellikler olarak da bilinir.
İlişkiler(Relations): İlişki, iki tablo arasındaki bağlantıdır (yani, ilişkiler). İlişkiler, bir tabloda başka bir tabloda belirli bir kayda ait verileri bulmayı mümkün kılar.
Veri Tipleri(Data Types): Bir tablonun sütunlarının her birinde, o sütunda bulunabilecek veri türünü belirten tanımlı bir veri türü bulunur.
Birincil Anahtarlar(Primary Key): Tabloların çoğunda, kayıtları tanımlamak için kullanılabilecek bir sütun veya sütun grubu bulunur. 
Yabancı Anahtarlar(Foreign Key): Yabancı anahtar sütunları, diğer tablolardaki birincil anahtar sütunlarına bağlanan ve böylece bir ilişki oluşturan sütunlardır. 
İlişkisel Veritabanı Yönetim Sistemi(Relational Database Management System): Genellikle veritabanı olarak adlandırılan ilişkisel veritabanı yönetim sistemi (RDBMS), veritabanı oluşturmak, değiştirmek ve yönetmek için kullanılan bir yazılımdır.

SQL İfadeleri(SQL Statements)
Veritabanı İşleme Dili(Database Manipulation Language)(DML)
DML ifadeleri, varolan bir veritabanındaki verilerle çalışmak için kullanılır. En yaygın DML ifadeleri şunlardır:
·         SELECT
·         INSERT
·         UPDATE
·         DELETE

Veritabanı Tanımlama Dili(Database Definition Language)(DDL)
DDL deyimleri bir veritabanındaki nesneleri yapılandırmak için kullanılır. En yaygın DDL deyimleri şunlardır:
·         CREATE
·         ALTER
·         DROP

Veritabanı Kontrol Dili(Database Control Language)(DCL)
DCL deyimleri veritabanı yönetimi için kullanılır. En yaygın DCL ifadeleri şunlardır:
·         GRANT
·         DENY (SQL Server Only)
·         REVOKE




Bir sonraki yazımda görüşmek üzere...



sentiment_satisfied Emoticon