"āĻ•ā§‹āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄā§‡āĻŸāĻžāĻŦā§‡āĻ¸" āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž

"āĻ•ā§‹āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄā§‡āĻŸāĻžāĻŦā§‡āĻ¸" āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž

āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛, āĻ•āĻŋ āĻ¸āĻšāĻœ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡? āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ - āĻ†āĻŽāĻ°āĻž āĻŸāĻžāĻ‡āĻĒ āĻ•āĻ°āĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻž, āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ•āĻ˛āĻžāĻŽ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ•āĻ°ā§āĻ¨ āĻĨā§‡āĻ•ā§‡, āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ, āĻ•āĻŋāĻ›ā§ āĻļāĻ°ā§āĻ¤ āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ‡ āĻ¸āĻŦ - āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻĄā§‡āĻŸāĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒāĻ•ā§‡āĻŸā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ (āĻĒā§āĻ°āĻžāĻ¯āĻŧ) āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻļā§‡āĻˇā§‡ āĻ¯ā§‡ DBMS āĻ¸ā§‡āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻšā§āĻĄā§‡āĻ° āĻ¨ā§€āĻšā§‡ āĻ›āĻŋāĻ˛ (āĻŦāĻž āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻŽā§‹āĻŸā§‡āĻ“ āĻāĻ•āĻŸāĻŋ āĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāĻ¸ āĻ¨āĻ¯āĻŧ) āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ•ā§‹āĻ¨āĻ“ āĻĄā§‡āĻŸāĻž āĻ‰āĻ¤ā§āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ•ā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ•ā§‹āĻĄā§‡āĻ° āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ•ā§‹āĻŖ āĻĨā§‡āĻ•ā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ (āĻ¯āĻž āĻŦā§‹āĻāĻžāĻ¯āĻŧ - āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ, āĻ•ā§‹āĻĄ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§‹āĻšāĻ¨āĻž, āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ, āĻ…āĻŸā§‹āĻŸā§‡āĻ¸ā§āĻŸ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ‡ āĻ¸āĻŦ)āĨ¤ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĄā§‡āĻŸāĻž, āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻāĻŦāĻ‚ āĻŽāĻžāĻ‡āĻ—ā§āĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡āĻ‡ āĻ¨āĻ¯āĻŧ, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœā§‡āĻ° āĻ¸āĻŽāĻ—ā§āĻ° āĻœā§€āĻŦāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯ā§‹āĻœā§āĻ¯āĨ¤ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻ†āĻŽāĻ°āĻž "āĻ•ā§‹āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄā§‡āĻŸāĻžāĻŦā§‡āĻ¸" āĻāĻ° āĻ˛ā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻĻā§ˆāĻ¨āĻ¨ā§āĻĻāĻŋāĻ¨ āĻ•āĻžāĻœ āĻāĻŦāĻ‚ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻŦāĨ¤

āĻāĻŦāĻ‚ āĻāĻ° āĻĄāĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻž āĻ¯āĻžāĻ• āĻ¸āĻžāĻĒ. "SQL āĻŦāĻ¨āĻžāĻŽ ORM" āĻŸāĻžāĻ‡āĻĒā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¯ā§āĻĻā§āĻ§āĻ—ā§āĻ˛āĻŋ āĻ†āĻŦāĻžāĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°āĻž āĻ—ā§‡āĻ›ā§‡ āĻĒā§āĻ°āĻžāĻ•-āĻĒā§‡āĻŸā§āĻ°āĻŋāĻ¨ āĻ°āĻ¸'.

āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§‚āĻ˛āĻ• āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ‚ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ

ORM āĻ¸āĻŽāĻ°ā§āĻĨāĻ•āĻ°āĻž āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡ āĻ—āĻ¤āĻŋ āĻāĻŦāĻ‚ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§‡āĻ° āĻ¸āĻšāĻœāĻ¤āĻž, DBMS āĻĨā§‡āĻ•ā§‡ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨āĻ¤āĻž āĻāĻŦāĻ‚ āĻ•ā§āĻ˛āĻŋāĻ¨ āĻ•ā§‹āĻĄāĻ•ā§‡ āĻŽā§‚āĻ˛ā§āĻ¯ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…āĻ¨ā§‡āĻ•ā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ•ā§‹āĻĄ (āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ¨āĻŋāĻœā§‡āĻ‡)

āĻāĻŸāĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ‡ āĻŽāĻ¤ āĻ•āĻŋāĻ›ā§ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ ...

@Entity
@Table(name = "stock", catalog = "maindb", uniqueConstraints = {
        @UniqueConstraint(columnNames = "STOCK_NAME"),
        @UniqueConstraint(columnNames = "STOCK_CODE") })
public class Stock implements java.io.Serializable {

    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "STOCK_ID", unique = true, nullable = false)
    public Integer getStockId() {
        return this.stockId;
    }
  ...

āĻŽāĻĄā§‡āĻ˛āĻŸāĻŋ āĻšāĻ¤ā§āĻ° āĻŸā§€āĻ•āĻž āĻĻāĻŋāĻ¯āĻŧā§‡ āĻā§āĻ˛āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻŦāĻ‚ āĻĒāĻ°ā§āĻĻāĻžāĻ° āĻ†āĻĄāĻŧāĻžāĻ˛ā§‡ āĻ•ā§‹āĻĨāĻžāĻ“ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻšāĻ¸ā§€ āĻ“āĻ†āĻ°āĻāĻŽ āĻ•āĻŋāĻ›ā§ āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻ•ā§‹āĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻšāĻžāĻ˛āĻžāĻ¯āĻŧāĨ¤ āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĨā§‡āĻ•ā§‡ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻ›ā§‡ āĻ•āĻŋāĻ˛ā§‹āĻŽāĻŋāĻŸāĻžāĻ°ā§‡āĻ° āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤āĻ¤āĻž āĻ¸āĻš, āĻ¯āĻž āĻ•āĻŋāĻ›ā§ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡ "āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻ˜ā§ƒāĻŖāĻž".

āĻŦā§āĻ¯āĻžāĻ°āĻŋāĻ•ā§‡āĻĄā§‡āĻ° āĻ…āĻ¨ā§āĻ¯ āĻĻāĻŋāĻ•ā§‡, āĻ–āĻžāĻāĻŸāĻŋ "āĻšāĻ¸ā§āĻ¤āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤" āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛-āĻāĻ° āĻ…āĻ¨ā§āĻ—āĻžāĻŽā§€āĻ°āĻž āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ¸ā§āĻ¤āĻ° āĻāĻŦāĻ‚ āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤āĻ¤āĻž āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāĻ¸ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ°āĻ¸ āĻŦā§‡āĻ° āĻ•āĻ°ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¨ā§‹āĻŸ āĻ•āĻ°ā§‡āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, "āĻĄā§‡āĻŸāĻž-āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°āĻŋāĻ•" āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻŦāĻŋāĻļā§‡āĻˇāĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻļāĻŋāĻ•ā§āĻˇāĻŋāĻ¤ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ°āĻž āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻœāĻĄāĻŧāĻŋāĻ¤ āĻĨāĻžāĻ•ā§‡ (āĻ¤āĻžāĻ°āĻž "āĻŽā§ŒāĻ˛āĻŋāĻ•āĻŦāĻžāĻĻā§€"āĻ“ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ°āĻž "āĻŽā§ŒāĻ˛āĻŋāĻ•āĻŦāĻžāĻĻā§€"āĻ“ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ°āĻž "āĻŦā§āĻ¯āĻžāĻ¸āĻĄā§‡āĻ¨āĻžāĻ°" āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ) āĻāĻŦāĻ‚ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ¨āĻž āĻ—āĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ°ā§‡āĻĄāĻŋāĻŽā§‡āĻĄ āĻ­āĻŋāĻ‰ āĻāĻŦāĻ‚ āĻ¸āĻžā§āĻšāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ "āĻŸāĻžāĻ¨" āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻ†āĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ āĻ‰āĻ­āĻ¯āĻŧ āĻœāĻ—āĻ¤ā§‡āĻ° āĻ¸ā§‡āĻ°āĻž āĻĨāĻžāĻ•āĻ¤āĻžāĻŽ? āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻœā§€āĻŦāĻ¨-āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ¨āĻžāĻŽ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ Yesql. āĻ†āĻŽāĻŋ āĻ†āĻŽāĻžāĻ° āĻŦāĻŋāĻ¨āĻžāĻŽā§‚āĻ˛ā§āĻ¯ā§‡ āĻ…āĻ¨ā§āĻŦāĻžāĻĻā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ§āĻžāĻ°āĻŖāĻž āĻĨā§‡āĻ•ā§‡ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨ āĻĻā§‡āĻŦ, āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻ°āĻ“ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻāĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻāĻ–āĻžāĻ¨ā§‡.

Clojure āĻšāĻ˛ DSL ​​āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻ­āĻžāĻˇāĻž, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ SQL āĻ¨āĻŋāĻœā§‡āĻ‡ āĻāĻ•āĻŸāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ DSL, āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ†āĻ° āĻāĻ•āĻŸāĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¨ā§‡āĻ‡āĨ¤ āĻāĻ¸-āĻāĻ•ā§āĻ¸āĻĒā§āĻ°ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤, āĻ¤āĻŦā§‡ āĻ¤āĻžāĻ°āĻž āĻāĻ–āĻžāĻ¨ā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻ•āĻŋāĻ›ā§ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ†āĻŽāĻ°āĻž āĻŦāĻ¨ā§āĻ§āĻ¨ā§€āĻ° āĻ–āĻžāĻ¤āĻŋāĻ°ā§‡ āĻŦāĻ¨ā§āĻ§āĻ¨ā§€ āĻĒāĻžāĻ‡āĨ¤ āĻāĻ•āĻŽāĻ¤ āĻ¨āĻ‡? āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¸ā§‡āĻ‡ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§āĻ¨ āĻ¯āĻ–āĻ¨ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ‰āĻĒāĻ° āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤āĻ¤āĻž āĻĢāĻžāĻāĻ¸ āĻšāĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ˛āĻĄāĻŧāĻžāĻ‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡āĻ¨ (raw-sql)

āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻžāĻ° āĻ•āĻŋ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋā§Ž? āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛āĻ•ā§‡ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ›ā§‡āĻĄāĻŧā§‡ āĻĻāĻŋāĻ¨ - āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛:

-- name: users-by-country
select *
  from users
 where country_code = :country_code

... āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻāĻ‡ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻĒāĻĄāĻŧā§āĻ¨, āĻāĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ•ā§āĻ˛ā§‹āĻœāĻžāĻ° āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°ā§āĻ¨:

(defqueries "some/where/users_by_country.sql"
   {:connection db-spec})

;;; A function with the name `users-by-country` has been created.
;;; Let's use it:
(users-by-country {:country_code "GB"})
;=> ({:name "Kris" :country_code "GB" ...} ...)

"āĻ¨āĻŋāĻœā§‡āĻ‡ āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛, āĻ¨āĻŋāĻœā§‡āĻ‡ āĻ•ā§āĻ˛ā§‹āĻœāĻžāĻ°" āĻ¨ā§€āĻ¤āĻŋ āĻŽā§‡āĻ¨ā§‡ āĻšāĻ˛āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻĒāĻžāĻŦā§‡āĻ¨:

  • āĻ•ā§‹āĻ¨ āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•āĻŸāĻŋāĻ• āĻšāĻŽāĻ• āĻ¨ā§‡āĻ‡āĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ (āĻ…āĻ¨ā§āĻ¯ āĻ¯ā§‡ āĻ•ā§‹āĻ¨ āĻŽāĻ¤) āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄā§‡āĻ° āĻ¸āĻžāĻĨā§‡ 100% āĻ¸āĻ™ā§āĻ—āĻ¤āĻŋāĻĒā§‚āĻ°ā§āĻŖ āĻ¨āĻ¯āĻŧ - āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ Yesql āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨ āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ° āĻ¨āĻ¯āĻŧāĨ¤ āĻ†āĻĒāĻ¨āĻŋ SQL āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯ āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻļāĻŋāĻ•āĻžāĻ°ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻˇā§āĻŸ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¨āĻžāĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•āĻ–āĻ¨āĻ‡ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻž (raw-sql "some('Funky'::SYNTAX)")).
  • āĻ¸ā§‡āĻ°āĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ• āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ• āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻšāĻŽā§ŽāĻ•āĻžāĻ° SQL āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ†āĻ›ā§‡. SQL āĻšāĻŋāĻ¸āĻžāĻŦā§‡ SQL āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ¸āĻšāĻœāĻ­āĻžāĻŦā§‡ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤
  • āĻĻāĻ˛ā§‡āĻ° āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ° DBAs āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° Clojure āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡ āĻ¯ā§‡ SQL āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ¨ āĻ¤āĻž āĻĒāĻĄāĻŧāĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤
  • āĻ¸āĻšāĻœ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŸāĻŋāĻ‰āĻ¨āĻŋāĻ‚. āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¯ā§āĻ•ā§āĻ¤ āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡? āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•ā§āĻ¯ā§‹āĻ¯āĻŧāĻžāĻ°ā§€ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ SQL āĻšāĻ˛ā§‡ āĻāĻŸāĻŋ āĻ•ā§‹āĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¨āĻ¯āĻŧāĨ¤
  • āĻĒā§āĻ°āĻļā§āĻ¨ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤ āĻ¸ā§‡āĻ‡ āĻāĻ•āĻ‡ SQL āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡ āĻŸā§‡āĻ¨ā§‡ āĻ†āĻ¨ā§āĻ¨ āĻāĻŦāĻ‚ āĻĄā§āĻ°āĻĒ āĻ•āĻ°ā§āĻ¨ āĻ•āĻžāĻ°āĻŖ āĻāĻŸāĻŋ āĻ•ā§‡āĻŦāĻ˛ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ°āĻžāĻ¨ā§‹ SQL - āĻļā§āĻ§ā§ āĻāĻŸāĻŋ āĻ­āĻžāĻ— āĻ•āĻ°ā§āĻ¨ā§ˇ

āĻ†āĻŽāĻžāĻ° āĻŽāĻ¤ā§‡, āĻ§āĻžāĻ°āĻŖāĻžāĻŸāĻŋ āĻ–ā§āĻŦ āĻļāĻžāĻ¨ā§āĻ¤ āĻāĻŦāĻ‚ āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻ–ā§āĻŦ āĻ¸āĻšāĻœ, āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ āĻ¯āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ…āĻ¨ā§‡āĻ• āĻ…āĻ°ā§āĻœāĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§€ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ­āĻžāĻˇāĻžāĻ¯āĻŧāĨ¤ āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ¤ā§‡ āĻ“āĻ†āĻ°āĻāĻŽ-āĻāĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻ…āĻ¨ā§āĻ¯ āĻ¸āĻŦ āĻ•āĻŋāĻ›ā§ āĻĨā§‡āĻ•ā§‡ āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻ•ā§‹āĻĄ āĻ†āĻ˛āĻžāĻĻāĻž āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻ°ā§‚āĻĒ āĻĻāĻ°ā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŦāĨ¤

āĻ†āĻ‡āĻĄāĻŋāĻ‡ āĻāĻŦāĻ‚ āĻĄāĻŋāĻŦāĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻžāĻ°

āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĻā§ˆāĻ¨āĻ¨ā§āĻĻāĻŋāĻ¨ āĻ•āĻžāĻœ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•āĨ¤ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ•āĻŋāĻ›ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¸ā§āĻ•āĻŋāĻŽāĻžāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻāĻ° āĻ—āĻ āĻ¨ āĻ…āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ (āĻ•ā§‹āĻ¨ āĻ•āĻ˛āĻžāĻŽ, āĻ•ā§€, āĻ¸ā§‚āĻšāĻ•, āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ)āĨ¤ āĻāĻŦāĻ‚ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ—ā§āĻ°āĻžāĻĢāĻŋāĻ•āĻžāĻ˛ IDE āĻŦāĻž āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ DB-āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻžāĻ° āĻĨā§‡āĻ•ā§‡, āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻ†āĻŽāĻ°āĻž āĻ āĻŋāĻ• āĻāĻ‡ āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ—ā§āĻ˛āĻŋ āĻ†āĻļāĻž āĻ•āĻ°āĻŋāĨ¤ āĻ¯āĻžāĻ¤ā§‡ āĻāĻŸāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹ āĻ†āĻāĻ•āĻž āĻ¨āĻž āĻšāĻ“āĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ†āĻ§āĻž āĻ˜āĻ¨ā§āĻŸāĻž āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻž (āĻŦāĻŋāĻļā§‡āĻˇāĻ¤ āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻ§ā§€āĻ° āĻ¸āĻ‚āĻ¯ā§‹āĻ—ā§‡āĻ° āĻ¸āĻžāĻĨā§‡), āĻāĻŦāĻ‚ āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡, āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¤āĻĨā§āĻ¯āĻŸāĻŋ āĻ¤āĻžāĻœāĻž āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻžāĻ¸āĻ™ā§āĻ—āĻŋāĻ•, āĻāĻŦāĻ‚ āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻ†āĻŦāĻ°ā§āĻœāĻ¨āĻž āĻ¨āĻž. āĻ¤āĻĻā§āĻĒāĻ°āĻŋ, āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ¯āĻ¤ āĻŦā§‡āĻļāĻŋ āĻœāĻŸāĻŋāĻ˛ āĻāĻŦāĻ‚ āĻŦā§ƒāĻšāĻ¤ā§āĻ¤āĻ° āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ¤āĻ¤ āĻŦā§‡āĻļāĻŋ, āĻāĻŸāĻŋ āĻ•āĻ°āĻž āĻ¤āĻ¤ āĻŦā§‡āĻļāĻŋ āĻ•āĻ āĻŋāĻ¨āĨ¤

āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ†āĻŽāĻŋ āĻŽāĻžāĻ‰āĻ¸ āĻĻā§‚āĻ°ā§‡ āĻĢā§‡āĻ˛ā§‡ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ§ā§ āĻ•ā§‹āĻĄ āĻ˛āĻŋāĻ–āĻŋāĨ¤ āĻ§āĻ°āĻž āĻ¯āĻžāĻ• āĻ†āĻĒāĻ¨āĻŋ "āĻāĻ‡āĻšāĻ†āĻ°" āĻ¸ā§āĻ•āĻŋāĻŽāĻžāĻ¤ā§‡ āĻ•ā§‹āĻ¨ āĻŸā§‡āĻŦāĻŋāĻ˛ (āĻāĻŦāĻ‚ āĻ•ā§‹āĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ¸āĻš) āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻž āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— DBMS-āĻ, āĻ¤āĻĨā§āĻ¯_āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻĨā§‡āĻ•ā§‡ āĻāĻ‡ āĻ¸āĻšāĻœ āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•āĻžāĻ™ā§āĻ•ā§āĻˇāĻŋāĻ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ…āĻ°ā§āĻœāĻ¨ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡:

select table_name
     , ...
  from information_schema.tables
 where schema = 'HR'

āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĨā§‡āĻ•ā§‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡, āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ DBMS-āĻāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŦāĻ‚, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, MySQL-āĻāĻ° āĻœāĻ¨ā§āĻ¯, āĻāĻ•āĻ‡ āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ āĻŦāĻ‡ āĻĨā§‡āĻ•ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ‡ DBMS-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

select table_name
     , storage_engine -- ИŅĐŋĐžĐģŅŒĐˇŅƒĐĩĐŧŅ‹Đš "двиĐļĐžĐē" ("MyISAM", "InnoDB" etc)
     , row_format     -- ФОŅ€ĐŧĐ°Ņ‚ ŅŅ‚Ņ€ĐžĐēи ("Fixed", "Dynamic" etc)
     , ...
  from information_schema.tables
 where schema = 'HR'

āĻ“āĻ°āĻžāĻ•āĻ˛ āĻ¤āĻĨā§āĻ¯_āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻœāĻžāĻ¨ā§‡ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ†āĻ›ā§‡ āĻ“āĻ°āĻžāĻ•āĻ˛ āĻŽā§‡āĻŸāĻžāĻĄā§‡āĻŸāĻž, āĻāĻŦāĻ‚ āĻ•ā§‹āĻ¨ āĻŦāĻĄāĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĻā§‡āĻ–āĻž āĻĻā§‡āĻ¯āĻŧ āĻ¨āĻž:

select table_name
     , pct_free       -- МиĐŊиĐŧŅƒĐŧ ŅĐ˛ĐžĐąĐžĐ´ĐŊĐžĐŗĐž ĐŧĐĩŅŅ‚Đ° в ĐąĐģĐžĐēĐĩ Đ´Đ°ĐŊĐŊŅ‹Ņ… (%)
     , pct_used       -- МиĐŊиĐŧŅƒĐŧ иŅĐŋĐžĐģŅŒĐˇŅƒĐĩĐŧĐžĐŗĐž ĐŧĐĩŅŅ‚Đ° в ĐąĐģĐžĐēĐĩ Đ´Đ°ĐŊĐŊŅ‹Ņ… (%)
     , last_analyzed  -- ДаŅ‚Đ° ĐŋĐžŅĐģĐĩĐ´ĐŊĐĩĐŗĐž ŅĐąĐžŅ€Đ° ŅŅ‚Đ°Ņ‚иŅŅ‚иĐēи
     , ...
  from all_tables
 where owner = 'HR'

āĻ•ā§āĻ˛āĻŋāĻ• āĻšāĻžāĻ‰āĻ¸ āĻ•ā§‹āĻ¨ āĻŦā§āĻ¯āĻ¤āĻŋāĻ•ā§āĻ°āĻŽ āĻ¨āĻ¯āĻŧ:

select name
     , engine -- ИŅĐŋĐžĐģŅŒĐˇŅƒĐĩĐŧŅ‹Đš "двиĐļĐžĐē" ("MergeTree", "Dictionary" etc)
     , ...
  from system.tables
 where database = 'HR'

āĻ•ā§āĻ¯āĻžāĻ¸āĻžāĻ¨ā§āĻĄā§āĻ°āĻžāĻ¤ā§‡āĻ“ āĻāĻ•āĻ‡ āĻ°āĻ•āĻŽ āĻ•āĻŋāĻ›ā§ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ (āĻ¯āĻžāĻ¤ā§‡ āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ•āĻ˛āĻžāĻŽ āĻĒāĻ°āĻŋāĻŦāĻžāĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ¸ā§āĻ•āĻŋāĻŽāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ•ā§€āĻ¸ā§āĻĒā§‡āĻ¸ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡):

select columnfamily_name
     , compaction_strategy_class  -- ĐĄŅ‚Ņ€Đ°Ņ‚ĐĩĐŗиŅ ŅĐąĐžŅ€Đēи ĐŧŅƒŅĐžŅ€Đ°
     , gc_grace_seconds           -- ВŅ€ĐĩĐŧŅ ĐļиСĐŊи ĐŧŅƒŅĐžŅ€Đ°
     , ...
  from system.schema_columnfamilies
 where keyspace_name = 'HR'

āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻļā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ†āĻ¸āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ (āĻāĻŽāĻ¨āĻ•āĻŋ āĻŽāĻ™ā§āĻ—ā§‹āĻ¤ā§‡āĻ“ āĻ†āĻ›ā§‡ āĻŦāĻŋāĻļā§‡āĻˇ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš, āĻ¯āĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¤āĻĨā§āĻ¯ āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡)āĨ¤

āĻ…āĻŦāĻļā§āĻ¯āĻ‡, āĻāĻ‡āĻ­āĻžāĻŦā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ•ā§‡āĻŦāĻ˛ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¨āĻ¯āĻŧ, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡ āĻ¯ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¤āĻĨā§āĻ¯ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻ¸āĻŽāĻ¯āĻŧā§‡, āĻ¸āĻĻāĻ¯āĻŧ āĻ˛ā§‹āĻ•ā§‡āĻ°āĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ‡ āĻœāĻžāĻ¤ā§€āĻ¯āĻŧ āĻ•ā§‹āĻĄ āĻ­āĻžāĻ— āĻ•āĻ°ā§‡, āĻ¯ā§‡āĻŽāĻ¨, āĻšāĻžāĻŦāĻ°āĻž āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻŋāĻ°āĻŋāĻœā§‡ "āĻĒā§‹āĻ¸ā§āĻŸāĻ—ā§āĻ°ā§‡āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸āĻ—ā§āĻ˛āĻŋ āĻ¨āĻĨāĻŋāĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻ°ā§āĻ¯āĻžāĻŦāĻ˛ā§€" (āĻ†āĻ‡āĻŦāĻŋ, āĻŦā§‡āĻ¨, āĻœāĻŋāĻŽ) āĻ…āĻŦāĻļā§āĻ¯āĻ‡, āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻĒāĻ°ā§āĻŦāĻ¤āĻŸāĻŋ āĻ†āĻŽāĻžāĻ° āĻŽāĻžāĻĨāĻžāĻ¯āĻŧ āĻ°āĻžāĻ–āĻž āĻāĻŦāĻ‚ āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻŸāĻžāĻ‡āĻĒ āĻ•āĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ†āĻ¨āĻ¨ā§āĻĻā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧ, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ IDE/āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ•āĻŸāĻŋāĻ¤ā§‡ āĻ†āĻŽāĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻ¨āĻŋāĻĒā§‡āĻŸāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŦ-āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ¸ā§‡āĻŸ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ¯āĻž āĻ…āĻŦāĻļāĻŋāĻˇā§āĻŸ āĻĨāĻžāĻ•ā§‡ āĻ¤āĻž āĻšāĻ˛ āĻŸāĻžāĻ‡āĻĒ āĻ•āĻ°āĻž āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸā§‡ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¨āĻžāĻŽāĨ¤

āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¨ā§‡āĻ­āĻŋāĻ—ā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻāĻŦāĻ‚ āĻŦāĻ¸ā§āĻ¤ā§āĻ—ā§āĻ˛āĻŋ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻŸāĻŋ āĻ…āĻ¨ā§‡āĻ• āĻŦā§‡āĻļāĻŋ āĻ¨āĻŽāĻ¨ā§€āĻ¯āĻŧ, āĻ…āĻ¨ā§‡āĻ• āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻžāĻļā§āĻ°āĻ¯āĻŧ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ–āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻĢāĻ°ā§āĻŽāĻŸāĻŋāĻ¤ā§‡ āĻ¸āĻ āĻŋāĻ• āĻ¤āĻĨā§āĻ¯ āĻĒā§‡āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻĒā§‹āĻ¸ā§āĻŸā§‡ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ "āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§‡ āĻāĻ•āĻŸāĻŋ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻ•āĻ°āĻž: IntelliJ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽā§‡ IDE āĻ—ā§āĻ˛āĻŋ āĻ•ā§€ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡").

āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸āĻ™ā§āĻ—ā§‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨

āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻŦāĻ¸ā§āĻ¤ā§āĻ—ā§āĻ˛āĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻāĻŦāĻ‚ āĻ…āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡, āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻ•āĻŋāĻ›ā§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¸ā§‡āĻ›ā§‡āĨ¤ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦā§‡āĻ‡, āĻ•ā§€āĻŦā§‹āĻ°ā§āĻĄ āĻĨā§‡āĻ•ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ†āĻ™ā§āĻ—ā§āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ¨āĻž āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ“āĨ¤

āĻāĻŸāĻŋ āĻ•ā§‹āĻ¨āĻ“ āĻ—ā§‹āĻĒāĻ¨ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ¨āĻ¯āĻŧ āĻ¯ā§‡ āĻ•ā§‡āĻŦāĻ˛ āĻāĻ•āĻŸāĻŋ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡ āĻāĻ•āĻ‡ āĻĻā§‡āĻ–āĻžāĻŦā§‡:

drop table hr.persons

āĻ¤āĻŦā§‡ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡ āĻāĻŸāĻŋ āĻ†āĻ°āĻ“ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻšāĻ¯āĻŧā§‡ āĻ“āĻ ā§‡āĨ¤ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāĻ¸ (āĻ…āĻ¨ā§‡āĻ• āĻ¨ā§‹āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻ¸āĻš) āĻāĻ• āĻŦāĻž āĻ…āĻ¨ā§āĻ¯ āĻ†āĻ•āĻžāĻ°ā§‡ "āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ¤ā§ˆāĻ°āĻŋ" āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻ° āĻŽā§‚āĻ˛ āĻ…āĻ‚āĻļāĻŸāĻŋ āĻāĻŽāĻ¨āĻ•āĻŋ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ (āĻ¨āĻžāĻŽ, āĻ•āĻ˛āĻžāĻŽā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž, āĻĄā§‡āĻŸāĻž āĻŸāĻžāĻ‡āĻĒ), āĻ¤āĻŦā§‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¨āĻžāĻŸāĻ•ā§€āĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ DBMS āĻāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĨ¤ āĻ†āĻŽāĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻ˛ āĻ“āĻ°āĻžāĻ•āĻ˛ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ā§‡ "āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨" āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° "āĻ¨āĻ—ā§āĻ¨" BNF āĻ†āĻ›ā§‡ 31 āĻĒā§ƒāĻˇā§āĻ āĻž āĻĻāĻ–āĻ˛. āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāĻ¸āĻ—ā§āĻ˛āĻŋāĻ° āĻ†āĻ°āĻ“ āĻļāĻžāĻ˛ā§€āĻ¨ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻŦā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§‡āĻ•āĻŸāĻŋāĻ¤ā§‡ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§‡āĻ• āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ…āĻ¨āĻ¨ā§āĻ¯ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ (postgres, āĻŽāĻžāĻ‡āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛, āĻ¤ā§‡āĻ˛āĻžāĻĒā§‹āĻ•āĻž, Cassandra) āĻāĻŸāĻŋ āĻ…āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻ¯ā§‡ āĻ…āĻ¨ā§āĻ¯ āĻ†āĻ‡āĻĄāĻŋāĻ‡ (āĻŦāĻŋāĻļā§‡āĻˇāĻ¤ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻŦāĻœāĻ¨ā§€āĻ¨ āĻāĻ•āĻŸāĻŋ) āĻĨā§‡āĻ•ā§‡ āĻ•ā§‹āĻ¨ āĻ—ā§āĻ°āĻžāĻĢāĻŋāĻ•āĻžāĻ˛ "āĻ‰āĻ‡āĻœāĻžāĻ°ā§āĻĄ" āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻ•āĻ­āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻŦā§‡, āĻāĻŦāĻ‚ āĻāĻŽāĻ¨āĻ•āĻŋ āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻšā§ƒāĻĻāĻ¯āĻŧā§‡āĻ° āĻ…āĻœā§āĻžāĻžāĻ¨āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĻāĻ°ā§āĻļāĻ¨ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡, āĻāĻ•āĻŸāĻŋ āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻāĻŦāĻ‚ āĻ¸āĻŽāĻ¯āĻŧāĻŽāĻ¤ āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻŦāĻ•ā§āĻ¤āĻŦā§āĻ¯ āĻ›āĻ• āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ° āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸āĻšāĻœā§‡āĻ‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻŦāĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡, āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĄā§‡āĻŸāĻžāĻ¤ā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸āĻ•ā§‡ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯, āĻ¸āĻ°ā§āĻŦā§‹āĻ¤ā§āĻ¤āĻŽ āĻāĻŦāĻ‚ āĻ¯āĻ¤āĻŸāĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻ†āĻ°āĻžāĻŽāĻĻāĻžāĻ¯āĻŧāĻ• āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻŦā§‡āĨ¤

āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻ…āĻ¨ā§‡āĻ• DBMS-āĻāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ DBMS-āĻ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻ¤āĻĻā§āĻĒāĻ°āĻŋ, āĻ†āĻŽāĻ°āĻž āĻ•ā§‡āĻŦāĻ˛ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āĻ‡ āĻ¨āĻ¯āĻŧ, āĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāĻ¸ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž "āĻšāĻ¤ā§āĻ¯āĻž" āĻ•āĻ°āĻ¤ā§‡, āĻ•āĻŋāĻ›ā§ āĻŽā§‡āĻŽāĻ°āĻŋ āĻāĻ˛āĻžāĻ•āĻž āĻ–āĻžāĻ˛āĻŋ āĻ•āĻ°āĻ¤ā§‡, āĻŸā§āĻ°ā§‡āĻ¸āĻŋāĻ‚ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°āĻ¤ā§‡, "āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻĄāĻŧāĻžāĻ°" āĻŽā§‹āĻĄā§‡ āĻ¸ā§āĻ¯ā§āĻ‡āĻš āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻ…āĻ¨ā§‡āĻ• āĻ•āĻŋāĻ›ā§āĨ¤

āĻāĻŦāĻžāĻ° āĻāĻ•āĻŸā§ āĻ†āĻāĻ•āĻž āĻ¯āĻžāĻ•

āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻšāĻ˛ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻ›āĻŦāĻŋāĻ¤ā§‡ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ—āĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–āĻžāĨ¤ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ—ā§āĻ°āĻžāĻĢāĻŋāĻ•āĻžāĻ˛ IDE, āĻ†āĻ˛āĻžāĻĻāĻž "āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨" āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋ, āĻŦāĻŋāĻļā§‡āĻˇāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ—ā§āĻ°āĻžāĻĢāĻŋāĻ•āĻžāĻ˛ āĻŸā§āĻ˛ āĻāĻŦāĻ‚ āĻŽāĻĄā§‡āĻ˛āĻžāĻ°āĻ°āĻž āĻāĻŸāĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ¤āĻžāĻ°āĻž āĻ†āĻĒāĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻŋāĻ›ā§ āĻ†āĻāĻ•āĻŦā§‡ "āĻ¯āĻ¤āĻŸāĻž āĻ¤āĻžāĻ°āĻž āĻĒāĻžāĻ°ā§‡" āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋāĻ•ā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻŦāĻž āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡āĻ° āĻšā§‡āĻ•āĻŦāĻ•ā§āĻ¸ā§‡āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§‡ āĻ•āĻŋāĻ›ā§āĻŸāĻž āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

āĻ¤āĻŦā§‡ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻ†āĻ°āĻ“ āĻ¸āĻšāĻœ, āĻ†āĻ°āĻ“ āĻ¨āĻŽāĻ¨ā§€āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻŽāĻžāĻ°ā§āĻœāĻŋāĻ¤ āĻāĻŦāĻ‚ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ•ā§‹āĻĄā§‡āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§‡ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻœāĻŸāĻŋāĻ˛āĻ¤āĻžāĻ° āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻŦā§‡āĻļ āĻ•āĻŋāĻ›ā§ āĻŦāĻŋāĻļā§‡āĻˇāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻŽāĻžāĻ°ā§āĻ•āĻ†āĻĒ āĻ­āĻžāĻˇāĻž (DOT, GraphML āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ) āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤āĻ•āĻ°āĻŖ (GraphViz, PlantUML, Mermaid) āĻ¯āĻž āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻĒāĻĄāĻŧāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ . āĻ“āĻ¯āĻŧā§‡āĻ˛, āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻœāĻžāĻ¨āĻŋ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¤āĻĨā§āĻ¯ āĻĒā§‡āĻ¤ā§‡.

PlantUML āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻŸāĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻ•ā§‡āĻŽāĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¤āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻāĻ–āĻžāĻ¨ā§‡ PostgreSQL āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄā§‡āĻŽā§‹ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ (āĻŦāĻžāĻŽ āĻĻāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻ•ā§‹āĻ¯āĻŧā§‡āĻ°āĻŋ āĻ¯āĻž PlantUML-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ¨āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŦā§‡ āĻāĻŦāĻ‚ āĻĄāĻžāĻ¨āĻĻāĻŋāĻ•ā§‡ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡):

"āĻ•ā§‹āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄā§‡āĻŸāĻžāĻŦā§‡āĻ¸" āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž

select '@startuml'||chr(10)||'hide methods'||chr(10)||'hide stereotypes' union all
select distinct ccu.table_name || ' --|> ' ||
       tc.table_name as val
  from table_constraints as tc
  join key_column_usage as kcu
    on tc.constraint_name = kcu.constraint_name
  join constraint_column_usage as ccu
    on ccu.constraint_name = tc.constraint_name
 where tc.constraint_type = 'FOREIGN KEY'
   and tc.table_name ~ '.*' union all
select '@enduml'

āĻāĻŦāĻ‚ āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸā§ āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻžāĻ°āĻĒāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ PlantUML āĻāĻ° āĻœāĻ¨ā§āĻ¯ ER āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ ER āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻ…āĻ¨ā§āĻ°ā§‚āĻĒ āĻ•āĻŋāĻ›ā§ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻ•ā§āĻ¯ā§‹āĻ¯āĻŧāĻžāĻ°ā§€ āĻāĻ•āĻŸā§ āĻŦā§‡āĻļāĻŋ āĻœāĻŸāĻŋāĻ˛

-- ШаĐŋĐēĐ°
select '@startuml
        !define Table(name,desc) class name as "desc" << (T,#FFAAAA) >>
        !define primary_key(x) <b>x</b>
        !define unique(x) <color:green>x</color>
        !define not_null(x) <u>x</u>
        hide methods
        hide stereotypes'
 union all
-- ĐĸĐ°ĐąĐģиŅ†Ņ‹
select format('Table(%s, "%s n information about %s") {'||chr(10), table_name, table_name, table_name) ||
       (select string_agg(column_name || ' ' || upper(udt_name), chr(10))
          from information_schema.columns
         where table_schema = 'public'
           and table_name = t.table_name) || chr(10) || '}'
  from information_schema.tables t
 where table_schema = 'public'
 union all
-- ХвŅĐˇĐ¸ ĐŧĐĩĐļĐ´Ņƒ Ņ‚Đ°ĐąĐģиŅ†Đ°Đŧи
select distinct ccu.table_name || ' "1" --> "0..N" ' || tc.table_name || format(' : "A %s may haven many %s"', ccu.table_name, tc.table_name)
  from information_schema.table_constraints as tc
  join information_schema.key_column_usage as kcu on tc.constraint_name = kcu.constraint_name
  join information_schema.constraint_column_usage as ccu on ccu.constraint_name = tc.constraint_name
 where tc.constraint_type = 'FOREIGN KEY'
   and ccu.constraint_schema = 'public'
   and tc.table_name ~ '.*'
 union all
-- ПодваĐģ
select '@enduml'

"āĻ•ā§‹āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄā§‡āĻŸāĻžāĻŦā§‡āĻ¸" āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ˜āĻ¨āĻŋāĻˇā§āĻ āĻ­āĻžāĻŦā§‡ āĻ¤āĻžāĻ•āĻžāĻ¨, āĻšā§āĻĄā§‡āĻ° āĻ¨āĻŋāĻšā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ­āĻŋāĻœā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻŸā§āĻ˛āĻ“ āĻāĻ•āĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻļā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ¸āĻ¤ā§āĻ¯, āĻāĻ‡ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ—āĻ­ā§€āĻ°āĻ­āĻžāĻŦā§‡ āĻšāĻ¯āĻŧ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ•ā§‹āĻĄā§‡ "āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻĄ" āĻāĻŦāĻ‚ āĻŦā§‹āĻāĻž āĻ•āĻ āĻŋāĻ¨, āĻ¤āĻžāĻĻā§‡āĻ° āĻ•ā§‹āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ¨āĻž.

āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻāĻŦāĻ‚ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ

āĻšāĻ˛ā§āĻ¨ āĻāĻ•āĻŸāĻŋ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡ āĻœāĻŸāĻŋāĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻāĻ—āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ‡ - āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖāĨ¤ āĻ†āĻŽāĻžāĻ° āĻŽāĻ¨ā§‡ āĻĒāĻĄāĻŧā§‡ "āĻ†āĻŽāĻžāĻ° āĻāĻ• āĻŦāĻ¨ā§āĻ§ā§" āĻ†āĻŽāĻžāĻ•ā§‡ āĻŦāĻ˛ā§‡āĻ›āĻŋāĻ˛ā§‡āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻ¸āĻ¤ā§āĻ¯ āĻ˜āĻŸāĻ¨āĻžāĨ¤ āĻ…āĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻļāĻ•ā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§€ āĻĄāĻŋāĻŦāĻŋāĻ āĻŦāĻžāĻ¸ āĻ•āĻ°āĻ¤ā§‡āĻ¨, āĻāĻŦāĻ‚ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ•āĻ¯āĻŧā§‡āĻ•āĻœāĻ¨ āĻ¤āĻžāĻ•ā§‡ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤āĻ­āĻžāĻŦā§‡ āĻšāĻŋāĻ¨āĻ¤ā§‡āĻ¨, āĻŦāĻž āĻ•āĻ–āĻ¨āĻ“ āĻ¤āĻžāĻ•ā§‡ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤āĻ­āĻžāĻŦā§‡ āĻĻā§‡āĻ–ā§‡āĻ›āĻŋāĻ˛ā§‡āĻ¨ (āĻ¯āĻĻāĻŋāĻ“, āĻ—ā§āĻœāĻŦ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡, āĻ¤āĻŋāĻ¨āĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻŦāĻŋāĻ˛ā§āĻĄāĻŋāĻ‚āĻ¯āĻŧā§‡ āĻ•ā§‹āĻĨāĻžāĻ“ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛ā§‡āĻ¨)āĨ¤ āĻ˜āĻ¨ā§āĻŸāĻž "X" āĻ, āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻŦāĻĄāĻŧ āĻ–ā§āĻšāĻ°āĻž āĻŦāĻŋāĻ•ā§āĻ°ā§‡āĻ¤āĻžāĻ° āĻĒāĻĄāĻžāĻ•āĻļāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻŸāĻŋ āĻ†āĻŦāĻžāĻ° "āĻ–āĻžāĻ°āĻžāĻĒ" āĻšāĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡, āĻ¤āĻ–āĻ¨ āĻ¤āĻŋāĻ¨āĻŋ āĻ¨āĻŋāĻƒāĻļāĻŦā§āĻĻā§‡ āĻ“āĻ°āĻžāĻ•āĻ˛ āĻāĻ¨ā§āĻŸāĻžāĻ°āĻĒā§āĻ°āĻžāĻ‡āĻœ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻ—ā§āĻ°āĻžāĻĢā§‡āĻ° āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¨āĻļāĻŸ āĻĒāĻžāĻ āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ā§‡āĻ¨, āĻ¯āĻžāĻ° āĻ‰āĻĒāĻ° āĻ¤āĻŋāĻ¨āĻŋ "āĻŦā§‹āĻ§āĻ—āĻŽā§āĻ¯āĻ¤āĻžāĻ°" āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ˛ āĻŽāĻžāĻ°ā§āĻ•āĻžāĻ° āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ—ā§āĻ°ā§āĻ¤āĻ° āĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻžāĻŦāĻ§āĻžāĻ¨ā§‡ āĻšāĻžāĻ‡āĻ˛āĻžāĻ‡āĻŸ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛ā§‡āĻ¨ ( āĻāĻŸāĻŋ, āĻšāĻžāĻ˛āĻ•āĻžāĻ­āĻžāĻŦā§‡ āĻŦāĻ˛āĻ¤ā§‡ āĻ—ā§‡āĻ˛ā§‡, āĻ–ā§āĻŦ āĻŦā§‡āĻļāĻŋ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡āĻ¨āĻŋ)āĨ¤ āĻāĻŦāĻ‚ āĻāĻ‡ "āĻĢāĻŸā§‹ āĻ•āĻžāĻ°ā§āĻĄ" āĻāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ†āĻŽāĻžāĻ•ā§‡ āĻšāĻŋāĻ•āĻŋāĻ¤ā§āĻ¸āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡, āĻŽā§‚āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨ (āĻļāĻŦā§āĻĻā§‡āĻ° āĻ‰āĻ­āĻ¯āĻŧ āĻ…āĻ°ā§āĻĨā§‡āĻ‡) āĻāĻ¨ā§āĻŸāĻžāĻ°āĻĒā§āĻ°āĻžāĻ‡āĻœ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻžāĻ°ā§‡ āĻ•āĻžāĻ°āĻ“ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ›āĻŋāĻ˛ āĻ¨āĻž, āĻ•āĻžāĻ°āĻŖ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻŸāĻŋ āĻœāĻŸāĻŋāĻ˛ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛, āĻšāĻ āĻžā§Ž "āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻ°āĻž āĻ•āĻŋāĻ›ā§āĻ¤ā§‡ āĻšā§‹āĻāĻšāĻŸ āĻ–āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ­ā§‡āĻ™ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤" āĻ…āĻ¤āĻāĻŦ, āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž "āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡" āĻŦā§āĻ°ā§‡āĻ•āĻ—ā§āĻ˛āĻŋāĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻŦāĻ‚ āĻ•āĻžāĻ°āĻŖ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻš āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻ…āĻĻā§‚āĻ° āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡ āĻĄāĻŋāĻŦāĻŋāĻ āĻĨā§‡āĻ•ā§‡ āĻ­āĻ¯āĻŧāĻ™ā§āĻ•āĻ° āĻšāĻŋāĻ āĻŋ āĻ¨āĻž āĻ†āĻ¸ā§‡, āĻ¤āĻŦā§‡ āĻ¸āĻŦāĻžāĻ‡ āĻ¸ā§āĻŦāĻ¸ā§āĻ¤āĻŋāĻ° āĻ¨āĻŋāĻƒāĻļā§āĻŦāĻžāĻ¸ āĻĢā§‡āĻ˛āĻŦā§‡ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ¯āĻžāĻŦā§‡ (āĻ¨āĻ¤ā§āĻ¨ āĻšāĻŋāĻ āĻŋ āĻ¨āĻž āĻšāĻ“āĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤)āĨ¤

āĻ¤āĻŦā§‡ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋ āĻ†āĻ°āĻ“ āĻŽāĻœāĻžāĻĻāĻžāĻ° āĻāĻŦāĻ‚ āĻŦāĻ¨ā§āĻ§ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĻ­āĻžāĻŦā§‡, āĻ¸āĻŦāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸āĻ¯ā§‹āĻ—ā§āĻ¯ āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāĻšā§āĻ›āĨ¤ āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻāĻ° āĻŽā§ŒāĻ˛āĻŋāĻ• āĻ…āĻ‚āĻļ, āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¸āĻ‚āĻ¯ā§‹āĻœāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ (āĻ¯āĻž āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§‡āĻ• āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ…āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§€āĻ¯āĻŧ)āĨ¤ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāĻ¸ āĻ¤āĻžāĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻāĻŦāĻ‚ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¤āĻĨā§āĻ¯ āĻļā§‡āĻ¯āĻŧāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻŦāĻžāĻ§ā§‡ āĻāĻŦāĻ‚ āĻāĻ•ā§‡āĻŦāĻžāĻ°ā§‡ āĻŦāĻŋāĻ¨āĻžāĻŽā§‚āĻ˛ā§āĻ¯ā§‡āĨ¤ āĻāĻ•āĻ‡ "āĻ°āĻ•ā§āĻ¤āĻžāĻ•ā§āĻ¤" āĻ“āĻ°āĻžāĻ•āĻ˛ āĻĄāĻŋāĻŦāĻŋāĻ¤ā§‡, āĻ•āĻžāĻ°ā§āĻ¯āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ­āĻŋāĻ‰ āĻĨā§‡āĻ•ā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻŦāĻ‚ āĻ¸ā§‡āĻļāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡ āĻŦāĻžāĻĢāĻžāĻ° āĻ•ā§āĻ¯āĻžāĻļā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻĄāĻŋāĻŦāĻŋāĻ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ, āĻŦāĻŋāĻ­āĻžāĻ— "āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚")āĨ¤ Postgresql āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ­āĻŋāĻ‰āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ—ā§āĻšā§āĻ› āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ, āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ—ā§āĻ˛āĻŋ āĻ¯ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻĄāĻŋāĻŦāĻŋāĻāĻ° āĻĻā§ˆāĻ¨āĻ¨ā§āĻĻāĻŋāĻ¨ āĻœā§€āĻŦāĻ¨ā§‡ āĻ…āĻĒāĻ°āĻŋāĻšāĻžāĻ°ā§āĻ¯, āĻ¯ā§‡āĻŽāĻ¨ pg_stat_activity, pg_stat_database, pg_stat_bgwriter. MySQL āĻāĻ° āĻāĻŽāĻ¨āĻ•āĻŋ āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž_āĻ¸ā§āĻ•āĻŋāĻŽāĻž. A In Mongo āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšā§‡ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĄā§‡āĻŸāĻž āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡ system.profile.

āĻāĻ‡āĻ­āĻžāĻŦā§‡, āĻ•āĻŋāĻ›ā§ āĻ§āĻ°āĻŖā§‡āĻ° āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻ¸āĻ‚āĻ—ā§āĻ°āĻžāĻšāĻ• (āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻĢ, āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•āĻŦāĻŋāĻŸ, āĻ¸āĻ‚āĻ—ā§ƒāĻšā§€āĻ¤) āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¸āĻœā§āĻœāĻŋāĻ¤ āĻ¯āĻž āĻ•āĻžāĻ¸ā§āĻŸāĻŽ sql āĻĒā§āĻ°āĻļā§āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻāĻ‡ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ (āĻ‡āĻ¨āĻĢā§āĻ˛āĻžāĻ•ā§āĻ¸āĻĄāĻŋāĻŦāĻŋ, āĻ‡āĻ˛āĻžāĻ¸ā§āĻŸāĻŋāĻ•āĻ¸āĻžāĻ°ā§āĻš, āĻŸāĻžāĻ‡āĻŽāĻ¸ā§āĻ•ā§‡āĻ˛āĻĄāĻŦāĻŋ) āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻœā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœāĻžāĻ° (āĻ—ā§āĻ°āĻžāĻĢāĻžāĻ¨āĻž, āĻ•āĻŋāĻŦāĻžāĻ¨āĻž), āĻ†āĻĒāĻ¨āĻŋ āĻŽā§‹āĻŸāĻžāĻŽā§āĻŸāĻŋ āĻ¸āĻšāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŽāĻ¨ā§€āĻ¯āĻŧ āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¯āĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ-āĻŦā§āĻ¯āĻžāĻĒā§€ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ˜āĻ¨āĻŋāĻˇā§āĻ āĻ­āĻžāĻŦā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻŦā§‡ (āĻĒā§āĻ°āĻžāĻĒā§āĻ¤, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĨā§‡āĻ•ā§‡, OS āĻĨā§‡āĻ•ā§‡, āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ)āĨ¤ āĻ¯ā§‡āĻŽāĻ¨, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻŸāĻŋ pgwatch2 āĻ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž InfluxDB + Grafana āĻ¸āĻ‚āĻŽāĻŋāĻļā§āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ­āĻŋāĻ‰āĻ¤ā§‡ āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻ¯āĻž āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻĒā§āĻ°āĻļā§āĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨.

āĻŽā§‹āĻŸā§‡

āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻ•ā§‹āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ•ā§€ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¤āĻžāĻ° āĻāĻŸāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ†āĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ• āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĨ¤ āĻ†āĻŽāĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻ°ā§‹ āĻ…āĻ¨ā§‡āĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻ˛āĻŋāĻ–ā§āĻ¨. āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻ•ā§€āĻ­āĻžāĻŦā§‡ (āĻāĻŦāĻ‚ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĻ­āĻžāĻŦā§‡ āĻ•ā§‡āĻ¨) āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻĒāĻ°ā§‡āĻ° āĻŦāĻžāĻ° āĻāĻŸāĻŋāĻ•ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻŦāĨ¤

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨