Розробка складних інформаційно-пошукових систем

Національний університет ” Києво-Могилянська Академія “

Курсова робота

На тему:

” Розробка складних інформаційно-пошукових систем “

Науковий керівник: Студентки 3-го курсу

Кулябко П. П. департаменту комп’ютерних технологій

Фіялка Світлани

Київ-1998

Зміст :

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

Опис предметної області……………………………….3 ст.

Інформаційна модель концептуального рівня………..4 ст.

Реалізація………………………………………………..8 ст.

Засоби інтефейсу……………………………………….21 ст.

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

В наш час системи баз даних користуються все більшим попитом. Так як обсяг самих баз даних може бути дуже великим, доцільно використовувати систему керування базами даних. Майже усі сучасні системи побудовані на основі реляційної моделі керування базами даних. Назва “реляційна ” пов”язана з тим, що кожний запис в такій базі даних містить інформацію, яка відноситься (related) тільки до одного конкретного об”єкту. Крім того, з даними двох типів можна працювати як з єдиним цілим, заснованим на значеннях пов”язаних (related) між собою даних. Система керування базами даних надає можливість контролювати задання структури і опис даних, роботу з ними і організацію колективного користування інформацією, вона збільшує можливості і полегшує каталогізацію та ведення великих обсягів інформації в числених таблицях.

Для розробки складних прикладних програм потрібна потужна СКБД та система розробки прикладних програм, яка допомагає автоматизувати основні задачі прикладної програми.

В даній роботі була використана система СКБД – Access. Мета роботи : розробити складну інформаційно-пошукову систему з обраної предметної області, яка повинна забезпечувати підтримку і організацію даних в ній, проведення необхідних змін та вдосконалень, вибір необхідної інформації. Система має бути орієнтована на звичайного користувача, який без зайвих труднощів зможе отримати, ввести, редагувати дані. Для зручного представлення даних та їх використання мають бути розроблені відповідні засоби інтерфейсу.

Опис предметної області.

В якості предметної області для розробленого проекту реляційної бази даних було вибрано бібліотечну справу в певному одному вищому навчальному закладі. В даній бібліотеці існує три відділи : читальна зала для студентів, які вивчають гуманітарні науки, читальна зала для студентів-природничників та читальна зала для студентів факультету суспільних наук. В кожному відділі працює один бібліотекар, який і займається обслуговуванням студентів, які прийшли в цей відділ. Так як всі читачі одночасно є і студентами, то окрім відомостей про їх ім”я та прізвище, доцільно знати назву факультету, де вони навчаються та курс. Всі читачі є студентами лише даного вищого навчального закладу. Основний фонд бібліотеки – книги. Для кожної книги працівниками бібліотеки робиться запис про її ідентифікаційний код, який є унікальним, не може бути застосований до іншої книги або змінений. Кожна книга може знаходитися лише в одному відділі. Розподілення за відділами відбувається на основі тематики книги. Для кожної книги надаються дані про рік її видання, місце та назву видавництва, де вона була видана. В бібліотеці є як одна, так і декілька книг видані одним і тим сами видавництвом. Основна операція в бібліотеці – це обслуговування читачів. Бібліотекар для кожного читача веде абонементний запис, де фіксуються назви книг, які він взяв та дата їх взяття.

Один читач може читати декілька книг одразу. Так як в бібліотеці може бути декілька однакових книг, то і декілька читачів можуть читати одну книгу. Запис про дату взяття книги необхідний для контролю читачів. Якщо студент порівняно довго тримає книгу, то дані про нього заносяться в реєстр читачів-боржників. Обслуговування цього студента в бібліотеці припиняється. Студент має право знову взяти книжки лише в тому випадку, коли він поверне в бібліотеку взяту ним книгу та відбуде “срок покарання”, тобто ще після здачі книги студент на буде обслуговуватися певний час. Всі операції по переведенню читача в стан боржників і навпаки виконує бібліотекар.

Інформаційна модель концептуального рівня.

Для будь-якої інформаційної моделі можна виділити три рівні організації даних: внутрішній рівень, зовнішній рівень та концептуальний рівень. Внутрішній рівень інформаційної моделі – це рівень структур даних певної СКБД: одна і та сама предметна область може бути реалізована через Access, Paradox, FoxPro або іншу систему. Зовнішній рівень – це рівень (точка зору) зовнішніх користувачів щодо організації даних. Між внутрішнім і зовнішнім рівнями знаходиться концептуальний рівень, який інтегрує різні точки зору зовнішніх користувачів, розв”язуючи суперечності між ними. Відносно внутрішнього рівня концептуальний рівень має єдину структурну мову. Всі СКБД, на яких реалізовано певну предметну область, повинні підтримувати концептуальний рівень.

Для опису інформаційної моделі концептуального рівня може бути вибрана ER-модель. Основними поняттями ER-моделі є: об”єкти, зв”язки, атрибути та ключі. Об”єкт – певна сукупність даних, які утворюють семантичне або логічне ціле. В реляційних базах даних відповідником об”екту є реляція – таблиця. Для даної предметної області можна виділити такі об”єкти: читач, книга, абонемент, відділ, бібліотекар, видавництво, факультет, боржники, відділ-книга, видавництво-книга, бібліотекар-відділ. Кожен з цих об”єктів складається з відповідних атрибутів – полів запису, що містять певну частину інформації про об”єкт. Для об”єкту “читач” атрибутами виступають такі поля: код читача, прізвище, ім”я, код факультету, курс. Для об”єкту “відділ” атрибутами є: код відділу та його назва. Об”єкт ” бібліотекар” містить атрибути: код бібліотекаря, прізвище, освіта, вік, стаж роботи. “Видавництво” -: код видавництва, назва, індекс міста, назва міста, адреса. “Факультет” -: код факультету, назва, прізвище керівника, який очолює факультет. “Боржники”-: код читача, код книги, дата взяття книги, факт про повернення книги, дата повернення. “Книга” -: код книги, назва, автор. “Абонемент” -: код читача, код книги, дата взяття книги, факт про повернення книги. “Відділ-книга” -: код книги, код відділу, кількість однакових книжок у відділі. Видавництво-книга”-: код книги, код видавництва, рік видання книги та її тираж. “Бібліотекар-відділ”-: код відділу та код бібліотекаря.

Ключ – це атрибут або група атрибутів, який однозначно ідентифікує примірник об”єкту за умови мінімальності. Під умовою мінімальності тут слід розуміти той факт, що зі складу ключа не можна вилучити жодного атрибуту без втрати властивості ідентифікації. Для об”єкту “книга” ключем виступає атрибут “код книги”. За кодом книги можна однозначно визначити назву книги та її автора. Для об”єкту “читач” ключовим атрибутом є “код читача”, за яким можна знайти прізвище та ім”я читача, а також факультет та курс, на якому він навчається. Об”єкт “факультет” має ключ – “код факультету”. Кожен факультет має свій код, за яким знаходиться його назва та прізвище керівника, що його очолює. У об”єкта “боржники” ключем виступають два атрибути – код читача та код книги. Читачі-боржники є підмножиною більшої множини читачів, для яких також ведеться абонементний запис, де теж фіксується код читача та код книги, яку він тримає. Читачів-боржників доцільно виокремити з усього загалу читачів, не дивлячись на те, що у відповідних таблицях для читачів -“абонемент” та для читачів-боржників – “боржники” є схожі атрибути. По-перше це необхідно для того, щоб не перевантажувати базу даних. Крім того, для звичайних читачів не фіксується дата повернення книги, оскільки тут вона є неважливою. Навпаки, для читачів-боржників дата повернення книги обов”язково фіксується і запис про неї не видаляється ще певний час. Як було зазначено раніше, це пов”язано з тим, що читач-боржник переходить у спільний реєстр читачів тільки через певний час після здачі книги. Цей факт пов”язаний і з наступними міркуваннями: якщо для звичайного читача встановлення атрибуту “факт про здачу книги” в істину автоматично видаляє записи про нього з таблиці “абонемент” до наступного обслуговування, то для читача-боржника він означає відлік часу до повного відновлення своїх читацьких прав. Атрибут “дата взяття книги” є більш важливим для об”єкту “читач”, оскільки в бібліотеці постійно вираховується різниця між поточною датою та датою взяття книги. Якщо її різниця перевищує певні межі, читач автоматично зараховується в стан читачів-боржників. Встановлює всі ці обмеження сам бібліотекар, він може змінити їх як завгодно.

Для об”єкту “відділ” ключем є атрибут “код відділу”, за яким однозначно встановлюється його назва. За ключовим атрибутом “код бібліотекаря” для об”єкту “бібліотекар” однозначно визначаються прізвище бібліотекаря, його освіта, вік та стаж роботи. Ключ “код видавництва” для об”єкту “видавництво” визначає назву видавництва, індекс міста, в якому розташовано видавництво, назву цього міста та адресу, за якою можна знайти дане видавництво в цьому місті. Об”єкт “бібліотекар-відділ” фактично можна інтерпретувати як: “бібліотекар працює у відділі”. Він містить лише два атрибути, які є ключовими. За кодом бібліотекаря можна знайти відділ, де він працює, і навпаки. Об”єкт “відділ-книга” інтерпретується як “книга знаходиться у відділі”. Цей об”єкт має два ключових атрибути: код книги та код відділу. Оскільки предметною областю передбачено, що одна книга може знаходитися лише у одному відділі, то між цими атрибутами існує взаємна однозначність. І, нарешті, об”єкт “видавництво-книга” можна також інтерпретувати як “видавництво видає книгу”. Ключовими атрибутами є код книги та код видавництва.

Зв”язок – це відношення між примірниками об”єктів одного і того ж типів. Зв”язок характеризується арністю, яка визначається кількістю типів об”єктів, що включаються в зв”язок та типом відображення. Існують відображення: один-до-одного, один-до-багатьох, багато-до-багатьох. Зв”язок “один-до-одного” – один примірник одного типу об”єкта співвідноситься з одним примірником іншого типу об”єкта, або до цього ж самого. Зв”язок “один-до-багатьох” – одному примірнику деякого типу об”єкту відповідає декілька примірників іншого типу об”єкта. Зв”язок “багато-до-багатьох” – кільком примірникам одного типу об”єкта відповідає кілька примірників іншого.

В даній предметній області існують такі зв”язки між об”єктами:

1) між “читачем” та “книгою”: зв”язок – багато-до-багатьох. Багато читачів можуть читати одну книгу, багато книг може читати один читач.

2) між “боржником” та “книгою” – аналогічна ситуація.

3) між “видавництвом” та “книгою”: зв”язок – один-до-багатьох. В одному видавництві може видаватися багато книг. За даною предметною областю одна і та сама книга не може видаватися у кількох видавництвах.

4) між “відділом” та “книгою”: зв”язок – один-до-багатьох. В одному відділі може знаходитися багато книг. Одна і та сама книга не може знаходитися у кількох відділах.

5) між “бібліотекарем” та “відділом”: зв”язок – один-до-одного. В одному відділі працює лише один бібліотекар.

6) між “читачем” та “факультетом”: зв”зок – один-до-багатьох. На одному факультеті може навчатися багато читачів, але один читач не може навчатися на кількох факультетах.

Остаточно ER-модель для даної предметної області можна представити у вигляді схеми.

Читаєзнаходиться

Читач m n книга n 1 відділ

N”абонемент” “книга-відділ” 1

Начєтьсятримає n nпрацює

Видається

M “видавництво-книга” “бібліотекар-відділ”

Боржник 1 1 1

Факультет видавництво бібліотекар

Реалізація.

Засобом для реалізації даної прикладної системи, як вже зазначалось раніше, стала система MicrosoftAccess’97.

Першим етапом по створенню реляційної бази дани була розробка необхідних реляцій (таблиць) та відповідне їх наповнення. В даній базі даних “Бібліотека” створено 11 таблиць: абонемент, книга, відділ-книга, читач, боржники, факультет, відділ, бібліотекар, бібліотекар-відділ, видавництво, видавництво-книга.

Таблиця “абонемент” має 4 поля, два з яких ключові – “код читача” та “код книги” і два інші – “дата взяття книги” з даними типу дата та “факт про повернення книги” з даними логічного типу.

Код читачаКод книгиДата взяття книгиФакт сдачі
14712.05.98Нет
14912.05.98Нет
24313.05.98Нет
24413.05.98Нет
24613.05.98Нет
34113.05.98Нет
44010.05.98Да
63105.05.98Нет
63305.05.98Нет
74010.05.98Да
83411.05.98Нет
83711.05.98Нет
11812.05.98Нет
11913.05.98Нет
12614.05.98Нет
12714.05.98Нет
13613.05.98Да
151912.05.98Нет
152012.05.98Нет
152212.05.98Нет
162210.05.98Нет
172410.05.98Нет
172510.05.98Нет
172710.05.98Нет
172812.05.98Нет
172912.05.98Нет
18610.05.98Нет
181310.05.98Нет
201611.05.98Нет
203111.05.98Нет
203312.05.98Нет

Таблиця “книга” має три поля, ключове поле – “код книги” з числовими даними. Інші поля:”назва” з текстовими даними та “автор” – теж з текстовими даними.

Код книгиНазваАвтор
2МакроэкономикаМэнкью
3ЭкономиксСамюэльсон
4Линейное программированиеЮдин
5Вища математикаДубовик
6Першотвір і перекладКоптілов
7О всеобщем родстве языков мираМельничук
8ЭкономиксКэмпбелл
9Дослідження операційВарнер
10Системний аналізПономаренко
11Теорія і практика перекладуКоптілов
12Реалія і перекладЗорівчак
13Слово живое и мертвоеГаль
14Индоевропейский язык и индоевропейцыГамкрелидзе
15Сучасне порівняльно-історичне мовознавствоБілецький
16Праславянский языкХенрик
17Избранные работы по языкознаниюПокровский
18Сравнительная грамматика индоевропейских языковСавченко
19Лингвистический энциклопедический словарьЯрцева
20ПолітологіяДзюбко
21Основи загальної теорії права та державиРабінович
22Основи держави і праваКотюк
23The Social ExperienceVander Zanden
24Українська моваМацько
25Интенсивный курс турецкого языкаЩека
26The Heinemann English GrammarBeaumont
27Введение в славянскую филологиюСупрун
28Язык в пространстве и времениМартынов
29Українська гіпотезаКарпенко
30Новый Навигатор InternetГилстер
31Техніка програмування мовою СіПроценко
32Дослідження операційЗайченко
33Лінійні просториКалужнін
34IBM PC для пользователяФигурнов
35Лекции по линейной алгебреГельфанд
36Программирование на языке Turbo PascalЗубов
37Учимся программировать на С++Джамса
38Основы линейной алгебрыМальцев
39Сборник задач по линейной алгебреПроскуряков
40Комп”ютерні віруси в MS DOSКасперський
41Программирование в Paradox под Windows на примерахТиней
42Пишем вирус и антивирусХижняк
43Компьютерная вирусологияБезруков
44Access 7.0Вейскас
45Язык Си для профессионаловШилдт
46Программирование видеоадаптеровФролов
47Язык ассемблера для IBM PCАбель
48Турбо ПаскальПоляков
49Paradox-это очень простоСигель
50Учебник японского языкаГоловнин
111ОсновиДзюбикyg8

Таблиця “читач” має 5 полів: ключове поле – “код читача” з числовими даними. Інші поля: “прізвище” – текстові дані, “ім”я” – текстові дані, “номер факультету” – числові дані, “курс” числові дані.

Код читачаПрізвищеІм”яФакультетКурс
1СігаєваМарина13
2ФіялкаСвітлана13
3ПархоменкоОлена13
4КомарницькаЛюдмила13
5ПідгорнийСвєтослав13
6ФедосоваНаталя13
7ТарнавськаОлена13
8БубенщиковЄвген13
9СиворакшаСергій13
10ОвдійЮрій13
11ЦапОльга23
12ДундійГанна43
13МедвєдєваСоломія53
14ЖилєвськийОлександр22
15ЖаркоТетяна32
16ІвановаТетяна61
17ГалабурдаЮля43
18СосновськаЛюба43
19ВахненкоТетяна43
20БедноваГанна43

Таблиця “боржники” має 5 полів: ключові поля – “код читача” та “код книги”. Інші поля: “дата взяття книги” – дані формату дат, “факт про повернення книги” – логічні дані, “дата повернення книги” – дані формату дат.

Код читачаКод книгиДата взяттяПовернення книгиДата повернення
53030.03.98Да01.04.98
93930.04.98Нет
101030.03.98Да01.04.98
14301.05.98Нет
14401.05.98Нет
1411130.04.98Нет
191430.04.98Нет
191501.05.98Нет

Таблиця “факультет” містить 3 поля: ключове поле – “номер факультету”.Поле “повна назва” – назва факультету, текстові дані. Поле “керівник підрозділу” – текстові дані.

Номер факультетуПовна назваКерівник підрозділу
1Департамент комп”ютерних технологійГлибовець М. М.
2Департамент економічної теоріїЯстремський О.
3Факультет правничих наукСущенко В. М.
4Факультет гуманітарних і суспільних наукГусєв В. І.
5Факультет природничих наукБезусько А. Г.
6Школа соціальної роботиПолтавець В. І.

Таблиця “відділ” має 2 поля: ключове поле – “код відділу” з числовими даними та поле “назва” з текстовими даними.

Код відділуНазва
1Читальна зала для суспільнознавців
2Читальна зала для природничників
3Читальна зала для гуманітаріїв

Таблиця “бібліотекар” має 5... полів: ключове поле – “код бібліотекаря” з числовими даними, поле “прізвище” з тектовими даними, поле “освіта” з текстовими даними, поле “вік” з числовими даними, поле “стаж” з числовими даними.

Код бібліотекаряПрізвищеОсвітаВікСтаж
1Ярошниченко Т. Я.Вища4525
2Мирошниченко Я. Т.Вища4015
3Фощенко Т. Т.Вища3510

Таблиця “видавництво” має 5 полів: ключове поле – “код видавництва” з числовими даними, поле “назва” з текстовими даними, поле “індекс міста” з числовими даними, поле “місто” з текстовими даними, поле “адреса” з текстовими даними.

Код видавництваНазва видавництваІндекс містаМістоАдреса
1000Просвіта252001КиївВул. Шевченко,23
1001Світанок252123КиївБул. Л. Українки,14
1002Либідь252001КиївХрещатик,10
1003Вища школа252054КиївГоголівська вул.,7
1004Дніпро252332КиївВул. Милославська,10
1005Книжна фабрика252160КиївВул. Перова,12
1006ЛДУ239170ЛьвівБул. Перемоги,27
1007Высшая школа101430МоскваНеглинная ул.,29/14
1008ТДУ108677ТбілісіУл. Интернациональная,14
1009Наука128367Москва2-й Рижский пер.,3
1010Вентурі252003КиївВул. Сосновська,6
1011Random HouseNew York
1012Издательство Московского ууниверситета103009МоскваУл. Большая Никитинская,5/7
1013Heinemann OublishersOxford
1014Діалектика252022КиївПросп. Глушкова,6
1015Инфра. М127247МоскваДмитровское шоссе,107
1016Филин128820МоскваНовопетровская ул.,1
1017Мир129820Москва1-й Рижский пер.,2
1018Бином103473МоскваУл. Новослободская,50
1019Питер197198Санкт-ПетербургУл. Благодатная,67
1020И. В. К.-Софт127147МоскваУл. Строительная,25
1021Диалог-Мифи126548МоскваУл. Закревского,9
1022БорАГ102111МоскваУл. Набережная,6
1023Лингва102110МоскваУл. Красноармейская,8

Таблиця “бібліотекар-відділ” має 2 ключових поля: “код відділу” та “код бібліотекаря”.

Код відділуКод бібліотекаря
13
22
31

Таблиця “відділ-книга” має 3 поля: ключові поля – “код книги” та “код відділу”, інше поле – “кількість” містить числові дані.

Код книгиКод відділуКількість
2110
3110
4210
5220
635
735
8125
925
1024
1138
1236
1334
1435
1538
1635
1735
18310
19320
20125
21125
22125
23130
24330
2535
2635
2736
2836
2935
30215
31215
3225
33230
34210
35225
36225
37210
38215
39210
40210
41210
42210
43210
44210
45210
46215
47215
48210
4925
5035
11115

Таблиця “видавництво-книга” має 4 поля: з них два ключових – “код книги” та “код видавництва”, та інші два поля – “рік видання” – дані формату дат, “тираж” – числові дані.

Наступним важливим кроком в розробці бази даних було встановлення зв”язків між таблицями з врахуванням вимог третьої нормальної форми.

Перша нормальна форма : всі атрибути реляції мають бути атомарними, тобто вони повинні бути неподільними, не мати власної структури, не бути самі по собі реляціями. Кожне поле даних повинно містити унікальні елементи даних і жоден окремий елемент даних не повинен повторюватися в таблиці.

Розроблена база даних задовільняє вимогам першої номальної форми.

Друга нормальна форма : Вимоги для першої нормальної форми + : Кожна таблиця повинна мати унікальний ідентифікатор (первинний ключ). Всі

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

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

Третя нормальна форма : Вимоги для другої нормальної форми +: Всі поля, що не входять в первинний ключ, повинні бути взаємнонезалежними, Тобто повинна існувати можливість змінювати значення одного неключового поля, не змінюючи при цьому значення будь-якого іншого поля бази даних. Не повинно існувати транзитивної залежності вторинних атрибутів (тіх, що не входять до складу жодного квазі-ключа) від від кожного квазі-ключа.

A1 A2 A3

Дана база даних задовільняє вимогам третьої нормальної форми.

Останній етап проектування бази даних – це створення зв”язків між таблицями. Оскільки Access не дозволяє визначати прямий зв”язок “багато-до-багатьох”, то треба створювати додаткову таблицю перетину, за допомогою якої один зв”язок “багато-до-багатьох” зводиться до двох зв”язків типу “один-до-багатьох”. Саме з таких міркувань була створена таблиця “абонемент” , вона розбиває прямий зв”язок типу “багато-до-багатьох” між “читачами” та “книгами” на два зв”язки типу “один-до-багатьох”.

Схема зв”язків між таблицями в базі даних “Бібліотека”.

Книга
Код книги
Назва
Автор
Абонемент
Код читача
Код книги
Дата взяття книги
Факт про повернення
Читач
Код читача
Прізвище
Ім”я
Номер факультету
Курс
Боржники
Код читача
Код книги
Дата взяття
Факт про повернення
Дата повернення
Бібліотекар
Код бібліотекаря
Прізвище
Освіта
Вік
Стаж
Факультет
Номер факультету
Повна назва
Керівник підрозділу
Відділ
Код відділу
Назва
Бібліотекар-відділ
Код відділу
Код бібліотекаря
Відділ-книга
Код книги
Код бібліотекаря
Кількість
Видавництво
Код видавництва
Назва
Індекс міста
Місто
Адреса
Видавництво-книга
Код книги
Код видавництва
Рік видання
Тираж

Вся робота з базою даних відбувається через запити. За їх допомогою можна взнати будь-яку інформацію про читача, книгу, видавництво, відділ, бібліотекаря та ін. За допомогою запитів можна змінювати, видаляти будь-яку інформацію в базі даних. Через запити проходить і процес роботи з читачами. Створені запити при їх запуску згідно з усіма раніше описаними принципами заносять, наприклад, студентів у список читачів-боржників, або видаляють їх звідти. Деякі запити були написані з використанням графічних можливостей QBE (запита за зразком), інші – безпосередньо мовою SQL, стандартною мовою якою користується Microsoft Access для роботи з даними. Для написання складних запитів з множинними порівняннями використовувався принцип підпорядкованих запитів, результати роботи яких використовувалися в якості умов відбору в інших запитах. Майже всі запити реалізовані через параметри, тобто при їх запуску система просить ввести значення якогось параметра, на основі якого потім буде відбуватися пошук необхідної інформації.

Найтиповіші запити по базі даних “Бібліотека”:

1) Знайти факультет, на якому навчається студент. SQL-запит:

SELECT DISTINCTROW факультет.[Повна назва], факультет.[Керівник підрозділу], читач.[Прізвище]&;” “&;[Ім”я] AS Выражение1

FROM факультет INNER JOIN [читач] ON факультет.[Номер факультету]=читач. Факультет

WHERE ((([читач].[Прізвище]&;” “&;[Ім”я])=[Введіть прізвище та ім”я

Читача]);

2) Знайти прізвище читача, який читає таку-то книгу.

SELECT DISTINCTROW читач. Прізвище, читач.[Ім”я], книга. Назва

FROM [читач]INNER JOIN (книга INNER JOIN абонемент ON книга.[Код книги]=абонемент.[Код книги]ON читач.[КОд читача]=абонемент.[Код читача]

WHERE (((книга. Назва)=[Введіть назву книги]));

3) Який факультет очолює такий-то декан?

SELECT DISTINCTROW факультет.[Повна назва], факультет.[Керівник підрозділу]

FROM факультет

WHERE (((факультет.[Керівник підрозділу])=[Введіть прізвище декану]));

4) Знайти всіх студентів, які навчаються на такому-то курсі.

SELECT DISTINCTROW читач.[Код читача], читач. Прізвище, читач.[Ім”я], читач. Курс

FROM [читач]

WHERE (((читач. Курс)=[Введіть курс]));

5) Знайти назви книг та місця, де вони були видані, якщо роки їх видання з

Такого-то по такий-то рік.

SELECT DISTINCTROW [видавництво-книга].[Рік видання], книга. Назва, книга. Автор, видавництво.[Назва видавництва], видавництво. місто

FROM книга INNER JOIN (видавництво INNER JOIN [видавництво-книга] ON видавництво. [Код видавництва]=[видавництво-книга].[Код видавництва] ON книга.[Код книги]=[видавництво-книга].[Код книги]

WHERE ((([видавництво-книга].[Рік видання]) BETWEEN [Введіть перший рік випуску] AND [Введіть останній рік випуску]));

6) За номером відділу знайти його повну назву та бібліотекаря, який там

Працює.

SELECT DISTINCTROW бібліотекар. Прізвище, відділ.[Код відділу], відділ. Назва

FROM відділ INNER JOIN (бібліотекар INNER JOIN [бібліотекар-відділ] ON бібліотекар.[Код бібліотекаря]=[бібліотекар-відділ].[Код бібліотекаря]) ON відділ.[Код відділу]=[бібліотекар-відділ].[Код відділу]

WHERE ((( відділ.[Код відділу])=[Введіть номер відділу]));

7) Знайти всі книжки, які не знаходяться у такому-то відділі.

SELECT DISTINCTROW книга. Назва, книга. Автор

FROM книга INNER JOIN (відділ INNER JOIN [відділ-книга] ON відділ.[Код відділу]=[відділ-книга].[Код відділу]) ON книга.[Код книги]=[відділ-книга].[Код книги]

WHERE (((відділ. Назва)<>[Введіть назву відділу]))

GROUP BY книга. Назва, книгаюАвтор;

8) Знайти коди всіх тих читачів, які прнаймі читали книгу з кодом 6.

SELECT DISTINCTROW читач.[Код читача]

FROM абонемент INNER JOIN [читач] ON читач.[Код читача]=абонемент.[Код читача]

WHERE EXISTS

(SELECT книга.[Код книги]

FROM абонемент книга

WHERE абонемент.[Код книги]=книга.[Код книги]

AND книга.[Код книги]=6);

9) Знайти всіх читачів, що на даний момент тримають 5 книжок.

SELECT DISTINCTROW читач. Прізвище, читач.[Ім”я], факультет.[Номер факультету], COUNT (абонемент.[Код книги]) AS [COUNT_Код книги]

FROM (факультет INNER JOIN [читач] ON факультет.[Номер факультету]=читач. Факультет) INNER JOIN (книга INNER JOIN абонемент ON книга.[Код книги]=абонемент.[Код книги] ON читач.[Код читача]=абонемент.[Код читача]

GROUP BY читач. Прізвище, читач.[Ім”я], факультет.[Номер факультету]

HAVING (((COUNT (абонемент.[Код книги]))=5));

10) Знайти всі книги, що були видані у видавництві такому-то.

SELECT DISTINCTROW книга. Назва, книга. Автор

FROM книга INNER JOIN (видавництво INNER JOIN [видавництво-книга] ON видавництво.[Код видавництва]=[видавництво-книга].[Код видавництва]) ON книга.[Код книги]=[видавництво-книга].[Код книги]

WHERE (((видавництво.[Назва видавництва])=[Введіть назву видавництва]))

GROUP BY книга. Назва, книга. Автор;

11) Запит на видалення. З таблиці “боржники” видаляються записи про читачів,

Якщо відмічено, що вони повернули взяті книги та від дня їх повернення до

Поточного дня пройшло більше 20 днів, тобто, як зазначалось раніше, ще 20

Днів після повернення книги бувший боржник обслуговуватись не буде.

DELETE DISTINCTROW DATE()-[Дата повернення] AS Вираз1, боржники.[Код читача] AS Вираз2, боржники.[Код книги] AS Вираз3, боржники.[Дата взяття] AS Вираз4, боржники.[Дата повернення] AS Вираз5, боржники.[Повернення книги]

FROM боржники

WHERE (((DATE()-[Дата повернення])>20 AND ((боржники.[Повернення книги])=YES));

11) Запит на додавання. Перевіряється таблиця “абонемент”. Якщо там є читачі, які тримають книгу більше 13 днів, то вони заносяться список боржників.

INSERT INTO боржники([Дата взяття книги],[Код книги],[Код читача])

SELECT DISTINCTROW абонемент.[Дата взяття книги] AS Вираз1, абонемент.[Код книги] AS Вираз2, абонемент.[Код читача] AS Вираз3

FROM абонемент

WHERE ((( DATE()-[Дата взяття книги])>13));

12) Запит на оновлення. Для боржника, який здав книгу, робиться помітка про здачу.

UPDATE DISTINCTROW [читач] INNER JOIN боржники ON читач.[Код читача]=боржники.[КОд читача]

SET боржники.[Повернення книги]=YES

WHERE ((([читач].[Прізвище]&;” “&;[Ім”я]=[Введіть прізвище та ім”я]));

13) Запит на створення таблиці. Створюється таблиця”куча”, в яку заносяться дані про назву книги, яка знаходиться у другому відділі і випущена в 1992 або 1993 роках.

SELECT DISTINCTROW відділ.[Код відділу], книга. Назва, [видавництво-книга].[Рік видання] INTO [куча]

FROM [книгаї INNER JOIN [видавництво-книга] ON кинга.[Код кинги]=[видавництво-книга].[Код книги]) INNER JOIN (відділ INNER JOIN [відділ-книга] ON відділ.[Код відділу]=[відділ-книга].[Код відділу]) ON книга.[Код книги]=[відділ-книга].[Код книги]

WHERE (((відділ.[Код відділу])=2 AND (([видавництво-книга].[Рік видання])=1992 OR ([видавництво-книга].[Рік видання])=1993));

14) Знайти всіх читачів, що читали принаймі всі ті книжки, що і читач Федосова.

Спочатку створюється підзапит, який видає множину всіх книг, що читає Федосова.

SELECT DISTINCTROW читач. Прізвище, книга. Назва

FROM [читач] INNER JOIN ( книга INNER JOIN абонемент ON книга.[Код книги]=абонемент.[Код книги]) ON читач.[Код читача]=абонемент.[Код читача]

WHERE (((читач. Прізвище)=”Федосова”));

Тепер створюється головний запит на основі підзапиту (sub1).

SELECT DISTINCTROW читач. Прізвище, читач.[Ім”я], книга. Назва

FROM [читач] INNER JOIN (( SUB1 INNER JOIN книга ON SUB1.Назва=книга. Назва) INNER JOIN абонемент ON книга.[Код книги]=абонемент.[Код книги]) ON читач.[Код читача]=абонемент.[Код читача]

Засоби інтерфейсу.

Для створеної бази даних розроблені інтефейсні засоби, які дозволяють працювати з нею і звичайному користувачеві. При запуску програми на екрані перед користувачем в першу чергу з”являється головна форма з шістью управляючими кнопками. Також вгорі екрану замість стандартного меню з”являється власноручно створене меню. В деяких моментах воно дублює форму, тобто з нього можна безпосередньо вибирати ті ж дії, що і по натисненню кнопки в формі, але має і свої відмінності, завдяки чому ним можна порадити користуватися більш досвідченим користувачам.

Отже, головне меню має 5 пунктів – File, View, Edit, Window, Help. Меню File має такі підменю:nNew, SaveAs, PrintTools, PrintPreview, Print. Підменю nNew має ще один рівень вкладеності – ми можемо вибрати, що створювати: нову таблицю, форму, запит, макрос, звіт, або, взагалі, нову базу даних. Велика увага приділяється роздруковуванню матеріалів. В пункті PrintTools можна встановити параметри друку. Інший пункт меню – View. Можна вибрати, що продивлятись: таблиці, форми, запити, звіти. Після вибору відповідного пункту відкривається форма, яка дозволяє робити наступний вібір, подаючи відповідно список існуючих таблиць, форм, запитів, звітів. Крім форми, яка виводить список таблиць для подальшого перегляду,

Всі інші форми можна викликати натиснувши відповідні кнопки на меню-формі – “Перегляд інформації” – виводиться список існуючих форм,

“Запити”- список існуючих запитів,

“Звіт” – список звітів.

В меню View є ще один пункт Tools для встановлення різноманітних параметрів системи. Наступний пукт меню Edit повністю аналогічний за результатом вибору натисненню на кнопку меню-форми “Редагування інформації”. Після його вибору з”являється інша форма, яка пропонує певні розділи інформації для редагування.

За власним вибором можна занести або вилучити якісь відомості про читачів, книги, працівників бібліотеки та ін. Наступний пункт меню – Window. За його допомогою можна поміняти розташування вікон на екрані: Tile, Cascade, Hide, Unhide. Останній пукт меню – Help – при його виборі запускається стандартна допога.

Меню-форма є, можливо, більш зручнішою для користування звичайними користувачами, оскільки вона є більш наочною. Так, натискаючи послідовно кнопки “Перегляд інформації” та наступні запропоновані розділи, можна продивитись майже всю інформацію, яка є в таблицях. Наприклад:

“Перегляд інформації” -> “бібліотекарі”:

Поле6Поле8Поле10Поле12ПолеСоСписком14
Ярошниченко Т. Я.4525Вища1
Мирошниченко Я. Т.4015Вища2
Фощенко Т. Т.3510Вища3

Поле для кода бібліотекаря є списком, вибираючи з якого певний код можна відразу ж побачити всі записи про даного бібліотекаря (це зроблено за допомогою функції DlookUp). Дані в цю форму заносяться з таблиці, проте в більшість розроблених форм дані заносяться із запитів.

ПрізвищеІм”яПовна назваКурс
ПархоменкоОленаДепартамент комп”ютерних технологій3
КомарницькаЛюдмилаДепартамент комп”ютерних технологій3
ПідгорнийСвєтославДепартамент комп”ютерних технологій3
ФедосоваНаталяДепартамент комп”ютерних технологій3
ТарнавськаОленаДепартамент комп”ютерних технологій3
БубенщиковЄвгенДепартамент комп”ютерних технологій3
СиворакшаСергійДепартамент комп”ютерних технологій3
ОвдійЮрійДепартамент комп”ютерних технологій3
СігаєваМаринаДепартамент комп”ютерних технологій3
ФіялкаСвітланаДепартамент комп”ютерних технологій3
ЦапОльгаДепартамент економічної теорії3
ЖилєвськийОлександрДепартамент економічної теорії2
ЖаркоТетянаФакультет правничих наук2
ДундійГаннаФакультет гуманітарних і суспільних наук3
ГалабурдаЮляФакультет гуманітарних і суспільних наук3
СосновськаЛюбаФакультет гуманітарних і суспільних наук3
ВахненкоТетянаФакультет гуманітарних і суспільних наук3
БедноваГаннаФакультет гуманітарних і суспільних наук3
МедвєдєваСоломіяФакультет природничих наук3
ІвановаТетянаШкола соціальної роботи1

Дана форма дає відомості про студентів. За допомогою кнопок на формі можна передивлятися всі записи. В таблиці “читач” не має запису про назву факультету, де навчається студент, а лише номер факультету, тому для виведення його в форму разом з іншими відомостями був написаний запит.

Форми на редагування інформації в основному використовують макроси.

НазваАвторКод книги
МакроэкономикаМэнкью2
ЭкономиксСамюэльсон3
Линейное программированиеЮдин4
Вища математикаДубовик5
Першотвір і перекладКоптілов6
О всеобщем родстве языков мираМельничук7
ЭкономиксКэмпбелл8
Дослідження операційВарнер9
Системний аналізПономаренко10
Теорія і практика перекладуКоптілов11
Реалія і перекладЗорівчак12
Слово живое и мертвоеГаль13
Индоевропейский язык и индоевропейцыГамкрелидзе14
Сучасне порівняльно-історичне мовознавствоБілецький15
Праславянский языкХенрик16
Избранные работы по языкознаниюПокровский17
Сравнительная грамматика индоевропейских языковСавченко18
Лингвистический энциклопедический словарьЯрцева19
ПолітологіяДзюбко20
Основи загальної теорії права та державиРабінович21
Основи держави і праваКотюк22
The Social ExperienceVander Zanden23
Українська моваМацько24

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

Натиснувши кнопку “Запити” можна запустити будь-який запропонований запит на виконання. Більшість запитів використовують параметри, але їх можна вводити не тільки через стандартне діалогове вікно, а й через форму.

PublishYear1Year2

Наприклад, ми вибираємо запит -“За назвою видавництва знайти книги, які були там видані між таким-то і таким-то роками. Після натиснення на кнопці з умовою цього запиту, з”являється форма, яка бере на себе обов”язки діалового вікна і пропонує ввести необхідні параметри.

Натискаючи кнопку “Звіт” на формі-меню можна вибрати певний звіт і продивитись його.

Відомості про

Студента

Код 1

Прізвище:Ім”я:Повна Курс:

СігаєваМаринаДепартамент комп”ютерних 3

В говному меню в File є також пункт Exit, який завершує роботу з системою ї виходить з Access. Аналогічну дію виконує кнопка “Вихід з програми” на меню-формі”, відмінність лише в тому, що перед виходом вона запрошує підтвердження.


Зараз ви читаєте: Розробка складних інформаційно-пошукових систем