15. C¸c quy t¾c chuyÓn ®æi Quy t¾c 1. (Quy t¾c chuyÓn ®æi mèi quan hÖ is-a ) NÕu tËp thùc thÓ A lµ cã mèi quan hÖ is-a víi tËp thùc thÓ B th× líp A sÏ kÕ thõa tÊt c¶ c¸c thuéc tÝnh trong líp B (tøc: líp A lµ líp con cña líp B ). VÝ dô: M« h×nh ER Class NGUOI properties Id: String; Hoten: String; Tuoi: Integer; End NGUOI. Class NHANVIEN inherits: NGUOI; properties Luong: Integer; End NHANVIEN. M« h×nh híng ®èi tîng M« h×nh quan hÖ NGUOI(id, hoten, tuoi) NHANVIEN(id, luong)
16. Quy t¾c 2. (Quy t¾c chuyÓn ®æi mèi quan hÖ nhÞ nguyªn kh«ng cã thuéc tÝnh) NÕu hai tËp thùc thÓ A vµ B cã mèi quan hÖ R, ngoµi c¸c thuéc tÝnh trong tËp thùc thÓ A vµ B , mçi líp A vµ B ®îc bæ sung thªm thuéc tÝnh R (ta quy íc mèi quan hÖ nhÞ nguyªn vµ thuéc tÝnh mèi quan hÖ t¬ng øng ®îc ®Æt cïng tªn). XÐt hai trêng hîp sau: * Trêng hîp 1: NÕu chØ sè cùc ®¹i cña cung nèi A vµ R lµ 1, th× thuéc tÝnh R trong líp A sÏ ®îc khai b¸o: <Tªn thuéc tÝnh R >: <Líp B >; * Trêng hîp 2: NÕu chØ sè cùc ®¹i cña cung nèi A vµ R lµ n , th× thuéc tÝnh R trong líp A sÏ ®îc khai b¸o: <Tªn thuéc tÝnh R >: set(<Líp B >);
17. VÝ dô: (Mèi quan hÖ 1-1) M« h×nh ER M« h×nh híng ®èi tîng Class TRUONGKHOA properties Id_tk: String; Hoten: String; Tuoi: Integer; Quanly: KHOA; End TRUONGKHOA. Class KHOA properties Id_k: String; Tenkhoa: String; Sodienthoai: String; Quanly: TRUONGKHOA; End KHOA. M« h×nh quan hÖ TRUONGKHOA( id_tk , hoten, tuoi) KHOA( id_k , tenkhoa, sodienthoai, id_tk )
18. VÝ dô: (Mèi quan hÖ 1 -nhiÒu) M« h×nh ER M« h×nh híng ®èi tîng Class GIAOVIEN properties Id_gv: String; Hoten: String; Tuoi: Integer; Thuoc: KHOA; End GIAOVIEN. Class KHOA properties Id_k: String; Tenkhoa: String; Sodienthoai: String; Thuoc: set(GIAOVIEN); End KHOA. M« h×nh quan hÖ GIAOVIEN( id_gv , hoten, tuoi, id_k) KHOA( id_k , tenkhoa, sodienthoai)
19. VÝ dô: (Mèi quan hÖ nhiÒu-nhiÒu ) M« h×nh híng ®èi tîng Class GIAOVIEN properties Id_gv: String; Hoten: String; Tuoi: Integer; Giang: set(MON); End GIAOVIEN. Class MON properties Id_m: String; Tenmon: String; Sotiet: Integer; Giang: set(GIAOVIEN); End MON. M« h×nh ER M« h×nh quan hÖ GIAOVIEN( id_gv , hoten, tuoi) MON( id_m , tenmon, sotiet) GIANG( id_gv, id_m )
20. Quy t¾c 3. (Quy t¾c chuyÓn ®æi mèi quan hÖ ph¶n x¹) XÐt mét tËp thùc thÓ A cã mèi quan hÖ R vµo chÝnh tËp A ( R kh«ng cã c¸c thuéc tÝnh ®Ýnh kÌm) . Gäi r lµ mét trong hai vai trß cña mèi quan hÖ ph¶n x¹ nµy. Khi ®ã, tªn cña vai trß r sÏ ®îc dïng ®Ó biÓu diÔn thuéc tÝnh mèi quan hÖ trong líp A t¬ng øng. Cô thÓ: * Trêng hîp 1: NÕu vai trß r cã chØ sè cùc ®¹i lµ 1, th× bæ sung thuéc tÝnh mèi quan hÖ trong líp A víi khai b¸o: <Tªn vai trß r >: <Líp A >; * Trêng hîp 2: NÕu vai trß r cã chØ sè cùc ®¹i lµ n , th× bæ sung thuéc tÝnh mèi quan hÖ trong líp A cã khai b¸o: <Tªn vai trß r >: set(<Líp A >);
21. VÝ dô: (Mèi quan hÖ ph¶n x¹) M« h×nh híng ®èi tîng Class NGUOI properties Id: allID; Hoten: String; Tuoi: Integer; Con: set(NGUOI); Cha, Me: NGUOI; End GIAOVIEN. M« h×nh ER M« h×nh quan hÖ NGUOI( id , hoten, tuoi, id_cha, id_me)
22. Quy t¾c 4. (Quy t¾c chuyÓn ®æi mèi quan hÖ nhÞ nguyªn cã kÌm thuéc tÝnh) NÕu hai tËp thùc thÓ A 1 vµ A 2 cã mèi quan hÖ R lµ mèi quan hÖ cã kÌm c¸c thuéc tÝnh, th× ngoµi hai líp A 1 vµ A 2 t¬ng øng ta cÇn bæ sung thªm líp míi C ®ãng vai trß trung gian. Cô thÓ: - Líp A 1 ®îc bæ sung thuéc tÝnh R 1 cã khai b¸o: <Tªn thuéc tÝnh R 1 >: <Líp C >; nÕu max( A 1 ; R ) = 1, hoÆc: <Tªn thuéc tÝnh R 1 >: set(<Líp C >) nÕu max( A 1 ; R ) = n. - Líp A 2 ®îc bæ sung thuéc tÝnh R 2 cã khai b¸o t¬ng tù líp A 1 . - Líp C bao gåm c¸c thuéc tÝnh sau: C¸c thuéc tÝnh cña mèi quan hÖ R , vµ hai thuéc tÝnh R 1 , R 2 cã khai b¸o: <Tªn thuéc tÝnh R 1 >: <Líp A 1 >; <Tªn thuéc tÝnh R 2 >: <Líp A 2 >; Lu ý : Quy t¾c chuyÓn ®æi mèi quan hÖ ph¶n x¹ cã kÌm thuéc tÝnh ®îc thùc hiÖn t¬ng tù quy t¾c trªn.
23. M« h×nh quan hÖ GIAOVIEN ( id_gv , hoten, tuoi) KHOA ( id_k , tenkhoa, sodienthoai) GVIEN_KHOA ( id_gv, id_k , tongsotiet) M« h×nh híng ®èi tîng Class GIAOVIEN properties Id_gv: allID; Hoten: String; Tuoi: Integer; Giang1: set(GVIEN_KHOA); End GIAOVIEN. Class KHOA properties Id_k: allID; Tenkhoa: String; Sodienthoai: String; Giang2: set(GVIEN_KHOA); End KHOA. Class GVIEN_KHOA properties Id_gvien_khoa: allID; Tongsotiet: Integer; Giang1: GIAOVIEN; Giang2: KHOA; End GVIEN_KHOA. VÝ dô: M« h×nh ER
24. Quy t¾c 5. (Quy t¾c chuyÓn ®æi mèi quan hÖ ®a nguyªn) NÕu k tËp thùc thÓ A 1 , ..., A k ( k > 2) cã quan hÖ víi nhau th«ng qua mèi quan hÖ ®a nguyªn R bËc k , th× ngoµi k líp A 1 , ..., A k ta sÏ bæ sung thªm líp míi C ®ãng vai trß trung gian. Cô thÓ: - Mçi líp A i ®îc bæ sung thuéc tÝnh R i cã khai b¸o: <Tªn thuéc tÝnh R i >: <Líp C >; nÕu max( A i ; R ) = 1 hoÆc khai b¸o: <Tªn thuéc tÝnh R i >: set(<Líp C >); nÕu max( A i ; R ) = n (víi i = 1, 2, ..., k ). - Líp C bao gåm c¸c thuéc tÝnh sau: C¸c thuéc tÝnh cña mèi quan hÖ R , vµ c¸c thuéc tÝnh R i cã khai b¸o: <Tªn thuéc tÝnh R i >: <Líp A i >; (víi i = 1, 2, ..., k )