Басқа ДҚБЖ және Python

sqlite модулі кішігірім және тез деректер қоры үшін керемет мүмкіндіктер береді, дегенмен баяндалудың толықтығы үшін, басқа ДҚБЖ үшін, Python кеңейтілімінің модулдеріне шолу ұсынылады.

Жоғарыда барлық жерде sqlite модулі, оның атауы db-ға өзгеруімен берілген, импортталды. Бұл кездейсоқ жасалмаған. Мәселесінде, DB-API 2.0 қолдайтын мұндай модулдер, басқа ДҚБЖ үшінде бар, және тіпті жалғыз емес. www.python.org DB-API 2.0 сайтындағы ақпаратқа сәйкес – Python үшін үйлесімді модулдер ДҚБЖ немесе ДҚ-на қолжетімділік хаттамаларына келесілері ие:

· zxJDBC. JDBC бойынща қолжетімділік.

· MySQL. ДҚБЖ MySQL үшін.

· mxODBC. ODBC бойынша қолжетімділік, eGenix фирмасымен сатылымда (http://www.egenix.com).

· DCOracle2, cx_Oracle. ДҚБЖ Oracle үшін.

· PyGresQL, psycopg, pyPgSQL. PostgreSQL ДҚБЖ үшін.

· Sybase. Sybase үшін.

· sapdbapi. ДҚБЖ SAP үшін.

· KinterbasDB. ДҚБЖ Firebird үшін (бұл Interbase мұрагері).

· PyADO. Microsoft ActiveX Data Objects-не адаптер (тек Windows бойынша ).

Ескерту:

PostgreSQL ДҚБЖ үшін PyGreSQL-ді емес, psycopg алу керек, себебі, біріншіде параметрлерді execute() әдісіне параметрледі қою кезінде күн және уақыт үшін түрімен кішірек мәселе бар. Сонымен қатар, psycopg жылдамдық және ағындылық үшін (psycopg.threadsafety=2) оңтайландырылған.

Осылайша, осы дәрісте қолданылған мысалда, sqlite орынан мысалы, psycopg қолдануға болады: егер, әрине, тиісті модуль орнатылған болса, онда нәтижесі тура сол болу керек.

Бірақ жалпы жағдайда бір ДҚБЖ-нен басқасына ауысу кезінде сәйкессіздіктер туындауы мүмкін, тіпті DB-API нұсқасының біреуінің қолдауына қарамастан. Мысалы. модулдерде paramstyle өзгешеленуі мүмкін. Бұл жағдайда execute() шақырылымының параметрлерін қайта жасауға тура келеді. Басқа да себептері болуы мүмкін, сондықтан басқа ДҚБЖ-не ауысуын мұқият тексеру қажет.

DB-API интерфейсін тек деректер қоры ғана қолданбайды. Мысалы, fssdb жобасының өңдеушілері файлдық жүйеге DB-API 2.0 интерфейсін тұрғызуға ұмтылуда.

Жеткілікті жақсы теориялық негізіне және тұрақты іске асуына қарамастан, реляциялық модель – қазіргі кезде табысты қолданылатындардың бірі емес. Мысалға, Python-да XML тілі және онымен жұмыс істеу үшін интерфейстер қарастырылған. Көптеген тапсырма үшін XMLмәліметтерінің ағаштүріндегі моделі табиғи болып табылады, және қазіргі таңда зерттеу жүргізілуде, нәтижесінде XML-мен, реляциялық ДҚБЖ сияқты, сондай жеңіл және тұрақты жұмыс істеуге мүмкіндік береді. Python бағдарламалау тілі – осы зерттеулердің полигондарының бірі.

Нақты тапсырманы шеше отырып, бағдарламалық қамтаманы әзірлеуші тапсырманы шешу үшін ең қолайлы амалын таңдау керек. Тиімсіз (осы тапсырма үшін менсе қосалқы тапсырма үшін) деректер моделін таңдай отыра, көбі осы таңдауға келеді деген нұқсанмен. Нәтижесінде, өз табиғаты бойынша басқа модель ретінде елестету оңай, мәліметтерді таңдалған моделде сақтауға және өңдеуге тура келді, көбінесе аса табиғи қолжетімділік құрылымын және сақтауын моделдеу еріксіз. Сонымен, XML-ді реляциялық ДҚ-да сақтауға болады, ал кестелік мәліметтерді – XML-де, дегенмен бұл табиғи емес. Сол себептен қиындық және бағдарламалық өнімнің қателікке ұшырауы ұлғаяды, тіпті егер жоғары сапалы құралдар қолданылғанда да.

Орытынды

Осы дәрісте Python-ның реляциялық деректер қорын басқару жүйесімен байланысу мүмкіндіктері қарастырылды. Python үшін, модулдерді құрастырушылардың барлығы реляциялық деректер қорымен түйісуін ұстануға тиісті, DB-API (нұсқа 2.0) деп аталатын стандарты құрастырылды. Осынын арқасында API қолданбалы бағдарлама коды деректер қорын қолданушы маркаға аз тәуелді болып барады, оны басқа деректер қорын қолданушы құрастырушылар түсіне алады. Нақты түрде DB-API 2.0, деректер қорымен модуль түйісуін, және олардың семантикасын қамтуы керек функция және класс атауларын сипаттайды. Модуль түйісуі деректер қорымен обьект-байланысының классын қамтуы керек және курсор үшін класс – қолданбалы деңгейде ДҚБЖ-мен қатынас арқылы болатын арнайы обьекті.

Мұнда SQLite ДҚБЖ және sqlite-ДҚБЖ түйісу үшін, Python кеңейтіліміне сәйкес модуль қолданылған, себебі ол DB-API 2.0 қолдайды және орнатылуда оңай. Оның көмегімен деректер қорымен жұмыс істеудің негізгі тәсілдері көрсетілді: кестелерді құру және толтыру, іріктеме орныдау және алынған мәліметтердің талдауы.

Дәрістің соңында, Python-бағдарламасына көптеген заманауи ДҚБЖ-мен жұмыс істеуге мүмкіндік беретін, басқа пакеттердің және модулдердің тізімі берілген.

Сілтеме

mxDateTime модулдері және т.б. http://www.lemburg.com/files/python/

SQLite ДҚБЖ http://sqlite.org

SQLite-мен түйісу модулі http://pysqlite.org

11 Дәріс: Көп ағынды есептеулер

Наши рекомендации