www.Gerhard-Raabe.de
  Datenbanken: Namenskonvention
 
Beschreibung: Ein praxiserprobter Vorschlag zur Vergabe von Objektnamen in relationalen Datenbanken.
 
Einleitung: Eine stringent eingehaltene Namenskonvention für Datenbankobjekte sollte in jedem Projekt eine Selbstverständlichkeit sein. Sicherlich gibt es unzählig viele Möglichkeiten eine entsprechende Namenskonvention zu vereinbaren und ganz sicher ist keine die einzig Wahre. Eine Namenskonvention sollte aber den Anforderungen ihrer individuellen Anwendung angepaßt sein. Somit soll die hier vorgestellte Namenskonvention auch nur ein Ausgangspunkt für eine individuelle Weiterentwicklung sein.

Folgende Anforderungen sollen soll die hier vorgestellte Namenskonvention erfüllen:
  • Objektnamen (insbesondere Spaltennamen) sollen über die gesamte Datenbank hin eindeutig sein.
  • Die Zugehörigkeiten von Objekten zu ihren "besitzenden" Objekten (z.B. Spalten zu Tabellen) soll erkennbar sein.
  • Der Objektname, der bei einigen Datenbanken noch auf 32 Zeichen begrenzt ist, soll neben einen "sprechenden" Namen auch möglichst viel über die "Art" des Objekts aussagen.
  • Und nicht zuletzt soll das System leicht zu handhaben sein.
 
Allgemeines: Alle Namen werden einheitlich in Kleinbuchstaben geschrieben.
 
Tabellen- und
Viewbezeichnungen:
Die Tabellennamen (bzw. Viewnamen) bestehen aus einem Zeichen für die Tabellenart, gefolgt von einem 3-stelligem Prefix und einer durch ein Unterstrich abgetrennter Klartextbeschreibung. Darüberhinaus können spezielle Tabellen auch noch einen durch einen Unterstrich getrennten Postfix, der Auskunft über die Datenart gibt, haben:


 
apre_name_post

a  : 
t  =  Tabelle
v  =  View
h  =  History-Tabelle
a  =  Archive-Tabelle
 
pre  :  Eindeutiger Prefix, bestehend aus 3 Buchstaben. Dieser Prefix wird den Spaltennamen vorangestellt, um hierüber die Spaltennamen eindeutig zu halten. Der Prefix an sich muß daher über alle Tabellen eindeutig sein
 
name  :  Name, der den Inhalt der Tabelle bezeichnet (Wörter durch '_' getrennt)
Bei Assign-Tabelle (n:m-Beziehungen) wird der Name aus den beiden Prefix der verbundenen Tabellen, getrennt mit "_", gebildet.
 
(post)  : 
assign  =  Assign-Tabelle (n:m-Beziehungen)
dim  =  Dimensionstabellen eines STAR-Schemas
value  =  Wertetabellen eines STAR-Schemas
interface  =  Interfacetabellen
import  =  Importtabellen
type  =  Typendefinitionen
class  =  Klasendefinitionen

 

Beispiele:   tuse_user     Eine Tabelle mit User-Informationen
  tper_user_permissions     Eine Tabelle mit User-Berechtigungen
  tcud_customer_dim     Eine Dimensionstabelle mit Kundendaten
  tupa_use_per_assign     Eine Assigntabelle zwischen User- und Berechtigungen-Tabelle
  vrda_reportdate     Eine View mit Reportdatum
 
Spaltenbezeichnungen
(Tabellen):
Den Spaltennamen wird der 3-stellige Tabellen-Prefix (gefolgt von einem Unterstricht) vorangestellt. Desweiteren sind bestimmte Spaltennamen bestimmten Inhalten zugeordnet:


 
pre_id  :  ID's
Datentyp  :  int
 
pre_label  :  Labels (in der Regel in einer Tabelle eindeutig)
Datentyp  :  varchar(16)
varchar(32)
varchar(64)
varchar(128)
 
pre_description  :  Allgemeine Beschreibungen
Datentyp  :  varchar(64)
varchar(128)
varchar(256)
 
pre_date  :  Datumsfeld
Datentyp  :  date (datetime)
 
pre_datetime  :  Datumsfeld mit Zeitanteil
Datentyp  :  datetime

 

Beziehen sich Spalten einer Tabelle (Forgein Keys) auf andere Spalten anderer Tabellen, dann wird dem Original-Spaltennamen der Prefix der Tabelle zugeordnet. So kann sofort die Referenztabelle an dem Spaltennamen erkannt werden.

Beispiel:  
 tupa_use_per_assign      Eine Assigntabelle zwischen User- (tuse_user) und Berechtigungen-Tabelle (tper_user_permissions)
 upa_use_id       int      Referenz auf Spalte use_id in Tabelle tuse_user
 upa_per_id       int      Referenz auf Spalte per_id in Tabelle tper_user_permissions
 
Spaltenbezeichnungen
(Views):
Views bekommen ihren eigenen dreistelligen Prefix. Den Spaltennamen der Views wird dieser Prefix, getrennt durch ein "_" vorangestellt. Somit setzt sich der Spaltenname einer View zusammen aus dem Prefix der View, dem Prefix der Quelltabelle und dem Klartextnamen:


 
create view
    vpre_ViewName
as select
    pre_pre_ColName as pre_ColName
from
    tpre_TableName

pre  :  Prefix der View
 
pre  :  Prefix der Tabelle

 

Beispiel:   create view
      vusp_user_permissions
  as select
      use_name as usp_use_name,
      per_permission as usp_per_permission
  from
      tuse_user,
      tupa_use_per_assign, // Assigntabelle
      tper_user_permissions
  where
      upa_use_id = use_id and
      upa_per_id = per_id
 
Indexe: Der Name für Indexe auf einzelne Spalten besteht aus dem Prefix 'idx_' und dem Spaltenname:


 
create unique index
    idx_pre_ColName
on
    tpre_TableName (pre_ColName)

 

Beispiel:   Der Name des Index auf der Spalte use_name lautet idx_use_name

Besteht der Index aus mehreren Spalten, wird der Name aus den Prefix 'idx_', dem Tabellen-Prefix und einer Aufzählung der Spaltennamen (getrennt durch '_') zusammengesetzt:


 
create unique index
    idx_pre_ColName1_ColName2_ColName3
on
    tpre_TableName (pre_ColName1, pre_ColName2, pre_ColName3)

 

Wird die Aufzählung der Namen zu lang oder hat der Index eine spezielle Bedeutung, dann kann anstelle der Aufzählung der Spaltennamen auch eine logischer Name vergeben werden.
 
Foreign Keys: Foreign-Key-Namen setzen sich aus dem Prefix 'fky_' und dem Spaltennamen der 'Child-Tabelle' zusammen.


 
alter table
    tpre_ChildTableName
add constraint
    fky_ColName
foreign key (
    pre_ChildColName)
references
    tpre_ParentTableName (
        pre_ParentColName)

 

Beispiel:   alter table
    tupa_use_per_assign
add constraint
    fky_upa_use_id
foreign key (
    upa_use_id)
references
    tuse_user (
        use_id)
 
Stored Procedures:
...
452387 Besucher - seit dem 01.02.2005 - 00:00:00 - 5 Besucher online © 2004-2015 by Gerhard Raabe ##, ## ### #### - ##:##:##