Інформаційна система Бібліотека університету

Курсова робота
по курсу «ОРГАНІЗАЦІЯ БАЗ ДАНИХ»
Тема “Інформаційна система «Бібліотека університету»
Зміст
Вступ
1. Постановка задачі
2. Проектування бази даних
2.1 Відповідно до вимог поставленими в п.1 визначимо набір суті
2.2.Визначимо типи зв’язків між сутностями
2.3 Визначимо атрибути сутностей та їх типи
2.4. Вигляд інформаційної моделі
2.5 За даною інформаційною моделлю створюємо запити на створення таблиць
3. Програмна реалізація
3.1 З’єднання з базою даних
3.2 Обзор основных методов
4. Інструкція користувача
5. Контрольний приклад
Висновки
Список літератури
7
Вступ
Дана курсова робота має перед собою мету створення бази даних для бібліотеки університету. Кінцевий результат має бути створеною базою даних і програмною оболонкою, що полегшує використання цієї бази даних. Для реалізації поставленого завдання мною була вибрана СУБД POSTGRESQL, а для створення оболонки — мова програмування PHP.
На сьогоднішній день випущена версія POSTGRESQLv8 (19 січня 2005 року), яка є значною подією в світі баз даних, оскільки кількість нових можливостей доданих в цій версії, дозволяє говорити про виникнення інтересу крупного бізнесу як у використанні, так і його просуванні. Так, найбільша компанія в світі, Fujitsuпідтримала роботи над версією 8, випустила комерційний модуль ExtendedStorageManagement. Ліберальна BSD-лицензия дозволяє комерційним компаніям випускати свої версії POSTGRESQLпід своїм ім’ям і здійснювати комерційну підтримку. Наприклад, компанія Pervasiveоголосила про випуск PervasivePostgres.
POSTGRESQLпідтримується на всіх сучасних системах (34 платформи) Unix, включаючи найбільш поширені, такі як Linux, FREEBSD, NETBSD, OPENBSD, SUNOS, Solaris, DUX, а також під MacOSX. Зачинаючи з версії 8.X POSTGRESQLпрацює в “native” режимі під MSWindowsNT, Win2000, WINXP, Win2003. Відомо, що є успішні спроби працювати з POSTGRESQLпід NovellNetware6 і OS2.
Основні можливості і функціональність POSTGRESQL.
Надійність POSTGRESQLє перевіреним і доведеним фактом і забезпечується наступними можливостями:
Продуктивність POSTGRESQLгрунтується на використанні індексів, інтелектуальному планувальнику запитів, тонкої системи блокувань, системі управління буферами пам’яті і кешування, чудовій масштабованості при конкурентній роботі.
Розширюваність POSTGRESQLозначає, що користувач може набудовувати систему шляхом визначення нових функцій, агрегатів, типів, мов, індексів і операторів.
Підтримка SQL, окрім основних можливостей, властивих будь-який SQLбазі даних, POSTGRESQLпідтримує:
Багатий набір типів даних POSTGRESQLвключає:
Символьні типи (character(n)) як визначено в стандарті SQLі тип textз практично необмеженою довжиною.
Numericтип підтримує довільну точність, дуже затребувану в наукових і фінансових застосуваннях.
Масиви згідно стандарту SQL: 2003
Великі об’єкти (LargeObjects) дозволяють зберігати в базі даних бінарні дані розміром до 2Gb
Геометричні типи (point, line, circle,polygon, box.) дозволяють працювати з просторовими даними на плоскості.
ГИС (GIS) типи в POSTGRESQLє доказом розширюваності POSTGRESQLі дозволяють ефективно працювати з тривимірними даними. Подробиці можна знайти на сайті проекту PostGis.
Мережевих типів (Networktypes) підтримують типи даних inetдля IPV4, IPV6, а також cidr(ClasslessInternetDomainRouting) блоки і macaddr
Композитних типів (compositetypes) об’єднують один або декілька елементарних типів і дозволяють користувачам маніпулювати з складними об’єктами.
Тимчасові типи (timestamp, interval, date, time) реалізовані з дуже великою точністю
POSTGRESQLмає дуже багатий набір вбудованих функцій і операторів для роботи з даними, повний список яких можна глянути в документації .
Підтримка 25 різних наборів символів (charsets), включаючи ASCII, LATIN, WIN, KOI8 і UNICODE.
Підтримка NLS(NativeLanguageSupport)
Інтерфейси в POSTGRESQLреалізовані для доступу до бази даних з лави мов (C,C++,C#,python,perl,ruby,php,Lispта інші) і методів доступу до даних (JDBC, ODBC).
Процедурні мови дозволяють користувачам розробляти свої функції на стороні сервера, тим самим переносити логіку додатка на сторону бази даних, використовуючи мови програмування, відмінні від вбудованих SQLі C
Простота використання завжди була важливим чинником для розробників.
phpPgAdmin (ліцензія GPL) представляє можливість за допомогою веб-сервера браузера адмініструвати POSTGRESQLкластер.
pgAdminIII (GNUArtisticlicense) надає зручний інтерфейс для роботи з базами даних POSTGRESQLі працює під Linux, FREEBSDі Windows2000/XP.
PgEdit — програмна середа для розробки додатків і SQL-редактор, доступна для Windowsі Mac.
Безпека даних також є найважливішим аспектом будь-якої СУБД. У POSTGRESQLвона забезпечується 4-мярівнями безпеки:
POSTGRESQLне можна запустити під привілейованим користувачем — системний контекст
SSL,SSHшифрування трафіку між клієнтом і сервером — мережевий контекст
Складна система аутентифікації на рівні хостаабо IPадреси/підмережі.
Деталізована система прав доступу до всіх об’єктів бази даних, яка спільно з схемою, що забезпечує ізоляцію назв об’єктів для кожного користувача, POSTGRESQLнадає багату і гнучку інфраструктуру.
1. Постановка задачі
За завданням необхідно скласти базу для університетської бібліотеки, яка повинна забезпечувати збереження всіх необхідних даних. Створення інформаційної системи дозволить автоматизувати процес автоматичної роботи бібліотеки, збереження інформації про студентів, викладачів, книги, час видачі екземплярів. Це істотно заощадить час бібліотечних працівників.
Вся інформація буде систематизована і представлена в зручному і звичному для користувача вигляді.
2. Проектування бази даних
2.1 Відповідно до вимог поставленими в п.1 визначимо набір суті
Об’єкт
Опис об’єкту
Книги
Інформація о всіх книгах на складі
Студенти
Студенти в бібліотеці
Вчителя
Вчителя університету
Мови
Інформація промови, на якій написана книга
Видачі
Інформація о выдачі и возвраті книг
Статистика
Інформація о кількості книг
2.2.Визначимо типи зв’язків між сутностями
Сутність 1
Ступінь зв’язку
Сутність 2
Книги–PAGE_BREAK–
N: 1
Мови
Студенти
N: 1
Видачі
Вчителя
N: 1
Видачі
Статистика
1: 1
Книги
Книги
N: 1
Видачі
2.3 Визначимо атрибути сутностей та їх типи
Сущність
Атрибут
Тип даних
Knigi
number
Ключове поле, цілий

nazva
Символьний

avtor
Символьний

izdatel
Символьний

otdel
Символьний

kol
Цілий

kost
Дробний

god
Целый

id_lang
Цілий

Students
number_s
Ключевое поле, Символьний

fio
Символьний

address
Символьний

telephone
Символьний

grupa
Символьний
Teachers
number_t
Символьний

fio
Символьний

address
Символьний
Vzat_knigi

Id_data_vidachi
Ключевое поле, Цілий

data_vidachi
Символьний

Data_vozvrata
Символьнийв

number
Цілий

number_a
Символьний
Languages
Id_lang
Ключевое поле, Цілий

lang
Символьний

Сущність
Stat

Атрибут
Тип даних

id
Ключове поле, Цілий

nazva
Символьний

kol
Цілий

kil
Цілий

ost
Цілий
2.4. Вигляд інформаційної моделі
2.5 За даною інформаційною моделлю створюємо запити на створення таблиць
Створюємо таблиці (Knigi, Students, Teachers, Vzat_knigi, Languages, Stat) и сразу делаем связи между ними:
CREATE TABLE languages
(
id_lang int PRIMARY KEY NOT NULL,
lang char (30) NOT NULL
);
CREATE TABLE knigi
(
number int PRIMARY KEY NOT NULL,
nazva char (200) NOT NULL,
avtor char (100),
izdatel char (100),
otdel char (50) NOT NULL,
kol int,
kost float,
god int,
id_lang int NOT NULL,
FOREIGN KEY (id_lang) REFERENCES languages (id_lang)
);
CREATE TABLE vzat_knigi
(
id_data_vidachi int PRIMARY KEY NOT NULL,
data_vidachi date NOT NULL,
data_vozvrata date,
number int NOT NULL,
number_a char (10) NOT NULL,
FOREIGN KEY (number) REFERENCES knigi (number)
);
CREATE TABLE students
(
fio char (200) NOT NULL,
number_s char (10) PRIMARY KEY NOT NULL CHECK (number_s like ‘s-%’),
address char (200) NOT NULL,
telephone char (15),
grupa varchar (10) NOT NULL
);
CREATE TABLE teachers
(
fio char (200) NOT NULL,
number_t char (10) PRIMARY KEY NOT NULL CHECK (number_t like ‘t-%’),
address char (200) NOT NULL
);
CREATE TABLE stat
(id int PRIMARY KEY NOT NULL,
nazva char (200),    продолжение
–PAGE_BREAK–
kol int,
kil int,
ost int
);
3. Програмна реалізація
3.1 З’єднання з базою даних
Для з’єднання з базою використовуються методи в PHP. Це робить наступна строка:
$connect_str=«host=localhost user=postgres password=RESKATOR dbname=biblioteka»;
где host=localhost — локалхост, до котрого приєднуються,
user=postgres password=RESKATOR — им’я та пароль користувача,
dbname=biblioteka — назва бази даних.
Щоб приєднати iншi вкладенi в папку файли з базою прописується строка:
$db=pg_connect ($connect_str);
3.2 Обзор основных методов
Для нормальної роботи бази даних були використані наступні запити:
1) Виведення двох таблиць (книги і мови) в одній
$query=”Selectknigi.number,knigi.nazva,knigi.avtor,
knigi.izdatel,knigi.otdel,knigi.kol,knigi.kost,knigi.god,
languages.lang from knigi inner join languages on languages.id_lang=knigi.id_lang
where knigi.number like ‘%”.$_POST [‘number’].”%’ and
knigi.nazva like ‘%”.$_POST [‘nazva’].”%’ and
knigi.avtor like ‘%”.$_POST [‘avtor’].”%’ and
knigi.izdatel like ‘%”.$_POST [‘izdatel’].”%’ and
knigi.otdel like ‘%”.$_POST [‘otdel’].”%’ and
knigi.kol like ‘%”.$_POST [‘kol’].”%’ and
knigi.kost like ‘%”.$_POST [‘kost’].”%’ and
knigi.god like ‘%”.$_POST [‘god’].”%’ and
knigi.id_lang in (select id_lang from languages where lang like ‘%”.$_POST [‘id_lang’].”%’); “;
2) Видалення інформації з таблиці
$query=’DELETE from vzat_knigi where number=’.$_POST [‘number’].’; ‘;
$res=pg_query ($db,$query);
$query=’DELETE from knigi where number=’.$_POST [‘number’].’; ‘;
$res=pg_query ($db,$query);
$query=«DELETE from stat where id=’».$_POST [‘number’].”‘; “;
$res=pg_query ($db,$query);
3) Редагування даних в таблиці
«UPDATE knigi SET
nazva=’».$_POST [‘nazva’].”‘,
avtor='”.$_POST [‘avtor’].”‘,
izdatel='”.$_POST [‘izdatel’].”‘,
otdel='”.$_POST [‘otdel’].”‘,
kol='”.$_POST [‘kol’].”‘,
kost='”.$_POST [‘kost’].”‘,
god='”.$_POST [‘god’].”‘,
id_lang='”.$_POST [‘language’].”‘
where number='”.$_POST [‘number’].”‘; “;
4) Додаванняданихвтаблицю
«INSERT into knigi values
(‘».$_POST [‘number’].”‘,
‘”.$_POST [‘nazva’].”‘,
‘”.$_POST [‘avtor’].”‘,
‘”.$_POST [‘izdatel’].”‘,
‘”.$_POST [‘otdel’].”‘,
‘”.$_POST [‘kol’].”‘,
‘”.$_POST [‘kost’].”‘,
‘”.$_POST [‘god’].”‘,
‘”.$_POST [‘id_lang’].”‘
)”;
4. Інструкція користувача
Запустив програму, бачимонаступне вікно:
/>
Рис.1 Стартове вікно
Для підключення до бази необхідно запустити сервер Denwer, в теці www знайти файл config.php і прописати правильне ім’я користувача і пароль для з’єднання з POSTGRESQL. У адресній стоці браузера ввести www.lib.ru. Далі, натискуючи на будь-яке заслання в меню зліва, ми отримуємо відповідні її назві запити. Наприклад, можна проглянути таблицю студенти:
/>
Рис.2 Таблиця Студенти
В кінці кожної таблиці додані кнопки для роботи з таблицею. Її можна редагувати, видаляти рядки або додавати нові. Також реалізована функція пошуку в таблиці:
/>
Рис.3 Пошук в таблиці студенти
5. Контрольний приклад
При натисненні кнопки “Edit”, ми можемо редагувати дані в заданому полі. Підзапит дозволяє також змінити дані в інших зв’язаних таблицях:
/>
Рис.5 Контрольный пример
Після порівняння отриманих даних з таким же під запитом, виконаним в програмі pgAdminIII, робимо висновок, що програма працює правильно, оскільки дані збігаються.
Висновки
Виконана робота дозволила набути навичок розробки баз даних від поставленого завдання до кінцевого програмного продукту, придатного до використання. В ході роботи розгледіли і освоєні навики використання мови SQLдля роботи з базами даних, отриманий досвід організації баз даних в середі СУБД POSTGRESQL, зокрема використання запитів. Також освоєні прийоми звернення до баз за допомогою сервера Denwer, придбаний досвід програмування на мові PHP.
Список літератури
Малахов Є.В. “Основи проектування баз даних. Конспект лекцій”