• 2. MySQL va PostgreSQL arxitekturasi
  • Muhammad Al-Xorazmiy nomidagi Toshkent axborot texnologiyalari universiteti Telekomunikatsiya texnologiyalari fakulteti dbm003 guruh talabalasi Azamat Askarovning Ma’lumotlar Bazasi fanidan mustaqil ishi Tekshirdi




    Download 81,11 Kb.
    bet4/8
    Sana05.12.2023
    Hajmi81,11 Kb.
    #111618
    1   2   3   4   5   6   7   8

    Kontent seriyasi:

    1. MySQL va PostgreSQL ning rivojlanish tarixi


    MySQL tarixi 1979 yilda boshlanadi, uning kelib chiqishida Monty Widenius boshchiligidagi kichik kompaniya bo'lgan. 1996 yilda 3.11 ning birinchi versiyasi Solaris ostida ommaviy litsenziyaga ega bo'lgan. Keyin MySQL boshqasiga ko'chirildi OS, maxsus tijorat litsenziyasi paydo bo'ldi. 2000 yilda Berkeley DB ga o'xshash interfeys qo'shilishi bilan ma'lumotlar bazasi tranzaksiyaga aylandi. Taxminan bir vaqtning o'zida replikatsiya qo'shilgan. 2001-yilda 4.0 versiyasi InnoDB dvigatelini mavjud MyISAM-ga qo'shdi, bu esa keshlash va unumdorlikni oshirishga olib keldi. 2004 yilda 4.1 versiyasi chiqarildi, unda quyi so'rovlar, MyISAM uchun qisman indeksatsiya va unicode paydo bo'ldi. 2005 yilda 5.0 versiyasida saqlangan protseduralar, kursorlar, triggerlar, ko'rinishlar paydo bo'ldi. MySQL-da biznes tendentsiyalari rivojlanmoqda: 2009 yilda MySQL Oracle savdo belgisiga aylandi.
    Postgres hikoyasi 1977 yilda Ingress ma'lumotlar bazasi bilan boshlangan.
    1986 yilda Kaliforniyaning Berkli universitetida u PostgreSQL deb o'zgartirildi.
    1995 yilda postgres ochiq ma'lumotlar bazasiga aylandi. Interaktiv psql paydo bo'ldi.
    1996 yilda Postgres95 nomi PostgreSQL 6.0 versiyasiga o'zgartirildi.
    Postgres butun dunyo bo'ylab bir necha yuz ishlab chiqaruvchilarga ega.

    2. MySQL va PostgreSQL arxitekturasi


    PostgreSQL- yagona saqlash mexanizmiga ega bo'lgan yagona ma'lumotlar bazasi serveri. Postgres mijoz-server modelidan foydalanadi.
    Serverdagi har bir mijoz uchun a yangi jarayon(oqim emas!). Server bunday mijoz jarayonlari bilan ishlash uchun semaforlardan foydalanadi.
    Mijoz so'rovi quyidagi bosqichlardan o'tadi.

    1. Ulanmoq.

    2. Tahlil qilish: so'rovning to'g'riligi tekshiriladi va so'rovlar daraxti yaratiladi. Tahlil qiluvchi asosiy Unix utilitlari yacc va lexga asoslangan.

    3. Qayta yozish: so'rovlar daraxti olinadi va undagi tizim kataloglarida mavjud qoidalar mavjudligi tekshiriladi. Har safar foydalanuvchi so'rovi ma'lumotlar bazasi jadvallariga kiradigan so'rovga qayta yoziladi.

    4. Optimizator: har bir so'rov uchun so'rov rejasi tuziladi, u ijrochiga uzatiladi. Rejaning ma'nosi shundaki, undagi hamma narsa o'tib ketadi mumkin bo'lgan variantlar natijani olish (indekslarni, birlashmalarni va hokazolarni ishlatish kerakmi) va eng tezkor variant tanlanadi.

    5. So'rovning bajarilishi: Ijrochi daraxt bo'ylab rekursiv yuradi va natijani saralash, birlashtirish va hokazolar yordamida oladi va satrlarni qaytaradi. Postgres - ob'ektga aloqador ma'lumotlar bazasi, undagi har bir jadval sinfni ifodalaydi, meros jadvallar o'rtasida amalga oshiriladi. SQL92 va SQL99 standartlari joriy qilingan.

    Tranzaksiya modeli maksimal ishlashni ta'minlaydigan ko'p versiyali parallel boshqaruv (MVCC) asosida qurilgan. Yo'naltiruvchi yaxlitligi asosiy va ikkilamchi kalitlarning mavjudligi bilan ta'minlanadi.
    MySQL ikki qatlamga ega - tashqi sql qatlami va ichki dvigatellar to'plami, ulardan InnoDb dvigateli ko'pincha ishlatiladi, chunki u ACIDni to'liq qo'llab-quvvatlaydi.
    SQL92 standarti joriy etildi.
    Modulli nuqtai nazardan MySQL kodini quyidagi modullarga bo‘lish mumkin.

    1. Serverni ishga tushirish.

    2. Ulanish menejeri.

    3. Oqim menejeri.

    4. Buyruqni ishlovchi.

    5. Autentifikatsiya.

    6. Tahlil qiluvchi.

    7. Optimizator.

    8. Jadval menejeri.

    9. Dvigatellar (MyISAM, InnoDB, MEMORY, Berkeley DB).

    10. Jurnalga yozish.

    11. Replikatsiya.

    12. Tarmoq API.

    13. Asosiy API.

    Modullarning tartibi quyidagicha: birinchidan, variantlarni o'qiydigan birinchi modul yuklanadi buyruq qatori, konfiguratsiya fayllari, xotirani ajratadi, global tuzilmalarni ishga tushiradi, tizim jadvallarini yuklaydi va boshqaruvni ulanish menejeriga o'tkazadi.
    Mijoz bazaga ulanganda boshqaruv tarmoq boshqaruvchisiga o'tkaziladi, u mijoz uchun ipni (jarayon emas!) yaratadi va uning autentifikatsiyasi tekshiriladi.
    Yuqori darajadagi turiga qarab mijoz so'rovlari to'rtinchi modul (dispetcher) tomonidan qayta ishlanadi. So'rovlar 11-modul tomonidan qayd qilinadi. Buyruq tahlil qiluvchiga uzatiladi, kesh tekshiriladi. Bundan tashqari, so'rov optimallashtiruvchi, jadval moduli, replikatsiya moduli va boshqalarga o'tishi mumkin. Natijada, ma'lumotlar ip menejeri orqali mijozga qaytariladi.
    Eng muhim kod sql / mysqld.cc faylida. U 3.22 versiyasidan beri o'zgarmagan asosiy funktsiyalarni o'z ichiga oladi: init_common_variables () init_thread_environment () init_server_components () grant_init () // sql / sql_acl.cc init_slave () // sql / slave.cc () // sql / slave.cc olish_opsiyalari (qo‘shimchalar) check_connection () acl_check_host () // sql / sql_acl.cc create_random_string () // sql / password.cc check_user () // sql / sql_parse.cc mysql_parse () // sql / sql_parse.ccery_com (manddis) () // sql / sql_cache.cc JOIN :: optimallashtirish () // sql / sql_select.cc open_table () // sql / sql_base.cc mysql_update () // sql / sql_update.cc mysql_check_table () //sql_check_table (sql_jadval) .cc
    sql / sql_class.h sarlavhasi asosiy sinflarni belgilaydi: Query_arena, Statement, Security_context, Open_tables_state classes, THD. THD sinfining ob'ekti oqim deskriptori bo'lib, ko'p sonli funktsiyalar uchun argumentdir.

    Download 81,11 Kb.
    1   2   3   4   5   6   7   8




    Download 81,11 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Muhammad Al-Xorazmiy nomidagi Toshkent axborot texnologiyalari universiteti Telekomunikatsiya texnologiyalari fakulteti dbm003 guruh talabalasi Azamat Askarovning Ma’lumotlar Bazasi fanidan mustaqil ishi Tekshirdi

    Download 81,11 Kb.