Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Veritabanı Yönetim Sistemleri II Öğr.Gör.Kenan KILIÇASLAN Web:

Benzer bir sunumlar


... konulu sunumlar: "Veritabanı Yönetim Sistemleri II Öğr.Gör.Kenan KILIÇASLAN Web:"— Sunum transkripti:

1 Veritabanı Yönetim Sistemleri II Öğr.Gör.Kenan KILIÇASLAN Web:

2 MySQL veritabanı

3 Genel  MySQL, çok-kanallı (multi-threaded), çok kullanılıcılı (multi-user), hızlı ve sağlam (robust) bir veritabanı yönetim sistemidir.  UNIX ve OS/2 platformları için ücretsiz dağıtılmakla birlikte Windows platformları için 30 günlük deneme sürümü sonunda lisans alınmak üzere sunulmaktadır.  Kaynak kodu açık olan MySQL'in pekçok platform için binaryleri de hazır. ODBC sürücüleri de bulunuyor.

4 Genel  Geliştiricileri, 500'den fazlası 7Milyon kayıt içeren 10,000 tablodan oluşan kendi veritabanlarını (100 gigabyte civarında veri) MySQL'de tuttuklarını söylüyorlar.  MySQL, tuttuğu tablolarla, çok kullanıcılı bir sistemlerde sözkonusu olan erişim hakları sorununu çok güzel çözüyor.

5 Genel  Negatif bir yön olarak MySQL'de transactionların desteklenmemesi, transactionların güvenliğini sağlama işini programcının üzerine yıkıyor.  Ayrıca referential integrity(veri tutarlılığı) sağlama işinin programcıya bırakılması tercih edilmiş.  Ancak bu bir dezavantaj olarak görülmeyebilir. Çünkü pek çok veritabanı programcısı VTYS'lerdeki referential integrity'nin esnek olmayan, zorlayıcı bir özellik olduğunu düşünmektedir.

6 MySQL'in Gelişimi  İlk başta mSQL ile tablolarına kendi hızlı yordamları (ISAM) ile bağlanmak için işe girişmişdir.mSQLISAM  mSQL'in yeterince hızlı ve esnek olmadığı sonucuna varınca, mSQL ile aynı programlama arayüzüne (API) sahip yeni bir SQL arayüzü yazmıştır. mSQL API'sinin seçilmesinin nedeni piyasadaki kodların kolaylıkla kendi veritabanlarına aktarılabilmesidir.APImSQL API

7 MySQL'in Gelişimi  "My"SQL isminin nereden geldiği tam olarak bilinmiyor. MySQL'den önce de ekip kendi yazdıkları araçlara "my" takısını ekliyordu. Öte yandan MySQL'in yaratıcısı Michael " Monty" Widenius'un kızının adı da My dır.Michael MontyWidenius  MySQL'in sembolü olan yunusun adı 'Sakila'. İsim, dünya çapında yapılan 'Yunusa isim verin' yarışmasının sonucunda, gelen birçok önerinin arasından yazılımın geliştiricileri tarafından seçildi. Sakila, Afrika'da Swaziland'de konuşulan yerel dilden alınma bir kelimedir

8 Neden MySQL?  Çok hızlı, güvenilir ve kullanımı kolaydır.  MySQL'e Python'dan Java'ya kadar birçok programlama dili ile erişilebilir. MySQLPython  Apache ve PHP ile beraber web-veritabanı uygulamalarında çok yaygın olarak kullanılır. Apache-PHP-MySQL üçlüsü için hazırlanmış çok geniş bir yazılım yelpazesi bulunmaktadır. Apache ve PHP Apache-PHP-MySQL  Özellikle internet ortamında önem kazanan, çok esnek ve güçlü bir kullanıcı erişim kısıtlama/yetkilendirme sistemine sahiptir.

9 MySQL'in Bazı Özellikleri  Unix türevlerinden Amiga'ya kadar birçok farklı platformda çalışabilir.  Birden fazla CPU ile kolaylıkla çalışabilir.CPU  60000'in üzerinde tablo, 5 milyarın üzerinde satır ile çalıştığı söylenen MySQL sistemler bulunmaktadır.  Transaction ve/ya atomik işlem kullanan çeşitli tablo tiplerini desteklemektedir. Transactionatomik  Tabloların kontrolü, optimizasyonu ve tamiri hızlı bir biçimde yapılabilir.  Windows için ODBC desteği bulunmaktadır, ODBC 2.5 komutları tamamen desteklenmektedir. WindowsODBC  Farklı karakter setlerini (iso8859-9,...) ve onlara göre sıralama yapılmasını destekler, farklı dillerde hata mesajları verebilir.iso  Özellikle internet ortamında önem kazanan, çok esnek ve güçlü bir kullanıcı erişim kısıtlama/yetkilendirme sistemine sahiptir.kısıtlamayetkilendirme

10 MySQL ve Diğer Veritabanı Sunucuları  MySQL gelişimi sırasında, veritabanı sunucularının yılların birikimi "gelenek"lerinin önemli bir kısmını yok saymıştır. "Olmazsa olmaz" denilen birçok özelliğin, aslında birçok durumda önemli olmadığını ortaya koymuştur.  MySQL çeşitli "pratik" çözümler için geliştirilirken, diğer veritabanı sunucuları akademik düzeyde belirli kurallar ve "veritabanı bilimi" ışığında geliştirilirler.veritabanı bilimi  Veritabanı uygulamalarının %80'inin, SQL özelliklerinin sadece %20'lik bir kısmına gerek duyduğu ilkesi çerçevesinde geliştirilir.SQL  MySQL size farklı tablo tipleri ve işleme türleri ile esneklik sağlar.  Eğer teknik olarak 'basit' bir projeniz varsa, MySQL sizin için biçilmiş kaftan olabilir.  Eğer teknik olarak 'karmaşık' bir projeniz varsa, geleneksel veritabanı sunucularında yer alan gelişmiş özelliklere ihtiyaç duyabilirsiniz.

11 Atomik İşlem / Transaction  MySQL her iki tür işlemi de desteklediği için kullanıcı, uygulamasında atomik işlemlerin hızına mı transaction özelliklerine mi ihtiyacı olduğuna karar verebilir. Seçimler tablo bazında yapılabilir.transaction  Transaction'lı tablo ile atomik işlemle çalışan tablo arasındaki en büyük fark performans konusunda oluşur. Transactionlı tablolar çalışırken daha fazla bellek, daha fazla disk alanı ve daha fazla işlemci gücü harcanır.  Eğer uygulamalarınız kritik durumlarda COMMIT yapmaya değil de, ROLLBACK yapmaya göre yazıldıysa transaction kullanmak daha elverişli olabilir.COMMIT ROLLBACK  Çoğunlukla kritik transactionla çalışan güncellemeler, atomik olarak çalışacak şekilde tekrar yazılabilir. Transactionların çözdüğü tüm bütünlük problemleri LOCK TABLES, INSERT DELAYED ve benzeri yöntemlerle çözülebilir.LOCK TABLESINSERT DELAYED

12 MySQL Tablo Tipleri  MySQL, iki farklı tür tablo yapısını destekler :  Transaction Tabloları : Transaction Tabloları  InnoDB InnoDB  Berkeley DB Berkeley DB  Atomik İşlem Tabloları : Atomik İşlem Tabloları  MyISAM MyISAM  HEAP HEAP  MERGE MERGE  ISAM ISAM

13 Tarihçe  İlk ürün : 23 May May1995  Windows version için on 8 ocak 1998 ( Windows 95 ve NT)81998  Version 3.23: beta Haziran 2000, kararlı sürüm Ocak 2001  Version 4.0: beta Agustos 2002, kararlı sürüm Mart 2003  Version 4.1: beta Haziran 2004, kararlı sürüm Kasım 2004  Version 5.0: beta Mart 2005, kararlı sürüm Kasım 2005 (cursors, stored procedures, triggers, views, XA transactions)cursors stored procedurestriggersviewsXA transactions  Sun Microsystems satın aldı MySQL AB 26 Şubat Ş2008

14 Son sürümde bulunanlar  ANSI 99 SQL dili  Çok platform desteği  Stored procedures Stored procedures  Triggers Triggers  Cursors Cursors  Views Views  True VARCHAR desteği  INFORMATION_SCHEMA

15 Son sürümde bulunanlar  İnnoDB motoru kullanıldığında Transaction desteği  SSL desteği SSL  İç içe sorgular  Replikasyon.  MyISAM motoru ile full-text arama  Gömülü veritabanı fonksiyonları  Çok dil desteği

16 Data Tipleri (Sayı) ‏  BIT  TINYINT [UNSIGNED] [ZEROFILL]  Çok küçük tamsayı.  İşaretli aralık: -128 ile 127.  İşaretsiz aralık: 0 ile 255.  BOOL, BOOLEAN  TINYINT’e benzer. Değeri sıfır ise false. Değeri sıfırdan farklı ise true’dur

17 Data Tipleri (Sayı) ‏  SMALLINT [UNSIGNED] [ZEROFILL]  Küçük tamsayı. İşaretli aralık ile İşaretsiz aralık 0 to  MEDIUMINT [UNSIGNED] [ZEROFILL], INT [UNSIGNED] [ZEROFILL]  Orta uzunlukta tamsayı. İşaretli aralık ile İşaretsiz aralık 0 ile  Normal uzunlukta tamsayı. İşaretli aralık ile İşaretsiz aralık 0 to  BIGINT[(M)] [UNSIGNED] [ZEROFILL]  Uzun tamsayı. İşaretsiz aralık ile  İşaretsiz aralık: 0 ile

18 Data Tipleri (Sayı) ‏  FLOAT [UNSIGNED] [ZEROFILL]  küçük (single-precision) ondalıklı sayı.  Kullanılabilir değer : E+38 ile E-38 arası,  0, E-38 ile E+38 arası.  DOUBLE [UNSIGNED] [ZEROFILL],  REAL[(M,D)] [UNSIGNED] [ZEROFILL]  Normal uzunlukta (double-precision) ondalıklı sayı.  Kullanılabilir değer : E+308 ile E-308, 0, ve E-308 ile E+308.

19 Data Tipleri (Sayı) ‏  DECIMAL (M,D)] [UNSIGNED] [ZEROFILL]  Parabirimi yerine kullanılır. M toplam dijit sayısı D, ondalık sayısı

20 Data Tipleri (Tarih) ‏  DATETIME  'YYYY-MM-DD HH:MM:SS' veya  'YY-MM-DD HH:MM:SS' formatında tarih ve saati tutar.  TIMESTAMP  'YYYYMMDDHHMMSS' veya  'YYMMDDHHMMSS' formatında tarih ve saati tutar.

21 Data Tipleri (String) ‏ 5 bytes 'abcd' 4 bytes 'abcd' 'abcd efgh' 5 bytes 'abcd' 4 bytes 'abcd' 3 bytes 'ab' 4 bytes 'ab ' 1 byte '' 4 bytes ' '' Alan İhtiyacı VARCHAR(4) ‏ Alan İhtiyacı CHAR(4) ‏ Değe r

22 Operatörler  AND, && :Mantıksal AND AND, &&  BETWEEN... AND... : Aralığın içinde mi? BETWEEN... AND...  &:Bitwise AND &  |: Bitwise OR |  ^:Bitwise XOR ^

23 Operatörler  CASECase operator CASE  DIV(v4.1.0)Integer division DIV  /Division operator /  NULL-safe equal to operator  =Equal operator =  >=Greater than or equal operator >=  >Greater than operator >  IS NOT NULLNOT NULL value test IS NOT NULL  IS NOTTest a value against a boolean IS NOT  IS NULLNULL value test IS NULL  ISTest a value against a boolean IS

24 Operatörler  LIKE: LIKE  NOT BETWEEN... AND... NOT BETWEEN... AND...  !=, <>:Eşitdeğil !=, <>  NOT LIKE: NOT LIKE  NOT REGEXP: Negation of REGEXP NOT REGEXP  NOT, ! : NOT, !  %: Modulo operator %  ||, OR : Logical OR ||, OR  +: Ekleme operatorü +  REGEXP>> REGEXP>>  XORLogical XOR XOR

25 CREATE DATABASE Yazımı  CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name  [create_specification...]  create_specification:  [DEFAULT] CHARACTER SET charset_name  | [DEFAULT] COLLATE collation_name

26 CREATE TABLE Syntax  CREATE TABLE [IF NOT EXISTS] tbl_name  (oluşturma özellikleri,...)‏  [table_option...]  [partition_options]

27 Oluşturma Özellikleri  colon_adı column_özelliği  [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) [index_option...]  | {INDEX|KEY} [index_name] [index_type] (index_col_name,...) [index_option...] | [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...) [index_option...] |

28 Kolon tanımı  data_type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY]  | [PRIMARY] KEY] [COMMENT 'string'] [reference_definition]

29 Data Tipleri  BIT[(length)]  TINYINT[(length)] [UNSIGNED] [ZEROFILL]  SMALLINT[(length)] [UNSIGNED] [ZEROFILL] MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]  INT[(length)] [UNSIGNED] [ZEROFILL]  INTEGER[(length)] [UNSIGNED] [ZEROFILL]  BIGINT[(length)] [UNSIGNED] [ZEROFILL]  REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]  DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]  FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]  DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL]  NUMERIC(length,decimals) [UNSIGNED] [ZEROFILL]

30 Data Tipleri  DATE  TIME  TIMESTAMP  DATETIME  YEAR

31 Data Tipleri  CHAR(length) [CHARACTER SET charset_name] [COLLATE collation_name]  VARCHAR(length) [CHARACTER SET charset_name] [COLLATE collation_name]  TINYTEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name]  TEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name]  MEDIUMTEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name]  LONGTEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name]

32 Data Tipleri  BINARY(length)  VARBINARY(length)  TINYBLOB  BLOB  MEDIUMBLOB  LONGBLOB

33 Data Tipleri  ENUM(value1,value2,value3,...) [CHARACTER SET charset_name] [COLLATE collation_name]  SET(value1,value2,value3,...) [CHARACTER SET charset_name] [COLLATE collation_name]

34 CREATE INDEX Syntax  CREATE [UNIQUE|FULLTEXT] INDEX index_name [index_type] ON tbl_name (index_col_name,...) [index_option...]


"Veritabanı Yönetim Sistemleri II Öğr.Gör.Kenan KILIÇASLAN Web:" indir ppt

Benzer bir sunumlar


Google Reklamları