wiki:DatabaseCreation

Version 3 (modified by 231267, 4 days ago) ( diff )

--

Креирање база на податоци

Членови на тим:

  • Aлександар Тодороски 231153
  • Антонио Трајковски 231156
  • Вељко Аџиќ 231267

Спорт

Тука може да се види како е креирана табелата и како е потпунета. Користено е готово множество од податоци при полнење на податоци. Вкупен број на записи е 40.

Спортска категорија

Во сликата може да се види како е креирана табелата SPORT_CATEGORY. Има поставено ограничување на gender да е од вредност 'M' или 'F', и надворешен клуч sport_id кој референцира id од sport. За полнењето користено е готово податочно множество кое е адаптирано во SQL. Вкупен број на записи но табелата изнесува 337.

Држава

Дефиниција на ентитетот COUNTRY е прикажана подолу. Табелата е пополнета со податоци кои се добиени од готово множество и адаптирано во SQL. Вкупно податоци генерирани се 165.

Спонсор

Табелата SPONSOR е дефинирана на следен начин. За пополнување на податоци е искористено готово множество кое е адаптирано во SQL. Вкупно редови генерирани е 10.001.

Тип на натпревар

Дефиниција на COMPETITION_TYPE е прикажана подолу. Податоците во ова табела се внесени од готово множество кое е адаптирано во SQL. Вкупен број податоци се 17.

Федерација

Ентитетот FEDERATION има 2 други ентитети кои наследуваат од него, INTERNATIONAL_FEDERATION и NATIONAL_FEDERATION. Основната табела ограничување за уникатно име и надворешен клуч кон спорт. Табелата за интернационална федерација има примарен клуч што е исто така надворешен клуч кој референцира кон федерација и каскадно се брише. Националната федерација, како и интернационална, има примарен клуч што е исто така надворешен клуч кон федерација, но има дополнително надворешен клуч кој референцира кон држава и има надворешен клуч кон интернационална федерација во која членува.

Податоците за национална федерација се генерираат на тој начин што за секоја комбинација од спорт и држава се генерира запис во FEDERATION, потоа генерира запис во NATIONAL_FEDERATION користејќи ги генерираните податоци од FEDERATION.

На сличен начин се генерираат и за INTERNATIONAL_FEDERATION, каде за секој спорт се генерира федерација, потоа користејќи ги тие записи од федерација се полни и табелата за интернационална федерација.

Ова ни генерира 6.640 федерации, од кои 6.600 се национални и 40 се интернационални.

Спортски клуб

Табелата SPORT_CLUB е дефинирана со ограничување да има уникатен пар име и држава, и е дефиниран надворешен клуч country_id кој референцира кон табелата за држава. Податоците за ова табела се генерираат со две кверија. Првото квери генерира национални репрезентации за секоја комбинација на држава и спортска категорија.

Второто квери генерира податоци со помош на привремена табела temp_clubs_names (готово множество од имиња на клубови) кади ги спојува случајно со една држава.

Вкупно се генерирани 42.477 редици.

Спортски тим

Ова табела е дефинирана со два надворешни клуча каде еден референцира кон спортска категорија и другиот кон спортски клуб. Податоците се генерираат со две кверија, едно генерира тимови за национални репрезентации, а другото за обични клубови тимоив.

За првото квери се користи секоја комбинација на национална репрезентација клуб и спортска категорија каде се генерира тим.

За второто квери се користи секој клуб што не е национална репрезентација и се зема 5 случајни спортски категории.

Ова ни генерира 478.725 редици.

Клуб-федерација

Табелата CLUB_FEDERATION претставува членство на клуб во некоја федерација. Табелата е дефинирана со ограничување кое проверува валидноста на почетен и краен датум, и надворешни клучеви кои референцираат кон федерација и кон клуб соодветно.

Се генерираат членства во првото квери така што за секоја комбинација на клуб што е национална репрезентација и национална федерација која е во иста држава како клубот се поставува случаен почетен датум пред 40 до 50 години.

Во второто квери за секој тим од секој клуб се земаат сите спортови кои играат тие тимови и од нив се спојува секоја национална федерација. Со овие комбинации се генерира членство кое почнало пред 30 до 35 години (случаен избор).

Ова табела има 951.120 редици.

Регион

Табелата REGION е дефинирана со примарен клуч id, име, и флег дали е дел од држава. Генерирана е од статичко множество на податоци и динамички генерирано од секоја држава поделена на северен, источен, западен и јужен регион. Ова табела има вкупно 1.345 редици.

Држава-регион

Ова табела претставува врска помеѓу држава и регион, имајќи само 2 надворешни клуча кои референцираат кон соодветната табела, и исто така нивната комбинација е примарен клуч.

Редиците се генерираат динамички со спојување на северен, јужен, источен и западен регион на секоја држава со таа држава. Исто се внесуваат податоци од готово множество.

Вкупен број на податоци но ова табела изнесува 1.447.

Локација

Табелата LOCATION е дефинирана со ограничување за капаците да е позитивен, ограничување името да е уникатно за држава, и со надворешен клуч кој референцира кон табела за држава.

Податоците се генерираат со случајна комбинација на неколку множества од имиња и случајни вредност, каде за секоја држава се генерира случајно помеѓу 300 и 1.060 локации. Ова генерира 108.697 редици.

Спонсортство

Ентитетот SPONSORSHIP претставува спонзорство помеѓу спонзор и тим и е дефиниран со окраничување amount да е позитивна, ограничување кое проверува валидност на почетен и краен датум, и два надворешни клуча кои соодветно референцираат кон спортски тим и спонзор.

Вредности за ова табела се генерираат на тој начин што за секој тим се спојува со 7 случајни спонзори и се доделуваат случајни вредности за почетен и краен датум и за исплатата. Ова генерира 3.351.076 вредности.

Национална лига

Ова табела е дефинирана со ограничување за проверка на валидност на date_started и date_disbanded, и надворешни клучеви кои референцираат кон спортска категорија, национална федерација и регион.

Податоците динамички се генерирани на тој начин што за секоја спортска категорија се спојуваат сите национални федерации и се генерира запис каде се избира случаен датум на започнување пред 5 до 6 години.

За оваа табела се генерирани 55.605 податоци.

Сезона

Табелата за SEASON е дефинирана со ограничување кое го проверува валидноста на почетниот и крајниот датум, и со надворешен клуч кој референцира кон национална лига.

За секоја национална лига се генерираат по 4 сезони, секоја една година по друга во последните 4 години со случајна варијација на почеток на сезоната за 0 до 30 дена.

Ова ни генерира 278.026 редици.

Натпревар

Оваа табела е дефинирана со ограничување кое го проверува почетниот и крајниот датум. Дополнително има надворешни клучеви кои референцираат кон тип на натпревар, федерација која го организира натпреварот и кон сезона (доколку е дел од некоја сезона).

Генерирање на податоци за оваа табела се врши така што за секоја сезона се спојува национална лига на таа сезона и се спојува тип на натпревар според име на лигата.

Ова ни генерира 278.026 редици, исто како и сезона.

Сезона-тим

Табелата SEASON_SPORT_TEAM претставува врска помеѓу сезона и спортски тим. Дефинирана е со комплексен примарен клуч кој е создаден од надворешни клучеви што референцираат кон сезона и спортски тим соодветно.

Податоците се генерираат со спојување секоја сезона со 20 случајни тимови од лигата на која припаѓа сезоната. Со оваа квери се генерираат 2.103.219 редици.

Attachments (29)

Note: See TracWiki for help on using the wiki.