|
SQL PLUS - DERS 5
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
|