ексовані поле: НетКафедра - Тип даних: Текстовий - Розмір поля: 40 символів - Обов'язкове поле: Так - Порожні значення: Ні - Індексовані поле: НетПредмет - Тип даних: Текстовий - Розмір поля: 40 символів - Обов'язкове поле: Так - Порожні значення: Ні - Індексовані поле: Так - Зовнішній ключ таблиці ПРЕДМЕТ
Таблиця: ПРЕДМЕТ
Ім'я атрібутаСвойстваПредмет - Тип даних: Текстовий - Розмір поля: 40 символів - Обов'язкове поле: Так - Порожні значення: Ні - Індексовані поле: Так - Первинний ключПреподаватель - Тип даних: Текстовий - Розмір поля: 100 символів- Обов'язкове поле: Так - Порожні значення: Ні - Індексовані поле: Ні
Теоретично проект бази даних готовий. Наступним етапом є її створення. Для створення БД використовувався Microsoft SQL Server 2008 R2. Після створення БД і визначення типу всіх полів я отримав таку схему:
Малюнок 5 - Схема БД в MS SQL Server
2.3 Організація запитів до бази даних
Для побудови інформаційної системи в роботі реалізовані запити, що відображають необхідну інформацію на робочій станції клієнта.
. Вивести інформацію про заданої літературі.
" CREATE PROCEDURE zapros1
@ nazvanie varchar (100) Назва, Тема, Автор, ГодІзданія, Предмет, Кафедра
FROM ІЗДАНІЕНазваніе=@ nazvanie;"
Виклик процедури:
EXEC zapros1 Програмування баз даних
2. Отримати інформацію про видання кафедри
" CREATE PROCEDURE zapros2
@ kafedra varchar (100) Назва, Тема, Автор, ГодІзданія, Предмет
FROM ВИДАННЯ
WHERE Кафедра =kafedra;"
Виклик процедури:
EXEC zapros2 ЕОМ
. Вивести навчальні матеріали, які брав студент.
" CREATE PROCEDURE zapros3
@ stud varchar (100)
ASa.Названіе, a.ДатаВидачі, a.ДатаВозврата, b.Предмет FROM СТУДЕНТ AS a INNER JOIN ВИДАННЯ AS b ON a.Названіе=b.Названіеa.ФІО =stud;"
Виклик процедури:
EXEC zapros3 Іванов І.І.
. РОЗРОБКА ЗАСОБІВ ПІДТРИМКИ БАЗИ ДАНИХ
3.1 Розробка уявлень
Для забезпечення коректності й обмеження доступу до даних при многопользовательском режимі роботи з БД для даної задачі розроблені два уявлення, відбивають часткову інформаціюз БД [3, 4].
) Подання Студенти відображає всіх студентів, взяту кожним літературу, дати видачі і повернення, і предмет. Це допоміжне уявлення. За допомогою нього можна надалі створювати більш прості уявлення і збережені процедури.
SELECT dbo.СТУДЕНТ.ФІО, dbo.СТУДЕНТ.Названіе, dbo.СТУДЕНТ.ДатаВидачі, dbo.СТУДЕНТ.ДатаВозврата, dbo.ІЗДАНІЕ.Предмет
FROM dbo.ІЗДАНІЕ INNER JOIN dbo.СТУДЕНТ ON dbo.ІЗДАНІЕ.Названіе=dbo.СТУДЕНТ.Названіе
ORDER BY dbo.СТУДЕНТ.ФІО, dbo.СТУДЕНТ.Названіе
) Подання Викладачі відображає список всіх викладачів, кафедру, на якій вони працюю і предмет, який ведуть. Програмний фрагмент, який реалізує уявлення Викладачі можна описати таким чином:
CREATE VIEW Викладачі
AS
SELECT dbo.ПРЕДМЕТ.Предмет, dbo.ПРЕДМЕТ.Преподаватель, dbo.ІЗДАНІЕ.Кафедра
FROM dbo.ІЗДАНІЕ INNER JOIN dbo.ПРЕДМЕТ ON dbo.ІЗДАНІЕ.Предмет=dbo.ПРЕДМЕТ.Предмет
) Подання Література відображає назви всієї зареєстрованої літератури, тему, рік видання і автора. Програмний фрагмент, який реалізує уявлення Література можна описати таким чином:
CREATE VIEW Література
AS
SELECT Назва, Тема, Автор, ГодІзданія
FROM dbo.ІЗДАНІЕ
ORDER BY Назва
3.2 Використання тригерів для підтримки даних в актуальному стані
Забезпечення додаткових обмежень на дані організовується за допомогою тригерів. Необхідність використання тригерів обумовлюється наступними вимогами розглянутої задачі [3, 4]:
) Дата видачі не може бути пізніше поточної
CREATE TRIGGER DateInsertСТУДЕНТINSERT @ curDate datetime,
@ insDate datetimedateCur CURSORSELECT ДатаВидачі FROM inserteddateCur @ curDate=getdate () FROM dateCur INTOinsDate (@@FETCH_STATUS=0)insDate gt; curDate ( Дана вставка заборонена , 16,1); TRANSACTION; ( Д...