Struktura lub rekord — to złożony typ danych występujący w wielu językach programowania, grupujący logicznie powiązane ze sobą dane różnego typu w jednym obszarze pamięci. Składowe struktury — pola — są etykietowane, tj. mają swoje unikatowe nazwy; poprzez podanie nazwy otrzymuje się dostęp do danego pola.
Struktury są powszechnie stosowane w programowaniu, pozwalają bowiem w przejrzysty sposób opisywać złożone obiekty. Przykładem struktury może być informacja o książce, której pola będą zawierały: imię i nazwisko autora (typ łańcuchowy), tytuł (typ łańcuchowy), rok wydania (liczba całkowita), liczba stron (liczba całkowita), nazwa wydawnictwa, numer ISBN itp.
W językach z silną typizacją, zanim zostanie stworzona zmienna typu rekordowego, musi zostać zdefiniowany odpowiedni typ opisujący strukturę rekordu; takie typy nazywa się typami rekordowymi lub po prostu rekordami.
Podobną strukturą danych są krotki, w których pola nie są identyfikowane nazwą, lecz indeksem. W odróżnieniu jednak od krotek, dopuszcza się modyfikację pól struktury.