МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра КСА
ЗВІТ
ДО ЛАБОРАТОРНОЇ РОБОТИ №1
з курсу « бази даних та знань »
на тему:
“Розроблення проекту бази даних
Microsoft SQL Server 2005”
Мета роботи: ознайомитися зі структурою об’єктів баз даних Microsoft SQL Server 2005 та отримати навики розроблення проекту бази даних за допомогою інструментарію Management Studio.
Таблиця 1
№
п/п
9
Завдання
БД співробітників кафедри КСА (рис. 1).
P.K. – Співробітники→Серія та номер паспорту; Дисципліни→Назва дисципліни.
I. – Дисципліни→Номер семестру.
U.I. – Співробітники→Прізвище + Ім’я + По-батькові; Дисципліни→Код.
CHECK – для Співробітники→Серія та номер паспорту забезпечити формат вводу: 2 букви + пробіл + 6 цифр ; у полі Співробітники →Ім’я допускається ввід лише таких імен: 'Андрій', 'Оля', 'Володимир' та 'Оксана'.
Формула – для таблиці Співробітники створити поле, що виводить лише номер паспорту; для таблиці Співробітники створити поле, що виводить рік у якому співробітник влаштувався на роботу, як різницю між поточним роком та значенням трудового стажу.
Короткі теоретичні відомості
Проектування бази даних
1 Створення бази даних
СТВОРЕННЯ З’ЄДНАННЯ:
У полі Server type (тип сервера) вибираємо значення Database Engine.
У полі Server name (ім’я сервера) залишаємо ім’я сервера за замовчуванням.
У полі Authentication (перевірка автентичності) вибираємо варіант Windows Authentication або SQL Server Authentication (вводимо ім’я користувача sa та його пароль).
Натискаємо кнопку Connect (з’єднати).
СТВОРЕННЯ БАЗИ ДАНИХ:
Натиснути правою кнопкою миші на вузлі Databases (бази даних) та в контекстному меню вибрати команду New Database… (створити базу даних…).
У відкритому діалоговому вікні ввести ім’я для нової бази даних.
Вказати шлях на диску для розміщення файлів бази даних та журналу.
Натиснути кнопку ОК.
2 Створення схем бази даних.
СТВОРЕННЯ СХЕМИ:
У панелі Object Explorer (оглядач об’єктів) для вибраної бази даних розкрити вузли, та вибрати в контекстному меню команду New Schema… (створити схему).
У діалоговому вікні Schema – New (схема - створити) у полі Schema name (ім’я схеми) ввести ім’я, а поле Schema owner (власник схеми) можемо залишити пустим.
Натиснути кнопку ОК.
3 Cтворення таблиць бази даних.
СТВОРЕННЯ ТАБЛИЦІ:
У панелі Object Explorer (оглядач об’єктів) для вибраної бази даних розкрити вузли, та в контекстному меню вузла Tables (таблиці) вибрати команду New Tables… (створити таблицю), після чого відкриється вікно Table Designer (конструктор таблиць).
Вписати назву таблиці в поле Name (ім’я), що розміщене на панелі Properties (Властивості).
Вибрати приналежність таблиці до певної схеми з випадаючого списку поля Schema (схема), що розміщене на панелі Properties (Властивості).
Вибрати файлові групи, у яких зберігатимуться дані цієї таблиці.
Сформувати стовпці таблиці, задаючи ім’я стовпця, його тип даних та дозвіл на NULL.
За допомогою вкладки Column Properties (властивості стовпців) задати значення властивостей стовпців таблиці.
Зберегти таблицю.
4 Cтворення ключів та реалізація обмежень бази даних.
Є декілька різних типів ключів:
Первинний – містить первинний вказівник на стрічку в таблиці;
Альтернативний – містить додаткові вказівники на стрічку в таблиці, довільні унікальні умови, що представляють один чи більшу кількість стовпців таблиці.
Зовнішній – містить вказівники на ключі в інших таблицях.
Первинні та альтернативні ключі – гібридні об’єкти: частково індекси, а частково обмеження. Обмеження оголошують, що для об’єкта повинен бути істинним певний фактор, а для ключів це означає, що значення в таблиці повинні бути унікальними.
4.1 Створення первинного ключа таблиці
(PRIMARY KEY).
СТВОРЕННЯ ПЕРВИННОГО КЛЮЧА:
У конструкторові таблиць вибрати стовпець (стовпці), який (які) необхідно використовувати в якості первинного ключа; для цього, утримуючи клавішу Ctrl, вибрати мишею ці стовпці, натиснувши зліва від їхнього імені.
Натиснути правою клавішею миші по вибраних стовпцях та в контекстному меню вибрати команду Set Primary Key (задати первинний ключ).
Зберегти зміни в таблиці.
НАЛАШТУВАННЯ ПАРАМЕТРІВ ПЕРВИННОГО КЛЮЧА:
На панелі інструментів натиснути по іконці Manage Indexes and Keys (керування індексами та ключами).
У діалоговому вікні Indexes/Keys (індекси та ключі) у лівій колонці вибрати створений первинний ключ (крім нього можуть бути ще й інші ключі).
У правій частині діалогового вікна в полі (Name) [(ім’я)] скорегувати назву первинного ключа в більш зрозумілий контекст, наприклад, замість «1» вписати назву стовпця.
У полі Create As Clustered (створити як кластерний) вибрати необхідний варіант: кластерний чи некластерний.
У полі Fill Factor (фактор заповнення) при необхідності можна задати значення параметру заповнення.
У полі Columns (стовпці) вказуються вибрані стовпці для індексування та їхній порядок у індексі. Для внесення змін натиснути кнопку із трикрапкою, розташовану справа від поля; у результаті чого відобразиться діалогове вікно Index Columns (стовпці індексу). У лівій частині вікна за допомогою випадаючих списків поля Column Name (ім’я стовпця) можна змінити кількість, вид та порядок входження стовпців у первинний ключ. Для кожного стовпця справа від нього в полі Sort Order (порядок сортування) можна задати окремий порядок сортування для індексу як Ascending (по зростанню), або як Descending (по спаданню).
Закрити діалогове вікно та зберегти зміни в таблиці.
4.2 Створення вторинного ключа або індексу таблиці
(UNIQUE KEY / INDEX).
СТВОРЕННЯ УНІКАЛЬНОГО КЛЮЧА ЧИ ІНДЕКСУ:
Для визначеної таблиці зайти в режим конструктора таблиці; для цього в панелі Object Explorer (оглядач об’єктів) для вибраної таблиці бази даних розкрити вузли, та в контекстному меню вузла цієї таблиці вибрати команду Design (проект).
На панелі інструментів натиснути по іконці Manage Indexes and Keys (керування індексами та ключами).
У діалоговому вікні Indexes/Keys (індекси та ключі), у лівій частині вікна, натиснути кнопку Add (добавити).
Для новоствореного ключа/індексу у полі Columns (стовпці) задати стовпець (стовпці) та їхній порядок сортування; для цього слід натиснути кнопку із трикрапкою, розташовану справа від поля; у результаті чого відобразиться діалогове вікно Index Columns (стовпці індексу). У лівій частині вікна за допомогою випадаючих списків поля Column Name (ім’я стовпця) слід задати кількість, вид та порядок входження стовпців у ключ/індекс. Для кожного стовпця справа від нього в полі Sort Order (порядок сортування) можна задати порядок сортування як Ascending (по зростанню), або як Descending (по спаданню). У полі Type (тип) вибрати, що необхідно створити: Unique key (унікальний ключ) чи Index (індекс).
(лише для індексу) У полі Is Unique (є унікальним) визначити чи індекс буде унікальним, чи ні.
У полі (Name) [(ім’я)] скорегувати назву ключа/індексу в більш зрозумілий контекст, наприклад, IX_First_id2.
(лише для унікального індексу) У полі Ignore Duplicate Keys (ігнорувати повторювані ключі) задати режим генерації повідомлення помилки, у випадку додавання повторюваного значення ключа*.
У полі Create As Clustered (створити як кластерний), якщо ще не створений для таблиці кластерний індекс, то можна встановити цей ключ/індекс як кластерний.
У полі Fill Factor (фактор заповнення) при необхідності можна задати значення параметру заповнення.
У полі Filegroup or Partition Scheme (ім’я групи файлів чи схеми розділів) вибрати групу файлів, у якій буде зберігатися ключ/індекс.
Закрити діалогове вікно та зберегти зміни в таблиці.
4.3 Створення перевірного обмеження (CHECK).
СТВОРЕННЯ ОБМЕЖЕННЯ CHECK:
У режимі конструктора робочої таблиці на панелі інструментів натиснути по іконці Manage Check Constraints (керування перевірними обмеженнями).
У діалоговому вікні Check Constraints (перевірні обмеження), у лівій частині вікна, натиснути кнопку Add (добавити).
Для новоствореного обмеження у полі Expression (вираз) вписати логічний вираз; для громіздких виразів доцільно скористатися текстовим вікном, що викликається при натисненні кнопки з трикрапкою, розташованої справа від поля.
У полі (Name) [(ім’я)] скорегувати назву обмеження в більш зрозумілий контекст.
У полі Enforce For Replication (примусова реплікація) вказати, чи діє обмеження, коли агент реплікації виконує вставлення чи змінення даних у цій таблиці.
У полі Enforce For INSERTs And UPDATEs (примусове використання для запитів INSERT та UPDATE) вказати, чи діє обмеження при вставці або зміні даних у таблиці.
У полі Check Existing Data On Creation Or Re-Enabling (перевірення існуючих даних при створенні чи повторному підключенні) вказати, чи перевіряються вже існуючі дані (дані, що вже були у таблиці на момент створення обмеження) на відповідність обмеженню CHECK.
Закрити діалогове вікно Check Constraints (перевірні обмеження) та зберегти зміни в таблиці.
4.4 Створення реляційних зв’язків за допомогою зовнішніх ключів (FOREIGN KEY).
СТВОРЕННЯ ЗОВНІШНЬОГО КЛЮЧА:
У панелі Object Explorer (оглядач об’єктів) для вибраної таблиці робочої бази даних розкрити вузли, та в контекстному меню вузла Keys (ключі) вибрати команду New Foreign Key… (створити зовнішній ключ), після чого з’явиться діалогове вікно Foreign Key Relationships (відношення зовнішнього ключа). Далі слід задати значення для параметрів зовнішнього ключа.
Задати механізм зв’язків для зовнішнього ключа в контексті відношення «один до багатьох». Для цього у полі Tables And Columns Specification (специфікація таблиць і стовпців) натиснути кнопку з трикрапкою, розташовану справа від поля. В результаті з’явиться діалогове вікно Tables and Columns (таблиці та стовпці). Далі слід вибрати стовпці для зовнішнього та первинного (унікального) ключів:
з випадаючого списку вибрати назву таблиці, де розміщений первинний (унікальний) ключ;
з випадаючого списку вибрати стовпець (стовпці) з первинним (унікальним) ключем;
з випадаючого списку вибрати стовпець (стовпці) для зовнішнього ключа;
Натиснути кнопку OK.
У полі Check Existing Data On Creation Or Re-Enabling (перевірення існуючих даних при створенні чи повторному включенні) вказати, чи буде виконуватися дане перевірення для вже існуючих даних.
У полі (Name) [(ім’я)] скорегувати назву зовнішнього ключа у більш зрозумілий контекст.
Значення поля Enforce For Replication (примусова реплікація) вказує, чи використовується дане обмеження, коли агент реплікації виконує у таблиці вставлення, зміну чи видалення.
Значення поля Enforce Foreign Key Constraint (примусове обмеження зовнішнього ключа) дає можливість відмінити дію зовнішнього ключа щодо забезпечення цілісності даних; для його відміни слід встановити значення поля у false.
У категорії INSERT And UPDATE Specification (специфікація INSERT і UPDATE) задаються правила для видалення та зміни зв’язку цього відношення*:
у полі Delete Rule (видалити правило) вибрати механізм дії SQL Server при спробі користувача видалити поле із записом предка, що мігрує у екземпляр нащадка;
у полі Update Rule (обновити правило) вибрати механізм дії SQL Server при спробі користувача обновити поле із записом предка, що мігрує у екземпляр нащадка.
Зберегти зміни в таблиці.
5. Створення діаграм для баз даних.
СТВОРЕННЯ ДІАГРАМИ БАЗИ ДАНИХ:
У панелі Object Explorer (оглядач об’єктів) для вибраної бази даних розкрити вузол та вибрати пункт Database Diagrams (діаграми баз даних). Якщо цей пункт вибирається вперше, то система видасть діалогове вікно щодо відсутності певних об’єктів підтримки, тому слід натиснути кнопку Yes (так) для їх створення. Далі натиснути правою клавішею миші по пункту Database Diagrams та у контекстному меню вибрати команду New Database Diagram (створити діаграму бази даних), у результаті чого з’явиться діалогове вікно Add Table (додавання таблиці).
У діалоговому вікні Add Table (додавання таблиці) додати усі наявні в базі даних таблиці у діаграму.
Після того, як система автоматично розташує усі таблиці зі зв’язками, слід відформатувати вигляд самої діаграми: розташувати таблиці у кращому для сприйняття вигляді та задати для них необхідний формат відображення. Для зміни формату таблиці натиснути правою клавішею миші по вибраній таблиці та у контекстному меню вибрати команду, наприклад, Table View (представлення таблиці) → Standard (стандартне).
Для перенесення готової діаграми у інші графічно-текстові програми, наприклад, Microsoft Word чи Excel, слід натиснути праву клавішу мишу на чистому полі діаграми та у контекстному меню вибрати команду Copy Diagram to Clipboard (копіювати діаграму в буфер обміну).
При необхідності діаграму зберегти.
6. Транспортування бази даних.
ВІД’ЄДНАННЯ БАЗИ ДАНИХ:
У панелі Object Explorer (оглядач об’єктів) вибрати назву бази даних та правою кнопкою миші натиснути по ній, після чого вибрати у контекстному меню команду Tasks (задачі) → Detach… (від’єднати…), у результаті чого з’явиться діалогове вікно.
У діалоговому вікні Detach Database (від’єднання бази даних) слід натиснути кнопку підтвердження OK
ПРИЄДНАННЯ БАЗИ ДАНИХ:
У панелі Object Explorer (оглядач об’єктів) натиснути правою клавішею миші по вузлу Databases (бази даних) та у контекстному меню вибрати команду Attach… (приєднати…).
У діалоговому вікні Attach Databases (приєднання баз даних) натиснути кнопку Add… (додати…), в результаті чого з’явиться вікно з провідником каталогів Locate Database Files (розташування файлів баз даних).
У провіднику каталогів вказати шлях до розміщення файлу бази даних та підтвердити свій вибір натиском кнопки OK.
Натиснути кнопку OK у вікні Attach Databases (приєднання баз даних) для підтвердження свого загального вибору.
Створення обмеження (CHECK)
CHECK для :
1.Співробітники→Серія та номер паспорту забезпечити формат вводу: 2 букви + пробіл + 6 цифр ;
([serija ta nomer pasportu] like '[A-Z][A-Z] [0-9][0-9][0-9][0-9][0-9][0-9]')
2.У полі Співробітники →Ім’я допускається ввід лише таких імен: 'Андрій', 'Оля', 'Володимир' та 'Оксана'.
([Imja]='Oksana' OR [Imja]='Volodumur' OR [Imja]='Olja' OR [Imja]='Andriy')
Формула
Формула для:
1.Таблиці Співробітники створити поле, що виводить лише номер паспорту;
RIGHT([serija ta nomer pasportu],(6))
2.Для таблиці Співробітники створити поле, що виводить рік у якому співробітник влаштувався на роботу, як різницю між поточним роком та значенням трудового стажу.
YEAR(GETDATE())-[trudovuy stazh])
Висновок: у даній лабораторній роботі я ознайомився зі структурою об’єктів баз даних Microsoft SQL Server 2005 та отримав навики розроблення проекту бази даних за допомогою інструментарію Management Studio.