- •Перелік позначень та скорочень
- •1.2 Аналіз наданої предметної області
- •1.2.1 Система бізнес-правил
- •1.2.2 Глосарій проекту
- •1.3 Постановка задачі дослідження
- •2 Моделювання даних предметної області
- •2.1 Розробка концептуальної моделі даних
- •2.2 Проектування логічної моделі бази даних
- •2.3 Аналіз бізнес-логіки обробки даних у предметній області та визначення основних типів запитів у системі
- •3 Реалізація моделі бази даних "мобільний оператор" у mysql 5.5. Інструментальні засоби
- •3.1 Мотивований вибір субд для реалізації проекту
- •3.2 Реалізація бази даних
- •3.3.2 Розробка уявлень для відображення результатів вибірки
- •3.3.3 Проектування збережених процедур
- •3.3.4 Розробка механізмів управління даними в базі за допомогою тригерів
- •Висновки
- •Список інформаційних джерел
- •Додаток а
- •Додаток б
3.3.2 Розробка уявлень для відображення результатів вибірки
Під уявленням (View) в базах даних розуміють такий об’єкт, котрий є результатом виконання запиту до бази даних, визначеного за допомогою оператора ‘SELECT’, в момент звернення до уявлення.
Уявлення іноді називають «віртуальними таблицями», оскільки результат є доступним для користувача у вигляді таблиці. Але саме уявлення не містить даних, а витягує їх з таблиць в момент звернення до нього. Якщо дані змінені у базовій таблиці, то і користувач отримає актуальні записи при зверненні до уявлення. Уявлення можуть основуватися як на таблицях, так і на інших уявленнях, тобто можуть бути вкладеними.
Переваги використання уявлень:
Дає можливість гнучкого налаштування прав доступу до даних за рахунок того, що права даються не на таблицю, а на уявлення. Це дуже зручно у випадку якщо користувачеві потрібно дати права на окремі рядки таблиці або можливість отримання не самих даних, а результату якихось дій над ними.
Дозволяє розділити логіку зберігання даних та програмного забезпечення. Можна змінювати структуру даних, не порушуючи програмний код, потрібно лише створити уявлення, аналогічні таблицям, до яких раніше зверталися додатки. Це дуже зручно, коли немає можливості змінити програмний код або до однієї бази даних звертаються кілька додатків з різними вимогами до структури даних.
Зручність у використанні за рахунок автоматичного виконання таких дій, як доступ до певної частини рядків і/або стовпців, отримання даних з декількох таблиць та їх перетворення за допомогою різних функцій.
Уявлення приховують від прикладної програми складність запитів і саму структуру таблиць БД. Коли прикладній програмі потрібна таблиця з певним набором даних, вона робить найпростіший запит з підготовленого уявлення.
Наступне уявлення «Person_Type» з’єднує необхідну інформацію із двох таблиць – «Person» і «Type» для зручного перегляду усіх створених контактів та їх типів.
CREATE VIEW Person_Type (Name, Surname, Mobile, Type)
AS SELECT Name, Surname, Mobile, type.`Value`
FROM person
JOIN type ON `person`.`Type_ID` = type.`Type_ID`
Результат уявлення «Person_Type» зображено на рисунку 3.8.
Рисунок 3.8 – Результат уявлення «Person_Type»
У базі даних існує таблиця «User_Person», котра зберігає ідентифікатор користувача та контактів, котрих він створив, а також дату їх знайомства. Але для зручного використання необхідно також знати хоча б ім’я та прізвище користувача та контакту. Щоб кожного разу для отримання цієї інформації не виконувати команду «SELECT», було створене наступне уявлення «Person_Users».
CREATE VIEW Person_Users (UserName, UserSurname, MeetingDate,
PersonName, PersonSurname, Type) AS
SELECT user.UserName, user.UserSurname, user_person.`MeetingDate`,
`person`.`Name`, person.`Surname`, type.`Value`
FROM person
JOIN type ON `person`.`Type_ID` = type.`Type_ID`
JOIN user_person ON person.`Person_ID` = user_person.`Person_ID`
JOIN user ON user_person.`User_ID` = user.`User_ID`
Результат створеного уявлення «Person_Users» зображено на рисунку 3.9.
Рисунок 3.9 – Результат уявлення «Person_Users»
