MySQL ma'lumotlar bazasini sinxronlashtirish vositalarining umumiy ko'rinishi. Turli manbalardan SQL Server ma'lumotlar bazalarini sinxronlash

Ma'lumotlar bazasidan foydalanadigan ilovalarni ishlab chiqqan har bir kishi dasturni joylashtirish va yangilashda ma'lumotlar bazasi strukturasini yangilash muammosiga duch kelgan bo'lishi kerak.

Ko'pincha oddiy yondashuv qo'llaniladi - ma'lumotlar bazasi strukturasini versiyadan versiyaga o'zgartirish uchun SQL skriptlari to'plamini yaratish. Albatta shunday bor kuchli vosita, Qizil darvoza kabi, lekin birinchi navbatda bepul emas, ikkinchidan bu muammoni hal qilmaydi to'liq avtomatlashtirish yangilanishlar.


Birinchi marta Hibernate ORM-da paydo bo'lgan va Linq-da amalga oshirilgan migratsiya texnologiyasi juda yaxshi va qulay, ammo u mavjud loyihalar uchun juda mashaqqatli va saqlangan triggerlardan foydalanish uchun ma'lumotlar bazasi strukturasini ishlab chiqish uchun birinchi kod strategiyasini nazarda tutadi. ma'lumotlar bazasidagi protseduralar va funktsiyalar birinchi navbatda kodga o'tish vazifasini amalda imkonsiz qiladi.


Ushbu maqola ma'lumotlar bazasi tuzilmasini XML faylida saqlashdan foydalangan holda ushbu muammoni hal qilish uchun muqobil yondashuvni taklif qiladi. avtomatik ishlab chiqarish Malumot va mavjud tuzilmani taqqoslashga asoslangan SQL skripti. Xo'sh, boshlaylik ...

Ma'lumotlar bazasi tuzilishi bilan XML faylini yaratish

Tajribalar uchun biz DbSyncSample ma'lumotlar bazasidan foydalanamiz. Ma'lumotlar bazasini yaratish uchun skript quyida keltirilgan.


USE GO /******** Ob'ekt: Jadval. Skript sanasi: 06/01/2017 10:37:43 ******/ ANSI_NULLS ON GO'DA O'ZLASH QUOTED_IDENTIFIER ON GO JADVAL TUZISH .( IDENTITY(1,1) NO NULL, (50) NULL, NULL, (18) , 2) NULL EMAS, (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = YOQISH, YOQISH_PAGE_OND KETISH) BILAN ( ASC) KLASTER BO'LGAN BIRINCHI BIRINCHI KALYONA. ( ASC) BILAN (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ONAGE_GO, ALLOW_ROW_LOCKS = YOQISH, RUXSAT YOQISH ****_K. Skript sanasi: 06/01/2017 10:37:43 ******/ ANSI_NULLS ON GO'DA QO'YING QUOTED_IDENTIFIER ON GO JADVAL TUZISH .( IDENTITY(1,1) NO NULL, (150) NULL, NULL, (18) , 2) NULL EMAS, (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = YOK, ALLOW_PAGE_ONS **Skript = ALLOW_PAGE_ONS/LOCK) BILAN KLASTERED ( ASC) BILAN BIRINCHI BIRINCHI KLASTER CHEKLAGAN: Sana: 06.01.2017 10:37:43 ******/ ANSI_NULLS ON SOZLASH QUOTED_IDENTIFIER ON GO YO'Q TRIGGER YARATISH . ON . QO'SHILGAN KEYIN, YANGILANISHNI BOSHLANGAN BO'YICHA YANGILANING Buyurtmalarni O'rnatish Jami xarajat = s. Jami KIDAN (tanlang i.BuyurtmaId OId, SUM(d.Xarajat) Jami FROM Tafsilotlar d JOIN kiritilgan i ON D.OrderId=i.OrderId GROUP BY i.Or) WHERE Id=s.OId END GO /******** Ob'ekt: Trigger skripti Sana: 06/01/2017 10:37:43 ******/ ANSI_NULLS ON GO O'RNING QUOTED_IDENTIFIER ON GO SET TRIGGER CREATE . ON . YANGILANISH BOSHLANGAN BO'LIB O'CHIRILGAN SO'Y Buyurtmalar o'rnatilgan. Jami xarajat = s.Jami KIDAN (Tanlash i.OrderId OId, SUM(d.Xaraj) Jami FROM Tafsilotlar d JOIN o'chirildi i ON d.OrderId=i.OrderId GROUP BY WY i.OrderId) =s.OId END GO /****** Ob'ekt: Standart skript Sana: 06/01/2017 10:37:43 ******/ ALTER TABLE . QO'SHISH UCHUN CHEKLASH DEFAULT ((0)) /****** Ob'ekt: Standart skript Sana: 06/01/2017 10:37:43 ******/ ALTER TABLE . QO'SHISH CHEKLASH DEFAULT ((0)) FOR GO /****** Ob'ekt: ForeignKey skripti Sana: 06/01/2017 10:37:43 ******/ ALTER TABLE . TEKSHIRISH BILAN CHEKLAVCHI FOREIGN KEY() REFERANSLARINI QO'SHING. () JADVALNI O'ZGARTIRISh. CHEKLANISH O'TISHNI TEKSHIRING

Tajribalar uchun biz yaratamiz konsol ilovasi. Biz unga Shed.DbSync nuget paketini ulaymiz.


XML ko'rinishidagi ma'lumotlar bazasining tuzilishi quyidagicha olinadi:


sinf Dasturi ( xususiy const string OrigConnString = "ma'lumotlar manbai=.; boshlang'ich katalogi=FiocoKb; integratsiyalangan xavfsizlik=True;MultipleActiveResultSets=True;App=EntityFramework"; statik void Main(string args) ( // ma'lumotlar bazasi tuzilishi bilan XMLni oling var db = new Shed.DbSync.DataBase(OrigConnString); var xml = db.GetXml(); File.WriteAllText("DbStructure.xml", xml); ) )

Dasturni DbStructure.xml faylida ishga tushirgandan so'ng biz quyidagilarni ko'ramiz:


0 1 int 4 yolg'on rost yolg'on 2 nvarchar 100 rost yolg'on yolg'on 3 sana vaqti 8 rost yolg'on yolg'on 4 kasr 9 yolg'on yolg'on yolg'on 1 KLASTERLI rost rost yolg'on 1 1 yolg'on 2 KLASTER BO'LMAYDI yolg'on yolg'on yolg'on 2 1 yolg'on 1 4 ((0))
1 int 4 yolg'on rost yolg'on 2 nvarchar 300 rost yolg'on yolg'on 3 int 4 rost yolg'on yolg'on 4 kasr 9 yolg'on yolg'on yolg'on 1 KLASTERLI rost rost yolg'on 1 1 yolg'on 1 2137058649 1 3 1 NO_ACTION NO_ACTION 4 ((0))
TRIGGER YARATING. ON dbo.Tafsilotlar QO'YILGAN KEYIN, YANGILANISH BOSHLANGAN BO'YICHA YANGILANISh Buyurtmalar o'rnatilgan. Jami xarajat = s. Jami FROM (Tanlash i.BuyurtmaId OId, SUM(d.Xaraj) Jami FROM Tafsilotlar d JOIN kiritilgan i ON d.OrderId=i.OrderYd GROUPi .OrderId) s QAYERDA Id=s.OId TUGADI SQL_TRIGGER TRIGGER YARATING. ON dbo.Tafsilotlar YANGILANISH BOSHLANGAN KEYIN OʻCHIRILGAN SOʻY Buyurtmalar oʻrnatilgan. Jami xarajat = s.Jami FROM (tanlash i.BuyurtmaId OId, SUM(d.Xaraj) Jami FROM Tafsilotlar d JOIN oʻchirildi i ON d.OrderId=i.OrderId GROUPr BYId. ) s WHERE Id=s.OId TUGANISHI SQL_TRIGGER

Qabul qilingan XML yordamida ma'lumotlar bazasi strukturasini kengaytirish/yangilash.

Endi olingan XML dan qanday foydalanishni bilib olaylik. Biz kodimizga boshqa bo'sh DbSyncSampleCopy ma'lumotlar bazasini yaratamiz konsol dasturi quyidagilarni qo'shing:


sinf dasturi ( xususiy const string OrigConnString = "ma'lumotlar manbai =.; boshlang'ich katalogi = DbSyncSample; integratsiyalangan xavfsizlik = True;MultipleActiveResultSets=True;App=EntityFramework"; xususiy const string TargetConnString = "ma'lumotlar manbai=.;integrallanganString". security=True;MultipleActiveResultSets=True;App=EntityFramework"; statik void Main(string args) ( // mos yozuvlar bazasi tuzilishi bilan XML oling var dborig = new Shed.DbSync.DataBase(OrigConnString); var xml = dborig.GetXml() ; File.WriteAllText("DbStructure.xml", xml); // agar siz avval maqsadli ma'lumotlar bazasi strukturasini tozalashingiz kerak bo'lsa, // Shed.DbSync.DataBase.ClearDb(TargetConnString); // maqsadli ma'lumotlar bazasi strukturasini yangilang var dbcopy = Shed.DbSync .DataBase.CreateFromXml(xml); dbcopy.UpdateDb(TargetConnString); // aslida siz bitta satr bilan qilishingiz mumkin: // dborig.UpdateDb(TargetConnString); // dbcopy faqat yaratishni namoyish qilish uchun yaratilgan. XML dan ma'lumotlar bazasi ob'ekti))

Dasturni ishga tushirgandan so'ng, DbSyncSampleCopy mos yozuvlar ma'lumotlar bazasi bilan bir xil bo'lgan jadval tuzilishiga ega ekanligiga ishonch hosil qilishingiz mumkin. Malumot tuzilmasini o'zgartirish va maqsadli tuzilmani yangilash bo'yicha tajribalar o'quvchiga qoldiriladi.


Sinov stsenariylarida siz har safar noldan test ma'lumotlar bazasini yaratishingiz kerak bo'lishi mumkin. Bunday holda Shed.DbSync.DataBase.ClearDb(string connString) funksiyasidan foydalanish foydali bo'ladi.

Ma'lumotlar bazasi tuzilishini avtomatik kuzatish.

Biz tuzilmani kuzatishni alohida funktsiya sifatida tashkil qilamiz, uni dasturni boshlash / qayta ishga tushirishda yoki ishlab chiqaruvchining iltimosiga binoan boshqa joyda chaqirish kerak.


statik bekor SyncDb() ( // avtomatik kuzatish ma'lumotlar bazasi strukturasining orqasida Shed.DbSync.DataBase.Syncronize(OrigConnString, @"Struct\DbStructure.xml", // struktur fayliga yo'l @"Struct\Logs", // sinxronizatsiya jurnali papkasiga @"Struct\update_script yo'li .sql" // (ixtiyoriy) agar bu parametr aniqlangan bo'lsa // unda yaratilgan skript bo'ladi // ma'lumotlar bazasini yangilash uchun); )

Kuzatuv XMLda Versiya parametri (tegi) yordamida amalga oshiriladi. Jarayondan foydalanish stsenariysi quyidagicha:

  1. Ma'lumotlar bazasi versiyasini o'rnating. Microsoft SqlServer Management Studio-da kerakli ma'lumotlar bazasi tugunida o'ng tugmasini bosing Properties-ni tanlang.
  2. Keyinchalik, Kengaytirilgan xususiyatlar va xususiyatlar jadvalida 1 qiymati bilan Version xususiyatini qo'shing. Tuzilishning har bir keyingi o'zgarishi bilan bu xususiyat 1 ga oshirilishi kerak.
  3. Ilova ishga tushganda, agar XML fayli bo'lmasa yoki uning versiyasi ma'lumotlar bazasidan kamroq bo'lsa, u yaratiladi.
  4. Agar XML faylining versiyasi ma'lumotlar bazasi versiyasidan katta bo'lsa, ma'lumotlar bazasini yangilash skripti yaratiladi va bajariladi.
  5. Agar skriptni bajarish paytida xatolar yuzaga kelsa, barcha o'zgarishlar orqaga qaytariladi.
  6. Sinxronizatsiya natijalari papkada yaratilgan jurnal fayliga yoziladi parametr bilan belgilanadi logDitPath.
  7. Agar SqlScriptPath parametri belgilansa, 4-bosqichdagi skriptga ega fayl yaratiladi.

Tajribalarni o'quvchilarga qoldiraman. Sizga muvaffaqiyatlar tilayman!

Teglar:

  • mssql
  • ma'lumotlar bazasini sinxronlashtirish
  • ma'lumotlar bazasi
  • sinxronlash
  • dbsync
  • sql
  • Shed
  • shed.dbsync
Teglar qo'shing

Do'stlar, hammaga salom! Barchangizni o'z joyimda ko'rganimdan xursandman 😉 Bugun men sizga ma'lumotlar bazalarini qanday sinxronlashtirishni aytib beraman WordPress ma'lumotlari. Shuningdek, ma'lumotlar bazasidagi qaysi jadvallar eng muhimi va ular bilan qanday ishlash kerakligi haqida.

Men bu mavzuni shunchaki yoritayotganim yo‘q. Esingizda bo'lsa, men qanday qilib gaplashdim. Veb-sayt ishlab chiqish uchun juda qulay.

Shunday qilib, saytni yakunlagandan so'ng, uni xostingga qaytarish kerak. Va bu bilan, umuman olganda, hech qanday muammo yo'q. Agar ishlayotganingizda mahalliy server, Internetda joylashgan sayt yangilanmagan. Ammo bunday holatlar juda kam uchraydi.

Ammo agar siz saytni muntazam ravishda yangilab tursangiz va shu bilan birga men kabi kompyuteringizda uning dizayni ustida ishlagan bo'lsangiz, unda ma'lum bir qiyinchilik tug'iladi. Sizning mahalliy ma'lumotlar bazasi yangi dizayn bo'ladi, lekin yangi maqolalar va sharhlar bo'lmaydi.

Va bu erda ma'lumotlar bazasini sinxronlashtirish o'ynaydi. Shunday qilib, siz yangi dizaynni ham, ma'lumotlar bazasidagi yangi yozuvlarni ham birlashtira olasiz. Va keyin, hech qanday muammosiz, tayyor saytni xostingga qaytaring.

Va bu faqat bir misol, lekin siz allaqachon ma'lumotlar bazasi bilan mohirona ishlash sizga saytda ishlashda yangi imkoniyatlar ochishini tushungansiz.

WordPress ma'lumotlar bazasi tuzilishi

Sinxronizatsiya qilishni boshlashdan oldin, nimani sinxronlashtirish kerakligini aniqlab olishingiz kerak. WordPress ma'lumotlar bazasi foydalanuvchilar, maqolalar, toifalar, teglar, plaginlar, sharhlar va boshqalar haqidagi ma'lumotlarni saqlaydigan ko'plab jadvallardan iborat. tizim sozlamalari va boshqalar.

Umuman olganda, barcha jadvallarni to'liq tushunish shart emas. Qaysi jadvallarda maqolalar, sharhlar va boshqalar haqida ma'lumot borligini bilish kifoya. Sinxronizatsiyada aynan mana shu jadvallar muhim ahamiyatga ega.

Shunday qilib, keling, WordPress ma'lumotlar bazasidagi asosiy jadvallarni ko'rib chiqaylik.

wp_options - barcha sayt sozlamalarini o'z ichiga oladi;

wp_posts - saytdagi barcha maqolalar va xabarlar;

wp_postmeta - saytdagi maqolalar va postlar haqidagi yordamchi ma'lumotlar;

wp_comments - sharhlar;

wp_commentmeta - sharhlar haqida yordamchi ma'lumot;

wp_term_relationships - toifalar va teglar bilan maqolalar va postlarning havolalari;

wp_terms - havolalar bilan toifalar (sarlavhalar) havolalari;

wp_term_taxonomy - toifalar, teglar, havolalar havolalari;

wp_usermeta - barcha ro'yxatdan o'tgan foydalanuvchilar haqida ma'lumot;

wp_users - administrator haqida ma'lumot.

Ma'lumotlar bazasidagi boshqa ko'plab jadvallar har xil plaginlar, vidjetlar va shunga o'xshash boshqa vositalar yordamida yaratilgan. Asosan, bu jadvallar o'z ichiga oladi tizim ma'lumotlari, undan yaxshi foydalanish mumkin. Shunday qilib, ushbu jadvallarga diqqat bilan qarab, nimani bilib olishingiz mumkin kalit so'rov mehmon keldi, qaysi sahifa, birinchi tashrifmi yoki ikkinchi tashrifmi, hatto qaysi brauzer va operatsion tizimdan.

Endi o'sha paytda umumiy fikr WordPress ma'lumotlar bazasini o'rnatganingizdan so'ng, darsimizning maqsadiga o'tishingiz mumkin - ma'lumotlar bazasini sinxronlashtirish.

Sinxronizatsiya jarayoniga tayyorgarlik

Ma'lumotlar bazasi bilan ishlashni boshlashdan oldin, zaxira nusxasini yaratganingizga ishonch hosil qiling. Chunki agar shunday qilsangiz, biror narsa noto'g'ri. Keyin hamma narsani nusxadan tiklashingiz mumkin.

Shunday qilib, siz jarayonni tushunasiz va yaratishingiz mumkin bo'ladi kerakli baza kompyuteringizdagi ma'lumotlar va tayyor ma'lumotlar bazasini xostingga o'tkazing.

Eng muhimi, zaxiralashni unutmang.

phpMyAdmin-da ma'lumotlar bazasini taqqoslash

Bu qadam ixtiyoriy, ammo qo'lingizdagi ma'lumotlar bazalarini qanday solishtirishni bilsangiz yaxshi bo'ladi. Bu bilim ko'pincha menga yordam beradi.

Buning uchun biz hostingda ham, mahalliy serverda ham mavjud bo'lgan phpMyAdmin yordam dasturidan foydalanamiz.

Taqqoslash uchun biz o'z ishimda foydalangan mahalliy serverdagi ma'lumotlar bazasidan foydalanamiz. Va mening blogimda foydalanadigan ma'lumotlar bazasi.

Taqqoslash uchun bitta raqamni - maqolalar sonini olaylik. Chunki meniki kabi saytlar uchun bu eng qimmatli narsa. Xo'sh, sharhlar, albatta. Bundan tashqari, bu raqamlar doimo sizning fikringizda.

Biz sinov saytini va ma'lumotlar bazasini tahlil qilamiz:

Birinchidan, maqolalar sonini ko'rib chiqaylik. Buni WordPress boshqaruv panelida qilishingiz mumkin. Buning uchun konsolni ochish kifoya.

Skrinshotda ko'rib turganingizdek, test saytida 136 ta maqola mavjud.

Mavzuni yangilagandan so'ng, men yana bir nechta maqola yozishga muvaffaq bo'ldim. Hozir esa ularning soni 138 taga yetdi.

Maqolalar soni wp_posts jadvalidagi yozuvlar soniga mos kelishi kerak. Ammo, agar siz ushbu jadvalni ochsangiz, siz ko'proq yozuvlarni ko'rasiz.

Skrinshotda ko'rib turganingizdek, jami 2245 ta yozuv mavjud. Ular orasida maqolalar va alohida yozuvlar. Va bu, shuningdek, rasmlar va boshqalar haqida qoralamalar va boshqa eslatmalar to'plami.

Shuning uchun maqolalar sonini darhol aniqlash haqiqatga to'g'ri kelmaydi. Buni amalga oshirish uchun siz saralash variantlari bilan kichik so'rov qilishingiz kerak.

Ma'lumotlar bazasini oching - wp_posts jadvali - SQL yorlig'iga o'ting - so'rovni kiriting:

* `wp_posts` QAYERDAN `post_status` = "nashr qilish" VA `post_type` = "post" ni tanlang

Ushbu so'rovda aytilishicha, wp_posts jadvalida siz status e'lon qilingan barcha xabarlarni ( * ) tanlashingiz kerak ( nashr etish ) va bu maqola ( post ).

Natijada biz 136 ta yozuvni olamiz. Endi bu raqam maqolalar soniga to'g'ri keladi.

Boshqa ma'lumotlar bazasi xuddi shu tarzda tekshiriladi. Mening vaziyatimda, mening blogimdan haqiqiy asos.

Bu bilim sizga muhim narsani yo'qotmaslikka yordam beradi. Va sinxronlashdan keyin hamma narsa yaxshi bo'lganligini tekshiring.

Baxtsiz misol sifatida men sizga kichik bir voqeani aytib beraman. Do'stlarimdan biri bir marta bir hostingdan boshqasiga o'tdi. Hammasini ko'rsatmalarga muvofiq qildim, texnik yordam unga yordam berdi. Ammo, bir muncha vaqt o'tgach, u o'z saytida ikkita maqola yo'qolganini payqadi. U mendan muammo nimada bo'lishi mumkinligini aniqlashni so'raganida, men yarashtirdim va yangi ma'lumotlar bazasida ikkita yozuv mavjud emasligi ma'lum bo'ldi. eski baza ma'lumotlar. Katta ehtimol bilan, u ma'lumotlar bazasini o'tkazayotganda, u noto'g'ri ish qildi va bu ikki maqolani yo'qotdi. Natijada men sehrgarlik qilishim va bu ikki maqolani o'z joyiga qaytarishim kerak edi.

Shuning uchun qanday qilib yarashishni bilish muhimdir. Sinxronizatsiyadan so'ng barcha yozuvlaringiz bir ma'lumotlar bazasidan boshqasiga muvaffaqiyatli o'tkazilganligiga ishonch hosil qiling.

WordPress ma'lumotlar bazasini sinxronlashtirish

Barcha harakatlar mahalliy serverda amalga oshiriladi. Undan keyin tayyor baza ma'lumotlarni hostingga import qilish mumkin.

1-qadam: Ikki bo'sh ma'lumotlar bazasini yarating

Agar savol tug'ilsa, nima uchun ikkita ma'lumotlar bazasi bor, men tushuntiraman - bu ishlaydigan ma'lumotlar bazalariga tegmaslik va noldan namuna ko'rsatish uchun kerak.

Avval Denverni ishga tushiring va brauzerda localhost/tools/ ni kiriting va keyin phpmyadmin havolasini bosing.

Qadam 2. Ma'lumotlar bazasiga ma'lumotlarni import qilish

Shunday qilib, men ma'lumotlar bazasining zaxira nusxalarini yaratdim. Biri test saytidan, ikkinchisi internetdagi blogimdan. Ular yangi yaratilgan ma'lumotlar bazalariga tarkibni import qilish uchun kerak bo'ladi. Va keyin sug'urta bo'ladi.

Shuningdek, siz sinxronlashtiradigan ikkita ma'lumotlar bazasiga ega bo'lishingiz kerak.

Endi biz zaxiradagi ma'lumotlarni yangi ma'lumotlar bazalariga import qilishimiz kerak. Buning uchun tanlang yangi baza- xatcho'pni ochish "Import"- tanlash "fayl zaxira» - tugmasini bosing "OK".

3-qadam. Ma'lumotlar bazasini sinxronlashtirish

Umuman olganda, kerakli jadvallarni bir ma'lumotlar bazasidan boshqasiga oddiygina ko'chirish mumkin. Lekin biz to'g'ridan-to'g'ri sinxronizatsiya jarayonini ko'rib chiqamiz. Ham to'liq, ham qisman (alohida jadvallar shaklida).

Buning uchun siz borishingiz kerak bosh sahifa phpMyAdmin va bo'limni tanlang "Sinxronizatsiya".

Endi biz manba sifatida Internetdagi blogdan ma'lumotlar bazasini (u yangiroq) va maqsadli ma'lumotlar bazasi sifatida test saytidan ma'lumotlar bazasini aniqlaymiz. Bizning vazifamiz yangi maqolalar, sharhlar va teglarni test saytining ma'lumotlar bazasiga nusxalashdir.

Taqqoslash amalga oshirilgandan so'ng. Sizdan sinxronlashtirish so'raladi alohida jadvallar o'zgarishlar bo'lgan yoki to'liq sinxronizatsiya qilingan.

Agar siz alohida jadvallarni sinxronlashtirmoqchi bo'lsangiz, S yoki D harflarini bosishingiz kerak. Ushbu harflar kul rangga aylanadi va quyidagi oynada sinxronizatsiya uchun qo'shilgan jadvallarni ko'rasiz. Keyin tugmani bosish orqali ushbu jadvallarni sinxronlashtirishingiz mumkin "Tanlangan o'zgarishlarni qo'llash".

Bizning holatda, bu usul mos keladi, chunki biz faqat maqolalar, sharhlar va metama'lumotlarni sinxronlashtirishimiz kerak.

Ma'lumotlar bazalarini to'liq sinxronlashtirish uchun siz hech narsani tekshirishingiz shart emas. Shunchaki tugmani bosing "Ma'lumotlar bazalarini sinxronlash".

Ana xolos. Bu sinxronizatsiya jarayonini yakunlaydi. Natijani tekshirishingiz mumkin. Uchun yaxshi misol, Men mahalliy saytdagi ma'lumotlar bazasini o'zgartirdim. Agar kimdir unutgan bo'lsa, bu wp-config.php faylida amalga oshiriladi. Va endi siz maqolalar, yozuvlar va sharhlar sonini solishtirishingiz mumkin. To'g'ri, maqolani yozayotganimda blogda yana bir nechta sharhlar bor edi.

Sinov blogi statistikasi:

Blog statistikasi:

Va nihoyat, ma'lumotlar bazasini sinxronlashtirish - bu yarim urush ekanligini eslatib o'taman. Ma'lumotlar bazasiga sayt faoliyati bilan bog'liq fayllar hamroh bo'lishi kerak. Misol uchun, agar siz maqolaga qo'shilgan skrinshotlarni ko'chirmasangiz, ularsiz maqola bo'sh bo'ladi.

Va endi men sizga ma'lumotlar bazasini sinxronlashtirishning barcha jarayonini bosqichma-bosqich ko'rsatgan video darsini tomosha qilishni maslahat beraman.

Bugun hammasi shu. Hammaga tilayman yaxshi kayfiyat. Yangi tarkibda ko'rishguncha. Va, albatta, sharhlaringizni kutaman 😉 Va olingan bilimlar siz uchun qachon foydali bo'ladi.

Yangi maqolalarga obuna bo'ling!

    Ma'lumotlar bazasi tushunchasi. Ma'lumotlar bazalarini tasniflash (ma'lumotni taqdim etish shakliga ko'ra; ma'lumotlarni tashkil etish xususiyatiga ko'ra; foydalaniladigan model turiga; saqlanadigan ma'lumotlar turiga ko'ra; ma'lumotlarni saqlash va ulardan foydalanishni tashkil etish xususiyatiga ko'ra).

Malumotlar bazasi(MB) - hisoblash tizimi xotirasida saqlanadigan va ko'rib chiqilayotgan ob'ektlarning holatini va ularning munosabatlarini aks ettiruvchi maxsus tashkil etilgan ma'lumotlar to'plami. mavzu maydoni.

Ma'lumotlar bazasi maxsus tashkil etilgan ma'lumotlar tizimi ( ma'lumotlar bazalari), ma'lumotlarning markazlashtirilgan to'planishi va jamoaviy ko'p maqsadli foydalanishni ta'minlash uchun mo'ljallangan dasturiy, texnik, lingvistik, tashkiliy va uslubiy vositalar. BNDning yuqoridagi ta'rifida, bir tomondan, ma'lumotlar banki har qanday avtomatlashtirilgan ma'lumotlarni qayta ishlash tizimining ishlashi uchun zarur bo'lgan barcha yordamchi quyi tizimlarni o'z ichiga olgan murakkab tizim ekanligi ta'kidlangan. Boshqa tomondan, bu ta'rif asosiyni ham ko'rsatadi Ma'lumotlar banklarining o'ziga xos xususiyatlari:

    Ma'lumotlar bazalari odatda bitta foydalanuvchi uchun biron bir vazifani hal qilish uchun emas, balki ko'p maqsadli foydalanish uchun yaratiladi.

    Ma'lumotlar bazalari real dunyoning ma'lum bir qismini aks ettiradi. Mavzu sohasini tavsiflovchi barcha ma’lumotlar ma’lumotlar bazasida bir marta qayd etilishi, to‘planishi va markazlashtirilgan holda yangilanib turishi hamda bu ma’lumotlarga muhtoj bo‘lgan barcha foydalanuvchilar u bilan ishlash imkoniyatiga ega bo‘lishi uchun harakat qilishimiz kerak.

Ma'lumotlar bazalari maxsus tashkil etilgan ma'lumotlar, ya'ni. birligi va yaxlitligi maxsus dasturiy ta'minot yordamida ta'minlanadigan o'zaro bog'langan ma'lumotlar tizimlari.

BnD faoliyati uchun maxsus til va dasturiy vositalar(DBMS deb ataladi), bu foydalanuvchilarga ma'lumotlarni saqlashni tashkil etish, ularni tuzatish va ularga kirish bilan bog'liq barcha operatsiyalarni bajarishni osonlashtiradi. BND foydalanuvchilari.

1.Yakuniy foydalanuvchilar. Yakuniy foydalanuvchilardan kompyuter texnologiyalari va til vositalari sohasida maxsus bilimga ega bo'lish talab etilmasligi kerak.

2. Axborot xizmati xodimlari. Ular asosan meta-ma'lumotdan foydalanadilar. Ko'pincha ular uchun boshqa ma'lumotlar yopiq bo'lishi ma'qul.

3. BnD ma'murlari- ma'lumotlar bazasini yaratish va uning ishonchli ishlashi, saqlangan ma'lumotlarga kirish qoidalariga rioya qilish, ma'lumotlar bazasini ishlab chiqish uchun mas'ul shaxslar (domen ma'murlari, ma'lumotlar bazasi ma'murlari, ilovalar ma'murlari).

JB tasnifi.

1. Axborotni taqdim etish shakliga ko'ra. Ma'lumotlar bankining markaziy komponenti ma'lumotlar bazasi bo'lib, tasniflash xususiyatlarining aksariyati unga tegishli. Axborotni taqdim etish shakliga ko'ra farqlash ingl va audio tizimlar bilan bir qatorda tizimlar multimedia. Ushbu tasnif ma'lumotlar bazasida ma'lumotlar saqlanadigan va ma'lumotlar bazalaridan foydalanuvchilarga beriladigan shaklni ko'rsatadi: tasvir, ovoz ko'rinishida yoki ma'lumotlarni ko'rsatishning turli shakllaridan foydalanish mumkin. Bu erda "tasvir" tushunchasi qo'llaniladi keng ma'no- bu ramziy matn, harakatsiz grafik tasvir (chizmalar, chizmalar va boshqalar), fotosuratlar, geografik xaritalar, harakatlanuvchi tasvirlar bo'lishi mumkin.

2. Ma'lumotlarni tashkil etish xususiyatiga ko'ra Ma'lumotlar bazalarini tuzilmaganlarga bo'lish mumkin, qisman tuzilgan va tuzilgan. Ushbu tasniflash xususiyati ramziy shaklda taqdim etilgan ma'lumotlarni anglatadi. Strukturaviy bo'lmagan ma'lumotlar bazalarini shaklda tashkil etilgan ma'lumotlar bazalari sifatida tasniflash mumkin semantik tarmoqlar. Qisman tuzilgan ma'lumotlar bazalarini oddiy matn yoki gipermatnli tizimlar shaklida ko'rib chiqish mumkin. Strukturaviy ma'lumotlar bazalari ma'lumotlar bazasi tuzilishini dastlabki loyihalash va tavsiflashni talab qiladi. Shundagina bunday turdagi ma'lumotlar bazalarini ma'lumotlar bilan to'ldirish mumkin.

3. O'z navbatida tuzilgan ma'lumotlar bazalari ishlatiladigan model turi bo'yicha quyidagilarga bo'linadi: ierarxik, tarmoqli, aloqador, aralash va ko'p modelli.

Tasniflash model turi bo'yicha nafaqat ma'lumotlar bazalariga, balki ma'lumotlar bazasiga ham taalluqlidir.

Strukturaviy ma'lumotlar bazalarida odatda bir-biriga kiritilgan axborot birliklarining bir necha darajalari mavjud. Ko'pgina tizimli tizimlar maydon, yozuv va fayl darajalarini qo'llab-quvvatlaydi.

maydon axborotning eng kichik semantik birligiga mos keladi; maydonlar to'plami va/yoki boshqa murakkabroq ma'lumot birliklari, agar ular ma'lum bir ma'lumotlar bazasida amal qilsa, shakl. kirish, va bir xil turdagi yozuvlar to'plami ifodalaydi ma'lumotlar bazasi fayli. DA yaqin vaqtlar ko'pchilik DBMS aniq darajani qo'llab-quvvatlaydi Ma'lumotlar bazasi, o'zaro bog'liq ma'lumotlar bazasi fayllari to'plami sifatida.

Axborot birliklari orasidagi ierarxik va tarmoq modellarida (yozuvlar turli fayllar) havolalarni o'rnatish mumkin.

Ierarxik modelning grafik tasviri "daraxt" tipidagi grafikdir. Bunday modelda bitta vertex - daraxtning ildizi mavjud bo'lib, u strukturaga kirish joyidir. Ildizdan boshqa har bir cho'qqi faqat bitta manba cho'qqisiga va umuman olganda, hohlagancha ko'p bola cho'qqiga ega bo'lishi mumkin.

Tarmoq modelining grafik tasviri "tarmoq" tipidagi grafikdir. Har qanday cho'qqi bunday tuzilishga kirish bo'lishi mumkin. Har bir tepada bir nechta yaratilgan va bir nechta boshlang'ich uchlari bo'lishi mumkin. Bir juft cho'qqi o'rtasida bir nechta havolalar e'lon qilinishi mumkin. DBMS larning katta qismi oddiy tarmoq tuzilmalarini qo'llab-quvvatlaydi, ya'ni har bir yozuv turlari juftligi o'rtasida 1:M munosabati saqlanib qoladi.

Tengdosh fayllarga ega tarmoq modellaridan tashqari, mavjud tarmoq modellari turli fayllar bilan. Bunday modellarda asosiy (asosiy) va qaram fayllar farqlanadi. Strukturaga kirish faqat asosiy fayllar orqali mumkin. Faqat har xil turdagi yozuvlar bir-biri bilan aloqa qilishi mumkin.

Strukturaviy tizimlar orasida alohida o'rinni foydalanish asosida qurilgan tizimlar egallaydi teskari fayllar. Ularda ma'lumotlarni tashkil etishning o'ziga xos xususiyati shundaki, haqiqiy saqlanadigan ma'lumotlar va munosabatlar haqidagi ma'lumotlar mantiqiy va jismoniy jihatdan bir-biridan ajratilgan. Ushbu tizimlardagi asosiy ma'lumotlar fayllarda saqlanadi, ularning yozuvlari murakkab tuzilishga ega bo'lishi mumkin. Barcha nazorat ma'lumotlari assotsiatorda to'plangan. Fayllar orasidagi mantiqiy aloqa aloqa tarmog'i deb ataladigan assotsiator komponent orqali o'rnatiladi. Shaklda. bunday tizimlarda aloqalarni o'rnatish printsipi sxematik tarzda keltirilgan. Haqiqatda, havolalar rasmda ko'rsatilganidek, to'g'ridan-to'g'ri havola elementlari bilan emas, balki manzil konvertori orqali o'rnatiladi. Invertlangan fayllarga qurilgan tizimlarda fayl yozuvlari oʻrtasida M:M munosabatini oʻtkazish mumkin (boshqa tizim ruxsat bermaydi). Assotsiativ ma'lumotlarni haqiqiy saqlangan ma'lumotlardan ajratish sizga fayllarni o'zgartirmasdan havolalarni o'zgartirishga imkon beradi.

4. Saqlangan ma'lumotlarning turlari bo'yicha Ma'lumotlar bazasi quyidagilarga bo'linadi: hujjatli, faktik va leksikografik. Orasida hujjatlar asoslari farqlash bibliografik, abstrakt va to'liq matn. Leksikografik ma’lumotlar bazalariga turli lug‘atlar (klassifikatorlar, ko‘p tilli lug‘atlar, so‘z asoslari lug‘atlari va boshqalar) kiradi.

Faktografik turdagi tizimlarda ma'lumotlar bazasi foydalanuvchini qiziqtirgan ob'ektlar to'g'risidagi ma'lumotlarni "faktlar" shaklida saqlaydi (masalan, xodimlar to'g'risidagi biografik ma'lumotlar, ishlab chiqaruvchilar tomonidan ishlab chiqarilgan mahsulotlar to'g'risidagi ma'lumotlar va boshqalar). Foydalanuvchi so'roviga javoban uni qiziqtirgan ob'ekt/obyektlar to'g'risida kerakli ma'lumotlar yoki kerakli ma'lumotlar ma'lumotlar bazasida yo'qligi haqida xabar beriladi.

Hujjatli ma'lumotlar bazalarida saqlash birligi hujjat (masalan, qonun yoki maqola matni) bo'lib, uning so'roviga javoban foydalanuvchiga hujjatga yoki hujjatning o'ziga havola beriladi. o'zini qiziqtirgan ma'lumotlarni topa oladi.

Hujjatli turdagi ma'lumotlar bazalari turli yo'llar bilan tashkil etilishi mumkin: saqlamasdan va asl hujjatning o'zini mashina muhitida saqlash bilan. Birinchi turdagi tizimlarga bibliografik va mavhum ma'lumotlar bazalari, shuningdek, ma'lumot manbasiga "mo'ljallangan" ma'lumotlar bazasi indekslari kiradi. Hujjatning to'liq matnini saqlashni ta'minlaydigan tizimlar deyiladi to'liq matn.

5. tomonidan ma'lumotlarni saqlash va ulardan foydalanishni tashkil etishning tabiati farqlash mahalliy(shaxsiy), umumiy(integratsiyalashgan, markazlashtirilgan) va tarqatilgan Ma'lumotlar bazasi.

Shaxsiy ma'lumotlar bazasi bir foydalanuvchi tomonidan mahalliy foydalanish uchun mo'ljallangan ma'lumotlar bazasi. Mahalliy ma'lumotlar bazalari har bir foydalanuvchi tomonidan mustaqil ravishda yaratilishi yoki umumiy ma'lumotlar bazasidan olinishi mumkin.

Integratsiyalashgan va tarqatilgan Ma'lumotlar bazalari bir vaqtning o'zida bir nechta foydalanuvchilarning bir xil ma'lumotlarga kirish imkoniyatini taklif qiladi (ko'p foydalanuvchili, parallel kirish rejimi).

Tarqalgan ma'lumotlar bazalari bundan tashqari, ular ma'lumotlar bazasining jismoniy jihatdan turli qismlari turli kompyuterlarda joylashishi mumkinligi bilan bog'liq xarakterli xususiyatlarga ega va mantiqan, foydalanuvchi nuqtai nazaridan, ular bir butun bo'lishi kerak.

Ma'lumotlar banki murakkab inson-mashina tizimi bo'lib, tarmoq tugunlari bo'yicha nafaqat ma'lumotlar bazasi, balki ma'lumotlar bazasining boshqa komponentlari ham tarqatilishi mumkin. Bundan tashqari, ma'lumotlar bazasining o'zi tarqatilmasligi mumkin (masalan, tarmoqdagi markazlashtirilgan ma'lumotlar bazasiga ko'p foydalanuvchi kirishini ta'minlashda). Shu bilan birga, ostida taqsimlangan bnd Biz uning tarkibiy qismlaridan kamida bittasi taqsimlangan ma'lumotlar bankini tushunamiz.

Farqlash kengaytiruvchi(EBD) va intensiv JB. Intensiv ma'lumotlar bazasi (IDB) kengaytirilgan ma'lumotlar bazalarida bo'lgani kabi ma'lumotlar bazasida ma'lumotlarni aniq saqlash orqali emas, balki uning mazmunini belgilaydigan qoidalardan foydalangan holda quriladi.

    Ma'lumotlar bazasini boshqarish tizimi (DBMS) tushunchasi. Ma'lumotlar bazasini boshqarish tizimlarining tasnifi. Bir butun sifatida ma'lumotlar banki bilan bog'liq tasniflash guruhlari.

Ma'lumotlar bazasini boshqarish tizimi (DBMS) maʼlumotlar bazasini yaratish, yuritish va koʻplab foydalanuvchilar bilan boʻlishish uchun moʻljallangan til va dasturiy vositalar toʻplamidir. RDBMS odatda ishlatiladigan ma'lumotlar modeli bilan ajralib turadi. Shunday qilib, DBMS foydalanishga asoslangan munosabatlar modeli ma'lumotlar relyatsion DBMS deb ataladi.

Muloqot tili bo'yicha DBMS larga bo'linadi ochiq,yopiq va aralashgan.

Ochiq tizimlar - bu ma'lumotlar bazasiga kirish uchun universal dasturlash tillari qo'llaniladigan tizimlar. Yopiq tizimlar BnD foydalanuvchilari bilan o'z aloqa tillariga ega.

Darajalar soni bo'yicha arxitekturada bir darajali, ikki darajali, uch darajali tizimlar farqlanadi.

Ma'lumotlar bazasining arxitektura darajasi deganda, mexanizmlari ma'lumotlarning ma'lum darajasini (mantiqiy va fizik darajalar, shuningdek, foydalanuvchining "ko'rinishi" - tashqi daraja) qo'llab-quvvatlashga xizmat qiladigan funktsional komponent tushuniladi.

Rasmdagi darajalarni raqamlash o'zboshimchalik bilan amalga oshiriladi, ammo shunga qaramay ularning ahamiyatini aks ettiradi (ichki model faqat kontseptual asosda tuzilishi mumkin; bu ikki daraja birlashtirilishi mumkin, lekin har doim DBMS tomonidan qo'llab-quvvatlanadi; tashqi daraja DBMS arxitekturasida mavjud bo'lmasligi mumkin).

Funktsiya bo'yicha DBMS larga bo'linadi axborot va operatsiya xonalari. Axborot DBMS axborotni saqlash va undan foydalanishni tashkil etish imkonini beradi. Keyinchalik murakkab ishlov berish uchun siz yozishingiz kerak maxsus dasturlar. Operatsion ma'lumotlar bazasi juda murakkab ishlov berishni amalga oshiradi, masalan, ular avtomatik ravishda to'g'ridan-to'g'ri ma'lumotlar bazasida saqlanmaydigan jamlangan ko'rsatkichlarni olishga imkon beradi, ishlov berish algoritmlarini o'zgartirishi mumkin va hokazo.

Mumkin bo'lgan dastur doirasiga ko'ra farqlash universal va ixtisoslashgan, odatda domenga xos DBMS.

"Kuch" bilan DBMS larga bo'linadi "ish stoli" va "korporativ". Ish stoli DBMS ning xarakterli xususiyatlari - apparatga nisbatan past talablar, oxirgi foydalanuvchiga qaratilganligi va arzonligi.

Korporativ ma'lumotlar bazasi taqsimlangan muhitda ishlashni, yuqori unumdorlikni, tizimni loyihalashda jamoaviy ishlarni qo'llab-quvvatlashni ta'minlaydi, ilg'or boshqaruv vositalariga ega va yaxlitlikni saqlash uchun ko'proq imkoniyatlarga ega.

Korporativ DBMSlarning eng mashhurlari Oracle, Informix, Sybase, MS hisoblanadi SQL Server, Progress va boshqalar.

Ma'lumotlar bazasini avlodlar bo'yicha taqsimlash mavjud:

1-avlod - ierarxik va tarmoq modeliga asoslangan.

2 avlod - Relyatsion tizimlar.

3-avlod - ma'lumotlar bazasi ma'lumotlar bazasi murakkab ma'lumotlar tuzilmalarini va ma'lumotlar yaxlitligini ta'minlashning yanada rivojlangan vositalarini qo'llab-quvvatlashi, ochiq tizimlar talablariga javob berishi kerak.

Bir butun sifatida BnD bilan bog'liq tasniflash guruhlari.

Xizmat ko'rsatish shartlari farqlash ozod va to'langan ma'lumotlar banklari. To'langan BND, o'z navbatida, bo'linadi notijorat va tijorat. Notijorat ma'lumotlar banklari o'z-o'zini ta'minlash printsipi asosida ishlaydi va foyda olishni maqsad qilmaydi.

Tijorat ma'lumotlar banklarini yaratishdan asosiy maqsad axborot faoliyatidan foyda olishdir.

    OLTP va OLAP tizimlari: qiyosiy xarakteristikalar.

Axborot tizimlari turlicha ustun ma'lumotni qayta ishlash xususiyatiga ko'ra. Ba'zilarida, asosan, juda ko'p sonli oddiy so'rovlar amalga oshiriladi (bunday tizimlar OLTP (On-Line Transaction Processing) deb ataladi) - onlayn tranzaktsiyalarni qayta ishlash tizimlari. Boshqalarida, aksincha, murakkab tahliliy ma'lumotlarni qayta ishlash talab etiladi (bunday tizimlar sinfi uchun OLAP (On-line Analytical Processing) atamasi qo'llanila boshlandi). OLAP atamasi

ko'pincha qarorlarni qo'llab-quvvatlash bilan aniqlanadi (DSS (Decision Support Systems) - qarorlarni qo'llab-quvvatlash tizimlari). Va oxirgi atamaning sinonimi sifatida ular ma'lumotlar omboridan foydalanadilar - ma'lumotlar omborlari (omborlar), bu orqali tahlilchilarga tranzaktsiyalarni qayta ishlash tizimlari ma'lumotlari asosida ma'lumot berish uchun tashkiliy echimlar, dasturiy ta'minot va apparat vositalari to'plamini anglatadi. pastki daraja va boshqa manbalar.

"Tor ma'noda OLAP" - bu turli bo'limlarda faqat ma'lumotlarni tanlashni ta'minlaydigan tizimlar va "keng ma'noda OLAP" yoki oddiygina OLAP, ular quyidagilarni o'z ichiga oladi:

    ma'lumotlar bazasini tahrirlovchi bir nechta foydalanuvchilarni qo'llab-quvvatlash;

    modellashtirish funktsiyalari, shu jumladan olingan natijalarni olish uchun hisoblash mexanizmlari, shuningdek ma'lumotlarni jamlash va birlashtirish;

    prognozlash, tendentsiya va statistik tahlil.

Ma'lumotlar omborlarini ikki turga bo'lish mumkin: korporativ ma'lumotlar omborlari va ma'lumotlar omborlari. Korporativ kassalar ma'lumotlar butun korporatsiyaga tegishli ma'lumotlarni o'z ichiga oladi va konsolidatsiyalangan tahlil qilish uchun turli operatsion manbalardan to'planadi. Data marts korporativ ma'lumotlarning kichik to'plamini o'z ichiga oladi va tashkilot ichidagi bo'limlar yoki bo'limlar uchun tuzilgan. Data marts ko'pincha bo'limning o'zida quriladi va bo'lim xodimlarini qiziqtiradigan muayyan jihatni qamrab oladi.

OLTP va OLAP tizimlarining qiyosiy tavsiflari:

Xarakterli

Dominant operatsiyalar

Ma'lumotlarni kiritish, qidirish

Ma'lumotlarni tahlil qilish

So'rovlarning tabiati

Ko'pchilik oddiy operatsiyalar

Murakkab operatsiyalar

Saqlangan ma'lumotlar

operativ, batafsil

Katta vaqtni qamrab olgan, jamlangan

Faoliyat turi

operativ, taktik

Analitik, strategik

Ma'lumotlar turi

tuzilgan

heterojen

    Relyatsion ma'lumotlar modeli: asosiy tushunchalar. Munosabatlar o'rtasidagi aloqalarning asosiy turlari va ularning xususiyatlari.

munosabatlar modeli ma'lum bir predmet sohasining ma'lumotlari (RMD) - vaqt o'tishi bilan o'zgarib turadigan munosabatlar to'plami. Axborot tizimini yaratishda aloqalar majmuasi predmet sohasi ob'ektlari haqidagi ma'lumotlarni saqlash va ular o'rtasidagi munosabatlarni modellashtirish imkonini beradi.

Relyatsion model elementi

Taqdimot shakli

Munosabat

munosabat sxemasi

Jadval ustuni sarlavhasi qatori (jadval sarlavhasi)

Jadval qatori

Mohiyat

Ob'ekt xususiyatlarining tavsifi

Jadval ustuni sarlavhasi

Yaroqli atribut qiymatlari to'plami

Atribut qiymati

Yozuvdagi maydonning qiymati

asosiy kalit

Bir yoki bir nechta atributlar

Ma'lumotlar turi

Jadval elementi qiymat turi

Munosabat eng muhim tushuncha bo'lib, ba'zi ma'lumotlarni o'z ichiga olgan ikki o'lchovli jadvaldir.

Mohiyat ma'lumotlar bazasida saqlanadigan har qanday tabiat ob'ekti mavjud. Ob'ekt ma'lumotlari o'zaro bog'liq holda saqlanadi.

Atributlar ob'ektni tavsiflovchi xususiyatlardir. Jadval strukturasida har bir atribut nomlanadi va ba'zi jadval ustunining sarlavhasi unga mos keladi.

Matematik jihatdan munosabatlarni quyidagicha tasvirlash mumkin. n D1, D2, D3,..., Dn to‘plamlar berilsin, u holda R munosabati tartiblanganlar to‘plamidir. kortejlar, bu erda dk Dk, dk xususiyat, aDk- domen munosabat R.

Guruch. O'zaro munosabatlarni ifodalovchi HIZMAT

Domen muayyan munosabat atributi uchun barcha mumkin bo'lgan qiymatlar to'plamidir. EMPLOYEE TO munosabati 4 ta domenni o'z ichiga oladi. Domen 1 barcha xodimlarning ismlarini o'z ichiga oladi; domen 2- kompaniyaning barcha bo'limlari raqamlari, domen 3- barcha lavozim unvonlari domen 4 - barcha xodimlarning tug'ilgan sanalari. Har bir domen raqamli yoki belgilar kabi bir turdagi ma'lumotlarning qiymatlarini hosil qiladi.

HIZMAT munosabati 3 ta kortejdan iborat. Ko'rib chiqilayotgan munosabat korteji 4 ta elementdan iborat bo'lib, ularning har biri tegishli domendan tanlanadi. Har bir kortej jadval qatoriga mos keladi.

Aloqa sxemasi (munosabatlar sarlavhasi) atribut nomlari roʻyxatidir. Misol uchun, berilgan misol uchun munosabatlar sxemasi HIZMAT (to'liq ism, bo'lim, lavozim, D_Tug'ilgan) shakliga ega. Munosabatlar to'g'ri kortejlar to'plami ko'pincha deyiladi mazmuni (tana) munosabati.

Birlamchi kalit (aloqa kaliti, kalit atributi) har bir kortejni yagona aniqlovchi munosabat atributi deyiladi. Masalan, HODIM (Ism, Bo'lim, Lavozim, D_Tug'ilgan) ga nisbatan asosiy atribut "Ism" hisoblanadi. Kalit balkim birikma (murakkab) ya'ni u bir nechta atributlardan iborat. Munosabatlar atributlarning bir nechta kombinatsiyasiga ega bo'lgan holatlar mavjud bo'lib, ularning har biri munosabatning barcha kortejlarini o'ziga xos tarzda aniqlaydi. Bu atribut kombinatsiyalarining barchasi mumkin bo'lgan kalitlar munosabat. Mumkin bo'lgan har qanday kalit sifatida tanlanishi mumkin asosiy.

Agar tanlangan asosiy kalit minimal talab qilinadigan atributlar to'plamidan iborat bo'lsa, u shunday deyiladi ortiqcha emas .

Kalitlar odatda quyidagi maqsadlarga erishish uchun ishlatiladi:

1) asosiy atributlardagi qiymatlarning takrorlanishini istisno qilish;

2) kortejlarni tartiblash;

3) munosabat kortejlari bilan ishlashni tezlashtirish;

4) bog'lovchi jadvallarni tashkil etish.

R1 ga nisbatan mavjud bo'lsin kalit emas qiymatlari qiymatlar bo'lgan A atributi kalit atribut Boshqa munosabatda R2. Keyin R1 munosabatning A atributini aytamiz tashqi kalit .

Chet el kalitlari munosabatlar o'rtasidagi munosabatlarni o'rnatadi. Masalan, STUDENT_ SUBJECT (Ism, Pr nomi, sinf) munosabati bilan bog'langan ikkita TALAB (to'liq ism, guruh, mutaxassislik) va SUBJECT (Pr nomi, soatlar) mavjud (rasm). Bog'lanish munosabatida Full Name va Name.Pr atributlari shakllanadi kompozit kalit. Ushbu atributlar boshqa munosabatlarning asosiy kalitlari bo'lgan xorijiy kalitlardir.

Guruch. munosabat munosabati

Jadvalni munosabat deb hisoblash imkonini beruvchi shartlar.

1. Jadvalning barcha satrlari yagona bo'lishi kerak, ya'ni bir xil asosiy kalitlarga ega qatorlar bo'lishi mumkin emas.

2. Jadval ustunlarining nomlari har xil bo'lishi va ularning qiymatlari oddiy bo'lishi kerak, ya'ni bir qatorning bir ustunida qiymatlar guruhiga ruxsat berilmaydi.

3. Bitta jadvalning barcha satrlari ustunlar nomlari va turlariga mos keladigan bir xil tuzilishga ega bo'lishi kerak.

4. Jadvalda qatorlarni joylashtirish tartibi ixtiyoriy bo'lishi mumkin. Ko'pincha, munosabatlarga ega bo'lgan jadval alohida faylga joylashtiriladi.

Agar jadval berilgan munosabat kalitga ega bo'lsa, u holda jadval ham kalitga ega deb hisoblanadi va u chaqiriladi kalit yoki asosiy maydonlar bilan jadval.

Munosabatlar o'rtasidagi aloqalarning asosiy turlari va ularning xususiyatlari. Jadvallar o'rtasida ikkilik (ikki jadval o'rtasida), uchlik (uchta jadval o'rtasida) va umuman, n-ariy munosabatlar o'rnatilishi mumkin. Keling, eng keng tarqalganini ko'rib chiqaylik ikkilik ulanishlar.

Ikki jadvalni bog'lashda asosiy va qo'shimcha (bo'ysunuvchi) jadvallar farqlanadi. Jadvallar yordamida mantiqiy bog'langan aloqa kaliti . Bog'lanish kaliti bir yoki bir nechta maydonlardan iborat bo'lib, bu holda ular chaqiriladi aloqa sohalari (PS).

Bog'lanishning mohiyati asosiy va qo'shimcha jadvallar orasidagi bog'lanish sohalari o'rtasida yozishmalarni o'rnatishdan iborat. Asosiy jadvalning bog'lanish maydonlari oddiy va kalit bo'lishi mumkin. Asosiy maydonlar ko'pincha pastki jadvaldagi havola maydonlari sifatida ishlatiladi.

Asosiy va qo'shimcha jadvallarning bog'lanish maydonlari qanday aniqlanganiga qarab (asosiy maydonlar bog'lanish maydonlari bilan qanday bog'liq), odatda ikkita jadval (jadval) o'rtasida quyidagi to'rtta asosiy bog'lanish turi o'rnatilishi mumkin:

    bitta - bitta (1:1);

    bitta - ko'p (1: M);

    ko'p - bitta (M: 1);

    ko'p - ko'p (M: M yoki M: N).

Tab. Jadval havolalari turlarining xususiyatlari

Aloqa turi 1:1. Asosiy va qo'shimcha jadvallar o'rtasidagi munosabatlarning barcha sohalari kalit bo'lganda 1: 1 munosabati hosil bo'ladi. Ikkala jadvalning asosiy maydonlaridagi qiymatlar takrorlanmaganligi sababli, ushbu jadvallardagi yozuvlarning birma-bir yozishmalari taqdim etiladi. Jadvallarning o'zi, aslida, bu erda teng bo'ladi.

Aloqa turi 1: M. 1:M munosabati asosiy jadvalning bitta yozuvi yordamchi jadvalning bir nechta yozuvlariga mos keladigan holatda sodir bo'ladi.

Aloqa turi M:1. M:1 munosabati asosiy jadvalning bir yoki bir nechta yozuvlari qo'shimcha jadvalning bitta yozuvi bilan bog'langanda yuzaga keladi.

Ulanish turi M: M. M:M munosabatining eng umumiy turi asosiy jadvalning bir nechta yozuvlari qo'shimcha jadvalning bir nechta yozuvlariga mos kelganda yuzaga keladi.

Izoh . Amalda, munosabatlar odatda bir vaqtning o'zida bir nechta jadvallarni o'z ichiga oladi. Bunday holda, jadvallardan biri bir nechta jadvallar bilan har xil turdagi munosabatlarga ega bo'lishi mumkin. Tegishli jadvallar, o'z navbatida, boshqa jadvallar bilan bog'langan hollarda, ierarxiya yoki munosabatlar daraxti hosil bo'ladi.

    Relyatsion algebraning to'plam-nazariy va maxsus amallari.

Algebra bu to'plamga nisbatan yopilgan, unda aniqlangan amallar to'plamiga ega ob'ektlar to'plami deyiladi asosiy to'plam.

Relyatsion algebrada asosiy to'plam munosabatlar to'plamidir. Barcha operatsiyalar majmuasini ikki guruhga bo'lish mumkin: to'plam nazariy operatsiyalari va maxsus operatsiyalar. Birinchi guruhga 4 ta operatsiya kiradi. Birinchi uchta to'plam nazariy amallari binar, ya'ni ular ikkita munosabatni o'z ichiga oladi va dastlabki munosabatlarning ekvivalent sxemalarini talab qiladi.

Uyushma ikki munosabatlar - birinchi yoki ikkinchi manba munosabatlariga yoki bir vaqtning o'zida ikkala munosabatlarga tegishli bo'lgan kortejlar to'plamini o'z ichiga olgan munosabat.

Ikki R 1 = ( r 1 ) , R 2 = ( r 2 ) munosabatlar berilsin, bu erda r 1 va r 2 mos ravishda R 1 va R 2 munosabatlar kortejlari, keyin R 1 R 2 = ( r | r) birlashmasi. R 1 Vr R2). Bu yerda r yangi munosabat korteji, V mantiqiy qo‘shish amali “OR”.

kesib o'tish

R 3 \u003d R 1 R 2 \u003d ( r | r R 1 ^ r R 2), bu erda ^ mantiqiy ko'paytirish operatsiyasi (mantiqiy "VA").

farq

kesib o'tish munosabatlar - bu R 1 va R 2 birinchi va ikkinchi munosabatlarga bir vaqtning o'zida tegishli bo'lgan kortejlar to'plamini o'z ichiga olgan munosabat:

R 3 \u003d R 1 R 2 \u003d ( r | r R 1 ^ r R 2), bu erda ^ mantiqiy ko'paytirish operatsiyasi ("VA").

farq R 1 va R 2 munosabatlari R 1 ga tegishli va R 2 ga tegishli bo'lmagan kortejlar to'plamini o'z ichiga olgan munosabatdir:

R 5 = R 1 \ R 2 = ( r | r R 1 ^ r R 2)

Debriyaj yoki birlashma,= bilan kortejlar va q = .., q m > ikkinchining qiymatlarini birinchisining oxiriga qo‘shish orqali olingan kortejdir. va q bilan bog`lanish (c, q) shaklida belgilanadi.

(c, q) =<с 1 с 2 , ... , с n , q 1 , q 2 , .... q m >

Bu yerda n - birinchi kortejdagi elementlar soni c, m - ikkinchi kortejdagi elementlar soni q.

Oldingi barcha operatsiyalar munosabatlarning darajasini yoki darajasini o'zgartirmadi - bu munosabatlar sxemalarining ekvivalentligini aniqlashdan kelib chiqadi. Dekart mahsuloti operatsiyasi natijaviy munosabat darajasini o'zgartiradi.

Kengaytirilgan kartezian mahsuloti munosabatlari R, n daraja S R1 sxemasi bilan = (A 1, A 2 ..., A n) va m darajali R 2 munosabatlari S R2 sxemasi bilan = (B 1, B 2, ..., B m). ) sxema bilan R 3 daraja n+m munosabat deyiladi

S R3 = (A 1 , A 2 , ... , A n , B 1 , B 2 , ..., B m) R 1 munosabatning har bir r kortejini R munosabatning har bir q korteji bilan birlashtirish natijasida olingan kortejlarni o‘z ichiga oladi. 2018-04-22

Ya'ni, agar R 1 = ( r ), R 2 = ( q ) bo'lsa.

R 1 R 2 = ((r, q) | r R 1 ^ q R 2).

Relyatsion algebraning maxsus amallari.

Relyatsion algebraning birinchi maxsus amali gorizontal tanlash, yoki filtr ishlashi, yoki munosabatni cheklash operatsiyasi.

a AND (^), OR (V), NO (-) va ehtimol qavslar yordamida taqqoslash shartlaridan tashkil topgan mantiqiy ifoda bo'lsin. Taqqoslash shartlari sifatida quyidagilarga ruxsat beriladi:

a) A oc a atamasi, bu erda A - D domenidan qiymatlarni oladigan ba'zi atributlarning nomi; a - bir xil D domenidan olingan doimiy, a D; oc berilgan D domeni uchun ruxsat etilgan taqqoslash amallaridan biri;

b) A os B atamasi, bu erda A, B ba'zi Q bilan taqqoslanadigan atributlarning nomlari, ya'ni bir xil D domenidan qiymatlarni qabul qiluvchi atributlar.

U holda R munosabat atributlari bo'yicha aniqlangan mantiqiy ifoda ko'rinishidagi R munosabatida ko'rsatilgan tanlash operatsiyasi yoki filtrlash natijasi R[G] munosabati bo'lib, u dastlabki munosabatdan o'sha kortejlarni o'z ichiga oladi. tanlash yoki filtrlash sharti rost:

R = (r | r R ^ G(r) = "To'g'ri")

Keyingi maxsus operatsiya dizayn operatsiyasi. R munosabat, S R = (A 1 , ... , A n) R munosabat sxemasi bo'lsin. B kichik to'plamni [Ai] bilan belgilang; B ( Ai ) Bu yerda V ga kiritilmagan ( Ai ) dan atributlar to‘plami V 1 bo‘lsin. Agar V = (A 1 j.A 2 j .....A k j), V 1 = (A 1 j,A bo‘lsa. 2 j,...,A k j) va r =<а 1 j, а 2 j,...,а k j >, va k j A k ji, keyin r [B], s=< a 1 j, а 2 j, ... , а m , >; a m, A m j

R munosabatining R[B] bilan belgilangan B atributlar to‘plamiga proyeksiyasi B S R atributlar to‘plamiga mos keladigan sxemaga ega bo‘lgan munosabatdir. b | = B, B to'plamidagi atributlarga tegishli bo'lmagan qiymatlarni olib tashlash orqali dastlabki R munosabati kortejlaridan olingan kortejlarni o'z ichiga oladi.

Munosabatlar ta'rifiga ko'ra, hosil bo'lgan munosabatdan barcha takroriy kortejlar olib tashlanadi.

Dizayn operatsiyasi, ba'zan dizayn operatsiyasi deb ham ataladi vertikal tanlash, faqat modellashtirilgan ob'ektning kerakli xususiyatlarini olish imkonini beradi. Ko'pincha dizayn operatsiyasi gorizontal tanlash yoki filtrlash operatsiyalarida oraliq bosqich sifatida ishlatiladi. U so'rovga javob olishning yakuniy bosqichida mustaqil ravishda qo'llaniladi.

Relyatsion algebraning navbatdagi maxsus amali operatsiya hisoblanadi shartli ulanish.

Relyatsion algebraning ko'rib chiqilayotgan maxsus amallaridan farqli o'laroq: filtrlash va proyeksiyalash, ular unar bo'ladi, ya'ni ular bir munosabat bo'yicha bajariladi, shartli birlashma operatsiyasi ikkilik, ya'ni u uchun ikkita munosabat boshlang'ich, biri esa natijadir.

R = (r), Q = ( q ) boshlang'ich munosabatlar, S R, S Q mos ravishda R va Q munosabatlar sxemalari bo'lsin.

S R = (A 1 , A 2 , ... , A k): S Q = (B 1 B 2, ... , B m), bu erda A, B, R va munosabatlar diagrammasidagi atributlarning nomlari. Q, mos ravishda. Shu bilan birga, biz A va B atributlar to'plami berilgan deb taxmin qilamiz

A ( A i ) , j=1,k ; ( B j ) j=1,m da va bu to'plamlar Q bilan solishtiriladigan atributlardan iborat.

U holda R va Q munosabatlarining p shartdagi birlashuvi R va Q munosabatlarining dekart mahsulotining kichik to'plami bo'ladi, uning kortejlari p shartni qanoatlantiradi, bir vaqtning o'zida shartlarning bajarilishi sifatida qaraladi:

r.A j Q j B i, : i=l,k, bu yerda k - A va B to‘plamlarga kiritilgan atributlar soni, Q j esa o‘ziga xos taqqoslash amalidir.

A j Q j V i D i Qi - D i domenida ruxsat etilgan taqqoslash operatsiyalari to'plamidan aniqlangan i-qiyoslash predikati.

R [ R ] Q = ( r.q) | (r. q) | r.A Q j q.B j - “To‘g‘ri”, i=l,k)

Relyatsion algebra amallar to'plamiga kiritilgan oxirgi amal operatsiya hisoblanadi bo'linish.

Bo'linish operatsiyasini aniqlash uchun biz birinchi navbatda tasvirlar to'plami tushunchasini ko'rib chiqamiz.

S R = (A1, A 2 ,..., A k) sxema bilan R munosabat bo'lsin;

A qandaydir atributlar to‘plami A ( A i ) i=l,k , A 1 – A to‘plamga kirmagan atributlar to‘plami bo‘lsin.

A va A 1 to'plamlarning kesishishi bo'sh: A A 1 = 0; to'plamlar birligi asl munosabatning barcha atributlari to'plamiga teng: A A 1 = S R.

U holda R[A] proyeksiyasining y elementining tasvirlar to'plami R proyeksiyasining shunday y elementlari to'plami bo'lib, ular uchun birikish (x, y) R munosabati korteji bo'ladi, ya'ni.

QA(x) = (y | y R ^ (x, y) R) tasvirlar toʻplamidir.

Endi operatsiyani aniqlaylik bo'linish. Ikki munosabatlar R va T mos ravishda sxemalar bilan berilgan bo'lsin: S R = (A 1 , A 2 , ... , A k); S T =-(B 1, B 2, ..., B m);

A va B - bir xil uzunlikdagi (takrorlarsiz) bu munosabatlarning atributlari to'plami;

A S R; S Tda. A 1 atributlari - bu A to'plamiga kiritilmagan R dan atributlar.

A A 1 = to'plamlar kesishmasi bo'sh va A A 1 = S R. R[A] va T[B] proyeksiyalari birlashishga mos keladi, ya'ni ular ekvivalent sxemalarga ega: S R | A |~ S T [B].

Keyin bo'lish operatsiyasi R va T munosabatlarini munosabat bilan bog'laydi

Q = RT, ularning kortejlari R proyeksiyasining elementlari bo'lib, ular uchun T[B] ular uchun tuzilgan tasvirlar to'plamiga kiritilgan:

RT = (r | r R ^ T[B] (y | y R [A] ^ (r, y) R ) ).

Bo'linish operatsiyasi individual xususiyatlarning ma'lum bir to'plamini solishtirish zarur bo'lganda qulaydir.

    Ko'p foydalanuvchili DBMSni amalga oshirishda qo'llaniladigan turli xil arxitektura echimlari. markazlashtirilgan arxitektura.

Ma'lumotlar bazasi tushunchasi dastlab bir nechta foydalanuvchilar tomonidan ko'plab muammolarni hal qilish imkoniyatini nazarda tutgan. Eng muhim xususiyat zamonaviy DBMS ko'p foydalanuvchili texnologiya ishining mavjudligi. Bunday texnologiyalarning turli davrlarda turlicha amalga oshirilishi ham kompyuter texnikasining asosiy xossalari, ham dasturiy ta’minotning rivojlanishi bilan bog‘liq edi.

markazlashtirilgan arxitektura. Ushbu texnologiyadan foydalanganda ma'lumotlar bazasi, DBMS va amaliy dastur (ilova) bitta kompyuterda (meynfreym yoki shaxsiy kompyuter) joylashgan (1-rasm). Tashkilotning ushbu usuli uchun tarmoqni qo'llab-quvvatlash talab qilinmaydi va barchasi oflayn rejimda ishlashga to'g'ri keladi. Ish quyidagi tarzda tuzilgan:

Fayllar to'plami ko'rinishidagi ma'lumotlar bazasi kompyuterning qattiq diskida joylashgan.

DBMS va ma'lumotlar bazasi ilovasi bitta kompyuterda o'rnatiladi.

Foydalanuvchi dasturni ishga tushiradi. Ilova tomonidan taqdim etilgan foydalanuvchi interfeysidan foydalanib, u ma'lumotlarni olish/yangilash uchun ma'lumotlar bazasiga so'rovni boshlaydi.

Ma'lumotlar bazasiga barcha qo'ng'iroqlar ma'lumotlar bazasining jismoniy tuzilishi haqidagi barcha ma'lumotlarni o'z ichiga olgan DBMS orqali amalga oshiriladi.

DBMS ma'lumotlarga kirishni boshlaydi, bu foydalanuvchi so'rovlarining bajarilishini ta'minlaydi.

Guruch. 1. Markazlashtirilgan arxitektura

Shunga o'xshash arxitektura DB2, Oracle ning birinchi versiyalarida ishlatilgan. Ushbu modelning asosiy kamchiliklari foydalanuvchilar sonining ortishi bilan ishlashning keskin pasayishi hisoblanadi.

    Tarmoq bilan texnologiya va fayl serveri(fayl-server arxitekturasi). Mijoz-server texnologiyasi. Uch bosqichli (ko'p bosqichli) mijoz-server arxitekturasi.

Vazifalar murakkabligining ortishi, shaxsiy kompyuterlarning paydo bo'lishi va mahalliy kompyuter tarmoqlari yangi arxitekturaning paydo bo'lishi uchun zarur shartlar edi fayl serveri. Ushbu ma'lumotlar bazasi arxitekturasi tarmoqqa kirish tarmoq kompyuterlaridan birini ma'lumotlar bazasi fayllarini saqlaydigan maxsus server sifatida tayinlashni o'z ichiga oladi. Foydalanuvchilarning so'rovlariga ko'ra, fayllar fayl-server ma'lumotlarni qayta ishlashning asosiy qismi amalga oshiriladigan foydalanuvchi ish stantsiyalariga uzatiladi. Markaziy server asosan ma'lumotlarning o'zini qayta ishlashda ishtirok etmasdan faqat fayllarni saqlash rolini bajaradi (2-rasm).

Guruch. 2. “Fayl-server” arxitekturasi.

Ish quyidagi tarzda tuzilgan:

Fayllar to'plami ko'rinishidagi ma'lumotlar bazasi maxsus kompyuterning (fayl serveri) qattiq diskida joylashgan.

Mijoz kompyuterlaridan tashkil topgan mahalliy tarmoq mavjud bo'lib, ularning har birida ma'lumotlar bazasi va ma'lumotlar bazasi bilan ishlash uchun dastur o'rnatilgan.

Mijoz kompyuterlarining har birida foydalanuvchilar dasturni ishga tushirish imkoniyatiga ega. Ilova tomonidan taqdim etilgan foydalanuvchi interfeysidan foydalanib, u ma'lumotlarni olish/yangilash uchun ma'lumotlar bazasiga so'rovni boshlaydi.

Ma'lumotlar bazasiga barcha qo'ng'iroqlar fayl serverida joylashgan ma'lumotlar bazasining jismoniy tuzilishi haqidagi barcha ma'lumotlarni o'z ichiga olgan DBMS orqali amalga oshiriladi.

DBMS fayl serverida joylashgan ma'lumotlarga qo'ng'iroqlarni boshlaydi, buning natijasida ma'lumotlar bazasi fayllarining bir qismi mijoz kompyuteriga ko'chiriladi va qayta ishlanadi, bu foydalanuvchi so'rovlarining bajarilishini ta'minlaydi (ma'lumotlar bo'yicha kerakli operatsiyalar bajariladi).

Agar kerak bo'lsa, ma'lumotlar bazasini yangilash uchun ma'lumotlar fayl serveriga qaytariladi.

DBMS natijani ilovaga qaytaradi.

Ilova foydalanuvchi interfeysidan foydalangan holda so'rovni bajarish natijasini ko'rsatadi.

Arxitektura doirasida fayl serveri"DBase va Microsoft Access kabi mashhur ish stoli DBMSlarining birinchi versiyalari yaratilgan. Ushbu arxitekturaning asosiy kamchiliklari:

Ko'p foydalanuvchilar bir vaqtning o'zida bir xil ma'lumotlarga kirishganda, unumdorlik keskin pasayadi.

Mijoz kompyuteri va tarmog'ining resurslari optimal darajada iste'mol qilinmaydi. Natijada tarmoq trafigining ko'payishi va foydalanuvchi kompyuterining apparat imkoniyatlariga qo'yiladigan talablar ortadi.

Shaxsiy yozuvlar bilan ishlashga yo'naltirilgan navigatsiya usuli qo'llaniladi.

Xavfsizlikning past darajasi - o'g'irlik va zarar, noto'g'ri o'zgarishlar qilish.

Rivojlanmagan tranzaksiya apparati o'zgartirishlar kiritishda ma'lumotlarning semantik va referent yaxlitligini buzish nuqtai nazaridan xatolar manbai bo'lib xizmat qiladi.

Mijoz-server texnologiyasi. Texnologiyadan foydalanish" mijoz - server" tarmoqqa ulangan ma'lum miqdordagi kompyuterlar mavjudligini nazarda tutadi, ulardan biri maxsus boshqaruv funktsiyalarini bajaradi (tarmoq serveri).

arxitektura" mijoz - server" foydalanuvchi ilovasi (mijoz) va server funktsiyalarini ajratadi. Mijoz ilovasi ma'lumotlar bazasi joylashgan serverga tizimli tilda so'rov shakllantiradi. SQL so'rovlari. Masofaviy server so'rovni qabul qiladi va uni SQL ma'lumotlar bazasi serveriga yuboradi. SQL server - masofaviy ma'lumotlar bazasini boshqaradigan maxsus dastur. SQL server ma'lumotlar bazasida so'rovning bajarilishini, so'rov natijasini shakllantirishni va uni mijoz ilovasiga berishni ta'minlaydi. Mijoz kompyuter faqat server ma'lumotlar bazasiga so'rov yuboradi va natijani oladi, shundan so'ng uni kerakli tarzda izohlaydi va foydalanuvchiga taqdim etadi. Chunki so'rov natijasi mijoz ilovasiga yuboriladi, faqat mijoz tarmoq bo'ylab "sayohat qilishi" kerak bo'lgan ma'lumotlar. Natijada tarmoqdagi yuk kamayadi. So'rov ma'lumotlar saqlanadigan joyda (serverda) bajarilganligi sababli, katta ma'lumotlar paketlarini yuborishning hojati yo'q. SQL-server qabul qilingan so'rovni optimallashtiradi, shunda u minimal vaqt ichida eng kam qo'shimcha xarajatlar bilan bajariladi. Tizimning arxitekturasi rasmda ko'rsatilgan. 3.

Bularning barchasi tizim ish faoliyatini oshiradi va so'rov natijasini kutish vaqtini qisqartiradi. So'rovlar server tomonidan bajarilganda, ma'lumotlarning xavfsizligi darajasi sezilarli darajada oshadi, chunki ma'lumotlar yaxlitligi qoidalari serverdagi ma'lumotlar bazasida aniqlanadi va ushbu ma'lumotlar bazasidan foydalanadigan barcha ilovalar uchun bir xil. Shunday qilib, yaxlitlikni saqlash uchun qarama-qarshi qoidalarni belgilash imkoniyati istisno qilinadi.

Guruch. 3. “Mijoz – server” arxitekturasi.

Fayllar to'plami ko'rinishidagi ma'lumotlar bazasi maxsus kompyuterning (tarmoq serveri) qattiq diskida joylashgan.

Mijoz kompyuterlaridan tashkil topgan mahalliy tarmoq mavjud bo'lib, ularning har birida ma'lumotlar bazasi bilan ishlash uchun mijoz ilovasi mavjud.

Mijoz kompyuterlarining har birida foydalanuvchilar dasturni ishga tushirish imkoniyatiga ega. Ilova tomonidan taqdim etilgan foydalanuvchi interfeysidan foydalanib, u ma'lumotlarni olish/yangilash uchun serverda joylashgan DBMSga qo'ng'iroqni boshlaydi. Aloqa uchun maxsus SQL so'rovlar tili ishlatiladi, ya'ni. tarmoq orqali mijozdan serverga faqat so'rov matni uzatiladi.

DBMS serverda joylashgan ma'lumotlar bazasining jismoniy tuzilishi haqidagi barcha ma'lumotlarni o'z ichiga oladi.

DBMS serverda joylashgan ma'lumotlarga qo'ng'iroqlarni boshlaydi, buning natijasida barcha ma'lumotlarni qayta ishlash serverda amalga oshiriladi va faqat so'rov natijasi mijoz kompyuteriga ko'chiriladi. Shunday qilib, DBMS natijani ilovaga qaytaradi.

Ilova foydalanuvchi interfeysidan foydalangan holda so'rovni bajarish natijasini ko'rsatadi.

Mijoz ilovasining funktsiyalari: so'rovlarni yuborish; so'rovlarni talqin qilish; natijalar taqdimoti.

Server qismi funktsiyalari: so'rovlarni qabul qilish; xavfsizlik tizimini va kirishni nazorat qilishni ta'minlash; ma'lumotlar bazasi yaxlitligini boshqarish; ko'p foydalanuvchili ish rejimining barqarorligini amalga oshirish.

arxitekturada" mijoz - server"Sanoat" deb ataladigan ma'lumotlar bazasi ishlaydi.Ular sanoat deb ataladi, chunki aynan shu toifadagi ma'lumotlar bazasi o'rta va yirik korxona, tashkilot, bank (MS SQL Server, Oracle, InterBase va boshqalar).

SQL serveri alohida xodim yoki xodimlar guruhi tomonidan yuritiladi. Ular ma'lumotlar bazasining fizik xususiyatlarini boshqaradi, ma'lumotlar bazasining turli komponentlarini optimallashtirish, sozlash va qayta aniqlashni amalga oshiradi, yangi ma'lumotlar bazalarini yaratadi, mavjudlarini o'zgartiradi va hokazo.

Ushbu arxitekturaning "fayl serveri" arxitekturasiga nisbatan asosiy afzalliklarini ko'rib chiqing:

Tarmoq trafigini sezilarli darajada kamaytirdi.

Mijoz ilovalarining murakkabligi kamayadi (yukning katta qismi server qismiga tushadi) va natijada mijoz kompyuterlarining apparat imkoniyatlariga talablar kamayadi.

Maxsus dasturiy vosita - SQL-serverning mavjudligi dizayn va dasturlash vazifalarining muhim qismi allaqachon hal qilinganiga olib keladi.

Ma'lumotlar bazasining yaxlitligi va xavfsizligini sezilarli darajada yaxshilaydi.

Kamchiliklar orasida apparat va dasturiy ta'minot uchun yuqori moliyaviy xarajatlar, shuningdek, barcha mijoz kompyuterlarida mijoz ilovalarini o'z vaqtida yangilashda ma'lum qiyinchiliklar mavjud.

Uch bosqichli (ko'p bosqichli) "mijoz-server" arxitekturasi.Uch havola(ba'zi hollarda ko'p havola)arxitektura texnologiyani yanada takomillashtirishni anglatadi " mijoz - server". Arxitekturani hisobga olgan holda" mijoz - server", degan xulosaga kelishimiz mumkinki, bu 2 darajali: birinchi havola - mijoz ilovasi, ikkinchi havola - ma'lumotlar bazasi serveri + ma'lumotlar bazasining o'zi. uch bosqichli arxitektura ilgari kiritilgan barcha biznes mantig'i (biznes mantig'i). mijoz ilovalari, ilova serveri deb ataladigan alohida havolada ajralib turadi. Bunday holda, mijoz ilovalari uchun faqat foydalanuvchi interfeysi qoladi. Masalan, yuqoridagi misoldagi mijoz ilovasi veb-brauzerdir.Endi, biznes mantig'i o'zgarganda, mijoz ilovalarini o'zgartirish va ularni barcha foydalanuvchilar uchun yangilashga hojat qolmaydi. Bundan tashqari, foydalanuvchi uskunalariga qo'yiladigan talablar imkon qadar qisqartiriladi.

Shunday qilib, natijada ish quyidagicha tuzilgan:

JB ajratilgan kompyuterning qattiq diskidagi fayllar to'plami ko'rinishidagi (tarmoq serveri).

DBMS ham tarmoq serverida joylashgan.

Biznesni tahlil qilish dasturini (biznes mantig'ini) o'z ichiga olgan maxsus ajratilgan dastur serveri mavjud.

Ko'plab mijoz kompyuterlari mavjud, ularning har birida " nozik mijoz" bu foydalanuvchi interfeysini amalga oshiradigan mijoz ilovasi.

Mijoz kompyuterlarining har birida foydalanuvchilar dasturni - nozik mijozni ishga tushirish imkoniyatiga ega. Ilova tomonidan taqdim etilgan foydalanuvchi interfeysidan foydalanib, u dastur serverida joylashgan biznes razvedka dasturiga qo'ng'iroqni boshlaydi.

Ilova serveri foydalanuvchi talablarini tahlil qiladi va ma'lumotlar bazasiga so'rovlar yaratadi. Aloqa uchun ishlatiladi maxsus til SQL so'rovlari, ya'ni. tarmoq orqali dastur serveridan ma'lumotlar bazasi serveriga faqat so'rov matni uzatiladi.

DBMS ma'lumotlar bazasining jismoniy tuzilishi haqidagi barcha ma'lumotlarni o'z ichiga oladi.

DBMS serverda joylashgan ma'lumotlarga qo'ng'iroqlarni boshlaydi, buning natijasida so'rov natijasi dastur serveriga ko'chiriladi.

Ilova serveri natijani mijoz ilovasiga (foydalanuvchiga) qaytaradi.

Ilova foydalanuvchi interfeysidan foydalangan holda so'rovni bajarish natijasini ko'rsatadi.

    Ma'lumotlar bazasi yaxlitligi tushunchasi. Ma'lumotlar bazasining mantiqiy va jismoniy yaxlitligi. Butunlik cheklovlarining tasnifi.

Ma'lumotlarning yaxlitligini ta'minlash ma'lumotlarni qayta ishlash tizimlarini (DPS) loyihalash va ishlatishdagi eng muhim vazifadir. Butunlik muammosi ma'lumotlar bazasidagi ma'lumotlarning har doim to'g'ri bo'lishini ta'minlashdir." Butunlik - axborotning dolzarbligi va izchilligi, uning yo'q qilinishidan va ruxsat etilmagan o'zgarishlardan xavfsizligi.

Butunlik axborot xavfsizligining aspektlaridan biri bo‘lib, ulardan foydalanish imkoniyati – talab qilinadigan axborot xizmatini maqbul narxda olish imkoniyati va maxfiylik – ruxsatsiz o‘qishdan himoyalanishdir.

Ma'lumotlar yaxlitligi ma'lumotlar bazasining o'ziga xos xususiyati bo'lib, uni ta'minlash BnD dizaynining eng muhim vazifasidir. Ma'lumotlar yaxlitligi yaxlitlik cheklovlari deb ataladigan maxsus bandlar to'plami bilan tavsiflanadi. Butunlik cheklovlari - bu alohida ma'lumotlar ob'ektlarining haqiqiy qiymatlari va ular o'rtasidagi munosabatlar haqidagi bayonotlar. Ushbu cheklovlar ko'p hollarda mavzu sohasining xususiyatlari bilan belgilanadi. Ma'lumotlar bazasida operatsiyalarni bajarishda yaxlitlik cheklovlari tekshiriladi. Butunlik cheklovlari bo'yicha tasniflanishi mumkin turli xil xususiyatlar(guruch.).

Mantiqiy yaxlitlik - ma'lumotlar bazasining holati, ma'lumotlarning mantiqiy modeliga xos bo'lgan yaxlitlik cheklovlari (ya'ni, yashirin cheklovlar) va deklarativ yoki protsessual tarzda ko'rsatilgan aniq cheklovlarning yo'qligi bilan tavsiflanadi. Jismoniy yaxlitlik saqlash sxemasi spetsifikatsiyalari buzilishining yo'qligi, shuningdek, ommaviy axborot vositalaridagi ma'lumotlarni jismoniy yo'q qilish.

Trigger mexanizmi ma'lumotlar bazasining yaxlitligini boshqarish uchun ham qo'llaniladi. Trigger belgilangan hodisa sodir bo'lganda faollashtiriladigan harakat (qo'shish, o'chirish, yozishni yangilash). Triggerlar ma'lumotlar bazasi sxemasida ko'rsatilgan. ga nisbatan kengroq tushuncha tetik tushunchasidir saqlangan protsedura. Saqlangan protseduralar serverda saqlanadigan va bajariladigan dastur mantig'ining qismlarini tavsiflaydi, bu esa unumdorlikni oshiradi.

Ma'lumotlar yaxlitligi- ma'lumotlar bazasining ajralmas mulki bo'lib, uni ta'minlash ma'lumotlar bazasini loyihalashning eng muhim vazifasidir. Ma'lumotlar yaxlitligi yaxlitlik cheklovlari deb ataladigan maxsus bandlar to'plami bilan tavsiflanadi. Butunlik cheklovlari - bu alohida ma'lumotlar ob'ektlarining haqiqiy qiymatlari va ular o'rtasidagi munosabatlar haqidagi bayonotlar. Ushbu cheklovlar ko'p hollarda mavzu sohasining xususiyatlari bilan belgilanadi. Ma'lumotlar bazasida operatsiyalarni bajarishda yaxlitlik cheklovlari tekshiriladi. Butunlik cheklovlari turli mezonlarga ko'ra tasniflanishi mumkin (quyida rasm).

Ma'lumotlar bazasining mantiqiy va jismoniy yaxlitligini farqlash. Mantiqiy yaxlitlik- ma'lumotlar bazasining holati, unga xos bo'lgan yaxlitlik cheklovlari buzilishining yo'qligi bilan tavsiflanadi. mantiqiy model ma'lumotlar (ya'ni, yashirin cheklovlar) va deklarativ yoki protsessual tarzda ko'rsatilgan aniq cheklovlar. Jismoniy yaxlitlik- saqlash sxemasi spetsifikatsiyalari buzilishi, shuningdek, ommaviy axborot vositalaridagi ma'lumotlarni jismoniy yo'q qilish.

9. Ma'lumotlar bazasi yaxlitligi muammosi. Tranzaktsiyalar va qulflar. Foydalanuvchi ishini sinxronlashtirish.

Butunlik axborot xavfsizligining aspektlaridan biri bo‘lib, ulardan foydalanish imkoniyati – talab qilinadigan axborot xizmatini maqbul narxda olish imkoniyati va maxfiylik – ruxsatsiz o‘qishdan himoyalanishdir.

Ma'lumotlarning yaxlitligini ta'minlash ma'lumotlarni qayta ishlash tizimlarini (DPS) loyihalash va ishlatishdagi eng muhim vazifadir. Butunlik muammosi ma'lumotlar bazasidagi ma'lumotlarning har doim to'g'ri bo'lishini ta'minlashdir." Butunlik - axborotning dolzarbligi va izchilligi, uning yo'q qilinishidan va ruxsat etilmagan o'zgarishlardan xavfsizligi.

Ma'lumotlar bazasining yaxlitligini nazorat qilish uchun ham foydalaniladi tetik mexanizmi. Trigger belgilangan hodisa sodir bo'lganda faollashtiriladigan harakat (qo'shish, o'chirish, yozishni yangilash). Triggerlar ma'lumotlar bazasi sxemasida ko'rsatilgan. Triggerga nisbatan kengroq tushuncha tushunchadir saqlangan protsedura. Saqlangan protseduralar serverda saqlanadigan va bajariladigan dastur mantig'ining qismlarini tavsiflaydi, bu esa unumdorlikni oshiradi.

operatsiyalar. Tranzaksiya - bu ma'lumotlar bazasidagi amallarning to'liq to'plami bo'lib, uni bir mantiqiy integral holatdan ikkinchisiga o'tkazadi. Tranzaktsiyalar ACID (atomlik, izchillik, izolyatsiya, chidamlilik) deb nomlanuvchi talablar to'plamiga bo'ysunadi. Ushbu talablar bitim ta'rifidan kelib chiqadi.

    atomiklik. Tranzaktsiya - bu bajarilgan harakatlar to'plami. Tizim ularning bajarilishini "hammasi yoki hech narsa" tamoyili bo'yicha ta'minlaydi - yoki barcha harakatlar bajariladi, keyin tranzaksiya "belgilanadi"; yoki, agar barcha harakatlarni amalga oshirishning iloji bo'lmasa, masalan, muvaffaqiyatsizliklar bo'lsa, tranzaktsiya "orqaga qaytariladi" va ma'lumotlar bazasi asl holatida qoladi.

    Muvofiqlik. Tranzaktsiya natijasida tizim bir to'g'ri holatdan ikkinchisiga o'tadi deb taxmin qilinadi.

    izolyatsiya. Tranzaksiya davom etayotganda, ma'lumotlar vaqtincha nomuvofiq holatda bo'lishi mumkin. Bunday ma'lumotlar o'zgarishlar tugallanmaguncha (ya'ni, o'zgartirishning og'irligi rasmiy ravishda amalga oshirilgunga qadar) boshqa operatsiyalarga ko'rinmasligi kerak.

    Chidamlilik. Agar bitim tuzilgan bo'lsa, unda uning natijalari bardoshli bo'lishi kerak. Barcha ob'ektlarning holati apparat yoki tizimdagi nosozliklar bo'lsa ham saqlanadi.

Qulflar. Eng mashhur parallellikni boshqarish algoritmlari qulflash mexanizmiga asoslangan. Bloklash, agar ma'lumotlar boshqa foydalanuvchi tomonidan qayta ishlansa, ma'lum operatsiyalarni taqiqlashdir. Bunday sxemada, tranzaksiya ma'lumotlar birligiga kirishga harakat qilganda, bu blokga qulf o'rnatiladi.

Qulflar ziddiyatlarni istisno qiladigan qulf moslik qoidalariga muvofiq qo'llaniladi o'qish-yozish, yozish-o'qish va rekord - rekord.

Agar bir vaqtning o'zida amalga oshirilayotgan tranzaktsiyalar bilan bog'liq blokirovkalar quyidagi qoidaga javob bersa, tranzaksiyani ketma-ketlashtirish kafolatlanadi: “Har qanday tranzaksiya nomidan blokirovka avvaldan chiqarilmaguncha olinmasligi kerak. blokirovka qilishni o'rnating". Bu qoida sifatida tanilgan ikki fazali blokirovka , tranzaktsiya birinchi bosqichdan o'tganligi sababli o'sish, qulflarni qo'lga kiritganda, keyin esa qulflar chiqarilganda qisqarish bosqichi. Bloklash amalga oshirilishi mumkin avtomatik ravishda, va ehtimol foydalanuvchi tomonidan boshqariladi.

Bloklash axborot birliklariga qarab, quyidagilarni ajratish mumkin: blokirovkalash darajalari : ma'lumotlar bazasi, tegishli jadvallar to'plami, jadval, tegishli yozuvlar to'plami, rekord, maydon. Bloklash ob'ektlari sahifa, sahifalar guruhi yoki ma'lumotlar bazasi maydoni bo'lishi mumkin.

Ba'zi tizimlar ta'minlaydi dinamik qulflash sxemasi, unda tranzaktsiya birinchi navbatda sahifa kabi katta ma'lumotni bloklaydi.

Farqlash pessimistik vaoptimistik blokirovka qilish. Pessimistik qulflar boshqa tranzaksiyalarning ma'lumotlarga kirishiga yo'l qo'ymaydi, boshqa tranzaksiya allaqachon ustida ishlamoqda. Optimistik qulflar tranzaktsiyalarni parallel ravishda bajarishga imkon beradi, nizolarni kuzatib boradi va ularning hal etilishini ta'minlaydi.

Foydalanuvchi ishini sinxronlashtirish.Replikatsiya - RDB (tarqatilgan ma'lumotlar bazalari) da qo'llaniladigan texnologiya, bu butun ma'lumotlar bazasining nusxalarini yoki uning qismlarini bir nechta tarmoq tugunlarida qo'llab-quvvatlashni ta'minlaydi. Bir-biri bilan sinxronlashtirilishi mumkin bo'lgan boshqa nusxalar to'plamining a'zosi bo'lgan ma'lumotlar bazasi nusxasi deyiladi replika. Ma'lumotlar bazasining nusxalari odatda ma'lumotlardan foydalaniladigan joylarga yaqin joylashgan. "Replikatsiya" tushunchasining sinonimi sifatida "replikatsiya" atamasi ishlatiladi. Yangilangan yozuvlar va boshqa ob'ektlar uzatiladigan va takroriy ma'lumotlar solishtiriladigan replikalarni yangilash jarayoni deyiladi.sinxronizatsiya . Replikalar o'rtasida ma'lumotlar almashinuvi bir tomonlama yoki ikki tomonlama bo'lishi mumkin. Bundan tashqari, sinxronizator nazorati ostida replikalarni sinxronlashtirish mumkin. Tarqalgan so'rovlarni bajarishda ikki fazali topshiriq protokoli qo'llaniladigan mahalliy taqsimlangan tizimlardan farqli o'laroq, replikatsiya qilingan ma'lumotlar bazalariga ega tizimlar odatda asinxron replikatsiya vositalaridan foydalanadilar.

Hozirgi vaqtda ko'plab taniqli DBMS foydalanuvchilarga replikatsiya imkoniyatlarini taklif qiladi. Ba'zi tizimlar nashriyotdan (noshir, nashr, obunachi) metaforalardan foydalanadi. Ko'paytirilishi mumkin bo'lgan ma'lumotlar to'plami deyiladi nashr.

Zamonaviy veb-ilovalarni ishlab chiqishda versiyalarni boshqarish tizimlaridan foydalanishning afzalliklarini e'tiborsiz qoldirish qiyin. Ishlab chiqilayotgan mahsulotning fayllariga kelsak, biz birinchi tahrirdan boshlab istalgan vaqtda ishlab chiqarishning istalgan bosqichlarini kuzatishimiz mumkin. Bunda bizga yordam beradigan vositalar bugungi kunda ommalashgan, ko'rib chiqiladi yaxshi ohang rivojlanish jarayonida va ko'p hollarda ulardan foydalanmasdan muvaffaqiyatli ishlab chiqarish printsipial jihatdan mumkin emas. Va fayllardagi emas, balki loyiha ma'lumotlar bazasidagi o'zgarishlarni kuzatish kerak bo'lganda bizda qanday imkoniyatlar mavjud? Kesish ostida men haqida ma'lumot almashaman mavjud mablag'lar men buni ko'rib chiqishim kerak edi.

1. PHP SQLDIFF, a.k.a. SQLDiff

Ko'rish uchun PHP skripti to'liq farqlar(tuzilmada ham, ma'lumotlarda ham) ikkita ma'lumotlar bazasining istalgan jadvallari o'rtasida. Asbob hech qanday tarkibni o'z ichiga olmaydi avtomatik sinxronizatsiya struktura yoki ma'lumotlar - faqat vizual ma'lumotlar taqdim etiladi. Yana bir muhim kamchilik - faqat to'g'ridan-to'g'ri kirish mumkin bo'lgan ma'lumotlar bazalariga ulanish imkoniyati (ssh tunnel orqali emas). Sekin yugurish tezligi katta hajmlar ma'lumotlar (yangilik yoki tezlik bilan porlamaydigan nok moduli orqali ishlash). Ushbu skriptni tushunadigan va tushunadigan holatlarda ishlab chiquvchi uchun juda foydali deb hisoblayman vizual taqdimot orasidagi farqlar turli jadvallar- Bor foydalanuvchilar uchun qulay interfeys, tez sozlash. Men ko'proq foydali cho'ntak yordam dasturi sifatida tavsiflayman tez qabul qilish Sinxronizatsiya jarayonlarini avtomatlashtirish uchun ishlatilishi mumkin bo'lgan jiddiy vosita sifatida emas, balki nazariy jihatdan bir xil bo'lishi kerak bo'lgan jadvallarning sinxronizatsiyasini tushunish.

2.LIQUIBASE

Java-da qulay ko'p funktsiyali va foydalanish uchun qulay ma'lumotlar bazasi strukturasi migratori. Men buni Jenkins bilan birgalikda ishlatsam, o'zim uchun ortiqcha deb bilaman.
Misol (host1 - ma'lumotlar bazasi strukturasini nusxalash uchun server; host2 - tuzilmani host1 dan o'tkazish uchun server):

Java -jar liquibase.jar --driver=com.mysql.jdbc.Driver --classpath=mysql-connector-java-5.1.xx-bin.jar --logFile=db.ExampleChangelog.xml --url="jdbc: mysql://host2" --defaultSchemaName=db_name --username=username --password="parol" --referenceUrl=jdbc:mysql://host1 --referenceUsername=username --referencePassword="parol" diffChangeLog > ChangeShangeLog. xml

O'zgarishlar to'plamini hosil qiladi xml formatida, uning keyingi migratsiyasi xost2dagi ma'lumotlar bazasi strukturasini xost1 bilan bir xil holatga keltiradi.

Migratsiyani amalga oshirish:

Java -jar liquibase.jar --driver=com.mysql.jdbc.Driver --classpath=/path/to/classes --changeLogFile=ChangeSet.xml --url="jdbc:mysql://host2" --username =user --password="parol" ko'chiriladi

Migratsiyadan so'ng, o'zgarishlar to'plami bo'shligini yana tekshirish mantiqan.
Bu erda nafaqat jadvallar va maydonlarni sinxronlashtirish, balki indekslar va kalitlar ham mavjud. Saqlangan protseduralar haqida ishonchim komil emas - men buni sinab ko'rmadim.

Changeset boshqa formatlarda ham tuzilishi mumkin - sql, json (faqat xmlda emas). "Va sql-da o'zgarishlar to'plamini shakllantirish boshqa yordamchi dastur vositalarini ko'chirish uchun foydalanilganda foydali bo'ladi.

3. sxemasi

Ma'lumotlar bazasi strukturasini sinxronlashtirish vositasi. Ishlash uchun sizga python va MySQL uchun mos interfeys kerak.
Liquibase bilan sezilarli farqlardan:
- schemasync nafaqat o'zgarishlar to'plamini, balki o'zgarishlarni orqaga qaytarishga imkon beruvchi faylni ham yaratadi (eng muhim va eng qimmatli afzallik, garchi mening fikrimcha, sinxronlashdan oldin zaxira nusxasini yaratish zaruratini bartaraf etmasa ham)
- liquibase sizga nafaqat o'zgarishlar to'plamini olish, balki yordam dasturining o'zi yordamida migratsiyani darhol boshlash imkonini beradi. Ehtimol, qotil xususiyat emas, lekin baribir qulay va foydali

schemasync faqat sql bilan ishlaydi - oraliq xml va analoglari yo'q - men o'zim uchun buning afzalliklari va kamchiliklarini ko'raman.
Juda ixcham sintaksis, minimal sozlamalar. Sharhlar va avtomatik o'sishni sinxronlashtirmaslikka imkon beradi (sozlanishi mumkin) - mutlaq ortiqcha.

Foydalanish misoli:

Schemasync mysql://user: [elektron pochta himoyalangan]:3306/dev_db mysql://user: [elektron pochta himoyalangan]:3306/production_db

Kompyuterdan foydalanganda Intellekt taqsimlangan arxitekturaga ega tizimlarda Serverlar va URMA ma'lumotlar bazalarini sinxronlashtirish kerak. Ma'lumotlar bazasini sinxronlashtirish ma'lumotlarni markaziy (bitta Server yoki URMAda) va taqsimlangan (turli serverlar ma'lumotlar bazalaridan va video kuzatuv tizimining URMA ma'lumotlarini takrorlash) saqlashga imkon beradi. Ma'lumotlar bazasini sinxronlashtirishni ta'minlaydi parallel ish Serverlar va URMA ma'lumotlar bazalari bilan va avtomatik yangilash ular o'zgarganda.

Kompyuter ma'lumotlar bazasi standart Intellekt serverlar va URMA bir-biri bilan sinxronlashtirilmaydi. Odatda kompyuter Intellekt Barcha ma'lumotlar bazalari ma'muriyat serverida joylashgan faqat bitta markazlashtirilgan ma'lumotlar bazasi bilan sinxronlashtiriladigan tarzda tuzilgan.

Eslatma.

Agar bir yoki bir nechta ma'lumotlar bazalari MS Access formatida saqlangan bo'lsa, sinxronizatsiyani o'rnatishdan oldin ma'lumotlar bazalarini MS SQL server formatiga aylantirish kerak.

Ma'lumotlar bazasi sinxronizatsiyasini sozlash uchun Konfiguratsiya dasturiy ta'minot to'plami Intellekt ma'muriy server ma'lumotlar bazasi (yoki boshqa ma'lumotlar bazasi) bilan siz quyidagi amallarni bajarishingiz kerak:

  1. MS SQL Server dasturi ishlayotganligini tekshiring.
  2. Kompyuter o'rnatish katalogining ildizida joylashgan idb.exe yordam dasturini ishga tushiring Intellekt(masalan, C:\Program Files (x86)\Intellect). Idb.exe yordam dasturi dialog oynasi ko'rsatiladi.
  3. Ro'yxatdan Ma'lumot manbasini tanlang: elementni tanlang Sinxron manba.
  4. Belgilash katagi Foydalanish.
  5. Tugmani bosing Sozlang.
  6. Ekranda dialog oynasi paydo bo'ladi. Ma'lumotlar havolasi xususiyatlari. Oynada Ma'lumotlar havolasi xususiyatlari yorlig'iga o'tishingiz kerak Ma'lumot provayderi.
  7. Ro'yxatdan OLE DB provayderlari element tanlanishi kerak SQL Server uchun Microsoft OLE ma'lumotlar bazasi provayderi.
  8. Tugmani bosing Keyinchalik.
  9. Tugmani bosgandan so'ng Keyinchalik yorlig'iga avtomatik ravishda o'tadi Ulanish.
  10. Mos ravishda 1. Server nomini tanlang yoki kiriting: Ushbu oynada siz ro'yxatdan tanlashingiz yoki joriy ma'lumotlar bazasini sinxronlashtirmoqchi bo'lgan ma'lumotlar bazasini saqlaydigan MS SQL server nomini qo'lda kiritishingiz kerak.
  11. Bir guruhda 2. Serverga kirish uchun: turini belgilashingiz va MS SQL serveriga ulanish uchun autentifikatsiya parametrlarini belgilashingiz kerak. MS SQL Serverda autentifikatsiya Windows OS da avtorizatsiya qilingan foydalanuvchi hisobi yoki MS SQL Serverga ulanishni himoya qiluvchi foydalanuvchi nomi (login) va parol orqali amalga oshiriladi.
    MS SQL serverida autentifikatsiya qilish uchun foydalaniladigan usul va parametrlar MS SQL serverini o'rnatish vaqtida o'rnatiladi.
    MS SQL Serverga ulanish uchun foydalanmoqchi bo'lgan autentifikatsiya usuliga qarab siz quyidagi parametrlarni belgilashingiz kerak:
    1. Agar MS SQL serverida autentifikatsiya Windows operatsion tizimida foydalanuvchi hisobi yordamida amalga oshirilgan bo'lsa, siz kalitni o'rniga o'rnatishingiz kerak. buxgalteriya hisobi Windows ma'lumotlari NT. Shu bilan birga, Windows operatsion tizimida MS SQL Server o'rnatilgan va sinxronizatsiyani sozlashni xohlagan ma'lumotlar bazasi saqlanadigan kompyuterda ro'yxatdan o'tgan bo'lishi kerak. qayd yozuvi, bunda foydalanuvchi hozirda sinxronizatsiya sozlanayotgan kompyuterda Windows OS da avtorizatsiya qilingan.
    2. Agar MS SQL serverida autentifikatsiya foydalanuvchi nomi (login) va parol orqali amalga oshirilsa, siz quyidagi amallarni bajarishingiz kerak:
      1. Kalitni holatiga o'rnating quyidagi foydalanuvchi nomi va parol:.
      2. Dalada Foydalanuvchi: MS SQL serveriga ulanish uchun foydalanuvchi nomini (login) kiriting.
      3. MS SQL serveriga kirish imkoni bo'lgan taqdirda parol bilan himoyalangan, belgini olib tashlashingiz kerak Bo'sh parol va dalada Parol ma'lumotlar bazasiga kirish uchun parolni kiriting.
  12. Tugmani bosing Ulanishni tekshiring.
  13. MS SQL serveriga muvaffaqiyatli ulangandan so'ng, xabarli oyna ko'rsatiladi Ulanish sinovi tugallandi.

    Tugmani bosish kerak OK xabar oynasida oynaning avtomatik yopilishiga olib keladi.
  14. Agar MS SQL serverining nomi va/yoki MS SQL serveriga ulanish uchun foydalanilgan autentifikatsiya parametrlari noto'g'ri ko'rsatilgan bo'lsa, ekranda tegishli xabar paydo bo'ladi.

    Xabar oynasini yopish uchun tugmani bosing. OK. Keyinchalik, kiritilgan ma'lumotlarni o'zgartirishingiz va MS SQL serveriga ulanishni qayta tekshirishingiz kerak.
  15. Ro'yxatdan Serverda ma'lumotlar bazasini tanlang joriy ma'lumotlar bazasini sinxronlashtirmoqchi bo'lgan ma'lumotlar bazasi nomini tanlang.
  16. Tugmani bosing OK dialog oynasida Ma'lumotlar havolasi xususiyatlari. Amalga oshirish natijasida bu harakat oyna yopiladi.
  17. Tugmani bosing OK idb.exe yordam dasturi oynasining pastki o'ng burchagida joylashgan.

Bu ma'lumotlar bazasini sinxronlashtirishni sozlashni yakunlaydi.

  • Sergey Savenkov

    qandaydir "oz" sharh ... go'yo qayergadir shoshayotgandek