Veritabanı Tasarımı. Seriler ile Çalışma

Benzer belgeler
Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA

Oracle da kullanılan veri tipleri:

SORGULAR. Öğr.Gör.Volkan Altıntaş

Veritabanı Tasarımı. Veritabanı Hareketleri

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

Veritabanı Tasarımı. İndeksler ve Eşanlamlar

VERİTABANI. SQL (Structured Query Language)

Veritabanı Tasarımı. Birincil Anahtar, İkincil Anahtar ve Kontrol Kısıtlamaları

Veritabanı Tasarımı. Tablo Oluşturma

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

Veritabanı Tasarımı. DML İşlemleri ve Görünümler

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

SQL Komutları (2) Uzm. Murat YAZICI

Bölüm 4: DDL Veri Tanımlama Dili

Veritabanı Tasarımı. Tablo Değiştirme

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

Veritabanı Tasarımı. Sütunlar, Karakterler ve Satırlar ile Çalışma

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Veri tabanı içinde bulunan tablolardakibazı sütunlarda bulunan bilgilerin, herkes tarafından görülmesi istenmeyebilir.

YAPISAL SORGULAMA DİLİ (SQL)

BİLİŞİM TEKNOLOJİLERİ

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

SQL e Giriş. Uzm. Murat YAZICI

Veritabanı Tasarımı. Kartezyen Çarpım ve Join İşlemleri

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama

VERİTABANI Veritabanı Yönetimi

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

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

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

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

Örnek: HAFTA12B isimli bir kullanıcı tanımlayalım. Bu kullanıcıya gerekli yetkileri verelim.

SQL Kod ile Tablo Oluşturma

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

VERİTABANI ve YÖNETİMİ

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

SORGULAR VE ÇEŞİTLERİ II

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.

Veritabanı Tasarımı. Basit Eşleme: Dönüşüm İşlemi

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.

Veritabanı Tasarımı. SQL Deyimi Anatomisi

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri Kısıtlamalar (Constraints)

Üst Düzey Programlama

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

Veri Tabanı Hafta Dersi

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

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

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

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

İNTERNET PROGRAMCILIĞI DERSİ

Veritabanı Tasarımı. Alt Sorgu Temelleri

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

Lıke Joker Karakterler, Is [not] Null, Order By, Group By, As

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME

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

İLERİ VERİTABANI SİSTEMLERİ SUAT ÜSTKAN

Öğr.Gör.Murat KEÇECĠOĞLU. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

BÖLÜM- 9: KULLANICI ERİŞİMLERİNİ YÖNETMEK

ACCESS PLATFORMUNDA SQL

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com

Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning)

STORED PROCEDURE LER (Saklı Yordamlar)

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL-2

Tavsiye Edilen Önhazırlık Temel SQL Server 2000 bilgisi edinmek.

Aşağıdaki tabloyu inceleyin. Yeni kayıt girme, var olan bir kaydı silme veya güncelleme işlemlerini bu tabloya göre yapacağız.

Veritabanı Tasarımı. Çoklu Satır Alt Sorgular

VERİ TABANI ve YÖNETİMİ

Birden Çok Tabloda Sorgulama (Join)

PostgreSQL ve PL/pgSQL

Veritabanı Tasarımı. İlişkisel Veritabanı Kavramlarına Giriş

PostgreSQL ve PL/pgSQL

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

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

Veri Tabanı Programlamaya Giriş

SQL TRIGGERS (Tetikleyiciler)

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi

Veritabanı. SQL (Structured Query Language)

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

DELPHİDE SQL KULLANIMI Database İlişkisi

Çok tablolu sorgulamalar

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Microsoft SQL Server Sorgulama

SQL Query and Table Application

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

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

Transkript:

Veritabanı Tasarımı Seriler ile Çalışma

Konular Bir serinin en az üç kullanışlı özelliğini listelemek Bir seri oluşturan SQL ifadesini yazmak ve çalıştırmak Veri sözlüğünü bir seri tanımını onaylamak için USER_SEQUENCES kullanarak sorgulamak NEXTVAL kullanarak tabloda seri benzersiz numaralar oluşturmak için kuralları uygulamak Seri değerlerini önbelleğe almanın avantaj ve dezavantajlarını listelemek Bir seride boşlukların neden oluştuğuna üç neden vermek 2

Amaç Londra maratonuna katılan 30000 kişinin isimlerini, herhangi bir kişiye aynı kimlik numarası vermeden veritabanına girmek ne kadar can sıkıcı olur tahmin edebilir misiniz? Eğer öğle yemeği için gidip döndüğünüzde başkası koşucuların uygulamalarına girmişse ne olur? Tekrar nereden başlayacağınızı nasıl bilebilirsiniz? Neyse ki, SQL otomatik olarak benzersiz sayılar oluşturmada yinelenen sayıların detayları hakkında endişeyi ortadan kaldıran bir işleme sahiptir. Numaralandırma işlemi SEQUENCE olarak adlandırılan bir veritabanı nesnesi tarafından gerçekleştirilir. 3

Seri Nesnesi Tablo ve görünüm veritabanı nesnelerini nasıl oluşturacağınızı biliyorsunuz. Üçüncü veritabanı nesnesi seridir. Bir seri benzersiz numaraları otomatik olarak oluşturmak için kullanılan paylaşımlı bir nesnedir. Paylaşılabilir bir nesne olduğundan çoklu kullanıcı ona erişim sağlayabilir. Tipik olarak, seriler, birincil anahtar değeri oluşturmak için kullanılır. 4

Seri Nesnesi Birincil anahtarlar her bir satır için benzersiz olmalıdır. Seri bir Oracle iç rutini tarafından oluşturulur ve arttırılır (azaltılır). Bu nesne yazmanız gereken kodlama miktarını azalttığı için zaman tasarrufu sağlar. 5

Seri Nesnesi Seri numaraları tablolardan bağımsız olarak oluşturulup saklanır. Bu nedenle aynı seri çoklu tablolar için kullanılabilir. Seri oluşturmak için: 6

Seri Nesnesi sequence INCREMENT BY n START WITH n Seri oluşturucunun adıdır. Seri numaraları arasındaki tamsayın aralığını belirler (varsayılan değer 1). Oluşturulacak ilk seri numarasını belirler (varsayılan başlangıç değeri 1). 7

Seri Nesnesi MAXVALUE n NOMAXVALUE MINVALUE n Serinin oluşturulabileceği maksimum değeri belirler. Artan bir seri için 10^27 ve azalan seri için -1 maksimum değerini belirler (varsayılan). Serinin minimum değerini belirler. 8

Seri Nesnesi NOMINVALUE CYCLE NOCYCLE 9 Artan bir seri için 1 ve azalan seri için (10^26)minimum değerini belirler (varsayılan). Seri maksimum değerine ulaştıktan sonra değer üretmeye devam edip etmeyeceğini belirler (varsayılan değer NOCYCLE) CAHCE n NOCACHE Oraclesunucu ön yer tutma ve bellek için ne kadardeğer belirler (varsayılan ön bellek 20). Sistem çökerse, değerler kaybolur.

Seri Oluşturma Londra maratonu koşucuları için oluşturulan seride numaralar 1 artar ve 1 den başlar. Bu durumda seriyi 1 den başlatmak en iyi başlangıç noktasıdır. 10

Seri Oluşturma Elit gruptaki en iyi koşucunun 1 numara giymesi bir gelenektir. Bölüm numarası ve çalışan numarası gibi diğer durumlar için başlangıç sayısı farklı atanabilir. En az 30.000 koşucu olacağı için, serinin maksimum değeri beklenen koşucu sayısının üstünde belirlenir. 11

Seri Oluşturma NOCACHE seçeneği serideki değerlerin sistem hatası durumunda kayıpları önlemek için ön bellekte tutulmasını önler. 12

Seri Oluşturma NOCYCLE seçeneği numaralandırmayı 1 den başlatır ve 50000 aşımından korur. CYCLE seçeneğini eğer seri birincil anahtar değerleri oluşturmak için kullanılıyorsa eski satırları yenileri ekleme süresinden daha hızlı çalıştıran güvenilir bir mekanizma olmadığı sürece kullanmayın. 13

Serileri Onaylama Oluşturulmuş bir seriyi onaylamak için USER_OBJECTS veri sözlüğü sorgulanır. Serinin tüm özelliklerini görmek için USER_SEQUENCES veri sözlüğü sorgulanır. Aşağıdaki SELECT komutunda değer isimlerini listeleyin. NOCACHE belirtilmişse yukarıdaki sorgudaki last_number sütunu bir sonraki uygun seri numarasını gösterecektir. CACHE belirtilmişse sorgudaki last_number sütunu ön bellekte tutulmayan bir sonraki uygun seri numarasını gösterecektir. 14

NEXTVAL ve CURRVAL Sözde Sütunları NEXTVAL sözde sütunu belirlenen seriden başarılı seri numaralarını çıkarmak için kullanılır. NEXTVAL ifadesini seri adı ile nitelendirmelisiniz. Eğer sequence.nextval ifadesini belirtirseniz, yeni bir seri numarası oluşturulur ve mevcut seri numarası CURRVAL içine yerleştirilir. 15

NEXTVAL ve CURRVAL Sözde Sütunları Aşağıdaki örnekte DEPARTMENTS tablosuna yeni bir bölüm eklenmektedir. Yeni bir bölüm numarası oluşturmak için DEPARTMENTS_SEQ serisi şu şekilde kullanılır: 16

NEXTVAL ve CURRVAL Sözde Sütunları Yeni bölüme çalışanlar almak istediğinizi düşünün. Tüm yeni çalışanlar için çalıştırılacak INSERT komutu şu kodu içermelidir: Not: Önceki örnekte EMPLOYEE_SEQ isimli serinin yeni çalışan numarası oluşturmak için daha önceden oluşturulmuş olduğu varsayılmaktadır. 17

NEXTVAL ve CURRVAL Sözde Sütunları Aşağıdaki örnekteki CURRVAL sözde sütunu varsayılan kullanıcı için oluşturulan yeni seri numarasını belirtir. NEXTVAL varsayılan kullanıcı oturumunda seri numarası oluşturmak için CURRVAL belirtilmeden kullanılmalıdır. CURRVAL seri adı ile nitelendirilir. sequence.currval belirtilirse bu kullanıcı işlemi tarafından üretilen son değer geri döndürülür. 18

Seri Kullanma Bir seri oluşturduktan sonra tablonuzda kullanmak üzere seri numaralar oluşturur. Seri değerlerini NEXTVAL ve CURRVAL sözde sütunlarını kullanarak belirtin. NEXTVAL ve CURRVAL ifadelerini şu içeriklerde kullanırsınız: Alt sorgunun bir parçası olmayan bir SELECT komutunun SELECT listesi INSERT komutundaki alt sorgunun SELECT listesi INSERT komutunun VALUES deyimi UPDATE komutunun SET deyimi 19

Seri Kullanma NEXTVAL ve CURRVAL ifadelerini şu içeriklerde kullanamazsınız: Bir görünümün SELECT listesinde SELECT ifadesinde DISTINCT anahtar kelimesi ile SELECT ifadesinde GROUP BY, HAVING ya da ORDER BY deyimleri ile SELECT, DELETE ya DA UPDATE ifadelerindeki bir alt sorguda CREATE TABLE ya da ALTER TABLE ifadesindeki DEFAULT deyiminde 20

Seri Kullanma Londra maratonu örneğine devam edersek, aşağıdaki sözdizimi koşucular tablosuna yeni bir katılımcı bilgisi eklemek için kullanılır. Koşucuların kimlik numarası serideki NEXTVAL tarafından alınarak oluşturulur. 21

Seri Kullanma runners_id_seq için şimdiki değerine bakmak için CURRVAL kullanılır. DUAL tablosunun kullanımına bu örnekte bakın. Oracle Uygulama Geliştirici bu sorguyu çalıştıramaz fakat bunun nasıl çalışacağını anlayabilirsiniz. 22

Seri Kullanma Serilerdeki önbellekte tutma seri değerlerine daha hızlı erişimi sağlar. Önbellek seriye ilk defa erişildiğinde doldurulur. Sonraki seri değeri için her istek önbellek serisinden alınır. Son seri değeri kullanıldıktan sonra, seri için bir sonraki istek belleğe serilerin başka önbelleğini çeker. Önbellekte tutulan seri sayısını varsayılan değeri 20 dir. 23

Seri Olmayan Numaralar Seri üretici boşluk olmadan seri numaraları oluşturmasına rağmen, bu işlem veritabanı commit ya da rollback işleminden bağımsız olarak oluşur. Boşluklar (seri olmayan numaralar) şu şekilde oluşturulabilir: Bir seri içeren ifadeyi rollback yaparak, numara kaybolur Bir sistem hatası ile. Eğer seri değerleri ön belleğe alır ve sistemde hata oluşursa bu değerler kaybedilir. Aynı seri birden çok tablo için kullanılarak. Bunu yaparsanız her tablo seri numaralarda boşluklar içerecektir. 24

Sonraki Değere Bakma Eğer seri NOCACHE ile oluşturulmuş ise bir sonraki uygun seri değeri artım yapılmadan USER_SEQUENCES tablosu sorgulanarak arttırılabilir. 25

Seriyi Düzenleme Diğer veritabanı nesnelerinde olduğu gibi bir seri ALTER SEQUENCE ifadesi kullanılarak değiştirilebilir. Şayet Londra maratonu 50000 koşucu kaydını aşsaydı ve yeni numaralara ihtiyaç duysaydınız ne olurdu? Seri MAXVALUE değerini var olan sayı sırası değiştirilmeden arttırmak için değiştirilmelidir. 26

Seriyi Düzenleme Bir seri değiştirilirken bazı doğrulamalar yapılır. Örneğin, o anki sıra sayısından daha az olan yeni bir MAXVALUE değeri çalıştırılamaz. 27

Seriyi Güncelleme Kuralları ALTER SEQUENCE deyimi çalıştırılırken birkaç kural geçerlidir. Bunlar: Değiştirmek için serinin sahibi olmanız ya da ALTER yetkisine sahip olmanız gerekir ALTER SEQUENCE deyiminden sadece gelecek sıra numaraları etkilenir. START WITH seçeneği ALTER SEQUENCE kullanılarak değiştirilemez. Seri kaldırılmalı ve farklı bir seri numarası ile tekrar başlaması için tekrar oluşturulmalı. 28

Seriyi Kaldırma Bir seriyi veri sözlüğünden kaldırmak için DROP SEQUENCE deyimi kullanılır. Kaldırmak için serinin sahibi ya da DROP ANY SEQUENCE yetkisine sahip olmanız gerekir. Bir kez kaldırıldığında seri artık belirtilemez. 29