Veritabanı Tasarımı Ve Yönetimi

Benzer belgeler
Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

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

İlişkisel Veri Tabanları I

1 Temel Kavramlar. Veritabanı 1

SQL e Giriş. Uzm. Murat YAZICI

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

2 Temel Kavramlar (Devam) Veritabanı 1

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

VERİTABANI ORGANİZASYONU

BIM 312 Database Management Systems. Veritabanı Kavramına Giriş

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

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

KISITLAMALAR (CONSTRAINT)

Veri Tabanı Tasarım ve Yönetimi

İLİŞKİSEL VERİTABANLARI

MOBİL UYGULAMA GELİŞTİRME

VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI

HASTANE OTOMASYONU VERİ TABANI YÖNETİM SİSTEMLERİ TEMEL VERİTABANI KAVRAMLARI

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

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

Veritabanı Uygulamaları Tasarımı

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

VERİ TABANI UYGULAMALARI

VERİTABANI Veritabanı Yönetimi

Veritabanına Uygulanması

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

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

Oracle da kullanılan veri tipleri:

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

SORGULAR VE ÇEŞİTLERİ II

Veri Tabanı Hafta Dersi

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

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

VeritabanıYönetimi Varlık İlişki Diyagramları. Yrd. Doç. Dr. Tuba KURBAN

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

VERİTABANI. SQL (Structured Query Language)

İnternet Programcılığı

UZAKTAN EĞİTİM MERKEZİ

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

Veri Tabanı-I 4.Hafta

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.

2 İlişkisel Veritabanı Tasarımı ve Normalizasyon. Veritabanı 1

Database Management System

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

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

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

Veri Bütünlüğü ve Constraint ler. Veritabanı 1

İNTERNET PROGRAMCILIĞI HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

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

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

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri

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

VERİ TABANI YÖNETİM SİSTEMLERİ. Öğr. Gör. Selçuk Özkan

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

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

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

Veri Tabanı Örnekleri

Veritabanı Tarihi. 1960s: Bilgisayarlar artan saklama kapasiteleri ile birlikte firmalar tarafından karşılanabilir hale gelmeye başladı

Coğrafi Bilgi Sistemlerine Giriş. Ünite 5 - Veri Tabanı Yönetim Sistemleri

Veri Tabanı-I 1.Hafta

VERİ TABANI ve YÖNETİMİ

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

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş

Pursaklar İMKB Teknik ve Endüstri Meslek Lisesi

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

Oracle Database 11g: Introduction to SQL

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

SQL Komutları (2) Uzm. Murat YAZICI

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

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

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

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

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

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) İlişkisel Veritabanı Modeli

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

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

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

VERİTABANI YÖNETİMİ. İlişkisel Veritabanı 4.HAFTA. Veritabanı Yönetimi Prof. Dr. İbrahim Çil

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

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

Mysql Veritabanı Komutları

İNTERNET PROGRAMCILIĞI DERSİ

Veritabanı ve Yönetim Sistemleri

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

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

Veritabanı Tasarımı. Tablo Oluşturma

Veri Tabanı Programlamaya Giriş

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

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

PostgreSQL ve PL/pgSQL

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

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.

2 İlişkisel Veritabanı Tasarımı. Veritabanı 1

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

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

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

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi --

Transkript:

SAKARYA ÜNIVERSITESI Veritabanı Tasarımı Ve Yönetimi Hafta 3 Prof. Dr. Ümit KOCABIÇAK Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir. "Uzaktan Öğretim" tekniğine uygun olarak hazırlanan bu ders içeriğinin bütün hakları saklıdır. İlgili kuruluştan izin almadan ders içeriğinin tümü ya da bölümleri mekanik, elektronik, fotokopi, manyetik kayıt veya başka şekillerde çoğaltılamaz, basılamaz ve dağıtılamaz. Her hakkı saklıdır 2008 Sakarya Üniversitesi

Veri Modeli Yaklaşımları Büyük organizasyonlarda verinin yönetimini sağlamak için veri tabanı sistemlerindee çok sayıda model geliştirildi. En çok kullanılan veri tabanı yönetim modelleri yaklaşımları, hiyerarşik, ağ, ilişkisel ve nesneye dayalı modellerdir. Hiyerarşik ve ağ veri tabanı yönetim modelleri önceden oluşturulmuş sistemler olduğu için günümüzde kullanım oranları azalmıştır. Günümüzde en fazla kullanılan model ilişkisel veri tabanı modelidir. İlişkisel veri tabanı modellerinin eksiklerini kapatmak için nesneye dayalı modeller geliştirilmiştir.

Hiyerarşik Veri Tabanları IBM tarafından geliştirilen veri tabanı yönetim sistemidir. Bu sistemde veri tabanı, hiyerarşik olarak temsil edilmiştir. Hiyerarşik veri tabanları verilerinin hiyerarşik olarak oluşturulduğuu yerlerde kullanılabilirler. Ancak veri tekrarı ve veri kaybı gibi dezavantajları mevcuttur. Bu veri tabanı tipi, ana bilgisayar ortamlarındaa çalışan yazılımlar tarafından kullanılmaktadır. Bu türde en çok kullanılan yazılım, IBM tarafından çıkarılan IMS'dir. Uzun bir geçmişe e sahip olmasına rağmen, PC ortamına uyarlanann hiyerarşik veri tabanları yoktur. Hiyerarşik veri tabanları, bilgileri bir ağaç (tree) yapısında saklar. Kök (root) olarak bir kayıt ve bu köke bağlı dal (branch) kayıtlar bu tip veritabanının yapısını oluşturur. Veri tabanındaki kayıtlar ise birbirlerine sahiplik (ebeveyn çocuk veya efendi köle) bağlantısı ile organize edilmişlerdir. Veri tabanının yapısını daha iyi anlamak için aşağıdaki şematik görüntüyüü incelemeliyiz.

Ağ Veri Tabanları Hiyerarşik veri tabanlarının yetersiz kalmasından dolayı 1960 yılında toplanan CODASYL adlı bilimsel konferanstaki bilim adamlarının ortak çalışması sonucu ortaya konulmuş bir veri tabanı türüdür. Ağ veri tabanları, verileri ağaç yapılarının daha gelişmiş şekli olan graflar (ağaç yapısının kendisi de özel bir graftır) şeklinde saklarlar. Bu yapı en karışık yapılardan biridir. Sahiplik ilkesi, hiyerarşik modelde olduğu gibi tek yönlü değildir. Veri tabanında veri tekrarını önlemektedir. Fakat bu durumda karmaşık bir veri tabanı yapısının ortaya çıkmasına yol açmıştır. Bu veri tabanı sistemini daha iyi anlamak için aşağıdaki şekli inceleyelim.

İlişkisel Veri Tabanları E. F. Codd tarafından geliştirilmiştir. Bu sistemde veriler tablo şeklinde saklanır. Bu veri tabanı yönetim sisteminde veri alış verişi için özel işlemler kullanılır. Bu işlemlerde tablolar operand (işlemci) olarak kullanılır. Tablolar arasında ilişkiler belirtilir. Bu ilişkiler matematiksel bağıntılarla (ilişkilerle) temsil edilir. Bu sistemde veri iki boyutlu bir tabloda saklanır. İki boyut satır ve sütunu gösterir. İlişkisel veri tabanı, diğer veri tabanlarından farklı olarak bağlantılar yerine tablolar arasında ilişki kurarak çalışır. İlişkisel veri tabanını geliştirmek diğer veri tabanlarına göre daha kolaydır. Veri yapısı daha basit ve programlamak için açıktır. En fazla kullanılan veri tabanı sistemi olmasına rağmen bazı aksaklıkları mevcuttur. Bu sistemi daha iyi anlamak için aşağıdaki tabloya bakabiliriz. sid name login age gpa 53666 Jones jones@cs 18 3.4 53688 Smith smith@eecs 53650 Smith smith@math 18 19 3.2 3.8

Nesneye Dayalı Veritabanı Günümüzde nesne kavramı her yerde kullanılmaya başlandı. Pek çok kelime işlemci ve hesap tablosu programlarının alıştığımız görünümlerine artık bir de nesneler eklendi. Ancak, bu gerçek anlamda bir nesneye yönelik yazılım demek değildir. Yüzde yüz nesneye yönelik bir yazılımın tamamen nesne temelli çalışması gerekir. Yazılımın mutlaka nesneye yönelik bir dilde yazılmış olması beklenir. Fakat Windows gibi işletim sistemi üzerinde çalışan yazılımlar bu özelliklere tümüyle sahip değillerdir. Sadece nesne kavramını kullanarak bazı ek özellikler sunar. Nesneye yönelik veri tabanı da, C++ gibi nesneye dayalı bir dille (OOPL) yazılmış olan ve yine C++ gibi nesneye dayalı (OOPL) bir dille kullanılan veri tabanı anlamına geliyor. Günümüz teknolojisinde yüzde yüz nesneye yönelik bir veri tabanı yaygın olarak kullanıma sunulmuş değildir. Veri tabanlarında veri pasif durumdadır. Nesneye dayalı veri tabanında ise veriler sınıflar halinde toplanmıştır. Sınıflar ise nesnelerin bir topluluğudur ve aynı sınıftaki diğer nesneler gibi davranırlar. Sınıfların özellikleri ve davranışları veri tabanı nesne isminin tanımında bulunmaktadır. Bu tür veri tabanlarında obje ve nesneler kullanılarak, veri tabanı nesnelerinin yapısı ve davranışları depolanabilir ve planlanabilir. İlişkisel veri tabanları ile karşılaştırıldığında nesneye yönelik veri tabanlarının sahip olması gereken üstünlükler şunlardır : Nesneler, bir tabloda yer alan bir kayıttan çok daha karmaşık yapıya sahiplerdir ve daha esnek bir yapıda çok daha kullanışlı olarak düzenlenebilmektedirler. Nesneye dayalı veri tabanında, yapısı gereği arama işlemleri çok hızlı yapılabilir. Özellikle büyük tablolarla uğraşırken ilişkisel veri tabanlarındann çok daha hızlı sonuca ulaşırlar. Ancak çalışma mantığı tümüyle değişir. Tüm bu özellikler tamamen nesneye yönelik olan veri tabanları için geçerlidir. Bazı ilişkisel veri tabanları ile çalışan yazılımlarda da nesnenin bazı özellikleri kullanılır, ama nesneye yönelik veri tabanı bunu kendini ilişkisel veri tabanı kurallarına uydurarak gerçekleştirebilir.

Niçin İlişkisel Model? Çok yaygın kullanılan model. DB2, Informix, Microsoft, Oracle, Sybase, vs Son rakip: nesneye dayalı model ObjectStore, Versant, Ontos Ortaya çıkan birleşim: nesne ilişki modeli Informix Universal Server, UniSQL, O2, Oracle, DB2

İlişkisel Veritabanı İlişkisel veri tabanı modeli ilk defa 1970 yılında Dr. E.F. Codd tarafındann ortaya atılmıştır. Model, veri tabanına kayıt edilmiş bilgilerin belli kurallara uymasını kapsar. İlişkisel veri modeli İlişkisel veri tabanı dillerini ortaya çıkarmıştır. İki önemli özelliği vardır; Tablo : Veriler satır ve sütünlardan oluşan tablo halinde tutulur. Şema : İlişki adı ve ilişkii niteliklerinin adlarından oluşur. ÖRNEK ogrenci(ogrno: string, ad: string, login: string, yas: integer, ort: real).

İlişkisel Veritabanı Tablolar Bir İlişkisel veri tabanında bilgiler tablolar halinde saklanır. Bir veri tabanında birden fazla tablo bulunabilir. Veri tabanının alt yapısı tablolardan oluşur. Tablo belli bir amaç ve belli bir konudaki verileri içeren bir taşıyıcıdır. Mesela; öğrenci bilgileri, müşteri bilgileri, stok bilgileri, sipariş bilgileri, vb. gibi. Bir ilişkisel veri tabanı tasarımında en önemli kısım tabloların tasarımıdır. Tabloları tasarlarken onlara verdiğimiz özellikler ve yaptığımız sınıflandırma veri tabanı performansı ve ilerde alınacak olan raporlar ve sorguları da etkiler. Verilere erişimi de doğrudan etkiler. Bunun için tabloların tasarımı sırasında tablolarda kullanılacak olan alanların birbiriyle alakalı olmasınaa dikkat etmemiz gerekir. Bir tablonun tasarımı yapılırken veri tekrarı olmayacak şekilde tasarlanmasına dikkat edilmelidir. Bu veri tekrarı, verilerin saklanmasının etkinliğini azalttığı gibi veri hatalarına da yol açar. Bir tablo içersinde bütün bilgileri toplamaya gerek yoktur. Mümkünse veriler birbirleriyle olan ilgilerine göre küçük küçük tablolara bölünür. Mesela; öğrenci, ders ve bolum bilgilerini bir tabloda tutup gereksiz veri girişimi arttırmaktansa bu verileri ayrı ayrı tablolarda tutarak hem veri tekrarından kurtulmuş oluruz hem de daha tutarlı bir yapıya ulaşmış oluruz. Müşteri Kodu Adı Telefon Adres A74 Seren 0 212 444444 İstanbul A47 Melina 0 342 111111 Gaziantep

İlişki Anahtarları Süper Anahtar (Birincil Anahtarlar (PRIMARY KEY)) Birincil anahtar, tablodaki kaydı tek başına temsil eden bir veridir. Eğer bir alan belli bir alana göre sıralanacaksa, çift girişler önlenmek isteniyorsa ve verilere daha çabuk ulaşmak için birincil anahtar oluşturulur. Diğer tabloların alanlarıyla ilişkilendirmeler yapmak içinde birincil anahtarlar kullanılır. Bir tabloda sadece bir tane anahtar olmayabilir. Fakat birincil anahtar bir tanedir. Birincil anahtar birden fazlaa alanın birleştirilmesinde oluşturulmuş olabilir. Bu şekilde oluşturulmuş anahtarlara "Birleştirilmiş Anahtar" denir. Bu yöntem geneldee bir tabloda kayıtları tek başına temsil eden bir alan bulunmadığı zaman kullanılır. Anahtar alanda yer alan veri, tablonun o alanı içinde tek olması gerekmektedir. İlişkisel veri tabanlarının en önemli özelliklerinden biri tekrarlanan kayıtların bulunmamasıdır. Aynı kaydın tabloya tekrar girişini önlemek için birincil anahtarlar kullanılır. Anahtar alan içinde veri tekrar etmiyor fakat istisnai durumlar varsa bu durumda en iyi çözüm esas anahtar yerine geçecek olan bir birleşik anahtar oluşturmaktır. Bir tabloda bazı alanları boş bırakabiliriz, fakat birincil anahtarı boş olarak geçemeyiz, çünkü böyle yaparak birincil anahtarın tek olma kuralını bozmuş oluruz.

İlişki Anahtarları Aday Anahtar Bir tabloda birincil anahtar sadece bir tanedir. Aday anahtar sayısı ise birden fazla olabilir. Aday anahtar bir alanın istenen kaydına dahaa çabuk erişmek ve kaydı sıralı bir şekilde görmek için kullanılır. Birincil anahtara göre yapılan tüm işlemler aday anahtar için de geçerlidir. Fakat aday anahtarlarda veri tekrarı olabilir. Aday anahtar kullanmak sıralamayı kolaylaştırırken veri girişini bir miktar yavaşlatır. Çok sık kullanılan alanlar için aday anahtar oluşturmak her zaman yararlıdır. Fakat fazla sayıda aday anahtar oluşturarak veri tabanını yavaşlatmanın da bir anlamı yoktur.

İlişki Anahtarları Yabancı Anahtar (FOREIGN KEY) Bir tabloda olan bir anahtar alan başka bir tabloda da yer alıyorsa, yani tablodaki bir anahtar alan başka bir tablodaki anahtar alanı gösteriyorsa buna "yabancı anahtar" denir. Yabancı anahtar genelde diğer tablolarla ilişki kurmak için kullanılır. Bir yabancı anahtarın, diğer tablolardaki birincil anahtarlarla aynı özelliklere sahip olması gerekmektedir. Farklı iki tablodaki iki ayrı alanın aynı adı ve aynı özellikleri taşıması yabancı anahtar olacak anlamına gelmez. Bir tablodaki birincil anahtarda meydana gelen bir değişiklik onunla eşleşmiş olan yabancı anahtarların da değişmesine neden olur. Bu sayede veri tutarlığı sağlanmış olur.

İlişkiler Bire Bir İlişki Bu tür ilişkilerde iki tabloda da eşit sayıda kayıt vardır ve bir tablodaki bir kayda karşı diğer tabloda da sadece bir kayıt karşılık gelir. Aslında bu tür ilişkiler, tablolar arası ilişkilerden daha çok bir tablo diğer tablonun devamı gibidir. Bire bir ilişkiler çok kullanılan ilişki türü değildir. Güvenlik dışında bir neden yoksa bu iki tabloyu birleştirmek mümkündür. Böyle ilişkide bir tablo diğerinin içindeymiş gibi kullanılır Müşteri Kodu A001 A002 B001 Adı Ümit Ayberk Beyza Telefonu Adresi 1234567 Sakarya 9876543 Malatya 3498543 Ankara Müşteri Kodu Kredi A001 23450 A002 56000 B001 10000 Bakiye Banka 2300 Garanti 1200 Akbank 4500 İş Bankası

İlişkiler Bire Çok İlişki Bire çok ilişkiler, ilişkisel veri tabanında en çok kullanılan ilişki çeşididir. Bu ilişkide temelde bire bir ilişkiye benzer fakat burada ilişkilendirilen tablolardan birer kayıt olmasına rağmen bir tablonun bir kaydına karşılık diğer tabloda birden fazla karşılıkk gelir. Bire çok ilişkide klasik olarak bir kaydın ona bağlı sahip olduğu alt kayıtları tutarlı biçimde kontrol etmeye karşılık gelen bir yapıdır. Bu tür ilişkide bir tablonun birincil anahtarına karşılık diğer tablodaki eşdeğer yabancı anahtar denk gelir. Müşteri Kodu A001 A002 B001 Adı Ümit Ayberk Beyza Telefonu Adresi 1234567 Sakarya 9876543 Malatya 3498543 Ankara Stok Kodu KT123 MK234 CS657 Müşteri Kodu A001 A002 A001 Miktar Alış Fiyatı Satış Fiyatı 12 1200 1345 3 1750 2100 2 200 225

İlişkiler Çoka Çok İlişki Bu tür ilişkide birinci tabloda yer alan çok sayıdaa kayda karşılık diğer tabloda da yine çok sayıda karşılık gelir. Her iki tabloda da birden fazla kayda karşılık birden fazla kayıt karşılık gelir. Çoka çok ilişkiler karışık oldukları için fazla kullanılmazlar. Ayrıca veri tabanının bu ilişkileri kontrol etmesi daha zordur. İki tablo arasındaki bu tür ilişkileri ortadan kaldırmak için üçüncü bir tablo kullanmak en iyi yöntemdir. Aşağıdaki örnekte Mob Kod arasında çoka çok ilişkisi vardır. Sipariş No Stok Kodu Açıklama Alış Fiyatı Satış Fiyatı 2008SP001 A001 Çamurluk 1200 1345 2008SP005 A002 Ön Far 1750 2100 2008SP010 A001 Vites Kolu 200 225 Müşteri Kodu M007 M017 M456 Müşteri Adı Ali Veli Ayşe Stok Kodu Müşteri Adresi Miktar A001 Trabzon 12 A002 Sinop 17 A001 Kars 2

SQL Sorgulama Dili 1970 yılında IBM tarafından geliştirilmiştir. Standarttlar : SQL 86 SQL 89 (küçük revizyon) SQL 92 (büyük revizyon) SQL 99 (büyük revizyon, şu anda kullanılan )

The SQL Sorgulama Dili 18 yaşındaki öğrencileri bulmak için: SELECT * FROM Students S WHERE S.age=18 sid name login age gpa 53666 Jones jones@cs 18 3.4 53688 Smith smith@ee 18 3.2

Çoklu İlişkii Sorgulama SELEC FROM WHER CT S.name, E.cid M Students S, Enrolled E RE S.sid=E.sid AND E.grade= A sid name login age gpa 53666 Jones jones@cs 18 3.4 53688 Smith smith@eecs 18 3.2 53650 Smith smith@math 19 3.8 sid cid grade 53831 Carnatic101 C 53831 Reggae203 B 53650 Topology112 A 53666 History105 B S.name Smith E.cid Topology112

Tablo Oluşturma CREATE TABLO <tablo adı> (<Tablonun alanın adı> <alanın tipi> <alanın kısıtlaması>...) CREATE TABLO komutu kullanılırken tablonun her alanı (sütunu) için veri tipi ve başka bazı parametreleri vardır. Bazı alanlar (sütunlar) için kısıtlamalarının gösterilmesi gereklidir. Bu kısıtlamalar aşağıdaki şekildee sayılabilir; 1. Not Null, alan için bir değerin mutlaka girilmesi gerektiğini gösterir. (Bu parametre daha çok birincil anahtarlar ve eşsiz alanlar için kullanılır. ) 2. Default, alan için bir başlangıç değeri verilmesinde kullanılır. Bu değer sabit bir değer olabileceği gibi, Null değeri de olabilir. 3. İsteğe bağlı olarak constraint anahtar kelimesi kullanılarak bir veya birden fazla kısıt kullanılabilir. Bu kısıtlar şunlardır. a. PRIMARY KEY (Birincil anahtar) b. UNIQUE (her kaydın bir alan için farklı bir değer olması gerektiğini gösterir. c. REFERENCES (başka bir tablonun alanıyla ilişki kurmak için

Veri Tipleri Veri Tipi CHAR (n) INTEGER REAL DATE Kullanım n tane karakterden oluşan karakter katarını gösterir. Tamsayıları gösterir. Kesirli sayıları göstermek için kullanılır. Tarih göstermek için kullanılır.

SQL İlişkilerii Oluşturma CREATE TABLE Students (sid: CHAR(20), name: CHAR(20), login: CHAR(10), age: INTEGER, gpa: REAL) CREATE TABLE Enrolled (sid: CHAR(20), cid: CHAR(20), grade: CHAR(2))

Kayıt ekleme ve silme Tek bir kayıt ekleme: INSERT INTO Students (sid, name, login, age, gpa) VALUES (53688, Smith, smith@ee, 18, 3.2) Belirli şartı sağlayan kayıtları silmek: DELETE FROM Students S WHERE S.name = Smith

SQL de Primary ve Aday Anahtarlar CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid) ) CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid), UNIQUE (cid, grade) )

SQL de Foreign Anahtar CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid), FOREIGN KEY (sid) REFERENCES Students ) Enrolled sid cid grade 53666 Carnatic101 C 53666 Reggae203 B 53650 Topology112 A 53666 History105 B Students sid name login age gpa 53666 Jones jones@cs 18 3.4 53688 Smith smith@eecs 18 3.2 53650 Smith smith@math 19 3.8

Varlık İlişki Diyagramlarının İlişki Şemalarına Dönüştürülmesi Varlıkların tabloyaa dönüştürülmesi: sicilno isim maas Personel CREATE TABLE Personel (sicilno CHAR(11), isim CHAR(30), maas INTEGER, PRIMARY KEY (sicilno) )

Bağıntıların tabloya dönüştürülmesi: CREATE TABLE Works_In( ssn CHAR(11), did INTEGER, since DATE, PRIMARY KEY (ssn, did), FOREIGN KEY (ssn) REFERENCES Employees, FOREIGN KEY (did) REFERENCES Departments)

Zayıf Varlıkların Tabloya Dönüştürülmesi CREATE TABLE Dep_Policy ( pname CHAR(20), age INTEGER, cost REAL, ssn CHAR(11) NOT NULL, PRIMARY KEY (pname, ssn), FOREIGN KEY (ssn) REFERENCES Employees, ON DELETE CASCADE) ssn name lot cost pname age Employees Policy Dependents

Genellemelerin Tabloya Dönüştürülmesi name ssn lot 2 yaklaşım vardır : 1) Üst düzey varlık kümesi ve alt düzey varlık kümleri için birer tablo oluşturulur. Alt düzey tablolarında, üst düzeyin anhtarına yer verilir. 2) Üst düzey tablosu olmaz. Fakat alt düzey tablolarında üst düzeyin tüm nitelikleri tekrarlanır. hourly_wages Employees hours_worked ISA contractid Hourly_Emps Contract_Emps

Kümelemelerin Tabloya Dönüştürülmesi Bir bağıntı kümesinin (A) ucunda bir varlık kümesi yerine bir kümeleme (B) varsa, (A) tabloya dönüştürülürken varlık kümesi anahtarı yerine kümelemedeki (B) bağıntısının anahtarı kullanılır.