Her şeyden once, nasıl telaffuz edildiğini bilmeniz gerek: MAY-ES-KUUU-EL’ [maɪˌɛsˌkjuːˈɛl]. Farklı şekillerde telaffuz edildiğini de duymuş olabilirsiniz ancak en azından artık doğru şekilde telaffuz etmeyi biliyorsunuz. Aslen MySQL AB adında bir İsvecli şirket MySQL’i geliştirdi. Sun Microsystems adlı Amerikan teknoloji şirketi MySQL AB’yi 2008 yılında satın aldıklarında tam mulkiyete sahip oldular. Daha sonra ise Amerikan teknoloji devi, 2010’da Oracle Sun Microsystems’in kendisini satın aldı ve o zamandan beri MySQL pratikte Oracle’ın mulkiyetinde.
Genel tanım olarak, istemci-sunucu modelli MySQL acık kaynaklı bir ilişkisel veritabanı yonetim sistemidir (RDBMS). RDBMS ilişkisel bir modele dayalı veritabanı yaratmak ve yonetmek icin kullanılan bir yazılım veya hizmettir. Şimdi, hadi her terimi ayrı ayrı detaylı bir bicimde inceleyelim:
Veritabanı
Bir veritabanı basit olarak yapılı veri koleksiyonudur. Bir selfie cektiğinizde duşunun: bir tuşa basar ve kendinizin fotoğrafını cekersiniz. Veriniz fotoğraftır ve telefonunuzun galerisi ise veritabanıdır. Bir veritabanı verinin depolandığı ve organize edildiği yerdir. “İlişkisel” kelimesi veri kumesinde depolanan verinin tablolar halinde organize edildiği anlamına gelir. Her tablo bir şekilde bağlantılıdır. Eğer yazılım ilişkisel veri modelini desteklemiyorsa, buna DBMS denir.
Acık kaynak
Acık kaynak demek kullanmak ve değişiklik yapmakta ozgursunuz demektir. Herhangi biri yazılımı yukleyebilir. İhtiyaclarınızı daha iyi karşılamak icin ayrıca yazılımı oğrenebilir ve kaynak kodunu ozelleştirebilirsiniz. Ancak, GPL (GNU Kamu Lisansı) şartlara bağlı olarak neler yapabileceğinizi belirler. Eğer daha esnek sahipliğe ve gelişmiş desteğe ihtiyacınız olursa ticari lisanslı versiyonu da bulunmaktadır.
İstemci-sunucu modeli
RDBMS yazılımını yukleyen ve calıştıran bilgisayarlara istemci denir. Her veriye erişmeleri gerektiğinde RDBMS sunucusuna bağlanırlar. Bu “istemci-sunucu” kısmıdır.
MySQL bircok RDBMS yazılımı seceneklerinden biridir. MySQL’in populerliği yuzunden RDBMS ve MySQL’in coğu zaman aynı olduğu duşunulur. Facebook, Twitter, Youtube, Google ve Yahoo gibi populer web uygulamalarının hepsi veri depolamak icin MySQL kullanır. En başta sınırlı kullanım icin yaratıldığı halde, şimdilerde Linux, macOS, Microsoft Windows ve Ubuntu gibi bircok onemli programlama platformuyla uyumludur.
SQL
MySQL ve SQL aynı değildir. MySQL’in sunucu-istemci modeli uygulayan en populer RDBMS yazılımlarından birinin adı olduğunu unutmayın. Peki istemci ve sunucu RDBMS ortamında nasıl iletişim kuruyor? Alana ozel bir dil kullanarak – Structured Query Language (SQL – Yapılandırılmış Sorgu Dili). Eğer hic icinde SQL bulunduran isimlere denk geldiyseniz, PostgreSQL ve Microsoft SQL sunucusu gibi, buyuk ihtimalle onlar da SQL sozdizimi kullanan markalardır. RDBMS yazılımı sıkca diğer programlama dillerinde de yazılmaktadır ancak veritabanıyla etkileşmek icin daima SQL’i ana dilleri olarak kullanırlar. MySQL’in kendisi C ve C++ dillerinde yazılmıştır. Guney Amerikan ulkeleri duşunun, coğrafik olarak hepsi farklıdır ve farklı tarihleri sahiptir ancak oncelikli olarak İspanyolca konuşurlar.
Bilgisayar bilimcisi Ted Codd SQL’i 1970’in başlarında IBM merkezli bir ilişkisel model ile geliştirmiştir. 1974’de daha sık kullanılmaya başlamış ve hızlıca benzeri, daha sonra ise modası gecmiş ISAM ve VISAM gibi dillerin yerini almıştır. Tarihi bir kenara bırakırsak, SQL sunucuya veriyle ne yapılacağını soyler. WordPress şifrenize veya kodunuza benzerdir. Kontrol paneline erişim sağlamak icin onu sisteme girersiniz. Bu durumda, SQL ifadeleri sunucuya belirli işlemleri yapmayı oğretir:
- Veri sorgusu: mevcut veritabanından belirli bilgileri ister.
- Veri manipulasyonu: veriyi, değerleri veya gorselleri değiştirmek icin ekleme yapar, siler, değiştirir, sıralar ve benzeri işlemler yapar.
- Veri kimliği: veri tiplerini tanımlar, orneğin sayısal veriyi tamsayılara değiştirmek gibi. Bu ayrıca bir şemayı veya veritabanındaki her tablonun ilişkisini tanımlamayı da icerir
- Veri erişim kontrolu: veriyi korumak icin guvenlik teknikleri sağlar, bu kimin gorebileceğine karar verme veya veritabanında depolanan herhangi bir bilgiyi kullanmayı da icerir.