Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МВ_ОБД-зф.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
962.05 Кб
Скачать

2.2.3 Розв’язання типових завдань Завдання 1 Створення бази даних

В усіх варіантах контрольної роботи створюється одна й та сама база даних: Персонал підприємства, – з однаковою кількістю записів. Але результати запитів до бази даних будуть відрізнятися навіть для однакових варіантів завдань, тому що дані в таблицях повинні бути у кожного студента свої.

Завдання:

Створити базу даних персоналу підприємства, в якій повинні бути присутні наступні таблиці: Персона, Відділ, Посада. Кожен працівник може працювати лише як основний працівник (тобто на цьому підприємстві знаходиться його трудова книжка), або як сумісник, або і як основний працівник, і як сумісник. Оскільки у загальному випадку зв'язок між таблицями Персона і Відділ (зв'язок між працівником та відділом, в якому він працює) та Персона і Посада (зв'язок між працівником та посадою, на якій він працює) є типу багато-до-багатьох, для створення реляційної бази даних потрібна похідна сутність Працівник, яка містить наступні відомості: якій працівник у якому відділі на якій посаді працює, з якої дати, на яку частину ставки, та є він основним працівником чи сумісником. Крім того потрібна ще похідна сутність Відпустка, в якій буде вказано, якій працівник (код працівника) з якої дати йде у відпустку, та за який рік ця відпустка (будемо вважати, що всі працівники кожен рік повністю використовують свої відпустки). Атрибути базових сутностей:

Відділ (ідентифікатор відділу, назва відділу)

Посада (ідентифікатор посади, назва посади, зарплата, кількість днів щорічної відпустки).

Персона (ідентифікатор працівника, серія та номер паспорту, прізвище, ім’я, по-батькові, дата народження, стать, освіта, сімейне положення, кількість дітей)

У таблицю Персона занести дані 20 осіб різної статі різного віку (від 18 до 65 років) с різним рівнем освіти, різною кількістю дітей, з днями народження у різних місяцях.

У таблицю Відділ занести 4 записи.

У таблицю Посада занести 10 записів.

У таблицю Працівник занести 25 записів, тобто всіх осіб з таблиці Персона треба прийняти на роботу або як основних працівників, або за сумісництвом, а 5 з них і як основних працівників, і за сумісництвом (в тому ж або іншому відділі, на тій самій, або іншій посаді).

У таблицю Відпустка занести 20 записів – дату виходу у відпустку в поточному році для кожного робітника.

Наведемо приклад виконання завдання 1.

Потрібно завантажити програму Visual FoxPro і за попомогою пункта меню File/New створити новий проект (рис.24).

Рисунок 24 – Створення нового проекта

У вікні проекта клацнути на позначку “+” біля слова “Data”, з’явиться список другого рівня, в ньому перейти на слово “Databases” – кнопка “Add…” у вікні проекта стане доступною (рис.25).

Рисунок 25 – Створення нової бази даних

Клацнути кнопку “Add…”, задати ім’я базі даних, і вона з’явиться на екрані. Клацнути правою кнопкою миші по поля бази даних, вибрати пункт контектного меню “New Table…” для створення таблиці (рис.26).

Рисунок 26 – Створення нової таблиці

У вікні, що з’явиться, задати ім’я таблиці (рис.27).

Рисунок 27 – Задання імені таблиці, що створюється

Після цього відкриється вікно дизайнера таблиці (Table Designer), в якому потрібно вказати всі атрибути (Fields) таблиці, задавши для кожного атрибута тип даних (Type) (рис.28).

Рисунок 28 – Визначення атрибутів таблиці

Для типів Character і Numeric потрібно задати довжину (Width), а для числових даних з дробовою частиною потрібно ще задати кількість цифр після десяткової крапки (Decimal) (рис.28). Коли всі атрибути визначені, треба натиснути кнопку “OK” у вікні Table Designer, і почати вводити дані в таблицю (рис.29).

Рисунок 29 – Початок введення даних в таблицю

Дані потрібно вводити українською або російською мовою. Слід пам’ятати, що по умовчанню діє американський формат дати. Для даних логічного типу вводиться літера T (true) або F (false) (рис.30).

Рисунок 30 – Введення даних різних типів

Після створення і заповнення одної таблиці, так само створяються і заповнюються інші таблиці. Всього в базі даних повинно бути 5 таблиць (рис.31).

Рисунок 31 – База даних з таблицями

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

Рисунок 32 – Вміст таблиці Persona

Якщо таблиця відкриється не в такому вигляді, як на рис.32, а вигляді, показаному на рис. 31, потрібно виконати пункт головного меню View/Browse.

Рисунок 33 – Вміст таблиці Otdel

Рисунок 34 – Вміст таблиці Post

Рисунок 35 – Вміст таблиці Worker

Рисунок 36 – Вміст таблиці Vacations

Завдання 2

Прості запити до бази даних

Приклад до завдання 2:

1. Вибрати всіх жінок з дітьми. Вибираються атрибути: прізвище, ім’я, дата народження, кількість дітей:

SELECT surname, name1, birthday, children;

FROM Persona;

WHERE sex=’ж’ AND children>0

Результат виконання команди видно на рисунку 37.

Рисунок 37 – Результат команди SELECT

Завдання 3

Запити з використанням полів, що обчислюються

Приклад до завдання 3:

  1. Для працівників з вищою освітою, вибрати: прізвище, ім’я, вік, назву посади, зарплату (зарплата розраховується за формулою money*Stavka).

Атрибути: прізвище, ім’я та дата народження (за яким розраховується вік), – належать таблиці Persona; атрибут посада – таблиці Post; зв'язок між ними можна встановити тільки через таблицю Worker: таблиця Persona зв’язується з таблицею Worker по ключу Id_man, таблиця Worker зв’язується з таблицею Post по ключу Id_post. Встановимо зв'язок в розділі where; в цьому розділі також буде умова фільтру (вища освіта):

SELECT Surname as Фамилия, Name1 as Имя,;

YEAR(DATE())-YEAR(birthday) as Возраст,;

Name_post Должность, money*Stavka as Зарплата;

FROM Persona p, Worker w , Post ;

WHERE p.id_man=w.id_man AND w.id_post=Post.id_post AND ;

Education='высшее'

Результат виконання команди видно на рисунку 38.

Рисунок 38 – Результат команди SELECT