//[SQL]
create database perpustakaan;
use perpustakaan;
create table Ausleihe (MedienNi INTEGER NOT NULL, LeserNi INTEGER, AuslDatum date, Rueckgabe date, AnzVerl INTEGER, Constraint Ausleihe1 PRIMARY KEY(MedienNi));
create index Ausleihe2 on Ausleihe (LeserNi, MedienNi);
create table Closed (ClosedNi INTEGER NOT NULL, DtClosed date, ClosedBz varchar(60), Constraint Closed1 PRIMARY KEY(ClosedNi));
create index Closed2 on Closed (DtClosed);
create table IdentCnt (Entity char(10) NOT NULL, IdentNr INTEGER, Constraint IdentCnt1 PRIMARY KEY(Entity));
create table Katalog (KatalogNi INTEGER NOT NULL, SortFolge varchar(254), RAKkurz varchar(254), MedArtKb char(3), Koerpers varchar(254), EinhSaTit varchar(254), Titel varchar(254), UntTitel varchar(254), Bandangabe varchar(254), Autor varchar(60), VerfWerk enum('N','Y') default 'N', NebenEintr TEXT, Herausgeb varchar(254), Uebersetzt varchar(60), Verlag varchar(120), Verlagsort varchar(120), Reihe varchar(254), SystemId char(15), SignFort varchar(20), Auflage varchar(60), ErschBem varchar(10), ErschJahr INTEGER, Umfang varchar(60), Illust varchar(60), Beilagen varchar(60), Fussnote TEXT, ISBN char(17), EAN char(13), Schlagwort varchar(254), AltEmpf INTEGER, InterKreis varchar(254), SperrKatNi INTEGER, Frist INTEGER, MaxVerl INTEGER, ErschWeis varchar(40), Heft varchar(20), AufnJahr INTEGER, BestNr varchar(30), Annotation TEXT, StatGruppe char(15), ErfassDat date, ErfassAnw varchar(20), ZeitsTitel varchar(254), ZeitsTiAlt varchar(254), Jahrgang INTEGER(4), ErschVerl varchar(254), ISSN char(9), ErschLand char(2), Sprache char(2), Fachnota varchar(254), BiblHinw varchar(254), DokNr INTEGER, InfoLink varchar(254), KlasseAnto varchar(20), Constraint Katalog1 PRIMARY KEY(KatalogNi));
create index Katalog2 on Katalog (ISBN);
create index Katalog3 on Katalog (EAN);
create table Leser (LeserNi INTEGER NOT NULL, AusweisId char(15), LeserGruNi INTEGER, Institut varchar(60), AdrZusatz1 varchar(40), AdrZusatz2 varchar(40), Nachname varchar(30), Vorname varchar(30), Geschlecht char(1), AkademGrad varchar(20), Strasse varchar(60), LandId char(3), PLZ varchar(5), PLZPostfa varchar(5), Postfach varchar(10), Ort varchar(60), Country varchar(60), emailPriv varchar(120), FonPrivat varchar(20), FaxPrivat varchar(20), emailGesch varchar(120), FonGesch varchar(20), FaxGesch varchar(20), HandyNr varchar(20), URL varchar(120), SperrungNi INTEGER, ErfassDat date, ErfassAnw varchar(20), Constraint Leser1 PRIMARY KEY(LeserNi));
create index Leser2 on Leser (AusweisId);
create table LeserGrupp (LeserGruNi INTEGER NOT NULL, LeserGruBz varchar(60), position INTEGER, Constraint LeserGrupp1 PRIMARY KEY(LeserGruNi));
create index LeserGrupp2 on LeserGrupp (position, LeserGruBz);
create table AuslGrupp (AuslGruNi INTEGER NOT NULL, AuslGruBz varchar(60), position INTEGER, Constraint AuslGrupp1 PRIMARY KEY(AuslGruNi));
create index AuslGrupp2 on AuslGrupp (position, AuslGruBz);
create table LitListe (KatalogNi INTEGER, SortFolge char(120), RAKZeile1 varchar(254), RAK2bisN TEXT, MedArtKb char(3));
create table MedArt (MedArtKb char(3) NOT NULL, MedArtBz varchar(60), Frist INTEGER, Constraint MedArt1 PRIMARY KEY(MedArtKb));
create table Medien (MedienNi INTEGER NOT NULL, KatalogNi INTEGER, MedienEtik char(20), Preis DOUBLE, KaufDat date, ZugangsNr varchar(20), Beschaed varchar(60), NichtVfNi INTEGER, ErfassDat date, ErfassAnw varchar(20), Constraint Medien1 PRIMARY KEY(MedienNi));
create index Medien2 on Medien (MedienEtik);
create index Medien3 on Medien (KatalogNi);
create table Nichtverf (NichtVfNi INTEGER NOT NULL, NichtVfBz varchar(60), position INTEGER, Constraint Nichtverf1 PRIMARY KEY(NichtVfNi));
create index Nichtverf2 on Nichtverf (position, NichtVfBz);
create table Parameter (ParmId char(10) NOT NULL, PaWert varchar(254), Constraint Parameter1 PRIMARY KEY(ParmId));
create table SperrKat (SperrKatNi INTEGER NOT NULL, SperrKatBz varchar(60), position INTEGER, Constraint SperrKat1 PRIMARY KEY(SperrKatNi));
create index SperrKat2 on SperrKat (position, SperrKatBz);
create table Sperrung (SperrungNi INTEGER NOT NULL, SperrungBz varchar(60), position INTEGER, Constraint Sperrung1 PRIMARY KEY(SperrungNi));
create index Sperrung2 on Sperrung (position, SperrungBz);
create table Systematik (SystemId char(15) NOT NULL, SystemBz varchar(60), Constraint Systematik1 PRIMARY KEY(SystemId));
create table Benutzer (BenutzerNi INTEGER NOT NULL, BenutzerId char(20), BenBezeich varchar(60), GruppenId char(1), Constraint Benutzer1 PRIMARY KEY(BenutzerNi));
create index Benutzer2 on Benutzer (BenutzerId);
create table StatMedien (MedienNi INTEGER, MedArtKb char(3), SystemId varchar(15), StatGruppe varchar(15), LeserNi INTEGER, LeserGruNi INTEGER, PLZ varchar(5), AuslDatum date, AuslZeit time);
create table Schlagwort (SchlagwSort char(40) NOT NULL, Schlagwort char(40), Fundst INTEGER, Constraint Schlagwort1 PRIMARY KEY(SchlagwSort));
create table Vormerkung (LeserNi INTEGER NOT NULL, KatalogNi INTEGER NOT NULL, Prioritaet INTEGER, VormerkDat timestamp, VerfallDat date, Constraint Vormerkung1 PRIMARY KEY(LeserNi, KatalogNi));
create index Vormerkung2 on Vormerkung (KatalogNi, Prioritaet, VormerkDat);
create table AuslHist (MedienNi INTEGER, LeserNi INTEGER, AuslDatum date, Rueckgabe date, AnzVerl INTEGER);
create index AuslHist2 on AuslHist (LeserNi, MedienNi);
create table TermRepla (TermNI INTEGER(7) NOT NULL, TermOri varchar(254), TermNew varchar(254), position INTEGER, Constraint TermRepla1 PRIMARY KEY(TermNI));
create index TermRepla2 on TermRepla (TermOri);
insert into MedArt (MedArtKb, MedArtBz, Frist) values ('Buc', 'Buch', 28);
insert into MedArt (MedArtKb, MedArtBz, Frist) values ('Spi', 'Spiel', 28);
insert into MedArt (MedArtKb, MedArtBz, Frist) values ('CD', 'Compact Disk', 14);
insert into MedArt (MedArtKb, MedArtBz, Frist) values ('DVD', 'Digital Video Disk', 14);
insert into MedArt (MedArtKb, MedArtBz, Frist) values ('MC', 'Musik Cassette', 14);
insert into MedArt (MedArtKb, MedArtBz, Frist) values ('Zei', 'Zeitschrift', 14);
insert into MedArt (MedArtKb, MedArtBz, Frist) values ('Auf', 'Zeitschriftenaufsatz', 14);
insert into MedArt (MedArtKb, MedArtBz, Frist) values ('Vi', 'Video', 14);
insert into MedArt (MedArtKb, MedArtBz, Frist) values ('Kt', 'Karte', 28);
use mysql;
insert into db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv, Index_priv, Alter_priv) values ('%', 'perpustakaan', '', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');
insert into user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv) values ('localhost','librarian',password('libpwd'),'Y','Y','Y','Y');
insert into user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv) values ('localhost.localdomain','librarian',password('libpwd'),'Y','Y','Y','Y');
flush privileges;