Es ist mir irgendwie peinlich, dass ich die Begriffe "Spalte" und "Feld" immer vollständig austauschbar verwendet habe, was in letzter Zeit in einer technischen Diskussion einige Verwirrung stiftete.
Mir wurde jedoch gesagt, dass dies nicht richtig sei, sondern dass es richtig sein sollte (Übersetzen jedes Begriffs in eine Tabellenkalkulation, Ignorieren von Datentypen und all den anderen Dingen, die Datenbanken nützlich machen):
- Datenbankspalte: wie eine Tabellenspalte
- Datenbankeintrag: wie eine Tabellenkalkulationszeile
- Datenbankfeld: wie eine Tabellenzelle (eine bestimmte Spalte einer bestimmten Zeile)
Ist das richtig? Ich hätte schwören können, dass Spalte und Feld austauschbarer sind. Ich war es auf jeden Fall.
Damit wir einer Tabelle keine Felder hinzufügen, sondern einer Tabelle Spalten hinzufügen und Felder nur relevant sind, wenn es um Daten in einem Datensatz geht?
Weitere Gedanken zu Column vs Field?
Bearbeiten: Zur Verdeutlichung ist der aktuelle Kontext MS SQL Server. Mein Hintergrund vor SQL Server war MS Access, was meine Verwendung dieser Begriffe beeinflussen könnte.
quelle
Antworten:
Die relationale Datenbanktheorie schließt die Verwendung des Wortes Feld nicht ein. Dr. EF Codd, der die Reihe von Artikeln verfasst hat, die die theoretische Grundlage für RDBMS bilden, hat den Begriff nie verwendet. Sie können seine wegweisende Arbeit von 1970 über ein relationales Datenmodell für große gemeinsam genutzte Datenbanken lesen, wenn Sie dies überprüfen möchten.
Es werden Begriffe wie Domäne, Tabelle, Attribut, Schlüssel und Tupel verwendet. Ein Grund dafür ist, dass sich seine Arbeiten hauptsächlich mit relationaler Algebra befassten und Codd nicht für wichtig hielt, wie eine bestimmte Implementierung eine Tabelle in einer Datenbank definieren würde. Anbieter würden das später ausarbeiten. Die Menschen müssen auch verstehen, dass sich RDBMS in der Vergangenheit aus vorhandenen hierarchischen Datenbanken und Netzwerkdatenbanken entwickelt haben und dass sich das Innenleben eines RDMBS immer noch mit der Organisation und Speicherung von Daten befassen muss.
Im Allgemeinen Gebrauch, und Sie können dies leicht überprüfen , indem Sie einfach ein bisschen googeln tun, Felder und Spalten sind das Gleiche.
PC-Datenbanken wie DBase, Access und Filemaker verwenden normalerweise "field" anstelle von "column". "Attribut" ist ein weiterer Begriff, der synonym verwendet werden kann.
Hier finden Sie beispielsweise einen Link zum MS Access-Handbuch zum Hinzufügen eines " Felds " zu einer Tabelle. Es ist klar, dass in MS Access ein "Feld" einer "Spalte" entspricht.
Gleiches gilt für Dbase und Filemaker Pro.
Manchmal wird ein bestimmter Wert in einer bestimmten Zeile als "Feld" oder besser als "Feldwert" bezeichnet, aber dies macht die Verwendung von "Feld" nicht erforderlich, wenn auf eine Spalte oder ein Spaltenäquivalent-Konzept verwiesen wird. Dies führt zu größerer Verwirrung, da die Menschen "Feld" seit vielen Jahren für verschiedene Bedeutungen verwenden. In der relationalen Theorie wird ein einzelner Atomwert als "Datum" bezeichnet.
Wenn jemand angibt, dass ein "Feld" ein Wert in einer relationalen Datenbank ist und nicht dasselbe wie eine Spalte, ist dies seine Meinung, da "Feld" nicht Teil der Umgangssprache der relationalen Datenbank ist. Sie sind weder richtig noch falsch. In der gesamten Datenbank wird Feld jedoch häufiger als Spalte verwendet.
Vor diesem Hintergrund müssen Projekte und Teams häufig ein Verständnis dafür entwickeln, wie sie bestimmte Begriffe innerhalb des Projekts verwenden möchten, um Verwirrung zu vermeiden.
Sie irren sich nicht, können sich aber auch einfach der verwendeten Konvention anschließen oder das Wortfeld ganz zugunsten von "column" vermeiden. Bei relationalen Datenbanken sind "Tabelle" und "Spalte" die Bausteine, die in DDL vorhanden sind. Verwenden Sie am besten nur diese Begriffe und vermeiden Sie "Feld", das nicht verwendet oder klar definiert wird.
quelle
Das ältere SQL: 92 bezeichnet
fields
als Komponenten von datetime-Elementen:Die Felder hier sind Jahr, Monat usw., und der Begriff
field
scheint im Rest des Dokuments keine andere Bedeutung zu haben.Der neuere SQL: 2003-Standard hat Folgendes:
und später:
Dieser Kontrast zu der Spalte, die definiert ist als:
Dann später nochmal beim Einführen von Tabellen:
(Hervorhebung von mir). Dies scheint zu unterstützen, was Sie in der Frage geschrieben haben: eine bestimmte Spalte einer bestimmten Zeile .
quelle
Und wie viele Engel können um einen Stecknadelkopf tanzen?
Die Person, die Sie korrigiert hat, könnte selbst korrigiert werden.
Tabelle = Beziehung
Zeile = Tupel
Spalte = Attribut
Domain = Datentyp
Den Wikipedia-Eintrag zu relationalen Datenbanken finden Sie hier .
Ich habe für eine Fluggesellschaft gearbeitet und das Wort "Flug" kann auf drei verschiedene Arten verwendet werden, je nachdem, ob Sie mit Piloten / Flugbegleitern, Ingenieuren oder Marketingmitarbeitern gesprochen haben.
Ingenieure: Ein Start und eine Landung können Test, Reparatur, Training (dh ein Flughafen zurück zum selben Flughafen) oder eine "Etappe" (dh ein Flughafen zum anderen) sein - was "Zivilisten" normalerweise einen Flug nennen würden in "Ich fliege morgen nach Hause"),
Marketing: eine sechsmonatige Serie von "Flügen" (in der Regel in der Saison oder außerhalb der Saison) von / zu einem bestimmten Flughafen im Rahmen eines Vertrags.
Die Spreadsheet-Analogie ist für 99,99% der Fälle mehr als gut genug, auch bei einigermaßen technischer Sprache (es sei denn, man ist Professor für relationale Algebra). Verwendet die Person, die Sie korrigiert hat, das Wort "wen" richtig? 99,99% der Menschen tun das nicht und es spielt wirklich keine Rolle.
quelle
Ich verwende im Allgemeinen "Feld" und "Spalte" austauschbar, in jüngerer Zeit tendenziell "Spalte". Ich habe den Begriff "Feld" allein nicht gehört, um auf "Daten" hinzuweisen. Ich habe auch nicht gehört, dass der Begriff "Attribut" "Feld" oder "Spalte" bedeutet. Eine Spalte / ein Feld hat Attribute, auf die beispielsweise über die FieldInfo-Klasse zugegriffen werden kann.
Ich glaube, "Spalte" ist einfach eine Weiterentwicklung der Terminologie. Desktop-DBs (xBASE, MSAccess) verwenden im Allgemeinen "field". M204 verwendet "Feld". Diese "Feld" -Terminologie wurde in MSOffice xml und andere übernommen. In den Dokumenten für Oracle (ich kann leider keine weiteren Links veröffentlichen) und MSSQL werden "field" und "column" synonym verwendet. Sybase (jetzt ein SAP-Unternehmen) verwendet in seiner Dokumentation überwiegend "Spalte", manchmal aber auch "Feld".
Solange sich Ihre Arbeitsgruppe auf einen Begriff einigt, spielt es keine Rolle, welchen. Es ist ein "Rose by any other name" -Syndrom.
quelle
Mir ist klar, dass dies eine alte Frage ist, aber ich höre sie oft. Mein Verständnis ergibt sich aus der Einbindung unseres Datenteams in unser Entwicklungsteam. Entwickler haben definitiv Felder in Datensätzen, die auf Bildschirmen angezeigt werden, und diese Felder enthalten Daten, die häufig Spalten mit bestimmten Zeilen zugeordnet werden können. In vielen Fällen kann die für den Zugriff auf die Daten verwendete relationale Methode jedoch ändern, was auf einem bestimmten Bildschirm in einem bestimmten Feld angezeigt wird.
I record ist eine Darstellung des aktuellen Wertes, den die Daten liefern. Mit der Zeit können und werden sich diese Werte ändern, so dass sich auch der Datensatz ändert. Die Daten, die den aktuellen Stand und den Stand zu einem bestimmten Zeitpunkt bestätigen, können problemlos in einer Reihe von Tabellen gespeichert werden. Die Beziehungen zwischen den Daten bestimmen die Bedeutungen, aus denen die Aufzeichnung zu einem bestimmten Zeitpunkt besteht.
Die Logik, die die Felder ableitet, kann sich im Laufe der Zeit ändern. Beispielsweise wird eine Mitarbeiterin als Susan Jones angestellt, und sie wurde am 01.12.2010 als Verkäuferin in Geschäft Nr. 101 eingestellt, die an Bill Anderson als Filialleiter berichtet. Da es sich um ein fortschrittliches Unternehmen handelt, wird jedem Mitarbeiter ein Mentor zugewiesen. Susans Mentorin ist Mary Phillips. Mary Phillips ist Filialleiterin, aber sie ist auch Regionalleiterin für das Geschäft, in dem Susan arbeitet. Am 11.10.2011 wurde Susan zur Filialleiterin befördert. Wir wissen nicht, was mit Bill passiert ist, aber Susan ist jetzt die Geschäftsleiterin.
Wir haben eine Tabelle mit Mitarbeitern mit Name, Nummer, Einstellungsdatum, Position und Standort.
Wir haben eine Mentorentabelle mit Mitarbeiternummern für die Mentoren und die Mitarbeiter, die sie betreuen, sowie Daten, die den Beginn und das Ende der Mentorenbeziehung beschreiben.
Wir haben eine Tabelle mit Regionen mit einem Namen für die Region und einer zugewiesenen Managernummer.
Wir haben eine weitere Standorttabelle mit Adresse, Beschreibung, Region und Managernummer.
Auf dem Bildschirm mit den Geschäftsinformationen wird möglicherweise ein Feld für den Geschäftsmanager angezeigt. Der Wert für den Geschäftsmanager ist kein Datenbankfeld, sondern ein berechenbarer Wert, der sich im Laufe der Zeit ändern kann. Auch der Manager einer Person kann sich ändern. Die Daten, die dies unterstützen, werden weiterhin in Spalten gespeichert, aber die Beziehungen zwischen den Spalten haben sich geändert, und wenn sie für einen bestimmten Zweck zusammengestellt werden, wird sie zu einem Feld.
quelle