π ΠΠ°ΠΊ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΈΠΏΠΎΠ² Π‘Π£ΠΠ? π»
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
salary DECIMAL(10,2)
);
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SQL Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ:
SELECT * FROM employees;
SQL ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π² Π‘Π£ΠΠ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ JOIN Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°Π±Π»ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΠΈ LIKE Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ WHERE Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
ΠΈ Ρ.Π΄.
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π‘Π£ΠΠ, ΡΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ SQL ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ
ΡΡΠ½ΠΊΡΠΈΡΡ
. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Oracle ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ Π΄ΠΈΠ°Π»Π΅ΠΊΡ SQL, Π° PostgreSQL ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° SQL. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ SQL ΠΎΡΡΠ°ΡΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΠΈΠΏΠΎΠ² Π‘Π£ΠΠ.ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΡΠΈΠ²Π΅Ρ! Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΈΠΏΠΎΠ² Π‘Π£ΠΠ.
Π₯ΠΎΡΠΎΡΠΈΠΌ Π·Π½Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ·ΡΠΊΠΎΠ² Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΡΠΌ Π½Π°Π²ΡΠΊΠΎΠΌ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ . Π‘Π£ΠΠ (ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ) ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ, Ρ ΡΠ°Π½ΠΈΡΡ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π‘Π£ΠΠ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, MySQL, Oracle, PostgreSQL), Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, MongoDB, CouchDB), Π³ΡΠ°ΡΠΎΠ²ΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Neo4j, OrientDB), ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, IBM's Information Management System), ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, db4o) ΠΈ Π΄Ρ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΠΈΠΏΠΎΠ² Π‘Π£ΠΠ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ .
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΠΈΡ ΡΠΈΠΏΠΎΠ² Π‘Π£ΠΠ.
1. Π Π΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠ΅ Π‘Π£ΠΠ
Π Π΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠ΅ Π‘Π£ΠΠ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ MySQL, Oracle ΠΈ PostgreSQL, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ·ΡΠΊ SQL (Structured Query Language) Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
SQL - Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΡΠ·ΡΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²ΡΠ±ΠΎΡΠΊΠ°, Π²ΡΡΠ°Π²ΠΊΠ°, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ SQL, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ "users":
SELECT * FROM users;
Π―Π·ΡΠΊ SQL ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ, ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ, ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
2. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π‘Π£ΠΠ
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π‘Π£ΠΠ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ MongoDB ΠΈ CouchDB, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ. Π§Π°ΡΡΠΎ Π² ΡΠ°ΠΊΠΈΡ Π‘Π£ΠΠ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ JavaScript ΠΈΠ»ΠΈ Python.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ MongoDB ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ Python (PyMongo) ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Python:
import pymongo
# ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
# ΠΡΠ±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ
collection = db["mycollection"]
result = collection.find({ "name": "John" })
for document in result:
print(document)
3. ΠΡΠ°ΡΠΎΠ²ΡΠ΅ Π‘Π£ΠΠ
ΠΡΠ°ΡΠΎΠ²ΡΠ΅ Π‘Π£ΠΠ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Neo4j ΠΈ OrientDB, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π³ΡΠ°ΡΠΎΠ²ΡΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Neo4j ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ·ΡΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ² Cypher:
MATCH (n:Person)-[r:KNOWS]->(m:Person)
WHERE n.name = 'Alice'
RETURN m.name
4. ΠΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π‘Π£ΠΠ
ΠΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π‘Π£ΠΠ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ IBM's Information Management System (IMS), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ . Π ΡΠ»ΡΡΠ°Π΅ IMS ΡΡΠΎ ΡΠ·ΡΠΊ DL/I (Data Language/I).
ΠΡΠΈΠΌΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ DL/I:
READ FILENAME
KEY key
INTO &WORK-AREA
END-READ
5. ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π‘Π£ΠΠ
ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π‘Π£ΠΠ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ db4o, ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ API (application programming interface) Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ API ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Java ΠΈΠ»ΠΈ .NET.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ db4o Π½Π° ΡΠ·ΡΠΊΠ΅ Java ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
import com.db4o.*;
// ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
ObjectContainer db = Db4o.openFile("database.yap");
// ΠΡΠ±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ
Query query = db.query();
query.constrain(User.class);
ObjectSet result = query.execute();
for (User user : result) {
System.out.println(user.getName());
}
// ΠΠ°ΠΊΡΡΡΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
db.close();
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΠΈΡΠΎΠ³Π΅, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΏ Π‘Π£ΠΠ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ. Π Π΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠ΅ Π‘Π£ΠΠ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ SQL, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π‘Π£ΠΠ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ·ΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ JavaScript ΠΈΠ»ΠΈ Python, Π³ΡΠ°ΡΠΎΠ²ΡΠ΅ Π‘Π£ΠΠ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π‘Π£ΠΠ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ·ΡΠΊΠΎΠΌ DL/I, Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π‘Π£ΠΠ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ API Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Java ΠΈΠ»ΠΈ .NET.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΈΠΏΠΎΠ² Π‘Π£ΠΠ. Π£ΡΠΏΠ΅Ρ ΠΎΠ² Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ !
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΅ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ. Π― Π²ΡΠ΅Π³Π΄Π° Π³ΠΎΡΠΎΠ² ΠΏΠΎΠΌΠΎΡΡ!