Sprawdza³em instrukcje CREATE TABLE. Moje uwagi: 1. Redundancja: CREATE TABLE sponsor( ... id_team NUMBER(6) CONSTRAINT sponsor_fk REFERENCES team(id)) / CREATE TABLE team_sponsor( id_team NUMBER(6) CONSTRAINT ts_team_fk REFERENCES team(id_team), id_sponsor NUMBER(6) CONSTRAINT ts_sponsor_fk REFERENCES sponsor(id_sponsor), CONSTRAINT ts_pk PRIMARY KEY (id_team, id_sponsor)) / Sponsor zawiera klucz obcy do teamu i istnieje tabela przejœciowa zawieraj¹ca klucze obce do teamu i sponsora. 2. Co to za tabela student? 3. Po co jest tabela samochód, je¿eli ¿adna inna tabela siê do niej nie odwo³uje. Chyba w tabeli kierowca_wyscig przyda³by siê klucz obcy do samochód? 4. Po co jest tabela mechanik, je¿eli ¿adna inna tabela siê do niej nie odwo³uje. 5. W tabelach przebieg i kierowca_wyscig s¹ takie same klucze obce: id_kierowca NUMBER(6) CONSTRAINT kw_kierowca_fk REFERENCES kierowca(id_kierowca), id_wyscig NUMBER(6) CONSTRAINT kw_wyscig_fk REFERENCES wyscig(id_wyscig), Mo¿e: - warto te tabele po³¹czyæ? lub - w jednej wprowadziæ klucz obcy do drugiej? 6. Po co jest tabela in¿ynier, je¿eli ¿adna inna tabela siê do niej nie odwo³uje. 7. Proponujê usun¹æ niektóre tabele z informacjami o ludziach, a zamiast tego dodaæ tabele o rodzajach wyœcigów, torach, itp. Proszê przemyœleæ ca³oœæ jeszcze raz. Je¿eli bêd¹ jakieœ w¹tpliwoœci, to proszê przes³aæ diagram jeszcze raz. -- Mariusz Bedla CREATE TABLE team( id NUMBER(6) CONSTRAINT team_pk PRIMARY KEY, nazwa VARCHAR2(20)) / CREATE TABLE kierowca( id NUMBER(6) CONSTRAINT kierowca_pk PRIMARY KEY, nazwisko VARCHAR2(20), imie VARCHAR2(20), umer NUMBER (3), zarobki NUMBER (7,2), id_team NUMBER(6) CONSTRAINT kierowca_fk REFERENCES team(id)) / CREATE TABLE samochod( id NUMBER(6) CONSTRAINT samochod_pk PRIMARY KEY, nazwa VARCHAR2(20), opony VARCHAR2(20), silnik NUMBER (3,2), id_team NUMBER(6) CONSTRAINT samochod_fk REFERENCES team(id)) / CREATE TABLE sponsor( id NUMBER(6) CONSTRAINT sponsor_pk PRIMARY KEY, nazwa VARCHAR2(20), wlasciciel VARCHAR2(20), budrzet NUMBER (10,2), id_team NUMBER(6) CONSTRAINT sponsor_fk REFERENCES team(id)) / CREATE TABLE team_sponsor( id_team NUMBER(6) CONSTRAINT ts_team_fk REFERENCES team(id_team), id_sponsor NUMBER(6) CONSTRAINT ts_sponsor_fk REFERENCES sponsor(id_sponsor), CONSTRAINT ts_pk PRIMARY KEY (id_team, id_sponsor)) / CREATE TABLE mechanik( id NUMBER(6) CONSTRAINT mechanik_pk PRIMARY KEY, nazwisko VARCHAR2(20), imie VARCHAR2(20), specjalnosc VARCHAR2(20), zarobki NUMBER (6,2), id_team NUMBER(6) CONSTRAINT mechanik_fk REFERENCES team(id)) / CREATE TABLE wyscig( id NUMBER(6) CONSTRAINT wyscig_pk PRIMARY KEY, miejsce VARCHAR2(20), tor VARCHAR2(20), czas NUMBER (3,2), data NUMBER (6)) / CREATE TABLE student( id NUMBER(6) CONSTRAINT student_pk PRIMARY KEY, nazwisko VARCHAR2(20), imie VARCHAR2(20), srednia NUMBER (3,2), id_grupa NUMBER(6) CONSTRAINT student_fk REFERENCES grupa(id)) CREATE TABLE kierowca_wyscig( id_kierowca NUMBER(6) CONSTRAINT kw_kierowca_fk REFERENCES kierowca(id_kierowca), id_wyscig NUMBER(6) CONSTRAINT kw_wyscig_fk REFERENCES wyscig(id_wyscig), CONSTRAINT kw_pk PRIMARY KEY (id_kierowca, id_wyscig)) / CREATE TABLE przebieg( id NUMBER(6) CONSTRAINT przebiegPRIMARY KEY, miejsce VARCHAR2(20), czas_okrazenia NUMBER (3,2), pozycja NUMBER (2), id_wyscig NUMBER(6) CONSTRAINT przebieg_fk REFERENCES wyscig(id), id_kierowca NUMBER(6) CONSTRAINT przebieg_fk REFERENCES kierowca(id)) / CREATE TABLE inzynier( id NUMBER(6) CONSTRAINT inzynier_pk PRIMARY KEY, nazwisko VARCHAR2(20), imie VARCHAR2(20), zarobki NUMBER (7,2), id_kierowca NUMBER(6) CONSTRAINT inzynier_fk REFERENCES kierowca(id)) /
pawulon92