нормалізоване n-арное ставлення. p> У маніпуляційної частині моделі затверджуються два фундаментальних механізму маніпулювання реляційними БД - реляційна алгебра і реляційне числення. Перший механізм базується в основному на класичній теорії множин (з деякими уточненнями), а другий - на класичному логічному апараті обчислення предикатів першого порядку. p> Відносна простота і ефективність РСУБД, а також наявність солідної теоретичної бази зробило цю модель даних найбільш поширеною на сьогоднішній день. Абсолютна більшість систем управління базами даних, присутніх на ринку програмного забезпечення грунтуються саме на реляційної моделі.
Виходячи з вищесказаного, мені представляється логічним використовувати для виконання звіту реляційну модель даних. h3> Логічна модель
В
Малюнок 1 (схема даних)
Інформаційна модель
В
Малюнок 2 (Таблиця В«ІНФОВ»)
В
Малюнок 3 (Таблиця В«ПроданіВ»)
В
Малюнок 4 (Таблиця «гелториВ»)
В
Малюнок 5 (Таблиця В«ДоговоруВ»)
В
Малюнок 6 (Таблиця В«ПокупціВ»)
Інтерфейси
В
Малюнок 7 (Головна кнопкова форма)
В
Малюнок 8 (Картка покупця)
В
Малюнок 9 (Картка рієлтора)
Вхідні дані
В В
Малюнок 10 (Таблиця В«ДоговоруВ»)
В
Малюнок 11 (Таблиця В«ІнфоВ»)
В В
Малюнок 12 (Таблиця В«покупціВ»)
В В
Малюнок 13 (Таблиця В«ріелториВ»)
В В
Малюнок 14 (Таблиця В«проданіВ»)
В
Вихідні дані
В В
Малюнок 15 (результат запиту В«каталогВ»)
В В
Малюнок 16 (результат запиту В«майно за ріелторомВ»)
В В
Малюнок 17 (результат запиту В«прибутокВ»)
В
Малюнок 18 (результат запиту В«продано ріелторомВ»)
В
Малюнок 19 (результат запиту В«проданіВ»)
В
Малюнок 20 (Звіт В«кімнат <або>В»)
В В
Малюнок 21 (звіт площа <або>)
В
Малюнок 22 (звіт сума <або>)
В
Малюнок 23 (Звіт В«типВ»)
Алгоритм розв'язання задачі
Запити SQL
SQL є, перш за все, інформаційно-логічною мовою, призначеним для опису збережених даних, для вилучення збережених даних і для модифікації даних. SQL не є мовою програмування. (Разом з тим стандарт мови специфікацією SQL/PSM передбачає можливість його процедурних розширень.)
Спочатку, SQL був основним способом роботи користувача з базою даних і представляв собою невелику сукупність команд (операторів) допускають створення таблиць, додавання в таблиці нових записів, витяг записів з таблиць (відповідно до заданих умовою), видалення записів і зміна структур таблиць. У зв'язку з ускладненням мова SQL став більш прикладним мовою програмування, а користувачі отримали можливість використовувати візуальні побудовники запитів.
Запит В«КаталогВ» - даний запит вибирає з таблиці В«ІНФОВ» інформація про майні.
SELECT ІНФО. № _договора, ІНФО. тип, ІНФО. Площадь_ кв_ метр, ІНФО. Адреса, ІНФО. [Поверх (їй)], ІНФО.Колл_комнат, ІНФО. , Ріелтори.ФІО Ріелтора, Ріелтори.телефон_ріелтора
FROM Ріелтори INNER JOIN ІНФО ON Ріелтори. ID_ріелтора = ІНФО.ID рієлтора;
Запит В«майно за ріелтором В»- виводить інформацію про кількість майна закріпленого за кожним ріелтором.
SELECT Ріелтори.ФІО_Ріелтора, Count (ІНФО.тіп) AS [Count-тип], Sum (ІНФО.стоімость) AS [Sum-вартість]
FROM Ріелтори INNER JOIN ІНФО ON Ріелтори.ID_ріелтора = ІНФО.ID_ріелтора
GROUP BY Ріелтори.ФІО_Ріелтора;
Запит на копіювання - виконує копіювання всіх полів проданого майна з таб. В«ІнфоВ» у таб. В«ПроданіВ». p> INSERT INTO продані ( № _договора, заявка, тип, Площадь_кв_метр, Адреса, [Поверх (їй)], Колл_комнат, вартість, [стоімость_ оренда], ФІО_покупателя, Телефон_покупателя, ФІО_Ріелтора, Телефон_ріелтора)
SELECT ІНФО. № _договора, ІНФО.заявка, ІНФО.тіп, ІНФО.Площадь_кв_метр, ІНФО.Адрес, ІНФО. [Поверх (їй)], ІНФО.Колл_комнат, ІНФО.стоімость, ІНФО. [Стоімость_ оренда], Покупателі.ФІО_Покупателя, Покупатели.Телефон_покупателя, Ріелтори.ФІО_Ріелтора, Ріелтори.телефон_ріелтора
FROM Ріелтори INNER JOIN (ІНФО INNER JOIN Покупці ON ІНФО. № _договора = Покупці. № _договора) ON Ріелтори.ID_ріелтора = ІНФО.ID_ріелтора
WHERE куплено = true;
Запит на видалення - видаляє дані про проданий майні з таб. В«ІнфоВ»
DELETE ІНФО. № _договора, ІНФО.куплено, ІНФО.заявка, ІНФО.тіп, ІНФО.Площадь_кв_метр, ІНФО.Адрес, ІНФО. [Поверх (їй)], ІНФО.Колл_комнат, ІНФО.стоімость, ІНФО. [Стоімость_ оренда], ІНФО.ФІО_продавца, ІНФО.Телефон_Продавца, ІНФО.ID_ріелтора
FROM ІНФО
WHERE (((ІНФО.куплено) = True));
Кімнат більше (менше) - виводить поля з таб. В«ІнфоВ» за умовою. p> SELECT ІНФО. № _договора, ІНФО.заявка, ІНФО.тіп, ІНФО.Площадь_кв_метр, ІНФО.Адрес, ІНФО. [Поверх (їй)], ІНФО.Колл_комнат, ІНФО.стоімость
FROM ІНФО
WHERE (((ІНФО.К...