Veritabanı Yönetim Sistemleri II

Slides:



Advertisements
Benzer bir sunumlar
Veritabanına Giriş Zeliha Çetin
Advertisements

Veritabanı Nedir?
T sql-diğer komutlar Metin Akbulut.
PHP ve MYSQL.
COME 339 JAVA-SQL BAĞLANTISI
4 SQL- Yapısal Sorgulama Dili
Delphi İle Veritabanı.
SQL Structured Query Language
A. Betül Oktay Elif Edoğan Zeliha Çetin
MySQL Veritabanı Sunucusu ve MySQL Veritabanı Kullanımı
Performance Tuning Performans Düzenleme Teknikleri.
Tablo Oluşturma SQL Server veritabanlarını barındırır; ogrenci, personel gibi Her veritabanı da verilerini saklamak için tablo adı verilen nesneleri.
3 Sql Veri Tipleri ve Örnek Veritabanı Tasarımı
OOP4 LAB.
SQL SERVER 2008 VERİ TİPLERİ.
İndeksler Sibel SOMYÜREK.
EkoPC Bilişim Ltd. Eğitim Hizmetleri
Veri Tabanı Yönetim Sistemleri
Tek Tablo İçinde Sorgulamalar
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Veritabanı Yönetim Sistemleri Hızlı ve Kısa Giriş
Çağlar Ülküderner SQL’e GİRİŞ Çağlar Ülküderner
Veri Tabanı Yönetim Sistemleri
Veri Tabanı Yönetim Sistemleri
BÖLÜM 6 SQL SERVER KOMUTLARI.
Tetikleyici. Nedir? Bir tablo üzerinde Ekleme silme ve güncellemeye bağlı olarak tetiklenip çalışan SQL kodlarıdır. Genel amacı veri bütünlüğünü korumaktır.
11 ekim 2011 VTYS –II Dersi. Kalıp İfadelerle Sorgu (Pattern) Eğer bir sözel verinin sadece belli kriterlere uyanlarını seçeceksek sütun_adı LIKE kalıp.
MYSQL 4. HAFTA. mySQL veri türleri INTTamsayı: 'den kadar değişen diziye "signed" (işaretli), 0'dan 'e kadar değişenine.
VIEW (BAKIŞ) OLUŞTURMA
Veri Tabanı Yönetim Sistemleri I Öğr.Gör.Kenan KILIÇASLAN Web:
VERİ TABANI YÖNETİM SİSTEMLERİ
SQL Dili ve MySQL Komutları
Veri Tabanı Nedir ?.
PHP ve MYSQL.
MySQL Operatörleri ve Fonksiyonları
İnternet Programcılığı II
SQL (Structured Query Language). MySQL de Temel Komutlar : CREATE DATABASE isim; verilen isimde bir veri tabanı oluşturur. SHOW DATABASES; Tüm yaratılan.
Veritabanı Kavramları
SQL SERVER Giriş A. Betül Oktay Ayşe Betül Oktay 2006.
Veri Tabanı Yönetim Sistemleri I
RAISE RECORD/CURSOR TRIGGER
VERİ TİPLERİ VE DEĞİŞKENLER
VERİTABANI.
VERİ TABANI YÖNETİM SİSTEMLERİ
Veritabanlarına ve SQL'e Giriş Devrim GÜNDÜZ Kivi Bilişim Teknolojileri -
TR.NET Teknik Destek Uzmanı
SQL’ e Giriş Uzm. Murat YAZICI.
KONGRE YÖNETİM SİSTEMİ MEHMET TURAN M. SERTAÇ KELEŞ.
BTP206– Görsel Programlama II
Update UPDATE tablo_ismi SET sutun1=‘deger1’ WHERE sutun=deger.
Mobil Uygulama Geliştirme
Veritabanı Yönetim Sistemleri - I
Veri Tabanı Yönetimi Dersi 7. Laboratuvarı Arş. Gör. Pınar CİHAN.
Yapısal Sorgulama Dili SQL VTYS Giriş Hafta 5 Ders Notu.
İNTERNET PROGRAMLAMA -2. Veritabanı Nedir? Veritabanı, bilgilerin düzenli bir ş ekilde saklandı ğ ı yapılardır. De ğ i ş kenlerdeki bilgiler ve formlardan.
Altıncı hafta. Müfredat programı Ödev teslim edenler Mantıksal tasarım ödevini teslim edenler: Belediye Projesi Valilik Projesi Mekan Projesi Konaklama.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı Arş. Gör. Pınar CİHAN.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
C Programlama Dili Bilgisayar Mühendisliği.
SQL Veri Tipleri.
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
NİŞANTAŞI ÜNİVERSİTESİ
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-2
Veri Tabanı Yönetim Sistemleri I
SQL Server - Stored Procedures
NİŞANTAŞI ÜNİVERSİTESİ
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-3-DDL
Transaction.
Sunum transkripti:

Veritabanı Yönetim Sistemleri II Öğr.Gör.Kenan KILIÇASLAN kenank@beykent.edu.tr Web: http://www.kilicaslan.nom.tr 1

MySQL veritabanı

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.

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.

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.

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. 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.

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. 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

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. 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. Özellikle internet ortamında önem kazanan, çok esnek ve güçlü bir kullanıcı erişim kısıtlama/yetkilendirme sistemine sahiptir.

MySQL'in Bazı Özellikleri Unix türevlerinden Amiga'ya kadar birçok farklı platformda çalışabilir. Birden fazla CPU ile kolaylıkla çalışabilir. 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. 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. Farklı karakter setlerini (iso8859-9, ...) ve onlara göre sıralama yapılmasını destekler, farklı dillerde hata mesajları verebilir. Özellikle internet ortamında önem kazanan, çok esnek ve güçlü bir kullanıcı erişim kısıtlama/yetkilendirme sistemine sahiptir.

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ı uygulamalarının %80'inin, SQL özelliklerinin sadece %20'lik bir kısmına gerek duyduğu ilkesi çerçevesinde geliştirilir. 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.

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'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. Ç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.

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

Tarihçe İlk ürün : 23 May 1995 Windows version için on 8 ocak 1998 ( Windows 95 ve NT) 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) Sun Microsystems satın aldı MySQL AB 26 Şubat 2008

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

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

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

Data Tipleri (Sayı)‏ SMALLINT [UNSIGNED] [ZEROFILL] Küçük tamsayı. İşaretli aralık -32768 ile 32767. İşaretsiz aralık 0 to 65535. MEDIUMINT [UNSIGNED] [ZEROFILL] , INT [UNSIGNED] [ZEROFILL] Orta uzunlukta tamsayı. İşaretli aralık -8388608 ile 8388607. İşaretsiz aralık 0 ile 16777215. Normal uzunlukta tamsayı. İşaretli aralık -2147483648 ile 2147483647. İşaretsiz aralık 0 to 4294967295. BIGINT[(M)] [UNSIGNED] [ZEROFILL] Uzun tamsayı. İşaretsiz aralık -9223372036854775808 ile 9223372036854775807. İşaretsiz aralık: 0 ile 18446744073709551615.

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

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

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.

Data Tipleri (String)‏ 5 bytes 'abcd' 4 bytes 'abcdefgh' 3 bytes 'ab' 'ab  ' 1 byte '' '    ' Alan İhtiyacı VARCHAR(4)‏ CHAR(4)‏ Değer

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

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

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

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

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

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 ...] |

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

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]

Data Tipleri DATE TIME TIMESTAMP DATETIME YEAR

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]

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

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

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