ders # 2 - yıldız teknik Üniversitesiukalay/index_files/vt/vt_files/02-er... · ·...
TRANSCRIPT
-
Ders # 2
VER TABANI DERS NOTLARI
Veri Taban Tasarm
Varlk Bagnt ile veri modelleme (data modeling with EER, UML)
nal Yarmaan, "Veri Taban Sistemleri", Akademi Yaynevi, 2010
Elmasri, Navathe, "Fundamentals of Database Systems", 5th Edition,
Addison Wesley, 2008
Toby Teorey, Sam Lightstone, Tom Nadeau, H.V. Jagadish,"DB Modelling
& Design, Logical Design", 5th Edition, Morgan Kaufmann, 2011
-
Genel Bak
Veri taban tasarm prosesi genel emas
Temel Kavramlar
Varlk, Varlk kmesi ve nitelikleri, Bant, Bant kmesi,
bant snrlamalar ve bant trleri, Rol tanmlama
Anahtar nitelik
Zayf Varlk Kmeler
Yardmc Kavramlar Genelleme
Kmeleme, Kompozisyon
rnek bir VT :(COMPANY veri taban)
ER ve UML veri modeli ile rnekler
-
VT Tasarm Prosesi
VT tasarm Veri modelleme
Veri mhendislii, biliim uzmanl ile ilgili
Uygulama tasarm Program ak ve
arayzlerin tasarm
Yazlm mhendislii ile ilgili
Use Data-flow, sequence
diagrams or scenarios
ER
-
VT Tasarm Prosesi
-
VT Tasarm
Gereksinimlerin toplanmas ve analizi
(Requirements collection and analysis)
VT Tasarmcs, veri gereksinimlerini anlamak ve
belgelemek iin mstakbel veri taban kullanclar
ile grmeler (interview) yapar
kt: veri gereksinimleri
Uygulama iin ilevsel gereksinimler (Functional
requirements)
-
VT Tasarm
Kavramsal ema
Kavramsal bir tasarm
Veri gereksinimlerini aklamal
Varlk trleri detayl aklama (entity types)
Bantlar detayl aklama (relationships)
Kstlamalar ayrntl aklama (constraints)
st-dzeyli veri modelinden gerekletirim veri
modeline dnm (Transformed from high-level
data model into implementation data model)
-
VT Tasarm
Mantksal tasarm veya veri modeli
elemesi (data model mapping)
Result is a database schema in implementation
data model of DBMS
Physical design phase
Internal storage structures, file organizations,
indexes, access paths, and physical design
parameters for the database files specified
-
Varlk Bant (Entity-Relationship, ER) Modeli
ER modelde verileri tanmlama: Varlklar (Entities)
Bantlar (Relationships)
Nitelikler (Attributes)
UML diyagramlar (UML notasyonu) Yazlm gelitirme metodolojisinde kullanr.
ERdaki varlk UML nesnesine karlk gelir.
UML nesnesinde 3 ksm var: isim, nitelikler ve operasyonlar.
8
-
Varlk/Bant kmeleri
Var olan ve dierlerinden ayrdedilebilen her nesneye varlk denir. Benzer varlklarn oluturduu kmeye varlk kmesi denir.
Varlklarn nitelikleri vardr. Bu nitelikler ile varlklar birbirinden ayrdedilir. EMPLOYEE ()
John Smith, Research , ProductX
Her niteliin bir deer alan, yani olurlu deerlerinin tmn ieren bir kme (domain) vardr. Niteliin tipi, deer aral, format bu kapsamdadr.
ki ya da daha ok varln arasndaki olay tanmlamaya yarayan kavrama bant denir. Ayn trdeki benzer bantlarn kmesine ise bant kmesi denilir. RENC DERS ALIYOR ise
DERS ile RENC arasndaki bant
-
Temel yap talar: varlk, bant
10
Composite
attribute
A key
A key
Multivalued
attr.
three CAR entity instances in the entity set for CAR
RENC DERS R
N N
-
Bant Kme snrlamalar Bant ismi (relationship name): manaya uygun bir isim
Bantdaki varlklar (participating entity types): 2 veya daha ok, ayn veya farkl varlklar arasnda
Bantnn derecesi (degree of a relationship): 2,3,...
Eleman saylar,kaa-kalk olduu (cardinality ratio): 1-1, 1-N, N-1, N-N
ROL tanmlama: Bantdaki varlklarn bantdaki ilevlerini belirleyen bir rolleri vardr. Bunun ak, anlalr olmad durumlarda belirtilmesi gerekir.
11
-
ER notasyonlar
-
Var olma bamll (existence dependency):
B varlk kmesindeki her bir b varl, A varlk kmesindeki bir
a varl ile mutlaka bir bant kurmas gerekiyorsa, B varlk
kmesi A varlk kmesine var olma bamldr denir. Burada A
birincil varlk, B ikincil varlk olarak adlandrlr.
(total / partial participation)
13
A B
N N
okuyan
ER:
a b
-
Anahtar ve Gl/Zayif Varlk Kmeleri
Varlk/Bant kmesindeki varlk/bantlar birbirinden
ayrd etmek iin kullanlan nitelik veya nitelik grubuna
anahtar denir.
Super anahtar (superkey): Btn anahtarlar super anahtardr.
Aday anahtar (candidate key) : BA Bir varlk/bant kmesinin K
super anahtarnn hi bir z-alt kmesi super anahtar deilse, K o
varlk/bant kmesinin aday anahtar olur. ( dier bir ifade ile aday
anahtar=minimal super key)
Bir varlk kmesinde anahtar bulunamyorsa (btn nitelikler
birarada olsa da anahtar olmuyorsa) bu varlk kmesine
zayf varlk kmesi denir. Anahtar olan varlk kmesine
gl varlk kmesi denilir.
Zayf varlk kmesi, gl bir varlk kmesi ile 1-1 veya N-1 tipinde
var olma baml bir bant kurmaldr.
Zayf varlk kmesindeki, ayn gl varla bal olan varlklar ayrd
edebilmek iin ayrdedici nitelik(ler)-AN tanmlamak gerekir. 15
-
zayf varlk kmesi rnekleri
SatFormu
Satr
ss
satno
1
N
tarih
geneltoplam
satrno
Satr
ss
N
LSE RENC
1 N
okuyan
rNo isim
-
Anahtar Belirleme Bantlardaki anahtarlar:
N-N bant kmesinin anahtar, bant ierisindeki varlk kmelerinin anahtarlarnn hepsidir.
1-N bant kmesinin anahtar N-tarafndaki bantnn anahtardr.
1-1 bant kmesinin anahtar ise herhangi bir varlk kmesinin anahtar olabilir.
Zayf varlk kmesinin anahtar, var olma bants ierisindeki gl varlk kme(ler)sinin BAlar + ANdir.
Buna gre; nceki rneklerdeki bantlarn anahtarlarn belirleyiniz.
17
-
ok dereceli ER-bant rnekleri
Yukardaki 3l bantda: ki varlk arasndaki bant, 3. varlktan bamsz bir ekilde ifade
edilemiyor.
18
ALIAN
MAKNE
PROJE PM
-
ok dereceli ER-bant rnekleri
-
ok dereceli ER-bant rnekleri
Which one conveys more information?
(s,j,p) (s,p) (j,p) (s,j)
One more step further: If we do not want
to use weak entity type, how to design?
-
EER-Genelleme (IS A, Ait olma bants) Katlm kstlamas:
Zorunlu
Seimli
Ayrklk kstlamas:
OR
AND
4 farkl kstlama tanmlanabilir,
ihtiyaca gre kullanlabilir.
Supertype varlk nitelikleri/anahtar,
subtype varlklarnda geerlidir.
21
GEM
YOLCUGEMS YKGEMS
ER: (disjoint,partial) ER: (overlap,total)
gNo arlk
yolcuSays kaliteSnf yk
Kapasitesi ykTr
d
ER: (disjoint,total)
-
Kmeleme(aggregation, "part of" bants) has a, bulunur/sahiptir bants
Kme ile Paralar arasndaki bantlar iin kullanlr.
Para kmeye "varolma baml" ise composition oluyor. (UML'de
kullanlyor)
Generalization'daki Supertype varlk nitelikleri/anahtar, subtype varlklarnda geerli idi. "Part-of" bantlarnda ise, btn varlk tipindeki niteliklerin paralar
tipindeki varlklara gemesi mmkn deildir.
22
-
UML ile modelleme
-
UML generalization constructs UML composition/aggregation constructs
composition: paralar tek bana
bulunamaz, bir mana ifade etmiyorlar.
Para, kmeye varolma bamldr.
aggregation: paralar kendi balarna bir
mana ifade ediyorlar. rnein, Course
silinse Teacher mevcut kalabilir.
-
UML n-ary relationship UML'de primary key
-
UML ile Varlk ve Bant rnekleri
26
ARABA
Kayt No BA
Plaka No
Marka
Model
Sene
Renk
0..* 0..*
RENC
#
ad
soyad
cns
doumtar
DERS
#
ad
kredisi
dili => ald
notu
A B 1..* 0..*
=> AB
BLM RENC 1..1 0..*
=> okuyan
-
rnek (UML)
27
ERKEK KADIN 0..1 0..1
=> evli
A B 1..6 0..50
=> AB
RETMEN
RENC
DERS KAYIT PERSONEL
ast
st
0..*
1..1
=> ynettii
0..* 0..*
RENC
#
ad
soyad
cns
doumtar
DERS
#
ad
kredisi
dili => ald
notu
-
LSE
liseNo BA
liseAd
sehir
RENC
rNO AN
ad
soyad
1..1 0..*
=> okuyan
K
kiiNo BA
ad
soyad
KURS
kNO BA
kAd
kTr
0..* 0..*
=> katlr
yl
baar
Aadaki rnekte bir kii ayn kursu farkl yllarda tekrar
alabiliyorsa bant kmesinin anahtar ne olur?
rnek (UML)
-
rnek (UML)
29
AkdBir
aNo BA
ad
kurTarih
Personel
pNo BA
pAd
AkdPer
nvan
dal
dariPer
eitim
grevi
Kadrolu
kadroDer
aylkMaas
YarZamanl
szlemeTar dersBanacr
Yabanc
lkesi
dili
{zorunlu,OR}
{zorunlu,OR}
0..*
1..1
0..1
0..1
GEM
gNo BA
arlk
YOLCUGEMS
yolcuSays kaliteSnf
YKGEMS
ykKapasitesi
ykTr
-
UML, composition
Oda
No AN Bina
bNo BA
Personel
pNo BA Blm
bNO BA
1..*
0..1
0..*
1..1
1..1 1..*
calr
-
rnek 1: COMPANY Database We need to define a database schema design based on the following
(simplified) requirements of the COMPANY Database:
The company is organized into DEPARTMENTs. Each department has a name, number and an employee who manages the department. We keep track of the start date of the department manager. A department may have several locations.
Each department controls a number of PROJECTs. Each project has a unique name, unique number and is located at a single location.
We store each EMPLOYEEs social security number, address, salary, and birthdate.
Each employee works for one department but may work on several projects.
We keep track of the number of hours per week that an employee currently works on each project.
We also keep track of the direct supervisor of each employee.
Each employee may have a number of DEPENDENTs.
For each dependent, we keep track of their name, sex, birthdate, and relationship to the employee.
-
Initial Design of COMPANY DB Based on the requirements, we can identify four initial entity types in the COMPANY
database:
DEPARTMENT, PROJECT, EMPLOYEE and DEPENDENT
The initial attributes shown are derived from the requirements description
DEPARTMENT
number BA
name
manager
managerStartDate
locations
PROJECT
number BA
name
location
controllingDept
EMPLOYEE
Ssn BA
fName
lName
department
birthDate
salary
worksOnProjects
supervisor
adress
DEPENDENT
name
dependsToEmp
birthDate
relationships
-
lk tasarm sonras iyiletirmeler-1 Eer mevcut nitelik baka bir varla iaret
ediyorsa: Nitelik Bant haline dnsmeli.
Eer mevcut nitelik cok deer alabiliyorsa: Nitelik Varlk kmesi haline dnsmeli.
Eer mevcut varlk kmesi sadece 1 nitelie sahip ve bir bants varsa: Varlk kmesi nitelik haline dnmeli.
Varlk kmeleri arasnda "genelleme" mmknse yaplmal. Yukarda-aaya (top-down), aadan-yukarya (bottom-up) yaklamlar kullanlmal.
Bantlarn dereceleri tekrar degerlendirilmeli, gerekirse "kmeleme" ile daha ack yaplanmalar kullanlmal.
-
lk tasarm sonras iyiletirmeler-2: fazlalklarn karlmas
Eer bir bant diagramdan ckarld zaman bilgi kayb olmuyorsa, bu bantnn fazladan/gereksiz (redundant) olduuna karar verilmi olur. Genelde, diagramdaki cevrimler kontrol edilir. Cevrim icindeki bir bantnn fazladan olma ihtimali vardr. Aadaki rnekte, bir SECTION'a ait not girii takip ediliyor. Eer girilen bir
not (GRADE), bir SECTION iin ise ve o SECTION bir PROF tarafndan veriliyosa; "assigns" bantsna ihtiya olacak mdr? Elbette "Olmayacaktr".
-
COMPANY DB (devam)
35
In the refined design, some attributes from the initial entity types are refined into
relationships:
Manager of DEPARTMENT -> MANAGES
Works_on of EMPLOYEE -> WORKS_ON
Department of EMPLOYEE -> WORKS_FOR
Controlling_Department of PROJECT CONTROLS
Supervisor of EMPLOYEE SUPERVISION
Dependent_name of DEPENDENT DEPENDENTS_OF
In general, more than one relationship type can exist between the same
participating entity types(MANAGES and WORKS_FOR are distinct relationship
types between EMPLOYEE and DEPARTMENT (Different meanings and different
relationship instances.)
-
36
DEPARTMENT
PROJECT
EMPLOYEE
DEPENDENT
LOCATION
city BA
==> works for
==> manages
==
> h
as
==
> s
uperv
ises
1..* 1..1
1..1 0..1
1..*
1..*
1..1
0..*
0..*
1..* 1..1
0..*
0..1
0..* startDate
hours
COMPANY DB UML DIAGRAMI
-
COMPANY DB ER DIAGRAM
Recursive
relationship
-
rnek-2 (ER,UML) ehirler, lkeler ve nehirleri gsteren bir veritaban
tasarm.
ehir lke
Nehir
R
S
1 N N
M
Nehirlerin hangi ehirlerden getiini tutmak istersek?
ehir lke
Nehir
R
S
1 N
N M
ehir lke
Nehir
1..1 1..* 1..*
0..*
ehir lke
Nehir
1..1 1..*
1..*
0..*
-
rnek 3 Bir irketteki blmler ve personel bilgilerini tutan Blm-Personel veri
tabann dnelim. Her blm ok sayda personele sahiptir ve her personel en fazla bir
blme baldr.
Bir blmn sadece bir yneticisi (mutlaka) vardr.
Buna gre aadaki durumlar birbirinden bamsz olarak cevaplaynz
Bir blmn yneticisi ancak o blme bal bir personel olabiliyor ise, Nasl bir ER modeli izilebilir?
Bir blmn yneticisi herhangi bir personel olabiliyor ise, Nasl bir ER modeli izilebilir?
1..1 0..*
B P
B P
Yoneticimi?
1..1 0..*
0..1 1..1
==> sahip
==> sahip
-
rnek 4 SATI FORMU SatNO: 12
Tarih:
11.06.2009
SatrNo ParaNo Parasim Tanm Miktar
Birim
Fiya
t Toplam
1 23645 ayakkab Spor,basketbo
l 1 110 110
2 12674 gomlek klasik tarz 2 80 160
3 ... ...
GenelTopl
am: 880
Yukarda sat bilgileri tutan rnek bir sat formu ierii grlmektedir. Buna karlk gelen
veri taban, SATI, PARA ve SATIR olmak zere 3 varlk setinden olumaktadr. (Ayn
ParaNolu paralar farkl satrlarda tekrar edebilir.)
Bu varlk setlerini, zeliklerini ve aralarndaki ilikileri gsteren ER diyagramn iziniz.
SATI
SATIR
PARA
pNo BA
isim
fiyat
tanm 1..1
0..*
0..*
0..1
miktar
genelToplam ve
satrToplamFiyat
nitelikleri tretilmi
nitelik. Kavramsal
tasarmda
yazlmasa da olur.
-
rnek 5 Birden ok oyuncu ieren takmlar arasnda, iki takm ieren oyunlar
ile ilgili bilgiler tutulmak isteniyor. (Oyuncu en fazla bir takmn eleman olabilir. )
her oyunda hangi takmlarn yer ald (hangi takm ev sahibi hangisi misafir olduu) ve oyunun tarihi ve sonucu gibi bilgiler tutuluyor.
her oyunda takmn hangi oyuncularnn yer ald bilgisi takip ediliyor.
oyuncu takm ait
1 N
ev
N skor
tarih
oyun
1
misafir
N
1 skor oynar
N
M
sonu
PK
-
rnek 6
Bir banka hesabna ait ilemler hakknda ilem zaman(gn,saat), ilem tipi ve miktar bilgileri tutuluyor.bu olay takip eden ER diyagram:
hesap ilem ait 1 N
gn saat
GS tip
miktar Not: gn,saat
partial key
oluyor. ilem ait
Yukardaki zm, ayn hesap zerinde ayn saat iinde ilem yaplmamas durumunda geerlidir. Bu koul kalkt zaman, tasarm ilem zaman olarak sistem zamann saklamaldr;
hesap ilem ait 1 N
gn saat
GSS tip
miktar Not:
gn,saat,saniye
partial key
oluyor.
ilem ait
saniye
Farkl hesaplarda ayn saat iinde
ayn miktar ve tip ilem olabilir!!!
Farkl hesaplarda ayn saniye iinde
ayn miktar ve tip ilem olabilir!!!
-
UAK REZERVASYON SSTEM
Each FLIGHT is identified by a flight NUMBER, and consists of one or more
FLIGHT_LEGs with LEG_NUMBERs 1, 2, 3, etc.
Each leg has scheduled arrival and departure times and airports, and has
many LEG_INSTANCEs--one for each DATE on which the flight travels.
FARES are kept for each flight.
For each leg instance, SEAT_RESERVATIONs are kept, as is the
AIRPLANE used in the leg, and the actual arrival and departure times and
airports.
An AIRPLANE is identified by an AIRPLANE_ID, and is of a particular
AIRPLANE_TYPE.
CAN_LAND relates AIRPLANE_TYPEs to the AIRPORTs in which they can
land.
An AIRPORT is identified by an AIRPORT_CODE.
-
rnek 7: Figure 3.17, Elmasri/Navathe book
-
rnek 8 Adaylarn irketler ile yaptklar grme ve teklif edilen i pozisyonunu takip etmek
istiyoruz.
Aday bir irketin birden ok blm ile grme yapabilir ve her blmden farkl pozisyon
teklifler alabilir; bir blmden ancak 1 pozisyon teklifi alabilir.
Teklif edilen pozisyonun maasi, zellikleri gibi bir takm zellikler daha tutulmak isteniyor..
Grmenin yapld gn (yl/ay/gn) bilgisi tutluyor. Ayn blm ile grme ancak farkl
bir gnde olabiliyor.
Gerek aday isimleri gerek irket isimleri sistemde biricik olduunu varsayabiliriz..
Blm hakknda bir bilgi tutulmuyor.
45
ADAY BLM mlakat N
yapt N Tarih(gn)
RKET
1
isim isim
N
isim pozisyon
MLAKAT
grme ADAY RKET
BT
Tarih(gn)
Blm
N
teklif N
POZSYON
1
isim
maa ......
1 1 isim isim
-
rnek 9 (genelleme)
46
ER diyagramnda IS A (AT OLMA) bants
Katlm, zorunlu ise ift izgi ile, zorunlu deilse tekizgi ile
Ayrklk, OR(disjoint) ise yuvarlak iinde d ile, AND
(notdisjoint) ise yuvarlak iinde o ile ifade eidliyor.
-
rnek 10 (genelleme)
47
-
rnek 11 (genelleme)
48
-
rnek 12: bilgisayar satis VT
bilgisayar
masast dizst
d
donanm
video hafza
d
seeskart
yazlm
l ist.
evre birim
monitr klavye
d
fare
dh
md
bi
by
gerekir
dh
1
N
1 N
1
N
1
N
1
N M
N
Uygun nitelikler belirleyebilirsiniz...
-
rnek 13: Byk VT tasarm rnei
-
rnek 13 (devam)
-
EK (Aktivite diagramlar)