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 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 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 DROP USER 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 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 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 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

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ı

İ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ı

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ı

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ı

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

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ı

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ı

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ı

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ı

İ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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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

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

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

«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ı

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ı

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ı

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ı

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi -- www.tdmsoft.com. devrim@gunduz.org

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi -- www.tdmsoft.com. devrim@gunduz.org Veritabanlarına ve SQL'e Giriş Devrim GÜNDÜZ Teknoloji Destek Merkezi -- www.tdmsoft.com devrim@gunduz.org http://seminer.linux.org.tr http://www.gunduz.org Giriş Bu seminerde, aşağıdaki konular anlatılacaktır:

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ı

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ı

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10)); SQL'e Giriş 2 VERİ TANIMLAMA (DDL) İŞLEMLERİ Genel Yazılımı, 1. TABLOLARIN OLUŞTURULMASI (CREATE TABLE): CREATE TABLE tabloadı (kolon isimleri ve veri türleri) Örnek 1: CREATE TABLE BOLUM (BOLUM_NO NUMBER,

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ı

BİLİŞİM TEKNOLOJİLERİ

BİLİŞİM TEKNOLOJİLERİ T.C. MİLLÎ EĞİTİM BAKANLIĞI BİLİŞİM TEKNOLOJİLERİ INTERNET PROGRAMCILIĞI - 5 482BK0098 Ankara, 2011 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında yer alan

Detaylı

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir. İlişkisel Veritabanı Yaklaşımı: İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir. İlişkisel veri tabanı yönetim sistemi verilerin tablolarda satır ve sutunlar halinde tutulduğu

Detaylı

SQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir.

SQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir. SQL'e Giriş SQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir. SQL (Structured Query Language) kendisi bir programlama

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ı

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ı

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) İlişkisel Veritabanı Modeli

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) İlişkisel Veritabanı Modeli Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) İlişkisel Veritabanı Modeli Konular Temel Kavramlar Tablo Anahtar Süper Anahtar Birincil Anahtar Yabancı Anahtar İkincil Anahtar Bütünlük Kuralları Birincil

Detaylı

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir. T-SQL KODLARİ İÇERİSİNE AÇIKLAMA EKLEME Bir veya daha fazla satırın çalıştırılmasını Önlemek için veya /*... */" ifadeleri kullanılır. -- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak

Detaylı

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir. Oracle (Devam) SELECT INTO Deyimi Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir. Genel ifade: SELECT kolonisimler INTO

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ı

Veri Tabanı-I 5.Hafta

Veri Tabanı-I 5.Hafta Veri Tabanı-I 5.Hafta DataBase Oluşturma 1 DATABASE Kolon,özellik,alanColumn,attributes,fields) Sunucu Tablo numarası adı soyadı 0913109001 Ali Can 0913109002 Nuri Koç Database 0913109003 Fatma Kara Satır,Kayıt

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ı

Örnek Veritabanı Çalışması. Kütüphane Veritabanı

Örnek Veritabanı Çalışması. Kütüphane Veritabanı Örnek Veritabanı Çalışması Kütüphane Veritabanı İçindekiler Kütüphane veritabanı şeması Tabloların oluşturulması Tablolar arası ilişkilerin varlık ilişki ve ilişkisel modeldeki gösterimleri Sorgu örnekleri

Detaylı

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN VERITABANI-I SQL (Structured Query Language) SQL (Structured Query Language) SQL, ilişkisel veritabanlarındaki

Detaylı

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi 1. 2. 3. 4. 5. 6. Görünüm (view) için özellikle aşağıdakilerden hangisi söylenebilir?? a) Veritabanındaki kayıtlı verileri düzenlemek, yönetmek ve elde etmek için kullanılan bir dildir b) Bir ilişkinin

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama JDBC (Java Database Connectivity) Üst Düzey Programlama-ders07/ 1 JDBC JDBC ilişkisel veritabanlarına erişim için Java dilinde kullanılan standart bir kütüphanedir. Bu kütüphanedeki

Detaylı

Herhangi bir tablonun tekrarlı veriler içerdiği duruma birinci normal form denir. Birinci normal formu Aşağıdaki tablo ile ele alacağız.

Herhangi bir tablonun tekrarlı veriler içerdiği duruma birinci normal form denir. Birinci normal formu Aşağıdaki tablo ile ele alacağız. Normalleştirme ve Uygulaması Normalleştirme Neden Uygulanır: İlişkisel veritabanı oluşturmak için normalleştirmeyi bilmek çok önemlidir. Normalleştirme işlemini anlayabilmek için ise fonksiyonel bağımlılık

Detaylı

Veritabanı Tasarımı ve Yönetimi. Uzm. Murat YAZICI

Veritabanı Tasarımı ve Yönetimi. Uzm. Murat YAZICI Veritabanı Tasarımı ve Yönetimi Uzm. Murat YAZICI Veritabanı Tasarımı - Projenin tasarım aşamasında veritabanı tasarımı çok iyi yapılmalıdır. Daha sonra yapılacak değişiklikler sorunlar çıkartabilir veya

Detaylı

Bölüm 10: PHP ile Veritabanı Uygulamaları

Bölüm 10: PHP ile Veritabanı Uygulamaları Bölüm 10: PHP ile Veritabanı Uygulamaları -231- Öğr.Gör. Serkan DİŞLİTAŞ 10.1. PHP PHP, platformdan bağımsız sunucu taraflı çalışan betik bir web programlama dilidir. PHP programlama dili ile MySQL, MSSQL,

Detaylı

2 İlişkisel Veritabanı Tasarımı ve Normalizasyon. Veritabanı 1

2 İlişkisel Veritabanı Tasarımı ve Normalizasyon. Veritabanı 1 2 İlişkisel Veritabanı Tasarımı ve Normalizasyon Veritabanı 1 Veritabanı Tasarımı Tasarım yapılırken izlenecek adımlar; Oluşturulacak sistemin nelerden oluşması gerektiği ve hangi işlemlerin hangi aşamalarda

Detaylı

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR YÜKSEK LİSANS PROJESİ Mehmet Emin AKKAYA Danışman: Yrd. Doç.

Detaylı

İNTERNET PROGRAMCILIĞI 2 10. HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

İNTERNET PROGRAMCILIĞI 2 10. HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir. İNTERNET PROGRAMCILIĞI 2 10. HAFTA İçindekiler MYSQL - PHPMYADMIN Mysql Nedir PhpMyAdmin Nedir PhpMyAdmin Arayüzü Hedefler Mysql' in görevini söyleyebilir PhpMyAdmin' in kullanım amacını söyler Hazırlayan

Detaylı

8 Aralık 2011 / Perşembe. Veri Tabanına Giriş

8 Aralık 2011 / Perşembe. Veri Tabanına Giriş 8 Aralık 2011 / Perşembe Veri Tabanına Giriş Veri (Data), bir veya birden fazla bilgiden oluşan bir kümedir. İsim, yaş, telefon numarası gibi bilgiler birer veridir. Veri Tabanı (Database) : Temel olarak

Detaylı

VERİ TABANI UYGULAMALARI

VERİ TABANI UYGULAMALARI VERİ TABANI UYGULAMALARI VERİ TABANI NEDİR? Bir konuyla ilgili çok sayıda verinin tutulmasına, depolanmasına ve belli bir mantık içerisinde gruplara ayrılmasına veri tabanı denir. Veri tabanı programları;

Detaylı

İNTERNET PROGRAMCILIĞI DERSİ

İNTERNET PROGRAMCILIĞI DERSİ İNTERNET PROGRAMCILIĞI DERSİ Dersin Modülleri İnternet Programcılığı 1 İnternet Programcılığı 2 İnternet Programcılığı 3 İnternet Programcılığı 4 İnternet Programcılığı 5 Kazandırılan Yeterlikler 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- Sorgulama Yaparken Gruplama (GROUP BY) 2- Gruplamada Koşul Kullanımı (HAVING) 3- Sorgulama Yaparken Sıralama (ORDER BY) 4- Sorgulamalarda İşlem Yapma 5- Güncellemelerde İşlem

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 -10- FONKSİYONLAR 3 Giriş Geçen haftaki derslerimizde Görünümleri (View) ve Stored Procedure (SP) leri öğrendik. Bu hafta

Detaylı

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

BTP203 VERİTABANI YÖNETİM SİSTEMLERİ BTP203 VERİTABANI YÖNETİM SİSTEMLERİ Öğr.Gör.Dr. Sedat Telçeken Porsuk Meslek Yüksek Pkulu Bilg. Tekn. Bölümü 2011 2012 Güz Dönemi İLİŞKİSEL CEBİR (Relational Algebra) İlişkisel cebir, biçimsel sorgulama

Detaylı

Veri Tabanı-I 1.Hafta

Veri Tabanı-I 1.Hafta Veri Tabanı-I 1.Hafta 2015-2016 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Teknik Bilimler Meslek Yüksekokulu Burdur 2015 Yrd.Doç.Dr. M. İLKUÇAR 1Muhammer İLKUÇAR, MAKÜ-2011 BURDUR

Detaylı

2 Temel Kavramlar (Devam) Veritabanı 1

2 Temel Kavramlar (Devam) Veritabanı 1 2 Temel Kavramlar (Devam) Veritabanı 1 Veritabanı Kullanıcıları Veritabanı Yöneticisi (DBA-Database Administrator) Tasarım,oluşturma ve işletiminden sorumludur. Görevleri; Tasarımı Performans Analizi Erişim

Detaylı

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum: Bu Derste Öğrenecekleriniz: 1- MS SQL Server 2008 Kurulumu ve Tanıtımı 2- Komut Kullanarak Veritabanı Oluşturma ve Silme 3- SQL Yazım Kuralları Kurulum: Sistem gereksinimleri: Desteklenen işletim sistemleri:

Detaylı

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri Konular Veritabanı Tasarım Aşamaları Veri Modeli Nedir? Veri Modeli Temel Bileşenleri İş Kuralları (Business Rules) İş Kurallarını Veri

Detaylı

Çok tablolu sorgulamalar

Çok tablolu sorgulamalar Çok tablolu sorgulamalar Eğer birden fazla tabloda yer alan verilerin tek bir sorgu ile görüntülenmesi istenirse FROM kısmında ilgili tablolar araya virgül konularak yazılmalı, WHERE kısmında ise o tabloları

Detaylı

2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar

2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar 2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar Öğr. Gör. Saliha Kevser KAVUNCU Veritabanı neden kullanılır? Veritabanının amacı; insanların ve organizasyonların birşeyleri takip edebilmesine yardımcı

Detaylı

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

Veri Tabanı Yönetim Sistemleri Bölüm - 3 Veri Tabanı Yönetim Sistemleri Bölüm - 3 İçerik Web Tabanlı Veri Tabanı Sistemleri.! MySQL.! PhpMyAdmin.! Web tabanlı bir veritabanı tasarımı. R. Orçun Madran!2 Web Tabanlı Veritabanı Yönetim Sistemleri

Detaylı

Fonksiyonel(İşlevsel) Bağımlılık

Fonksiyonel(İşlevsel) Bağımlılık Fonksiyonel(İşlevsel) Bağımlılık R nin ilişkiyi(relation) ; A ve B nin bir attribute yada attribute setini temsil ettiğini düşünelim. Eğer R ilişkisinde her bir A değeri, tam olarak bir B değerine işaret

Detaylı

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri ORACLE DA KÜRSÖRLER Gerekli sistem değişkenleri SQL%ISOPEN : kürsör açıksa değeri true, kapalı ise değeri false SQL%ROWCOUNT : sql ile işlem gören kayıt sayısı bulunur. SQL%FOUND : sql işlemi sonucu, en

Detaylı

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access Programlamaya Giriş VERİ TABANI UYGULAMASI ÖN BİLGİ Veritabanları, verilere sistematik bir şekilde erişilebilmesine, depolanmasına ve güncellenmesine izin veren, yüksek boyutlu veriler için çeşitli optimizasyon

Detaylı

Maltepe Üniversitesi Endüstri Mühendisliği Bölümü Veri Tabanı Yönetimi (END 210)

Maltepe Üniversitesi Endüstri Mühendisliği Bölümü Veri Tabanı Yönetimi (END 210) Maltepe Üniversitesi Endüstri Mühendisliği Bölümü Veri Tabanı Yönetimi (END 210) GENEL DERS BİLGİLERİ Öğretim Elemanı : Öğr.Gör. Erdal GÜVENOĞLU Ofis : MUH 312 Ofis Saatleri : Pazartesi: 14:00 14:50, Salı:

Detaylı

BIM 312 Database Management Systems. Veritabanı Kavramına Giriş

BIM 312 Database Management Systems. Veritabanı Kavramına Giriş BIM 312 Database Management Systems Veritabanı Kavramına Giriş Veritabanı Nedir? Veritabanı, birbirleriyle ilişkili verilerin hızlı ve verimli bir şekilde ulaşılmasına olanak verecek biçimde saklanmasıyla

Detaylı

STORED PROCEDURE LER (Saklı Yordamlar)

STORED PROCEDURE LER (Saklı Yordamlar) STORED PROCEDURE LER (Saklı Yordamlar) Eskiden yazılımlar, sadece prosedür denilen kod parçalarından oluşurdu. Her prosedür belli bir işlevi yerine getirmek için yazılmış kod parçalarıdır. Mesela, 2 sayı

Detaylı

ÖĞRENME-ÖĞRETME YÖNTEM VE TEKNİKLERİ. gösterip yaptırma, uygulamalı çalışma. Anlatım, soru-cevap, gösterip yaptırma, uygulamalı çalışma.

ÖĞRENME-ÖĞRETME YÖNTEM VE TEKNİKLERİ. gösterip yaptırma, uygulamalı çalışma. Anlatım, soru-cevap, gösterip yaptırma, uygulamalı çalışma. KASIM EKİM EYLÜL AY 02.11.2009 06.11.2009 26.10.2009 0.10.2009 19.10.2009 2.10.2009 12.10.2009 16.10.2009 05.10.2009 09.10.2009 28.09.2009 02.10.2009 24.09.2009 25.09.2009 09.11.2009 1.11.2009 MODÜL: İNTERNET

Detaylı

Mühendislikte Veri Tabanları Dersi Uygulamaları (MS-Access)

Mühendislikte Veri Tabanları Dersi Uygulamaları (MS-Access) Mühendislikte Veri Tabanları Dersi Uygulamaları (MS-Access) İstanbul Teknik Üniversitesi, İnşaat Fakültesi, Geomatik Mühendisliği Bölümü Prof. Dr. Nebiye MUSAOĞLU Doç. Dr. Elif SERTEL Y. Doç. Dr. Şinasi

Detaylı

Veri Bütünlüğü ve Constraint ler. Veritabanı 1

Veri Bütünlüğü ve Constraint ler. Veritabanı 1 Veri Bütünlüğü ve Constraint ler Veritabanı 1 Veri Bütünlüğü Veri bütünlüğü, bir tabloda veri güncelleme, silme veya ekleme gibi işlemler yapılırken diğer tablo ya da tablolardaki verilerin birbirleriyle

Detaylı

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır. KULLANICI TANIMLI FONKSİYONLAR Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır. Fonksiyonları veritabanı programlamada

Detaylı

DML işlemleri. Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı. 12 15 May. 2015. Öğr. Gör. Murat KEÇECĠOĞLU

DML işlemleri. Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı. 12 15 May. 2015. Öğr. Gör. Murat KEÇECĠOĞLU DML işlemleri Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı 12 15 May. 2015 Öğr. Gör. Murat KEÇECĠOĞLU DML-Data Manipulation Lanquage : Buna Türkçe olarak veri işleme dili diyebiliriz. DML komutları

Detaylı

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-I Veri Nedir? Bilgisayarların yaygınlaşması ile birlikte bir çok verinin saklanması gerekli hale

Detaylı

İNTERNET TABANLI PROGRAMLAMA- 12.ders

İNTERNET TABANLI PROGRAMLAMA- 12.ders İNTERNET TABANLI PROGRAMLAMA- 12.ders TEMEL SQL KULLANIMLARI Örnekleri uygulamak için aşağıdaki gibi bir altyapı hazırlayalım. using System.Data.OleDb; *************** protected void Button1_Click(object

Detaylı