Ім'я файлу: Курсова.docx Розширення: docx Розмір: 67кб. Дата: 26.05.2020 скачати Пов'язані файли: 1_СД_ССР.rtf Рентген.docx Стиль Арт-Деко - StudentLib.com.rtf Документ Microsoft Word (2).docx Олимпийский вид спорта – прыжки на батуте.docx 148519.doc Семінар №1. Реферат.docx Ділення суми на число.Doc Міністерство освіти та науки України СУМСКИЙ державний університет Кафедра комп’ютерних наук КУРСОВА РОБОТА на тему: Розробка інформаційної системи «Про фiльми та кассовi збори» Студент Зиков Р.А. Група ІНз-71с Варіант 3 Перевірив Кузіков Б. О. СУМИ 2020 Зміст Висновки 12 1. Постановка задачі Інформаційна система містить інформацію про фільми та касові збори фільмів в різних країнах протягом тижня (аналог IMDb). Типовими для ІС є запити: • Фільми якого жанру є найбільшим касовим в Україні? • Дослідить дані за кілька років. На якому тижні року касові збори максимальні? (Гіпотеза: на Різдво фільми збирають більше, ніж в середині літа). • Динаміка касових зборів у країні Х по рокам. На етапі проектування були сформульовані наступні вимоги до ІС: фільм має лише одну країну походження, та віднесений лише до одного жанру. Забезпечте виконання цих бізнес-вимог. Розширене завдання В процесі впровадження ІС з’ясувалися наступні особливості: існують фільми, зйомки яких відбувались у декількох країнах, фільми можуть бути віднесені до декількох різних жанрів. Також актуальною є інформація щодо нагород, які отримав фільм (Оскар, Золота малина,...). Створіть сценарій міграції з прототипу на оновлену версію. Які зміни треба зробити у запитах з базового завдання? Створіть запити, які дадуть відповіді на наступні питання. • Яку касу зібрали оскароносні фільми 2016 року у перші три тижні свого прокату. • Топ 5 найбільш касових французьких фільмів? • «Локальне кіно» Фільми які зібрали у своїй каїні (країнах) більше, ніж у решті країн (світовому прокаті). Проаналізуйте план виконання одного з запитів. 2. Проектування інформаційної системи Побудова діаграми потоків даних За умовою завдання інформаційна система потрібна для сайту перегляду фільмів. Можемо припустити що система буде взаємодіяти з переглядачами. Переглядач після перегляду може залишити оцінку на обраний фільм (див. рис. 2.1). Рисунок 2.1. – DFD 0-го рівня для ІС «Сайт рейтингу фільмів» Переглядачі можуть дивитися рейтинг других переглядачів та встановлювати свій рейтинг до обраного фільму. Рейтинг автоматично перераховується. (див. рис. 2.2). Рисунок 2.2. – DFD 1-го рівня для ІС «Сайт рейтингу фільмів» Проектування бази даних Побудова бази даних При аналізі предметної області рейтингу фільмів були виділені такі сховища даних: «Фільм», «Жанр», «Країна», «Рейтинг». Побудуємо ERD діаграму ґрунтуючись на цих сховищах. Сутності «Фільм» і «Жанр» пов’язані відношенням один до багатьох, тому що 1 жанр може мати багато фільмів. Сутності «Фільм» і «Країни» пов’язані відношенням один до одного. . Сутності «Фільм» і «Рейтинг» пов’язані відношенням один до багатьох, тому що один фільм може мати багато оцінок від глядачів (див. рис. 2.3) Рисунок 2.3 – ERD для ІС «Оцінка рейтингу фільмів» 2.3. Логічна реалізація бази даних Проаналізувавши сутність, використовувані в моделі ІС, перейдемо до реалізації структури БД. Для цього представимо імена необхідних таблиць, атрибутів, типів, їх призначення та обмеження (див. табл. 2.1). Таблиця 2.1 - Структура БД
3. Фізична реалізація 3.1. Фізична реалізація ІС МОЗ Сценарій створення структури реляційної БД Drop table Movies; Drop table Countries; Drop table Genres; Drop table BoxOffice; Create table Movies ( id INTEGER PRIMARY KEY, name VARCHAR(100) NOT NULL UNIQUE, release_date DATE NOT NULL, country_id INTEGER NOT NULL REFERENCES Countries(id), genre_id INTEGER NOT NULL REFERENCES Genres(id), oscars_count INTEGER NOT NULL ); Create table Countries ( id INTEGER PRIMARY KEY, name VARCHAR(20) NOT NULL UNIQUE ); Create table Genres ( id INTEGER PRIMARY KEY, name VARCHAR(20) NOT NULL UNIQUE ); Create table BoxOffice ( id INTEGER PRIMARY KEY, movie_id INTEGER NOT NULL REFERENCES Movies(id), year INTEGER NOT NULL, week INTEGER NOT NULL, country_id INTEGER NOT NULL REFERENCES Countries(id), box_office NUMBER(7,2) NOT NULL ); 3.2.Реалізація типових запитів Яку касу зібрали оскароносні фільми 2016 року у перші три тижні свого прокату: select name, [sum] from ( select m.name, sum(b.box_office) as [sum], row_number() over(partition by m.id order by b.year, b.week) week_num from movies m join boxoffice b on m.id = b.movie_id where exists(select 1 from oscar_film o where o.movie_id = m.id) ) s where s.week_num <= 3 Топ 5 найбільш касових французьких фільмів? select top(5) m.name, sum(b.box_office) [sum] from movies m join country c on m.country_id = c.id join boxoffice b on m.id = b.movie_id where c.name = 'France' order by [sum] desc «Локальне кіно» Фільми які зібрали у своїй каїні (країнах) більше, ніж у решті країн (світовому прокаті). select m.name from movies m where ( select sum(b.box_office) from boxoffice b where m.country_id = b.country_id ) > ( select sum(b.box_office) from boxoffice b where m.country_id != b.country_id ) Додаток А. Сценарій заповнення БД ІС INSERT INTO Countries VALUES (1, ‘США’); INSERT INTO Countries VALUES (2, ‘Германия’); INSERT INTO Countries VALUES (3, ‘Франция’); INSERT INTO Countries VALUES (4, ‘Великобритания’); INSERT INTO Countries VALUES (5, ‘Швеция’); INSERT INTO Genres VALUES (1, ‘Комедия’); INSERT INTO Genres VALUES (2, ‘Триллер’); INSERT INTO Genres VALUES (3, ‘Боевик’); INSERT INTO Genres VALUES (4, ‘Ужасы’); INSERT INTO Genres VALUES (5, ‘Мюзикл’); INSERT INTO Genres VALUES (1, ‘Фильм 1’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 1, 1, 0); INSERT INTO Genres VALUES (2, ‘Фильм 2’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 2, 1, 2); INSERT INTO Genres VALUES (3, ‘Фильм 3’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 1, 2, 1); INSERT INTO Genres VALUES (4, ‘Фильм 4’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 3, 1, 0); INSERT INTO Genres VALUES (5, ‘Фильм 5’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 4, 1, 0); INSERT INTO Genres VALUES (6, ‘Фильм 6’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 1, 5, 0); INSERT INTO Genres VALUES (7, ‘Фильм 7’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 3, 3, 0); INSERT INTO Genres VALUES (8, ‘Фильм 8’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 4, 2, 1); INSERT INTO Genres VALUES (9, ‘Фильм 9’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 3, 5, 0); INSERT INTO Genres VALUES (10, ‘Фильм 10’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 5, 2, 2); INSERT INTO Genres VALUES (11, ‘Фильм 11’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 3, 2, 1); INSERT INTO Genres VALUES (12, ‘Фильм 12’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 2, 3, 0); INSERT INTO Genres VALUES (13, ‘Фильм 13’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 5, 5, 0); INSERT INTO Genres VALUES (14, ‘Фильм 14’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 2, 2, 0); INSERT INTO Genres VALUES (15, ‘Фильм 15’, TO_DATE('2019-01-01', 'YYYY-MM-DD'), 4, 4, 0); INSERT INTO BoxOffice VALUES (1, 1, 2019, 1, 1, 10000); INSERT INTO BoxOffice VALUES (2, 1, 2019, 1, 2, 10000); INSERT INTO BoxOffice VALUES (3, 1, 2019, 1, 3, 10000); INSERT INTO BoxOffice VALUES (4, 1, 2019, 1, 4, 10000); INSERT INTO BoxOffice VALUES (5, 1, 2019, 1, 5, 10000); INSERT INTO BoxOffice VALUES (6, 2, 2019, 1, 1, 10000); INSERT INTO BoxOffice VALUES (7, 2, 2019, 2, 1, 10000); INSERT INTO BoxOffice VALUES (8, 2, 2019, 3, 1, 10000); INSERT INTO BoxOffice VALUES (9, 3, 2019, 1, 4, 10000); INSERT INTO BoxOffice VALUES (10, 3, 2019, 2, 4, 10000); INSERT INTO BoxOffice VALUES (11, 3, 2019, 3, 4, 10000); INSERT INTO BoxOffice VALUES (12, 4, 2019, 1, 1, 10000); INSERT INTO BoxOffice VALUES (13, 4, 2019, 1, 2, 10000); INSERT INTO BoxOffice VALUES (14, 4, 2019, 1, 3, 10000); INSERT INTO BoxOffice VALUES (15, 5, 2019, 2, 2, 10000); ВисновкиПри виконанні курсової роботи була спроектована і реалізована база даних ІС «надає інформаційну систему, яка містить інформацію про фільми та касові збори фільмів в різних країнах протягом тижня». Побудовані DFD (0 та 1 рівня) і ERD діаграми концептуальної моделі даної інформаційної системи. Реалізовано сценарії створення і заповнення бази даних, а також реалізовані типові запити, а саме: Яку касу зібрали оскароносні фільми 2016 року у перші три тижні свого прокату. Топ 5 найбільш касових французьких фільмів. «Локальне кіно» Фільми які зібрали у своїй каїні (країнах) більше, ніж у решті країн (світовому прокаті). |