Tak jak w temacie. Prosiłbym o sprawdzenie diagramu i kodu niżej.Temat dość luźny czyli "lotnisko" a baza musi się składać z min. 7 tabel. Założeniem jest jest stworzenie bazy pod działanie lotniska. Dodam tylko ze żadna aplikacja nie będzie pod to tworzona, tylko dodatkowe skrypty,widoki.
CREATE DATABASE Lotnisko
GO
USE Lotnisko
GO
CREATE TABLE PRZEWOZNIK
(PRZEW_NAZWA VARCHAR(45) CONSTRAINT PK_PRZEWOZNIK PRIMARY KEY NOT NULL,
PRZEW_KRAJ VARCHAR(45) NOT NULL,
PRZEW_MIASTO VARCHAR(45) NOT NULL,
PRZEW_ULICA VARCHAR(45) NOT NULL,
PRZEW_TEL NUMERIC(15),
PRZEW_STRONA VARCHAR(45),
PRZEW_EMAIL VARCHAR(45) NULL);
CREATE TABLE SAMOLOT
(SAM_ID int IDENTITY (1, 1) CONSTRAINT PK_SAMOLOT PRIMARY KEY,
SAM_NAZWA VARCHAR(15) NOT NULL,
SAM_MODEL VARCHAR(15) NOT NULL,
SAM_NR_SERYJNY VARCHAR(15) NOT NULL,
SAM_LICZBA_MIEJSC NUMERIC(3) CHECK (SAM_LICZBA_MIEJSC>0) );
CREATE TABLE LOTY
(LOTY_ID int IDENTITY (1, 1) CONSTRAINT PK_LOTY PRIMARY KEY,
LOTY_SKAD_MIASTO VARCHAR(20) DEFAULT ('POZNAN'),
LOTY_SKAD_LOTNISKO VARCHAR(20) DEFAULT ('LAWICA'),
LOTY_DOKAD_MIASTO VARCHAR(20),
LOTY_DOKAD_LOTNISKO VARCHAR(20),
LOTY_DATA_WYLOTU DATE,
LOTY_GODZ_WYLOTU TIME,
LOTY_DATA_PRZYLOTU DATE,
LOTY_GODZ_PRZYLOTU TIME,
LOTY_SAM_ID INT CONSTRAINT FK_LOTY_SAMOLOT REFERENCES SAMOLOT(SAM_ID));
ALTER TABLE LOTY WITH NOCHECK ADD CONSTRAINT CK_LOTY_DATA CHECK (LOTY_DATA_PRZYLOTU >= LOTY_DATA_WYLOTU);
CREATE TABLE ZALOGA
(ZALOGA_ID int IDENTITY (1, 1) CONSTRAINT PK_ZALOGA PRIMARY KEY,
ZALOGA_IMIE VARCHAR(15),
ZALOGA_NAZWISKO VARCHAR(15),
ZALOGA_PESEL NUMERIC(11),
ZALOGA_MIEJSCOWOSC VARCHAR(15),
ZALOGA_ROLA VARCHAR(15) CONSTRAINT CK_ZALOGA_ROLA CHECK(ZALOGA_ROLA IN ('PILOT','DRUGI PILOT','STEWARDESSA','STEWARD')),
ZALOGA_DATA_ZATRUD DATE,
ZALOGA_PLACA NUMERIC(8,2) CONSTRAINT MIN_PLACA CHECK(ZALOGA_PLACA>500),
ZALOGA_LOTY_ID INT CONSTRAINT FK_ZALOGA_LOTY REFERENCES LOTY(LOTY_ID));
CREATE TABLE PASAZEROWIE
(PASAZ_ID int IDENTITY (1, 1) CONSTRAINT PK_PASAZ PRIMARY KEY,
PASAZ_IMIE VARCHAR(15) NOT NULL,
PASAZ_NAZWISKO VARCHAR(15) NOT NULL,
PASAZ_WIEK NUMERIC(3) NOT NULL,
PASAZ_GR_WIEKOWA VARCHAR(15) CONSTRAINT CK_PASAZEROWIE_GR_WIEKOWA CHECK(PASAZ_GR_WIEKOWA IN ('NIEMOWLE','DZIECKO','MLODZIEZ','DOROSLY')),
PASAZ_PLEC VARCHAR(10) CONSTRAINT CK_PASAZEROIWE_PLEC CHECK(PASAZ_PLEC IN ('K','M')),
PASAZ_PESEL NUMERIC(11) NOT NULL,
PASAZ_KRAJ_ZAM VARCHAR(11) NOT NULL,
PASAZ_MIEJSCE_ZAM VARCHAR(15) NOT NULL,
PASAZ_ULICA VARCHAR(15) NULL,
PASAZ_TEL NUMERIC(9),
PASAZ_LOTY_ID int CONSTRAINT FK_LOTY_PASAZEROWIE REFERENCES LOTY(LOTY_ID));
CREATE TABLE BILETY
(BILET_ID int IDENTITY (1, 1) CONSTRAINT PK_BILETY PRIMARY KEY,
BILET_CENA NUMERIC(5,2),
BILET_NR_MIEJSCA NUMERIC(3) CONSTRAINT MAX_BILET_NR_MIEJSCA CHECK(BILET_NR_MIEJSCA<=300),
BILET_KLASA CHAR(10) CONSTRAINT CK_BILET_KLASA CHECK(BILET_KLASA IN ('ECONOMY','PREMIUM','BUSINESS')) DEFAULT 'ECONOMY',
BILET_ZNIŻKA VARCHAR(15),
BILET_PASAZ_ID INT CONSTRAINT FK_BILETY_PASAZEROWIE REFERENCES PASAZEROWIE(PASAZ_ID),
BILET_PRZEW_NAZWA VARCHAR(45) CONSTRAINT FK_PRZEWOZNIK REFERENCES PRZEWOZNIK(PRZEW_NAZWA));
CREATE TABLE BAGAZE
(BAGAZ_ID int IDENTITY (1, 1) CONSTRAINT PK_BAGAZE PRIMARY KEY,
BAGAZ_RODZAJ CHAR(10) CONSTRAINT CK_BAGAZE_RODZAJ CHECK(BAGAZ_RODZAJ IN ('TORBA PODROZNA','PLECAK','WALIZKA')) DEFAULT 'TORBA PODROZNA',
BAGAZ_WAGA NUMERIC(3) CONSTRAINT MAX_BAGAZ_WAGA CHECK(BAGAZ_WAGA <=100),
BAGAZ_NR NUMERIC(8),
BAGAZ_PASAZ_ID int CONSTRAINT FK_BAGAZ_PASAZEROWIE REFERENCES PASAZEROWIE(PASAZ_ID));