View
242
Download
6
Category
Preview:
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
Recommended