Скачать .docx |
Курсовая работа: База даних фільмотеки розробка проекту
Анотація
Даний курсовий проект присвячений розробці бази даних фільмотеки. Розглянуті оптимальні шляхи її функціонування, з допомогою розробленої бази даних.
Робота виконана на українській мові на 22 листах, містить 6 рисунків, 2 таблиці та 2 додатка.
ЗМІСТ
ВСТУП.. 4
1 Обстеження і аналіз фільмотеки. Постановка задачі 5
1.1Обстеження функціонування фільмотеки. 5
1.2Аналіз функціонування фільмотеки. 6
2 Розроблення проекту бази даних фільмотеки. 9
2.1Розроблення концептуальної моделі9
2.2Розроблення специфікації програмних модулів. 9
2.3Розроблення логічної моделі бази даних фільмотеки. 10
2.4Розробка алгоритмів і графічних інтерфейсів програми. 11
2.5Розробка фізичної моделі 12
3. Результат розроблення бази даних фільмотеки. 14
Висновки. 15
Список використаних джерел. 16
Додаток А.. 17
Додаток В.. 30
Вступ
На сьогоднішній день добре розвинута кіноіндустрія і якщо порівняти з минулими роками то отримати будь-який фільм чи мультфільм, котрий сподобався не становить проблеми. І тому в домашній бібліотеці може заходитися велика кількість дисків з фільмами, мультфільмами.
Тому потрібно вести облік фільмів та іншу додаткову про них інформацію. У силу великої кількості фільмів якщо вести цей облік у паперовому виді, то ця робота зводиться у досить рутинну і трудомістку процедуру. Таким чином з’являється необхідність якимось чином автоматизувати цей процес. Метою цієї курсової роботи є полегшення введення обліку інформації про фільм для домашнього користування. Шляхом розробки буде створена база даних і програмний додаток, що автоматизую процес пошуку за введеними параметрами, допоможе полегшити введення, корекцію і видалення інформації про фільми (диски), і допоможе створювати звіти.
Для реалізації поставленої задачі буде використана СКБД Microsoft Access 2000.
1 Обстеження і аналіз фільмотеки. Постановка задачі
1.1 Обстеження функціонування фільмотеки
У багатьох з нас є своя бібліотека фільмів, я кою можуть користуватися як ми так і наші знайомі. Фільми можуть складатися з декількох частин, зберігатися як на одному так і на декількох дисках чи навіть на одному диску може зберігатися декілька фільмів. Тип носія – CD.
Інформація про фільми міститься на вкладишу до диску, де зазначено
a) Назва фільму.
b) Ім’я (імена) режисера (ів).
c) Прізвище (прізвища) режисера (ів).
d) Ім’я (імена) актора (ів).
e) Прізвище (прізвища) актора (ів).
f) Жанр .
Інформація про диск:
a) Назва диску.
b) Зміст диску.
Вашому знайомому (орендатор) потрібен фільм заданим вище атрибутом. Якщо фільм чи фільми знайдені, спочатку надається йому інформація про наявність, а потім орендатор, виходячи з наданої інформації орендує або не орендує диск/диски.
Інформація про орендатора:
a) Прізвище.
b) Ім’я.
c) Телефон.
Якщо диск орендовано, тоді записується дата оренди в блокнот чи в електронний редактор.
Інформація про оренду:
a) Дата аренди.
b) Назва диску.
Коли диск повертає орендатор, записується дата повернення в блокнот чи в електронний редактор.
Господаря може цікавити: які фільми орендатор має та мав в користуванні.
Отже, з вище сказаного випливають такі проблеми:
1) Незручність ведення записів о фільмах.
2) Знайти потрібний фільм займає багато часу.
1.2 Аналіз фільмотеки
На підставі обстеження функціонування фільмотеки проведемо аналіз за методологією нотації Йордана у вигляді ієрархій діаграм. Представимо всю інформацію у графічному виді за допомогою діаграм DFD. Спочатку розробимо діаграму 0 рівня (рис. 1). Тут представлено взаємодію зовнішніх сутностей для вирішення поставленої задачі..
Інформація від орендатораІнформація про фільм від власника
Інформація про диск
Запит за атрибутом
Інформація про фільм оренда дисків
Звіт про орендовані диски
Рисунок 1 – DFD нульового рівня функціонування фільмотеки.
Деталізуємо основні процеси DFD 0 рівня, що представлені на рисунку 2. На DFD першого рівня з‘являться наступні процеси:
Адміністрування диску
Адміністрування фільму
Реєстрування орендатора
Реєстрування оренди
Формуваннязапиту
Формування звіту
Рисунок 2 – DFD першого рівня функціонування фільмотеки.
Далі розробимо таблицю відповідності потоків даних з 0 по 1 рівні (дивись таблицю 1).
0-й рівень | 1-й рівень | Атрибут и |
Запит за атрибутом | Запит за атрибутом | Назва |
Жанр | ||
Імена акторів | ||
Імена режисерів | ||
Фаміліїакторів | ||
Фамілії режисерів | ||
Інформація від орендатора | Інформаціяпро орендатора | Фамілія |
Ім’я | ||
Телефон | ||
Інформація про фільм |
Назва | Назва |
Жанр | Жанр | |
Інформаціяпро акторів | Імена акторів | |
Фаміліїакторів | ||
Інформаціяпро режисерів | Імена режисерів | |
Фамілії режисерів | ||
Інформація про фільм від власника |
Назва | Назва |
Жанр | Жанр | |
Інформаціяпро акторів | Імена акторів | |
Фаміліїакторів | ||
Інформаціяпро режисерів | Імена режисерів | |
Фамілії режисерів | ||
Інформація про диск | Назва диску | Назва диску |
Зміст диску | Зміст диску | |
Звіт про орендовані диски | Звіт про орендовані диски | Назва фільму |
Фамілія орендатора | ||
Ім’яорендатора | ||
Телефон орендатора | ||
Дата оренди | ||
Оренда дисків | Інформація про оренду диска | Дата оренди |
Інформація про повернення | Дата повернення | |
Інформаціяпро орендатора | Фамілія | |
Ім’я | ||
Телефон |
Таблиця 1 – Атрибути потоків 0 - 1 рівнів
1.3 Постановка задачі
Ціллю даної роботи є ефективне зберігання інформації о фільмах та дисках. Для цього буде розроблена база даних і програмне забезпечення, яке повинне забезпечити наявність сильної пошукової системи, за допомогою якої у короткі строки можна найти потрібну нам інформацію.
Ця база даних і програмне забезпечення повинні забезпечити користувача такими можливостями : ·
– пошук фільму по введених параметрах :
· по назві фільму
· по прізвищу актора
· по імені актора
· по прізвищу режисера
· по імені режисера
· пожанру ; ·
– формувати звіт про видані диски (кому виданий диск, коли виданий диск);
– формувати звіт по статистиці оренди;
– реєструвати клієнта;
– реєструвати диск;
– реєструвати оренду диска.
Для реалізації поставленої задачі необхідно використати СКБД Microsoft Access 2000.
Вимоги до апаратної частини :
– процесор Pentium 1000 MHz або більше;
– 32 Mb Videocard або більше.
Вимоги до програмної сумісності :
– 100 Mbвільного місця.
– WindowsXP, 2000;
– Offise 2003 ;
– 64 Mb ОЗП.
Вимоги до програмної документації :
– інструкція користувача.
2 Розроблення проекту бази даних фільмотеки
2.1 Розробка концептуальної моделі
Враховуючи аналіз функціонування фільмотеки будуємо діаграму потоків даних ERD (дивись рисунок 5).
Рисунок 5 - ERD функціонування фільмотеки
2.2 Розроблення специфікації програмних модулів
Після аналізу і з’ясування всіх процесів і функцій, можна визначити програмний склад.
Форма «Меню» відкривається при першому запуску бази даних і є основою, з неї можна викликати будь-яку підлеглу форму за допомогою спеціальних клавіш. З цієї форми ми можемо перейти на форми «Диск», «Фильм», «Актёр» і «Режиссер», «Запросы», «Арендатор », «Аренда диска ».
У формі «Диск» ми можемо ввести: назву фільму(ів), назву диску, автоматично згенерується код диска.
У формі «Фильм» ми можемо ввести: назву фільму, назву жанру, прізвища та ім’я акторів, прізвища та ім’я режисерів та автоматично згенерується код фільму.
У формі «Актёр» ми можемо ввести прізвище та ім’я актора(ів), автоматично згенерується код актора.
У формі «Режиссер» ми можемо ввести прізвище та ім’я режисера(ів), автоматично згенерується код режисера.
Форма «Запросы» має можливість оброблювати такі запити:
· запит про пошук фільму по його назві
· запит про пошук фільму по прізвищу актора
· запит про пошук фільму по імені актора
· запит про пошук фільму по прізвищу режисера
· запит про пошук фільму по імені режисера
· запит про пошук фільму по жанру.
Відповідно, на ці запити у відповідь ми отримуємо звіти по питанню, що зацікавило.
У формі «Арендатор» вхідними даними буде прізвище і ім’я орендатора та телефон, автоматично згенерується код орендатора.
У формі «Аренда диска» вхідними даними буде прізвище і ім’я орендатора, назва диску та ми можемо ввести дату оренди та дату повернення.
2.3 Розроблення логічної моделі бази даних фільмотеки
Перейдемо до розробки логічної моделі бази даних, враховуючи представлену вище ERD. Кожній з сутностей на ERD відповідатиме таблиця бази даних. Структура цих таблиць з в казанням зв‘язку між ними представлена на рисунку 6.
Рисунок 6 –Логічна модель бази даних функціонування фільмотеки.
2.4 Розробка алгоритмів і графічних інтерфейсів програми
Головнаформа «Меню» складається з таких форм :
a) форма «Аренда диска» оформляє оренду диску. Має поля : «Фамилия арендатора», «Имя арендатора», «Дата аренды», «Дата возврата». А також кнопку виходу з форми.
b) форма «Фильм» - адмініструє фільм. Має поля: «Название», «Жанр». А також підпорядковані форми: «Режиссер» та «Актёр». Має кнопки «Новый жанр», «Добавить режиссера», «Добавить актёра»та кнопка виходу з форми, котрі відкривають форми «Жанр», «Режиссер», «Актёр» відповідно.
c) форма «Диск» - адмініструє диск. Має поле «Название», підпорядковану таблицю «Фильм». Має кнопки виходу з форми та «Новый фильм», що відкриває форму «Фильм».
d) форма «Актёр» - адмініструє нового актора. Має поля: «Фамилия», «Имя» та кнопка виходу з форми.
e) форма «Режиссер» - адмініструє нового режисера. Має поля: «Фамилия», «Имя» та кнопка виходу з форми.
f) форма «Арендатор» - адмініструє нового орендатора. Має поля: «Фамилия», «Имя», «Телефон» та кнопка виходу з форми.
g) форма «Запросы» - включає в себе кнопки «по названию фильма», «по жанру», «по имени актёра», «по фамилии актёра», «по имени режиссера», «по фамилии Режиссера» та кнопку виходу з форми.
2.5 Розробка фізичної моделі
Згідно розробленого у проектній частині логічної моделі розробимо фізичну модель. Для цього замінимо абстрактні назви полів на ті, що будуть в базі даних та вкажемо розмірність полів там, де це необхідно. Так як база даних розробляється у Microsoft Access 2000, імена у фізичній і логічній базах будуть однакові. Фізична модель бази даних представлена на таблицях 2.
Таблиця 2- Фізична модель таблиць
Имя поля | Тип | Формат поля | Ключ в ЛМ |
Ключ в ФМ |
Индек-сация |
Обяз. поле | Примечание |
Режиссер | |||||||
Код_Режиссера | счетчик | длинное целое | PK | да | да | ||
Фам_Режиссера | текстовый | нет | IK | да | |||
Имя_Режиссера | текстовый | нет | IK | да | |||
Фильм | |||||||
Код_ Фильма | счетчик | длинное целое | PK | да | да | ||
Код_Жанра | числовой | длинное целое | FK | да | да | ||
Назв_Фильма | текстовый | нет | IK | да | |||
Актёр | |||||||
Код_ Актёра | счетчик | длинное целое | PK | да | да | ||
Фам_Актёра | текстовый | нет | IK | да | |||
Имя_Актёра | текстовый | нет | IK | да | |||
Диск | |||||||
Код_ Диска | счетчик | длинное целое | PK | да | да | ||
Назв_ Диска | текстовый | нет | да | ||||
Жанр | |||||||
Код_Жанра | счетчик | длинное целое | PK | да | да | ||
Назв_Жанра | числовой | длинное целое | нет | да | |||
Арендатор | |||||||
Код_Арендатора | счетчик | длинное целое | PK | да | да | ||
Фам_Арендатора | текстовый | нет | IK | да | |||
Имя_Арендатора | текстовый | нет | IK | да | |||
Тел_Арендатора | числовой | целое | нет | да | |||
Фильмы _ Режиссеры | |||||||
Код_Режиссера | числовой | длинное целое | PK, FK1 | да | да | ||
Код_Фильма | числовой | длинное целое | PK,FK2 | да | да | ||
Фильмы _ Актёры | |||||||
Код_Актёра | числовой | длинное целое | PK, FK1 | да | да | ||
Код_Фильма | числовой | длинное целое | PK,FK2 | да | да | ||
Диск_Фильм | |||||||
Код_Диска | числовой | длинное целое | PK, FK1 | да | да | ||
Код_Фильма | числовой | длинное целое | PK,FK2 | да | да | ||
Аренда диска | |||||||
Дата_Аренды | дата/время | PK | да | да | |||
Код_ Диска | числовой | длинное целое | PK, FK1 | да | да | ||
Код_Арендатора | числовой | длинное целое | PK,FK2 | да | да | ||
Дата_Возврата | дата/время | нет | нет |
Після складення фізичної моделі даних можна зробити такі висновки:
· Відсутні відмінності в схемах між фізичною та логічною моделями
· В процесі роботи була досягнута третя нормальна форма
· При оцінці якості структури бази даних аномалії не були виявлені.
2 .6 Кодування і тестування
Тексти програмного коду наведені у додатку А.
Згідно розробленій в проектній частині логічної моделі була створена і закодована база даних фільмотеки. Інструкція користувача знаходиться у додатку Б.
При тестуванні роботи БД були виконані такі дії:
a) Запущена база даних шляхом відкриття головного вікна «Меню».
b) Адміністровано декілька фільмів, шляхом натиснення кнопки «Регистрация фильма» та заповнення полів «Название», «Жанр» (був вибраний зі списку). Режисер та актори були вибрані зі списку. Всі дані були успішно додані до таблиць.
c) Було введено до бази даних нових акторів та режисерів, шляхом натиснення кнопок «Добавить актёра», «Добавить режиссера» та заповнення полів «Имя» та «Фамилия». Всі дані були успішно додані до таблиць «Актёр» та «Режиссер».
d) Адміністровано декілька дисків, шляхом заповнення поля «Название» та доданням фільмів зі списку.
e) Був виконаний запит по жанру, шляхом натиснення кнопки «Запрос по жанру» з вікна «Выбор запросов». Результатами запиту була виведена таблиця з назвами фільмів на диску заданого жанру. Всі виведені дані відповідають даним з таблиці.
Під час тестування аномалій виявлено не було.
3 Результат розроблення бази даних фільмотеки
У результаті розробки була створена база даних із програмним дотатком для фільмотеки. Інструкція користувача знаходиться у додатку Б.
Вимоги до апаратної частини :
– процесор Pentium 1000 MHz або більше;
– 32 MbVideocardабо більше.
Вимоги до програмної сумісності :
– 100 Mb вільного місця.
– WindowsXP, 2000;
– Offise 2000, 2003 ;
– 64 Mb ОЗП.
Створена база даних максимально полегшує роботу ведення записів про фільми та диски, за рахунок використання зручних екранних форм і можливості швидкого пошуку в базі даних тієї чи іншої інформації, наприклад, пошук потрібного фільму за назвою, за прізвищем акторів, що у ньому грають або за прізвищем режисерів . Для реалізації даної програми була використана СКБД Microsoft Access 2000.
Впровадження розробленої системи дозволить підвищити кількість орендаторів, а також надає механізм для реагування на зміни, що відбуваються.
У ході розробки роботи ми вирішили наступні задачі:
- аналіз предметної області
- розроблення концептуальної, логічної і фізичної моделі
- виконання запитів, форми, звіти та інше.
1 . Базы данных: учебный курс.– М.: ООО «Издательство АСТ», 2001.–504 с.
2. Конспект лекцій.
3 . MICROSOFTACCESS 2000 учебный курс.– C.-П.: «ПИТЕР», 2002.–512 с.
Додат ок А
Схема БД
Програмний код :
Form_ Диск
Option Compare Database
Private Sub Form_Load()
End Sub
Private Sub New_film_Click()
On Error GoTo Err_New_film_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = ChrW(1060) & ChrW(1080) & ChrW(1083) & ChrW(1100) & ChrW(1084)
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_New_film_Click:
Exit Sub
Err_New_film_Click:
MsgBox Err.Description
Resume Exit_New_film_Click
End Sub
Private Sub Диск_Фильм_Enter()
End Sub
Private Sub Кнопка16_Click()
On Error GoTo Err_Кнопка16_Click
DoCmd.Close
Exit_Кнопка16_Click:
Exit Sub
Err_Кнопка16_Click:
MsgBox Err.Description
Resume Exit_Êíîïêà16_Click
End Sub
Private Sub Код_Диска_BeforeUpdate(Cancel As Integer)
End Sub
Form_ Фильм
Option Compare Database
Private Sub Form_Load()
End Sub
Private Sub New_Producer_Click()
On Error GoTo Err_New_Producer_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = ChrW(1056) & ChrW(1077) & ChrW(1078) & ChrW(1080) & ChrW(1089) & ChrW(1089) & ChrW(1077) & ChrW(1088)
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_New_Producer_Click:
Exit Sub
Err_New_Producer_Click:
MsgBox Err.Description
Resume Exit_New_Producer_Click
End Sub
Private Sub New_Actor_Click()
On Error GoTo Err_New_Actor_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = ChrW(1040) & ChrW(1082) & ChrW(1090) & ChrW(1105) & ChrW(1088)
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_New_Actor_Click:
Exit Sub
Err_New_Actor_Click:
MsgBox Err.Description
Resume Exit_New_Actor_Click
End Sub
Private Sub Êíîïêà23_Click()
On Error GoTo Err_Êíîïêà23_Click
DoCmd.Close
Exit_Êíîïêà23_Click:
Exit Sub
Err_Êíîïêà23_Click:
MsgBox Err.Description
Resume Exit_Êíîïêà23_Click
End Sub
Private Sub Êíîïêà25_Click()
On Error GoTo Err_Êíîïêà25_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = ChrW(1046) & ChrW(1072) & ChrW(1085) & ChrW(1088)
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Êíîïêà25_Click:
Exit Sub
Err_Êíîïêà25_Click:
MsgBox Err.Description
Resume Exit_Êíîïêà25_Click
End Sub
Private Sub Назв_Фильма_Exit(Cancel As Integer)
IfIsNull(Назв_Фильма) ThenMsgBox ("Незаполненое поле")
End Sub
Код запитів :
Актёр имя Запрос
SELECT Актёр.Фам_Актёра, Актёр.Имя_Актёра, Фильм.Назв_Фильма, Жанр.Назв_Жанра
FROM (Жанр INNER JOIN Фильм ON Жанр.Код_Жанра = Фильм.Код_Жанра) INNER JOIN (Актёр INNER JOIN [Фильмы _Актёры] ON Актёр.[Код_ Актёра] = [Фильмы _Актёры].Код_Актёра) ON Фильм.[Код_ Фильма] = [Фильмы _Актёры].Код_Фильма
WHERE (((Актёр.Имя_Актёра)=[Имя актёра]));
Актёр фам Запрос
SELECT Актёр.Фам_Актёра, Актёр.Имя_Актёра, Фильм.Назв_Фильма, Жанр.Назв_Жанра
FROM (Жанр INNER JOIN Фильм ON Жанр.Код_Жанра = Фильм.Код_Жанра) INNER JOIN (Актёр INNER JOIN [Фильмы _Актёры] ON Актёр.[Код_ Актёра] = [Фильмы _Актёры].Код_Актёра) ON Фильм.[Код_ Фильма] = [Фильмы _Актёры].Код_Фильма
WHERE (((Актёр.Фам_Актёра)=[Фамилия актёра]));
Запрос по жанру
SELECT Фильм.Назв_Фильма, Жанр.Назв_Жанра, Диск.[Назв_ Диска]
FROM (Жанр INNER JOIN Фильм ON Жанр.Код_Жанра=Фильм.Код_Жанра) INNER JOIN (Диск INNER JOIN Диск_Фильм ON Диск.[Код_ Диска]=Диск_Фильм.Код_Диска) ON Фильм.[Код_ Фильма]=Диск_Фильм.Код_Фильма
WHERE (((Жанр.Назв_Жанра)=[Название жанра]));
Режиссер имя Запрос
SELECT Режиссер.Фам_Режиссера, Режиссер.Имя_Режиссера, Фильм.Назв_Фильма, Жанр.Назв_Жанра
FROM (Жанр INNER JOIN Фильм ON Жанр.Код_Жанра = Фильм.Код_Жанра) INNER JOIN (Режиссер INNER JOIN Фильмы_Режиссеры ON Режиссер.Код_Режиссера = Фильмы_Режиссеры.Код_Режиссера) ON Фильм.[Код_ Фильма] = Фильмы_Режиссеры.Код_Фильма
WHERE (((Режиссер.Имя_Режиссера)=[Имя режиссера]));
Режиссер фам Запрос
SELECT Режиссер.Фам_Режиссера, Режиссер.Имя_Режиссера, Фильм.Назв_Фильма, Жанр.Назв_Жанра
FROM (Жанр INNER JOIN Фильм ON Жанр.Код_Жанра = Фильм.Код_Жанра) INNER JOIN (Режиссер INNER JOIN Фильмы_Режиссеры ON Режиссер.Код_Режиссера = Фильмы_Режиссеры.Код_Режиссера) ON Фильм.[Код_ Фильма] = Фильмы_Режиссеры.Код_Фильма
WHERE (((Режиссер.Фам_Режиссера)=[Фамилия режиссера]));
Фильм Запрос
SELECT Фильм.Назв_Фильма, Жанр.Назв_Жанра
FROM Жанр INNER JOIN Фильм ON Жанр.Код_Жанра = Фильм.Код_Жанра
WHERE (((Фильм.Назв_Фильма)=[Название фильма]));
Додаток В
Інструкція користувача.
При запуску даного програмного продукту автоматично з’являється «Меню» (рисунок 1).
Рисунок 1 – вікно «Меню»
Кнопка «Регистрация диска» дозволяє адмініструвати диск (рис 2), шляхом заповненя поля «Название» та вибору фільму чи фільмів на диск зі списку, якщо в списку не має необхідного фільму, його можна добавити до списку шляхом натиснення кнопки «Новый фильм» - відкриється вікно «Фильм» (рис 3). Заповнюємо поля «Название», «Жанр» вибираємо зі списку чи додаємо новий жанр за допомогою натиснення кнопки «Новый жанр». Вибираємо режисерів та акторів зі списку, якщо потрібного режисера чи актора не було в списку, додаємо його за допомогою натиснення кнопок «Добавить режиссера» (рис 5), «Добавить актёра» (рис 4) відповідно.
За допомогою натискання кнопок «Запросы», «Простмотр отчёта», «Регистрация арендатора» и «Оформить аренду» здійснити пошук за заданими параметрами (рис 6), адмініструвати нового орендатора (рис 7), отримати звіт про ті диски, котрі має або мав орендатор (рис 8), та оформити оренду диску або дисків орендатором (рис 9).