klevoz.ru страница 1
скачать файл

ДНІПРОПЕТРОВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ІМЕНІ ОЛЕСЯ ГОНЧАРА

ФАКУЛЬТЕТ ПРИКЛАДНОЇ МАТЕМАТИКИ

КАФЕДРА МАТЕМАТИЧНОГО ЗАБЕЗПЕЧЕННЯ ЕОМ


ЗВІТ


з лабораторної роботи №2

з дисципліни:

“Бази даних та інформаційні системи”

Виконав:


Студент групи ПМ-08-2

Бойко Дмитро Вадимович

Перевірила:

старший викладач

Мащенко Леонід Володимирович

Зміст


Зміст 2

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

Опис ходу розв’язання. 4

Опис інтерфейсу (керівництво користувача) 11

Додаток. Робота однієї програми з двома СУБД. 14




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


  • Встановлення PostgreSQL. Створення БД, таблиць в ній.

  • Зв’язання із середой (за необхідністю)

  • Створити інтерфейс программи для наповнення (редагування, оновлення, видалення). Наповниби БД.

  • Реалізувати одно табличні запити.

  • Реалізація складних запитів



Опис ходу розв’язання.


На персональний комп’ютер із ОС Microsoft Windows 7 було встановлено СУБД PostgreSQL 9.1. Для розробки програми було використано php, причому для підключення до PostgreSQL використано спеціальну бібліотеку-драйвер php_pgsql.dll.

Налаштування бази даних виконувалось за допомоги утиліти зі стандартної поставки pgAdmin III 1.14.


1.1Побудова таблиць, структура таблиць


В межах обраної предметної області було виділено наступні об’єкти:

  1. Користувач

    1. Логін

    2. Пароль

    3. Наявність прав продавця

    4. Наявність прав адміністратора

  2. Картка знижки

    1. Номер картки

    2. ПІБ клієнта

    3. Поштовий індекс клієнте

    4. Адреса клієнта

    5. Тип картки

    6. Знижка для цього типу карти

    7. Сума, на яку було здійснено покупки, використовуючи картку

  3. Штатив

    1. Виробник

    2. Модель

  4. Спалах

    1. Виробник

    2. Модель

  5. Об’єктив

    1. Виробник

    2. Модель

    3. Тип

    4. Фокус

    5. Діафрагма

    6. Мінімальна діафрагма

    7. Тип монтування

  6. Пам’ять

    1. Серійний номер

    2. Виробник

    3. Тип

    4. Об’єм пам’яті

    5. Клас швидкості

    6. Швидкість запису/читання в пам’яті цього класу

  7. Фотоапарат

    1. Виробник

    2. Модель

    3. Роздільна здатність

    4. Оптичний зум

    5. Дісплей

    6. Тип пам’яті, яку використовує фотоапарат

    7. Матриця

    8. Тип акумуляторів

    9. Тип монтування об’єктиву


1.2Встановлення зв’язків


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

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

Зауважимо що маємо декілька таблиць не пов’язаних з іншими. Для них не біло створено зовнішніх ключів, оскільки вони не потребують зв’язку.

Детально встановлені зв’язки можна спостерігати на схемі у пункті  2.3.


1.3Схема зв’язків



1.4Проектування та реалізація запитів


У межах роботи виконано наступні запити:
Запити на відображення всіх таблиць

Реалізація цих запитів виглядає мовою SQL так:

SELECT * FROM k_lens;
Запити із вибором

У роботі використано декілька запитів із вибором за певною умовою.


«Показати штатив, з вказаним id

SELECT `tripopid` FROM `k_tripop` WHERE `tripopid`='$id'


Запити зі з’єднанням

Розроблено запити, які збираються інформацію з таблиць разом у такому вигляді, якому вони були до нормалізації. Нарпиклад:


Об’єктив, разом із типом кріплення об’єктиву, який йому відповідає.

SELECT


n0.lensid,

n0.manufacturer,

n0.model,

n0.type,


n0.focus,

n0.diaphragm,

n0.mindiaphragm,

n0.mounttype,

n1.type

FROM `k_lens` as n0



LEFT JOIN `k_lensmounttype` as n1

ON n1.lensmountid = n0.mounttype

ORDER BY n0.lensid ASC

Запити на зміну даних
Модифікація даних (видалення, оновлення, додавання записів) в даній предметній області є частою задачею оскільки продавець постійно вносить нові данні та зміни у товари.
Запит на додання нового об’єктиву.

INSERT INTO `k_lens` (

`manufacturer`,

`model`,


`type`,

`focus`,


`diaphragm`,

`mindiaphragm`,

`mounttype`

) VALUES (

'$this->manufacturer',

'$this->model',

'$this->type',

'$this->focus',

'$this->diaphragm',

'$this->mindiaphragm',

'$mounttype'

);

Опис інтерфейсу (керівництво користувача)


Робота адміністратора із системою розпочинається із входу до системи. За замовчуванням у системі це користувач admin з паролем admin1. Пароль рекомендується змінити після першого входу, з метою безпеки.

Після підключення з’явиться можливість доступу до однієї із структурних частин програми.



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



Відкривши редагування користувачів адміністратор може редагувати користувачів, змінювати права доступу (продавець, адміністратор) або додавати нових користувачів.




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

Робота користувача із системою також розпочинається із входу у систему. За замовчуванням у СУБД зареєстровано 1 користувач, user із паролем user1.

Зайшовши користувач має лише одну можливість вибору: перегляд таблиць.



Скориставшись нею користувач бачить варіанти перегляду таблиці, та які із них він хоче переглянути.



Обравши один із варіантів користувач побачить його у вигляді таблиці:




Робота продавця аналогічно починається із логіну, після якого він має доступ до панелі продавця, на яцій може обирати яку з таблиць редагувати .

Обравши один із варіантів продавець отримує доступ до редагування, додавання та видалення інформації.





Додаток. Робота однієї програми з двома СУБД.


Програма має спеціальний файл конфігурування, в якому можна вказати, яку СУБД використовувати. На даний момент доступно 2 реалізації, для mysql та postgresql. В залежності від цього потрібно задавати тип, задаючи зміну $dbtype, mysql чи pgsql, відповідно. В тому ж файлі потрібно задавати службові дані доступу до СУБД для програми.

А також в ньому потрібно задавати сервер та базу даних.

Для роботи з postgresql було модифіковано клас бази даних, так, щоб в залежності від введеного типу використовувалась відповідна функція для відповідної СУБД.

Особо потрібно виділити що мова sql у реалізації postgresql має дещо інший синтаксис. Наприклад символ «`» потрібно заміняти на символ «"». Для цього було реалізовано функцію setpgsintacs яка виконує відповідну заміну, у всіх, переданих для виконання запитах.

Також реалізація getlastkey для postgresql викликає значні труднощі, тому у тій частині коду, де потрібно було повернення індексу останнього доданого було також доданно такий код:

if (kconfig::$dbtype == 'pgsql')

{ $query .= " RETURNING clientid"; }

Таке доповнення для sql реалізовано у postgresql для оператора INSERT, дозволяє після успішного виконання запиту повернути його індекс.



Висновки

У межах лабораторної роботи засвоєно основні етапи при роботі із СУБД PostgreSQL. Додано таблиці, налаштовано типи атрибутів, заповнено їх даними. Встановлено зв’язки між таблицями для збереження цілісності їх наповнення.

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

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



ДНІПРОПЕТРОВСЬК

2011
скачать файл



Смотрите также:
Зміст вступ Постановка задачі Математичний опис задачі
168.17kb.
Аналітичний огляд, постановка задачі
350.95kb.
Постановка задачі
63.05kb.
Лекція 12. Самоорганізація колективу агентів у часі (самосинхронізація) Постановка задачі самосинхронізації колективу
43.82kb.
Формування основ культури мислення у дошкільників Постановка проблеми
133.47kb.
Пропоную вашій увазі серії літературних задач, які можна використати на уроках математики у другому та третьому класах. Задачі об’єднані за математичними ознаками: задачі на знаходження суми та остачі (2 клас)
28.56kb.
Введение. История хорового искусства
123.73kb.
Лекция Общее понятие философии. (Философия, миф и искусство). Ошибка, как проблематизация обыденного и постановка проблемы истины
191.47kb.
Контрольная работа №1 по теме «основы драматургии»
51.18kb.
Імпульсна та частотна характеристика систем
37.08kb.
Стандарт электронной услуги «Прием заявлений, постановка на учет и зачисление детей в образовательные учреждения, реализующие основную образовательную программу дошкольного образования
775.02kb.
Мирча элиаде миф о вечном возвращении
1759.17kb.