
1.4 Проектирование таблиц базы данных.
После того как исходную структуру БД мы привели к третьей нормальной форме, у нас получилось в сумме шесть таблицы:
Таблица 1
ZuevFilm |
||
Название поля |
Тип данных |
Правило целостности |
Nazvanie |
VARCHAR2(20) |
PRIMARY KEY |
Acter |
VARCHAR2(20) |
PRIMARY KEY |
Kodzhanra |
NUMBER(4,0) |
|
Prodolzhitelnost |
NUMBER(3,0) |
Prodolzhitelnost>0 |
Godvipuska |
NUMBER(4,0) |
Godvipuska>1900 |
Proizvoditel |
VARCHAR2(20) |
|
Kodstrana |
NUMBER(4,0) |
|
Kolprodbiletov |
NUMBER(7,0) |
Kolprodbiletov>0 |
Viruchka |
NUMBER(12,0) |
Viruchka>0 |
В таблице 1 будет храниться информация о программах. Эта таблица имеет следующие поля:
Nazvanie – первичный ключ таблицы - должен быть уникальным. Название фильма не может превышать 20 символов;
Kodzhanra – определяет код жанра, который берется из таблицы ZuevKodzhanra. Так как число жанров не может быть очень большим, то код жанра будет состоять из четырех цифр;
Prodolzhitelnost – определяет продолжительность фильма. Продолжительность фильма определяется минутами, в данном случае – это число, состоящее максимум из трех цифр, так как фильм с продолжительностью более 1000 минут невозможен.;
Godvipuska – определяет год выпуска данного фильма. Год выпуска – число, состоящее из 4 цифр.;
Proizvoditel – определяет компанию производителя фильма. Производитель – корпорация или киностудия, ее название не может превышать 20 символов;
Kodstrana - определяет код страны, в которой проходили съемки, выбирается из таблицы ZuevKodstrana. Так как стран, имеющих отношение к новым фильмам не больше 1000, то код страны не будет превышать четырех цифр;
Kolprodbiletov – определяет количество проданных билетов на один фильм. Так как количество проданных билетов может достигать при длительном прокате миллиона штук, то для хранения такой информации будем использовать 7 символов;
Viruchka – определяет общую выручку с проката картины.
Используемые типы данных. Так как выручка определяется числом проданных билетов, а оно может достигать миллиона, то выручка может достигать в разы больших значений, поэтому для хранения будем использовать 12 символов:
VARCHAR2(L) - символьные данные фиксированной длины L байт.
NUMBER(a,b) – числовое значение с общим числом цифр a, и с количеством цифр после запятой b.
Таблица 2
ZuevKodzhanra |
||
Название поля |
Тип данных |
Правило целостности |
Kodzhanra |
NUMBER(4,0) |
PRIMARY KEY |
Zhanr |
VARCHAR2(20) |
|
В таблице 2 будет храниться информация о жанрах. Эта таблица имеет следующие поля:
Kodzhanra -первичный ключ таблицы- должен быть уникальным;
Zhanr – определяет один из жанров фильмов. Название жанра не может превышать 20 символов;
Используемые типы данных:
VARCHAR2(L) - символьные данные фиксированной длины L байт;
NUMBER(a,b) – числовое значение с общим числом цифр a, и с количеством цифр после запятой b.
Таблица 3
ZuevSeansi |
||
Название поля |
Тип данных |
Правило целостности |
Data |
DATE |
PRIMARY KEY |
Nachalo |
DATE |
PRIMARY KEY |
Prodolzhitelnostseansa |
NUMBER(3,0) |
Prodolzhitelnostseansa>0 |
Cena |
NUMBER(5,2) |
Cena>0 |
Nazvanie |
VARCHAR2(20) |
FOREIGN KEY ZuevFilm |
В таблице 3 будет храниться информация о версиях программы. Эта таблица имеет следующие поля:
Data – первичный ключ таблицы - должен быть уникальным. Дату показа фильма храним в формате даты;;
Nachalo – первичный ключ таблицы - должен быть уникальным;
Prodolzhitelnostseansa – определяет продолжительность сеанса. Так же как и продолжительность фильма не может превышать 1000 минут, поэтому для хранения будем использовать символа;
Cena – определяет цену на билет, определено больше ноля Цена на билет не превышает 1000 рублей, однако при записи цены используют две цифры после запятой (например 100,00 р.) поэтому будем использовать 5 символов, 2 из них после запятой;
Nazvanie – название фильма.
Используемые типы данных:
VARCHAR2(L) - символьные данные фиксированной длины L байт;
NUMBER(a,b) – числовое значение с общим числом цифр a, и с количеством цифр после запятой b.
DATE - хранение даты и времени.
Таблица 4
ZuevSvobodniemesta |
||
Название поля |
Тип данных |
Правило целостности |
Nachalo |
DATE |
PRIMARY KEY FOREIGN KEY ZuevSeansi |
Data |
DATE |
PRIMARY KEY FOREIGN KEY ZuevSeansi |
Ryad |
NUMBER(2,0) |
PRIMARY KEY, Ryad>0 |
Mesto |
NUMBER(2,0) |
PRIMARY KEY, Mesto>0 |
В таблице 4 будет храниться информация о свободных местах на сеансы. Эта таблица имеет следующие поля:
Nachalo – первичный ключ таблицы - должен быть уникальным;
Dataseansa – первичный ключ таблицы - должен быть уникальным;
Ryad – первичный ключ таблицы - должен быть уникальным;
Mesto – первичный ключ таблицы - должен быть уникальным.
Используемые типы данных:
VARCHAR2(L) - символьные данные фиксированной длины L байт;
NUMBER(a,b) – числовое значение с общим числом цифр a, и с количеством цифр после запятой b.
DATE - хранение даты и времени.
Таблица 5
ZuevKodstrana |
||
Название поля |
Тип данных |
Правило целостности |
Kodstrana |
NUMBER(4,0) |
PRIMARY KEY |
Strana |
VARCHAR2(20) |
FOREIGN KEY ZuevFilm |
В таблице 5 будет храниться информация о странах. Эта таблица имеет следующие поля:
Kodstrana -первичный ключ таблицы- должен быть уникальным;
Strana – страна-производитель.
Используемые типы данных:
VARCHAR2(L) - символьные данные фиксированной длины L байт;
NUMBER(a,b) – числовое значение с общим числом цифр a, и с количеством цифр после запятой b.
Таблица 6
ZuevActer |
||
Название поля |
Тип данных |
Правило целостности |
Acter |
VARCHAR2(20) |
PRIMARY KEY |
Nazvanie |
VARCHAR2(20) |
FOREIGN KEY ZuevFilm |
В таблице 6 будет храниться информация об актерах. Эта таблица имеет следующие поля:
Acter -первичный ключ таблицы- должен быть уникальным;
Nazvanie – название фильма;
Используемые типы данных:
VARCHAR2(L) - символьные данные фиксированной длины L байт.