Інформаційна система "Бібліотека університету"
Обновлено
20
Курсова робота
по курсу "ОРГАНІЗАЦІЯ БАЗ ДАНИХ"
Тема "Інформаційна система "Бібліотека університету"
Зміст
- Вступ
- 1. Постановка задачі
- 2. Проектування бази даних
- 2.1 Відповідно до вимог поставленими в п.1 визначимо набір суті
- 2.2.Визначимо типи зв'язків між сутностями
- 2.3 Визначимо атрибути сутностей та їх типи
- 2.4. Вигляд інформаційної моделі
- 2.5 За даною інформаційною моделлю створюємо запити на створення таблиць
- 3. Програмна реалізація
- 3.1 З'єднання з базою даних
- 3.2 Обзор основных методов
- 4. Інструкція користувача
- 5. Контрольний приклад
- Висновки
- Список літератури
- 7
Об'єкт | Опис об'єкту | |
Книги | Інформація о всіх книгах на складі | |
Студенти | Студенти в бібліотеці | |
Вчителя | Вчителя університету | |
Мови | Інформація про мови, на якій написана книга | |
Видачі | Інформація о выдачі и возвраті книг | |
Статистика | Інформація о кількості книг |
Сутність 1 | Ступінь зв'язку | Сутність 2 | |
Книги | N: 1 | Мови | |
Студенти | N: 1 | Видачі | |
Вчителя | N: 1 | Видачі | |
Статистика | 1: 1 | Книги | |
Книги | N: 1 | Видачі |
Сущність | Атрибут | Тип даних | |
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 | Цілий |
20
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),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="Select knigi.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_langwhere knigi.number like '%".$_POST ['number']."%' andknigi.nazva like '%".$_POST ['nazva']."%' andknigi.avtor like '%".$_POST ['avtor']."%' andknigi.izdatel like '%".$_POST ['izdatel']."%' andknigi.otdel like '%".$_POST ['otdel']."%' andknigi.kol like '%".$_POST ['kol']."%' andknigi.kost like '%".$_POST ['kost']."%' andknigi.god like '%".$_POST ['god']."%' andknigi.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 SETnazva='".$_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.Список літератури1. Малахов Є.В. "Основи проектування баз даних. Конспект лекцій"