ders # 2 - yıldız teknik Üniversitesiukalay/index_files/vt/vt_files/02-er... ·  ·...

52
Ders # 2 VERİ TABANI DERS NOTLARI Veri Tabanı Tasarımı Varlık Bagıntı ile veri modelleme (data modeling with EER, UML) Ünal Yarımağan, "Veri Tabanı Sistemleri", Akademi Yayınevi, 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

Upload: lamphuc

Post on 23-Apr-2018

230 views

Category:

Documents


9 download

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)