VERİTABANI ORGANİZASYONU

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "VERİTABANI ORGANİZASYONU"

Transkript

1 VERİTABANI ORGANİZASYONU Veri nedir? Veri(data) ilişkide olduğumuz(ilgimiz olan) dünyanın durumlarıdır. O gün mağazaya kaç kişi geldiği, dışarıda havanın sıcaklığı, boyunuzun uzunluğu, göz renginiz veya son okuduğunuz kitabın sayfa sayısı birer veridir. Veri kavramını dünyanın betimlemesi olarak düşünebiliriz. Duyu organlarımız ile verileri algılar ve beynimizle işleriz. Bilgi nedir? Bilgi (knowledge) verilerin işlenmesiyle elde edilir. Örnek: Bugün dışarıda hava sıcaklığı 25 C dir. İnsanlar bilgiyi oluşturabilmek için uzunca bir süre verilerden yararlanırlar. Verilerin anlamlı ve kullanılabilir olmaları için tanımlı bir çerçeve içine alınmaları ve işlenmeleri gerekir. Veritabanı nedir? Birbiri ile ilişkili verilerin belirli bir düzen içerisinde bir araya getirildiği ve depolandığı yapılara veritabanı(database) diyoruz. 1

2 Veritabanı Yönetim Sistemi(VTYS) Database Management System(DBMS) Veritanı oluşturmak, verileri saklamak ve verileri işlemek üzere geliştirilmiş bilgisayar yazılımlarına VTYS denir. VTYS lerden önce veriler klasik dosyalarda saklanıyordu. VTYS lerin üstünlükleri: - Veri tekrarının önlenmesi. - Verilerin tutarlı olmasını sağlamak - Aynı aydaki erişimlerde tutarsızlıkların ortaya çıkmasını önlemek. - Verilerin güvenliğini sağlamak. Örnek VTYS yazılımları: MS-Access, MS-SQL Server, My-Sql, PostgreSQL, Oracle, IBM DB2, IBM-Informix, Paradox İlişkisel Veritabanı Nedir? Günümüz veritabanı sistemleri ilişkisel modeli kullanır. İlişkisel Model -> Releational Model Bu modelin prensibi böl-parçala-yönet tir. Bu modelde veriler birden çok tabloda saklanır. Bu tablolar ortak alanlar vasıtasıyla ilişkilendirilir. İlişki Türleri a) Bire-Bir İlişki ( 1-1 ) b) Bire-Çok İlişki ( 1 oo ) c) Çoka Çok İlişki ( oo oo ) 2

3 Bire Bir İlişki: Bir tablodaki bir kayda karşılık diğer tabloda bir kayıt varsa bu tablolar arasında bire-bir ilişki söz konusudur. (*) Bire-Çok İlişki: Bir tablodaki bir kayda karşılık diğer tabloda çok sayıda kayıt varsa bu tablolar arasında bire-çok ilişki söz konusudur. (*) Çoka-Çok İlişki: Bir tablodaki çok sayıda kayda karşılık diğer tabloda çok sayıda kayıt varsa bu tablolar arasında çoka-çok ilişki söz konusudur. Kısıtlamalar(Constraints) a) Anahtar Kısıtlamaları - Birincil Anahtar (Primary Key) kısıtlaması - Yabancı Anahtar (Foreign Key) kısıtlaması b) Veri Kısıtlamaları - Not Null kısıtlaması - Default kısıtlaması - Unique kısıtlaması - Check kısıtlaması 3

4 Veritabanı Tasarım Adımları 1) Nesneler Tanımlanır: Nesne, çeşitli özellikleri bulunan bir varlıktır. Herhangi bir proje de öncelikle nesneler tanımlanır. Ör) Birkaç örnek proje için nesneleri verecek olursak, Kütüphane sistemi: Kitap, üyeler, türler, ödünç hareketleri E-ticaret sistemi: Ürünler, müşteriler, siparişler, teslimat, fatura bilgileri, üreticiler, tedarikçiler, dağıtıcılar... Futbol Ligi: Takımlar, sahalar, oyuncular, fikstür, hakemler, antrenörler Okul Sistemi: Öğrenciler, öğretmenler, dersler, derslikler Sözlük: kelimeler, anlamlar, diller 2) Her nesne için bir tablo oluşturulur: Her nesne için bir tablo oluşturulur ve her bir tabloya içereceği veriyi en iyi anlatan bir isim verilir. 3) Her bir tablo için bir anahtar alan seçilir: Veri tabanındaki herhangi bir veriye erişilmeden önce tabloya erişilir. Tabloda yer alacak her bir kaydı bir diğerinden ayırabilecek bir sütuna ihtiyaç duyulur. 4) Nesnelerin gerekli her bir özelliği için tabloya bir sütun eklenir : Tablolara sırasıyla adını veren nesnelerin her bir özelliği için bir alan (sütun) eklenir. 4

5 5) Tekrarlayan nesne özellikleri için ek tablolar oluşturulur : Veri tekrarı olacaksa bir yerlerde hata yapılıyor demektir. Bu durumda eldeki tablonun en az bir tabloya daha ayrılması gerekiyor demektir. (Normalizasyon kurallarının devreye girdiği aşamadır) 6) Anahtar alana bağlı olmayan alanlar belirlenir: Bazen, anahtar alan ile aynı satırda yer aldığı halde, anahtar alan ile birebir ilişkisi olmayan bir alan yer alabilir. Bu türden alanların elimine edilip ayrı tablolara ayrılması gerekir. 7) Tablolar arasındaki ilişkiler tanımlanır: Her biri bir nesneye dair özellikleri barındıran tabloların tümü göz önüne alınır ve birbirleri ile olan ilişkileri tanımlanmaya çalışılır. NORMALİZASYON Amaç : Veri tekrarını ve bilgilerin kaybını önlemek Toplam 5 tane normalizasyon kuralı vardır. 5

6 İlk 3 kural pratikte kolay uygulanabilir kurallardır. Diğerleri ise daha çok kuramsal olarak kalır ve uygulanması zordur. Normalizasyon uygulanmadan önce bütün tablolar ; Normal Olmayan Biçim (Unnormalized Form UNF) de kabul edilir. Kurallar uygulanıp tablolar dönüştürüldükçe; Normal Biçime dönüşür. (Normal Form - NF) UNF -> 1.NF -> 2.NF -> 3.NF -> 4.NF -> 5.NF Veri Fazlalığı: a) Mutlak Veri Fazlalığı i) Birleşik Özellik : Birden çok verinin birleştirilerek bir alanda bulunması. ii) Tekrarlayan Grup: Tablolarda aynı tipteki veriyi içerecek alanların bulunması. iii) Çok Değerli Özellik: Aynı alanda birden fazla verinin virgülle ayrılarak kaydedilmesi. 6

7 b) Gereksiz Tekrar (Veri Artıklığı): Bazı durumlarda aynı veri çeşidi birden fazla kayıtta yer alabilmekte ve bu da sistemin yavaşlamasına sebep olmaktadır. Bilgilerin yinelenmesi, gereksiz alan kaplar, hata ve tutarsızlıklara sebep olabilir. Tablo-1: Tablo-2: (Veri artıklığı içeren tablo örnekleri) 7

8 Normalizasyon Aşamaları ( ilk 3 aşama) 1.Normalizayon 2.Normalizayon 3.Normalizayon İşlemleri İşlemleri İşlemleri Fonksiyonel Bağımlılıklar: Fonksiyonel Bağımlık Nedir? R bir ilişki şeması, X ve Y nitelikleri de R nin iki alt kümesi olsun. Eğer X nitelikler kümesinin değerleri Y nitelikler kümesinin değerlerini belirliyorsa Y, X e fonksiyonel bağımlı dır denir. R ilişkisinin Y niteliği, R nin X niteliğine ikişkisel olarak bağımlı ve X in her bir değeri Y nin bir değerine karşılık geliyorsa fonksiyonel bağımlılıktan söz edilir. 8

9 a) Kısmı bağımlık: Anahtar olmayan alan, birleşik anahtarın sadece bir kısmı ile belirlenebiliyorsa, buna kısmi bağımlılıkdenir. İsim alanını Müşteri_Id belirlemektedir. b) Dolaylı bağımlılık (Geçişken Bağımlılık): A,B,C niteliklilerini içeren 3 nitelikli bir tabloda: A, B, ve C için A => B ve B => C fonksiyonel bağımlılıkları bulunmakta ise, C dolaylı olarak A ya bağımlıdır. 9

10 Normalizasyon İşlemlerini Adım-Adım Yapalım: UNF -> 1.Normalizasyon Kuralları -> 1NF 10

11 1NF -> 2.Normalizayon Kuralları -> 2NF 11

12 12

13 2NF -> 3.Normalizayon Kuralları -> 3NF 13

14 14

15 Bir veritabanın baştan sonra tasarlanması: Veri Tabanı Tasarım Adımları Uygulanır. A) İhtiyaç Analizi Yapmalıyız. Veri tabanı ihtiyaç analizi yapılırken hazırlanacak olan sistemin neye hizmet edeceği, Veri tabanını ne iş yapacağı ve hangi ihtiyaçları karşılayacağına, Veri tabanının hangi verileri depolayacağı, Veri tabanını oluşturan tabloların neler olacağı ve ne tür verileri saklayacağı v.b. gibi sorulara cevap vermek gerekmektedir. Tüm bunları kağıt üzerinde tasarladıktan sonra fiziksel tasarıma geçmek çalışmanızın daha sistemli yürümesi açısından avantajınıza olacaktır. B) Tasarım Adımları 1.Nesneler Tanımlanır (Örneğimiz Kütüphane Sistemi olsun) kitaplar, üyeler, türler, ödünç hareketleri, yazarlar vd. 15

16 2.Her nesne için tablo oluşturulur 3.Her bir tablo için anahtar alan seçin 4.Nesnelerin gerekli her bir özelliği için tabloya bir sütun ekleyin. (Alanları belirleyin) Ör) Tablo:kitap ( kitapid (PK), kitapadi, ISBNNo, sayfasayisi, tur, ozet, yayinevi, yazar, yil) Bu şekilde bu tablolar önceden oluşturulmalı Normalizason ile ilgili işlemler 5.Tekrarlayan nesne özellikleri için ek tablolar oluşturun 6.Anahtar Alana Bağlı Olmayan Alanları Belirleyin 7.Tablolar arasındaki ilişkileri tanımlayın. 16

17 En son aşamada veritabanı şematik olarak ifade edilmelidir. Not: Bu şema temsilidir. 17

18 MySQL Veritabanı Yönetim Sistemi MySQL, altı milyondan fazla sistemde yüklü bulunan çoklu iş parçacıklı (multi-threaded), çok kullanıcılı (multi-user), hızlı ve sağlam (robust) bir veritabanı yönetim sistemidir. UNIX, OS/2 ve Windows platformları için ücretsiz dağıtılmakla birlikte ticari lisans kullanmak isteyenler için de ücretli bir lisans seçeneği de mevcuttur. Linux altında daha hızlı bir performans sergilemektedir. Geliştiricileri, 500'den fazlası 7 milyon kayıt içeren tablodan oluşan kendi veritabanlarını (100 gigabyte civarında veri) MySQL'de tuttuklarını söylüyorlar. Web sunucularında en çok kullanılan veritabanıdır, asp, php gibi birçok web programlama dili ile kullanılabilir. MySQL, tuttuğu tablolarla çok kullanıcılı sistemlerde söz konusu olan erişim hakları sorununu başarılı bir şekilde çözmektedir. MySQL'in 4.0 sürümü ile birlikte "transaction" desteği, 4.1 sürümüyle birlikte de alt sorgu desteği eklenmiştir. Ayrıca "veri tutarlılığını (referential integrity)" sağlama işinin programcıya bırakılması tercih edilmiştir, ancak bu bir dezavantaj olarak görülmeyebilir. Çünkü pek çok veritabanı programcısı VTYS'lerdeki veri tutarlılığının esnek olmayan, zorlayıcı bir özellik olduğunu düşünmektedir. MySQL aşağıdaki veritabanı nesnelerini desteklemekte olup bu nesnelerin bazıları 5.1 sürümü ile gelmiştir: Tables (Tablo) Views (Görüntü) (Görüntüleme) Procedures (Prosedür/Yordam) Triggers Cursors 18

19 Tarihçe 1994 MySQL'in geliştirilmesine başlandı. 23 Mayıs 1995 İlk MySQL sürümü yayınlandı yılında MySQL 3.23 yayınlandı MySQL 4.1 beta sürümü, ve gerçek sürümü Ekim 2004 yılında yayınlandı. (R-trees and B-trees, subqueries, prepared statements) 2008: MySQL 5.1 sürümü yayınlandı. (event scheduler, partitioning, plugin API, row-based replication, server log tables) 2008 Ocak: Sun Microsystems, bir milyar dolara MySQL'i satın aldı Nisan: Oracle, Sun Microsystems'i satın aldı. Oracle, MySQL'i geliştirmeye devam edeceğini duyurdu. MySQL Nasıl Yönetilir MySQL i yönetmek için farklı yazılımlar vardır. a) Desktop üzerinden - Database Master, Navicat, MySQL Front, SQL yoq b) Web üzerinden - phpmyadmin phpmyadmin ile MySQL i Yönetmek 19

20 SQL Structured Query Language (Yapısal Sorgulama Dili) Veritabanı Yönetim Sistemleri için evrensel bir veri sorgulama dilidir. Neler yapılabilir? - Veritabanı, tablolar ve diğer nesneler oluşturulabilir. - Veri sorgulama işlemleri : Veri çekme - Diğer veri işlemleri : Veri ekleme, veri silme, veri güncelleme - Yapısal işlemler: Tabloların yapılarını değiştirme SQL dili kendi arasında: 1. DML (Data Manupulation Language) : Veri İşleme Dili. SELECT, UPDATE, DELETE, INSERT 2. DDL (Data Definition Language) : Veri tanımlama dili. CREATE, DROP, ALTER 3. DCL (Data Control Language) : Veri kontrol dili. GRANT, DENY, REVOKE, IF, FOR DDL (Data Definition Language) - Veri tanımlama dili komutları: CREATE Komutu: Bu komut ile veritabanın kendisi dahil bir çok nesne oluşturabilir. Database Oluşturmak: CREATE Database dbname; Database Silmek: DROP Database dbname; 20

21 Tablo Oluşturmak: CREATE TABLE table_name ( ); Tablo oluşturma işlemi yapılmadan önce mutlaka veri tabanı seçilmelidir (USE komutuyla). USE DATABASE dbname; Format: Create Table <tablo adı> ( alan_adı veri_türü [Default ifade] [alan_kısıtlaması], [ tablo kısıtlaması] ); MySQL de üç temel veri tipi vardır. Bunlar; sayısal (numeric), tarih ve saat (date and time) ve karakter katarıdır (string). Bu kategorilerin her birinin içinde de pek çok tip bulunur. 21

22 Her bir tipin hafızada çeşitli depolama boyutları vardır. Veri türleri ve özellikleri aşağıdaki tabloda görülmektedir. 22

23 Örnek: Mezun olan öğrenciler için mezun bilgilerinin tutulacağı bir tablo oluşturalım. Bu tablo için aşağıdaki alan adları bulunacaktır. Tablo adını kayit olarak kabul edelim. Alan adı - açıklama adi : Öğrenci Adı soyadi : Öğrenci Soyadı ogrno : Öğrenci Numarası SQL Kodu CREATE TABLE kayit ( ad varchar(15) not null, soyad varchar(15) not null, ogrno smallint(5) unsigned, constraint ogrno_pk primary key (ogrno) ); Örnek: Bir alışveriş sitesinde müşteri bilgilerini tutacak bir tablo için aşağıdaki alanlar bulunacaktır. Tablo adı musteri olsun. Alan adı - açıklama Musteri_id : Müşteri numarası adsoyad : Müşteri adı ve soyadı adres : Müşteri adresi sehir : Şehir tlfon : Telefon SQL Kodu CREATE TABLE musteri (musteri_id int unsigned not null auto_increment primary key, adsoyad varchar(50) not null, adres varchar(100) not null, 23

24 sehir varchar(15) not null, tlfon varchar(11) not null ); Örnek: Bir satış sitesine konulacak ürünlerin tutulacağı urun adlı tabloyu aşağıdaki gibi oluşturalım. Alan adı - Açıklama Urun_kodu : Satılacak ürün kodu Urun_markasi : Satılacak ürünün markası Urun_turu : Satılacak ürün türü Urun_fiyati : Satılacak ürünün fiyatı SQL Kodu CREATE TABLE urun ( urun_kodu integer(5) zerofill not null, urun_markasi varchar(20) not null default BELİRSİZ, urun_turu varchar(20) not null default BELİRSİZ, urun_fiyati bigint(10) unsigned, constraint urun_kodu_pk primary key (urun_kodu), ); Tablolarda Karakter Kodlamasının Ayarlanması Tablo oluştururken metinsel verilerin karakter kodlamasını ayarlamak için CREATE TABLE ( ) komutu bittikten sonra aşağıdaki kod yazılır: DEFAULT CHARSET=utf8 ; veya DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci ; 24

25 Tabloları Silmek (DROP TABLE Komutu): Bazen bir tablonun tamamından kurtulmak isteyebilirsiniz. Bunu DROP TABLE ifadesiyle yapabilirsiniz. Genel kullanımı aşağıdaki gibidir: DROP TABLE tablo_adi Örnek: musteri tablosunu silmek için aşağıdaki ifade kullanılır. DROP TABLE musteri; Bu sorgu, tablodaki tüm satırları ve tablonun kendisini sileceğinden kullanırken dikkatli olunmalıdır. Görünümler (VIEW) Bir ya da daha fazla tablonun mantıksal alt kümelerini oluşturmak için görünümlerden yararlanılır. Görünümler, bir tabloya dayalı mantıksal bir tablo olarak değerlendirilir. Görünüm, tablolar gibi veriyi fiziksel olarak saklamaz. Görünümler, saklanmış (depolanmış) SELECT deyimi olarak değerlendirilir. Bir SELECT deyiminin defalarca kullanılması söz konusu ise, onu bir görünüm biçiminde tanımlayarak, bu görünümün çalıştırılması mümkündür. Görünümler aşağıda sıralanan nedenlerle tercih edilir: Görünümler, veri tabanına erişimi sınırlayan olanaklardır çünkü görünüm, tabloların sadece seçilen bir kısmını görüntüleyebilir. Karmaşık sorguların kolayca yapılmasını sağlar. Aynı veriyi kullanan çok sayıda görünüm tanımlanabilmektedir. 25

26 Bir görünümün yaratılabilmesi için CREATE VIEW deyimi kullanılır. Bu deyimin kullanımı aşağıda gösterildiği gibidir: CREATE VIEW görünüm AS altsorgu; Bir görünümün yaratılması esnasında kullanılacak alt sorgu içinde ORDER BY sözcüğü yer alamaz. Var olan bir görünümü yok etmek amacıyla DROP VIEW deyimi kullanılır. Bu deyimin kullanımı aşağıda gösterildiği gibidir: DROP VIEW görünüm; Var olan herhangi bir görünümün güncelleştirilmesi amacıyla, CREATE OR REPLACE VIEW deyimi kullanılır. Bu deyimin kullanımı aşağıda gösterildiği gibidir: CREATE OR RELACE VIEW görünüm [(görünüm sütunları)] AS altsorgu; Örnek: Görünüm oluşturma: Öğrencilerin danışmanlarının kimler olduğunu döndürecek bir sorguya ihtiyacımız var. Bu sorguya sık sık ihtiyaç duyacağımızı varsayarak SELECT deyimini bir görünüme dönüştürmek istiyoruz. CREATE VIEW ogda AS SELECT OGR.adsoyad AS Öğrenci, DAN.kimlik AS Danışman FROM ogrenciler OGR, danismanlar DAN WHERE OGR.sinif = DAN.sinif; Örnek: Görünümü güncelleştirme: Yarattığımız ogda sorgusu içerisinde bir güncelleştirmeye ihtiyacımız var. Sorgu sonrası dönen listenin öğrencinin adına göre alfabetik sıralanmasını istiyoruz. 26

27 CREATE OR REPLACE VIEW ogda AS SELECT OGR.adsoyad AS Öğrenci, DAN.kimlik AS Danışman FROM ogrenciler OGR, danismanlar DAN WHERE OGR.sinif = DAN.sinif ORDER BY OGR.adsoyad Örnek: Görünümü kaldırma: ogda isimli görümünü veritabanımızda daha fazla kullanmak istemiyoruz. DROP VIEW ogda; Index Yapıları (Create Index) Bir index, veri tabanı ortamında tablo gibi bir nesnedir ve ilişkili olarak kullanıldığı tablonun indexleme alanı (priamry key) olarak kullanılan kolondaki verilere göre sıralanmış biçimde işleme sokulmasını sağlar. Bir tablo indexlenmiş ise bu tablo içinde gerçekleştirilecek bir arama ya da koşullu listeleme işlemi çok daha hızlı biçimde gerçekleştirilebilecektir. CREATE INDEX belirtilen bir tablo üzerinden bir indeks oluşturur. İndekslerin birincil kullanım amacı, veri tabanı başarımını artırmaktır (ancak, uygunsuz kullanımı başarının düşmesiyle sonuçlanır). İndeks için anahtar alanları sütun isimleri olarak ya da parantez içinde yazılmış ifadeler olarak belirtilir. İndeksleme yöntemi, çok sütunlu indeksleri destekliyorsa çok sayıda alan belirtilebilir. Bir indeks alanı, tablonun satırındaki bir veya daha fazla sütun değerinden hesaplanan bir ifade olabilir. Bu özellik, bazı temel veri dönüşümlerini temel alan veriye daha hızlı erişim sağlamak için kullanılabilir. 27

28 Auto_increment, tam sayı sütunlarında kullanabileceğiniz özel bir MySQL özelliğidir. Tabloya satırlar eklerken ilgili alanı boş bıraktığımızda MySQL otomatik olarak benzersiz bir tanımlayıcı değer oluşturacaktır. Bu değer, sütundaki mevcut maksimum değerlerin bir fazla olacaktır. Her tabloda yalnızca bir tane bulunabilir. Auto_increment içeren sütunlar indexlenmelidir. Bir sütun adının ardından gelen primary key, bu sütunun tablo için birincil anahtar olduğunu belirtir. Bu sütuna yapılan girişlerin benzersiz olması gerekir (T.C. kimlik Nu., okuldaki öğrenci Nu. gibi). MySQL bu sütunu otomatik olarak indexler. Bir sütun adının ardından birincil anahtar (primary key) belirleme işlemi sadece tek sütunluk birincil anahtarlar için yapılabilir. Birincil anahtarların belirtilmesi, bu sütunlarda indexlerin oluşturulmasını sağlar. Birincil anahtarlar ya da indexler olmadan da tablo oluşturmak mümkündür. Yeni başayan MySQL kullanıcılarının karşılaştıkları sorunlardan biri çok hızlı olduğunu duymuş oldukları bu veri tabanından yeterli performans elde edememektir. Bu performans sorunuyla karşılaşmalarının nedeni, veri tabanlarında hiçbir index oluşturmamış olmalarıdır. MySQL tarafından otomatik olarak oluşturulan indexler başlangıç için işimizi görecektir. Eğer anahtar olmayan bir sütunda çok fazla sorgu çalıştırdığınızı fark ederseniz performansı artırmak için bu sütuna bir index eklemek isteyebilirsiniz. Bunu CREATE INDEX ifadesini kullanarak yapabilirsiniz. Bu ifadenin genel formu aşağıdadır. Format: CREATE [ UNIQUE ] INDEX isim ON tablo [ USING yöntem ] ( { sütun ( ifade ) } [ işleç_sınıfı ] [,...] ) [ TABLESPACE tablo_alanı ] [ WHERE dayanak ] 28

29 Parametreler: UNIQUE : İndeks oluşturulurken ve her veri eklenişinde tabloda birbirinin aynı değerler bulunmaması için sistemin sınama yapmasını sağlar. Girdilerin yinelenmesine sebep olacak bir veri girme veya güncelleme işleminin yapılmaya çalışılması bir hata üretecektir. isim : Oluşturulacak indeksin ismi (Burada şema nitelemeli isimler kullanılamaz. İndeks daima tabloyu içeren şemada oluşturulur.) tablo : İndekslenecek tablonun ismi (Şema nitelemeli olabilir.) Yöntem : İndeks için kullanılacak yöntemin ismi. Değer olarak, btree, hash, rtree ve gist verilebilir. btree öntanımlı yöntemdir. sütun : Tablo sütunun ismidir. İfade : Tablonun bir ya da daha fazla sütünu ile ilintili bir ifade. İfade, yukarıdaki söz diziminde gösterildiği gibi parantez içinde yazılmalıdır. Ancak, ifade bir işlev çağrısı biçimindeyse parantez içine alınmayabilir. işleç_sınıfı: Bir işleç sınıfının ismidir. Ayrıntılar için aşağıya bakınız. tablo_alanı: İndeksin oluşturulacağı tablo alandır. Belirtilmezse default_tablespace yapılandırma değişkeninin değeri, bu değişkene bir değer atanmamışsa veri tabanının öntanımlı tablo alanı kullanılır. dayanak : Bir kısmi indeks için kısıt ifadesi Örnekler: films tablosunun title sütunu üzerinde bir B-tree indeksi oluşturmak için: CREATE UNIQUE INDEX title_idx ON films (title); 29

30 films tablosunun code sütunu üzerinde bir indeks oluşturup bu indeksin indexspace tablo alanında kalması için: CREATE INDEX code_idx ON films(code) TABLESPACE indexspace; CREATE INDEX namex ON "Depo.Dbf" (malz_adi) İşletmede çalışan personeli brüt maaşlarına göre azalan sırada (yüksek maaştan düşük maaşa doğru) listelemek istenirse brüt alanına göre aşağıdaki gibi index oluşturmak gerekir: CREATE INDEX per_maas ON personel (brut DESC); Bir okuldaki öğrencileri öncelikle adlarına göre, aynı adda olanları soyadlarına göre, hem adı hem soyadı aynı olanların ortalamalarına göre sırlanmış olarak listelenmesi istenirse aşağıdaki komutlar kullanılmalıdır: CREATE INDEX ogr_ad_soyad_ort ON ogrenci (ad,soyad,ort); Mevcut Index in Silinmesi (Index Drop) Bir tablo üzerinde tanımlanmış herhangi bir index, o tablonun veri tabanından silinmesi ile otomatik olarak silinecektir. Tablo silinmeksizin o tablo üzerinde oluşturulan indeks içinse: DROP INDEX komutu kullanılır. Örnek: Böylece ogrenci tablosu üzerinde oluşturulmuş ogr_ad_soyad_ort adlı indeks, öğrenci tablosu veri tabanında kaldığı hâlde silinecektir. ALTER TABLE ogrenci DROP ogr_ad_soyad_ort; 30

31 MySQL için Kullanıcı Oluşturma ve Doğru Yetkilendirme MySQL için aceleyle yapacağınız kullanıcı oluşturma ve yetkilendirme işlemleri başınıza bela olabilir. Eğer sunucu üzerindeki MySQL servisinin kontrolü sizdeyse (klasik bir hosting kullanıyorsanız sizde değildir) yetkilendirmeleri doğru şekilde yapmakta fayda vardır. MySQL de Yeni Kullanıcı Oluşturma CREATE USER 'ismet'; Yukarıdaki gibi şifre belirtmeden bir kullanıcı oluşturursanız, herhangi biri ismet kullanıcısı üzerinden şifre belirtmeksizin MySQL e erişebilir durumda olacaktır. Bu kullanıcıya henüz herhangi bir veri tabanı üzerinde yetki verilmedi. Dolayısıyla MySQL e bağlanmış olsa bile veri tabanları üzerinde işlem yapamayacaktır. Bu kullanıcıya şifre vermeyi unuttuktan sonra, bir veri tabanı üzerinde yetki verirseniz sonuçlar kötü olabilir. MySQL de oluşturacağınız kullanıcılar için host parametresi de verebilirsiniz. Bu ayar kullanıcı nereden (hosttan) bağlanabilir sorusunun cevabıdır. Localhost: Sadece MySQL in bulunduğu makineden erişilir. %: Sadece dışarıdan erişilir. IP: Sadece sizin belirlediğiniz IP lerden erişilir. Örnek: Sadece MySQL in bulunduğu makineden MySQL e giriş yapabilen bir kullanıcı oluşturalım: CREATE USER 'ismetaktar'@'localhost' IDENTIFIED BY 'powerful_password'; 31

32 Kullanıcıyı yukarıdaki gibi oluşturursanız Navicat, Workbench gibi programlar kullanarak MySQL e dışardan erişemezsiniz. Sadece o makineden MySQL e erişebilirsiniz. Örnek: Sadece dışarıdan MySQL e erişebilen bir kullanıcı oluşturalım: CREATE USER 'ismetaktar'@'%' IDENTIFIED BY 'another_password'; Gördüğünüz üzere, kullanıcı adları aynı olan şifreleri farklı olan 2 farklı kullanıcı oluşturduk. Birisi powerful_password şifresi ile sadece içeriden, diğeri ise another_password şifresi ile sadece dışarıdan erişebilir durumdadır. MySQL de Kullanıcıları Listeleme Oluşturduğunuz kullanıcıları şu sorgu ile görüntüleyebilirsiniz: SELECT host, user FROM mysql.user; MySQL de Kullanıcı Silme Oluşturduğunuz kullanıcıları silmek için 2 farklı yol kullanabilirsiniz: DROP USER ismetaktar; Kullanıcıyı drop ederseniz sadece % ile oluşturulan kullanıcıyı silmiş olursunuz. Aşağıdaki gibi bir kullanım daha sağlıklı olacaktır. DROP USER 'ismetaktar'@'localhost'; DROP USER 'ismetaktar'@'%'; DROP yerine DELETE de kullanabilirsiniz. Lakin bu tavsiye edilen bir yol değil. Zaten bir kullanıcıyı DELETE edip tekrar aynı isimle yaratmaya çalıştığınızda hata oluşuyor. 32

33 -- veya DELETE FROM mysql.user WHERE user = 'ismetaktar' DELETE FROM mysql.user WHERE user = 'ismetaktar' AND host = 'localhost'; DELETE FROM mysql.user WHERE user = 'ismetaktar' AND host='%'; MySQL de Kullanıcı Yetkilendirme Kullanıcı oluşturduktan sonra, hangi kullanıcınının hangi veri tabanı ve tablolar üzerinde hangi yetkilere sahip olacaklarını belirlememiz gerekiyor. Kullanıcı oluştururken yaptığımız gibi yine hosta göre yetkilendirme yapabiliyoruz. GRANT ALL PRIVILEGES ON ismetaktardb.* TO 'ismetaktar'@'localhost'; Yukarıdaki syntax ile ismetaktar kullanıcısı local makineden bağlanarak, ismetaktardb veri tabanının tüm tablolarında (ismetaktardb.* ile ifade ediliyor) tüm işlemleri yapabilir. GRANT SELECT, INSERT, UPDATE, DELETE ON ismetaktardb.users TO 'ismetaktar'@'%'; Bu syntax ile korsan kullanıcısı dışarıdaki bir makineden bağlanarak, ismetaktardb veri tabanının tüm users tablosunda (ismetaktardb.users) sadece SELECT, INSERT, UPDATE, DELETE işlemlerini yapabilir. Yetkilendirme işlemlerini yaparken kullanıcının şifresi yoksa aşağıdaki gibi şifre de oluşturabilirsiniz. GRANT ALL PRIVILEGES ON ismetaktardb.* TO 'ismetaktar'@'localhost' IDENTIFIED BY 'password'; 33

34 Ayrıca, bir kullanıcıya atanmış tüm yetkileri görüntülemek için aşağıdaki syntaxı kullanabilirsiniz. SHOW GRANTS FOR SHOW GRANTS FOR Kullanıcı Oluşturma ve Yetkilendirme Sonuç Özet MySQL de yeni bir kullanıcı oluştururken veya yetkilendirirken şifresini belirlemeyi unutmayınız. Hostlara göre farklı şifreler veriniz. Hostlara göre farklı yetkiler belirleyiniz. Bu ufak bir detay olarak görünür fakat veri tabanına erişmek isteyen kötü niyetli insanları caydırabilir. Son olarak, en hızlı şekilde bir kullanıcı oluşturmak ve düzgün bir şekilde yetkilendirmek için aşağıdaki syntax işinize yarayabilir. CREATE USER ; GRANT ALL PRIVILEGES ON ismetaktardb.* TO IDENTIFIED BY 'password'; 34

35 Alter Komutu - Alter Table (Tablo Güncelleme) Alter Table, bir tablonun tanımını değiştirir. Veri tabanındaki satırları güncellemeye ek olarak, veri tabanı içindeki tabloların yapısını da değiştirmek gerekebilir. Bu amaç için: ALTER TABLE ifadesi kullanılır. MySQL ile bir tabloda istediğiniz kadar değişiklik yapabilirsiniz. Değiştirme cümleciklerinin her biri tablonun farklı yönlerini değiştirmek için kullanılabilir. Alter Table nin çeşitli alt kullanımları vardır. Kullanım Formatı: ALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification]... alter_specification: table_option... ADD [COLUMN] column_definition [FIRST AFTER col_name ] ADD [COLUMN] (column_definition,...) ADD {INDEX KEY} [index_name] [index_type] (index_col_name,...) ADD [CONSTRAINT [symbol]]primary KEY [index_type] (index_col_name,...) ADD [CONSTRAINT [symbol]]unique [INDEX KEY] [index_name] [index_type] (index_col_name,...) ADD [CONSTRAINT [symbol]]foreign KEY [index_name] (index_col_name,...)[reference_definition] ALTER [COLUMN] col_name {SET DEFAULT literal DROP DEFAULT} CHANGE [COLUMN] old_col_name column_definition [FIRST AFTER col_name] MODIFY [COLUMN] column_definition [FIRST AFTER col_name] DROP [COLUMN] col_name DROP PRIMARY KEY DROP {INDEX KEY} index_name DROP FOREIGN KEY fk_symbol DISABLE KEYS ENABLE KEYS RENAME [TO] new_tbl_name ORDER BY col_name [, col_name]... CONVERT TO CHARACTER SET charset_name [COLLATE collation_name] [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name] DISCARD TABLESPACE 35

36 IMPORT TABLESPACE index_col_name: col_name [(length)] [ASC DESC] index_type: USING {BTREE HASH} 36

37 Örnek: Müşteri tablosunda adların 25 karaktere kadar uzun olmasına izin verilmiş olsun. Verileri almaya başladıktan sonra bazı isimlerin çok uzun olduğu görülsün. Bu durum, sütunu 50 karakter uzunluğunda olacak şekilde değiştirilerek düzeltilebilir. ALTER TABLE musteri MODIFY ad CHAR(50) NOT NULL; Çok sık ortaya çıkan bir durum, bir sütun ekleme ihtiyacıdır. Örnek: Müşteri tablosunda müşterilerin adreslerini de almak istediğimizi düşünelim. tablomuzda böyle bir sütun önceden yoktu. Bu durumda yeni bir sütun eklenecektir. ALTER TABLE musteri ADD CHAR(50) NOT NULL; Eklenen bir sütundan kurtulma isteği de yine çok sık karşılaşılan bir durumdur. Yukarıda eklediğimiz sütunu aşağıdaki gibi silebiliriz: ALTER TABLE musteri DROP ; 37

38 Örnek: Öğrenci kayıt bilgileri için oluşturulmuş olan ogrenci tablosunun adını ogr olarak değiştirmek için şu kodlar yazılır: ALTER TABLE ogrenci RENAME ogr; Örnek: Bir kirtasiye veri tabanındaki kitap adlı alan adını book olarak değiştirelim: ALTER TABLE kirtasiye CHANGE kitap book VARCHAR(50); DML (Data Manupulation Language) - Veri İşleme Dili komutları: Insert Komutu Bir veri tabanı ile işlem yapabilmek için önce ona veri girmemiz gerekir. Bunu yapmanın en yaygın yolu da MySQL in INSERT komutudur. Bir tablodaki her satır normalde gerçek bir nesne veya ilişkiyi tarif eder ve o satırın sütun değerleri bu gerçek nesne hakkındaki bilgileri depolar. INSERT ifadesini veri tabanına veri satırları eklemek için kullanabiliriz. Kullanım Formatı: INSERT INTO tablo [(kolon, kolon,...)] VALUES (değer-1, değer-2,...) ya da INSERT INTO tablo [(kolon, kolon,...)] SELECT... 38

39 Örnekler: INSERT INTO musteri( ad, soyad, adres, sehir, posta_kodu, telefon) values('özgür', 'Dönmez', 'Arı Koop.2/2 Batıkent', 'Ankara', '06130', ' '); INSERT INTO musteri values (null, ali er, 12.cad no:3 Emek, Ankara, ); INSERT INTO musteri (musteri_no, adsoyad, sehir) values(3, Davut ÖZTÜRK, Mersin ); INSERT INTO iller (cod_il) VALUES (33); INSERT INTO eski_uyeler VALUES('M', 'Karabulut', ' ' ); INSERT INTO musteri VALUES ("M. Selcuk Batal", "61", "Refahiye", "Erzincan"); INSERT INTO mus_hesap VALUES ("1471", "100", {05/02/03} ); Bu örneklerdeki değerlerin tümü tek tırnak içine alınmıştır. MySQL deki karakter katarlarının her zaman çift veya tek tırnak içinde olması gerekir. Sayılara ve tarihlere tırnak gerekmez. Insert sözcüğünün sonuna: LOW_PRIOROTY ya da DELAYED eklenebilir. 39

40 LOW_PRIORITY anahtar sözcüğü, sistemin bekleyip verileri daha sonra tablodan okunmadıkları sırada girilebileceği anlamına gelir. DELAYED anahtar sözcüğü, girilen verilerinizin tampon belleğe alınacağı anlamına gelir. Sunucu meşgulse insert işleminin tamamlanmasını beklemek zorunda kalmadan sorgu çalıştırmaya devam edebilirsiniz. SELECT Komutu SQL'de sorgulama işlemleri, SELECT deyimi yardımıyla yerine getirilir. SELECT deyimi temel olarak üç farklı işlemi yerine getirmek için kullanılır: Seçme İşlemi (Select): Bir tablodaki satırları seçme işlemidir. Bunun için çeşitli seçme kriterleri kullanılabilir. Atma İşlemi (Projection): Bir tablodaki belirli sütunların seçilmesi işlemidir. Birleştirme İşlemi (Join): Bir tablonun içinde yer alan sütunların (ya da birden fazla tablonun belirlenen sütunlarının ilişkiler yardımıyla) birleştirilmesi. SELECT deyimi en basit biçimde şu şekilde ifade edilmektedir; SELECT [DISTINCT] { * sütun,...} FROM tablo; Tanım içinde bazı SQL anahtar kelimelerine yer verilmektedir. Bu anahtar kelimeler, SQL 'in kendi özel kelimeleridir ve aynen bu şekilde ifade edilmelidir. SELECT: SQL'in sorgulama deyimidir. FROM: Hangi tablonun sorgulanacağını ifade eder. DISTINCT: Çift kayıtları önleyen anahtar kelimedir. 40

41 Örnek: 41

42 Örnek: Örnek: 42

43 Örnek: Örnek: 43

44 Örnek: Örnek: 44

45 Verinin Sınırlandırılması Veri tabanını sorgularken, satırlara bazı kısıtlamalar koyarak sorgulanan tablonun tüm satırları yerine belirli bir kısmı geri döndürülebilir. Bu işlem için SELECT deyimi içerisinde WHERE ifadesi kullanılır. SELECT [DISTINCT] {* sütun,...} FROM tablo [WHERE KOŞUL]; Örnek: WHERE sözcüğü içinde tanımlanan kısıtlama ifadelerinde, çeşitli karşılaştırma işleçleri kullanılabilir. <> Eşit Değil <= Küçük veya Eşit >= Büyük veya Eşit < Küçük > Büyük = Eşit 45

46 Örnek: Diğer Karşılaştırma İşleçleri Şu ana kadar öğrendiğimiz karşılaştırma işleçleri dışında, bazı özel amaçlarla kullanılabilecek başka karşılaştırma işleçleri de bulunmaktadır. Şimdi bu işleçleri ve anlamlarını inceleyelim; BETWEEN... AND... : İki değer arasındaki karşılaştırma. IN (liste) : Liste içindeki değerlerle karşılaştırma. LIKE: Bir karakter katarı ile karşılaştırma. IS NULL: Bir NULL değer ile karşılaştırma. 46

47 Örnek: Örnek: 47

48 Örnek: Örnek: 48

49 Örnek: Mantıksal İşleçler Koşulları içeren karşılaştırma işlemlerinde mantıksal işleçlere de yer verilebilir. Bu işleçlerden; AND ve OR iki koşulu birlikte değerlendirmek üzere kullanılırlar. AND : Her iki koşulun değeri TRUE ise, sonuç olarak TRUE döndürür. OR : Koşulların herhangi birinin değeri TRUE ise, sonuç olarak TRUE döndürür. NOT : Bu işleci izleyen koşul FALSE ise, TRUE; TRUE ise, FALSE döndürür. 49

50 Örnek: Örnek: 50

51 Örnek: İşleçlerin İşlem Sırası WHERE sözcüğü içinde yer alan işleçler, belirli bir sıraya göre işlem görürler. Bu işleçlerin dışında, parantezler de kullanılabilir. Parantezler tüm işleçlere göre bir önceliğe sahiptir. Yani öncelikle parantez içindeki işlemler yapılır, ardından da aşağıdaki işlem sırası uygulanır. 1- Karşılaştırma İşleçleri ( <, >, <=, >= ) 2- NOT 3- AND 4- OR 51

52 Sıralama İşlemleri Tabloların satırlarının, herhangi bir sütuna göre sıralı olarak elde edilmesi söz konusu ise, SELECT deyimi ORDER BY ifadesi ile birlikte kullanılır. Örnek: 52

53 Örnek: --- En son burada kaldık.( )

54 Fonksiyonlar veya bir başka deyişle işlevler, SQL'e bazı güçlü özellikler katan olanaklar olarak değerlendirilir. SQL fonksiyonları, aynen programlama dillerinde olduğu gibi, kullanıcıya bazı özel işlemleri ve hesaplamaları otomatik olarak sağlar. Bir fonksiyon; çeşitli argümanları girdi olarak alıp bir sonuç üreten hazır bileşenlerdir. Kullanıcının, fonksiyonun adını ve gerekli argümanları tanımlaması yeterlidir.bu bilgilere dayalı olarak fonksiyon, bir sonuç döndürür (üretir). Fonksiyonlar uygulamadan uygulamaya farklılık gösterebilirler. Bu ders kapsamında MySQL veritabanında kullanılan SQL fonksiyonları kullanılacaktır. Tek Satır Fonksiyonları Tek satır fonksiyonları (genelde sadece Fonksiyon olarak adlandırılır), tablonun her bir satırına uygulanan fonksiyonlardır. Tek satır fonksiyonlarının Karakter, Tarih, Sayısal, Dönüştürme gibi birçok türü bulunmaktadır. Fonksiyonların kullanım şekli aşağıda belirtildiği gibidir. Fonksiyon_adı(sütun ifade, [argümanlar]) Fonksiyon: Herhangi bir SQL fonksiyonunu simgeler. Örneğin LCASE bir fonksiyon ismidir. Bu ismi değiştiremeyiz. Sütun: Herhangi bir tabloya ilişkin sütun adı. İfade: Herhangi bir karakter dizisi ya da hesaplama ifadesi. Argümanlar: Fonksiyonla birlikte kullanılabilecek argümanlar. Karakter Fonksiyonları Karakter fonksiyonları; karakter verileri girdi olarak alan, karakter ya da sayısal değerler döndürebilen fonksiyonlardır. Bu fonksiyonların en çok kullanılanlarını şu şekilde sıralayabiliriz; 54

55 Örnek: 55

56 Örnek: Örnek: 56

57 Örnek: Örnek: 57

58 Sayısal Fonksiyonlar Sayısal veriler üzerinde çeşitli işlemleri gerçekleştirmek üzere özel fonksiyonlar bulunmaktadır. Sayısal fonksiyonlar, sayısal veriler alır ve yine sayısal sonuçlar üretirler. Bu fonksiyonların en çok kullanılanlarını şu şekilde sıralayabiliriz; Örnek: 58

59 Örnek: 59

60 Tarih ve Saat Fonksiyonları Tarih ve saat işlemlerinde kullanılan birçok fonksiyon vardır. Bu fonksiyonların en çok kullanılanlarından biri NOW fonksiyonudur. NOW fonksiyonunun herhangi bir argümanı bulunmamaktadır. O andaki tarih ve zaman bilgisini elde etmek amacıyla kullanılır. O anki saat ve tarihi ayrı ayrı alabileceğiniz fonksiyonlar aşağıdaki tabloda yer almaktadır. Dönüştürme Fonksiyonları Karakter, sayısal ve tarih verilerinin birbirlerine dönüştürülmesi ve özellikle biçimlendirme işlemlerinde çeşitli fonksiyonlardan yararlanılır. Bu fonksiyonlardan tarih ve saat bilgisinin formatlanmasında kullanılan DATEFORMAT fonksiyonunun kullanımı aşağıda yer almaktadır. 60

61 Çoklu Satır Fonksiyonları Tek satır fonksiyonları, tablonun bir satırına uygulanabiliyor ve buna karşılık gelen bir sonuç satırı elde edilebiliyordu. Bir grup satıra bir fonksiyonun uygulanması söz konusu ise; "çoklu satır" ya da bir başka deyişle "grup fonksiyonlarından" söz edilir. Grup fonksiyonları tablonun tüm satırlarına uygulanabildiği gibi, GROUP BY sözcüğü yardımıyla da alt gruplara uygulanabilir. Bir tablonun tüm satırları için grup fonksiyonu uygulanacak ise, SELECT deyimi aşağıda belirtildiği biçimde kullanılır; 61

62 Örnek: Örnek: 62

63 Örnek: Örnek: 63

64 Örnek: Örnek: 64

65 Alt Sorgular Çoklu Tablolar (Tabloların Birleştirilmesi) Görünümler Alt Sorgular Uygulamada, bir sorgudan elde edilen sonuç, bir diğer sorguyu ilgilendirebilir. Bu gibi durumlarda alt sorgular ya da bir başka deyişleiç sorgular kullanılır. Alt sorgu, SELECT deyimi içerisinde ikinci bir SELECT deyiminin kullanılması ile oluşturulur. İkinci select deyimi parantez içinde yer almalıdır. Alt sorgunun kullanım şekli aşağıda yer almaktadır: Örnek: 65

66 Çoklu Tablolar (Tabloların Birleştirilmesi) İlişkisel veri tabanı yönetim sistemlerinde bazen ilişkili veriler birden fazla tabloya bölünebilir ve bu tablolarda bulunan verilere aynı anda ihtiyacımız olabilir. Bu gibi durumlarda ilgili tabloları birleştirerek sorgulama yapmak gerekir. Birden fazla tablonun ele alınarak, birleştirilmesi ve tek bir sonucun üretilmesi söz konusu olabilir. Bu işleme "birleştirme denir. Birleştirme işlemi, tabloların aynı değerler içeren sütunları kullanılmak suretiyle yapılır. Birleştirme işlemi şu şekilde tanımlanır; Sütun isimlerinin ön tarafına, tablo isimlerinin yazılması yararlı olacaktır. Özellikle her iki tablodaki sütun isimleri aynı ise, söz konusu sütunların hangi tablodan geldiğini belirtmek mümkün olamayacak ve bu durumda SELECT deyimi çalışmayacaktır. Örnek: 66

67 Örnek: Görünümler Bir ya da daha fazla tablonun mantıksal alt kümelerini oluşturmak için görünümlerden yararlanılır. Görünümler, bir tabloya dayalı mantıksal bir tablo olarak değerlen dirilir. Görünüm, tablolar gibi veriyi fiziksel olarak saklamaz. Görünümler, saklanmış (depolanmış) SELECT deyimi olarak değerlendirilir. Bir SELECT deyiminin defalarca kullanılması söz konusu ise, onu bir görünüm biçiminde tanımlayarak, bu görünümün çalıştırılması mümkündür. Görünümler aşağıda sıralanan nedenlerle tercih edilir: Görünümler, veri tabanına erişimi sınırlayan olanaklardır çünkü görünüm, tabloların sadece seçilen bir kısmını görüntüleyebilir. 67

68 Karmaşık sorguların kolayca yapılmasını sağlar. Aynı veriyi kullanan çok sayıda görünüm tanımlanabilmektedir. Görünüm Oluşturma Öğrencilerin danışmanlarının kimler olduğunu döndürecek bir sorguya ihtiyacımız var. Bu sorguya sık sık ihtiyaç duyacağımızı varsayarak SELECT deyimini bir görünüme dönüştürmek istiyoruz. SQL cümleciği aşağıdaki gibi olmalıdır: 68

69 Görünümü Güncelleştirme Yarattığımız ogda sorgusu içerisinde bir güncelleştirmeye ihtiyacımız var. Sorgu sonrası dönen listenin öğrencinin adına göre alfabetik sıralanmasını istiyoruz. SQL cümleciği aşağıdaki gibi olmalıdır: Görünümü Kaldırma ogda isimli görümünü veritabanımızda daha fazla kullanmak istemiyoruz. SQL cümleciği aşağıdaki gibi olmalıdır: 69

Durhan GABRALI Veritabanı Organizasyonu Dersi (11B)

Durhan GABRALI Veritabanı Organizasyonu Dersi (11B) VERİTABANI ORGANİZASYONU Veri nedir? Veri(data) ilişkide olduğumuz(ilgimiz olan) dünyanın durumlarıdır. O gün mağazaya kaç kişi geldiği, dışarıda havanın sıcaklığı, boyunuzun uzunluğu, göz renginiz veya

Detaylı

Veri Tabanı Yönetim Sistemleri Bölüm - 7

Veri Tabanı Yönetim Sistemleri Bölüm - 7 Veri Tabanı Yönetim Sistemleri Bölüm - 7 İçerik Alt Sorgular Çoklu Tablolar (Tabloların Birleştirilmesi) Görünümler R. Orçun Madran 2 Alt Sorgular Uygulamada, bir sorgudan elde edilen sonuç, bir diğer

Detaylı

VERİTABANI Veritabanı Yönetimi

VERİTABANI Veritabanı Yönetimi VERİTABANI Veritabanı Yönetimi YAPILANDIRILMIŞ SORGULAMA DİLİ (SQL) Veritabanı yönetimi, veritabanının yapısal özelliklerini belirtmek ve değiştirmek, veritabanına kullanıcı erişimlerini ve yetkilerini

Detaylı

İNTERNET PROGRAMCILIĞI 2 11. HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

İNTERNET PROGRAMCILIĞI 2 11. HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme İNTERNET PROGRAMCILIĞI 2 11. HAFTA İçindekiler Veritabanı Oluşturma, Silme MYSQL ile VERİTABANI İŞLEMLERİ - 1 Tablo Oluşturma, Silme Tabloya Bilgi Girme Veritabanı Sorgulamaları Hedefler Mysql komutları

Detaylı

Bölüm 4: DDL Veri Tanımlama Dili

Bölüm 4: DDL Veri Tanımlama Dili Bölüm 4: DDL Veri Tanımlama Dili -43- Dr. Serkan DİŞLİTAŞ DDL (Data Definition Language Veri Tanımlama Dili : Bu kategorideki SQL komutları ile veritabanları, tablo, görünüm ve indekslerin yaratılması,

Detaylı

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz. 1 PHP ile Veritabanı İşlemleri Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz. 1.1 Veritabanı Nedir? Veritabanı

Detaylı

VERİTABANI ORGANİZASYONU

VERİTABANI ORGANİZASYONU VERİTABANI ORGANİZASYONU Veri nedir? Olgu, kavram ya da komutların, iletişim, yorum ve işlem için elverişli biçimsel gösterimidir. Veriler ölçüm, sayım, deney, gözlem ya da araştırma yolu ile elde edilmektedir.

Detaylı

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1 5 SQL- Yapısal Sorgulama Dili Veritabanı 1 SQL- Yapısal Sorgulama Dili SQL ifadeleri yapısal olarak üç gruba ayrılır. Veri Tanımlama Dili (DDL - Data Definition Language) Veri İşleme Dili (DML - Data Manipulation

Detaylı

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır. 18 SQL SORGU DİLİ SQL (Structured Query Language) yapısal sorgu dili, veritabanı yönetim sistemlerinin standart programlama dili olarak bilinmektedir. SQL dilinin Access içinde sorgu pencerelerinde veya

Detaylı

Veri Tabanı Yönetim Sistemleri Bölüm - 6

Veri Tabanı Yönetim Sistemleri Bölüm - 6 Veri Tabanı Yönetim Sistemleri Bölüm - 6 İçerik Fonksiyonlar Tek Satır Fonksiyonlar Karakter Fonksiyonlar Sayısal Fonksiyonlar Tarih ve Saat Fonksiyonları Dönüştürücü Fonksiyonlar Çoklu Satır Fonksiyonlar

Detaylı

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı Data Programming SQL Language Elbistan Meslek Yüksek Okulu 2015 2016 Bahar Yarıyılı Öğr.Gör. Murat KEÇECĠOĞLU 15 Mar 2016 1 SQL deyimleri veritabanları üzerinde çeşitli işlemleri yerine getirirler. Veritabanından

Detaylı

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu SQL'DE VERİ İŞLEME KOMUTLARI SQL'de verileri işlemek için kullanılan komutlara DML (Data Manipulation Language Veri İşleme Dili) denilmektedir. Bu komutlar ile oluşturulan ifadeler tablolara kayıt eklemek,

Detaylı

SORGULAR. Öğr.Gör.Volkan Altıntaş

SORGULAR. Öğr.Gör.Volkan Altıntaş SORGULAR Öğr.Gör.Volkan Altıntaş SORGULAR VE ÇEŞİTLERİ Seçme Sorguları: En sık kullanılan sorgu türüdür. Seçme sorguları, bilgileri veri sayfası görünümü nde gösteren veri tabanı nesnesi türüdür. Sorgu,

Detaylı

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler SQL'e Giriş SQL komutları kullanılarak aşağıdaki işlemler yapılabilir: Veritabanı nesnelerinin oluşturulması ve bu nesnelerle ilgili işlemlerin yapılması Bilgilerin istenilen koşullara göre görüntülenmesi

Detaylı

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır. SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır. Bu dersimizde biz Microsoft SQL Server veritabanı sistemini kullanmayı öğreneceğiz. SQL Nedir? SQL Structured Query Language

Detaylı

İnternet Programcılığı

İnternet Programcılığı 1 PHP le Ver tabanı İşlemler Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz. 1.1 Veritabanı Nedir? Veritabanı

Detaylı

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim' Bu Derste Öğrenecekleriniz: 1- Veri Tabanı Adı Değiştirme 2- Nesnelerin Adını Değiştirme a. Tablo Adı Değiştirme b. Alan Adı Değiştirme c. Constraint (Kısıtlama) Adı Değiştirme 3- Tablo Düzenleme Komutları

Detaylı

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU Elbistan Meslek Yüksek Okulu 2015 2016 GÜZ Yarıyılı 28-29 Ara. 2015 Öğr. Gör. Murat KEÇECĠOĞLU Indexler İndeks, tablolardan veri çekmek için gerekli sorgular çalıştırılırken gereken süreyi azaltmak amacıyla

Detaylı

Veri Tabanı Hafta Dersi

Veri Tabanı Hafta Dersi Veri Tabanı - 1 7. Hafta Dersi Dersin Hedefleri SQL Yapısal Sorgulama Dili Veri Tanımlama Dili (DDL) Create Alert Drop Veri tanımlama dili verinin ne olduğundan çok verinin tipi ile ilgilenir. Veri tabanı

Detaylı

Veri Tabanı Yönetim Sistemleri Bölüm - 5

Veri Tabanı Yönetim Sistemleri Bölüm - 5 Veri Tabanı Yönetim Sistemleri Bölüm - 5 İçerik SELECT deyimi (devam) Verinin Sınırlandırılması (WHERE) Karşılaştırma İşleçleri (=, >, =,

Detaylı

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Genel SQL SQL çok yüksek seviyeli bir dildir. Biraz ingilizce bilgisi gerektirir. Programlama dillerine göre öğrenilmesi çok daha kolaydır. Çünkü programlama dillerindeki

Detaylı

SQL e Giriş. Uzm. Murat YAZICI

SQL e Giriş. Uzm. Murat YAZICI SQL e Giriş Uzm. Murat YAZICI SQL (Structured Query Language) - SQL Türkçe de Yapısal Sorgulama Dili anlamına gelmektedir ve ilişkisel veritabanlarında çok geniş bir kullanım alanına sahiptir. - SQL ile

Detaylı

Veritabanı. SQL (Structured Query Language)

Veritabanı. SQL (Structured Query Language) Veritabanı SQL (Structured Query Language) SQL (Structured Query Language) SQL, ilişkisel veritabanlarındaki bilgileri sorgulamak için kullanılan dildir. SQL, bütün kullanıcıların ve uygulamaların veritabanına

Detaylı

Mysql Veritabanı Komutları

Mysql Veritabanı Komutları Mysql Veritabanı Komutları Mysql Veri Tabanı Komutları Hazırlayan : M. Başar ACAROĞLU Kaynaklar: http://www.hrzafer.com/sql-dersleri http://www.w3schools.com/sql/default.asp Veri Tabanı Nedir? Mysql Veritabanı

Detaylı

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim' Bu Derste Öğrenecekleriniz: 1- Veri Tabanı Adı Değiştirme 2- Nesnelerin Adını Değiştirme a. Tablo Adı Değiştirme b. Alan Adı Değiştirme c. Constraint (Kısıtlama) Adı Değiştirme 3- Tablo Düzenleme Komutları

Detaylı

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon ORACLE GİRİŞ Oracle ile SQL Server ın karşılaştıralım. 1 Oracleda veritabanı yerine kullanıcı oluşturulur. Kullanıcılar veritabanı gibi davranır. 2 Tablo oluşturma, değiştirme ve silme kodları aynı. 3

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ I

VERİ TABANI YÖNETİM SİSTEMLERİ I BÖLÜM 8 8. TEMEL SQL KOMUTLARI-II 8.1. SELECT (Seç) Komutu Veri tabanındaki tablo veya tablolardan istenilen özellikteki verileri seçip listeleme için kullanılan komuttur. Genel kullanımı aşağıdaki gibidir.

Detaylı

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler SQL'de Veri İşleme Komutları SQL'de verileri işlemek için kullanılan komutlara DML (Data Manipulation Language Veri İşleme Dili) denilmektedir. Bu komutlar ile oluşturulan ifadeler tablolara kayıt eklemek,

Detaylı

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com YAPISAL SORGULAMA DİLİ BARIŞ ARIBURNU barisariburnu.com barisariburnu.@gmail.com SQL, insanların veritabanı sistemleri ile konuşmasını sağlayan popüler bir dildir. SQL, tüm veritabanı programlarında kullanılabilir.

Detaylı

BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Dersin Planı İlişkisel Cebir SQL e Giriş İlişkisel Cebir (Relational

Detaylı

SQL Komutları (2) Uzm. Murat YAZICI

SQL Komutları (2) Uzm. Murat YAZICI SQL Komutları (2) Uzm. Murat YAZICI Sıralama Sıralama işlemi için SELECT ifadesinde ORDER BY kullanılır. Bu ifadede ASC kelimesi kullanılırsa sıralama küçükten büyüğe doğru (A-Z), DESC kullanılırsa büyükten

Detaylı

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili) SQL'e Giriş SQL komutları kullanılarak aşağıdaki işlemler yapılabilir: Veritabanı nesnelerinin oluşturulması ve bu nesnelerle ilgili işlemlerin yapılması Bilgilerin istenilen koşullara göre görüntülenmesi

Detaylı

SQL Kod ile Tablo Oluşturma

SQL Kod ile Tablo Oluşturma SQL Kod ile Tablo Oluşturma Aşağıdaki SQL kodları Veri tabanı hazırlama programında yazılıp çalıştırıldığı zaman PERSONEL adında bir tablo oluşturulur ve bu tablonun sütunları Personel_no, Adı, Soyadı

Detaylı

Oracle da kullanılan veri tipleri:

Oracle da kullanılan veri tipleri: ORACLE A GİRİŞ Oracle ile SQL Server ı karşılaştıralım, 1 Oracle da veritabanı yerine kullanıcı oluşturulur. Kullanıcılar veritabanı gibi davranır. 2 Tablo oluşturma, yapısını değiştirme, silme kodları

Detaylı

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız. Bu Derste Öğrenecekleriniz: 1- Basit Sorgulamalar a. Tablodan tüm alanları sorgulama b. Tablodan alanları belirterek sorgulama c. Tekrarlı satırları önleme d. Belirli sayıda veya oranda sorgulama yapma

Detaylı

Veri Tabanı Tasarım ve Yönetimi

Veri Tabanı Tasarım ve Yönetimi SAKARYA ÜNİVERSİTESİ Veri Tabanı Tasarım ve Yönetimi Hafta 5 Prof. Dr. Ümit KOCABIÇAK Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir. "Uzaktan Öğretim" tekniğine uygun

Detaylı

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language) Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language) Konular Yapısal SQL Komutları Gruplama İşlemi SQL Fonksiyonları Kaynaklar 2 SQL (Structured Query Language) SQL Carlos

Detaylı

Veritabanına Uygulanması

Veritabanına Uygulanması Add, Alter Drop, Alter Change, Alter Sql komutları ve açıklamaları CREATE CREATE TABLE Üzerinde çalışma yapılan veritabanı içerisinde yeni bir tablonun oluşturulmasını sağlar. CREATE TABLE tablo_adı (alan_adı1

Detaylı

Veri Tabanı Programlamaya Giriş

Veri Tabanı Programlamaya Giriş Veri Tabanı Programlamaya Giriş Kitap özeti Veri Tabanı Programlamaya Giriş SQL insanların veritabanı sistemleri ile konuşmasını sağlayan popüler bir dildir. Bu dil sayesinde, bir veritabanından kayıtları

Detaylı

VERİTABANI. SQL (Structured Query Language)

VERİTABANI. SQL (Structured Query Language) VERİTABANI SQL (Structured Query Language) SQL'de Gruplama Bir tablonun satırları gruplara ayrılarak fonksiyonların bunlara uygulanması mümkündür. Gruplara ayırmak için SELECT deyimi içerisinde GROUP BY

Detaylı

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model) EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model) Dr. Dilek Küçük İlişkisel Model [1] Günümüzde en yaygın kullanılan veri tabanı modelidir. Bir ilişkisel veri tabanı bir veya

Detaylı

SORGULAR VE ÇEŞİTLERİ II

SORGULAR VE ÇEŞİTLERİ II Ünite 8 SORGULAR VE ÇEŞİTLERİ II Öğr. Gör. Kemal ÖZCAN Bu ünitede, Sorgular ve Çeşitleri konusu ele alınacaktır. Yapılacaklar Burada yazılan SQL ifadeleri MS SQL SERVER, ORACLE ve MySQL veritabanı sistemlerinin

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ

VERİ TABANI YÖNETİM SİSTEMLERİ VERİ TABANI YÖNETİM SİSTEMLERİ Veri Tabanı Nedir? Sistematik erişim imkânı olan, yönetilebilir, güncellenebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir. Bir kuruluşa

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ I

VERİ TABANI YÖNETİM SİSTEMLERİ I BÖLÜM 7 7. TEMEL SQL KOMUTLARI-I SQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir. SQL herhangi bir veri tabanı ortamında

Detaylı

Veri Tabanı Yönetim Sistemleri Bölüm - 4

Veri Tabanı Yönetim Sistemleri Bölüm - 4 Veri Tabanı Yönetim Sistemleri Bölüm - 4 İçerik SQL e Giriş. SQL Yapısal Sorgulama Dili. Temel SQL Komutları: Sorgulama İşlemleri SELECT deyiminin temel yapısı Seçme İşlemi Atma İşlemi Aritmetik İfadelerin

Detaylı

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER VERİTABANI SORGULARI İÇİNDEKİLER Select İfadesi Insert İfadesi Update İfadesi Delete İfadesi Verileri Sıralamak Verileri Gruplandırmak Veriler Üzerinde Arama Yapmak NESNE TABANLI PROGRAMLAMA I Uzm. Orhan

Detaylı

BİLİŞİM TEKNOLOJİLERİ

BİLİŞİM TEKNOLOJİLERİ T.C. MİLLÎ EĞİTİM BAKANLIĞI BİLİŞİM TEKNOLOJİLERİ VERİ TABANI YÖNETİMSEL FONKSİYONLARI Ankara, 2013 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında yer alan

Detaylı

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir. VERİ BÜTÜNLÜĞÜ VTYS lerde veri bütünlüğünü sağlamanın iki temel yolu vardır; Tanımlanabilir veri bütünlüğü ve prosedürel veri bütünlüğü. Tanımlanabilir veri bütünlüğü, tanımlanan nesnelerin kendi özellikleri

Detaylı

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir. TRIGGER Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir. DML ve DDL trigger lar olarak ikiye ayırmak mümkündür. DML (Data Manipulation

Detaylı

SQL Query and Table Application

SQL Query and Table Application SQL Query and Table Application Elbistan Meslek Yüksek Okulu 2012 2013 Bahar Yarıyılı Öğr. Gör. Murat KEÇECİOĞLU 24-25 Nis. 2013 Sorgulama İşlemleri SQL de sorgulama işlemleri SELECT deyimi yardımıyla

Detaylı

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler Genel Kavramlar Veri Nedir? Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar Veri Tabanı Nedir? Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler Veritabanı Yönetim Sistemi (DBMS)Nedir?

Detaylı

Veri Tabanı SQL Server ve Management Studio kurulum linkleri: https://www.microsoft.com/en-us/download/details.aspx?id=42299

Veri Tabanı SQL Server ve Management Studio kurulum linkleri: https://www.microsoft.com/en-us/download/details.aspx?id=42299 Veri Tabanı 1 1. SQL Server ve Management Studio kurulum linkleri: https://www.microsoft.com/en-us/download/details.aspx?id=42299 2. SQL Management Studio açılış ekranı: Server Type: reporting, analysis

Detaylı

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri. 1.2. Kısıtlamalar (Constraints)

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri. 1.2. Kısıtlamalar (Constraints) Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri 1.1. Tablo Oluşturma 1.2. Tablo Oluşturmada Kısıtlamalar Constraints 1.3. Tablo Silme a. NULL, NOT NULL b. PRIMARY KEY c. UNIQUE d. FOREIGN KEY e. CHECK f.

Detaylı

ACCESS PLATFORMUNDA SQL

ACCESS PLATFORMUNDA SQL ACCESS PLATFORMUNDA SQL (STRUCTURED QUERY LANGUAGE) KODLAMA ÖRNEKLERİ DISTINCT : Bir alanda birbirinin aynı kayıtlar bulunabilir. Öğrenciler tablosundaki aynı isimde öğrencilerin bulunması durumunda aynı

Detaylı

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

VERĐTABANI YÖNETĐM SĐSTEMLERĐ VERĐTABANI YÖNETĐM SĐSTEMLERĐ Öğr.Gör.Sedat Telçeken ANADOLU ÜNĐVERSĐTESĐ FEN FAKÜLTESĐ MATEMATĐK BÖLÜMÜ 2005 2006 Bahar Dönemi D M L Bilindiği üzere SQL tablolar üzerinde sorgulama yapar. Bu sorgular

Detaylı

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri 1.1. Tablo Oluşturma 1.2. Tablo Oluşturmada Kısıtlamalar Constraints 1.3. Tablo Silme a. NULL, NOT NULL b. PRIMARY KEY c. UNIQUE d. FOREIGN KEY e. CHECK f.

Detaylı

Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş

Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş -1- Dr. Serkan DİŞLİTAŞ 1.1. Veri ve Bilgi (Data & Information) Hesaplama, saklama gibi çeşitli işlemler amacıyla bilgisayara verilen sayı, yazı, resim, ses,

Detaylı

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011 Veritabanına Giriş Oğuzhan Ceylan 19 Eylül 2011 Outline Veritabanı MYSQL Mysql Sorgu Komutları Bir veritabanı yaratmak ve kullanmak Veritabanı Veritabanı Verittabanı hangi alanlarda kullanılıyor. Web sitesi

Detaylı

1 Temel Kavramlar. Veritabanı 1

1 Temel Kavramlar. Veritabanı 1 1 Temel Kavramlar Veritabanı 1 Veri Saklama Gerekliliği Bilgisayarların ilk bulunduğu yıllardan itibaren veri saklama tüm kurum ve kuruluşlarda kullanılmaktadır. Veri saklamada kullanılan yöntemler; Geleneksel

Detaylı

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301) Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301) GENEL DERS BİLGİLERİ Öğretim Elemanı : Öğr. Gör. Erdal GÜVENOĞLU Ofis : MUH 313 Ofis Saatleri : Pazartesi: 10.00-12.00,

Detaylı

VERİTABANI ve YÖNETİMİ

VERİTABANI ve YÖNETİMİ VERİTABANI ve YÖNETİMİ Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü 2 BÖLÜM -7- VERİLERİ GRUPLAYARAK ANALİZ ETMEK 3 Genel Bakış Grup fonksiyonlarının tanımlanması, Gruplama işlemlerini, Gruplama

Detaylı

MOBİL UYGULAMA GELİŞTİRME

MOBİL UYGULAMA GELİŞTİRME MOBİL UYGULAMA GELİŞTİRME PELİN YILDIRIM FATMA BOZYİĞİT YZM 3214 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Bu Derste Veri Saklama 2 Veri Saklama Veri Saklama her appnin ihtiyaci

Detaylı

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL-2

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL-2 SUNGURLU MESLEK YÜKSEKOKULU BİLGİSAYAR TEKNOLOJİLERİ/BİLGİSAYAR PROGRAMCILIĞI 2017-2018 GÜZ DÖNEMİ VERİ TABANI YÖNETİM SİSTEMLERİ-II 5. T-SQL-2 Öğr. Gör. Saliha Kevser KAVUNCU Sql Üç Alt Grupta İncelenir:

Detaylı

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. DAO İLE SQL KOMUTLARI Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. SQL-1 SELECT En basit SQL cümleciği oluşturmak için SELECT sözcüğü

Detaylı

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur. TEMEL SQL SORGU ÖRNEKLERİ Sorgu İle Veritabanı Oluşturma create database veritabanı_adı Örnek : create database db_okul Yukarıdaki sorguyu çalıştırdığımızda db_okul adında bir veritabanı oluşturulur. Örnek:

Detaylı

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme Veritabanı Tasarımı Kullanıcı Erişimini Kontrol Etme Konular Nesne ayrıcalıkları ve sistem ayrıcalıkları arasındaki farkı karşılaştırma Bir kullanıcının bir veritabanınaerişimini etkinleştirmek için gerekli

Detaylı

Oracle Database 11g: Introduction to SQL

Oracle Database 11g: Introduction to SQL Oracle Database 11g: Introduction to SQL Mehmet Salih DEVECI GTECH-Kıdemli Veritabanı Yöneticisi Mehmetsalih.deveci@gtech.com.tr BÖLÜM- 1: SQL E GİRİŞ SELECT ifadesinin kabiliyetlerinin ortaya çıkarılması

Detaylı

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com SQL Deyimleri Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com SQL NEDİR? SQL bir veri tabanıyla iletişim kurmak için kullanılır. ANSI standardına göre ilişkisel veri tabanı yönetim sistemlerinin standart dilidir.

Detaylı

T.C. MİLLİ EĞİTİM BAKANLIĞI MEGEP (MESLEKÎ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) BİLİŞİM TEKNOLOJİLERİ INTERNET PROGRAMCILIĞI - 5

T.C. MİLLİ EĞİTİM BAKANLIĞI MEGEP (MESLEKÎ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) BİLİŞİM TEKNOLOJİLERİ INTERNET PROGRAMCILIĞI - 5 T.C. MİLLİ EĞİTİM BAKANLIĞI MEGEP (MESLEKÎ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) BİLİŞİM TEKNOLOJİLERİ INTERNET PROGRAMCILIĞI - 5 ANKARA 2008 Milli Eğitim Bakanlığı tarafından geliştirilen

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ I

VERİ TABANI YÖNETİM SİSTEMLERİ I BÖLÜM 12 12. SQL de YÖNETİMSEL FONKSİYONLAR 12.1. VIEWS ( Tablo Görünümü) Tablo görünümleri veri tabanında tanımı olan tablolardan sorgulama sonucunda elde edilir. Tabloların tersine fiziksel bir yer tutmazlar.

Detaylı

Veritabanı Uygulamaları Tasarımı

Veritabanı Uygulamaları Tasarımı Veritabanı Uygulamaları Tasarımı Veri Tabanı Veritabanı yada ingilizce database kavramı, verilerin belirli bir düzene göre depolandığı sistemlere verilen genel bir isimdir. Günümüzde özel veya kamu kuruluşların

Detaylı

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI ELIF KIOTZEOGLOU 0510130077 RESUL MURAD 0510120082 MERT PACOLARI 0510120083 SQL SQL,(İngilizce "Structured Query Language", Türkçe: Yapılandırılmış Sorgu Dili) verileri yönetmek ve tasarlamak için kullanılan

Detaylı

Veritabanı Tasarımı. Tablo Değiştirme

Veritabanı Tasarımı. Tablo Değiştirme Veritabanı Tasarımı Tablo Değiştirme Konular Tabloyu değiştirme neden önemlidir açıklama ALTER, DROP, RENAME ve TRUNCATE DDL komutlarının etkisini tablolar ve sütunlar üzerinde görme ALTER TABLE komutlarıadd,

Detaylı

VERİ TABANI ve YÖNETİMİ

VERİ TABANI ve YÖNETİMİ VERİ TABANI ve YÖNETİMİ Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü 2 BÖLÜM -12- TETİKLEYİCİ (TRIGGER) 3 Giriş Trigger lar Trigger lar Ne Zaman Kullanılmalıdır? Klasik Trigger ların Özellikleri

Detaylı

Veri Tabanı-I 1.Hafta

Veri Tabanı-I 1.Hafta Veri Tabanı-I 1.Hafta 2010-2011 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Meslek Yüksekokulu Burdur 2011 Muhammer İLKUÇAR 1 Veri ve Veri Tabanı Nedir? Veri Bir anlamı olan ve kaydedilebilen

Detaylı

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Veritabanı Tasarımı NOT NULL ve UNIQUE Kısıtlamaları Tanımlama NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Konular Kısıtlama terimini veri bütünlüğü ile ilişkilendirerek tanımlama Sütun seviyesinde ve tablo

Detaylı

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME Ana veritabanı nesnelerini sınıflandırmak Tablo yapısını inceleme Tablo sütunlarının veri tiplerini listeleme Basit bir tablo oluşturma Constraint oluşturma Şema

Detaylı

«BM364» Veritabanı Uygulamaları

«BM364» Veritabanı Uygulamaları HAFTA 3 Veritabanı Tasarımı" Yaşar GÖZÜDELİ ygozudeli@verivizyon.com http://blog.verivizyon.com/ygozudeli «BM364» Veritabanı Uygulamaları Konu Akışı Veritabanı Tasarımı Kuramlar Veritabanı Nesnesini Yapılandırmak

Detaylı

Bilgisayar Uygulamaları. MySql

Bilgisayar Uygulamaları. MySql MySql MySql,; Oracle, Progress, MsSql, PostgreSql gibi veri tabanı programıdır. Kullanılan dil SQL (Structured Query Language) yapısal sorgulama dilidir. Lisansı GNU General Public License olarak bilinen

Detaylı

BÖLÜM- 9: KULLANICI ERİŞİMLERİNİ YÖNETMEK

BÖLÜM- 9: KULLANICI ERİŞİMLERİNİ YÖNETMEK BÖLÜM- 9: KULLANICI ERİŞİMLERİNİ YÖNETMEK Sistem yetkileri Nesne yetkileri Tablolar uzerinde verilebilecek yetkiler Roller Roller ve yetkiler aras.ndaki farklar KULLANICI ERİŞİMLERİ Kullanıcılar bir Username

Detaylı

VERİTABANI Veritabanı Sorgulama

VERİTABANI Veritabanı Sorgulama VERİTABANI Veritabanı Sorgulama VERİ SORGULAMA DİLİ (DATA QUERY LANGUAGE) Veritabanı platformunda veri sorgulamak için geliştirilmiş en temel araç SQL (Structured Query Language)'dir. SQL'in veritabanı

Detaylı

Veritabanı Tasarımı. DML İşlemleri ve Görünümler

Veritabanı Tasarımı. DML İşlemleri ve Görünümler Veritabanı Tasarımı DML İşlemleri ve Görünümler Konular Basit bir görünümde DML işlemlerini gerçekleştiren bir sorgu yazma ve çalıştırma DML işlemleri kullanarak bir görünümü değiştirme yeteneğini kısıtlayan

Detaylı

KISITLAMALAR (CONSTRAINT)

KISITLAMALAR (CONSTRAINT) KISITLAMALAR (CONSTRAINT) Tablo alanlarına veri girişini kontrol etmeyi amaçlayan düzenlemelerdir. Bir alana girilen değerleri sınırlayan bu düzenlemeler kullanıcı hataları açısından önemlidir. Verilerin

Detaylı

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir. SQL SELECT CÜMLELERİ Oracle birçok kullanışlı ve güçlü özellikleri olan bir veritabanıdır. Bu özelliklerinin birçoğu SQL ile ilgilidir. VTYS lerinin çoğunluğunda veriler ile çalışmak için SQL kullanılmaktadır.

Detaylı

Nesneler üzerinde değişiklik yapmak için kullanılır. Veri tabanındaki nesnelerin oluşturulabilmesi için CREATE komutu kullanılır.

Nesneler üzerinde değişiklik yapmak için kullanılır. Veri tabanındaki nesnelerin oluşturulabilmesi için CREATE komutu kullanılır. Transact SQL Kavramı Microsoft'un veri tabanı sorgulama dilidir. Transact-SQL, SQL Server ve istemci(client) arasında iletişimi sağlayan SQL sorgulama dilinin gelişmiş bir versiyonudur. Transact Structured

Detaylı

Coğrafi Bilgi Sistemlerine Giriş. Ünite 5 - Veri Tabanı Yönetim Sistemleri

Coğrafi Bilgi Sistemlerine Giriş. Ünite 5 - Veri Tabanı Yönetim Sistemleri Coğrafi Bilgi Sistemlerine Giriş Ünite 5 - Veri Tabanı Yönetim Sistemleri İçerik Temel kavramlar Veri tabanı modelleri Normalizasyon Coğrafi Bilgi Sistemlerinde veri tabanı yönetimi Temel kavramlar Veri

Detaylı

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU Elbistan Meslek Yüksek Okulu 2015 2016 GÜZ Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU GÖRÜNÜM Görünüm (view), Sorguları basitleştirmek, Erişim izinlerini düzenlemek, Farklı sunuculardaki benzer verileri karşılaştırmak

Detaylı

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL SUNGURLU MESLEK YÜKSEKOKULU BİLGİSAYAR TEKNOLOJİLERİ/BİLGİSAYAR PROGRAMCILIĞI 2017-2018 GÜZ DÖNEMİ VERİ TABANI YÖNETİM SİSTEMLERİ-II 5. T-SQL Öğr. Gör. Saliha Kevser KAVUNCU 1. TRANSACT SQL KAVRAMI Microsoft'un

Detaylı

UZAKTAN EĞİTİM MERKEZİ

UZAKTAN EĞİTİM MERKEZİ ÜNİTE 2 VERİ TABANI İÇİNDEKİLER Veri Tabanı Veri Tabanı İle İlgili Temel Kavramlar Tablo Alan Sorgu Veri Tabanı Yapısı BAYBURT ÜNİVERSİTESİ UZAKTAN EĞİTİM MERKEZİ BİLGİSAYAR II HEDEFLER Veri tabanı kavramını

Detaylı

Veri Tabanı II Alt Sorgular

Veri Tabanı II Alt Sorgular Veri Tabanı II Alt Sorgular Alt Sorgular Alt sorgular bir SQL sorgusunun içerisinde başka bir SQL sorgusu kullanılarak oluşturulan SQL ifadeleridir. Çoğunlukla SQL sorgusunun WHERE ve HAVING kısımlarında

Detaylı

Veritabanı Tasarımı. SQL Deyimi Anatomisi

Veritabanı Tasarımı. SQL Deyimi Anatomisi Veritabanı Tasarımı SQL Deyimi Anatomisi Amaç Bu ders aşağıdaki hedefleri kapsamaktadır: Projeksiyon (projection), seçim (selection) ve birleştirme (join) ifadelerini doğru fonksiyonları/yetenekleri ile

Detaylı

YAPISAL SORGULAMA DİLİ (SQL)

YAPISAL SORGULAMA DİLİ (SQL) YAPISAL SORGULAMA DİLİ (SQL) OGRENCI Tablosu 1234 Zeynep Makina K 23.06.1984 1. Cad 3.4 CREATE TABLE VERİ TANIMLAMA DİLİ (VTD) Veritabanında yeni bir tablonun oluşturulmasını sağlar. Yukarıda tanımlanan

Detaylı

Pursaklar İMKB Teknik ve Endüstri Meslek Lisesi

Pursaklar İMKB Teknik ve Endüstri Meslek Lisesi Modül 1: Eylül 3 (1) Veritabanı kavramını bilme. Tablo kavramını bilme. İlişkisel veritabanı kavramını bilme. Tablo yapısını tanımlayabilme. Tablolar arasında ilişkiler kurabilme. Anahtar alan kavramını

Detaylı

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Neden SQL? SQL çok yüksek seviyeli bir dildir. İngilizce bilen herkes bu dili kolayca öğrenebilir. Programlama dillerine göre öğrenilmesi çok daha kolaydır. Çünkü programlama

Detaylı

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız. Bu Derste Öğrenecekleriniz: 1- Birden Fazla Tablodan Sorgulama 2- Tablo Birleştirme işlemleri (JOIN) a. INNER JOIN b. OUTER JOIN i. LEFT OUTER JOIN ii. RIGHT OUTER JOIN iii. FULL OUTER JOIN 3- Tablo Ekleme

Detaylı

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir? 1) I. Tablo Oluşturma II. Veri Güncelleme III. Veri Silme IV. Veri Ekleme V. Tablo Silme Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir? a) I, IV ve V b) II, III ve IV

Detaylı

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

SAKLI YORDAM (Stored Procedure) Sibel Somyürek SAKLI YORDAM (Stored Procedure) Sibel Somyürek Saklı Yordam Saklı yordamlar veritabanı kataloğunda saklanan SQL kod bloklarının tanımlanmasıdır. Mesela, iki sayı alıp bunların toplamlarını hesaplayan bir

Detaylı

Veri tabanı içinde bulunan tablolardakibazı sütunlarda bulunan bilgilerin, herkes tarafından görülmesi istenmeyebilir.

Veri tabanı içinde bulunan tablolardakibazı sütunlarda bulunan bilgilerin, herkes tarafından görülmesi istenmeyebilir. View Oluşturma Sql komutlarından view oluşturma ve faydaları, myadminde gösterimi VİEW OLUŞTURMANIN YARARLARI 1. Veri güvenliği Veri tabanı içinde bulunan tablolardakibazı sütunlarda bulunan bilgilerin,

Detaylı