Özet: Veritabanında kullanılan objelerin kullanımlarını anlatıyor. (table, view, index, procedure, function, sequence, synonym)

 

Table

Veri tabanındaki temel veri saklama yeridir.

CREATE TABLE department
(
 departmentid NUMBER,
 deparmentname VARCHAR2 (40 BYTE)
);

View

Bir veya daha fazla tablonun özelleştirilmiş gösterimidir. Bu şekilde diğer kullanıcalara tablonun tamamını değil de bizim belirlediğimiz kolonlara giriş izni vererek veritabanı güvenliğini sağlayabiliriz.

CREATE VIEW personnel_it view AS
  SELECT PERSONNELID,NAME, LAST_NAME,
    FROM  personnel
    WHERE departmentid=2;

Index

Indeks’ler tablolarla ilişkilendirilen opsiyonel yapılardır. Data erişim performansını arttırmak için yaratılırlar. Bir oracle indeksi tablo verisine direk erişim yolu sağlar. Oracle bir isteği cevaplarken, istenilen satırları daha hızlı bulmak için tablo ile ilişkilendirilmiş indeksleri kullanır. Indeks’ler, uygulamalar bir tablonun satırlarının belli bir bölümünü veya belli bir satırı sorguladıklarında işe yarar. Tablolar üzerinde yapılacak olan değişiklikler otomatik olarak ilişkili indekslere yansıtılır.

CREATE INDEX IDX_PERSONEL_01 ON ON PERSONNEL (DEPARTMENTID)

Procedure

Prosedürler belirli işlemleri gerçekleştirmek için üzere oluşturulan ve ayrı bir kod içerisinde yazılan özel bloklardır. Prosedürler alt programcıklardan oluşur ve derlenerek veri tabanında saklanır. Yani veri tabanına derlenerek gömülürler. Prosedürler bir kere yazılarak defalarda çağırılıp çalıştırılabilirler. Aynı işlemler için aynı kodu her defasında yazma zahmetinden kurtulurmuş olunur.

Şimdi bize o anki saati veren bir prosedür oluşturalım.

CREATE OR REPLACE PROCEDURE whattime
AS
 timenow VARCHAR2 (30);
BEGIN
 SELECT TO_CHAR (SYSDATE, 'DD-MM-YYYY HH24:MI:SS') INTO timenow FROM DUAL;
 DBMS_OUTPUT.put_line (timenow);
END;
/

Bir daha tekrar tekrar scripti yazmadan prosedürü çalıştırarak istediğimiz çıktıyı alabiliriz.

exec whattime

14-03-2017 21:55:31

 

Function

Tek değer döndürürler. Buda duruma bir değer, sayı olabilir.

CREATE OR REPLACE FUNCTION whattime RETURN date IS
BEGIN RETURN sysdate;
END whattime;
/
SELECT WHATTIME FROM DUAL;

WHATTIME 
----------
02/04/2017

 

Sequence

Birden fazla kullanıcının benzersiz ID’ler üretebileceği veritabanı nesnesidir. Sequence sayesinde belirleyeceğimiz bir başlangıç noktasından ileri veya geri sayı artırabiliriz.

CREATE SEQUENCE ID
 START WITH 1
 MAXVALUE 9999999999999
 MINVALUE 1
 NOCYCLE
 CACHE 20
 NOORDER;

Sequence’dan yeni bir id alabilmek için id.nextval diyerek yeni bir id number isteyebiliriz.

SELECT ID.NEXTVAL FROM DUAL;

NEXTVAL
----------
 1

SELECT ID.NEXTVAL FROM DUAL;

NEXTVAL
----------
 2

SELECT ID.NEXTVAL FROM DUAL;

NEXTVAL
----------
 3

 

Synonym

Veritabanındaki objelere(Tablo,view,sequence,proecedure) takma isim vermemizi sağlar. Synonym’in faydaları; bir tablonun adını daha kısa bir isimle çağırabilir, gerçek objelerinin ismini saklayabilir, objenin ismi değiştiğinde synonym’in ismini değiştirmek zorunda olmayız.

Bir tablo için synonym oluşturalım.

CREATE PUBLIC SYNONYM DEP FOR DEPARTMENT;

Bu sysnonym kullanarak tablodan veri çekelim

SELECT * FROM DEP;
DEPARTMENTID DEPARTMENTNAME
1
Human Resources
3
Accounting Department
2
Information Technologies