ALTER_SEQUENCE : Değişiklik bir yerden başlanacaksa önce drop edilir, sequence işlemini değiştirir.
Yazılımı;
ALTER SEQUENCE kolon
[INCREMENT BY n]
[MAXVALUE n | NOMAXVALUE]
[MINVALUE n | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE n | NOCACHE]
DROP_SEQUENCE : Kolon için yaratılan İşlemleri siler.
Yazılımı;
DROP SEQUENCE kolon
View:
Bir tablo üzerinde sorgulama yapılması için kullanılan nesnedir. Fiziksel olarak herhangi bir yerde saklanmaz. Avantajları;
Database erişimini kısıtlar. Böylece sadece sorgulanan verileri gözükür.
Sorgulamaları kolaylaştırabilir.
Datayı bağımsız olarak gösterebiliriz.
Yazılımı;
CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW view_adı [alias] AS subquery [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY]
FORCE : Hata durumu oluşursa göz ardı ettirilir. NOFORCE ise göz ardı edilmez.
View_adı : Yaratılan view sorgu adıdır..
Alias : Yaratılan işlemin adıdır.
WITH CHECK OPTION [CONSTRAINT : View objesine hatalı işleme yapılmasını engeller.
Örnek: Departman numarası 41 olan personeller için preview isminde bir view oluşturalım;
CREATE VIEW persview
AS SELECT * FROM personel
WHERE dept_id=41
WITH CHECK OPTION CONSTRAINT empview_ck;
Departman id’si 16 olan personellerin departman numarasını 38 yapalım;
UPDATE persview
SET dept_id=38
WHERE id=16;
Bu durumda bu değişiklik tabii ki yapılamaz.
WITH READ ONLY : View objesinin sadece okuma amaçlı olduğu belirtilir. Farklı bir işlem yapıldığında bunu engeller. Aslında kayıtlar üzerinde değişiklik yapılmasını engeller.
Örnek: Departman numarası 45 olan personeller için preview isminde bir view oluşturalım;
CREATE VIEW persview
AS SELECT * FROM personel
WHERE dept_id=41
WITH READ ONLY;
Departman id’si 10 olan personellerin silinmesini sağlayalım;
DELETE FROM persview
WHERE id=10;
Bu durumda işlemi keser ve uyarı verir.
USER_VIEWS : Data dictionary tablosunda view tanımları bulunur. View adı, text uzunluğu ve text ’i saklar.
VIEW_NAME : Kullanıcıya ait view adlarının tutar.
TEXT_LENGTH : Sql ifadenin uzunluğudur.
TEXT : Sql ifadedir.
DROP VIEW : Yaratılan view objesini siler.
Yazılımı;
DROP VIEW view_adı
INDEX YARATMA:
Indexler, bir tablonun istenilen kolonlarına daha hızlı erişim olanağı sağlamak için kullanılır. Tablodaki kayıtlar üzerinde giriş/çıkış İşlemleri yapılırken dataya daha hızlı ulaşılması sağlanır. Primary key tanımlanan kolonlar için otomatik olarak index yaratılır. Index en fazla 16 kolondan oluşur. Bir kolon tipi long veya long raw olamaz.
Yazılımı;
CREATE INDEX index_adı
ON tablo_adı(kolonlar)
Örnek: Personelin adına ve soyadına göre index oluşturalım;
CREATE INDEX personel_inx
ON personel(ad,soyad);
Böylece ad kolonu öncelikli olmak kaydıyla birlikte soyadına göre sıralama yapar, yani index oluşturur. Önce ada göre sıralar, Eğer ayni isimden birden fazla kayıt oluşursa bu sefer soyad kolonundaki değerlere göre sıralama oluşturur.
Index yaratabilmek için;
Index yaratılacak tablonun var olması gereklidir,
Index yaratma hakkına sahip olmalıdır,
Limitsiz tablespace hakkına sahip olmalıdır.
Index yaratılma ihtiyacı aşağıdaki koşullar oluştuğunda belirir;
Where ifadesi ile sik sik kullanılan kolonlar kullanılıyorsa,
Join ile birleştirme işlemi yapıldığında,
Kolon değerleri geniş aralıkta ise,
Büyük rakamlı kolonların içinde null değerler bulunuyorsa.
Index yaratılmama ihtiyacı aşağıdaki koşullar oluştuğunda belirir;
Tablo küçük ise,
Tablodaki bazı kolonlara sik sik ihtiyaç duyulmadığında,
Tabloda sik sik değişiklikler yapılıyorsa.
USER_INDEXES : Index isimlerini ve unique olup olmadığı bilgilerini saklar.
Örnek: Personel tablosuna ait index dosyalarını listeleyelim;
SELECT ic.index_name,ic.column_name,ic.colum_position,ix.uniqueness
FROM user_indexes ix, user_ind_columns ic
WHERE ic.index_name=ix.index_name
AND table_name=’Personel’;
DROP INDEX : Yaratılan indexleri veri tabanından yok etmek için kullanılır.
DATABASE GÜVENLIGI
Database güvenliği için kullanıcılar tanımlanır. Her kullanıcının bir şifresi bulunur. Kullanıcılara belirli yetkiler verilir.
Sistem ve data güvenliği olmak üzere iki kısımda incelenir. Sistem güvenliği içinde kullanıcıya yaratma, değiştirme, silme vb. yetkiler tanımlanır. Data güvenliği için ise datalar başka bir ortama yedekleme(backup) yapılarak sağlanır.
Database level aşamaları ile güvenlik sınırlanır. Eğer yüksel level yetkisi varsa yeni kullanıcı(veya tablolar) yaratabilir veya silinebilir. Tabloların yedekleri alınabilir.
CREATE USER : Database üzerinde işlemler yapılabilmesi için kullanıcı yaratılır.
Yazılımı;
CREATE USER user_adı
IDENTIFIED BY sifre
DROP USER : Databaseden kullanıcıyı siler.
Yazılımı;
DROP USER user_adı
GRANT (Yetki) : Kullanıcıya yetki verilmesi için kullanılır.
Yazılımı;
GRANT yetkiler_roller
TO kullanıcı [PUBLIC]
[WITH GRANT OPTION]
[PUBLIC]
WITH GRANT OPTION : Sistem haklarını veya rollerini diğer kullanıcılara vermeyi sağlar. Bir rolü bu şekilde belirlersek kullanıcı rolleri değiştirebilir veya silebilir.
PUBLIC : Sistem haklarını veya rollerini tüm kullanıcılara vermeyi sağlar.
Örnek: Personel tablosunun pers_id,ad kolonlarına webserver kullanıcısı için düzeltme yetkisi verelim;
GRANT select(pers_id,ad)
ON Personel
TO webserver
Örnek: Personel tablosuna webserver kullanıcısı için seçme yetkisi verelim;
GRANT select
ON Personel
TO webserver
Örnek: Mehmet kullanıcısı, webserver kullanıcısının personel tablosu için kayıt etme ve sorgulama yetkilerini verelim;
GRANT select,insert
ON personel
TO webserver
WITH GRANT OPTION
Örnek: Mehmet kullanıcısının personel tablosunu tüm kullanıcılara sorgulama yapabilmesini sağlayalım;
GRANT select
ON mehmet.personel
TO PUBLIC
Grant yetkisi ile kullanıcılara aşağıdaki tablodaki yetkiler verilebilir
Objeler Table View Sequences Procedure
ALTER X - X -
DELETE X X - -
EXECUTE - - - X
INDEX X - - -
INSERT X X - -
REFERENCES X - - -
SELECT X X X -
UPDATE X X - -
CREATE ROLE : Kullanıcıya yetki olarak verilen rollerdir.
Yazılımı;
CREATE ROLE rol;
Örnek:
CREATE ROLE Manager;
GRANT create table, create view TO Manager;
GRANT Manager TO webserver;
Manager isminde rol tanımlandı. Tablo ve view yaratma yetkisi verildi. Bu yetkiler Webserver isminde kullanıcıya aktarıldı.
Kullanıcının şifresini değiştirmek için;
ALTER USER user_adı IDENTIFIED BY sifre
REVOKE : Verilen rolleri geri alır.
Yazılımı;
REVOKE rol
ON tablo
FROM kullanıcı
Örnek: webserver kullanıcısının sifre tablosuna kayıt etme,düzeltme ve sorgulama yetkilerini kaldıralım,
REVOKE select,insert,update
ON sifre
FROM webserver
CREATE SYNONYM : Bir objenin aynisinin kopyasının alarak kendi userinda yaratır.
Yazılımı;
CREATE [PUBLIC ] SYNONYM obje_adı
FOR kullanıcı.obje
PUBLIC : Tüm kullanıcıların yetkilerini alır.
Örnek: Webserver’in personel tablosunun aynisini kendi alanımızda yaratalım
CREATE SYNONYM personel
FOR webserver.personel
DROP SYNONYM : Bir objenin aynisinin kopyasının alarak yaratılan objeyi siler.
Yazılımı;
DROP [PUBLIC ] SYNONYM obje_adı
ADVANCED SQL
IN : Liste içinde belirlenen değerlerdir.
NOT IN : Liste içinde olmayan tüm değerlerdir.
ANY : Alt sorgulamadan seçilen değerlerden en az biri karsılaştırılır.
ALL : Alt sorgulamadan seçilen değerlerden hepsi karsılaştırılır