encyklopedia.run.place

frm

frm – skrót od angielskiego słowa form (formularz) lub nazwa rozszerzenia pliku .frm. Najczęściej spotykane w kontekście MySQL (gdzie pliki .frm opisują strukturę tabel) oraz w środowisku Microsoft Visual Basic (gdzie przechowują definicje graficznych interfejsów użytkownika). Termin pojawia się także w dziedzinie programowania jako ogólne określenie formularzy w aplikacjach.

Historia

Rozszerzenie .frm zostało wprowadzone po raz pierwszy w 1995 roku w wersji MySQL 3.20 jako sposób na przechowywanie metadanych tabel w postaci tekstowej. W 1998 roku firma Microsoft włączyła podobny format do swojego środowiska Visual Basic, gdzie pliki .frm zawierały kod i informacje projektowe interfejsu graficznego.

Zastosowanie w MySQL

  • Każda tabela w bazie danych jest reprezentowana przez trzy pliki: .frm, .MYD (dane) i .MYI (indeksy) w starszych wersjach silnika MyISAM.
  • Plik .frm przechowuje definicję struktury tabeli: nazwy kolumn, typy danych, ograniczenia, klucze główne i indeksy.
  • W nowszych wersjach InnoDB definicje tabel są przechowywane w wewnętrznych słownikach, ale pliki .frm pozostają w systemie w celu zachowania kompatybilności.
  • Pliki te są odczytywane i modyfikowane wyłącznie przez serwer MySQL; ręczna edycja może prowadzić do uszkodzenia bazy.

Zastosowanie w Microsoft Visual Basic

  • Plik .frm w Visual Basic to tekstowy opis formularza graficznego, zawierający zarówno deklaracje kontrolek (przyciski, pola tekstowe, listy) oraz ich właściwości (rozmiar, pozycja, kolory).
  • Kod obsługujący zdarzenia formularza jest przechowywany w powiązanym pliku .bas lub .cls.
  • Pliki .frm można otwierać i edytować w edytorze tekstowym, lecz najczęściej korzysta się z wbudowanego kreatora interfejsu w środowisku Visual Basic.
  • Format ten jest kompatybilny z systemami Windows, a także z niektórymi narzędziami działającymi na Linuxie (np. Wine).

Powiązane formaty plików

W zależności od środowiska, .frm jest częścią szerszych zestawów plików:

  • .MYD i .MYI – pliki danych i indeksów w MySQL (silnik MyISAM).
  • .vb – pliki kodu źródłowego w Visual Basic powiązane z formularzem.
  • .mdb i .accdb – bazy danych Microsoft Access, które mogą bazować na strukturach opisanych w .frm.

Bezpieczeństwo i problemy

Pliki .frm mogą stać się celem ataków, jeśli nie są właściwie chronione:

  • W MySQL nieuprawniony dostęp do katalogu datadir pozwala na odczyt struktury bazy, co może ułatwić dalsze ataki.
  • W Visual Basic niezaszyfrowane pliki .frm mogą ujawnić logikę aplikacji i poufne dane konfiguracyjne.

Rekomenduje się stosowanie uprawnień systemowych oraz szyfrowania plików, gdy przechowują one wrażliwe informacje.

Przykładowy fragment pliku .frm (MySQL)

CREATE TABLE `uzytkownicy` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `login` varchar(50) NOT NULL,
  `haslo` varchar(255) NOT NULL,
  `data_utworzenia` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `login_UNIQUE` (`login`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

Powyższy fragment ilustruje zawartość pliku .frm po odczytaniu i przetworzeniu przez serwer MySQL.

Przykładowy fragment pliku .frm (Visual Basic)

VERSION 5.00
Begin VB.Form Form1 
   Caption         = "Przykładowy formularz"
   ClientHeight    = 3150
   ClientLeft      = 60
   ClientTop       = 345
   ClientWidth     = 4740
   Begin VB.CommandButton Command1 
      Caption         = "OK"
      Height          = 315
      Left            = 2400
      Top             = 2520
      Width           = 945
   End
End
    

Wiersze definiują właściwości okna oraz przycisk OK. Taki plik jest interpretowany przez środowisko Visual Basic podczas kompilacji.

Współczesne alternatywy

W dzisiejszych projektach .frm w MySQL jest stopniowo zastępowany przez formaty bazujące na SQL i metadane przechowywane w systemowych tabelach słownikowych (INFORMATION_SCHEMA). W świecie aplikacji webowych popularne stały się frameworki (np. React, Angular), które generują interfejsy w postaci kodu HTML, CSS i JavaScript, zamiast tradycyjnych plików .frm.

Źródła i dalsza lektura