Schlüsselwerte und -attribute

Die Schlüssel in Datenbanktabellen von CONZEPT 16 dienen dem Zugriff auf die in den Datenbanktabellen enthaltenen Datensätze.

Zu jedem Datensatz wird pro Schlüssel ein Schlüsselwert in der Datenbank abgelegt, um diesen Zugriff zu gewährleisten. Über sogenannte Attribute wird bestimmt wie diese Schlüsselwerte gebildet werden.

Schlüsselwert

Die maximal Länge eines Schlüsselwertes liegt bei 240 Byte. Der Wert setzt sich aus den Werten der einzelnen Schlüsselfelder zusammen.

Beispiele
  •   Int-Feld (4 Byte)
    + Word-Feld (2 Byte)
    = 6 Byte Schlüsselwertlänge
  •   BigInt-Feld (8 Byte)
    + Alpha-Feld mit max. 40 Zeichen
    (0 bis 40 Byte + 1 Byte Terminierungszeichen)
    = 9 bis 49 Byte Schlüsselwertlänge
  •   Logic-Feld (1 Byte)
    + Decimal-Feld (1 bis 31 Byte abhängig vom Wert)
    = 2 bis 32 Byte Schlüsselwertlänge
  •   Float-Wert (8 Byte)
    + Date-Wert (3 Byte)
    + Time-Wert (4 Byte)
    = 15 Byte Schlüsselwertlänge

Ergibt sich aus den Werten der einzelnen Felder ein Wert, der die maximale Schlüsselwertlänge von 240 Byte überschreitet, wird der Schlüsselwert bei 240 Byte abgeschnitten.

Beispiel

  Word-Wert (2 Byte)
+ Alpha-Feld mit max. 1.000 Zeichen
(0 bis 1.000 Byte + 1 Byte Terminierungszeichen)
= 3 bis 1.003 Byte Schlüsselwertlänge,
abgeschnitten bei 240 Byte also nach dem 238. Zeichen des Alpha-Feldes

Sortierung

Aus den Schlüsselwerten ergibt sich die Sortierung der dazugehörigen Datensätze. Datensätze mit größerem Schlüsselwerte folgen Datensätzen mit kleinerem Schlüsselwert.

Über das Schlüsselattribut "eindeutig" kann bestimmt werden, dass jeder Schlüsselwert nur einmal in der Tabelle vorkommen darf. Der erste Schlüssel einer Tabelle hat dieses Attribut automatisch gesetzt. Ist dieses Attribut nicht gesetzt und es exisitieren identische Schlüsselwerte, bestimmt die Datensatz-ID die Reihenfolge dieser Datensätze. Datensätze mit größerer Datensatz-ID folgen Datensätzen mit kleinerer Datensatz-ID. Die Datensatz-ID wird zusätzlich zum Schlüsselwert gespeichert.

Schlüsselfeldattribute

Zur weiteren Bestimmung des Zugriffsverhaltens können bei jedem Schlüsselfeld Attribute gesetzt werden. Folgende Attribute sind möglich:

  • absteigende Sortierung

    Anstatt die Werte von klein nach groß aufsteigend zu sortieren, werden sie mit diesem Attribut in umgekehrter Reihenfolge sortiert; also von groß nach klein absteigend.

    Beispiel
    aufsteigende Sortierung

    a < b < c < d < e

    absteigende Sortierung

    e < d < c < b < a

Für alphanumerische Schlüsselfelder können außerdem weitere Attribute gesetzt werden, die Einfluss auf die Sortierung, die Eindeutigkeit und den Zugriff auf die dazugehörigen Datensätze haben.

Beispiel ohne Wandlung

A < O < S < U < a < o < s < u < Ä < ä < Ö < ö < Ü < ü < ß

Folgende Attribute stehen für alphanumerische Felder zur Verfügung:

  • Groß-/Kleinwandlung

    Alle Kleinbuchstaben von "a" bis "z" und die deutschen Umlaute "ä", "ö" und "ü" werden in Großschreibung in den Schlüsselwert gespeichert. Das hat zur Folge dass die Datensätze unabhängig von der Groß-/Kleinschreibung des Alpha-Feldes sortiert werden.

    Beispiel mit Groß-/Kleinwandlung

    A = a (A) < O = o (O) < S = s (S) < U = u (U) < Ä = ä (Ä) < Ö = ö (Ö) < Ü = ü (Ü) < ß

  • Umlaute in alphabetischer Sortierung

    Dieses Attribut kann nur gesetzt werden, wenn das Attribut "Groß-/Kleinwandlung" gesetzt ist.

    Die deutschen Umlaute "ä", "ö", "ü", und das Eszett "ß" werden in ihrer "Grundform" in den Schlüsselwert gespeichert:

    ä -> ae
    ö -> oe
    ü -> ue
    ß -> ss

    Dadurch werden die Datensätze, deren Alpha-Feld Umlaute oder Eszetts enhalten, alphabetisch sortiert.

    Beispiel mit Umlauten in alphabetischer Sortierung

    A = a (A) < Ä (AE) = ä (AE) < O = o (O) < Ö (OE) = ö (OE) < S = s (S) < ß (SS) < U = u (U) < Ü (UE) = ü (UE)

  • ohne Sonderzeichen

    Dieses Attribut kann nur gesetzt werden, wenn die Attribute "Groß-/Kleinwandlung" und "Umlaute in alphabetischer Sortierung" gesetzt sind.

    Alle Zeichen, die nicht im Bereich von "0" bis "9" oder "A" bis "Z" liegen, werden nicht im Schlüsselwert gespeichert. Das bedeutet, dass eventuell im Alpha-Feld das Datensatzes enhaltene Sonderzeichen wie Kommata, Bindestriche und Leerzeichen für die Sortierung außer Acht gelassen werden.

    Beispiel ohne Sonderzeichen

    "1-2-3 AG" (123AG) = "1 2 3 AG" (123AG) = "123-AG" (123AG)

    Dieses Attribut ist vornehmlich für den Zugriff vorgesehen, wenn die genaue Schreibweise nicht bekannt ist.

  • Soundex

    Dieses Attribut kann nur gesetzt werden, wenn die Attribute "Groß-/Kleinwandlung", "Umlaute in alphabetischer Sortierung" und "ohne Sonderzeichen" gesetzt sind.

    Das Alpha-Feld wird mit Hilfe eines Soundex-Algorithmus als "Klang" des gesprochenes Wortes gespeichert. Mit dem Attribut "Soundex 1" werden folgende Ersetzungen vorgenommen:

    ai -> ei
    ay -> ei
    ch -> h
    chs -> x
    ck -> k
    ie -> i
    j -> i
    ph -> f
    th -> t
    y -> i
    ey -> ei

    Gleiche Buchstaben, die mehrfach hintereinander auftreten, werden auf einen Buchstaben reduziert.

    Beispiel mit Soundex 1

    Mayer (MEIR) = Maier (MEIR) = Meier (MEIR) = Meyer (MEIR)

    Dieses Attribut ist vornehmlich für den Zugriff vorgesehen, wenn die genaue Schreibweise nicht bekannt ist.

    Mit dem Attribut "Soundex 2" werden zusätzlich folgende Ersetzungen vorgenommen:

    v -> f
    d -> t
    b -> p
    sch -> s
    g -> k
    z -> s

    Beispiel mit Soundex 2

    Josef (IOSEF) = Iosev (IOSEF) = Jozeff (IOSEF)

  • Maximale Länge

    Durch die Angabe einer maximalen Länge kann die Länge des Schlüsselwertes limitiert werden, um eventuell folgende Schlüsselfelder noch im Schlüsselwert unterbringen zu können.

    Beispiel

    Alpha-Feld mit max. 400 Zeichen
    (0 bis 400 Byte + 1 Byte Terminierungszeichen)
    + Int-Feld (8 Byte)
    = 9 bis 409 Byte Schlüsselwertlänge,
    abgeschnitten bei 240 Byte also nach dem 240. Zeichen des Alpha-Feldes

    Das Int-Feld ist bei einem Alpha-Feld mit einem Wert mit mehr als 231 Zeichen nur teilweise oder garnicht im Schlüsselwert enthalten.

    Alpha-Feld mit max. 400 Zeichen beschränkt auf 200 Zeichen Schlüsselwertlänge
    (0 bis 200 Byte + 1 Byte Terminierungszeichen)
    + Int-Feld (8 Byte)
    = 9 bis 209 Byte Schlüsselwertlänge

    Durch eine Limitierung der maximalen Schlüsselwertlänge des Alpha-Feldes auf 200 Zeichen, ist gewährleistet, dass das Int-Feld im Schlüsselwert enthalten ist.

Klicken Sie hier, um die Nutzungsbedingungen für unseren Blog zu lesen.

3 Antworten

  1. @Th.Eichele: Wenn die Schlüsselattribute von den Verknüpfungsattributen abweichen, werden u.U. die falschen oder gar keine Datensätze gelesen. In der Regel sollten die Attribute identisch gesetzt werden. Ein Überprüfung können Sie mit den Funktion KeyFldInfo() und LinkFldInfo() realisieren.

    @J. Schmiedel: Ja, die Schlüsselwertlänge ist durch die derzeitige Speicherung in einem Byte limitiert. Für die Prüfung längerer Zeichenketten empfiehlt sich die Speicherung eines Hash-Wertes zu der Zeichenkette. Über diesen Hash-Wert wird dann ein Schlüssel gebildet, statt über die Zeichenkette selbst.
    Sie können den Export Ihrer Daten über eine Prozedur durchführen und darin auch auf gespeicherte Texte zugreifen um diese zu exportieren.

  2. Die Schlüssellänge von 240 ist sicherlich durch C16-Interna gegeben?

    Hätte man eine größere Schlüssellänge, könnte man den Inhalt "großer" Alphafelder(zwischen 256 und 4096 Zeichen) leicht auf Vorhandensein prüfen.

    Ein kleiner Abstecher zu Texten:
    Wäre es nicht möglich Texte als Datenbankfeld zu verwalten
    (wie das C16-intern gelöst wird, kann dem C16-Anwender
    = Entwickler eigentlich egal sein)? Der Verwaltungsaufwand der Textpuffer würde entfallen und der Export der C16-Tabellen wäre transparenter:
    Dann müsste ich nicht jedesmal erklären, warum der Export unser Artikelstammdatei keinen Einkaufs- und Verkaufstext
    ausweist …

  3. was passiert wenn die Attribute von Verknüpfungen nicht mit denen des verknüpften Schlüsselfeld übereinstimmen ?
    gibt es eine Prüfmöglichkeit oder müsste man die ggfs. selbst schreiben ?

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Leave the field below empty!

Wünsche, Fragen oder Feedback sind willkommen:

Nutzungsbedingungen der Kommentarfunktion im Blog

1. Allgemeines

Vectorsoft AG („Anbieter“) stellt für Internetnutzer („Nutzer“) auf der Website
vectorsoft.de einen öffentlichen Blog bereit. Der öffentliche Blog dient dem
Informations- und Gedankenaustausch. Die Nutzer, welche sich mit Beiträgen und
Kommentaren beteiligen, verpflichten sich dazu, die Blog-Nutzungsbedingungen
einzuhalten und tragen die Verantwortung für die Richtigkeit und Angemessenheit
sowie Freiheit von Rechtsverletzungen ihrer Beiträge. Mit Nutzung der
Kommentarfunktion in unserem Blog akzeptieren Sie diese Nutzungsbedingungen.

2. Netiquette

Wir bitten Sie von persönlichen Angriffen und Provokationen aufgrund anderer
Meinungen abzusehen. Bitte argumentieren Sie sachlich und bewegen Sie sich auf
der Basis einer konstruktiven Diskussionskultur. Ihr Kommentar sollte stets im
Zusammenhang mit dem jeweiligen Thema sein, um Ausschweifungen in andere
Themenbereiche zu vermeiden. Das mehrmalige Posten desselben Kommentars
oder mehrerer ähnlicher Kommentare ist nicht erlaubt.

3. Verbot rechtswidriger Inhalte

Mit Absenden Ihres Kommentars bestätigen Sie, dass Sie keine Urheberrechte oder andere Rechte Dritter verletzen. Volksverhetzende, rassistische Äußerungen, Anleitungen zu Straftaten und deren Verherrlichung, Gewaltdarstellungen, pornografische Inhalte und Äußerungen, die Persönlichkeitsrechte verletzen sind untersagt.

4. Keine Werbung

Die Nutzung der Kommentarfunktion ist für kommerzielle oder parteipolitische
Zwecke nicht erlaubt. Werbliche Beiträge aller Art werden von uns umgehend
gelöscht.

5. Angaben zum Namen

Bei der Eingabe Ihres Namens achten Sie auf die zuvor genannten Grundsätze.

6. Quellenangaben

Bitte geben Sie bei der beabsichtigten Veröffentlichung von Zitaten oder Beiträgen
Dritter die jeweiligen Quellen an und erläutern dessen Bezug zum Blogbeitrag.

7. Verstoß gegen die Nutzungsbedingungen

Beiträge, die gegen diese Richtlinie verstoßen werden umgehend gelöscht. Sollten
Sie selbst Verstöße bemerken, so senden Sie uns bitte den Link des betreffenden
Kommentars per E-Mail an . Wir weisen ausdrücklich daraufhin, dass wir einzelne Nutzer bei wiederholten oder schweren Verstößen gegen diese
Nutzungsbedingungen ausschließen werden.

Stand: Sept. 2024

Deine Trial Version - jetzt anfordern!

Teste yeet - unverbindlich und kostenfrei

IHRE EVALUIERUNGSLIZENZ - JETZT ANFORDERN!

TESTEN SIE DIE CONZEPT 16 VOLLVERSION - UNVERBINDLICH und KOSTENFREI

Melden Sie sich bei unserem Newsletter an

Anrede*
     
Zustimmung zur Datenverarbeitung gem. DSGVO*



WordPress Cookie-Hinweis von Real Cookie Banner