Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_01_vvedenie_crop_ukr.doc
Скачиваний:
1
Добавлен:
12.11.2019
Размер:
103.94 Кб
Скачать

БД: Лекция 1

Загальна|спільна| характеристика основних понять обробки даних

Розвиток основних понять представлення даних

Для обчислювального процесу характерна наявність вхідних і|та| вихідних даних.

Існує два класи задач :

  1. обчислювальні - це просте представлення даних і|та| складний процес обчислень|підрахунків|;

  2. обробки даних (необчислювальні задачі) - простий алгоритм обробки даних і|та| складне представлення оброблюваних даних.

Зміна виду|вигляду| задач обумовлює необхідність використання інших видів даних.

Приклад. |зразок| Обчислити :

Y = X2+5X

При програмуванні алгоритму рішення цієї задачі використовується простий вид|вигляд| даних - проста змінна (X і|та| Y). В системах програмування така змінна характеризується певним типом значень.

Приклад|зразок|. Обчислити

S = a1 + a2 + . + an

Тут обробляється послідовність чисел при програмуванні якої використовується масив. Усі елементи мають однаковий тип|типа|, який і є типом масиву.

Ранні мови|язики| програмування (ФОРТРАН, АЛГОЛ- 60) були призначені для вирішення науково-технічних обчислювальних задач і|та| використовували тільки|лише| прості змінні і|та| масиви, що було достатньо для вирішення таких задач.

Починаючи|зачинати| з|із| кінця 60х років комп'ютери починають|зачинають| використовуватися для вирішення необчислювальних задач, пов'язаних з обробкою різного роду документів.

Задача 1. Нарахування заробітної плати.

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

  1. Співробітникові нараховується заробітна плата на основі його окладу і кількості відпрацьованих днів;

  2. Жодні податки і|та| вирахування не враховуються.

Вхідні дані:

  1. Прізвище, ім'я, по батькові FIO

  2. Оклад Oklad

  3. Кількість відпрацьованих днів в місяці KO_dney

  4. Нарахована сума S

Для кожного працівника нарахована сума за певний місяць розраховується по формулі:

S = KO_dney * Oklad / KR_dney

де, KR_dney - кількість робочих днів в цьому місяці.

Для кожного співробітника відповідні дані мають конкретне значення, наприклад:

Іванов Іван Іванович

1800

24

1800

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

Для представлення таких даних введемо ряд|низка| понять.

  1. Елемент даних (поле) - найменша одиниця пойменованих даних ( FIO, O, Ko, S).

  2. Запис - пойменована сукупність полів.

  3. Екземпляр|примірник| запису - поточне значення полів.

  4. Файл - пойменована сукупність усіх екземплярів|примірників| записів заданого типу|типа|.

Приклад|зразок| файлу НАРАХУВАННЯ:

FIO

Oklad

KO_dney

S

Іванов Іван Іванович

1800

24

1800

Петров Петро Петрович

2200

20

1830

Сидоров Сидір Сидорович

2500

24

2500

За допомогою введених|запроваджувати| понять описуються дані в мовах|язиках| програмування для обчислювальних і|та| для задач обробки даних..

При програмуванні таких даних можна використовувати структуру (STRUCT).

Struct Salary {

char FIO[30];

double Oklad;

double K0:

double S;

};

Розв’язання задачі складається з|із| двох етапів.

  1. Введення вхідних даних і|та| занесення їх у файл (MyFile.txt );

  2. Читання даних з|із| файлу, розрахунок нарахованих сум і|та| вивід|висновок| на друк|печатку|.

Дані, що зберігається у файлі MyFile.txt, призначені тільки|лише| для вирішення цього завдання|задачі|. Такі програмні|програмові| системи носять назву файлових систем.

Опис даних включений в прикладну програму. При зміні формату записів файлу потрібна|необхідна| зміна прикладної програми.

Задача 2. Облік|урахування| кадрового складу.

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

  1. Введення вхідних|вихідних| даних і|та| занесення їх в зовнішню пам'ять;

  2. Читання |вихідних| даних із|із| зовнішньої пам’яті з метою видалення|віддалення| запису, коригування запису, додавання|добавляти| запису.

Вхідні дані:

Прізвище Ім'я По батькові

FIO

Посада

Dolzh

Рік народження

God

Оклад

Oklad

Місце проживання

Adres

Розроблена програмна|програмова| система також є файловою системою. В даному випадку завдання|задача| 2 вирішується|розв'язується| незалежно від завдання|задачі| 1.

Задача 3. Облік|урахування| економії фонду оплати праці (ФОП) у зв'язку з хворобою співробітників.

Вхідні дані :

Прізвище Ім'я По батькові

FIO

Оклад

Oklad

Кількість днів на лікарняному|шпитальному| листі|аркуші|

KB_dney

Неоплачена сума

SN

SN=KB_dney*Oklad/KR_dney

Програма розв’язання задачі 3 аналогічна програмі розв’язання задачі 1. Тому, це ще одна файлова система.

Розглянемо|розглядуватимемо| випадок, коли усі три файлові системи функціонують в одній організації.

Недоліки|нестачі| такої системи :

1. Дублювання полів FIO, Oklad в трьох файлах, що призводить до суттєвої перевитрати пам'яті.

2. При внесенні змін (наприклад, зміні прізвища) доводиться вносити одне і|та| теж|також| значення кілька разів в різні файли, що призводить до збільшення витрат|затрат| машинного часу.

3. Можуть виникнути суперечливі|суперечні| дані (до одного файлу зміни внесені, в іншій - ні).

Один із способів виходу з ситуації - об'єднання усіх записів в одну, прибравши дублюючі поля. Отримуємо|одержуємо| можливий варіант об'єднання :

FIO

Dolzh

Orlad

God

KO_dney

Adres

KB_dney

S

SN

Недоліки|нестачі| 1-3 усунені.

Час розв'язання задачі прямо змінюється пропорційно об'єму|обсягу| прочитаних із зовнішньої пам'яті даних.

Позначимо Ni відповідно число записів i -го завдання|задачі| (i = 1, 2, 3) при використанні окремих файлів для кожного завдання|задачі|.

де, C - деякий коефіцієнт пропорційності.

Позначимо N число записів файлу об'єднаних|з'єднаних| записів.

Зауважимо, що N1 = N2 = N, N3 << N

Час розв'язання |задач|задач 1 і 2 залежно від вибраної довжини полів може змінюватися в 2-3 рази. Таким чином, платою за виключення|виняток| дублювання інформації є збільшення часу розв'язання |задач|задач|задач|. Але таке збільшення, як правило, допустимо.

Час розв'язання задачі 3 може збільшитися на декілька порядків так як N3 << N|лади|, що абсолютно|цілком| неприпустимо|недопустимий|.

Об'єднаємо записи завдань|задач| 1 і|та| 2, запис завдання|задачі| 3 залишимо окремо.

FIO

Dolzh

Oklad

God

KO_dney

S

Adres

FIO

Oklad

KB_dney

SN

Виссновки:

  1. Дублювання залишається (дублюються поля FIO, O). Але|та|, оскільки|тому що| N3 << N, то загальний об'єм|обсяг| дублювання незначний.

  2. Час розв'язання задачі 1 і|та| 2 трохи зросте в порівнянні з варіантом окремих файлових систем.

  3. Час розв'язання задачі 3 такий же, як і в початковому варіанті окремого файлу.

  4. Усі 3 задачі можна вирішувати, використовуючи загальну|спільну| інформаційну базу з|із| двох типів записів, які пов'язані один з одним по полю FIO і Oklad.

База даних - сукупність екземплярів|примірників| різних типів записів і|та| взаємозв’язків між ними.

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

Системи управління базами даних

Використання бази даних припускає|передбачає| роботу з|із| нею декількох прикладних програм, що вирішують|ухвальних| завдання|задачі| різних користувачів, тому:

  1. програміст, який розв'язує одне з прикладних завдань|задач|, за збереження і|та| достовірність інтегрованих даних відповідати вже не може.

  2. зміна структури БД не повинна призводити до зміни раніше розроблених і|та| програм|програмових|.

  3. Зміна будь-якої з прикладних програм не повинна призводити до зміни структури даних.

Тому необхідно відділити|відокремлення| дані від прикладних програм (дані і|та| програми не повинні залежати один від одного).

Із завдань 1,2,3 уберемо частини програмного коду, які описують дані, виконують функції додавання, видалення і коригування даних, читання даних із зовнішніх носіїв, а також збереження даних на зовнішні носії. Винесемо їх в окремий програмний продукт і назвемо його системою управління базами даних (СУБД).

Таким чином, СУБД грає роль інтерфейсу між прикладними програмами і|та| базами даних.

СУБД - програмний|програмовий| комплекс для створення|створіння|, ведення і|та| використання бази даних багатьма користувачами (прикладними програмами).

Програми, за допомогою яких користувачі працюють з БД, називаються застосуваннями.

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

Застосування можуть працювати паралельно і незалежно один від одного з єдиною БД. СУБД забезпечує, щоб ці дії виконувалося коректно. Також мають бути враховані усі зміни, які зроблені в БД іншими застосуваннями.

Основні функції системи управління базами даних :

  1. Створення БД.

  2. Маніпулювання даними (виконання обчислень|підрахунків|, розробка інтерфейсу введення/виводу|висновку|, візуалізація).

  3. Забезпечення логічної і|та| фізичної незалежності даних.

Наприклад, зміна місцезнаходження БД, не повинно привести до змін програмного коду застосувань.

  1. Захист логічної цілісності БД.

Всі дані БД мають певний тип, який задається при створенні структури. Система не дозволить ввести|запроваджувати| символ в поле числового типу|типа|, чи ввести|запроваджувати| неприпустиму|недопустиму| дату і тому подібне.|тощо|

  1. Захист фізичної цілісності.

Відновлення БД після можливих збоїв в роботі (наприклад, із-за|через| відключення електроживлення).

  1. Управління доступом до бази даних - механізми розмежування повноважень доступу (паролі або на описи повноважень).

  2. Синхронізація роботи декількох користувачів - не допустити оновлення даних одним користувачем, поки|доки| другий користувач, який працює з|із| цими даними, повністю|цілком| не закінчить з|із| ними працювати.

  3. Управління ресурсами середовища|середи| зберігання.

СУБД виділяє ресурси пам'яті для нових даних, перерозподіляє пам'ять, що звільнилася|визволяла|, організовує ведення черги запитів до зовнішньої пам'яті і тому подібне|тощо|

Проблема цілісності бази даних.

Транзакції. |та|

Приклад|зразок|.

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

Припустимо|передбачатимемо|, що у разі|в разі| збою системи, команда на зменшення грошей була виконана, а на збільшення грошей - ні. Без використання додаткових заходів стан|статок| БД був би порушений.

У таких випадках, використовуеться транзакція - декілька операторів зміни БД, які виконуються усі, або не виконується жоден з них.

Перед виконанням першої дії видається команда початку|начала| транзакції. Після завершення дій – команда кінеця транзакції. Оскільки після першої дії транзакція не була завершена, зміни не будуть внесені до БД. Суми на рахунках клієнтів залишаться ті ж, що і були до початку|начала| транзакції.

Бувають транзакції, які тривають декілька годин або навіть, декілька днів.

У функції СУБД входить ведення журналу|часопису| трансакцій, у який заносяться усі транзакції - і|та| успішні і|та| такі, що завершилися відкатом|відкотом|.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]