Tuesday, April 19, 2016

Шалгалт - 2



Өгөгдлийн сангийн зохион байгуулалт
1.      Өгөгдлийн сангийн загвар гэж юу вэ түүнийг хийхэд баримтлах зачмуудаас 2-ыг бичнэ үү?

2.      ӨС-г зохион байгуулахад Харьцаа нь ...... ба ... гэсэн 2 хэмжээст хүснэгтээр дүрслэгднэ.
А.  Багана, хүснэгт                           Б. Багана, мөр                        В.Хүснэгт мөр
      3.   Нөхөж бич : Хуваарилагдсан өгөгдлийн сангууд гэдэг нь .........................................................өгөгдлийн сангуудын хуулбар эсвэл хэсгүүдийг хэлдэг.
4. Логик эрэмбэлэлт гэж юу вэ?
5. компьютерын ухаанд модыг хаашаа харуулж зурдаг
6. Shared буюу (Хуваалцах) • Distributed: тодооройлолтыг бичнэ үү?
7: Гадаад өгөгдлийн сан
8: Гипермедиа өгөгдлийн сан
9: Өгөгдлийн санг удирдах систем
10: Өгөгдлийн баазтай ажиллах гэж юу вэ? 

Tuesday, April 12, 2016

Лекц 6-15



Батлав. МХМБСТэнхмийн эрхлэгч ........................................................../ О.Мөнхбаяр/
Лекц –  6 Энгийн холболт зохион байгуулах

Харьцаа алгебр, Select команд, багана, мөр сонгох, харьцаануудыг холбох, бүлэглэх үйлдлүүд
Харьцаа алгебр нь ӨС-ийн боловсруулалтыг формаль аргаар илэрхийлэх математик хэрэгсэл бөгөөд үйлдлүүдийг p, s, n, x, ]x, x[ гэх зэрэг математик тэмдэглэгээгээр заадаг, тухайлбал:
p-харьцаанаас заагдсан багануудыг сонгох
s-харьцаанаас тодорхой нөхцлийн дагуу бичлэгүүдийг сонгох
n-бичлэгүүдийг бүлэглэж, шаардлагатай бол нэгтгэн тооцоолол хийх
x, ]x, x[ - 2 ба түүнээс олон тооны харьцааг холбох
SELECT команд нь өгөгдлийн санг боловсруулахад өргөн хэрэглэгддэг СКюЛ хэлний үндсэн команд бөгөөд түүнд багана, бичлэг сонгох, бүлэглэх ба холбох үйлдлүүд агуулагддаг.
SELECT  [ALL] [DISTINCT][UNIQUE]  < талбаруудын нэр>
            FROM <хүснэгт/ хүснэгтүүдийн нэр> [ON <холбох нөхцөл>]
            [WHERE <бичлэг сонгох нөхцөл>]
            [GROUP BY<бүлэглэх түлхүүр>] [HAVING <бүлгээс  мөр сонгох нөхцөл>]
            [ORDER BY <эрэмбэлэх түлхүүр>]
            [INTO <үр дүнг хадгалах хүснэгтийн нэр>]
Мөр сонгох үйлдэл (Selection)
Заасан нөхцлийн дагуу харьцаанаас бичлэгүүдийг сонгоно, харин харьцааны бүх багана үр дүнд гарна.
Харьцаа алгебрийн бичигдэх хэлбэр: π * (s <сонгох нөхцөл> (<харьцааны нэр>))
SELECT команд: SELECT * FROM <хүснэгтийн нэр> WHERE <бичлэг сонгох нөхцөл >
Багана сонгох үйлдэл (Projection)
Атрибутын жагсаалтанд заагдсан багануудыг зөвхөн сонгоно, харин харьцааны бүх бичлэг үр дүнд гарна. 
Харьцаа алгебрийн бичигдэх хэлбэр: π <атрибутын жагсаалт> (<харьцааны нэр>)
SELECT команд: SELECT <атрибутын жагсаалт> FROM <хүснэгтийн нэр>
Ихэвчлэн нэг илэрхийлэлд хэд хэдэн үйлдлийг багтааж бичдэг.  Жишээ нь, багана ба мөр сонгох үйлдлийг доорх хэлбэрээр бичнэ:
Харьцаа алгебрийн бичигдэх хэлбэр: p<атрибутын жагсаалт> <сонгох нөхцөл> (<харьцааны нэр>))
SELECT команд: SELECT <атрибутын жагсаалт> FROM <хүснэгтийн нэр> WHERE <бичлэг сонгох нөхцөл >
Холбох үйлдэл
Хоёр буюу түүнээс олон харьцааны бичлэгүүдийг ижил утга бүхий түлхүүрийн атрибутын дагуу холбодог ба холболтыг энгийн болон гадаад гэсэн 2 аргаар зохион байгуулж болно.
Энгийн холболт хийх үед хүснэгтүүд тэгш эрхтэйгээр холболтонд оролцдог ба үр дүнд зөвхөн гадаад түлхүүрийн ижил утгуудтай бичлэгүүдийг агуулсан хүснэгт үүсдэг, гадаад түлхүүрийн утгууд тохироогүй бичлэгүүд үр дүнгийн хүснэгтэнд орохгүй, гээгдэнэ
2 харьцааг энгийнээр холбох: p <атрибутын жагсаалт> (ХАРЬЦАА1 x <холбох нөхцөл>  ХАРЬЦАА2)
SELECT <хүснэгт1>.<талбар1>, <хүснэгт1>.<талбар2>, <хүснэгт2>.<талбар1>,
<хүснэгт2>. <талбар2>   
FROM <хүснэгт1> INNER JOIN < хүснэгт2> ON <хүснэгт1>.<түлхүүр> = <хүснэгт2>.<түлхүүр >
Жишээ: p оюутан.*, мэргэжил.мэрг нэр> (ОЮУТАН r мэрг код=мэрг код МЭРГЭЖИЛ)
SELECT О.Оюутны код, О.Оюутны нэр, О.Мэрг код, М. Мэрг нэр FROM Оюутан as О INNER JOIN Мэргэжил as М ON О. Мэрг код = М. Мэрг код
Оюутан харьцаа                                                                     Мэргэжил харьцаа
Оюутны код
Оюутны нэр
Мэрг код

Мэрг код
Мэрг нэр
SW99D027
Д.Болор
D484105

D484105
Компьютерийн ухаан ПХ
SW99D028
Х.Тамир
D484105

D484106
Компьютерийн ухаан МС
SW99D029
Н.Сувд
D484110

D484110
Компьютерийн ухаан ТХ
SW99D039
С.Баяр
D484112

D484111
КУ Сүлжээний технологи
Энгийн холболтын үр дүн
Оюутны код
Оюутны нэр
Мэрг код
Мэрг нэр
SW99D027
Д.Болор
D484105
Компьютерийн ухаан ПХ
SW99D028
Х.Тамир
D484105
Компьютерийн ухаан ПХ
SW99D029
Н.Сувд
D484110
Компьютерийн ухаан ТХ










Тайлбар:
Тус 2 харьцаа мэргэжлийн кодоор холбогдоно, SW99D039 гэсэн кодтой оюутан үр дүнд орохгүй, учир нь оюутны мэргэжлийн код Мэргэжил харьцаанд байхгүй.



















Батлав. МХМБСТэнхмийн эрхлэгч ........................................................../ О.Мөнхбаяр/
Лекц –  7 Гадаад холболтууд
Гадаад холболт хийх үед харьцаануудыг эх ба охин гэж ялгаж холбодог.
·         Эх гэж заасан хүснэгт рүү охин хүснэгтийн бичлэгүүд холбогддог
·         Эх хүснэгтийн холбох түлхүүрийн утга охин хүснэгтийн түлхүүр утгатай харьцуулагдаж үр дүнд:
·         охин хүснэгтэнд холбох түлхүүрийн утгатай бичлэг олдоогүй  тохиолдолд эх хүснэгт рүү охин хүснэгтээс  тэг утгатай талбар холбогдоно
·         эх хүснэгтээс бичлэг гээгдэхгүй, бүх бичлэгүүд үр дүнд гарна   
Эх харьцаа нь охиноосоо өмнө бичигдэх үед зүүн гадаад холболт хийгддэг.
p <атрибутын жагсаалт> (ЭХ ХАРЬЦАА]X <холбох нөхцөл> ОХИН ХАРЬЦАА)
Select <харьцаа1>.<талбар1>,<харьцаа1>.<талбар2>,.. <харьцаа2>.<талбар1>, <харьцаа2>. <талбар2>, .. From <эх харьцаа1> Left Outer Join <охин харьцаа2> On <харьцаа1>.<түлхүүр> = <харьцаа2>.<түлхүүр>
Эх харьцаа нь охиныхоо хойно бичигдэх үед баруун гадаад холболт хийгддэг.
p <атрибутын жагсаалт> (ОХИН ХАРЬЦАА <холбох нөхцөл>X[ ЭХ ХАРЬЦАА)
Select <харьцаа1>.<талбар1>, харьцаа1>.<талбар2>,... <харьцаа2>.<талбар1>,<харьцаа2>.<талбар2>,… From <охин харьцаа1> Right Outer Join <эх харьцаа2> On <харьцаа1>.<түлхүүр> = <харьцаа2>.<түлхүүр> 
Жишээ:p оюутан.*, мэргэжил.мэрг нэр> (ОЮУТАН  мэрг код=мэрг код МЭРГЭЖИЛ)
SELECT О.Оюутны код, О.Оюутны нэр, О.Мэрг код, М. Мэрг нэр FROM Оюутан as О LEFT OUTER JOIN Мэргэжил as М ON О. Мэрг код = М. Мэрг код
Оюутан харьцаа                                                                     Мэргэжил харьцаа
Оюутны код
Оюутны нэр
Мэрг код

Мэрг код
Мэрг нэр
SW99D027
Д.Болор
D484105

D484105
Компьютерийн ухаан ПХ
SW99D028
Х.Тамир
D484105

D484106
Компьютерийн ухаан МС
SW99D029
Н.Сувд
D484110

D484110
Компьютерийн ухаан ТХ
SW99D039
С.Баяр
D484112

D484111
КУ Сүлжээний технологи
Оюутан (эх) харьцаа руу Мэргэжил (охин) харьцааг зүүн гадаад холболтоор холбосны үр дүн 
Оюутны код
Оюутны нэр
Мэрг код
Мэрг нэр
SW99D027
Д.Болор
D484105
Компьютерийн ухаан ПХ
SW99D028
Х.Тамир
D484105
Компьютерийн ухаан ПХ
SW99D029
Н.Сувд
D484110
Компьютерийн ухаан ТХ
SW99D039
С.Баяр
D484112










Тайлбар:
Тус 2 харьцаа мэргэжлийн кодоор холбогдоно, Оюутан нь эх харьцаа учраас SW99D039 гэсэн кодтой, мэргэжлийн код нь Мэргэжил харьцаанд байхгүй бичлэг үр дүнд орж байна, харин мэргэжил харьцаан дахь мэргэжлийн нэр атрибут нь тэг утгатайгаар орж ирнэ.  
Бүлэглэлт
Харьцаан дахь бичлэгүүдийг ижил утга агуулсан бүлэглэх түлхүүр гэж нэрлэгдэх нэг буюу хэд хэдэн атрибутын дагуу нэгтгэж багцлах үйлдэл юм. Тус үйлдлийг харьцаан дахь бичлэгүүдийг нэгтгэж харах, бүлэг дотор нэгтгэл, тооцоо хийх зорилгоор ашигладаг. Тооцоо, нэгтгэл хийхийн тулд доорх агрегат функцуудыг хэрэглэдэг. Үүнд:
·         Нийлбэр-Sum (тоон атрибут)
·         Дундаж-Average(тоон атрибут)/AVR
·         Хамгийн их буюу бага утгыг олох
                              Maximum/ Minimum (атрибутын нэр)/Max,Min
·         Бүлэг дэх бичлэгийн тоог олох  
·         Count (атрибутын нэр)/ Count ()
Харьцаа алгебрийн бичигдэх хэлбэр: p <атрибутын жагсаалт>(<бүлэглэх түлхүүр>  u [<атрибутын жагсаалт/томъёо/агрегат функц] (<харьцааны нэр>))
SELECT команд: SELECT  <атрибутын жагсаалт/агрегат функц/томъёо>  FROM <харьцааны нэр>
                        GROUP BY <бүлэглэх түлхүүр> [HAVING <бичлэг сонгох нөхцөл>]
Анхаарах зүйлс:
·         Атрибутын жагсаалт - бүлэглэх түлхүүрийн хувьд зөвхөн нэг утгатай атрибутаар хадгалсан, мөн бүлгүүдийн хувьд томъёо/функцээр гаргаж авсан атрибутууд
Томъёо/функц нь бүлэглэх түлхүүрийн хувьд зөвхөн нэг утга буцаах ёстой.
Дээрх зурагт үзүүлсэн жишээний хувьд А бүлгийн хувьд атрибут 2 нь 1, Б-гийн хувьд 3, В-гийн хувьд 2 гэсэн нэг утгат атрибутууд, харин А бүлгийн хувьд атрибут 3 нь х,р,э, Б-гийн хувьд г,ү,х,х, В-гийн хувьд х гэсэн өөр өөр утгууд авах олон утгат атрибутууд байна. Иймээс атрибут 3-ыг бүлгийн үр дүнд гарах атрибутын жагсаалтанд зааж болохгүй, харин нэгтгэн тоолж гаргаж болно.




















Батлав. МХМБСТэнхмийн эрхлэгч ........................................................../ О.Мөнхбаяр/
Лекц –  8 Эрэмбэлэлт
Эрэмбэлэлт хийж өгөгдлийг боловсруулах
Хичээлийн зорилго
Оюутнуудад өгөгдлийн сан дахь өгөгдлүүдийг хэрхэн эрэмбэлэх болон эрэмбэлсэний ач холбогдолын талаар ойлголт өгнө.
Хичээлийн агуулга
-                       Эрэмбэлэх түлхүүр
-                       Эрэмбийн ангилал
-          Нэг түвшиний эрэмбэ
-          Хоёр түвшиний эрэмбэ
-                       Физик эрэмбэлэлт, Логик эрэмбэлт Эрэмбэлэх түлхүүр
Нэг буюу хэд хэдэн талбарын утгын дагуу хүснэгтийн бичлэгүүдийг дараалалд оруулхыг эрэмбэлэлт гэх ба эрэмбэлэлтийг зохион байгуулж буй талбарыг эрэмбэлэх түлхүүр гэнэ.
Эрэмбийг үндсэн ба хоёрдогч эрэмбэ гэж 2 ялгадаг. Анхдагч түлхүүр ба эрэмбэлэх түлхүүр давхацсан үед үндсэн эрэмбэ үүсдэг. Хэрэв эрэмбэлэлт үндсэн бус талбараар хийгдэж байгаа бол хоёрдогч эрэмбэ үүсдэг.
Нэг түвшиний эрэмбэ
Эрэмбийг нэг буюу хэд хэдэн түвшингээр байгуулж болно. Эрэмбэлэх түлхүүр нэг талбараас тогтсон бол нэг түвшний, харин нэгээс илүү бол олон түвшний эрэмбэлэлт хийгднэ.
Физик эрэмбэлэлт
Бичлэгүүдийг эрэмбэлэх түлхүүрийн утгын дагуу дарааллуулсан шинэ харьцаа үүсэх ба бичлэгийн физик дугаар шинэчлэгддэг. Үүнд:
-          өгөгдлийн давцал ихээр үүсдэг
-          Бичлэг шинээр нэмэх, устгах, эрэмбэ талбарын утгыг өөрчлөх бүрт эрэмбэ алдагддаг.
-          Дахин эрэмбэлэх ажиллагаа нь цаг их авдаг Логик эрэмбэлэлт
Тус эрэмбэлэлтийг хийх үед шинэ эрэмбэ хүснэгт үүсэхгүй, бичлэгүүдийн физик дугаар ба бичлэгүүдийн логик эрэмбийн дугаар хоёрын хооронд холбоос үүсдэг.
Программын тооцоолох ажилд нөлөөлөх нэг үндсэн үйлдэл бол  эрэмбэлэлт юм.Эрэмбэлэлт нь өгөгдлүүдийг тодорхой дарааллаар тухайлбал, өсөхөөр эсвэл буурахаар зохион байгуулах үйлдэл юм.
Жишээлбэл: а1 , а2 , … аn  өгөгдлийг өсөхөөр эрэмбэлэгдсэн гэвэл : а1 ≤, а2 , ≤… ≤а нөхцөлийг хангах болно.Эрэмбэлэгдсэн өгөгдөл нь хайлтийг хурдасгах чухал ач холбогдолтой.Хэрэв өгөгдөлүүд нь эмбэлэгдээгүй бол бид хүссэн өгөгдөлөө авахын тулд өгөгдлийг эхнээс нь дараалан хайхаас өөр аргагүй.Харин өгөдөл нь эрэмбэлэгдсэнээр түүнд хийх хайлтыг хурдасгах зарим алгоритмийг тодорхойлж болдог.Хайлтын алгоритмуудыг бид дараа дэлгэрэнгүй авч болно.
 Эрэмбэлэлтийн алгоритмуудыг судлах эхний хэсэгт бид эрэмбэлэлтийн энгийн аргуудтай танилцах юм.Эрэмбэлэлт нь хийхэд энгийн аргуудыг сонгох зарим хэрэглээ ба шаардлага байдаг.Ер нь эрэмбэлэх үйлдэл нь программын ажлын явцад зөвхөн ганц удаа (эсвэл цөөхөн) хийгддэг.Хэрэв эрэмбэлэх өгөгдлийн тоо нь асар олон биш бол энгийн эрэмбэлэлтийн аргууд нь илүү үр ашигтай байхаас гадна нэвтрүүлэлт болон шалгалт хийихэд хялбар байдаг.Энгийн аргууд цөөхөн өгөгдлийн хувьд ямагт тохиромжтой байдаг.Өгөгдлийн өөр нэг өгөгдөх хэлбэр бол өгөгдлүүд нь бараг эрэмбэлэгдсэн (аль эсвэл аль хэдийн эрэмбэлэгдсэн) эсвэл маш олон тооны тэнцүү өгөгдлүүд (түлхүүр талбарын өгөгдөл) агуулсан байж болно.Ийм бүтэцтэй өгөгдлүүдэд эрэмбэлэлтийн энгийн аргууд харьцангуй илүү үр ашигтай гүйцэтгэгддэг.Эрэмбэлэлтийн аргуудыг судлахын өмнө эрэмбэлэлтийн зарчим ойлголт болон нэр томьёололтой танилцья.Эрэмбэлэгдэх өгөгдөл нь хэд хэдэн талбаруудаас тогтох бичлэгүүд байж болох ба энэ тохиолдолд эрэмбэлэлтийг аль нэг талбарын утгаар хийдэг.Энэ талбарыг түлхүүр гэж нэрлэдэг.Энэ номд эрэмбэлэлтийн алгоритмуудын программыг ойлгомжтой,хялбархан болгох зорилгоор бүхэл тоо, тэмдэгт зэрэг энгийн өгөгдлийн төрөлтэй массивийн хувьд эрэмбэлэлтийг гүйцэтгэхээр тодорхойлж өгсөн.Хэрэв эрэмбэлэгдэх нийт өгөгдөл нь санах ойд хүрэлцэхүйц бага хэмжээтэй бол дотоод эрэмбэлэлт гэнэ.Хэрэв өгөгдлийн хэмжээ нь дотоод эрэмбэлэлтээр хийгдэхээргүй их хэмжээтэй бол гадаад эрэмбэлэлт гэнэ.Өөрөөр хэлбэл гадаад эрэмбэлэлтийг диск эсвэл соронзон туузан дээр гүйцэтгэдэг.Энэ номонд авч үзэх аргууд нь үндсэндээ дотоод эрэмбэлэлтийн аргуудад хамаарна.Эрэмбэлэлтын аргуудыг харьцуулах гол хэмжүүр бол тэдгээрийн ажиллах хугацаа юм.Эрэмбэлэлтийн алгоритмын түлхүүр үйлдэл нь харьцуулах ба утга солилцох гэсэн үндсэн үйлдлээр тодорохойлогддог.Гэвьч эрэмбэлэлтийн алгоритмын хувьд харьцуулалтын тоог илүү сонирхдог.Алгоритмын ажиллах хугацааг хамгийн муу ба дундаж гэсэн хоёр тохиолдлын хувьд хэлэлцдэг.Бид N өгөгдлийн хувьд ажиллах хугацаа нь N2 шаардах алгоритмаас эхлээд N шаардах алгоритмуудыг үзэх болно.Эрэмбэлэлтийн алгоритмын өөр нэг хэмжүүр бол шаардагдах нэмэлт санах ойн хэмжээ юм.Зарим алгоритм (шаардагдах маш бага зайг үл тооцвол) нэмэлт зай ашигладаггүй байхад зарим нь N өгөгдлийг давхар хадгалах нэмэлт зайг шаардаж байдаг.Эрэмбэлэлт хийгдэх өгөгдөл нь массивт эсвэл жагсаалтад хадгалагдаж болно. N өгөгдлийн жагсаалтадхадгалагдах үед N заагчийн нэмэлт үай шаарддаг.Эрэмбэлэлтийн алгоритмуудыг ашиглан жагсаалтыг эрэмбэлэх хоёр хэлбэр байдаг.Зангилааны өгөгдлийн хэмжээ бага тохиолдолд зангилааны зөвхөн өгөгдлийг солилцох нь тохиромжтой байдаг бол зангилааны өгөгдлийн хэмжээ асар том (тухайлбал олон талбараас тогтох бичлэг) тохиолдолд зангилааны заагчуудыг ашиглан бүхэл зангилааг солилцох нь илүү тохиромжтой.Өөрөөр хэлбэл бичлэгийн талбар бүрийн утгыг солилцохын оронд зөвхөн хоёр зангилаанд хамаарах заагчуудын утгыг өөрчилнө.Жагсаалт эрэмбэлэх жишээг энэ бүлгийн төгсгөлд сонгон эрэмбэлэх аргыг ашиглан нэвтрүүлэх болно.Харин массив эрэмбэлэх үед хоёр элемент солилцохын тулд нэмэлт нэг хувьсагч шаардлагатай.Энэ массивийн хоёр элемент солилцох swap ( ) функцийг тодорхойлъё.                                                                                                           template<class Type>                                                                                                                             inline void swap(Type a [ ] , int I , int j , ) {Type temp = a[i]; a[i] = a[j]; a[;] = temp;)swap() функцийг загвар функцээр тодоркойлсон байна. Ингэж тодорхойлсноор уг функц нь ямар ч төрлийн массивын хувьд ажиллах бөгөөд кодын давхцлыг арилгана. Хэрэв загвар биш функцээр тодорхойлбол char ба int төрөлтэй массивуудыг эрэмбэлэхийн тулд хоёр өөр функ бичих шаардлагатай бөгөөд тэдгээр функцууд нь доорх байдлаар тодорхойлгодох болно.                                                                                                                                                     inline void swap_int(int a[], int i, int j) ( )                                                                                                  int temp = a [ I ] ; a [ I ] ; a [ j ] = temp ;                                                                                                   inline void swap_char(char a[], int i, int j) ( )                                                                                     char temp = a [ I ] ; a [ I ] ; a [ j ] = temp ;                                                                                          swap() функц нь солилцох үйлдэл хийх ба ихэвчлэн дотоод давталтаас дуудагддаг. Иймд inline функцээр зарласан байна. Эрэмбэлэлтийн алгоритмын өөр нэг үзүүлэлт бол түүний тогтвортой чанар юм. Хэрэв эрэмбэлэлтийн алгоритм нь тогтвортой бол ижил түлхүүр талбар бүхий элемнтүүд өөр талбараа мөн эрэмбэлэгдсэн байдаг. Жишээлбэл оюутнуудын бичлэгийг дүнгээр эрэмбэлэхэд үүсэх дараалалд ижил дүнтэй оюутуудын нэрээрээ эрэмбэлэгдсэн байна.Сонгон эрэмбэлэх арга Эрэмбэлэлтийн эхний энгийн алгоритмаар сонгон эрэмбэлэх аргыг авч үзье. Энэ арга нь массив дахь хамгийн бага элементийг олж массивын эхний элементтэй сольж, дараа нь удаах бага элементийг олж массивын хоёр дахь элементтэй солих байдлаар массивын бүх элемент эрэмбэлэгдэж дуустал гүйцэтгэх арга юм, Энэ арга нь үлдэж байгаа хэсэг бүрээс хамгийн бага элемтентийг сонгож байгаа учир сонгон эрэмбэлэх арга гэж нэрлэсэн. Сонгон эрэмбэлэх алгоритмыг дараал selectionSort () функцээр тодорхойллоо. template<class Type> void selectionSort(Type a[], int n) (                                                                                                                                                                  int i, j, min;for (i=0; i<n-1; i++) ( min = i;for ( j = i+1 ; j<n ; j++ )if ( a [ j ] < a [ min ] ) min = j ;swap ( a , I , min ) ;}}
Selection ( ) функцийг мөн загвар функцээр тодорхойллоо.i байрлалд түүнээс орших элементүүдийн хамгийн бага элемент орно. J индекс тусламжтайгаар I дүгээр байрлалаас хойүхи элементүүдээс хамгийн бага элементүүдыг олж өмнөх хэсэгт тодорхойлсонswap ( ) функцийг ашиглан функцуудыг сольж байна.Гадаад давталт буюу i индексийн давталт дуусахад массив бүрэн эрэмбэлэгдсэн байх болно.10,1-р зургаар 8 бүхэл тоо агуулах массивыг энэ алгоритмаар хэрхэн эрэмбэлэхийг алхам алхамаар нь үзүүллээ.                        Сонгон эрэмбэлэх арга                                                                                                           selectionSort ( ) функц нь нэгэнт загвар функцээр тодорхойлогдсон болохоор бид ямарч өгөгдлийн төрөл бүхий массивийг энэн функцэд дамжуулан эрэмбэлж чадна.Жишээлбэл int ба char төрөлтэй массивуудыг дээрх функцэд хэрхэн дамжуулахыг харцгаая                                 int a [ 8 ] = { 77, 33, 44, 11, 88, 22, 66, 55 } ;                                                                                       char s [ 15 ] = {‘a’ , ‘b’, ‘o’ ,  ‘r’,  ‘t’, ‘n’ ,                                                                                                  ‘g’, ‘e’, ‘x’,  ‘a’, ‘m’, ‘p’, ‘l’, ‘e’} ;                                                                                              selectionSort ( a, 8) ;                                                                                                                     selectionSort ( s, 15) ;                                                                                                            эрэмбэлэлтийн энэн энгийн арга нь маш цөөхөн өгөгдөлтэй массивийн хувьд сайн ажилладаг.Сонгон эрэмбэлэх алгоритм нь өгөгдлийн анх өгөгдөх дарааллаас үл хамааран ойролцоогоор n2 харьцуулалт, n солилцох үйлдэл хийдэг.Дээрх алгоритмаас ажиглавал i гадаад давталтын алхам бүрт нэг солоилт ба n-1 харьцуулалт хийж байна. Иймээс нийт харьцуулалтын тообуюу алгоритмын ажиллах хугацааг илэрхийлэх £ ( n ) функцийн утга нь                                                                                                                                                      £ ( n ) = (n-1) + (n-2) +….+ 2 + 1 = n(n-1)/2 = O (n2)                                                                               Гэж тодорхойлогдоно.                                                                                                                        Сонгон эрэмбэлэгдэх алгоритм нь бага түлхүүртэй том бичлэг бүхий өгөгдлийн хувьд шугаман ажилладаг.Жишээлбэл түлхүүр нь 1 үг байхад бичлэг М үгээс тогтож болно.Энэ тохиолдолд 1 нэгж хугацаа зарцуулж байхрд солилцох үйлдэлд М нэгж хугацаа зарцуулна.                                                                                                                                             Иймд NM хэмжээтэй нийт өгөгдлийн эрэмбэлэгдэхэд N2харьцуулалт ба NM солилцох үйлдэл хийнэ.Хэрэв N=O(M) бол эрэмбэлэлтийн бүхэл өгөгдлийн хувьд шугаман гэж хэлж болох юм.                                                                                                                                Оруулан эрэмбэлэх арга                                                                                                              Оруулан эрэмбэлэх алгоритм нь сонгон эрэмбэлэлтийн алгоритмуудын нэг бөгөөд магадгүй илүү уян хатан , үр ашигтай байж болно.Энэ аргын үндсэн элемент нь эрэмбэлэгдсэн массивт эрэмбэлэлтийг алдагдуулахгүйгээр шинээр элемент охуулах үйлдлээр тодорхойлогддог.Өөрөөр хэлбэл эрэмбэлэгдсэн элементүүдийн шинэ элементээс их элементүүдын нэг байрлал баруунтийм шилжүүлэх байдлаар орвол зохих байрлалыг чөлөллж өгдөг.Оруулан эрэмбэлэх алгоритмыг дараах InsertionSort ( ) функцээр үзүүллээ.                               template<class Type>                                                                                                                                void insertitionSort  (Type a [ ] , int I , int n )   {                                                                                           for (int I = 1 ; I < ; I ++)   {                                                                                                                        Type element = a [ I ] ;                                                                                                                                    Int j = I – 1 ;                                                                                                                                            While ( j >= 0 && element < a [ j ] )                                                                                                                  a [ j+1 ] = a [ j-] ;                                                                                                                                               a [ j+1 ] = element ;}                                                                                                                                          }                                                                                                                                                      Шинээр оруулах элементийг гадаад давталт I –гээр массивийн хоёр дахь элементээс эхлэн авна.Эхний алхамд хамгийн эхний элементтэй харьцуулан байрлалыг нь олсноор хоёх элементтэй эрэмбэлэгдсэн массив гарган авна.Удаах алхамд, үүсгэсэн хоёр элемелнт бүхий эрэмбэлэгдсэн массвтаа массивийн гурав дахь эрлементийг оруулах байдлаар масвинй төгсгөл хүртэл бүх элементийн хувьд давтан гүйцэтгэнэ.                                                Дээрх алгоритмын while дотоод давталтаар шинэ элементийг эрэмбэлэгдсэн гэх түүний өмнөх элементүүдээс тогтох массивийн хэсэгт оруулж өгөх үйлдэл хийгдэнэ.Энэ давталт нь шинэ элементээс бага элемент тааралдтал хийгдэх ба харин ир элементүүд нь хойшоо (баруун тийш) нэг шилсэн шинэ элементэд зай гаргах болно.Хэнрэв шинэ элемент өмнөх бүх элементүүдээс бага байх тохиолдолд j индекс багассаар массивийн хэмжээнээс (тэгээд бага болох ) өнгөрч болох юм.Энэ алдааг зохицуулах зорилгоор while давталтанд j>=0 гэсэн нөхцөлийг давхар оруулж өгсөн.Гэвч энэ нөхцөл нь j –ийн утга тэгээс бага болоогүй тохиолдолд бүрт илүүдэл шалгалтыг гүйцэтгэж байна.ЭНэ илүүдэл шалгалтаас зайлсхийих нэг арга бол масствийн эхний элементэд хязгааргүй бага (массивийн элементүүдээс харьцангуй бага) утга олнон ашигладаг.Эхний энэ элементийг харуул элемент гэж нэрлэдэг.Ингэснээр массивийн эхний элементийг массивийн үндсэн элементээр авахгүй  бөгөөд дотоод давталтыг while ( element <a[ j ] ) гэж гүйцэтгэнэ.Гэвч ихэнх тохиолдолд массивийн элементүүдийн утгын доод хязгаарыг урьдчилан тодорхойлох боломжгүй байдгаас харуул элементийн утгыг тогтооход хүндрэлтэй байдаг.Энэ алгоритмыг найман бүхэл тоон массивт хэрхэн ажиллахыг 10.2 –р зургаар үзүүллээ.                                                                                                                                             Оруулан эрэмбэлэх арга                                                                                                                 Оруулан эрэмбэлэх алгоритмын харьцуулалтын тоо f ( n ) функцийг өмнөх аргын адил хялбархан тодорхойлж болно.Эхлээд хамгийн муу тохиолдол болох буурахаар эрэмбэлэгдсэн өгөгдлийн үед авч үзье.Энэ тохиолдолд массивийн k дахь элемент бүрийн хувьд дотоод давталтын хамгийн их k-1 харьцуулалтыг гүйцэтгэнэ.Эндээс                                         f(n) = 1 + 2 + 3 + … + (n-1) / 2 O(n2)                                                                                                          гэж тодорхойлогдох ба харьцуулалтын тооноос хоёр дахин бага солилцох үйлдэл хийгдэнэ.Учир нь оруулан эрэмбэлэх аргын элементийн шилжилтийг солилцох үйлдлийн хагастай адтл гэж үзэж болох юм.                                                                                                         Харин дундаж тохиолдолд дотоод давталт нь (k-1) /2 харьцуулалт хийдэг гэвэл                                       f(n) = ½ + 2/2 + 3/2 + …+ (n-1) /2 = n(n-1) / 4 = O(n2)                                                                              гэж тодорхойлогдоно. Оруулан эрэмбэлэх алгоритм нь “бараг эрэмбэлэгдсэн” өгөгдөлд шугаман ажилладаг.Энэ үед элементүүд нь нэн даруй байрлалдаа олох буюу дотоод давталтаар хамгийн ихдээ 1-ээс 2 удаа харьцуулалт хийгдэнэ.Иймд N харьцуулалтаар эрэмбэлэх болно.                                                                                                                        Бөмбөлгөн эрэмбэлэлтийн арга                                                                                                          Энд бид эрэмбэлэлтийн энгийн аргуудын нэг бөмбөлгөн эрэмбэлэлтийн алгоритмтай танилцах болно.Энэ арга нь массивийн зэргэлдээ элементүүдийг хойш  шилжүүлэн массивийн төгсгөлд байрлуулдаг.Ингэснээр хамгийн их элемент эцсийн байрлалаа олох ба үлдсэн элементүүдын хувьд мөн үйлдплийг давтан хийснээр удаах хамгийн их элемент массивийн төгсгөлийн өмнөх байрлалыг эзлэн авна.Ийм байдлаар массивийн нийт элемент эрэмбэлэгдэж дуустал гүйцэтгэгддэг.Энэ алгоритмыг дараах bubbleSort ( ) функцээр үзүүллээ.




















Батлав. МХМБСТэнхмийн эрхлэгч ........................................................../ О.Мөнхбаяр/
Лекц –  9 Өгөгдлийн мод сүлжээ бүтэц
Мод
Байгаль дээр үндэс, мөчир, навч бүхий ургамлыг мод гэдэг. Компьютерын ухаанд модтой бүтцийн хувьд төстэй өгөгдлийн бүтцийг мөн мод гэдэг. Гэхдээ компьютерын ухаанд модыг уруу харуулж зурдаг. Мод гэдэг бүтцийн хувьд үндэс бол хамгийн чухал элемент бөгөөд нэг модонд цорын ганц үндэс байна. Үндсээс мөчир, мөчрөөс навч гардаг. Салаалж ургасан модны хэсгийг дэд мод гэнэ. Нэг зангилаанаас хэдэн элемент – мөчир/навч салаалсан гэдгээс нь хамааруулж хоёртын, N –тын мод гэж ялгаж болдог. Тэдэн дотор хоёрын мод онцгой байр эзэлдэг бөгөөд хоёртын модонд суурилсан олон хэрэглээ байдаг. Модны тухай ярихад өвөг эцэг, эцэг, хүүхэд, ахан дүүс гэсэн ухагдахуунуудыг бас хэрэглэдэг.
Мод нь ямар нэг нөхцөлийг хангах тодорхой дүрмээр зохион байгуулагдсан зангилаанууд болон тэдгээрийг холбосон холбоосуудыг агуулдаг. Зангилаа нь мэдээлэлийг хадгалах ердийн нэг объект ба холбоос нь хоёр зангилааны хоорондын харилцааг тодорхойлдог. Холбоосоор холбогдсон модны дараалсан зангилаануудын жагсаалтыг зам гэнэ.
Модыг ингэж сурах нь байгаль дээрхтэй адилтгаж ойлгоход хэрэгтэй ч компьютерын ухаанд дараах байдлаар зурдаг. Амьдрал дээр мод бүтцээр илэрхийлж болох, илүү тохиромжтой олон тооны өгөгдлийг нэрлэж болно. Жишээ нь хүмүүсийн ургийн бичиг, байгуулгын зохион байгуулалтын бүтэц, Байгаль, техникийн нийлмэл системийн бүтэц г.м. Өгөгдлийн мод бүтэц дээр боловсруулалт хийнэ гэдэг үнэн чанартаа модны үндсээс навч хүртэл дээшээ, доошоо салаа мөчрөөр дамжин нэвтрэлт хийнэ гэсэн үг. Хоёртын модонд нэвтрэлт нь сонгосон алгоритмаасаа хамаарч Preorder, Inorder, Postorder, Levelorder гэсэн 4 төрөлд хуваагддаг.
Preorder нэвтрэлт:
public static void preOrder(BinaryTreeNode t)
{
 if (t != null)
{
visit(t);
 preOrder(t.leftChild)
  preOrder(t.rightChild)
   }
}
inOrder нэвтрэлт:
public static void inOrder(BinaryTreeNode t)
{
 if (t != null)
nOrder(t.leftChild);
 visit(t);
 inOrder(t.rightChild);
 }
}
public static void postOrder(BinaryTreeNode t)
{
if (t != null)
  { \  postOrder(t.leftChild);
 postOrder(t.rightChild);
visit(t);

}
Компьютерийн ухаанд хоёртын моднь өргөн хэрэглэгддэг өгөгдлийн бүтэц юм. Мод нь зангилаатай байдаг бөгөөд ихдээ 2 хүүхэд зангилаатай байдаг (баруун хүүхэд ба зүүн хүүхэд ).Үндэс (root node) нь модны бүх зангилааны өвөг дээдэс нь болох ба модны аль ч зангилаа толгой зангилаанаас хамааралтай байна. Мод нь толгой зангилаанаас өөр зангилаагүй бол хоосон мод болно. Хоёртын мод-онд бүх зангилааны түвшин нь ихэвчлэн хоёр байдаг. n зангилаатай мод байвал n-1 нь мөчир эсвэл түвшин болно. Хоёртын мод нь binarySearchTrees эсвэл binaryHeaps- ийн хэрэгжүүлдэг. Энэ нь хайх болон эрэмблэх гэсэн давуу талуудыг зэрэг тусгасан.
Хоёртын модны онцгой хэрэглээ нь K-ary tree юм.
Хоёртын мод нь модны онцгой нэг тохиолдол бөгөөд зангилаа бүр нь хоёроос илүүгүй дэд зангилаатай байдаг. Хэрэв нэг ч зангилаа агуулаагүй бол хоосон мод буюу null мод/зангилаа гэж нэрлэнэ. Зангилааны хоёр дэд зангилааг зүүн дэд загилаа ба баруун дэд зангилаа гэж ялгадаг. Хоёртын модны зангилаа нь нэг эсвэл хоёр хүүхэд зангилаа агуулж болно.
Модны хамгийн сүүлчийн түвшингээс бусад түвшинд дотоод загилаагаар гүйцэд дүүргэсэн бол түүнийг дүүрэн хоёртын мод гэнэ. Дүүрэн хоёртын модны хамгийн сүүлчийн түвшинд зөвхөн гадаад зангилааг агуулна. Харин дотоод зангилааг агуулах хамгийн сүүлчийн түвшингийн зөвхөн баруун талд зарим гадаад зангилаа байвал түүнийг гүйцэд мод гэнэ.Хоёртын модны өөр нэг онцгой хэлбэр бол ташуу хоёртын мод юм. Ташуу хоёртын модыг зүүн ба баруун ташуу гэж үзэж болно. Хэрэв бүх зангилаа зүүн дэд модгүй бол баруун ташуу, хэрэв бүх зангилаа баруун дэд модгүй бол зүүн ташуу гэнэ. Мөн хөрөөний шүд хэлбэртэй байж болно. Өөрөөр хэлбэл зангилаа бүр зөвхөн зүүн эсвэл баруун дэд модтой байна гэсэн үг юм. Хоёртын мод нь компьютерийн хэрэглээнд маш өргөн ашиглагдах ба тэрээр дүүрэн эсвэл гүйцэд хоёртын мод байх үед хамгийн үр ашигтай юм.

Модны үндэс(Definitions for rooted trees)

·         Чиглэлтэй холбоос нь эцэгээс хүүрүү чиглэж холбоно.
·         Толгой зангилаа нь эцэггүй байна. Модонд ганц л толгой зангилаа байна.
·         Навчин зангилаа нь хүүхэдгүй байна.
·         Толгой зангилаанаас хамгийн доод талын зангилаа хүртэлх замын урт нь модны урт болно.
·         Нэг эцэгтэй зангилаанууд нь ах дүүс болно.
·         Хэрвээ p зангилаа нь толгой зангилаанаас q зангилаа хүртэлх зам дээр байвал p зангилаа нь q зангилааны эцэг болно.

Хоёртын модны шинж чанарууд(Properties of binary treesТөгс хоёртын модны n зангилааны тоог олохдоо дараах томъёог ашиглана. n = 2^h+1-1 (h нь модны түвшин)

·         Хоёртын модны n зангилааны тоог олохдоо өндөр h багадаа n = h + 1 ихдээ n = 2^h+1-1 (h нь модны түвшин)
·         Төгс хоёртын модны навчит зангилаануудын тоог олохдоо дараах томъёог ашиглана. l = 2^h
·         Төгс хоёртын модны n зангилааны тоог олохдоо дараах томъёог ашиглана. n = 2l-1 (l нь модны навчит зангилаануудын тоо)
·         Бүрэн төгс хоёртын модны Null холбоосын тоог олохдоо (хүүхэдгүй зангилаанууд) (n+1).
·         Бүрэн төгс хоёртын модны дотоод зангилааны тоо (навчгүй зангилаа)











Батлав. МХМБСТэнхмийн эрхлэгч ........................................................../О.Мөнхбаяр/
Лекц –  10 Өгөгдлийн санд тавигдах шаардлага


Өгөгдөл гэж юу вэ?
Өгөгдөл гэдэг нь тоо буюу тэмдэгтийн цогц юм.Жишээ.нь: 123, аав, нар гэх мэт
Мэдээ гэж юу вэ?
Мэдээ гэдэг нь ямарч зорилгогүй цуглуулсан өгөгдөл. Жишээ нь: цас орох

Мэдээлэл гэж юу вэ?
Мэдээлэл гэдэг нь тодорхой зорилготойгоор ямар нэг хэрэгцээ шаардлагыг хангахуйцаар боловсруулагдсан мэдээг хэлнэ.
Жишээ нь маргааш цас орно. Дулаан хувцсаа өмсөөд гараарай гэх мэт
Ингэхээр өгөгдөл, мэдээ, мэдээлэл гурав нь нэг нь   нэгнээсээ урган гарсан бөгөөд мэдээ нь анхдагч мэдээлэл нь хоёрдогч болж байна. Аливаа өгөгдлүүд нь   хоорондоо ямар нэг уялдаа холбоотой байна.
Өгөгдлийн сан нь өөр хоорондоо харилцан холбоотой өгөгдлүүдийн цуглуулга юм. Өөрөөр хэлбэл олон хэрэглэгч олон зорилгоор ашиглаж болох өгөгдлүүдийн цогцыг өгөгдлийн сан гэнэ.
Өгөгдлийн сан нь хоорондоо логик холбоо бүхий өгөдлүүдийн цогц юм. Олон  хэрэглэгч  олон  зорилгоор  ашиглаж  болох  давуу талтай  байдаг.
Тодорхой утга агуулгатай, дүрслэж болох мэдээллийг өгөгдөл гэнэ. Тухайлбал: хүний нэр, утас, хаяг, төрсөн он сар өдө.р гэх мэт ...
Тодорхой хэлбэл та Бидний ашигладаг системүүд мэдээлэлүүдийг тодорхой бүтэц бүхий хүснэгтэнд хадгалдаг ба үүнийг өгөгдлийн сан гэнэ.
Өгөгдөл нь ямар нэр, төрөл, бүтэцтэй өгөгдлийн санд хадгалагдахыг заахыг өгөгдлийн сангийн бүтцийг тодорхойлох гэж хэлнэ. Тухайлбал: Хүний нас нь тоогоор илэрхийлэгдэнэ, Төрсөн өдөр нь огноогоор, нэр нь үгээр гэх мэтчилэн... Тодорхой мэдээлэл гаргаж авахын тулд өгөгдлийн санд хайлт хийх, өгөгдлийн санг засварлах, мэдээлэл боловсруулах зэрэг үйлдлүүдийг өгөгдлийн сангийн боловсруулалт гэнэ.
Харин тэрхүү хүснэгтэн мэдээллүүддээ боловсруулалт хийн бидний хэрэгцээт мэдээллийг боловсруулан гаргаж ирэх үйл явцыг өгөгдлийн сангийн боловсруулалт гэнэ.
Мэдээллийн  сангийн  үүрэг  зориулалт :
Ø  Өгөгдлийг хуваан ашиглах боломж өндөртэй.
Ø  Өгөгдөлд өөрийн эрхээр хандах боломж өөрөөр хэлбэл нууцлалт, хамгаалалт сайн.
Ø  Өгөгдлийн давхардлыг багасгах, өгөгдлийн тогтвортой байдлыг хангах боломж.
Ø  Өгөгдлийг найдвартай хадгалах
Ø  Өгөгдлтйн төвлөрөлт олон хэрэглэгч хандах боломж өндөр
Ø  Нийтэд түгээгдсэн стандарт байдал хяналт тавих боложтой.

Мэдээллийн сан нь талбар (Fields), бичлэг (records) болон файлаас (File) бурддэг. Талбар гэдэг нь багана бухий мэдээлэл бөгөөд бичилт нь нэг мөрөнд. байгаа нийт мэдээллийг хэлдэг. Нийторуулсан мэдээллээ нэр өгч сануулан, файл болгодог. Өөрөөр хэлбэл нэг мэдээллийн санг файл гэнэ. Жишээлбэл: нэг байгууллага ажилчдынхаа телефон утасны жагсаалтыг мэдээллийн санд оруулсан бол ажилчдын нэр, хаяг, утасны дугаар нь талбар болох бөгөөд эдгээр талбарын дор оруулсан мэдээлэл нь бичлэг  болдог. Ингээд мэдээллийг сануулж нэр өгөхөд файл болж хадгалагдана.
Талбар нь тоо, текстний аль алинаас нь бурдэж болно. Мөн суулийн чер, ашиглагдаж байгаа мэдээллийн сангийн программийн тусламжтайгаар фото зургыг ч нэг талбар болгон оруулах боломжтой. Талбарт мэдээллийг заавал оруулах, оруулахгуй хоосон орхиж болох гэсэн 2 төрлөөр мэдээллийг бичиж оруулж болно. Өгөгдлийн сан нь мэдээлэл хайх, статистик мэдээ гаргаж авахад хялбар байдгаараа давуу талтай. Хувь хун өөрийн гэсэн мэдээллийн сан нээж ашиглажболохоос гадна дотоод сулжээнд байгууллагын ажйлчид дундаа ашиглах боломжтой. Мөн вэб хуудсан дээр байрлуулсан мэдээллийн сан руу ямар ч хун хаанаас ч хандах боломжтой байдаг.
            Ингэхээр  өгөгдөл, мэдээ, мэдээлэл  гурав нь  нэг нь   нэгнээсээ  урган  гарсан  бөгөөд  мэдээ  нь  анхдагч  мэдээлэл  нь  хоёрдогч  болж  байна.
Аливаа  өгөгдлүүд  нь   хоорондоо  ямар нэг  уялдаа холбоотой  байна.














Батлав. МХМБСТэнхмийн эрхлэгч ........................................................../О.Мөнхбаяр/
Лекц - 11 Тайлангийн загвар
Хичээлийн зорилго
Оюутнуудад тайлангийн талбаар мөн өгөгдлийн сангийн системээс хэрхэн тайлан бэлдэх талаар ойлголт өгөх болно.
Хичээлийн агуулга
                        Шинээр тайлан бэлдэх
                        Design View хэлбэрээр тайлан бэлдэх
                        Wizard – аар тайлан бэлдэх
                        Label Wizard хэлбэрээр тайлан гаргах

REPORT гэдэт нь тайлан гэсэн үг бөгөөд ACCESS-дээр Report байгуулна гэдэг нь TABLE-д байгаа өгөгдлийн цаасан дээр хэвлэж гаргах загварыг байгуулахыг нэрлэж байна. FORM ашиглан бид TABLE-ийн мэдээллийг дэлгэцэнд харуулж байсан бол REPORT ашиглан TABLE дахь мэдээллийг цаасан дээр хэвлэж авах боломжтой.
Шинээр REPORT байгуулахдаа DATABASE-ийн REPORT хуудсыг нээж NEW командыг өгнө. Ингэхэд NEW нэртэй харилцах цонх нээгдэх ба шинээр байгуулах REPORT -ийг хулганаар сонгож, мөн TABLE /QUERY хэсгээс ямар мэдээллийн баазад байгаа бичлэгүүдийг үндэслэн REPORT байгуулахыг сонгож ОК командыг өгнө.
WIZARD-AAP REPORT-ИЙГ БАЙГУУЛАХ
1. REPORT-ийн хэлбэрээс REPORT WIZARD-ийг сонгоно. Мөн REPORT байгуулах мэдээллийн баазыг сонгож ОК командыг өгнө.
2. Гарч ирэх цонхноос сонгосон ТАВLЕ/QUERY-д байгаа талбаруудаас ямар талбарын мэдээллийг REPORT дээр гаргахыг тодорхойлж NEXT командыг дарна. TABLE/QUERY нүдэнд таны сонгосон TABLE байрлах ба AVAILABLE FIELDS нүдэнд тухайн table-ийн талбарын жагсаалт байрлах ба талбаруудаас хулганы тусламжтайгаар сонгож сумтай товчнуудаар SELECTED FIELDS нүдэнд шилжүүлж авчирна.
3. Ямар группын мэдээллээр груплэхийг сонгож NEXT командыг сонгоно.
4. Дараагийн гарч ирэх цонхонд REPORT дээр гарах мэдээллийг ямар талбараар эрэмбэлэхийг тодорхойлно. Эрэмбэлэх бол өсөх болон буурах дарааллаар эрэмбэлэх аль нь эсэхийг тодорхойлно. NEXT товчийг дарна.
5. Дараагийн цонхонд REPORT-ийн гаднах хэлбэр ямар байх вэ? мөн тайланг гаргах хуудасны хэлбэрийг сонгож NEXT командыг сонгоно. REPORT-ийн LAYOUT-аас сонгоход цонхны хажууд жишээ харагдах болно.
6.REPORT-ийн цаасны дэвсгэр, REPORT-ийн бичлэгүүдийн үсгийн хэлбэр зэргийг сонгож NEXT командыг өгнө.
7. REPORT-ийн гарчиг ямар байхыг тодорхойлох ба REPORT-ийн загварыг байгуулах уу? эсвэл REPORT-ийг байгуулж шууд ажиллуулах уу гэдгийг сонгож FINISH командаар үйлдлийг төгсгөнө. Үүний дараа FILE цэсээс SAVE командыг өгч тайлангийн файлын нэрийг тодорхойлж өгсөнөөр диск төхөөрөмж дээрх таны DATABASE дотор REPORT хадгалагдана. VIEW цэсийн DESIGN VIEW командаар эсвэл REPORT-ийг сонгож DESIGN командыг өгснөөр REPORT-ийн загвар буюу бүтцийг харж болно.
VIEW цэсийн PRINT PREVIEW командаар буюу эсвэл REPORT-ийг сонгож PREVIEW командыг өгсөнөөр тайланг урьдчилан харна.
REPORT-ийг WIZARD-гүйгээр байгуулна гэдэг нь REPORT-ийн загварыг ACCESS программын хэрэгсэлүүдийн тусламжтайгаар байгуулахыг хэлнэ. Үүний тулд эхлээд бид тайланд гарах мэдээллийн баазыг сонгохын зэрэгцээ уг тайлангийн хэлбэрийг NEW цонхноос сонгохдоо DESIGN VIEW-ийг сонгож ОК командыг өгч цааш үргэлжлүүлнэ.
Ингэхэд REPORT DESIGN-ийн цонх гарах ба REPORT-ийн хөл ба толгой хэсэгт тайлангийн хуудасны хөлийн ба толгойн хэсэгт гарах зүйлийг тодорхойлж өгнө.Харин REPORT DESIGN-ний DETAIL хэсэгт REPORT дээр гарах TABLE-ийн талбаруудыг байрлуулна. REPORT-ийн HEADER болон FOOTER-ийг гаргахын тулд VIEW цэсийн REPORT HEADER/FOOTER командыг сонгоно. Харин хуудасны хөл ба толгойн хэсгийг гаргаж ирэхийн тулд VIEW цэснээс PAGE HEADER/FOOTER командыг цдэвхнжүүлнэ. Харин DETAIL хэсэгт гарах талбарын жагсаалтыг VIEW цэспйн FIELD LIST командыг өгөн гаргаж ирэх ба FORM-ийн загварыг байгуулж байсантай адилаар тухайн тайланд гарах талбаруудыг сонгон байрлуулна.



















Батлав. МХМБСТэнхмийн эрхлэгч ........................................................../О.Мөнхбаяр/
Лекц - 12 Тайлангийн загвар
ªãºãäëèéí òºðë¿¿ä
Ø  Text- Тэмдэгт болон тоон утга. 255 урт. Тоон утга авсан тохиолдолд тооцоолох үйлдэл хийхгүй. Тоог тэмдэгт гэж ойлгоно. Жишээ нь: Оюунтуяа, PT05D056 г.м
Ø  Memo- өргөтгөсөн text төрөл юм. 65535 урт
Ø  Number- Тооцоолох үйлдэл хийх тоо утга
Ø  Date/Time- Он сар өдөр болон цаг хугацааг тодорхойлно. Жишээ нь: 12/03/2003, 12:45 г.м
Ø  Currency- Мөнгөн тэмдэгт болон тоон утга авна. Хамгийн ихдээ таслалаас өмнө 15 орон, таслалаас хойш 4 орон авна.
Ø  AutoNumber- Автоматаар өсөх дарааллаар дугаарлана.
Ø  Yes/No- Тийм/үгүй, үнэн/худал гэх мэт хоёр сонголттой талбаруудыг тодорхойлно. Жишээ нь: Хүйс- эрэгтэй/эмэгтэй.
Ø  OLE object- Зураг, дуу, MS word doc гэх мэт файлууд
Ø  Hyperlink- ямар нэгэн холбоос. Жишээ нь: web page, doc link г.м
Ø  Lookup Wizard- Тусдаа тодорхойлсон ListBox and ComboBox
Field properties – талбар тус бүрийн холбоотой шинж чанарыг тодорхойлно.
Field properties: -    General
- Look up
a) General-ийн бүтэц – Field size – энэ хэсэг нь талбарын утгын хэмжээ авах утгын хязгаарыг тодорхойлно.
1) Field size нь number болон text төрөл дээр тодорхойлогдно. Text төрлийн талбарыг тодорхойлохдоо хичнээн тэмдэгт оруулахаа шууд хийж өгнө.  
Number төрлийн хувьд тоон өгөгдлийн янз бүрийн хэмжээг тодорхойлж болно.
Үүнд: Талбарын хэмжээ.
Талбарын хэмжээ
Авах утга
Санах ойд эзлэх хэмжээ
Byte
0-255
1 byte
Integer
(-32767) - 32767
2 byte
Long integter
(-2147483648) - 2147483648
4 byte
Single
(-3,8)*10­38 – 3,4*10­38
4 byte
Double
(-1,797)*10308 - 1,797*10308
8 byte
2) Format нь талбарын өгөгдлүүдийн гарах хэлбэрийг тодорхойлно. Ямар төрлийн талбар сонгосоноос шалтгаалан өөр өөр байна.
Data Type – хэсэгт:
- Text -тэмдэгт
- Number – тоон
- Data time – Он, сар, өдөр
- Memo - үг, өгүүлбэр, парагарф
- Currency – Мөнгөн илэрхийлэл
- Auto number – автоматаар дугаарладаг
- Yes/No – Тийм/үгүй гэсэн логик өгөгдлүүд
- OLE object – Зураг, график, дуу гэх мэт
- Hyperlink – Хаягуудыг авна
- Look up wizard – жагсаалтын болон өөр хүснэгдээс авах утгууд
       Number төрлийн хувьд: Format нь
Талбарын нэр
Авах утга
Харагдах хэлбэр
Number
1234.5
1234.5
Currency
1234.5
$ 1,254.50
Euro
1234.5
E 1,234.50
Fixed
1234.5
12345
Standard
1234.5
1,234.50
Percent
0.824
82,40%
       
       
       
       
       Yes/no           On/off         True/false
      3) Input mask – талбарын утгыг гараас оруулалтаас ямар хэлбэрээр гарахыг харуулна.
4) Caption – Идэвхтэй байгаа талбарын гарчиг эсвэл хүснэгтийн талбайн гарчигийг өгнө. Энэ нүдийг хоосон орхивол хүснэгтийн толгойд талбарын нэр гарна.
5) Default value – Энэ хэсэгт хүснэгтэнд шинэ бичлэг оруулахад идэвхтэй байгаа талбарт авах анхны утгыг бичиж өгнө. Тухайлбал: Нас гэдэг талбарын хувьд Default value нь 18 гэж авбал талбарын аваханхны утга нь 18 байна.
6) Validation rule – тухайн талбарт орох өгөгдөл ямар нөхцөлийг хангасан байхыг тодорхойлоно. Жишээ нь: Нас талбарт <> 0 гэж бичвэл 0ээс өөр утга авна.
7) Validation text – Энэ эхсэгт validation rule-д тодорхойлсон нөхцлийг зөрчвөл хэрэглэгчид өгөх сануулга, зөвлөгөө, алдааны мэдээллийг бичиж өгнө.
8) Indexed – Тухайн сонгосон талбарыг index-лэх эсэхийг тодорхойлно.
9) Required – Тухайн талбарт утга оруулах эсэхийг тодорхойлно.
     Yes – заавал утга оруулна No – утга оруулаагүй байж болно.
Б)  Look up – Тухайн талбарын өгөгдлийг оруулах хэлбэрийг сонгоно.                           Жишээ нь:  Yes/no төрлийн өгөгдлийн явцад text box-д гараас тийм/үгүй гэж оруулах уу?  Check box-д тийм/үгүй гэсэн сонголт хийх үү? List box, combo box ашиглан жагсаалт үүсгэж тийм үгүй гэсэн утгаас авна г.м.
                            Хүснэгтийн бүтцийг өөрчлөх
Хүснэгтээ сонгоод өгөгдлийн сангаас цонхны design хэрэгслийг дарна.
Талбар нэмэх: Курсор байрлаж байгаа талбарын урд шинэ талбар нэмж ордог Insert/rows командыг ашиглана.
Талбар устгах: устгах талбараа идэвхжүүлээд Edit/delete rows
Талбарын нэр өөрчлөх: Өөрчлөх талбарын Data type-г сонгоно талбарын төрлийг өөрчлөх үед талбарын өгөгдөлүүд устах тохиолдол байдаг. Ийм үед анхааруулсан мэдээлэл гарна.

Бичлэг оруулах:
Хүснэгтээ идэвхжүүлээд view-data sheet view-г сонгоно талбарын өгөгдлийн төрөл төлөвүүдээс шалтгаалан өгөгдлөө гараас оруулна.
Өгөгдөл хайх:
Edit – Find, Find what хэсэгт хайх өгөгдлөө бичнэ. – look in хэсэгт өгөгдлөө хайх хүснэгтийн талбараа сонгоно. Match хэсэгт бүх талбар эсвэл идэвхтэй байгаа талбараас хайлт хийнэ. Move нэмэлт сонголт хийнэ. Search идэвхтэй бичлэгээс дээш доош эсвэл бүх бичлэгт хайлт хийхэсэхийг сонгох. Match case тэкстийг том, жижиг үсгээр бичсэнийг ялган авч үзэх.
Өгөгдлийг хайгаад өөр өгөгдлөөр солих:
Edit-Replace-г сонгоно. Find what хэсэгт анхны өгөгдлийг бичиж өгнө. Replace with хэсэгт солих өгөгдлөө бичнэ.
Бичлэгүүдийг эрэмбэлэх:
Records-soft-г сонгоно. Өсөх дарааллаар эрэмбэлэх бол – Ascending
Буурах дарааллаар эрэмбэлэх бол – Discending
Бичлэг шүүх ялгах: Record – Filter-г сонгоно. Filter by form – 1 буюу хэд хэдэн талбараас өгөгдлөө сонгоно. Filter by selection – Сонгосон өгөгдөл бүхий бичлэгүүдийг сонгоно. Advanced filter sort – нэмэлт сонголттойгоор ялгах.























Батлав. МХМБСТэнхмийн эрхлэгч ........................................................../О.Мөнхбаяр/
Лекц – 13 Хүснэгттэй ажиллах
Field properties – талбар тус бүрийн холбоотой шинж чанарыг тодорхойлно.
Field properties: -    General
- Look up
a) General-ийн бүтэц – Field size – энэ хэсэг нь талбарын утгын хэмжээ авах утгын хязгаарыг тодорхойлно.
1) Field size нь number болон text төрөл дээр тодорхойлогдно. Text төрлийн талбарыг тодорхойлохдоо хичнээн тэмдэгт оруулахаа шууд хийж өгнө.  
Number төрлийн хувьд тоон өгөгдлийн янз бүрийн хэмжээг тодорхойлж болно.
Үүнд: Талбарын хэмжээ.
Талбарын хэмжээ
Авах утга
Санах ойд эзлэх хэмжээ
Byte
0-255
1 byte
Integer
(-32767) - 32767
2 byte
Long integter
(-2147483648) - 2147483648
4 byte
Single
(-3,8)*10­38 – 3,4*10­38
4 byte
Double
(-1,797)*10308 - 1,797*10308
8 byte
2) Format нь талбарын өгөгдлүүдийн гарах хэлбэрийг тодорхойлно. Ямар төрлийн талбар сонгосоноос шалтгаалан өөр өөр байна.
Data Type – хэсэгт:
- Text -тэмдэгт
- Number – тоон
- Data time – Он, сар, өдөр
- Memo - үг, өгүүлбэр, парагарф
- Currency – Мөнгөн илэрхийлэл
- Auto number – автоматаар дугаарладаг
- Yes/No – Тийм/үгүй гэсэн логик өгөгдлүүд
- OLE object – Зураг, график, дуу гэх мэт
- Hyperlink – Хаягуудыг авна
- Look up wizard – жагсаалтын болон өөр хүснэгдээс авах утгууд
       Number төрлийн хувьд: Format нь
Талбарын нэр
Авах утга
Харагдах хэлбэр
Number
1234.5
1234.5
Currency
1234.5
$ 1,254.50
Euro
1234.5
E 1,234.50
Fixed
1234.5
12345
Standard
1234.5
1,234.50
Percent
0.824
82,40%
 Yes/no           On/off         True/false
3) Input mask – талбарын утгыг гараас оруулалтаас ямар хэлбэрээр гарахыг харуулна.
4) Caption – Идэвхтэй байгаа талбарын гарчиг эсвэл хүснэгтийн талбайн гарчигийг өгнө. Энэ нүдийг хоосон орхивол хүснэгтийн толгойд талбарын нэр гарна.
5) Default value – Энэ хэсэгт хүснэгтэнд шинэ бичлэг оруулахад идэвхтэй байгаа талбарт авах анхны утгыг бичиж өгнө. Тухайлбал: Нас гэдэг талбарын хувьд Default value нь 18 гэж авбал талбарын аваханхны утга нь 18 байна.
6) Validation rule – тухайн талбарт орох өгөгдөл ямар нөхцөлийг хангасан байхыг тодорхойлоно. Жишээ нь: Нас талбарт <> 0 гэж бичвэл 0ээс өөр утга авна.
7) Validation text – Энэ эхсэгт validation rule-д тодорхойлсон нөхцлийг зөрчвөл хэрэглэгчид өгөх сануулга, зөвлөгөө, алдааны мэдээллийг бичиж өгнө.
8) Indexed – Тухайн сонгосон талбарыг index-лэх эсэхийг тодорхойлно.
9) Required – Тухайн талбарт утга оруулах эсэхийг тодорхойлно. Yes – заавал утга оруулна No – утга оруулаагүй байж болно.
Б)  Look up – Тухайн талбарын өгөгдлийг оруулах хэлбэрийг сонгоно.                           Жишээ нь:  Yes/no төрлийн өгөгдлийн явцад text box-д гараас тийм/үгүй гэж оруулах уу? Check box-д тийм/үгүй гэсэн сонголт хийх үү? List box, combo box ашиглан жагсаалт үүсгэж тийм үгүй гэсэн утгаас авна г.м.
                            Хүснэгтийн бүтцийг өөрчлөх
Хүснэгтээ сонгоод өгөгдлийн сангаас цонхны designхэрэгслийг дарна.
Талбар нэмэх: Курсор байрлаж байгаа талбарын урд шинэ талбар нэмж ордог Insert/rows командыг ашиглана.
Талбар устгах: устгах талбараа идэвхжүүлээд Edit/delete rows
Талбарын нэр өөрчлөх: Өөрчлөх талбарын Data type-г сонгоно талбарын төрлийг өөрчлөх үед талбарын өгөгдөлүүд устах тохиолдол байдаг. Ийм үед анхааруулсан мэдээлэл гарна.
Бичлэг оруулах:
Хүснэгтээ идэвхжүүлээд view-data sheet view-г сонгоно талбарын өгөгдлийн төрөл төлөвүүдээс шалтгаалан өгөгдлөө гараас оруулна.
Өгөгдөл хайх:
Edit – Find, Find what хэсэгт хайх өгөгдлөө бичнэ. – look inхэсэгт өгөгдлөө хайх хүснэгтийн талбараа сонгоно. Matchхэсэгт бүх талбар эсвэл идэвхтэй байгаа талбараас хайлт хийнэ. Move нэмэлт сонголт хийнэ. Search идэвхтэй бичлэгээс дээш доош эсвэл бүх бичлэгт хайлт хийхэсэхийг сонгох. Match case тэкстийг том, жижиг үсгээр бичсэнийг ялган авч үзэх.
Өгөгдлийг хайгаад өөр өгөгдлөөр солих:
Edit-Replace-г сонгоно. Find what хэсэгт анхны өгөгдлийг бичиж өгнө. Replace with хэсэгт солих өгөгдлөө бичнэ.
Бичлэгүүдийг эрэмбэлэх:
Records-soft-г сонгоно. Өсөх дарааллаар эрэмбэлэх бол –Ascending
Буурах дарааллаар эрэмбэлэх бол – Discending
Бичлэг шүүх ялгах: Record – Filter-г сонгоно. Filter by form –1 буюу хэд хэдэн талбараас өгөгдлөө сонгоно. Filter by selection – Сонгосон өгөгдөл бүхий бичлэгүүдийг сонгоно.Advanced filter sort – нэмэлт сонголттойгоор ялгах. 




Батлав. МХМБСТэнхмийн эрхлэгч ........................................................../О.Мөнхбаяр/
Лекц – 14 Баазтай ажиллах
Өгөгдлийн бааз (Database)
Database гэдэг нь зохион байгуулалттай олон файлуудын нэг юм. Энэ нь уламжлалт файлын системээс илүү ашиглалттай болгодог. Өгөгдлийн баазын хэмжээ янз бүр байж болох бөгөөд энгийн компьютерт багтах эсвэл бүр онлайнаар авах боломжтой.
Микрокомпьютерийн хэрэглээнд өөрийн өгөгдлийн баазыг энгийн database management software-г ашиглан боловсруулж байна.  Үүнд: Paradox, Access, Dbase 5, FoxPro. Энэ нь программыг оюутнууд судалгаа боловсруулах, худалдааны хүмүүс хэрэглэгчийн худалдан авалтыг бүртгэх, захиалга авах зэрэгт зориулсан өгөгдлийн баазыг боловсруулахад хэрэглэнэ.
Харин зарим бааз нь энгийн микрокомпьютерт хадгалагдаж багтахааргүй том байдаг. Гагцхүү онлайнаар хандалт хийнэ. Энэ өгөгдлийн баазыг information utilities гэх бөгөөд төлбөртэй, төлбөргүй хандалт хийлгэдэг байна.
Олон нийтийн мэддэг information utilities бол America Online, Compuserve & MS Network.
Бусад төрлийн өгөгдлийн баазад shared or distributed бичлэгтэй өгөгдлийн бааз ордог бөгөөд үүнд зөвхөн тухайн байгууллагын эсвэл компанийн ажиллагсад эсвэл тодорхой бүлэг хүмүүс хандалт хийхийг зөвшөөрнө.
Shared or Distributed Database

• Shared: Нэг байрлалд байгаа нэг байгууллага эсвэл компанийн хэрэглэгчид өгөгдлийн баазаа хуваан ашиглахыг хэлнэ. Энэ нь өгөгдлийн бааздаа дотоод сүлжээний тусламжтай хандах бөгөөд өгөгдлийн бааз нь мини эсвэл mainframe компьютер дээр суурилдаг.
• Distributed: Өөр өөр байршилд (client server-ээр холбогдсон) өөр өөр компьютерууд өгөгдлийн баазыг хадгалах бөгөөд үүнийг distributed гэнэ. Жишээ нь: Дэлгүүрийн худалдан авалтын дүр зургийг харъя гэвэл өөрийн дэлгүүрийн сүлжээнүүд дээрээ байрлах компьютерүүдээс тайланг авах хэрэгтэй болно. Харин ажилчны тухайд энэ өгөгдөл нь хаанаас ирж байгааг мэдэхгүй. Гэлээ ч нийт өгөгдлийг авч түүнд хандаж чадна.
Database Administrator- Өгөгдлийн баазын администратор
Энэхүү өгөгдлийн баазыг байнга хянаж удирдах хүн зайлшгүй байх хэрэгтэй болдог бөгөөд түүнийг database administrator гэдэг. Түүний үүрэг нь:
Өгөгдлийн баазын дизайн, гүйцэтгэл, үйлдэл: DB-ын дизайныг гаргахад DBA тусална. Мөн DB-д хэдий хэмжээний дискний зай хэрэгтэйг тодорхойлох, файл болон бичлэгүүд хэрхэн бичигдэх, устгагдах, хэрхэн өөрчлөлт хийж болохыг тодорхойлно.
• Coordination with users: DBA хэрэглэгчийн хандалтын зэрэглэл, стандарт, зааврыг тодорхойлох, үйл ажиллагааг хянах, хүсэлтэд зэрэглэл тогтоох, хэрэглэгчийг докуминтацчилах, оролтын процедурыг бий болгох зэрэг үүрэг гүйцэтгэнэ.
• System security: DBA нь өгөгдлийн баазад хандах эрхгүй хүн хандахаас сэргийлэх хяналтын системийг суурилуулна.
• Backup & recovery: Өгөгдлийн баазын эвдрэл эсвэл устал нь бүхэл бүтэн байгууллагын үйл ажиллагаанд нөлөөлнө. Иймд DBA нь тэр баазын нөөцийг байнга бэлтгэж байх ёстой. Мөн аливаа аюул тохиолдоход өгөгдөл, үйлдлийг сэргээх төлөвлөгөөг боловсруулан бэлтгэсэн байх.
• Performance monitoring: DBA нь DB хэрэглэгчдэд зөв хүрч ажиллаж байгаад системд хяналт тавих ёстой. Энэ талын ихэнхи гомдол нь DB-д олон хүн хандалт хийснээр удаан байснаас үүддэг.







Батлав. МХМБСТэнхмийн эрхлэгч ........................................................../О.Мөнхбаяр/
Лекц – 15 Холболт хийх
Relationship холболт
Relational database-ийн хүснэгтүүдэд нэг давхацсан /адилхан/ талбар байх ёстой. Энэ давхцагч талбар нь нэг хүснэгтийн нөгөө хүснэгттэй холбох холбоос байх болно. Тэгэхээр relationship гэдэг нь нэг хүснэгтийн бичлэгийг нөгөө хүснэгтийн бичлэгтэй холбох холбоос юм. Үүний ачаар тус тусдаа хүснэгтүүд хоорондоо харилцан уялдаа холбоотой болж цогц өгөгдлийн санг үүсгэх юм. Хүснэгтүүдийг хооронд нь холбох 3 янзын холбоос байдаг. Үүнд:
1. Нэг нь нэгтэй /one to one/
2. Нэг нь олонтой /one to many/
3. Олон нь олонтой /many to many/

Холбоос холбоосын үүрэг бүтэц

·         Оюутнуудад холбоосын төрөл болон төрлийн зэргийн талаар ойлголт өгнө.
·         Холбоосын төрөл ба холбоосын төлөөлөл
                        Холбоосын төрлийн зэрэг
                        Холбоосын үүрэг ба рекурс холбоос
                        Холбоосын төрлийн бүтэц

Холбоосын төрөл ба холбоосын төлөөлөл
Холбоосын төрөл R нь E1,E2,E3.......EN гэсэн обьектийн төрлүүдийн
хоорондох хамаарлыг тодорхойлно. Математик томьёоллоор илэрхийлбэл R нь e1,e2,e3.......eN гэсэн n ширхэг обьектийн хамаарлыг тодорхойлсон холбоосын төлөөлөл rj ийн олонлог бөгөөд холбоосын төлөөлөл rj дэх обьект ej нь 1≤ J≤ n үед обьектийн төрөл Ej-ийн нэг төлөөлөл юм.
Холбоосын төрлийн зэрэг
Холбоос нь хэдэн ч обьектийн төрлийн хооронд үүсч болдог. Холбоосын төлрийн зэрэг нь холбогдож байгаа обьектийн тоог заадаг. Хэрэв хоёр обьект холбогдож байвал хоёртын холбоос үүсдэг.
Холбоосын үүрэг ба рекурс холбоос
Холбоосын төрөлд оролцож байгаа обьектийн төрөл бүр нь өөрийн үүрэгтэй байдаг. Холболтонд хоорондоо ялгаатай обьектууд оролцож байгаа үед обьектийн төрлийг үүргээр нь ялгаж нэрлэх шаардлагагүй байдаг. Зарим тохиолдолд нэг обьектийн төрөл хэд хэдэн удаа өөр өөр үүрэгтэйгээр нэг холбоосын төрөлд оролцдог. Энэ тохиолдолд холбоосын төрөлд орж байгаа обьектийн төрлийг үүргээр нь ялгахын тулд нэрлэдэг бөгөөд ийм холбоосын төрлийг рекурсив холбоос гэдэг.
Холбоосын төрлийн бүтэц
Нэг обьектийн төрлийн хэд хэдэн төлөөлөл нь өөр обьектийн хэд хичнээн төлөөлөлтэй холбогдож байгаагаас хамаарч холболт нь нэг нь нэгтэй (1 : 1) , нэг нь олонтой (1 : N) , олон нь олонтой (N : M) гэсэн төрлүүд байдаг. 1 : 1 ба 1 : N төрлийн холболтыг обьектийн тодорхойлолтонд холбоос атрибут нэмж авах аргаар зохион байгуулах нь тохиромжтой байдаг.