База данных кинопроката

Автор работы: Пользователь скрыл имя, 22 Июня 2014 в 13:38, курсовая работа

Краткое описание

Основная задача менеджера является добавление новых фильмов и обслуживание клиентов, выдача в прокат фильмов. Менеджер помогает пользователям подобрать нужный фильм по предложенным критериям.
Задача администратора удалять старые киноленты (год выпуска которых превысил 15 лет). Также в обязанности администратора входит слежение за тем, чтобы взятые фильмы в прокат возвращались вовремя.

Прикрепленные файлы: 1 файл

«База данных кинопроката» студент группы вкб-41 Сорокин А. В.doc

— 604.50 Кб (Скачать документ)

Донской государственный технический университет

Кафедра ПОВТиАС

 

 

 

 

 

 

 

 

 

 

Курсовая работа по дисциплине

«Системы управления базами данных»

на тему: «База данных кинопроката»

 

 

 

 

 

 

 

 

 

 

 

 

 

Выполнил: студент группы ВКБ-41

Сорокин А.В.

 

Проверил:

Гранков М. В.


 

 

 

 

 

 

 

 

 

 

Ростов-на-Дону

2011

Введение

Предметная область: кинопрокат

Существует магазин, специализирующийся на прокате кинолент.

Пользователи БД: Менеджеры, Администратор

 

1. Внешняя модель предметной области

 

Пользователи БД:

Менеджер

Основная задача менеджера является добавление новых фильмов и обслуживание клиентов, выдача в прокат фильмов. Менеджер помогает пользователям подобрать нужный фильм по предложенным критериям.

Администратор

Задача администратора удалять старые киноленты (год выпуска которых превысил 15 лет). Также в обязанности администратора входит слежение за тем, чтобы взятые фильмы в прокат возвращались вовремя.

 

1.1 Описание объектов предметной области, их атрибутов и связей между объектами

 

Объекты:

Менеджер

Администратор

Клиент

Фильмы

Прокат

 

Атрибуты объектов:

Менеджер – id, ФИО, дата рождения, пол

Администратор – id, ФИО, дата рождения, пол

Фильм – id, Название, Год выпуска, Режиссёр, Описание, Продолжительность, Жанр

Прокат – id, дата выдачи, дата возврата, id фильма, id клиента взявшего фильм, id менеджера, выдавшего в прокат

Клиент – id, ФИО, адрес, id проката

 

1.2 Описание функциональных зависимостей

- один и тот же фильм  не может быть одновременно  в разных прокатах;

- в прокате может быть только 1 фильм;

- у каждого проката должен быть только 1 менеджер;

- каждому прокату должен соответствовать только 1 клиент;

- клиент не может взять  в прокат фильмы, пока не вернул  предыдущие;

- в прокате не должно быть фильмов, снятых больше 15 лет назад;

- каждый прокат имеет уникальный номер;

- номер сотрудника уникален;

- номер клиента уникален.

 

1.3 Описание способов, форм обработки и представления  сведений о хранимой в базе  данных информации

Запросы для администратора:

  • Список фильмов старше 15 лет. Из объекта “Фильм” выбрать все фильмы, значение атрибута “Год выпуска”, которых превысило 15 лет.
  • Список всех должников. Из объекта “Прокат” выбрать все номера клиентов, значение атрибута “Дата возврата”, которых просрочено.
  • Список всех актуальных прокатов. Из объекта “Прокат” выбрать все номера прокатов значение атрибута “Дата возврата”, которых не истекло.

 

Запросы для менеджера:

  • Добавить новый фильм. В объект “Фильм” внести новые данные: Название фильма, Год выпуска, Режиссёр, Жанр, Описание.
  • Печать всех прокатов, которые выдал менеджер. Из объекта “Прокат” выбрать все номера прокатов,  значение атрибута “ID менеджера”, которых равно нужном значению.
  • Список всех фильмов одного режиссёра . Из объекта “Фильм” выбрать все номера фильмов значение атрибута “Режиссёр”, которых “Джордж Лукас”.

 

 

 

 

 

 

 

 

1.4 Модель предметной области в виде схемы «объекты-связи» (ER-модель)

  1. Формирует  (связь n к n)
  2. Содержит какой-либо (связь n к n)
  3. Добавляет (связь n к n)
  4. Удаляет (связь 1 к n)
  5. Берёт (связь 1 к n)

 

2. Логическая модель предметной области

 

2.1 Схемы базовых отношений:

Отношение R1:

  1. Film - В отношении хранится вся информация по каждому фильму.

 

Атрибуты:

    1. id_film – номер фильма, неотрицательное целое, первичный ключ(составной(1), внешний ключ;
    2. nazvanie – название фильма, первичный ключ(составной(2), внешний ключ;
    3. opisane - описание фильма;
    4. god_vipuska – год выпуска фильма;
    5. regisser – режиссёр фильма;
    6. janre – жанр фильма.

 

Отношение R2:

  1. Prokat - В отношении хранится вся информация по каждому прокату.

 

Атрибуты:

  1. id_prokat – номер проката, неотрицательное целое, первичный ключ(составной(1), внешний ключ;
  2. id_film – номер фильма взятого в прокат, неотрицательное целое, первичный ключ(составной(2), внешний ключ;
  3. id_manager– номер менеджера отвечающего за данный прокат, неотрицательное целое, первичный ключ(составной(3), внешний ключ;
  4. id_client– номер клиента взявшего в прокат, неотрицательное целое, первичный ключ(составной(4), внешний ключ;
  5. date_in – дата выдачи в прокат;
  6. date_out – дата возврата.

 

Отношение R3:

  1. Client - В отношении хранится вся информация по каждому клиенту.

 

Атрибуты:

  1. id_client – номер клиента, неотрицательное целое, первичный ключ(составной(1), внешний ключ;
  2. id_prokat – номер проката, неотрицательное целое, первичный ключ(составной(2), внешний ключ;
  3. address – домашний адрес;
  4. name – ФИО клиента.

 

Отношение R4:

  1. Administrator - В отношении хранится вся информация об администраторе.

 

Атрибуты:

  1. id_admin – номер администратора, неотрицательное целое, первичный ключ(составной(1), внешний ключ;
  2. birth – дата рождения;
  3. pol – пол;
  4. fio – ФИО администратора.

 

Отношение R5:

  1. Manager - В отношении хранится вся информация о менеджерах.

 

Атрибуты:

  1. id_manager – номер менеджера, неотрицательное целое, первичный ключ(составной(1), внешний ключ;
  2. birth – дата рождения;
  3. pol – пол;
  4. fio – ФИО менеджера;
  5. id_prokat - номер проката, неотрицательное целое, первичный ключ(составной(2), внешний ключ.

2.2 Домены атрибутов

Отношение R1 (Фильм):

 

 

Атрибут

Домен

1

Номер фильма

целое положительное [4]

2

Название

строка [100]

3

Описание

строка [500]

4

Год выпуска

Тип данных описывающий дату вида dd.mm.yy

5

Режиссёр

строка [100]

6

Жанр

строка [20]


 

Отношение R2 (Прокат):

 

 

Атрибут

Домен

1

Номер проката

целое положительное [4]

2

Номер фильма

Доменом данного атрибута является множество значений, которые принимает атрибут «номер фильма» отношения R1

3

Номер клиента

Доменом данного атрибута является множество значений, которые принимает атрибут «номер клиента» отношения R3

4

Номер менеджера

Доменом данного атрибута является множество значений, которые принимает атрибут «номер менеджера» отношения R5

5

Дата выдачи

Тип данных описывающий дату вида dd.mm.yy

6

Дата возврата

Тип данных описывающий дату вида dd.mm.yy


 

Отношение R3 (Клиент):

 

 

Атрибут

Домен

1

Номер клиента

целое положительное [4]

2

Ф.И.О. клиента

строка [100]

3

Адрес

cтрока [100]

4

Номер проката

Доменом данного атрибута является множество значений, которые принимает атрибут «номер проката» отношения R2.


Отношение R4 (Администратор):

 

 

Атрибут

Домен

1

Номер администратора

целое положительное [4]

2

Ф.И.О. администратора

строка [100]

3

Пол

cтрока [8]

4

Дата рождения

Тип данных описывающий дату вида dd.mm.yy


 

Отношение R5 (Менеджер):

 

 

Атрибут

Домен

1

Номер менеджера

целое положительное [4]

2

Ф.И.О. менеджера

строка [100]

3

Дата рождения

Тип данных описывающий дату вида dd.mm.yy

4

Номер проката

Доменом данного атрибута является множество значений, которые принимает атрибут «номер проката» отношения R2.

5

Пол

cтрока [8]


 

 

2.3 Множество функциональных зависимостей

 

Film

{id_film} -> {god_vipuska,nazvanie, opisanie, janre, regisser}

 

Prokat

{id_film, id_manager, id_client} -> {date_out, date_in}

{id_prokat } -> {id_film, id_manager, id_client}

 

Client

{id_client} -> {address, fio}

{id_prokat} -> {id_client}

 

Administrator

{id_admin} -> {birth, pol, fio}

 

Manager

{id_manager} -> {birth, pol, fio}

{id_prokat} -> {id_manager}

 

2.4 Неприводимое множество функциональных зависимостей

Исходя из условий, определяющих неприводимое множество ФЗ:

1. Правая (зависимая) часть каждой  функциональной зависимости содержит  только один атрибут

2. В левой части каждой функциональной  зависимости множества S (детерминанте) не может быть опущен ни один атрибут без изменения замыкания S+.

3. Ни одна функциональная зависимость из S не может быть опущена без изменения замыкания S+,

R1 “Фильм”

{id_film} -> {god_vipuska}

{id_film} -> {opisanie}

{id_film} -> {janre}

{id_film} -> {regisser}

{id_film} -> {nazvanie}

 

R2 “Прокат”

{id_film, id_manager, id_client} -> {date_out}

{id_film, id_manager, id_client} -> {date_in}

{id_prokat} -> {id_film}

{id_prokat} -> {id_manager}

{id_prokat} -> {id_client}

 

R3 “Клиент”

{id_client} -> {address}

{id_client} -> {fio}

{id_prokat} -> {id_client}

 

R4 “Администратор”

{id_admin} -> {birth}

{id_admin} -> {pol}

{id_admin} -> {fio}

 

R5 “Менеджер”

{id_manager} -> {birth}

{id_manager} -> {fio}

{id_manager} -> {pol}

{id_prokat} -> {id_manager}

Полученные множества ФЗ отношений R1, R2, R3, R4, R5  являются неприводимым, т.к. правые части ФЗ содержат только один атрибут, в левых частях не может быть опущен ни один атрибут без изменения замыкания множества ФЗ, и ни одна ФЗ не может быть удалена из множества ФЗ без изменения его замыкания.

 

2.5 Множество супер-ключей

Супер-ключом отношения называется множество атрибутов этого отношения, которое содержит как подмножество хотя бы один потенциальный ключ. Супер-ключ должен обязательно обладать свойством уникальности и избыточности.

 

R1 “Фильм”

{id_film} -> {god_vipuska}

{id_film} -> {opisanie}

{id_film} -> {janre}

{id_film} -> {regisser}

{id_film} -> {nazvanie}

В данном случае любое подмножество атрибутов отношения R1, содержащее атрибут {id_film} будет являться супер-ключом.

Доказательство:

Построим замыкание множества зависимостей отношения R1. Замыкание будем получать по правилам Армстронга.

Отношение R1:

Film - В отношении хранится вся информация по каждому фильму.

Атрибуты:

  1. id_film – номер фильма, неотрицательное целое, первичный ключ(составной(1), внешний ключ;
  2. nazvanie – название фильма, первичный ключ(составной(2), внешний ключ;
  3. opisane - описание фильма;
  4. god_vipuska – год выпуска фильма;
  5. regisser – режиссёр фильма;
  6. janre – жанр фильма.

 

Множество функциональных зависимостей:

Film

{id_film} -> {god_vipuska,nazvanie, opisanie, janre, regisser}

Супер-ключ k1 = {id_film}

Докажем, что k1+ = R1

Применим правила: самоопределение, объединение.

k1+ = {id_film}

k1+ = {id_film, god_vipuska}

k1+ = {id_film, god_vipuska, nazvanie}

k1+ = {id_film, god_vipuska, nazvanie, opisanie}

k1+ = {id_film, god_vipuska, nazvanie, opisanie, janre}

k1+ = {id_film, god_vipuska, nazvanie, opisanie, janre, regisser}

Все атрибуты зависят от замыкания k1+, следовательно, k1+ = R1 и {id_film} является супер-ключом R1

 

R2 “Прокат”

{id_film, id_manager, id_client} -> {date_out}

{id_film, id_manager, id_client} -> {date_in}

{id_prokat} -> {id_film}

{id_prokat} -> {id_manager}

{id_prokat} -> {id_client}

В данном случае любое подмножество атрибутов отношения R2, содержащее атрибут

Информация о работе База данных кинопроката