Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Created: 12/11/2019
- Modified: 12/11/2019
- Model: Logical model
- Database: Oracle 19c
- */
- -- Create sequences section -------------------------------------------------
- CREATE SEQUENCE "FirmySeq"
- INCREMENT BY 1
- START WITH 1
- NOMAXVALUE
- NOMINVALUE
- CACHE 20
- /
- CREATE SEQUENCE "AdresySeq"
- INCREMENT BY 1
- START WITH 1
- NOMAXVALUE
- NOMINVALUE
- CACHE 20
- /
- CREATE SEQUENCE "JezykiProgramowaniaSeq"
- INCREMENT BY 1
- START WITH 1
- NOMAXVALUE
- NOMINVALUE
- CACHE 20
- /
- CREATE SEQUENCE "KlienciSeq"
- INCREMENT BY 1
- START WITH 1
- NOMAXVALUE
- NOMINVALUE
- CACHE 20
- /
- CREATE SEQUENCE "PanstwaSeq"
- INCREMENT BY 1
- START WITH 1
- NOMAXVALUE
- NOMINVALUE
- CACHE 20
- /
- CREATE SEQUENCE "PracownicySeq"
- INCREMENT BY 1
- START WITH 1
- NOMAXVALUE
- NOMINVALUE
- CACHE 20
- /
- CREATE SEQUENCE "ProducenciSeq"
- INCREMENT BY 1
- START WITH 1
- NOMAXVALUE
- NOMINVALUE
- CACHE 20
- /
- CREATE SEQUENCE "ProjektySeq"
- INCREMENT BY 1
- START WITH 1
- NOMAXVALUE
- NOMINVALUE
- CACHE 20
- /
- CREATE SEQUENCE "StanowiskaSeq"
- INCREMENT BY 1
- START WITH 1
- NOMAXVALUE
- NOMINVALUE
- CACHE 20
- /
- CREATE SEQUENCE "UrzadzeniaSeq"
- INCREMENT BY 1
- START WITH 1
- NOMAXVALUE
- NOMINVALUE
- CACHE 20
- /
- CREATE SEQUENCE "WynagrodzeniaSeq"
- INCREMENT BY 1
- START WITH 1
- NOMAXVALUE
- NOMINVALUE
- CACHE 20
- /
- CREATE SEQUENCE "ZespolySeq"
- INCREMENT BY 1
- START WITH 1
- NOMAXVALUE
- NOMINVALUE
- CACHE 20
- /
- -- Create tables section -------------------------------------------------
- -- Table Firmy
- CREATE TABLE "Firmy"(
- "Id_firmy" Integer NOT NULL,
- "Nazwa" Varchar2(30 ) NOT NULL,
- "Numer_kontaktowy" Varchar2(12 ) NOT NULL,
- "Id_adresu" Integer NOT NULL
- )
- /
- -- Create indexes for table Firmy
- CREATE INDEX "IX_Firma_ma_adres" ON "Firmy" ("Id_adresu")
- /
- -- Add keys for table Firmy
- ALTER TABLE "Firmy" ADD CONSTRAINT "Id_firmy" PRIMARY KEY ("Id_firmy")
- /
- -- Create triggers for table Firmy
- CREATE TRIGGER "FirmyT1"
- BEFORE INSERT
- ON "Firmy"
- BEGIN
- select FirmySeq.nextval into :new.Id_firmy from dual;
- END;
- /
- -- Table Pracownicy
- CREATE TABLE "Pracownicy"(
- "Id_pracownika" Integer NOT NULL,
- "Imie" Varchar2(30 ) NOT NULL,
- "Nazwisko" Varchar2(30 ) NOT NULL,
- "Data_urodzenia" Date NOT NULL,
- "Numer_konta" Char(26 ) NOT NULL,
- "Numer_kontaktowy" Varchar2(12 ) NOT NULL,
- "PESEL" Char(11 ),
- "Numer_dokumentu" Varchar2(20 ),
- "Id_firmy" Integer NOT NULL,
- "Id_adresu" Integer NOT NULL,
- "Id_stanowiska" Integer NOT NULL,
- "Id_zespolu" Integer NOT NULL,
- "Id_panstwa" Integer NOT NULL
- )
- /
- -- Create indexes for table Pracownicy
- CREATE INDEX "IX_Firma_zatrudnia" ON "Pracownicy" ("Id_firmy")
- /
- CREATE INDEX "IX_Pracownik_posiada" ON "Pracownicy" ("Id_adresu")
- /
- CREATE INDEX "IX_Pracownik_jest_zatrudniony" ON "Pracownicy" ("Id_stanowiska")
- /
- CREATE INDEX "IX_Pracownik_nalezy" ON "Pracownicy" ("Id_zespolu")
- /
- CREATE INDEX "IX_Jest_narodowosci" ON "Pracownicy" ("Id_panstwa")
- /
- -- Add keys for table Pracownicy
- ALTER TABLE "Pracownicy" ADD CONSTRAINT "Id_pracownika" PRIMARY KEY ("Id_pracownika")
- /
- -- Create triggers for table Pracownicy
- CREATE TRIGGER "PracownicyT1"
- BEFORE INSERT
- ON "Pracownicy"
- BEGIN
- select PracownicySeq.nextval into :new.Id_pracownika from dual;
- END;
- /
- -- Table Projekty
- CREATE TABLE "Projekty"(
- "Id_projektu" Integer NOT NULL,
- "Nazwa" Varchar2(30 ) NOT NULL,
- "Opis" Varchar2(600 ),
- "Id_firmy" Integer NOT NULL,
- "Id_klienta" Integer NOT NULL
- )
- /
- -- Create indexes for table Projekty
- CREATE INDEX "IX_Klient_kupuje" ON "Projekty" ("Id_klienta")
- /
- CREATE INDEX "IX_Firma_realizuje" ON "Projekty" ("Id_firmy")
- /
- -- Add keys for table Projekty
- ALTER TABLE "Projekty" ADD CONSTRAINT "Id_projektu" PRIMARY KEY ("Id_projektu")
- /
- -- Create triggers for table Projekty
- CREATE TRIGGER "ProjektyT1"
- BEFORE INSERT
- ON "Projekty"
- BEGIN
- select ProjektySeq.nextval into :new.Id_projektu from dual;
- END;
- /
- -- Table Urzadzenia
- CREATE TABLE "Urzadzenia"(
- "Id_urzadzenia" Integer NOT NULL,
- "Numer_inwentaryzacyjny" Varchar2(20 ),
- "Typ_urzadzenia" Char(30 ) NOT NULL
- CHECK (Typ_urzadzenia IN ('Laptop', 'Telefon', 'Tablet','Inne')),
- "Id_firmy" Integer NOT NULL,
- "Id_producenta" Integer NOT NULL
- )
- /
- -- Create indexes for table Urzadzenia
- CREATE INDEX "IX_Firma_posiada_urzadzenia" ON "Urzadzenia" ("Id_firmy")
- /
- CREATE INDEX "IX_Urzadzenie_posiada" ON "Urzadzenia" ("Id_producenta")
- /
- -- Add keys for table Urzadzenia
- ALTER TABLE "Urzadzenia" ADD CONSTRAINT "Id_urzadzenia" PRIMARY KEY ("Id_urzadzenia")
- /
- -- Create triggers for table Urzadzenia
- CREATE TRIGGER "UrzadzeniaT1"
- BEFORE INSERT
- ON "Urzadzenia"
- BEGIN
- select UrzadzeniaSeq.nextval into :new.Id_urzadzenia from dual;
- END;
- /
- -- Table Adresy
- CREATE TABLE "Adresy"(
- "Id_adresu" Integer NOT NULL,
- "Miejscowosc" Varchar2(30 ) NOT NULL,
- "Kod_pocztowy" Char(6 ) NOT NULL,
- "Ulica" Varchar2(30 ) NOT NULL,
- "Numer_budynku" Varchar2(5 ) NOT NULL,
- "Numer_mieszkania" Varchar2(5 ),
- "Id_panstwa" Integer NOT NULL
- )
- /
- -- Create indexes for table Adresy
- CREATE INDEX "IX_Adres_w" ON "Adresy" ("Id_panstwa")
- /
- -- Add keys for table Adresy
- ALTER TABLE "Adresy" ADD CONSTRAINT "Id_adresu" PRIMARY KEY ("Id_adresu")
- /
- -- Create triggers for table Adresy
- CREATE TRIGGER "AdresyT1"
- BEFORE INSERT
- ON "Adresy"
- BEGIN
- select AdresySeq.nextval into :new.Id_adresu from dual;
- END;
- /
- -- Table Stanowiska
- CREATE TABLE "Stanowiska"(
- "Id_stanowiska" Integer NOT NULL,
- "Nazwa" Varchar2(30 ) NOT NULL,
- "Opis" Varchar2(600 )
- )
- /
- -- Add keys for table Stanowiska
- ALTER TABLE "Stanowiska" ADD CONSTRAINT "Id_stanowiska" PRIMARY KEY ("Id_stanowiska")
- /
- -- Create triggers for table Stanowiska
- CREATE TRIGGER "StanowiskaT1"
- BEFORE INSERT
- ON "Stanowiska"
- BEGIN
- select StanowiskaSeq.nextval into :new.Id_stanowiska from dual;
- END;
- /
- -- Table Wynagrodzenia
- CREATE TABLE "Wynagrodzenia"(
- "Id_wynagrodzenia" Integer NOT NULL,
- "Data" Date NOT NULL,
- "Wysokosc_wynagrodzenia" Number(10,2) NOT NULL,
- "Dodatek" Number(10,2),
- "Id_pracownika" Integer NOT NULL
- )
- /
- -- Create indexes for table Wynagrodzenia
- CREATE INDEX "IX_Jest_wyplacane" ON "Wynagrodzenia" ("Id_pracownika")
- /
- -- Add keys for table Wynagrodzenia
- ALTER TABLE "Wynagrodzenia" ADD CONSTRAINT "Id_wynagrodzenia" PRIMARY KEY ("Id_wynagrodzenia")
- /
- -- Create triggers for table Wynagrodzenia
- CREATE TRIGGER "WynagrodzeniaT1"
- BEFORE INSERT
- ON "Wynagrodzenia"
- BEGIN
- select WynagrodzeniaSeq.nextval into :new.Id_wynagrodzenia from dual;
- END;
- /
- -- Table Jezyki_programowania
- CREATE TABLE "Jezyki_programowania"(
- "Id_jezyka_programowania" Integer NOT NULL,
- "Nazwa" Varchar2(15 ) NOT NULL,
- "Opis" Varchar2(600 )
- )
- /
- -- Add keys for table Jezyki_programowania
- ALTER TABLE "Jezyki_programowania" ADD CONSTRAINT "Id_jezyka_programowania" PRIMARY KEY ("Id_jezyka_programowania")
- /
- -- Create triggers for table Jezyki_programowania
- CREATE TRIGGER "JezykiProgramowaniaT1"
- BEFORE INSERT
- ON "Jezyki_programowania"
- BEGIN
- select JezykiProgramowaniaSeq.nextval into :new.Id_jezyka_programowania from dual;
- END;
- /
- -- Table Zespoly
- CREATE TABLE "Zespoly"(
- "Id_zespolu" Integer NOT NULL,
- "Nazwa" Varchar2(30 ) NOT NULL,
- "Id_firmy" Integer NOT NULL
- )
- /
- -- Create indexes for table Zespoly
- CREATE INDEX "IX_Firma_koordynuje" ON "Zespoly" ("Id_firmy")
- /
- -- Add keys for table Zespoly
- ALTER TABLE "Zespoly" ADD CONSTRAINT "Id_zespolu" PRIMARY KEY ("Id_zespolu")
- /
- -- Create triggers for table Zespoly
- CREATE TRIGGER "ZespolyT1"
- BEFORE INSERT
- ON "Zespoly"
- BEGIN
- select ZespolySeq.nextval into :new.Id_zespolu from dual;
- END;
- /
- -- Table Panstwa
- CREATE TABLE "Panstwa"(
- "Id_panstwa" Integer NOT NULL,
- "Nazwa" Varchar2(30 ) NOT NULL,
- "Skrot" Char(2 ) NOT NULL
- )
- /
- -- Add keys for table Panstwa
- ALTER TABLE "Panstwa" ADD CONSTRAINT "Id_panstwa" PRIMARY KEY ("Id_panstwa")
- /
- -- Create triggers for table Panstwa
- CREATE TRIGGER "PanstwaT1"
- BEFORE INSERT
- ON "Panstwa"
- BEGIN
- select PanstwaSeq.nextval into :new.Id_panstwa from dual;
- END;
- /
- -- Table Klienci
- CREATE TABLE "Klienci"(
- "Id_klienta" Integer NOT NULL,
- "Nazwa" Varchar2(30 ) NOT NULL,
- "Numer_kontaktowy" Varchar2(12 ) NOT NULL,
- "NIP" Varchar2(10 ),
- "Adres_email" Varchar2(50 ),
- "Id_firmy" Integer NOT NULL,
- "Id_adresu" Integer NOT NULL
- )
- /
- -- Create indexes for table Klienci
- CREATE INDEX "IX_Firma_ma_klienta" ON "Klienci" ("Id_firmy")
- /
- CREATE INDEX "IX_Klient_ma_adres" ON "Klienci" ("Id_adresu")
- /
- -- Add keys for table Klienci
- ALTER TABLE "Klienci" ADD CONSTRAINT "Id_klienta" PRIMARY KEY ("Id_klienta")
- /
- -- Create triggers for table Klienci
- CREATE TRIGGER "KlienciT1"
- BEFORE INSERT
- ON "Klienci"
- BEGIN
- select KlienciSeq.nextval into :new.Id_klienta from dual;
- END;
- /
- -- Table Producenci
- CREATE TABLE "Producenci"(
- "Id_producenta" Integer NOT NULL,
- "Nazwa" Varchar2(20 ) NOT NULL,
- "Opis" Varchar2(255 )
- )
- /
- -- Add keys for table Producenci
- ALTER TABLE "Producenci" ADD CONSTRAINT "Id_producenta" PRIMARY KEY ("Id_producenta")
- /
- -- Create triggers for table Producenci
- CREATE TRIGGER "ProducenciT1"
- BEFORE INSERT
- ON "Producenci"
- BEGIN
- select ProducenciSeq.nextval into :new.Id_producenta from dual;
- END;
- /
- -- Table Pracownicy_Projekty
- CREATE TABLE "Pracownicy_Projekty"(
- "Id_pracownika" Integer NOT NULL,
- "Id_projektu" Integer NOT NULL,
- "Data_od" Date NOT NULL,
- "Data_do" Date
- )
- /
- -- Table Pracownicy_Jezyki_programowania
- CREATE TABLE "Pracownicy_Jezyki_programowania"(
- "Id_pracownika" Integer NOT NULL,
- "Id_jezyka_programowania" Integer NOT NULL,
- "Stopien_zaawansowania" Char(30 ) NOT NULL
- CHECK (Stopien_zaawansowania in ('Podstawowy', 'Sredni', 'Zaawansowany', 'Inny'))
- )
- /
- -- Table Projekty_Jezyki_programowania
- CREATE TABLE "Projekty_Jezyki_programowania"(
- "Id_projektu" Integer NOT NULL,
- "Id_jezyka_programowania" Integer NOT NULL
- )
- /
- -- Table Pracownicy_Urzadzenia
- CREATE TABLE "Pracownicy_Urzadzenia"(
- "Id_pracownika" Integer NOT NULL,
- "Id_urzadzenia" Integer NOT NULL
- )
- /
- -- Table Projekty_Zespoly
- CREATE TABLE "Projekty_Zespoly"(
- "Id_projektu" Integer NOT NULL,
- "Id_zespolu" Integer NOT NULL,
- "Data_od" Date NOT NULL,
- "Data_do" Date
- )
- /
- -- Create foreign keys (relationships) section -------------------------------------------------
- ALTER TABLE "Pracownicy" ADD CONSTRAINT "Firma_zatrudnia" FOREIGN KEY ("Id_firmy") REFERENCES "Firmy" ("Id_firmy")
- /
- ALTER TABLE "Pracownicy" ADD CONSTRAINT "Pracownik_posiada" FOREIGN KEY ("Id_adresu") REFERENCES "Adresy" ("Id_adresu")
- /
- ALTER TABLE "Pracownicy" ADD CONSTRAINT "Pracownik_jest_zatrudniony" FOREIGN KEY ("Id_stanowiska") REFERENCES "Stanowiska" ("Id_stanowiska")
- /
- ALTER TABLE "Urzadzenia" ADD CONSTRAINT "Firma_posiada_urzadzenia" FOREIGN KEY ("Id_firmy") REFERENCES "Firmy" ("Id_firmy")
- /
- ALTER TABLE "Zespoly" ADD CONSTRAINT "Firma_koordynuje" FOREIGN KEY ("Id_firmy") REFERENCES "Firmy" ("Id_firmy")
- /
- ALTER TABLE "Pracownicy" ADD CONSTRAINT "Pracownik_nalezy" FOREIGN KEY ("Id_zespolu") REFERENCES "Zespoly" ("Id_zespolu")
- /
- ALTER TABLE "Adresy" ADD CONSTRAINT "Adres_w" FOREIGN KEY ("Id_panstwa") REFERENCES "Panstwa" ("Id_panstwa")
- /
- ALTER TABLE "Projekty" ADD CONSTRAINT "Klient_kupuje" FOREIGN KEY ("Id_klienta") REFERENCES "Klienci" ("Id_klienta")
- /
- ALTER TABLE "Urzadzenia" ADD CONSTRAINT "Urzadzenie_posiada" FOREIGN KEY ("Id_producenta") REFERENCES "Producenci" ("Id_producenta")
- /
- ALTER TABLE "Firmy" ADD CONSTRAINT "Firma_ma_adres" FOREIGN KEY ("Id_adresu") REFERENCES "Adresy" ("Id_adresu")
- /
- ALTER TABLE "Pracownicy" ADD CONSTRAINT "Jest_narodowosci" FOREIGN KEY ("Id_panstwa") REFERENCES "Panstwa" ("Id_panstwa")
- /
- ALTER TABLE "Wynagrodzenia" ADD CONSTRAINT "Jest_wyplacane" FOREIGN KEY ("Id_pracownika") REFERENCES "Pracownicy" ("Id_pracownika")
- /
- ALTER TABLE "Klienci" ADD CONSTRAINT "Firma_ma_klienta" FOREIGN KEY ("Id_firmy") REFERENCES "Firmy" ("Id_firmy")
- /
- ALTER TABLE "Klienci" ADD CONSTRAINT "Klient_ma_adres" FOREIGN KEY ("Id_adresu") REFERENCES "Adresy" ("Id_adresu")
- /
- ALTER TABLE "Projekty" ADD CONSTRAINT "Firma_realizuje" FOREIGN KEY ("Id_firmy") REFERENCES "Firmy" ("Id_firmy")
- /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement