# Datensatz

Ein Datensatz (anhören) ist (beispielsweise nach Mertens) eine Gruppe von inhaltlich zusammenhängenden (zu einem Objekt gehörenden) Datenfeldern, z. B. Artikelnummer und Artikelname. Datensätze entsprechen einer logischen Struktur, die bei der Softwareentwicklung (z. B. im konzeptionellen Schema der Datenmodellierung) festgelegt wurde.
In der Datenverarbeitung werden zu Datensätzen zusammengefasste Daten in Datenbanken oder in Dateien gespeichert. Sie sind Gegenstand der Verarbeitung von Computerprogrammen und werden von diesen erzeugt, gelesen, verändert und gelöscht (siehe CRUD). Bei der Eingabe wird der Inhalt von Datensätzen oft in der Form eines Formulars dargestellt, bei der Ausgabe oder Anzeige auch in Listen­form, ggf. nur mit einem Teil der Datenfelder.
Auch nicht-elektronische Daten können zu Datensätzen zusammengefasst sein, zum Beispiel ist eine Karteikarte in einer Kartei ein Datensatz.
Neben der Bedeutung von „Datensatz“ im engeren Sinn – als Sammlung konkreter Daten (z. B. die Adressdaten von Kunde Müller) – wird der Ausdruck im Kontext der Softwareentwicklung auch als Typbegriff bei der Deklaration von Daten verwendet; Beispiel: Datensatz ‚Adressdaten‘. Abhängig von den dabei angewendeten Methoden, Programmiersprachen etc. werden anstelle von ‚Datensatz‘ auch Termini wie Satz (englisch Record), Entitätstyp, Klasse, Tupel, Struktur, Verbund usw. benutzt. Deren logischer Aufbau wird im Rahmen des Konzeptionellen Schemas der Datenmodellierung festgelegt.
Abgrenzung: Obwohl Daten eigentlich immer als Aneinanderreihung mehrerer Datenelemente auftreten, nennt man nicht alle Erscheinungsformen von Daten ‚Datensatz‘, sondern nur Datengruppierungen, die zu einem bestimmten Objekt gehören und die innerhalb eines Datenbestands identische Strukturen aufweisen. Die Datenfelder ‚Name‘, ‚Adresse‘ und ‚Geburtsdatum‘ könnten also einen Datensatz zu einer Person bilden. Nicht als Datensätze in diesem Sinn gelten zum Beispiel: Fließtexte, Drucker- oder Video-Datenströme, Inhalte von ausführbaren Dateien, Fotodaten oder die Daten von Grafiksoftware.

## Abweichende Bedeutung in der Statistik

Zusammenfassend bezeichnet der Datensatz in der Informatik – wie oben beschrieben – eine eindimensionale, strukturierte Folge von Attributen eines Elements einer übergeordneten Menge (z. B. eine Karteikarte einer Kartei, eine Bestellung einer Datenbank für Bestellungen, eine Zeile einer Adressliste).
Dagegen bezeichnet der Datensatz in der Statistik die Gesamtheit von Daten in einem bestimmten Zusammenhang. Hier ist er also gleichbedeutend mit Datenbestand (ein Satz bzw. eine Sammlung von Daten, auch aus der Übersetzung von Data Set, früher bei IBM für Datei verwendet) – beispielsweise alle in einer statistischen Erhebung ermittelten Daten oder die „Steuersünder-CD“.

## Varianten bei der Speicherung

Im Allgemeinen entspricht ein Datensatz, mit den Ausdrucksmitteln von Programmiersprachen deklariert, dem Datentyp Verbund bzw. Record, ggf. innerhalb eines assoziativen Arrays. Das mathematische Modell eines Datensatzes ist ein Tupel.
Bezüglich der Speicherung von Datensätzen lassen sich zahlreiche Unterscheidungen treffen. Zum Beispiel:
* Speicherung in normalen Dateien: Hier bieten sich Alternativen wie:
** Benutzerdefinierte individuelle Datenformate und -strukturen,
** CSV-Dateien mit Feldtrennzeichen wie Strichpunkt o. ä.,
** XML-Format in der Form <Feldname = Feldinhalt> und mit weiteren strukturbezogenen, textlich formulierten Informationen,
** RDF-Format für Internet-Informationen.
* Speicherung in Datenbanken:
** In relationalen Datenbanken werden Datensätze in Tabellenform gespeichert, wobei ein Datensatz i. d. R. einer Tabellenzeile entspricht.
** Spaltenorientierte Datenbanken speichern nicht alle Datenfelder je Datensatz hintereinander, sondern für jedes Datenfeld die Inhalte aller Datensätze, eine Spalte (mit all ihren Zeilen) steht hier also für 'Datensatz'.
Im Detail ist ‚Datensatz‘ jedoch kein technischer, sondern ein logischer Begriff, für den es zahlreiche technische Erscheinungs- und Implementierungsfomen gibt. Dabei können Datensätze nach den folgenden Merkmalen/Eigenschaften unterschieden werden:
* Allgemeingültigkeit: Verbindlich festgelegte Strukturen und Formate (wie binäre Daten oder Text, Länge, sonstige Regeln), z. B. für bestimmte Softwarelösungen (wie beim DTA-Verfahren) vs. individuell vom Anwender definierte Formate.
* Satz-/Datenfeldlänge: Fixe und einheitliche Länge je Feld vs. variabel lange Felder (z. B. mit Feldtrennzeichen wie bei CSV oder mit Feldlängenangabe); führt entsprechend zu Datensätzen mit fixer oder variabler Länge.
* Verwendete Zeichenkodierung: Nur Textzeichen z. B. im ASCII-Code vs. andere Datentypen in einem Binärcode.
* Feldattribute: Nur Nettodaten vs. weitere Informationen je Feld (wie fett, unterstreichen, Schrifttyp usw., meist nicht sichtbar).
* Datensatzbegrenzung: Satzende-Kennzeichnung vs. feste Satzlänge.
* Homogenität: Einheitliche vs. unterschiedliche Datenarten in derselben Datei, erkennbar z. B. durch ein Datenfeld ‚Satzart‘.
In Anwendungen zur Tabellenkalkulation wird ein Datensatz meist durch eine Zeile, je nach Anordnung alternativ durch eine Spalte repräsentiert. Ein klassisches Beispiel für einen Datensatz ist eine Lochkarte.
Für elektronische Daten gilt: Sie existieren in ihrem Speichermedium als Bit-/Bytefolgen beliebiger Länge. In dieser Datenmenge werden die einzelnen Datensätze und Datenfelder durch meist von der Programmiersprache und/oder der Systemsoftware bereitgestellte Verfahren identifiziert und adressiert und zum Beispiel in Zeilen und Spalten dargestellt.
Logische/physische Datensätze: Auf elektronischen Datenträgern werden in der Regel mehrere Datensätze zu größeren Speichereinheiten zusammengefasst. Solche Einheiten werden je nach Computersystem unterschiedlich bezeichnet, zum Beispiel als ‚Page‘ (Seite, bei vielen Datenbanksystemen) oder als Block (bei konventioneller Speicherung). In einem Computerprogramm sind der Verarbeitung des einzelnen Datensatzes Routinen vorgeschaltet (meist des Betriebssystems oder des DBMS), die das tatsächliche Lesen oder Schreiben auf dem Datenträger aus Optimierungsgründen block-/seitenweise durchführen und den jeweils einzelnen Datensatz innerhalb des Datenblocks iterativ positionieren und zur Verarbeitung im Hauptspeicher bereitstellen.