
- •1. Стратегія автоматизації предметної області
- •1.1. Загальні положення
- •1.2. Мета, цілі та задачі створення бази даних
- •1.3. Вимоги до інформаційного забезпечення
- •2. Аналіз предметної області
- •2.1. Загальні положення системного аналізу по
- •2.2. Загальні положення ведення каталогу видань, їх зберігання та видачі в бібліотеці
- •2.3. Системний аналіз предметної області
- •2.3.1. Сутність «Тип видання»
- •2.3.2. Сутність «Заголовок»
- •2.3.3. Сутність «Видавництво»
- •2.3.4. Сутність «Автор»
- •2.3.5. Сутність «Стиль»
- •2.3.6. Сутність «Видання»
- •2.3.7. Сутність «Співавтори»
- •2.3.8. Сутність «Обкладинка»
- •2.3.9. Сутність «Місце»
- •2.3.10. Сутність «Реєстрація»
- •2.3.11. Сутність «Читацький квиток»
- •2.3.12. Сутність «Видача»
- •2.4. Інформаційно-довідкові задачі
- •3. Концептуальне моделювання предметної області
- •3.1. Теоретичні положення концептуального моделювання
- •Ключові результати етапу концептуального моделювання
- •3.2. Мова er—моделювання по
- •3.2. Побудова концептуальної моделі бібліотеки
- •4. Логічне та фізичне проектування бази даних
- •4.1. Логічне проектування
- •Крок 1. Перетворення сутностей у таблиці
- •Крок 2. Перетворення атрибутів у стовпці
- •Крок 3. Подання унікальних ідентифікаторів ключами таблиць
- •Крок 4. Перетворення зв'язків багато-до-одного і один-до-одного в зовнішні ключі
- •Крок 5. Введення спеціальних первинних ключів
- •4.2. Фізичне проектування
- •4.2.1. Скрипти створення бази даних
- •4.2.2. Інформаційно–пошукові запити
- •4.2.2.1. Інформаційні запити пов’язані з виданнями
- •4.2.2.2. Інформаційні запити пов’язані із розміщенням та реєстрацією видання
- •4.2.2.3. Інформаційні запити пов’язані із видачею літератури читачам
- •Висновки
4.2.2. Інформаційно–пошукові запити
Наведемо приклади інформаційно пошукових запитів відносно тих задач, які були окреслені в підрозділі «2.4. Інформаційно-довідкові задачі». Приклади наведемо у мові SQL Oracle з використанням бази даних, визначеної у попередньому підрозділі.
4.2.2.1. Інформаційні запити пов’язані з виданнями
Запит 1. Вивести перелік назв видань, які були видані в 2005 році видавництвом «ВЕСЕЛКА». Отримані дані відсортувати по назві видань.
SELECT t.TitleText FROM PUB_TITLE t, PUBLICATION p, PUBLISHING_HOUSE h WHERE p.PTitle = t.PTitle AND p.PubHID = h.PubHID AND UPPER(h. Name) = ‘ВЕСЕЛКА’ AND p.Year = 2005 ORDER BY t.TitleText;
Запит 2. Вивести кількість видань, автором яких є Шекспір і які були видані після 2000 року.
SELECT count(*) as “Кількість видань автора Шекспіра виданих після 2000 р” FROM PUBLICATION p, AUTHOR a, CO_AUTHOR c WHERE c.AuID = a.AuID AND c.PubID=p.PubID AND UPPER(a.Surname) = ‘ШЕКСПІР’ AND p.Year > 2000;
Запит 3. Вивести суму, на яку було закуплено видань у видавництва «ПРОМІНЬ» у 2003 році.
SELECT Sum(с.Price) as “Сума на яку закуплено видань в 2003 р у «ПРОМІНЬ»” FROM PUBLICATION p, PUBLISHING_HOUSE h, PUB_COVER c WHERE p.PubHID = h.PubHID p.PubID = c.PubID AND UPPER(h. Name) = ‘Промінь’ AND p.Year = 2003;
4.2.2.2. Інформаційні запити пов’язані із розміщенням та реєстрацією видання
Запит 1. Вивести кількість видань, які розміщені в 3 кімнаті на 2 стелажі.
SELECT count(*) FROM PUBLICATION p, PUB_COVER c, REGISTRATION r, PLACE d WHERE c.PubID = p.PubID AND r.CovID = c.CovID AND r.PlaceID = d.PlaceID AND d.RoomNo = ‘3’ AND d.ShelNo = ‘2’;
Запит 2. Вивести перелік видань (назву та автора), які були зареєстровані пізніше 2 січня 2005 року. Сортувати по назві.
SELECT t.TitleText, a.Surname, a.Name FROM PUB_TITLE t, PUBLICATION p, AUTHOR a, CO_AUTHOR b, PUB_COVER c, REGISTRATION r WHERE p.PTitle = t.PTitle AND b.PubID = p.PubID AND b.AuID = a.AuID AND c.PubID = p.PubID AND r.CovID = c.CovID AND r.PlaceDate > TO_DATE(’02/01/2005’, ’DD/MM/YYYY’)
ORDER BY t. TitleText;
Запит 3. Вивести назви усіх видань, які написані в публіцистичному стилі автором Марковецьким і зареєстровані до 1 січня 2007 року.
SELECT t.TitleText FROM PUB_TITLE t, PUBLICATION p, PUB_STYLE s, AUTHOR a, CO_AUTHOR b, PUB_COVER c, REGISTRATION r WHERE p.PTitle = t.PTitle AND p.PStyle = s.PStyle AND c.PubID = p.PubID AND r.CovID = c.CovID AND UPPER(a.Surname) = ‘Марковецький’ AND UPPER(s.Description) = ‘публіцистичний’ AND r.PlaceDate < TO_DATE(’01.01.2007’, ’DD/MM/YYYY’);
4.2.2.3. Інформаційні запити пов’язані із видачею літератури читачам
Запит 1. Вивести кількість читачів, які мають прізвище Петров і читають Пушкіна.
SELECT count(distinct rt.Surname) FROM PUBLICATION p, AUTHOR a, CO_AUTHOR b, READERS_TICKET rt, PUB_COVER c, GIVING g WHERE b.PubID = p.PubID AND b.AuID = a.AuID AND c.PubID = p.PubID AND g.CovID = c.CovID AND g.TicketID = rt.TicketID AND a.Surname = ‘Пушкін’ AND rt.Surname = ‘Петров’ ;
Запит 2. Вивести назви та авторів видання, які були видані читачам 6 квітня 2006 року.
SELECT t.TitleText, a.Surname FROM PUBLICATION p, AUTHOR a, CO_AUTHOR b, PUB_COVER c, GIVING g WHERE t.PTitle = p.PTitle AND b.PubID = p.PubID AND b.AuID = a.AuID AND c.PubID = p.PubID AND g.CovID = c.CovID AND g.GivDate = TO_DATE(’06.04.2006’, ’DD/MM/YYYY’);