Physikalisches Datenbank Model

Mit sogenannten Design Tools wie z.B. von Sybase Powerdesigner [www.sybase.com] lassen sich komplette Datenbank Designs grafisch entwerfen.
Aus dem Conceptional Model generieren die Tools dann automatisch entsprechende pysikalischen Modele die dann die entsprechende Datenbanken berücksichtigen.

Das folgende Physikalische Model ging aus dem Conceptional Model des Filmbeispiels in der 3. Normalform hervor.
Es deckt den Sprachumfang von Postgresql ab.

Aus diesem Pysikalischen Model erzeugen die Tools dann automatisiert SQL Statements.
Beispielhaft folgen der SQL CODE für das FIlm Beispiel für MySQL 3.23 und Postgresql (das FK unterstützt).


/*==============================================================*/
/* DBMS name:      MySQL 3.23                                   */

/* Table: REGISSEUR                                             */
/*==============================================================*/
create table if not exists REGISSEUR
(
   REGISSEUR_NAME                 varchar(1024)                  not null,
   KONTONUMMER                    numeric(255,0),
   primary key (REGISSEUR_NAME)
);

/* Table: SCHAUSPIELER                                          */
/*==============================================================*/
create table if not exists SCHAUSPIELER
(
   NAME                           varchar(1024)                  not null,
   ADRESSE                        varchar(1024),
   primary key (NAME)
);

/* Table: STUDIO                                                */
/*==============================================================*/
create table if not exists STUDIO
(
   NAME_STUDIO                    varchar(255)                   not null,
   ADRESSE_STUDIO                 varchar(1024),
   primary key (NAME_STUDIO)
);

/* Table: FILM                                                  */
/*==============================================================*/
create table if not exists FILM
(
   NAME_DES_FILMS                 varchar(1024)                  not null,
   NAME_STUDIO                    varchar(255)                   not null,
   REGISSEUR_NAME                 varchar(1024)                  not null,
   primary key (NAME_DES_FILMS)
);


/* Table: FILM_SCHAUSPIELER                                     */
/*==============================================================*/
create table if not exists FILM_SCHAUSPIELER
(
   NAME_DES_FILMS                 varchar(1024)                  not null,
   NAME                           varchar(1024)                  not null,
   primary key (NAME_DES_FILMS, NAME)
);

     
/* DBMS name:      PostgreSQL 7                                 */

/*==============================================================*/
/* Table: REGISSEUR                                             */

create table REGISSEUR (
    REGISSEUR_NAME       VARCHAR(1024)        not null,
    KONTONUMMER          NUMERIC(255)         null,
    constraint PK_REGISSEUR primary key (REGISSEUR_NAME)
);

/*==============================================================*/
/* Table: SCHAUSPIELER                                          */

create table SCHAUSPIELER (
    NAME                 VARCHAR(1024)        not null,
    ADRESSE              VARCHAR(1024)        null,
    constraint PK_SCHAUSPIELER primary key (NAME)
);

/*==============================================================*/
/* Table: STUDIO                                                */

create table STUDIO (
    NAME_STUDIO          VARCHAR(255)         not null,
    ADRESSE_STUDIO       VARCHAR(1024)        null,
    constraint PK_STUDIO primary key (NAME_STUDIO)
);

/*==============================================================*/
/* Table: FILM                                                  */

create table FILM (
    NAME_DES_FILMS       VARCHAR(1024)        not null,
    NAME_STUDIO          VARCHAR(255)         not null,
    REGISSEUR_NAME       VARCHAR(1024)        not null,
    constraint PK_FILM primary key (NAME_DES_FILMS),
    constraint FK_FILM_WIRD_GEDR_REGISSEU foreign key (REGISSEUR_NAME) 
        references REGISSEUR (REGISSEUR_NAME)
           on delete restrict on update restrict,
    constraint FK_FILM_WIRD_PROD_STUDIO foreign key (NAME_STUDIO)
           references STUDIO (NAME_STUDIO)
           on delete restrict on update restrict
);

/*==============================================================*/
/* Table: FILM_SCHAUSPIELER                                     */

create table FILM_SCHAUSPIELER (
    NAME_DES_FILMS       VARCHAR(1024)        not null,
    NAME                 VARCHAR(1024)        not null,
    constraint PK_FILM_SCHAUSPIELER primary key (NAME_DES_FILMS, NAME),
    constraint FK_FILM_SCH_ENTSTEHEN_FILM foreign key (NAME_DES_FILMS)
           references FILM (NAME_DES_FILMS)
           on delete restrict on update restrict,
    constraint FK_FILM_SCH_ENTSTEHEN_SCHAUSPI foreign key (NAME)
           references SCHAUSPIELER (NAME)
           on delete restrict on update restrict
);
 

 

ER-Model Was sind Indizes in einer Datenbank

 
© 2001 by  tbee / Impressum last update at: 16.05. 2003 20:05:32
url: www.tbee.de/mysql/t3_dritte_physikalisches_model.php