erDiagram

  PUBLICBOOKSAUTHORS {
    INTEGER ID PK
    VARCHAR FIRSTNAME
    VARCHAR LASTNAME
    VARCHAR ADDRESS1
    VARCHAR ADDRESS2
    VARCHAR CITY
    CHARACTER STATE
    VARCHAR POSTALCODE
    VARCHAR COUNTRY
  }

  PUBLICBOOKSBOOKS {
    INTEGER ID PK "Unique (internal) id for book"
    VARCHAR TITLE "Book title"
    VARCHAR DESCRIPTION "Book description (Usually the blurb from the book jacket or promotional materials)"
    INTEGER PUBLISHERID "Foreign key to the book publisher"
    DATE PUBLICATIONDATE "Book publication date"
    DOUBLE PRICE "Current price for the book"
    INTEGER PREVIOUSEDITIONID FK
  }

  PUBLICBOOKSCelebrities {
    INTEGER Id PK
    VARCHAR NAME
  }

  PUBLICBOOKSCOUPONS {
    INTEGER ID PK
    CLOB DATA
    INTEGERARRAY COUPONS
    VARCHAR20ARRAY10 BOOKS
  }

  PUBLICBOOKSCUSTOMERDATA {
    INTEGER ID PK
    VALID_STRING DATA
  }

  PUBLICBOOKSCUSTOMERS {
    INTEGER ID PK
    NAME_TYPE FIRSTNAME
    NAME_TYPE LASTNAME
    AGE_TYPE AGE
  }

  PUBLICBOOKSPUBLISHERS {
    INTEGER ID PK "Unique (internal) id for book publisher"
    VARCHAR PUBLISHER "Name of book publisher"
  }

  PUBLICPUBLISHERSALESREGIONS {
    VARCHAR CITY
    VARCHAR STATE
    VARCHAR POSTALCODE PK
    VARCHAR COUNTRY PK
  }

  PUBLICPUBLISHERSALESSALESDATA {
    INTEGER SALESDATAID UK
    DOUBLE YEARLYAMOUNT
  }

  PUBLICBOOKSBOOKAUTHORS {
    INTEGER BOOKID FK
    INTEGER AUTHORID FK
    VARCHAR SOMEDATA
  }

  PUBLICBOOKSCelebrityUpdates {
    INTEGER CelebrityId PK
    VARCHAR UPDATE
  }

  PUBLICBOOKSΒΙΒΛΊΑ {
    SMALLINT ΜΟΝΑΔΙΚΌΣ PK
    VARCHAR ΤΊΤΛΟΣ
    VARCHAR ΠΕΡΙΓΡΑΦΉ
    SMALLINT ΕΚΔΌΤΗΣ FK
  }

  PUBLICPUBLISHERSALESSALES {
    VARCHAR POSTALCODE FK
    VARCHAR COUNTRY FK
    INTEGER BOOKID FK
    INTEGER COUPON_ID
    DATE PERIODENDDATE
    DOUBLE TOTALAMOUNT
    INTEGER SALESDATAID FK
  }

  PUBLICBOOKSAUTHORSLIST {
    INTEGER ID
    VARCHAR FIRSTNAME
    VARCHAR LASTNAME
  }

  PUBLICBOOKSAUTHORS ||--o{ PUBLICBOOKSBOOKAUTHORS : "foreign key"
  PUBLICBOOKSBOOKS ||--o{ PUBLICBOOKSBOOKAUTHORS : "foreign key"
  PUBLICBOOKSBOOKS ||--o{ PUBLICBOOKSBOOKS : "foreign key"
  PUBLICBOOKSBOOKS ||--o{ PUBLICPUBLISHERSALESSALES : "foreign key"
  PUBLICBOOKSCelebrities ||--o{ PUBLICBOOKSCelebrityUpdates : "foreign key"
  PUBLICBOOKSPUBLISHERS ||--o{ PUBLICBOOKSΒΙΒΛΊΑ : "foreign key"
  PUBLICPUBLISHERSALESREGIONS ||--o{ PUBLICPUBLISHERSALESSALES : "foreign key"
  PUBLICPUBLISHERSALESSALESDATA ||--o{ PUBLICPUBLISHERSALESSALES : "foreign key"
