zadanie3 IZ ZPI 14 (1)

Zadania ZPI_IZ_2014

Zadanie – Metoda punktów danych

Przyjęto przy tym następującą specyfikację wymagań dla aplikacji bazodanowej:

Podczas rozmów przeprowadzonych z przyszłymi użytkownikami systemu LOT zebrano następujące informacje o wymaganiach stawianych projektowanej bazie danych.

1.Dział koordynacji lotów ma za zadanie każdemu z rejsów linii AirLine przydzielić samoloty tej firmy.

2.Rejsy są identyfikowane numerem rejsu.

3. Każdemu z rejsów przydzielone zostały dni tygodnia, w którym się one odbywają.

4.Odbycie się rejsu pewnego dnia o określonej dacie dział koordynacji lotów nazywa Lotem.

5.Dział koordynacji lotów przydziela do poszczególnych lotów Samoloty, będące na wyposażeniu linii.

6.Każdy z samolotów firmy posiada jednoznaczny numer identyfikacyjny samolotu. AirLine oferuje rejsy na liniach krajowych i międzynarodowych. Samoloty AirLine mają różne parametry techniczne. Określa je typ samolotu . 7.Na dane o typie samolotu składają się np. informacje o producencie i jednoznaczna nazwa typu.

8.Dokładne dane techniczne typu nie muszą być przechowywane w projektowanej bazie danych.

9.Dla przydziału odpowiedniego typ samolotu dla danego rejsu konieczne jest przechowywanie danych o portach lotniczych odlotu i przylotu.

10.Zgodnie z międzynarodowymi porozumieniami AirLine używa do identyfikacji portów lotniczych jednoznacznych międzynarodowych skrótów. Pracownicy działu koordynacji lotów chcą, mimo jednoznaczności skrótów, aby port lotniczy określony był również nazwą miasta i państwa oraz nazwą własną portu. Ponadto w celu przygotowania samolotu do startu ważna jest informacji o godzinach odlotu (godzina odlotu, godzina przylotu).

11.Kierownictwo AirLine chcąc kontrolować punktualność swych lotów wyraziło życzenie, aby każdy kurs obok planowanego czasu odlotu i przylotu posiadał informacje o rzeczywistych godzinach odlotu i przylotu.

12. Personel techniczny linii lotniczych obok prac remontowych wyposaża samoloty w fotele o standardzie odpowiednim dla klasy miejsca. W tym celu potrzebuje od producenta informacji o maksymalnej dopuszczalnej ilości miejsc.

13. Po dokonaniu instalacji foteli w samolocie istotna dla celów rezerwacji jest rzeczywista ilość miejsc w samolocie. Każde miejsce jest określone przez jednoznaczny numer miejsca. Dla każdej kombinacji rejsu i klasy linie potrzebują informacji o ustalonej cenie.

Streszczając można stwierdzić, iż projektant systemu musi odwzorować w bazie danych następujące obiekty rzeczywiste:

  1. Porty lotnicze,

  1. Typy samolotów,

  2. Samoloty,

  3. Rejsy,

  4. Dni tygodnia,

  5. Loty,

  6. Miejsca i

  7. Ceny

Między powyższymi ośmioma obiektami istnieją, poza ewentualnymi warunkami istnienia, określone związki:

  1. rejs ma określoną cenę,

  2. rejs odbywa się w określonym dniu lub dniach tygodnia,

  3. rejs charakteryzuje port lotniczy odlotu i port przylotu,

  4. samolot jest określonego typu,

  5. każdy rejs posiada loty,

  6. samolot może być przydzielony do lotu,

  7. miejsca na loty mogą być rezerwowane.

W powyższej dokumentacji zestawiliśmy wymagania stawiane bazie danych. Są one podstawą do przeprowadzenia fazy koncepcyjnej projektu

Na poniższym rysunku przedstawiono przykładowy diagram erd w notacji ERD(SERM) dla linii lotniczych. Najbardziej na lewo przedstawiono tabele SQL-owe stojące najwyżej w hierarchii, np. dzień tygodnia, port lotniczy, typ samolotu. Są to dane słownikowe, a klucze główne z tych tabel będą dziedziczone w tabelach podrzędnych.

Przykładowy model danych w notacji SERM

Tabele pochodne jak rejs, samolot, może lądować na, zawierają zarówno klucze obce ( z tabel nadrzędnych), jak i klucze główne (primary) zapewniające dostęp do danych zapisanych w tych tabelach. Klucze obce zapewniają kontrolę spójności bazy danych, a klucze główne zapewniają unikalność danych zapisanych w tych tabelach. Jeżeli nie ma w modelu danych możliwości bezpośredniego powiązania typu nadrzędny-podrzędny wtedy można za pomocą dodatkowej tabeli pośredniej typu R powiązać dwie równorzędne tabele, np. Port lotniczy i typ samolotu zostały powiązane za pomocą tabeli pośredniej Może lądować na

Skrypt bazy danych:

remark

\

Script generated by SQLSys v0.xx

/

connect carloty;

remark

\

Users

/

grant connect to lib identified by sysadm;

grant resource to lib;

grant dba to lib;

grant connect to zb identified by zb;

grant dba to zb;

remark

\

---------------------------

Table ZB.DZIETYG

Level 1, Columns 1, Indexes 0

---------------------------

/

create table zb.dzietyg (

dzientyg char( 12 ) not null );

create unique index zb.pk_dzietyg

on zb.dzietyg (

dzientyg asc );

create public synonym dzietyg for zb.dzietyg;

remark

\

---------------------------

Table ZB.PORT_LOTNICZY

Level 1, Columns 4, Indexes 0

---------------------------

/

create table zb.port_lotniczy (

sym_lotn char( 6 ) not null,

nazw_lotn char( 40 ) not null,

miasto_lotn char( 24 ),

kraj_lotn char( 24 ) );

create unique index zb.pk_port_lotniczy

on zb.port_lotniczy (

sym_lotn asc );

create public synonym port_lotniczy for zb.port_lotniczy;

remark

\

---------------------------

Table ZB.TYP_SAMOL

Level 1, Columns 3, Indexes 0

---------------------------

/

create table zb.typ_samol (

naz_typu char( 8 ) not null,

max_il_miejsc integer not null,

producent char( 30 ) );

create unique index zb.pk_typ_samol

on zb.typ_samol (

naz_typu asc );

create public synonym typ_samol for zb.typ_samol;

remark

\

---------------------------

Table ZB.MOZE_LADOW

Level 2, Columns 2, Indexes 0

---------------------------

/

create table zb.moze_ladow (

naz_typu char( 8 ) not null,

sym_lotn char( 6 ) not null );

create unique index zb.pk_moze_ladow

on zb.moze_ladow (

naz_typu asc,

sym_lotn asc );

create index zb.fk_moze_ladow

on zb.moze_ladow (

naz_typu asc );

create index zb.fk_moze_ladow1

on zb.moze_ladow (

sym_lotn asc );

create public synonym moze_ladow for zb.moze_ladow;

remark

\

---------------------------

Table ZB.REJS

Level 2, Columns 4, Indexes 0

---------------------------

/

create table zb.rejs (

nr_rejsu char( 5 ) not null,

sym_lotn char( 6 ) not null,

godz_odlot datetime,

godz_przylot datetime );

create unique index zb.pk_rejs

on zb.rejs (

nr_rejsu asc,

sym_lotn asc );

create index zb.fk_rejs

on zb.rejs (

sym_lotn asc );

create public synonym rejs for zb.rejs;

remark

\

---------------------------

Table ZB.SAMOLOT

Level 2, Columns 3, Indexes 0

---------------------------

/

create table zb.samolot (

nr_samolotu char( 5 ) not null,

liczba_miejsc integer not null,

naz_typu char( 8 ) );

create unique index zb.pk_samolot

on zb.samolot (

nr_samolotu asc );

create index zb.fk_samolot

on zb.samolot (

naz_typu asc );

create public synonym samolot for zb.samolot;

remark

\

---------------------------

Table ZB.CENA

Level 3, Columns 4, Indexes 0

---------------------------

/

create table zb.cena (

kategoria char( 2 ) not null,

nr_rejsu char( 5 ) not null,

sym_lotn char( 6 ) not null,

warosc_ceny decimal( 12, 2 ) );

create unique index zb.pk_cena

on zb.cena (

kategoria asc,

nr_rejsu asc,

sym_lotn asc );

create index zb.fk_cena

on zb.cena (

nr_rejsu asc,

sym_lotn asc );

create public synonym cena for zb.cena;

remark

\

---------------------------

Table ZB.LOT

Level 3, Columns 6, Indexes 0

---------------------------

/

create table zb.lot (

data_lotu date not null,

rzeczyw_godz_odl time,

rzeczyw_godz_przy time,

nr_rejsu char( 5 ) not null,

sym_lotn char( 6 ) not null,

nr_samolotu char( 5 ) );

create unique index zb.pk_lot

on zb.lot (

data_lotu asc,

nr_rejsu asc,

sym_lotn asc );

create index zb.fk_lot

on zb.lot (

nr_rejsu asc,

sym_lotn asc );

create index zb.fk_lot1

on zb.lot (

nr_samolotu asc );

create public synonym lot for zb.lot;

remark

\

---------------------------

Table ZB.W

Level 3, Columns 3, Indexes 0

---------------------------

/

create table zb.w (

nr_rejsu char( 5 ) not null,

sym_lotn char( 6 ) not null,

dzientyg char( 12 ) not null );

create unique index zb.pk_w

on zb.w (

nr_rejsu asc,

sym_lotn asc,

dzientyg asc );

create index zb.fk_w

on zb.w (

dzientyg asc );

create index zb.fk_w1

on zb.w (

nr_rejsu asc,

sym_lotn asc );

create public synonym w for zb.w;

remark

\

---------------------------

Table ZB.MIEJSCE

Level 4, Columns 4, Indexes 0

---------------------------

/

create table zb.miejsce (

nr_miejsca integer not null,

data_lotu date not null,

nr_rejsu char( 5 ) not null,

sym_lotn char( 6 ) not null );

create unique index zb.pk_miejsce

on zb.miejsce (

nr_miejsca asc,

data_lotu asc,

nr_rejsu asc,

sym_lotn asc );

create index zb.fk_miejsce

on zb.miejsce (

data_lotu asc,

nr_rejsu asc,

sym_lotn asc );

create public synonym miejsce for zb.miejsce;

alter table zb.dzietyg primary key (

dzientyg );

alter table zb.port_lotniczy primary key (

sym_lotn );

alter table zb.typ_samol primary key (

naz_typu );

alter table zb.moze_ladow primary key (

naz_typu,

sym_lotn );

alter table zb.moze_ladow foreign key sam_lad (

naz_typu) references zb.typ_samol on delete restrict;

alter table zb.moze_ladow foreign key lotn_lad (

sym_lotn) references zb.port_lotniczy on delete restrict;

alter table zb.rejs primary key (

nr_rejsu,

sym_lotn );

alter table zb.rejs foreign key odlot (

sym_lotn) references zb.port_lotniczy on delete restrict;

alter table zb.rejs foreign key przylot (

sym_lotn) references zb.port_lotniczy on delete restrict;

alter table zb.samolot primary key (

nr_samolotu );

alter table zb.samolot foreign key tysa_samo (

naz_typu) references zb.typ_samol on delete restrict;

alter table zb.cena primary key (

kategoria,

nr_rejsu,

sym_lotn );

alter table zb.cena foreign key re_cen (

nr_rejsu,

sym_lotn) references zb.rejs on delete restrict;

alter table zb.lot primary key (

data_lotu,

nr_rejsu,

sym_lotn );

alter table zb.lot foreign key re_lo (

nr_rejsu,

sym_lotn) references zb.rejs on delete restrict;

alter table zb.lot foreign key sam_lot (

nr_samolotu) references zb.samolot on delete restrict;

alter table zb.w primary key (

nr_rejsu,

sym_lotn,

dzientyg );

alter table zb.w foreign key dzt_kie (

dzientyg) references zb.dzietyg on delete restrict;

alter table zb.w foreign key re_w (

nr_rejsu,

sym_lotn) references zb.rejs on delete restrict;

alter table zb.miejsce primary key (

nr_miejsca,

data_lotu,

nr_rejsu,

sym_lotn );

alter table zb.miejsce foreign key lo_mie (

data_lotu,

nr_rejsu,

sym_lotn) references zb.lot on delete restrict;

commit;

disconnect carloty;

exit;

Na podstawie ww specyfikacji wymagań oraz załączonego skryptu bazy danych policzyć nakłady na projekt metodą punktów danych.

Termin wykonania : 18 maja 2014

plik PDF z podaniem grupy i roku studiów przysłać na adres: zenonb@finus.com.pl


Wyszukiwarka

Podobne podstrony:
zadanie5 IZ 14
PRZYKŁADOWE ZADANIA EGZAMINACYJNE AiR 14
Fizyka I Zadania domowe 2013 14
Egzamin ZPI 14
zadanie4 IZ
Zadania na wykład 14 MSR
Zadanie 28 10 14
analiza tekstu zadanie domowe 1 03 14
Rozwiązanie zadania z fizyki 10 14 Bogdan Mendel Janusz Mendel Fizyka i Astronomia I Liceum Nowa Era
Rozwiązanie zadania z fizyki 12 14 Bogdan Mendel Janusz Mendel Fizyka i Astronomia I Liceum Nowa Era
Rozwiązanie zadania z fizyki 11 14 Bogdan Mendel Janusz Mendel Fizyka i Astronomia I Liceum Nowa Era
zadania1 ZPI (IZ)
MN energetyka zadania od wykładowcy 09-05-14, STARE, Metody Numeryczne, Część wykładowa Sem IV
E2 14 zadania na powtorzenie
Cwiczenia 14, Ekonometria, Ekonometria, Egzaminy + Testy, Egzaminy, ekonometria 2009, Ekonometria za
14 Pieniądz i system bankowy zadaniaid 15260

więcej podobnych podstron