Баса ДБЖ жне 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 Дріс: Кп аынды есептеулер