Databases Reference
In-Depth Information
Einige SQL-Dialekte erlauben es übrigens auch, die explizite Längenbegrenzung
bei varchar auszulassen. Hier kann man aber - je nach RDBMS - böse Überra-
schungen erleben. Es gibt die folgenden Möglichkeiten:
varchar entspricht einem Text beliebiger Länge (H2).
varchar entspricht varchar(1) (IBM Informix).
Der zweite wichtige Datentyp für Textspalten ist char . Wenn wir ihn zur Definiti-
on unserer Personentabelle nutzen
create table personen(
id int primary key,
name char(20)
)
werden für jeden Datensatz 24 Byte reserviert. Der Plattenplatz wird somit mög-
licherweise nicht optimal genutzt. Das hat zur Folge, dass wir mehr Platz und so-
mit mehr Transporte zwischen der Platte und dem Hauptspeicher benötigen. Die
Vorteile des Typen varchar werden also zu den Nachteilen von char und um-
gekehrt. Wenn wir es mit Texten fester Länge, wie Kürzeln oder Postleitzahlen, zu
tun haben, ist char eine vertretbare Wahl, im Zweifelsfall sollten wir aber den Ty-
pen varchar vorziehen. Tabellen, die intensiv mit char -Spalten arbeiten, findet
man heute oft in Altsystemen: Der Typ varchar hat sich erst Ende der 1990er-
Jahre durchgesetzt.
Neben diesen beiden Typen für Texte kann es - je nach RDBMS - zahlreiche weite-
re geben. So wird bei der Verwendung von char und varchar ein Byte pro Zei-
chen verwendet. Dieser sehr stark begrenzte Zeichensatz reicht für Zeichensätze
wie die chinesischen Kanji-Zeichen nicht aus. Oft werden daher auch Datentypen
mit 16 Bit pro Zeichen angeboten.
Zahlen: In Programmiersprachen wie Java wird zwischen Typen für ganze Zahlen
und solchen für Gleitkommazahlen unterschieden. Neben diesen beiden Klassen,
gibt es in SQL noch die Festkommazahlen. Bei den ganzen Zahlen haben wir -
auch wieder analog zu Java:
small : Für die Darstellung der Zahlen werden zwei Byte verwendet.
integer : Der Typ kann auch mit int abgekürzt werden und benötigt 4 Byte.
bigint : Beim Datentyp int ist bei Zahlen im Bereich von ein paar Milliarden
Schluss. Wenn wir aber in eine Tabelle mit einem künstlichen vom RDBMS
verwalteten Primärschlüssel sehr viele Datensätze einfügen und löschen, kann
es passieren, dass diese Obergrenze erreicht wird. Lücken in den Werten des
Primärschlüssels werden nicht vom RDBMS geschlossen. Wenn wir es also
mit sehr großen Tabellen mit volatilen Inhalten zu tun haben, kann der 8 Byte
Datentyp bigint für den Primärschlüssel die bessere Wahl sein. Ein kurze
Überschlagsrechnung (siehe auch [Kar10]) zeigt indes, dass die Obergrenze
 
Search WWH ::




Custom Search