You are on page 1of 75

Cc khi nim v c s d liu hng i tng Tnh ng gi (Emcapsulation) v Tnh duy tr (Persistence) Tnh phn cp v k tha trong CSDL HT

Cc khi nim m rng

Cc khi nim v c s d liu hng i tng

NI DUNG

I II

S lc v cc khi nim trong hng i tng


i tng trong c s d liu hng i tng

Tng quan v khi nim CSDL hng i tng


C s d liu HT (Object-Oriented Databases), duy tr mt s tng ng trc tip gia th gii thc v cc i tng c s d liu cc i tng khng mt i tnh ton vn, tnh ng nht v c th d dng c xc nh v vn hnh. CSDL hng i tng dng biu din d liu mt cch tng minh r rng theo tng i tng c th vi cc phng thc c th trn tng i tng gip ngi s dng c th thao tc trn CSDL vi cc phng thc c th m i tng c.

CSDL hng i tng thng c s dng khi no ??


CSDL hng i tng thng c pht sinh do nhu cu pht trin ca h thng thng tin khi m CSDL quan h khng p ng c : khi c s thay i cc thuc tnh ca tng i tng CSDL quan h rt kh khn thay i; ngi lp trnh mun c ci nhn ton vn hng i tng trn h thng thng tin

S lc v cc khi nim hng i tng


i tng (object) : gm 2 thnh phn: gi tr (value) v phng thc (operations). C mt cu trc d liu phc tp cng nh cc thao tc c th. S khc nhau c bn gia CSDL hng i tng v CSDL quan h l CSDL hng i tng c biu din phng thc ca i tng, i tng no s dng phng thc ca i tng

S lc v cc khi nim hng i tng


V d: minh ho v i tng nh Mt con ngi, c cc d liu m t chi tit v h tn, tui, ngh nghip, a ch, i tng l mt my bay, gm cc thng s bay, t li, k thut.

S lc v cc khi nim trong hng i tng


Tnh k tha (inheritance): c tnh ny cho php mt i tng c th c sn cc c tnh m i tng khc c thng qua k tha. iu ny cho php cc i tng chia s hay m rng cc c tnh sn c m khng phi tin hnh nh ngha li Np chng phng thc ( operator overloading ): Cho php 2 phng thc c cng tn nhng c cc hnh vi khc nhau

VD: phng thc tinh_chuvi ca 2 lp hinh_vuong v hinh_tron

S lc v cc khi nim trong hng i tng


Tnh ng gi ( encapsulation ) Mt s m hnh HT bt buc tt c cc giao tip ca ngi dng vi i tng phi thng qua cc phng thc c nh ngha trc do i tng cung cp. iu ny i hi mt s ng gi y ca cc i tng Che du nhng chi tit ci t bn trong, ch cho php truy cp d liu thng qua cc phng thc ca i tng

S lc v cc khi nim trong hng i tng Lp (class ) Lp c th c hiu l khun mu cho php xc nh tp cc tnh cht ca i tng, cha cc thuc tnh v cc phng thc. Trong mt lp, ngi ta thng dng cc bin m t cc gi tr xc nh trng thi ca i tng v cc hm m t cc phng thc ca i tng

Trong c s d liu hng i tng, cc i tng c th c mt cu trc i tng phc tp ty cha tt c cc thng tin cn thit m cc i tng m t. Ngc li, trong cc h thng c s d liu truyn thng, thng tin v mt i tng phc tp thng c ri rc trn nhiu mi quan h, dn n mt s tng ng trc tip gia mt i tng ca th gii thc v c s d liu i din ca n.

i tng trong c s d liu HT


i tng Gm 2 thnh phn : gi tr v phng thc Gm 2 loi i tng: n gin v phc tp C th tn ti ngay c khi chng trnh chm dt v CSDL hng i tng c lu trong b nh th cp c th chia s vi nhiu chng trnh v ng dng

i tng trong c s d liu HT i tng c m t qua 3 c tnh:


ng nht ca i tng( Object Identity ) Cu trc ca i tng Tn ca i tng

Tnh ng nht ca i tng (Object Identity)


m bo s ton vn v ng nht vi i tng th gii thc OID (Object Identifier) Mi OID ch c gn mt ln cho i tng Ch : nu mt i tng b xa khi CSDL th gi tr OID ca n khng c gn cho i tng khc. OID khng c thay i khi to. c h thng to ra v ngi dng bn ngoi s khng thy c gi tr ca OID

Cu trc ca i tng
Mi i tng c 2 thnh phn chnh :
Gi tr Phng thc

Mt i tng c biu din qua (i, c, v) i l gi tr OID ca i tng (Object Identifier) c l loi khi to ca i tng (Type Constructor) v l gi tr ca i tng (Value) VD: O1 = (i1, atom, Xin cho)

Cu trc ca i tng

Cc loi khi to i tng: Loi c bn: atom Loi b (tuple type): tuple Loi tp hp (collection type) : set, list, bag, array

Cu trc ca i tng
Loi c bn: atom i tng c gi tr nguyn t VD: O1 = (i1, atom, Xin cho) Loi tp hp (collection type): set, list, bag, array i tng c gi tr l mt chui OID VD: O2 = (i2, set, {i1, i3}) Loi b (tuple type): tuple gi tr ca i tng gm cc thuc tnh c xc nh vi gi tr OID theo sau VD: O3 = (i3, tuple, <MSSV: i6, HOTEN: i7>)

Cu trc ca i tng
Kt lun: Gi tr ca mt i tng da trn dng khi to
C atom tuple set bag list array [i1, i2,, in] {i1, i2, , in} v gi tr nguyn t <a1 : i1, a2 : i2, an: in>

Cu trc ca i tng
VD: O2 = (i2, atom, Phan Hong M Dung) O3 = (i3, atom, Phm Th n ) O4 = (i4, atom, 2009 - 2013) O5 = (i5, atom, TH-2009) O6 = (i6, atom, 0912023) O7 = (i7, atom, 0912056) O8 = (i8, set, {i2, i3}) O9 = (i9, set, {i6, i7}) O10 = (i10, tuple, <MSSV: i9, HOTEN: i8>) O11 = (i11, tuple, <MALOP: i5, NIENKHOA: i4>) O12 = (i12, tuple,<LOP: i11, SINHVIEN: i10>)

Cu trc ca i tng
So snh gi tr gia 2 i tng: Bng nhau: c gi tr nguyn t bng nhau Trng nhau: c gi tr nguyn t bng nhau v OID phn gi tr (nu c) trng nhau VD: O1 = (i1, tuple, <a1: i4, a2: i6>) O2 = (i2, tuple, <a1: i5, a2: i6>) O3 = (i3, tuple. <a1: i4, a2: i6>) O4 = (i4, atom, 10) O5 = (i5, atom, 10) O6 = (i6, atom, 20) O1 v O2 c gi tr bng nhau nhng khng trng nhau O1 v O3 c gi tr trng nhau Lu : O4 v O5 c gi tr trng nhau nhng l hai i tng ring bit

Tm tt
i tng c biu din qua (i, c, v) OID Cc loi khi to i tng

Tnh ng gi (Emcapsulation) v Tnh duy tr (Persistence)

NI DUNG

I II

Encapsulation (Tnh ng gi)


Persistent Objects (i tng c nh)

I. Encapsulation

I - 1. Gii thiu

S ng gi (encapsulation) : s giao tip ca i tng v thnh phn bn ngoi ch thng qua cc phng thc (method) m i tng cung cp.

ng dng/ngi s dng

I - 2. Khi nim

PHNG THC
Khai bo phng thc Ci t phng thc Interface or Signature

Method or Body

Li gi hm

Message

I - 2. Khi nim
object constructor object destructor object modifier Khi to mt i tng mi Hy mt i tng
Sa i 1 hoc nhiu thuc tnh ca i tng

Dot notation

Gi phng thc, th hin thuc tnh ca i tng

I - 2. Khi nim

nh ngha thuc tnh

d.create_emp

Interface

d.salary

I 3. Phn loi thuc tnh


i tng

Visible Attributes
c truy xut trc tip t bn ngoi

Hidden Attributes
Ch cc phng thc khai bo trong lp mi c s dng

I 3. Phn loi thuc tnh


OBJECT A1 B1 A2 B2

C1 D1
METHOD

C2 D2
OQL

ng dng/ngi dng

NI DUNG

I II

Encapsulation (Tnh ng gi)


Persistent Objects (i tng c nh)

II Phn loi i tng


Mt i tng s c to ra khi chng trnh c thc thi hoc gi hm khi to. Nhng khng phi tt c cc i tng u c lu tr c nh trn CSDL. Transient Objects (i tng tm thi): i tng khng c lu tr c s d liu, n ch tn ti khi ng dng to ra n cn c thc thi. Persistent Objects (i tng bn vng): lu tr trong CSDL v tn ti sau khi chng trnh kt thc.

II Phn loi i tng


N T HNG
CT_N T HNG

MT HNG

Select* From (tn bng)


C_N_T_ HNG

C s d liu quan h

C_CT_N T HNG

C_MT_HNG

A B C
Phn mm ng dng

II Phn loi i tng


CT_N T HNG

A B C
C s d liu hng i tng Gi km yu cu lu tr lu di C_N_T_H NG C_CT_N T HNG C_MT_HNG

A B C
Phn mm ng dng

II Phn loi i tng


CT_N T HNG

A B C
C s d liu hng i tng Khng c nhu cu lu tr lu di C_N_T_H NG C_CT_N T HNG C_MT_HNG

A B C
Phn mm ng dng

II - Persistent Objects
Persistent Objects

Naming (c t tn)

Reachability (C th truy xut c)

K thut to mt Persistent Object

II - Persistent Objects - K thut to mt persistent object


1. Naming: mi i tng thuc v mt lp c t mt tn ring khc nhau
u im Nhc im D s dng, d khai bo Khng kh thi khi s lng i tng ln

2. Reachability: Lin kt i tng vi mt i tng persistent.


u im C th s dng trong thc t vi s lng i tng ln Nhc im Phi s dng km vi mt k thut to persistent object khc (vd nh naming)

II - Persistent Objects - K thut to mt persistent object

Class B Persistent

Define Class A Type set(B);

Class B

Class B

II - Persistent Objects - K thut to mt persistent object

II - Persistent Objects - K thut to mt persistent object

im khc nhau na CSDL quan h v CSDL hng i tng

Cc phng thc s dng chung cho tt c cc loi i tng nh select, insert, delete, modify chung v dng cho bt k mi quan h no trong CSDL.

i tng no s dng phng thc ca i tng

im khc nhau na CSDLquan h v CSDL hng i tng

Tt c cc i tng u xem nh l persistent, v n c lu trc tip xung h thng.

Khng phi tt c i tng u xem nh l persistent, v n c xem xt lu trc tip xung h thng.

Tnh phn cp v k tha trong CSDL HT

I
II

S phn cp v k tha theo kiu i tng


Rng buc trn tp i tng tng ng mt phn cp.

III

Nhn xt

1. S phn cp v k tha
Tha k l c ch cho php mt lp c p dng cc tnh cht ca lp cha ca n, phn nh mt c trng vn c trong quan h gia cc i tng thc t.
.

1. S phn cp v k tha

C ch k tha l mt u im ln ca m hnh hng i tng, bi khng ch phn nh bn cht ca cc quan h thc t m cn cho php ti u d liu v ti s dng m khi xy dng h thng V th i hi OO Database cung cp Kh nng phn loi lp i tng H tr kiu d liu mi c nh ngha da trn kiu d liu c trc

1. S phn cp v k tha

Type

name

Thuc

tnh

Phng

thc

1. S phn cp v k tha theo kiu i tng C php n gin khai bo mt kiu i tng l khai bo tn v lit k cc public function.
TYPE_NAME: function, function, , function

V d: Khai bo kiu i tng PERSON nh sau:


PERSON: Name, Address, Birthday, Age, SSN

1. S phn cp v k tha V d: Gi s cn nh ngha 2 kiu i tng nh sau:


EMPLOYEE: Name, Address, Birthdate, Age, SSN, Salary, HireDate, Seniority STUDENT: Name, Address, Birthdate, Age, SSN, Major, GPA

1. S phn cp v k tha

Supertype

B A

Subtype

B C

Name Address Birthdate Age SSN

Person

Salary HireDate Seniority

Major GPA
Student Employee

1. S phn cp v k tha theo kiu i tng C th khai bo li cho Student v Employee nh sau:
EMPLOYEE subtype-of PERSON: Salary, HireDate, Seniority STUDENT subtype-of PERSON: Major, GPA

1. S phn cp v k tha
xt thm mt v d na, c khai bo kiu i tng sau:
Xem

GEOMETRY_OBJECT: Shape, Area, ReferencePoint

RECTANGLE subtype-of GEOMETRY_OBJECT: Width, Height TRIANGLE subtype-of GEOMETRY_OBJECT: Side1, Side2, Angle CIRCLE subtype-of GEOMETRY_OBJECT: Radius

1. S phn cp v k tha
Ta thy, RECTANGLE, TRIANGLE v CIRCLE u l kiu con ca GEOMETRY_OBJECT ngha l u k tha tt c cc hm ca GEOMETRY_OBJECT: Shape, Area, ReferencePoint. Tuy nhin , cc hm m n k tha ca GEOMETRY_OBJECT khng phi u c cng ngha trong tng kiu con : Hm Shape: mi kiu d liu con u c mt hnh dng khc nhau Hm Area: i vi mi kiu con khc nhau, cn c phng thc tnh ton din tch khc nhau. Hm ReferencePoint : c ngha khc nhau i vi tng kiu con: N c th l tm im i vi RECTANGLE v CIRCLE ; tuy nhin, cng c th hiu l nh trong TRIANGLE Lm sao khc phc s hiu sai ng ngha ny ?

1. S phn cp v k tha
Gii

php: RECTANGLE subtype-of GEOMETRY (Shape = rectangle): Width, Height TRIANGLE subtype-of GEOMETRY (Shape = triangle): Side1, Side2, Angle CIRCLE subtype-of GEOMETRY (Shape = circle): Radius

1. S phn cp v k tha
Khi nh ngha mt kiu i tng l chng ta ch m t cho i tng thuc kiu , ch khng phi pht sinh i tng c th. Trong cc ng dng s dng csdl, cc i tng mi c pht sinh. Mi i tng s thuc mt kiu i tng c nh ngha trc (ging nh kiu d liu v bin d liu c s dng thuc kiu no).

Tnh phn cp v k tha trong CSDL HT

I
II

S phn cp v k tha theo kiu i tng


Rng buc trn tp i tng tng ng mt phn cp.

III

Nhn xt

2. Rng buc trn tp i tng tng ng vi mt phn cp

Extent: tp hp cc i tng thng c cng kiu hoc cng lp i tng. Tuy nhin vn c nhng ngn ng cho php mt extent cha cc i tng thuc nhng kiu khc nhau (SMALLTALK). y chng ta s xem xt trn khi nim mt extent cha cc i tng cng kiu (type).

2. Rng buc trn tp i tng tng ng vi mt phn cp

Cc i tng ca lp con cng c xem l i tng ca lp cha. Mt vi h thng CSDL HT c nh ngha sn kiu i tng h thng (gi l root class hay l object class) v extent ca n cha ton b cc object ca h thng. Tt c cc lp ngoi dng t nh ngha c xem nh l con ca lp Object (h thng).

2. Rng buc trn tp i tng tng ng vi mt phn cp


collection: tp cc i tng persistent (c lu c nh trong CSDL), c truy xut v chia s cho nhiu chng trnh. Transient collection: tp cc i tng tn ti trong qu trnh thc thi chng trnh v khng c lu li sau khi chng trnh kt thc.
Persistent

2. Rng buc trn tp i tng tng ng vi mt phn cp


Copy

Persistent collection Program

Transient collection

Terminated

Phn loi CSDL

So snh gia m hnh HT v m hnh thc th kt hp ER, m hnh quan h


M hnh HT Type i tng (object) M hnh ER M t thc th Thc th (entity) M hnh quan h nh ngha quan h B (tuple)

Lp i tng Tp thc th (entity Quan h (relation) (Class) set) Thuc tnh (attribute) Thuc tnh Thuc tnh (attribute) OID Method Kha chnh (Primary Kha chnh key) no no

Phn cp

Mi kt hp

Relationship

Ngun: Internet

So snh gia m hnh HT v m hnh thc th kt hp ER M hnh quan h v m hnh ER i khi khng m t c y v mt i tng. Khng th hin c cc phng thc trong cu trc. CSDL HT khc phc c cc hn ch ny.
Tuy nhin vic ng dng m hnh CSDL HT cn nhiu hn ch v cha c p dng nhiu. Ngi ta la chn cch s dng kt hp, trn tng ng dng s dng NNLT HT v bn di CSDL vn lu dui dng cc quan h pht sinh vn l mapping gia i tng v quan h.

Ngun: Internet

Cc khi nim hng i tng khc

Ngi trnh by: Nguyn Trng Nht Trung 0712474

Cc khi nim hng i tng khc

a hnh (Polymorphism Overloading):

Operator

Cho php ton t cng tn hay cng biu tng c th c 2 hay nhiu thc thi khc nhau, ty thuc vo kiu i tng m n thc thi. Trnh bin dch t xc nh ton t cn thit no c thc thi da trn loi ton hng m ta cung cp.

Cc khi nim hng i tng khc

a hnh (Polymorphism Overloading):

Operator

Ton t k hiu + c th mang nhiu ngha khc nhau khi ta cung cp cho n nhiu mu thc thi khc nhau (kiu ton hng khc nhau). Kiu s nguyn th cng theo kiu s nguyn. Kiu s thc th cng theo kiu s thc.

Cc khi nim hng i tng khc

a k tha (Multiple Inheritance) v k tha chn lc (Selective Inheritance):


a k tha: l h thng phn cp c dng khi phn lp con T k tha t hai (hay nhiu hn) phn lp cha T k tha cc hm (thuc tnh v phng thc) ca cc phn lp cha.

Vn pht sinh: cc phn lp cha c hm/phng thc trng tn gy nhp nhng.

Cc khi nim hng i tng khc

a k tha (Multiple Inheritance) v k tha chn lc (Selective Inheritance):


K tha chn lc: khi lp con ch k tha mt vi hm ca lp cha, nhng hm khc khng k tha.

Trong thc t, k tha chn lc khng c dng rng ri trong cc h thng d liu hng i tng, nhng c s dng rt nhiu trong cc ng dng tr tu nhn to.

Cc khi nim hng i tng khc

Phin bn v Cu hnh:
Nhiu ng dng CSDL s dng h thng hng i tng yu cu s tn ti nhiu phin bn ca cng mt i tng (t hai phin bn tr ln).

Nu h thng ang hot ng v 1 hay nhiu module cn c thay i, ngi thit k s to mt phin bn mi ca cc module cp nht cc s thay i.

Cc khi nim hng i tng khc

Phin bn v Cu hnh:
S phin bn (version graph): biu din cc mi quan h gia cc phin bn. Li ch: gip ngi dng hiu mi quan h gia cc phin bn v gip h thng qun l tt trong vic to mi v xa cc phin bn.

V d

Cc khi nim hng i tng khc

Phin bn v Cu hnh: Cu hnh: l tp hp bao gm mt phin bn ca mi module c sp xp theo cch ring, cc phin bn module trong cu hnh tng thch vi nhau cng nhau to thnh mt phin bn hp l ca cc i tng phc tp.

You might also like