veritabanı yönetimi

advertisement
VERİTABANI
Veritabanı Yönetimi
VERİTABANI YÖNETİMİ
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 tanımlamak,
veritabanı içerisinde bulunan veriler üzerinde ekleme, silme ve
güncelleştirme işlemlerinden oluşmaktadır.
Veritabanı yönetimini gerçekleştirmek için 1970'li yılların başlarında IBM
tarafından yapılandırılmış sorgulama dili (SQL-Structured Query
Language) geliştirilmiştir.
SQL ilişkisel veritabanlarında verileri yönetmek ve tasarlamak için
kullanılan bir dildir. Veritabanı yönetim sistemi yazılımlarında küçük
farklılıklar göstermesine rağmen birçok veritabanı yönetim sistemi
standart SQL komutlarını desteklemektedir. SQL ile veritabanı üzerindeki
tüm yönetimsel işlemler yapılabilmektedir.
VERİTABANI YÖNETİMİ
SQL kendi içerisinde alt diller bulundurmaktadır.
Bunlar;
• Veri Tanımlama Dili (Data Definition Language (DDL))
• Veri Kontrol Dili (Data Control Language (DCL))
• Veri İşleme Dili(Data Manipulation Language (DML))
• Veri Sorgulama Dili (Data Query Language (DQL))
olarak kategorilere ayrılmaktadır.
VERİTABANI YÖNETİMİ
VERİ TANIMLAMA DİLİ (DATA DEFINITION LANGUAGE)
Veri tanımlama dili veritabanı üzerindeki yapısal özellikleri belirtmek ve
değiştirmek için kullanılmaktadır. Veritabanında hangi tabloların
bulunacağı, bu tabloların hangi alanlardan oluşacağı, bu alanlardaki
verilerin tipleri, hangi alanların anahtar alan, hangi alanların indeks
olacağı gibi yapısal tanımlamalar veri tanımlama dili komutlarıyla
yapılmaktadır.
VERİTABANI YÖNETİMİ
CREATE
Veritabanı, tablo, gösterim vb. veritabanı nesnelerini yaratmak için
kullanılan komuttur. Veritabanı oluşturulurken "CREATE DATABASE
VERİTABANI_İSMİ" şeklinde kullanılır. Örneğin vatandaş ve turizm
veritabanları oluşturmak istenirse
CREATE DATABASE VATANDAS;
CREATE DATABASE TURIZM;
şeklinde CREATE komutu kullanılarak veritabanları oluşturulur.
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
Veritabanı oluşturulduktan sonra veritabanında yer alacak tablolar
oluşturulmaktadır.
Tablo oluşturmak için CREATE TABLE komutu kullanılır. Ancak tablo
oluşturmadan önce hangi veritabanına tablo eklenecek ise o
veritabannıın aktif hale getirilmesi gereklidir. Veritabanını aktif hale
getirmek için ise USE komutu kullanılır.
Örneğin vatandaş veritabanına tablo eklenecek ise;
USE VATANDAS;
şeklinde USE komutu kullanılarak vatandaş veritabanı aktif hale getirilmeli
bundan sonra tabloların eklenmesi için komutlar çalıştırılmalıdır.
VERİTABANI YÖNETİMİ
Örnekte belirtilen vatandaş veritabanı adres ve kimlik tablolarından
oluşmaktadır.
Adres ve kimlik tablolarındaki alanlar ve bu
alanlardaki verilerin tiplerinin tanımlanması da
tablo oluşturulurken yapılmaktadır.
VERİTABANI YÖNETİMİ
Kimlik tablosu ise;
VERİTABANI YÖNETİMİ
Burada dikkat edilmesi gereken veri tipleri tanımlanırken verinin
uzunluğunun da tanımlanmasıdır. Veri uzunluğunun uygun şekilde
tanımlanması verilerin bellekte daha az yer kaplamasını sağlamaktadır.
Veri uzunlukları tanımlanmadığı zaman, veri için veritabanı yönetim
sistemi yazılımı tarafından bellekte varsayılan en yüksek değerde yer
ayrılacaktır.
Bu nedenle örneğin T.C. Kimlik Numarası 11 karakterden oluşan bir sayı
olduğuna göre, veri tipi tanımlanırken sadece NUMBER şeklinde değil
NUMBER(11) şeklinde tanımlanmalıdır. Ayrıca tabloda bulunan alanlara
veri girilmesinin zorunlu olup olmadığı NOT NULL komutu ile tablo
oluşturulurken belirtilebilir.
VERİTABANI YÖNETİMİ
Tablolarda bulunacak alanlar ve veri tipleri ile uzunlukları belirlendikten
sonra ADRES tablosunu oluşturmak için;
CREATE TABLE ADRES (ADRES_ID NUMBER NOT NULL, ULKE TEXT, IL TEXT,
ILCE TEXT, MAHALLE TEXT, KOY TEXT, BULVAR_CADDE_SOKAK TEXT,
KAPI_NO NUMBER, BLOK TEXT, DAIRE_NO NUMBER);
ifadesi kullanılır.
Bu SQL ifadesi ile ADRES tablosu oluşturulurken aynı zamanda bu tabloda
bulunan alanlar ile bu alanların özellikleri tanımlanmıştır.
VERİTABANI YÖNETİMİ
KIMLIK tablosunu oluşturmak için;
CREATE TABLE KIMLIK (T_C_KIMLIK_NO NUMBER(11) NOT NULL,
CINSIYETI TEXT(5), SOYADI TEXT, ADI TEXT, BABA_ADI TEXT, ANA_ADI
TEXT, DOGUM_YERI TEXT, DOGUM_TARIHI DATE, MEDENI_HALI TEXT,
DINI TEXT, KAN_GRUBU TEXT, IL TEXT, ILCE TEXT, MAHALLE_KOY TEXT,
CILT_NO NUMBER, AILE_SIRA_NO NUMBER, SIRA_NO NUMBER);
Burada kullanılan komutlar standart SQL komutlarıdır. Tüm veritabanı
yönetim sistemi yazılımlarında CREATE komutu veritabanı, tablo ve
gösterim yaratmakta kullanılmaktadır. Ancak alanların özelliklerinin
tanımlanmasında kullanılan veri tipleri veritabanı yönetim sistemi
yazılımlarına göre değişiklikler göstermektedir.
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
ALTER
Tablonun yapısında değişiklik yapmak için kullanılan komuttur.
ALTER TABLE şeklinde kullanılarak;
Tabloya alan ekleme,
Tablodan alan silme,
Mevcut tablo alanları içindeki veri türünü değiştirme,
Alanlara kaydedilecek verilerin uzunluklarını değiştirme,
Kısıtlamaları ekleme, silme ve değiştirme işlemleri yapılmaktadır.
VERİTABANI YÖNETİMİ
Tabloya alan eklemek için ALTER TABLE komutuna ADD komutu da
eklenmelidir. Örneğin adres tablosuna belde alanı eklemek için;
ALTER TABLE ADRES ADD BELDE TEXT
ifadesi kullanılır.
Bu SQL ifadesi ile ADRES tablosuna TEXT veri tipinde BELDE adında bir
alan eklenmiştir
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
Tabloda bulunan bir alan silinmek istendiğinde ise
ALTER TABLE
komutuna
DROP COLUMN
komutunun eklenmesi gereklidir. Örneğin adres tablosunda oluşturulan
belde alanını silmek için;
ALTER TABLE ADRES DROP COLUMN BELDE; ifadesi kullanılır.
Bu SQL ifadesi ile ADRES tablosunda bulunan BELDE adındaki alan silinmiş
olur
VERİTABANI YÖNETİMİ
Tabloda bulunan bir alanın veri tipinin değiştirilmesi istendiğinde ise
ALTER TABLE komutuna ALTER COLUMN komutu eklenmelidir.
Örneğin adres tablosunda bulunan KAPI_NO alanının NUMBER olan veri
tipi;
ALTER TABLE ADRES ALTER COLUMN KAPI_NO TEXT;
komutu ile TEXT veri tipine dönüştülebilmektedir.
VERİTABANI YÖNETİMİ
Tabloda bulunan bir alandaki verinin uzunluğunun değiştirilmesi
istenildiğinde ALTER TABLE komutuna MODIFY komutu eklenmektedir.
Örneğin kimlik tablosunda bulunan T_C_KIMLIK_NO alanının uzunluğu 11
karakterken,
ALTER TABLE KIMLIK MODIFY T_C_KIMLIK_NO NUMBER(15);
komutu ile 15 karaktere çıkarılabilir.
Tabloda mevcut bir alanın isminin değiştirilmesi gerektiğinde ALTER
TABLE komutuna RENAME komutu eklenmelidir. Örneğin kimlik
tablosunda bulunan ADI alanının ismi;
ALTER TABLE KIMLIK RENAME ADI KISI_ADI;
komutu ile KISI_ADI olarak değiştirilir.
VERİTABANI YÖNETİMİ
Tabloda birincil anahtar tanımlaması CREATE komutu ile yapılabildiği gibi
aynı şekilde ALTER komuta ile de yapılabilmektedir.
Örneğin kimlik tablosunda bulunan T_C_KIMLIK_NO alanı kimlik
tablosunun birincil anahtarı olarak tanımlanmalıdır. Çünkü her kişinin
birbirinden farklı benzersiz bir kimlik numarası bulunmaktadır. Tabloda
T_C_KIMLIK_NO alanını birincil anahtar olarak tanımlamak için;
ALTER TABLE KIMLIK PRIMARY KEY (T_C_KIMLIK_NO);
ifadesi kullanılır. Bu şekilde tabloda T_C_KIMLIK_NO alanı birincil anahtar
olarak tanımlanır.
Tabloda yabancı anahtar tanımlamak içinde ALTER TABLE komutuna
FOREIGN KEY komutu eklenmektedir.
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
DROP
Veritabanında bulunan bir tabloyu silmek için kullanılır.
Örneğin vatandaş veritabanında bulunan kimlik tablosu;
DROP TABLE KIMLIK;
ifadesi ile tümüyle silinmektedir.
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
VERİ KONTROL DİLİ (DATA CONTROL LANGU AGE)
Veri Kontrol Dili kullanıcıların veritabanına erişimlerinin ve yetkilerinin
tanımlanması işlemlerinin yapılmasını sağlamaktadır.
Veritabanında yeni kullanıcı hesabı oluşturma veya veritabanma bağlantı
izinlerinin düzenlenmesi işlemleri ile veritabanında bulunan veriler
üzerinde okuma, yazma, değiştirme gibi işlemlerin yapılabilmesi için
izinleri düzenlemekte kullanılır.
GRANT: Kullanıcılara veritabanı ile ilgili yetkilendirilmenin yapılmasını
sağlar. Veritabanı üzerinde tabloyu oluşturan kullanıcı, tablo ile ilgili tüm
yetkilere sahiptir. Tablonun sahibi diğer kullanıcıları yetkilendirmemiş ise
tabloya kendinden başka kullanıcı erişemez. Tablo sahibi tabloya erişme,
tablo üzerinde değişiklik yapabilme gibi izinleri GRANT komutu ile
tanımlar.
VERİTABANI YÖNETİMİ
CREATE LOGIN KULLANICI_1 WITH PASSWORD= "123456 "
komutuyla "123456" şifresine sahip KULLANICI_1 adında bir kullanıcı
oluşturduk.
GRANT CONNECT TO KULLANICI_1;
Kullanıcının tablo üzerinde seçme, ekleme, silme, güncelleme vb. işlemler
için yetkilendirmesi de bu komut ile yapılmaktadır.
Örneğin bütün kullanıcılara KİMLİK adlı tabloya erişip seçme (SELECT),
satır ekleme (INSERT), tabloda değişiklik yapma (UPDATE), satır silme
(DELETE), tablonun yapısında değişiklik yapma (ALTER), indeksleme
(INDEX) ve kümeleme (CLUSTER) yetkisi;
GRANT SELECT, INSERT, UPDATE, DELETE, ALTER, INDEX, CLUSTER ON
KIMLIK TO KULLANICI_1;
komutu ile tanımlanır.
VERİTABANI YÖNETİMİ
Eğer bu şekilde tüm yetkiler verilecek ise kısaca;
GRANT ALL ON KIMLIK TO KULLANICI_1;
Kullanıcıya sadece seçme (SELECT) yetkisi ise;
GRANT SELECT ON KIMLIK TO KULLANICI_1;
Veritabanında bulunan iki tabloya aynı anda yetkilendirme yapılabilir.
Örneğin KIMLIK ve ADRES tablolarına KULLANICI_1 için seçme yetkisi;
GRANT SELECT ON KIMLIK, ADRES TO KULLANICI_1;
komutu yazılarak verilebilmektedir.
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
DENY
Kullanıcıların veya grupların veritabanına erişim ve veritabanı işlemlerini
yapabilme izinlerini kısıtlamakta kullanılan komuttur. Örneğin
veritabanında KULLANICI_1 isimli kullanıcının tablo yaratma yetkisi;
DENY CREATE TABLE TO KULLANICI_1;
komutu ile engellenebilir.
Ayrıca KULLANICI_1 isimli kullanıcının ADRES tablosunda seçme (SELECT)
yetkisi yasaklanmak isteniyor ise;
DENY SELECT ON ADRES TO KULLANICI_1;
komutu kullanılabilir.
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
REVOKE
Kullanıcılara verilmiş olan izin ve kısıtlamaları iptal etmek için kullanılan
bir komuttur. Örneğin KIMLIK tablosunda KULLANICI_1 için verilen seçme
(SELECT) yetkisi;
REVOKE SELECT ON KIMLIK TO KULLANICI_1;
komutu ile kaldırılmaktadır.
Veritabanına erişim izni ise;
REVOKE CONNECT TO KULLANICI_1;
komutu ile iptal edilebilmektedir.
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
VERİ İŞLEME DİLİ (DATA MANIPULATION LANGUAGE)
Veri İşleme Dili veritabanı içerisinde bulunan veriler üzerinde ekleme
(INSERT), silme (DELETE) ve güncelleştirme (UPDATE) gibi işlemlerin
yapılmasını sağlamaktadır. Veri işleme dili komutlarından bazıları
şunlardır.
INSERT INTO
Tabloya kayıt eklemek için kullanılan komuttur.
Kullanım Şekli:
INSERT INTO tablo_adı VALUES (değer1, değer2, değer3, ...)
INSERT INTO tablo_adı (Alan1, Alan2, Alan3, ...)
VALUES (değer1, değer2, değer3, ...)
VERİTABANI YÖNETİMİ
INSERT INTO ADRES VALUES ('Türkiye', 'Eskişehir', 'Tepebaşı', 'Yeni',
'Seylap', 5,1);
veya
INSERT INTO ADRES (ULKE, IL, ILCE, MAHALLE, BULVAR_CADDE_SOKAK,
KAPI_NO, DAIRE_NO) VALUES ('Türkiye', 'Eskişehir', 'Tepebaşı', 'Yeni',
'Seylap', 5,1);
komutu kullanılarak bir kayıt eklenmektedir. Komut çalıştırıldıktan sonra
tablo de görüldüğü gibi olacaktır.
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
UPDATE
Tabloda bulunan verileri güncellemek için kullanılan komuttur.
Kullanım Şekli:
UPDATE tablo_adı SET alan_adı = yeni_değer WHERE alan_adı = değer
Örneğin KİMLİK isimli tabloda T.C. Kimlik numarası 12345678901 olan
kaydın doğum yeri
UPDATE KİMLİK SET DOGUM_YERI = 'Eskişehir' WHERE T_C_KIMLIK_NO =
12345678901;
komutu ile "Eskişehir" olarak güncellenecektir. Komut çalıştırıldıktan
sonra
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
DELETE: Tabloda bulunan tüm kayıtların veya seçilen kayıtların silinmesi
için kullanılan komuttur.
Kullanım Şekli: DELETE FROM tablo_adi;
DELETE FROM tablo_adı WHERE alan_adı= değer;
Örneğin KİMLİK isimli tabloda T.C. Kimlik numarası 12345678901 olan
kayıt;
DELETE FROM KİMLİK WHERE T_C_KIMLIK_NO = 12345678901;
komutu ile silinmektedir. Komut çalıştırıldıktan sonra;
VERİTABANI YÖNETİMİ
VERİTABANI YÖNETİMİ
Download
Study collections