Өгөгдөл нь ихэвчлэн програмчлалтай холбоотой байдаг бөгөөд орчин үеийн мэдээллийн ертөнцөд логикийн хувьд ижил төстэй гурван хувилбараар танилцуулагддаг: програмчлалын хэл дээрх программд тайлбарласан, ашигласан өгөгдөл; өгөгдлийн сангийн систем дэх өгөгдөл; тархсан мэдээллийн систем дэх өгөгдөл. Орчин үеийн програмчлал нь зөвхөн мэдээллийг албан ёсны болгох эхний хувилбарт харьцангуй эрх чөлөөг өгсөн. Хоёрдахь хоёр сонголт нь түүний бүрэлдэхүүн хэсгүүдийн хоорондын харилцаа, мэдээлэл өгөх найдвартай хэлбэрүүд юм.
Өнгөрсөн ба одоогийн өгөгдөл
Програмчлалын хэлнүүдийн үндсэн байр суурь нь өгөгдөл, алгоритмын нарийн тодорхойлолт юм. Компьютер тодорхойгүй байдлын ямар ч боломжийг "байгаагүй": ямар нэг зүйл дээр арга хэмжээ авах шаардлагатай бөгөөд энэ үйлдлийг гүйцэтгэх тушаал байдаг.
Орчин үеийн үзэл баримтлал нь илүү өндөр суурь дээр суурилдаг: өгөгдсөн зүйл байдаг бөгөөд энэ нь яг юу болох нь түүнийг ашиглах газар нь тодорхойлогддог. Ямар ч тохиолдолд ашиглах үед өгөгдлийг автоматаар шалгаж, зөв төрөл рүү хөрвүүлдэг. Орчин үеийн программист тэдний урьдчилсан тайлбар, алгоритм дахь төрлийн нийцтэй байдлыг дагаж мөрдөх үүрэг хүлээхгүй.
Шилжилтийн үйл явц:
- хэрэглэхийн өмнө бичсэн өгөгдөл болон түүний заавал байх ёстой тайлбараас;
- -д бичээгүй өгөгдөл, түүнийг тайлбарлах, ашиглах үүрэг хариуцлагаас чөлөөлнө.
Үнэндээ бид албан ёсны шаардлага харьцангуй суларч байгааг хүлээн зөвшөөрөх боломжтой - энэ нь зөвхөн орчин үеийн програмчлалын хэрэгслүүдийн орчинд л боломжтой. Ажиллаж байх үед өгөгдөл бүрийн төрөл тогтмол бөгөөд тушаалын дараалал сайн тодорхойлогддог.
Төрөл ба загварчлал
Математик ба физик, худалдаа үйлдвэрлэл, эдийн засаг болон тоо ашигладаг бусад салбарууд үргэлж өгөгдөлтэй ажилладаг байсан бөгөөд төрөл гэдэг ойлголтод огт ач холбогдол өгдөггүй байв. Тоонууд бүхэл эсвэл бутархай байх нь тийм ч чухал биш байсан.
Тодорхой томьёо эсвэл тодорхой үйлдэл бүр нь бүхэл тоо, хязгааргүй бутархай, бодит эсвэл комплекс тоо өгч болно. Өнөөг хүртэл хязгааргүй жижиг, хязгааргүй том оюун ухааны гайхамшиг бий. Түүгээр ч барахгүй эдгээр гайхамшгууд нь өөрийн гэсэн шинж чанартай байдаг.
Програмчлалд эрх чөлөө байхгүй хэвээр байна. Бүх зүйлийг хатуу албан ёсны болгох ёстой. Өгөгдлийн тухай ойлголт нь юуны түрүүнд төрөл юм:
- бүхэл тоо;
- боолийн;
- тэмдэгт;
- мөр гэх мэт.
Төрлүүдийн нэр өөр өөр програмчлалын хэлэнд өөр байж болох ч үргэлж бүхэл тоо эсвэл бодит тоо, логикийн утга, тэмдэг,шугам. Тэмдэглэгдээгүй бүхэл тоо, код, байт, үг, давхар үг, тогтмол урттай мөр зэрэг дурсгалууд болон тодорхой санаанууд хэвээр байна.
Өгөгдлийн систем дэх өгөгдлийн тухай ойлголт ямар ч эрх чөлөөгүй. SQL хэл - "олон улсын" (орчин үеийн өгөгдлийн сан болгонд аялгуу байдаг) - зөвхөн өгөгдөлд төдийгүй sql асуулгад ч алдаа гаргахыг тэвчихгүй. Хүсэлтийн алдаа нь үр дүн байхгүй байх баталгаа юм. Тодорхойлолтын зөрчлийн талаар огт ярих шаардлагагүй.
Мэдээллийн процесс болон өгөгдлийн дүрслэлийг загварчлах нь хувьсан өөрчлөгдөж, өөрчлөгдөж буй нөхцөл байдалд дасан зохицож чадах бүтцийг бий болгох цорын ганц найдвартай арга юм.
Эхний динамик
Байгалийн мэдээлэл бол тасралтгүй өөрчлөлт юм. Тодорхой сэдвийн хүрээнд өгөгдлийн загварын тухай албан ёсны тайлбар, ойлголтыг өгөх нь гурван асуудлыг шийдвэрлэх гэсэн үг юм:
- энд ямар өгөгдөл байгааг тодорхойлох;
- тэдний хоорондын харилцааг албан ёсны болгох;
- өгөгдөл болон харилцааг өөрчлөх үйл явцыг тайлбарлах.
JavaScript дахь энгийн алгоритмын өгөгдлийн багцын жишээ - хамгийн хатуу мэдээллийн сангийн удирдлагын системийн загваруудын багасгасан хуулбар.
Хоёр дахь тохиолдолд шинжээчид болон мэргэжилтнүүд өгөгдлийн бүтэц, хүснэгт, харилцааг төлөвлөхдөө аливаа зүйлийн мөн чанарыг олж хардаггүй (байгалийн их хэмжээний мэдээллийг хамрах нь үнэхээр хэцүү байдаг), мөн Сэдвийн талбарт эх сурвалжийн мэдээлэл чөлөөтэй, хялбархан эргэлддэг байхад нүсэр, боловсруулагдаагүй бөөн өгөгдлийн багцыг олж авдаг.
Статикболомжтой
Хуудасны шошгон дээр хуудсанд хавсаргасан код болон үйл явдлуудад хуваарилагдсан функцуудыг оруулах нь нийтлэг JavaScript практик юм. Аль ч тохиолдолд хуудасны шошго нь тухайн вэб нөөцийн хүлээн авах, өөрчлөх, үүсгэх өгөгдлийг тодорхойлдог.
Хэрэв та хуудасны кодыг бүхэлд нь биш харин элементийн үйл явдлууд дээр зохицуулагчийн кодоо маш болгоомжтой төвлөрүүлбэл энэ нь хамгийн зөв гарц юм. Код нь шинэ өгөгдөл оруулахгүй эсвэл байгаа өгөгдлийг засахгүй, харин тухайн цаг мөчид яг юу байгааг анхаарч үзэх нь хамгийн тохиромжтой.
Үнэндээ хэрэв та "өгөгдөл" гэсэн ойлголтыг эх мэдээллийн хамгийн бага статик тайлбар гэж тодорхойлж, түүнийг дагаж мөрдвөл энэ нь танд амжилтанд хүрэх боломж байна гэсэн үг.
Өгөгдлийн сангийн тухайд бүх зүйл илүү төвөгтэй байдаг. Аливаа JavaScript код нь хуудсыг функцээр "хангадаг". Аливаа мэдээллийн сан нь хүснэгт, тэдгээрийн хоорондын хамаарал, хадгалагдсан процедур, асуулга, гаднаас авах боломжтой функцүүдийн цуглуулга юм.
Статик бол аливаа алгоритмын асуудал юм. Өгөгдлийн орчин үеийн ойлголт нь статик: тоо, мөр, тэмдэгт гэх мэт. Мэдээллийн сангийн хүснэгтийг боловсруулах эсвэл бичих үед бүх зүйл жигдэрдэг. Гэхдээ эх нь хэзээ өөр хэмжээс, утгыг олж авдаг вэ? Нэгдүгээр сонголт: тэмдгийг өөрчлөх боловч холболтууд болон хүсэлтүүд шууд орж болзошгүй.
Статик ба объект
"Өгөгдөл" гэсэн ойлголтыг объект гэж тодорхойлох нь нөхцөл байдлыг эрс өөрчилдөг. Объект нь өөрийн гэсэн бүтэцтэй байдаг. Энд та ямар ч хувьсагчийн дурын тайлбарыг ашиглаж болно. Дүр тоглохгүй. Объект нь өгөгдлийг ашиглах боломжтой аргуудтай байдаг. Бүх зүйлээс хойшпрограмчлалын салбарт ашигладаг, өөрөөр хэлбэл гурван үндсэн арга: унших, бичих, өөрчлөх. Та харьцуулах, хайх, хувилах гэх мэт олон зүйлийг нэмж болно.
Сэдвийн талбар нь өгөгдөл бүрт олон тооны шинж чанарыг ногдуулдаг. Тиймээс өгөгдлийн тухай ойлголт нь динамикаар өөрчлөгдөж болох нэг төрлийн тайлбар болж хувирдаг. Объект доторх статик нь түүний гаднах динамикийг өгдөг.
Объект доторх статик тодорхойлогчдын хослолыг өөрчилснөөр та түүний бусад объекттой харилцах динамикийн талаар санаа зовох хэрэггүй болно.
Өгөгдлийн програмчлал ба танилцуулга
Дата гэж юу вэ? Олон нийтийн ухамсар аль хэдийн мэдээллийн технологид дассан, үүлэн дотор ажилладаг, виртуал орон зайд чингэлэгтэй байдаг. Одоо зөвхөн мэргэжлийн программистууд, хэрэглэгчид төдийгүй жирийн хүмүүс ч мэдээлэл, түүнийг ашиглах тал дээр чадварлаг болсон.
Гэхдээ програмчлал гэж юу вэ? Өнөөдрийг хүртэл олон нийтийн санал бодол энэ ойлголт, түүний ойлголтуудад дараах тодорхойлолтыг өгч байна:
- Мэдээлэл ба өгөгдөл нь компьютерийн шинжлэх ухаанд хэрэглэгддэг үндсэн ойлголт юм.
- Өгөгдөл гэдэг нь эргэн тойрны бодит байдалтай холбоотой ажиглалтыг хүлээн авч тэмдэглэсэн тодорхой арга юм.
- Эдгээр нь энгийн бөгөөд төвөгтэй (бүтэц), үндсэн ба хоёрдогч.
- Мэдээллийн сан нь олж, өөрчлөх, ашиглах боломжтой бие даасан материалуудын цуглуулга юм.
Энэ хэр бодитой вэ? Эрх мэдэлтэй зохиолчидтэгж бодож байна. Бодит практик нь сэдэв бүр өөрийн мэдээллийн системийг зөв тодорхойлж, сайн динамик загвар бүтээх бүх боломжийг олгодог.
Үйлчлүүлэгч (хэрэглэгч) программист (мэдээллийн сангийн дизайнер) хэрхэн яаж, юу хийх талаар өөрийн санаа бодлыг тулгах нь цөөнгүй. Програмчлалын үүднээс хэрэглэгчийн ямар ч хүслийг дээд зэргийн нарийвчлалтайгаар биелүүлэх боломжтой.
Хөдөөгийн усан хангамжийн засвар үйлчилгээний төсөвт асуудлыг шийдэхийн тулд Oracle хэрэгтэй (тосгоны 21-р байр) - сайн. MySQL нь ОХУ-ын бүх шуудангийн салбаруудын шуудангийн илгээмжийг хянах системийг зохион байгуулахад шаардлагатай - бүх зүйл ажиллах болно.
Өгөгдлийн сангийн удирдлагын систем эсвэл програмчлалын хэлийг хөгжүүлэгчийн тогтоосон өгөгдлийн тухай ойлголтын хүрээнд та хүссэн үедээ ямар ч алгоритм зохиож, мэдээллийн дурын дүрслэлд хандах боломжтой. Асуулт өөр байна: хамгийн их динамикаар хамгийн бага зардлаар яаж хийх вэ?
Мэдээллийн сан, жишээнүүд
Энгийн суурийг загваргүйгээр бүтээдэг. Өгөгдөл, харилцааны үндсэн ойлголтууд нь жижиг, үйл ажиллагаа нь маш энгийн. Жишээлбэл, дээд боловсролын байгууллагад танд хэрэгтэй:
- багш нарын ширээ;
- бүлгийн хүснэгт (түлхүүр ба бүлгийн дугаар);
- оюутнуудын ерөнхий хүснэгт (бүлгийн түлхүүрүүдийг ашигладаг).
Декан багш нарын ахиц дэвшлийг мэдэхийг хүсч байна. Багш нарын хүснэгтийн талбарууд байна:
- овог;
- нэр;
- эцгийн нэр;
- хяналттай бүлгийн дугаар.
Оюутны хүснэгтэнд талбарууд байна:
- овог;
- нэр;
- эцгийн нэр;
- төрсөн огноо;
- GPA (бүх хичээлийн хувьд);
- бүлгийн дугаар.
Түүвэр авахдаа дор хаяж хоёр сонголт байж болно: багшийн нэрийг ашиглан бүлгийн дугаар руу орж бүх сурагчид болон тэдний дундаж оноо, эсвэл багшийн овог нэр, сүүлчийнхээр харах боломжтой. оюутны нэр, та сүүлийн нэг оюутны дундаж оноог харж болно.
Ийм энгийн хувилбарт ч гэсэн асуудал гарах баталгаатай бөгөөд ямар нэг зүйлийг өөрчлөх шаардлагатай болно. Нөхцөл байдал: багшийн бие муудаж, өөр нэг сар түүнийг сольсон нь хоёр бүлгийг удирддаг гэсэн үг юм. Багшийн хүснэгтэд нэг бүлгийн дугаарын доор зөвхөн нэг талбар байна.
Асуудлыг шийдэхийн тулд та давхардсан талбар нэмэх шаардлагатай. Хэрэв хоёр нь өвдвөл гурван талбар нэмнэ. Тиймээс багш нарын ширээ эхнээсээ өсч эхэлдэг.
Өөр сонголт бий: бүлгийн товчлуурын тоон талбарыг бэлгэдлээр солих. Дараа нь та сонгох болгондоо мөрийг товчлууруудын дараалал болгон хувиргах шаардлагатай бөгөөд нэг sql хайлт хэд хэдэн болж хувирна.
Илүү ирээдүйтэй жишээ бол хүснэгт хийх биш, харин объект хийх явдал юм. Дараа нь багш бол объект бөгөөд тэрээр хэд хэдэн хяналттай бүлэгтэй байж болно. Гэхдээ энэ нь үргэлж нэг объект юм. Багшийн объект нь өвөрмөц түлхүүртэй боловч олон хяналттай бүлэгтэй байж болно. Энэ бүлэгт бас өвөрмөц түлхүүр бий. Бас оюутан.
Гурван албан тушаалыг зөвхөн даалгаврын хүрээнд ашиглах боломжтой төдийгүй цаашид хөгжүүлэх боломжтой.
Объект хандалтат суурь
Мэдээллийн салбарын тэргүүлэгчидсонгодог харилцааны мэдээллийн санг санал болгож байна. Тэдгээр нь амьдралаар шалгагдсан, ажилладаг, аюулгүй, найдвартай бөгөөд асуудал гарсан тохиолдолд мэдээллийг сэргээх боломжийг олгодог.
Объект хандалтат мэдээллийн сангууд (OODB) 1980-аад оны дунд үеэс боловсруулагдаж эхэлсэн бөгөөд эрх мэдэл бүхий зохиогчдын үзэж байгаагаар өнөөг хүртэл ирээдүйтэй байна. Гэсэн хэдий ч үндсэн онолууд болон үзэл баримтлалын заалтуудаас гадна MySQL, MS SQL Server эсвэл Oracle-тай ижил үнэлгээ, тархалтад хүрсэн OODB байхгүй байна.
Гэхдээ өгөгдлийн төрөл, шинж чанар, анги, шатлалын тухай ойлголт, ойлголтыг үнэлгээ нь энэ OODB-ийн сэтгэлгээг хүлээн зөвшөөрдөг програмистуудын нийгэмлэгийг бий болгоход хангалтгүй хөгжүүлэгч санал болговол яах вэ? Бид өөрсдийн хүч чадалдаа найдах хэрэгтэй болно.
Linux орчинд OODB-ийн гуч гаруй хувилбарууд үүсгэгдсэн. Гэхдээ үүсгэсэн мэдээллийн сан нь илүү ажиллагаа шаарддаггүй гэсэн баталгаа хаана байна вэ? Windows орчин энэ талбарт тийм ч их баталгаа өгдөггүй.
Объект хандалтат шийдэл
Гэсэн хэдий ч шийдэл бий. MySQL-г жишээ болгон ашигласнаар та стандарт харилцааны хүснэгтүүд хэрхэн шийдэж буй асуудлын объект хандалтат загвар болж хувирахыг харуулж чадна.
Мэдээллийн сан энд байхгүй ч өөрийн гэсэн объектын системийг бүрдүүлэх орчин бий. MySQL-ийн хүчийг зөвхөн мэдээллийн эгнээний хүснэгтүүдийн харилцааны санах ой болгон ашигладаг. Ашиглалтын логикийг хөгжүүлэгч өөрөө тодорхойлдог. Ялангуяа is_cache хүснэгт байдаг. Түүнд бүх зүйл бийхэд хэдэн үндсэн талбарууд:
- эзэмшигчийн_код;
- сессийн_код;
- h_код;
- гэнэтийн бэлэг;
- а_контент.
Үлдсэн талбарууд нь үйлчилгээний функцтэй. Энэ хүснэгт нь аливаа хүсэлтийн оролт дээр зогсож, түүний ирэлтийг бүртгэдэг. Өгөгдлийн сангийн загвар юу болохыг түүнийг хөгжүүлэгч тодорхойлно. Агуулгын талбарт (a_contents) юу багтахыг хөгжүүлэгчийн үүсгэсэн загварын объектоор тодорхойлно.
Энэ санаанд дөрвөн зүйл бий: хит, хит сесс, хитийн түүхийн код болон тодорхой контент. Дуудлага гэж юу вэ, ямар объектын системийг барих ёстойг хөгжүүлэгч тодорхойлно. Сесс (ажлын үйл явц) гэж юуг хэлээд байгааг хөгжүүлэгч тодорхойлно. Түүхийн код нь хүсэлтийг буцаах чадвар юм.
Энд байгаа хүснэгтүүд нь сэдвийн хэсэгтэй ямар ч хамаагүй. Дуудлага хянагч (is_cache), бүртгэл (is_customs), дуудлагын түүх (is_histories) байдаг. Үлдсэн хүснэгтүүдийг шийдэж буй даалгавараар тодорхойлно.
Үнэндээ энэ шийдэл нь баригдсан домайн мэдээллийн баазын загвар болон шийдэгдэж буй асуудал дээр үндэслэн өөрийн OODB үүсгэхийг санал болгож байна. Энд маш том давуу тал бий - энэ бол таны өгөгдлийн тухай ойлголт, тэдгээрийн танилцуулгын өөрийн загвар, тэдгээрийн хоорондын харилцаа юм. Энд суурь бий - маш сайн харилцааны мэдээллийн сан. Ямар нэг зүйлийг хайх, буруу ойлгоход асуудал гарахгүй.
Загвар: объектын систем + DBMS
Мэдээллийн технологид юуг ч өөрчлөх бараг боломжгүй. Жинхэнэ мэдээллийн хувьсгал одоо ч хол байна. мэргэжлийн ухамсарПрограм хангамж хөгжүүлэгчид сонгодог уламжлалыг өөрчлөхгүй. Гэхдээ нөхцөл байдлаас гарах арга зам байсаар байна.
Өөрийн загварыг бий болгох орчин үеийн найдвартай мэдээллийн сангийн удирдлагын системийг үндэс болгон ашигласнаар та мэдэгдэхүйц амжилтанд хүрч чадна.
Ямар ч тохиолдолд та даалгаврыг шийдвэрлэхийн тулд харагдац эсвэл өгөгдлийн загвар бүтээх хэрэгтэй болно, гэхдээ та үүнийг зөв хийх хэрэгтэй: энэ нь объектуудын систем, сайн DBMS нь түүний орчин байх болно.