Курсова робота Створення журналу відвідуваності занять

Національний університет внутрішніх справ

Факультет управління та інформатики

Кафедра інформаційних систем та технологій у діяльності ОВС

з дисципліни: Організація баз даних та знань

Створення журналу відвідуваності занять

студенти гр. 418-к

Баришанська А.Л., Вакула Т.А.

доц. кав. ІСІТ в ОВС

пп-до міліції Танянський С.С.

1. Аналіз предметної галузі

Обмеження ведення бази даних

2. Проектування структури бази даних

Визначення функціональних залежностей

Розробка структури бази даних.

Організація запитів до бази даних

3. Організація ведення бази даних

Висновок

Для побудови БД використовуватимемо СУБД Access, яка є легкою для самостійного освоєння, зручною для створення структури таблиць та визначення властивостей атрибутів. Діалогове середовище СУБД дає можливість користувачеві практично без використання мови програмування встановлювати різні види підтримки цілісності даних.

Поняття структура фізичної БД включає: формат фізичного запису, кластери записів, методи розміщення та доступу до фізичних записів.

БД складається з файлів, структура яких відповідає всім представленим до неї вимогам, забезпечує оптимальний варіант розв'язання задачі та несе надмірної інформації. Всі файли БД мають такі властивості: функціональна повнота, мінімальна надмірність, цілісність, несуперечність даних, відновлюваність, узгодженість, безпека, ефективність, логічна та фізична незалежність, розширюваність, дружність користувальницького інтерфейсу, реалізованість засобами конкретногоінструментарію.

1. Аналіз предметної області

1.1 Опис задачі

Необхідно створити БД, яка зберігає журнал відвідуваності занять. Як елементи даних у БД повинна міститися така інформація:

Тип занять (лекція, практика, л/р);

Предмет (БД, Інформатика);

Викладач (Танянський, Горєлов, Струков, Лановий);

Дата проведення занять

Ознака відвідуваності занять студентами (була, не була)

В результаті аналізу предметної області виділимо в якості первинного ключа атрибути ПРЕДМЕТ, Викладач, ТИП ЗАНЯТТЯ, так як з кожного предмета один і той же тип занять повинен вести один викладач, кожен викладач відноситься тільки до однієї кафедри. Прізвище, Ім'я, По-батькові також виділимо у вигляді ключа, тому що не може бути повних однофамільців.

Таким чином, база даних, отримана на підставі заданих атрибутів, матиме схему, представлену на малюнку 1, де підкреслені атрибути є первинним ключем.

Тип занятьПредметВикладачТип занятьПрізвищеІм'яПо батьковіДатаОзнака

Малюнок 1. Схема БД журналу відвідуваності занять.

1.2 Обмеження ведення бази даних

У процесі ведення БД необхідно підтримувати відповідність (цілісність) між введеними даними на основі вимог, обумовлених предметною областю.

Для розглянутого завдання визначимо відповідність між атрибутами:

1. Тип занять та предмет визначає викладача;

2. Викладач визначає кафедру;

3. ПІБ, дата, предмет, тип занять визначають ознаку відвідуваності;

Таким чином, кожен тип занять з одного предмета має вести викладач. Викладач відноситься до однієї кафедри. Якщо студент у певний час був на певному предметі, то він не міг не бути, він був. Подібно підтримка відповідностей має бути реалізована для кожного заданого обмеження.

Крім цього, зберігання даних в одній таблиці при заданих обмеженнях є надмірною.

Так, наприклад, прізвища будуть повторюватися стільки разів, скільки цей студент відвідував предмети, дата буде повторюватися стільки разів, скільки в даний день було проведено занять, предмети будуть повторюватися залежно від типу занять.

Структура БД, що складається з однієї таблиці, як представлена ​​малюнку 1, це не дає можливість зберігати все дані.

1.3 Постановка задачі

Проведений аналіз предметної області показав, що ведення даних в одній таблиці не відповідає деяким вимогам до реляційних БД з причин, описаних у попередньому розділі.

Таким чином, для вирішення завдання відвідуваності занять необхідно подати її структуру у вигляді кількох таблиць, кожна з якої містить окремий факт предметної області.

Наприклад, інформація про викладача (ПІБ, кафедра), про завантаження викладача (тип занять, предмет, викладач), та про ознаку відвідуваності (тип занять, предмет, ПІБ, дата, ознака). При цьому БД повинна бути цілісною системою, тобто користувач повинен мати можливість у будь-який момент часу отримати всю (будь-яку) інформацію, яка зберігається в БД.

2. Проектування структури бази даних.

база дана аccess журнал

2.1 Визначення функціональних залежностей

З розглянутих вимог до БД (розділ 1.2)та поставленої задачі (розділ 1.3) формалізуємо обмеження на дані у вигляді функціональних залежностей.

1. Тип занять, предмет®Викладач

2. Предмет®Кафедра

3. ПІБ, дата, предмет, тип занять®Ознака відвідуваності

2.2 Розробка структури бази даних

Для виключення можливих аномалій, описаних у розділі 1.2, необхідно нормалізувати БД, тобто привести її до нормальної форми. Задані обмеження у вигляді функціональних залежностей (розділ 2.1) дозволяють побудувати третю нормальну форму (3НФ), яка усуне небажані властивості ведення БД.

Очевидно, що представлений набір атрибутів (рисунок 1) відповідає першій нормальній формі (1НФ). Скористаємося визначенням повної функціональної залежності [1,2] та побудуємо другу нормальну форму (2НФ).

Таким чином, БД матиме вигляд, представлений на малюнку 2.

Таблиця 2 Таблиця 1 Таблиця 3

Викладач1Тип занять1 ¥Тип занять
Кафедра

Предмет1 ¥ПредметВикладачПрізвищеІм'яПо батьковіДатаОзнака

Малюнок 2. Структура БД у 2НФ.

При цьому функціональні залежності відповідатимуть таблицям, таким чином:

1.таблиці 1відповідають функціональні залежності

Тип занять, предмет®Викладач

2.таблиці 2відповідають функціональні залежності

3.таблиці 3відповідають функціональні залежності

- ПІБ, дата,предмет, тип занять®Ознака відвідуваності

Ключові атрибути отриманих таблицях визначені з урахуванням заданих функціональних залежностей між атрибутами. При цьому тип зв'язку між усіма таблицями відповідає «один до багатьох», оскільки зв'язкові атрибути в одній таблиці є первинним ключем, а в іншій немає.

Для схеми БД визначимо властивості кожної таблиці (рисунок 3).

Таблиця 1 Таблиця 3

Тип занять

Тип даних:текстовий

Обов'язкове поле: так

Порожні рядки: ні

Індексоване поле: ні

Тип даних:текстовий

Обов'язкове поле: так

Порожні рядки: ні

Індексоване поле: ні

Тип даних:текстовий

Обов'язкове поле: так

Порожні рядки: ні

Індексоване поле: ні

Тип даних:текстовий

Обов'язкове поле: так

Порожні рядки: ні

Індексоване поле: ні

Тип даних:текстовий

Обов'язкове поле: так

Порожні рядки: ні

Індексоване поле: ні

Тип даних:текстовий

Обов'язкове поле: так

Порожні рядки: ні

Індексоване поле: ні

Тип даних:текстовий

Обов'язкове поле: так

Порожні рядки: ні

Індексоване поле: ні

Тип даних:текстовий

Обов'язкове поле: так

Порожні рядки: ні

Індексоване поле: ні

Тип даних:текстовий

Обов'язкове поле: так

Порожні рядки: ні

Індексоване поле: ні

Тип даних:текстовий

Обов'язкове поле: так

Порожні рядки: ні

Індексоване поле: ні

Тип занять
Викладач

Тип даних:текстовий

Обов'язкове поле: так

Порожні рядки: ні

Індексоване поле: ні

Тип даних:текстовий

Обов'язкове поле: так

Порожні рядки: ні

Індексоване поле: ні

2.3 Організація запитів до бази даних

Для звітних форм сформулюємо запити до БД.

1. Зробити вибірку по ПІБ, коли хто пропустив заняття, з якого предмета і який тип заняття попущено (отримати на екрані таблицю: предмет, тип заняття, дата).

2. Показати кафедру та предмети, які менш відвідувані.

3. Показати, де працює кожен викладач

4. Інформація про викладачів (який викладач веде якийсь предмет і який тип занять)

Для отримання необхідної інформації сформульовано запити на SQL

1. SELECT Прізвище, Ім'я, По-батькові FROM Користувач

2. PARAMETERS [Введіть назву теми] CHAR(50);

SELECT Прізвище, Ім'я, По-батькові FROM Облік INNERJOIN Тема ON Облік.Тема=Тема.Тема WHERE Тема.Тема=[Введіть назву теми]

3. SELECT Прізвище, Ім'я, По-батькові, COUNT([Назва сайту або статті]) AS "Кількість сайтів або статей"

4. SELECT Підрозділ, COUNT([Назва сайту або статті]) AS "Кількість сайтів або статей"

GROUPBY Підрозділ HAVINGCOUNT ([Назва сайту або статті])>10

5. PARAMETERS [Введіть назвупідрозділи] CHAR (50);

SELECT Користувач.Прізвище, Користувач.Ім'я, Користувач.По батькові, Підрозділ

WHERE Підрозділ<> [Введіть назву підрозділу] AND [Назва сайту або статті] IN

(SELECT [Назва сайту або статті]

WHERE Підрозділ = [Введіть назву підрозділу])

3. Організація ведення бази даних

Дана інформаційна система призначена для викладачів (дізнатися коли і хто пропустив заняття) та для студентів (дізнатися, на якій кафедрі працює даний викладач, який предмет веде викладач). На головній формі нанесено кнопки, які дозволяють відкривати запити. У нижній частині головної форми розташована таблиця студентів. На головній формі нанесені кнопки, при натисканні яких користувач може отримати необхідну інформацію (інформація про викладачів, місце роботи). Щоб здійснити перехід від одного запису до іншого, необхідно скористатися клавішами переходу . Для виходу потрібно натиснути кнопку . Для закриття програми необхідно натиснути кнопку

Пропоновані запити показують, що, використовуючи мову SQL, можливе отримання інформації з БД, формуючи природно-мовні конструкції будь-якої складності.

Як основні результати курсової роботи можна виділити таке:

1. Проаналізовано предметну область та сформульовано завдання для розробки.

2. Визначено обмеження ведення даних у вигляді функціональних залежностей між атрибутами.

3. Запропоновані запити до даних реалізовані SQL з використанням вбудованих підсумкових функцій.

На сьогоднішній день дуже велике значення приділяється вибору інструментарію, який відповідає вимогам розробників. Сучасне життя насичене інформацією, яка пронизує всесторони людської діяльності. Для зберігання інформації та пошуку необхідних даних потрібно створення дедалі більшої кількості баз та банків даних.

Не останнє місце у списку СУБД, що пропонується до вибору, займає Access, завдяки тому, що воно, маючи всі риси класичної СУБД, є також і зручною системою в розробці додатків, що працюють з БД.

Відмінністю Access є об'єктно-орієнтована мова програмування, розвинені візуальні засоби розробки, підтримка стандартних протоколів обміну даних.

Сучасні інформаційні технології дозволяють економити працю і час не лише програмістів, а й фахівців з експлуатації та підтримки програмних продуктів. Для задоволення зростаючих вимог до обробки даних революційними темпами розвиваються системи клієнт-сервер, роль VisualFoxPro в таких системах займає значне місце.

Access може ефективно використовуватися спільно з додатками Internet не тільки через потужний процесор даних та зручну мову програмування MSSQLServer.

Список використаних джерел

1. Дейт К. Введення у системи баз даних. М.: "Вільямс" 2001.

2. Т. Конноллі, К. Бегг, А. Страчан Бази даних: проектування, реалізація та супровід. Терія та практика, 2-ге вид.: Пер. з англ.: Уч. Пос. - М.: Видавничий дім "Вільямс", 2000.

3. Д.Грофф, П.Вайнберг.SQL: повне керівництво. – BHV-Київ, 1999.

Викладач