Veri Tabanı Yönetim Sistemleri -I · PDF file1 VERİ TABANI YÖNETİM SİSTEMLERİ 1 GELENEKSEL DOSYALAMA SİSTEMLERİ Vei tabanından önce kullanılan yönetim sistemleidi. Vei

Embed Size (px)

Citation preview

  • Veri Taban Ynetim Sistemleri -I Egemen Tekkanat

  • 1

    VER TABANI YNETM SSTEMLER 1 GELENEKSEL DOSYALAMA SSTEMLER

    Veri tabanndan nce kullanlan ynetim sistemleridir.

    Veri taban ynetim sistemiyle geleneksel veri taban sistemlerinin fark;

    Veri taban sistemleri byk miktarda ve karmak sistemleri depolamakta kullanlrken,

    geleneksel dosyalama sistemleri az ve daha karmak olmayan verileri depolamak iin

    kullanlr.

    Gelenekselde depolanacak veri birbirinden farkl(bamsz) oluturulmak zorundadr.

    Geleneksel dosyalama sistemli sral eriimi dosyalar, dorudan eriimi dosyalar.

    (Sral eriimde zaman kayb vardr. stenilen veriye annda ulalamaz. Sradan hepsini tarar doruyu

    bulana kadar devam eder veriyi bulunca ilem sona erer.)

    (Dorudan eriim sradan eriimdeki skntlar gidermek iin kan bir sistem. Tekrardan tarama

    yapmadan dorudan veriye eriilir. Bunda id ya da index numaras vardr. Bu numarayla veriye eriilir.

    Bu numaralar benzersizdir.)

    Veri taban: Herhangi bir konuda birbiriyle ilikili ve dzenli bilgiler topluluudur.

    Veri tabannda anahtar kullanm

    Tablodaki kaytlar birbirinden ayrt etmek iin ve zorunlu alanlar belirtmek iin kullanlr.

    Anahtarlar 3e ayrlr;

    - Birincil Anahtar (Primary Key - Benzersizdir. Bir deer bir kere kullanlr daha fazla

    kullanlmaz.)

    - Foreign Key (ki ve ya daha fazla tablo arasnda iliki kurar. liki kurulamad srece

    kullanlamaz.)

    - Tekil Anahtar (Tek bir deer alr. Benzersizdir. Primary Keyden fark tekil anahtar null deeri

    alabilir.)

    likilendirme (joining):

    Tek bir sorgu ile birden fazla tablodan veri ekmek.

    Geerlilik kural=> Veri tipiyle ilikili olmal.

  • 2

    Veritaban ynetim sistemleri

    Veritaban Ynetim Sistemleri Grevleri:

    1. Verileri tutmak iin veri taban oluturmak

    2. Varolan veritabannda deiiklik yapmak

    3. Veritabannn bakmn ve onarmn yapmak

    4. Verilerin tutulduu tablolar aras iliki kurmak

    5. Kullanc etkilerini belirlemek iin oluturulmu bir sistemdir.

    stemci-sunucu prensibiyle alrlar.

    Salad Yararlar (VTYS)

    -Veri tekrarn engeller (Varolan tabloda iliki kur 2 tablo birletir ayn bilgileri ieren bir daha tabloda

    oluturulmaz)

    -Veri tutarll (Bir index deiiyorsa bir daha tablo oluturmaz btn tabloda deitirilecek.)

    -Veri paylam(Farkl kullanclar ayn ya da farkl zamanda Veritabanna eriim salayabilirler.)

    -Veri btnl (Farkl tablo ayn kaytlar teker teker silip, gncellemez.)

    -Veri Gvenlii (Kullancya yazma deil okuma yetkisi vermek vb.)

    -Veri bamszl (Arka planda veritaban YS naptn bize gstermez.)

    Veritaban trleri

    -likisel Veritaban

    -Hiyerarik Veritaban

    -Nesne Tabanl Veritaban

    Tablo Yaratmak

    Veri

    Taban

    Kullanc

    Programlar

    VTYS

    Kullanclar

  • 3

    CREATE TABLE calisan (

    );

    Veri taban tasarm

    Varlk: varolan benzerlerinden ayrt edilebilen her ey varlktr. Her bir tablo varlk kmesi iindekiler

    de varlktr.

    Nitelik: Her bir varln zelliidir.

    Domain: Varlklarn alabilecei deer araldr.

    liki: Varlklar arasndaki iliki.

    Varlk-iliki modeli sembolleri

    maa

    Yabanc

    dil

    Personel

    id

    Grev

    ad

    Personel

  • 4

    liki sonucunda varlklar oluabilir. Bu niteliklere tanmlayc varlk denir.

    Varlk kmesi kendisiyle iliki kuruyorsa recursive iliki denir.

    Personel

    Ynetir

    Recursive rnek

    Varlk kmesi

    Nitelik

    Anahtar nitelik

    liki (Sonucunda nitelik; varlklar

    oluabilir. Bu niteliklere tanmlayc

    nitelik denir.

    ok deerli nitelik

    Zayf varlk kmesi (ok deerli nitelii yok. Bu

    ancak varlk kmesiyle birlikte alabilir.)

  • 5

    Birebir ilikilerin tabloya Dntrlmesi

    Varlk kmeleri tablolara dntrlr. Niteliklerde tablo stunlarna dntrlr.

    Bir varlk kmesinin birincil anahtar dier varlk kmesinin yabancl anahtar olur.

    Create table personel(

    Per_id int,

    Adres varchar(50),

    Ad_soyad varchar(50),

    Maas int);

    Per_id Ad_soyad

    adres maa

    personel Ynetici Blm

    Bol_id

    ad

    1 1

    niversite aittir faklte

    Zayf varlk

    kmesi

    Varlk kmesi

  • 6

    27.02.2013

    Birden oa liki Modelinin Tablo ile Gsterilmesi

    oktan oa Modelin Tablo le Gsterilmesi

    oktan oa modelde ilikiyi tablo olarak ekliyoruz.

    id Ad

    Yayn_tar Ynet

    men

    Film Oynar Sinema

    id

    ad

    m n

    Tarih

    Saat

    Tel

    Adres

    Per_id Ad_soyad

    adres maa

    personel Ynetici Blm

    Bol_id

    ad

    1 n

  • 7

    ok deerli varlklarn Tabloya dntrlmesi

    rnek: Aadaki emann tablosunu ve kodlarn yapnz.

    Ad

    Personel

    id

    Y_dil

    maa

    Adres

  • 8

    Cmd derlemesinden Create database db; yazp tabloyu oluturuyoruz.

    Mysqli atmzda cari alanmz oluuyor Create table diyerek yeni yeni tabloyu oluturuyoruz.

    Tablonun adn yazp;

    CREATE TABLE Cari (

    idCari INT NOT NULL ,

    Cariad VARCHAR(45) NULL ,

    adres VARCHAR(45) NULL ,

    tel INT NULL ,

    PRIMARY KEY (`idCari`) );

    Kodlaryla stunlar oluturuyoruz. Ayn ekilde tm tablolar oluturuyoruz.

    KTPHANE VERTABANI

    Varlklar

    Ktphane -> ktphane_no,adres_no,isim_aciklama

    Kitaplar-> ISBN,kitapadi,yayn_tarihi,s_sayisi

    yeler-> uye_no,adi,soyadi,cinsiyet,adres,tel,e-posta

    Cari rn

    Cari_

    id

    Cari_

    ad

    adres tel

    Urun_id

    fiyat

    Urun_

    ad

    alr

    Satar

    tarih miktar

    tarih miktar

    n

    n

    m

    m

  • 9

    Yazarlar-> yazar_no, adi, soyadi

    Adresler-> adres_no,cadde,mahalle,Bina_no,sehir,postakodu,ulke

    Kategoriler->kategori_no,kategori_adi

    Ktphane-adresler=1-1

    yeler-adresler=1-n

    Ktphane-kitaplar=n-m

    Yazarlar-kitaplar=n-m

    Kategori-kitaplar=n-m

    Ktphane iin Adres=> ok deerli varlk

    Uyeler iin adres=>ok deerli varlk

    yeler-kitaplar=emanet

    Kitaplar-kutuphane=aittir

    yeler-adresler=oturur

    Adresler-ktphane=bulunur

    Kitaplar-ktphane=bulunur

    Kitaplar-kategori=bulunur

    Kitaplar-yazarlar=yazar

    Ktphane ilikilerini aadaki gibi kurduk n-m ilikisinde Kategoriler_has_Kitaplar tablosu

    kendiliinden geldi. Ayn ekilde yukarda yazanlara gre ilikileri kurduk.

    zerinden tablolar veritabannda oluturduk.

  • 10

    Mysqli atmzda btn tablolarmzn burada yaratldn

    gryoruz. Yaratlan bu tablolarn zerine sa tklayarak new create

    table dedik ve ileri ileri diyerek gerekli kodlar yazp tablolarmz

    oluturuyoruz.

    CREATE TABLE Adresler (

    adres_no INT NOT NULL ,

    cadde VARCHAR(45) NULL ,

    mahalle VARCHAR(45) NULL ,

    Bina_no INT NULL ,

    PRIMARY KEY (`idCari`) );

    ekilde de grld gibi btn tablolar iin gerekli stunlar eklemi

    olduk.

  • 11

    06.03.2013

    Tablolarmz oluturmak iin komut alanndan create database ezgi; diyerek database oluturuyoruz.

    Sonrasnda mysqli aarak local ksmna tklayp ayoruz. Tek tek tablolar oluturuyoruz tablolar

    oluturduktan sonra her tablonun ustune gelip send to sql editr diyerek istediimiz kodlarn

    grntlyoruz. Ardndan alt alta gelen bu kodlar kaydediyoruz ve mysqlin ana sayfasndan create

    err model from sql script diyerek tablomuzu kaytl olduu alandan cekyoruz. place imported alann

    iaretliyoruz. Execute dediimizde yukardaki tablolar direk geliyor ililkileri kendimiz oluturuyoruz.

    CREATE TABLE bolum (

    bol_id int(11) NOT NULL,

    bol_ad varchar(45) DEFAULT NULL,

    PRIMARY KEY (bol_id)

    )

  • 12

    CREATE TABLE ders (

    d int(11) NOT NULL,

    ad varchar(45) DEFAULT NULL,

    PRIMARY KEY (`id`)

    )

    CREATE TABLE ogre (

    ogr_id int(11) NOT NULL primary key,

    ad varchar(45) DEFAULT NULL,

    unvan varchar(45) DEFAULT NULL,

    )

    CREATE TABLE ogrenci (

    ogr_no int(11) NOT NULL primary key,

    adsoyad varchar(45) DEFAULT NULL,

    adres varchar(45) DEFAULT NULL,

    d_tar smalldatetime DEFAULT NULL,

    )

    create table personel(

    per_id int;

    adsoyad varchar(50),

    adres varchar(50),

    sehir varchar(25),

    unique(per_id)

    );

    Unique: null olabilir(bo). rnein 2 nolu kaytta kaytl olan kii iten kt bu kiinin idsi kimseye

    verilmez.

    NEMLi : Bir alan ayn anda hem primary key hemde unique key olamaz.

    create table ornek (

    id int primary key not null,

    ad varchar(20)

    );

    Burada d alann primary key yaptk.

  • 13

    create table ogrenciler(

    ogr_no int not null dentity(1,1),

    ad varchar(20);

    Buradaki dentity(1,1), sayesinde otomatik doldurma oluyor elle yazmaya gerek kalmyor.

    Bu ifade art birden balasn ve birer birer artsn anlamna gelmektedir.

    create table notlar(

    ogr_no int not null,

    ders_kodu varchar(20),

    vize int check(vize>0),

    final int check(final>0 and final

  • 14

    ogr_no int foreign key references notlar(ogr_no),

    ders varchar(50));

    Bu kodlarla notlar tablosundaki ogr_noyu caliskan tablosundaki ogr_no ile balant yapm oluyoruz.

    Create table ogrenci(

    ogr_no int,

    ders_kodu varchar(50),

    basari int,

    constraint fk_ogrno foreign key(ogr