ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ Π½Π°ΠΏΠ΅ΡΠ΅Π΄, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠ°ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. ΠΡΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ, ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΡΡΡΠΌ. ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π½Π°ΡΠ½ΠΈΡΠ΅ Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ *first_call_ptr, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π²Π½ΡΡΡΡΡ 1 ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ ΡΡΠ½ΠΊΡΠΈΡ Π·Π½Π°Π΅Ρ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠΈΡΠΊ Ρ Π½Π°ΡΠ°Π»Π° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΡΠ·ΠΎΠ²Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ°Π²Π½Π° 0 ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΏΠΎΠΈΡΠΊ ΡΠ»Π΅Π΄ΠΎΠΌ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ.
ΠΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΠΎΠΈΡΠΊ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΊΠ°Π·Π°Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ½ΠΎΠ²Π° Π²ΡΠ·Π²Π°ΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ *first_call_ptr, ΡΠ°Π²Π½ΡΠΌ true, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°.
ΠΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΡΠ°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΡΠΎ ΡΠΊΡΡΠ²Π°Π΅Ρ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ Π·Π°ΡΠΈΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ°.
ΠΡΠ»ΠΈ ΠΈΡΠΊΠΎΠΌΡΠΉ ΡΠ΅ΠΊΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» null, Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠΈΡΠ°ΡΡΡΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΠΌΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ°.
cdc_entry search_cdc_entry(const char *cd_catalog_ptr,
int *first_call_ptr) {
static int local_first_call = 1;
cdc_entry entry_to_return;
datum local_data_datum;
static datum local_key_datum; /* ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅,
Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ static */
memset(&entry_to_return, '\0', sizeof(entry_to_return));
14. ΠΠ°ΠΊ Π²ΡΠ΅Π³Π΄Π°, Π½Π°ΡΠ½ΠΈΡΠ΅ Ρ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΠΌΡΡΠ» ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ:
if (!cdc_dbm_ptr || !cdt_dbm_ptr) return (entry_to_return);
if (!cd_catalog_ptr || !first_call_ptr) return (entry_to_return);
if (strlen(cd_catalog_ptr) >= CAT_CAT_LEN) return (entry_to_return);
/* ΠΠ°ΡΠΈΡΠ° ΠΎΡ ΠΏΡΠΎΠΏΡΡΠΊΠ° Π²ΡΠ·ΠΎΠ²Π° Ρ *first_call_ptr, ΡΠ°Π²Π½ΡΠΌ true */
if (local_first_call) {
local_first_call = 0;
*first_call_ptr = 1;
}
15. ΠΡΠ»ΠΈ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ»Π° Π²ΡΠ·Π²Π°Π½Π° Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ *first_call_ptr, ΡΠ°Π²Π½ΡΠΌ true, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ (ΠΈΠ»ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ Π½Π°ΡΠ°ΡΡ) ΠΏΠΎΠΈΡΠΊ ΠΎΡ Π½Π°ΡΠ°Π»Π° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠ»ΠΈ *first_call_ptr Π½Π΅ ΡΠ°Π²Π΅Π½ true, ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΊΠ»ΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ :
if (*first_call_ptr) {
*first_call_ptr = 0;
local_key_datum = dbm_firstkey(cdc_dbm_ptr);
} else {
local_key_datum = dbm_nextkey(cdc_dbm_ptr);
}
do {
if (local_key_datum.dptr != NULL) {
/* ΠΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΡΠ» Π½Π°ΠΉΠ΄Π΅Π½ */
local_data_datum = dbm_fetch(cdc_dhm_ptr, local_key_datum);
if (local_data_datum.dptr) {
memcpy(&entry_to_return, (char*)local_data_datum.dptr, local_data_datum, dsize);
16. Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ, Π²Ρ ΠΎΠ΄ΠΈΡ Π»ΠΈ ΡΡΡΠΎΠΊΠ° ΠΏΠΎΠΈΡΠΊΠ° Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°.
/* ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π²Ρ ΠΎΠ΄ΠΈΡ Π»ΠΈ ΡΡΡΠΎΠΊΠ° Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ */
if (!strstr(entry_to_return.catalog, cd_catalog_ptr)) {
memset(&entry_to_return, '\0', sizeof(entry_to_return));
local_key_datum = dbm_nextkey(cdc_dbm_ptr);
}
}
}
} while (local_key_datum.dptr && local_data_datum.dptr &&
(entry_to_return.catalog[0] == '\0'));
return (entry_to_return);
} /* search_cdc_entry */
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π³ΠΎΡΠΎΠ²Ρ ΡΠΎΠ±ΡΠ°ΡΡ Π²ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ make-ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Π° ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ³Π»ΡΠ±Π»ΡΠΉΡΠ΅ΡΡ Π² Π½Π΅Π³ΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅. Π Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ Π½Π°Π±Π΅ΡΠΈΡΠ΅ Π΅Π³ΠΎ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΊΠ°ΠΊ Makefile.
all: application
INCLUDE=/usr/include/gdbm LIBS=gdbm
# Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Π²Π°ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ
# ΡΡΡΠΎΠΊΡ, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π΄Π°Π»Π΅Π΅
# LIBS= -lgdbm_compat -lgdbm
CFIAGS=
app_ui.ΠΎ: app_ui.Ρ cd_data.h
gcc $(CFLAGS) -c app_ui.c
access.ΠΎ: access.Ρ cd_data.h
gcc $(CFLAGS) -I$(INCLUDE) -c access.Ρ
application: app_ui.o access.ΠΎ
gcc $(CFLAGS) -o application app_ui.o access.ΠΎ -l$(LIBS)
clean:
rm -f application *.o
nodbmfiles:
rm -f *.dir *.pag
ΠΠ»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ- Π΄ΠΈΡΠΊΠΎΠ² Π½Π°Π±Π΅ΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
$ make
ΠΡΠ»ΠΈ Π²ΡΠ΅ ΠΏΡΠΎΠΉΠ΄Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» application Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
Π Π΅Π·ΡΠΌΠ΅
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π²Ρ ΡΠ·Π½Π°Π»ΠΈ ΠΎ ΡΡΠ΅Ρ Π°ΡΠΏΠ΅ΠΊΡΠ°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ. Π‘Π½Π°ΡΠ°Π»Π° Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ Π² ΠΠ‘ Linux, ΠΈ ΡΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡ Π² ΠΏΡΠΎΡΡΠΎΡΠ΅ Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π² Π½Π΅Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΎΠ½Π° Π·Π°ΡΠΈΡΠ°Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡ ΠΏΠΎΠΏΡΡΠΎΠΊ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΈ ΠΊ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ. Π‘Π½Π°ΡΠ°Π»Π° Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΠΏΡΠΎΡΡΠΎΠΉ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΠΎΠΉ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° ΠΈ Π·Π°ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ ΡΠ°ΠΉΠ»Π°, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ. ΠΠ°Π»Π΅Π΅ Π²Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ dbm ΠΈ Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΎΡΠ΅Π½Ρ Π³ΠΈΠ±ΠΊΠΎΠΌΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ² dbm ΠΊΠ°ΠΊ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠΎΠ².
ΠΠ»Π°Π²Π° 8
MySQL
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΠ·ΡΡΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΏΡΠΎΡΡΠΎΠΉ, Π½ΠΎ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ dbm, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌΡ ΡΡΠ΅Π΄ΡΡΠ²Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ: Π‘Π£Π ΠΠ ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (Relational Database Management System, RDBMS).
ΠΠ²Π° ΡΠ°ΠΌΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π‘Π£Π ΠΠ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ β ΡΡΠΎ PostgreSQL ΠΈ MySQL, Ρ ΠΎΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ . ΠΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ Π‘Π£Π ΠΠ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Oracle, Sybase ΠΈ DB2, Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Ρ ΠΈ ΠΌΠΎΠ³ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ . Π Π°Π±ΠΎΡΠ°ΡΡΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΠ‘ Windows ΡΠΈΡΡΠ΅ΠΌΠ° Microsoft SQL Server β Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π½Π° ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠ½ΠΊΠ΅ Π‘Π£ΠΠ. Π£ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² Π΅ΡΡΡ ΡΠ²ΠΎΠΈ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°, Π½ΠΎ Ρ ΡΡΠ΅ΡΠΎΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π°Π²ΡΠΎΡΡ ΠΊΠ½ΠΈΠ³ΠΈ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠ»ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π° Π‘Π£Π ΠΠ MySQL.
ΠΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ MySQL Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ ΠΊ 1984 Π³., Π° ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ ΠΏΠΎΠΊΡΠΎΠ²ΠΈΡΠ΅Π»ΡΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ MySQL ΠΠ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π»Π΅Ρ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π‘Π£Π ΠΠ MySQL β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΡΠ»ΠΎΠ²ΠΈΡ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΠΎ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² MySQL ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ° GNU (GPL), Π΅ΡΡΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°, ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. Π‘Π»Π΅Π΄ΡΠ΅Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π½Π° Web-ΡΠ°ΠΉΡΠ΅ MySQL (www.mysql.com) ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡ MySQL ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π²Π°ΡΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π° ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ MySQL Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ GPL Π΄Π»Ρ Π²Π°Ρ Π½Π΅ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ, ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΊΡΠΏΠ°ΡΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΊ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΡΠ½ΠΎΠΉ Π‘Π£Π ΠΠ PostgreSQL (Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠ½ΠΈΠ³ΠΈ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ PostgreSQL Π±ΡΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΡΡΡΠΎΠ³ΠΈΠΌΠΈ). ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° Web-ΡΠ°ΠΉΡΠ΅ www.postgresql.org.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ PostgreSQL Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π² Π½Π°ΡΠ΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅: Neil Matthew. Beginning Databases with PostgreSQL: From Novice to Professional. Second Edition. β Apress, 2005. (ΠΡΡΡΡΡ H. ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ PostgreSQL: ΠΎΡ Π½ΠΎΠ²ΠΈΡΠΊΠ° Π΄ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Π°. ΠΡΠΎΡΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅).
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΠΌΡ:
β‘ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° MySQL;
β‘ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ MySQL;
β‘ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ MySQL;
β‘ API Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ MySQL;
β‘ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ CD-Π΄ΠΈΡΠΊΠΎΠ².
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠ°ΠΊΠΎΠΉ Π±Ρ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΈΡΡΠ΅ΠΌΡ Linux Π²Ρ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»ΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ MySQL, Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΈ Π³ΠΎΡΠΎΠ²Π°Ρ ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Red Hat, SUSE ΠΈ Ubuntu Π΅ΡΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ ΡΡΠΈΡ ΠΠ‘. ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΌΡΠΉ Π»Π΅Π³ΠΊΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Π±ΡΡΡΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° MySQL. ΠΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΌ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅ Π½Π΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° MySQL ΠΈΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΌΡΠΉ ΡΠ²Π΅ΠΆΠΈΠΉ Π²ΡΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Ρ Web-ΡΠ°ΠΉΡΠ° MySQL.
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ MySQL.
ΠΠ°ΠΊΠ΅ΡΡ MySQL
ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π²Π°ΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π½ΡΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ MySQL ΠΈΠ· ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΠ· ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ±ΠΎΡΠΊΡ Standard ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ (community edition). ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π² Π½Π΅Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΠ°Ρ ΠΈ Debug. ΠΠ°ΠΊΠ΅Ρ Max ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π΅ΠΎΠ±ΡΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ°Π·Π²ΠΈΡΡΡ ΡΡΠ΅Π΄ΡΡΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΠΊΠ΅ΡΡ Debug ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ; ΠΊ ΡΡΠ°ΡΡΡΡ, Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠ° Π½Π° ΡΡΠΎΠ»Ρ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅.