Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



1. Основи моделювання інформаційних систем Загальне поняття системи. Еволюційні системи

Скачати 472.5 Kb.

1. Основи моделювання інформаційних систем Загальне поняття системи. Еволюційні системи




Скачати 472.5 Kb.
Сторінка2/4
Дата конвертації10.03.2017
Розмір472.5 Kb.
1   2   3   4

8. Моделі даних



В моделі даних описується деякий набір родових понять і ознак, яких повинні дотримуватися конкретні СУБД .

Моде́ль да́них (англ. Data model) - абстрактне представлення реального світу, що відображає тільки ті об'єкти, що безпосередньо стосуються програми. Це, як правило, визначає специфічну групу об'єктів, їх атрибутивне значення і відношення між ними.



Модель даних (за Дейтом) складається з трьох частин: структурної частини, маніпуляційної частини і цілісної частини. В структурній частині моделі даних фіксуються основні логічні структури даних користувача. Маніпуляційна частина моделі даних містить специфікацію одної або кількох мов запитів до БД.

Специфіка́ція (англ. specification) - формалізований опис властивостей, характеристик і функцій об'єктів.

В
цілісній частині специфікуються механізми забезпечення цілісності.

Ієрархічна модель даних

Ієрархічна БД складається із впорядкованого набору кількох екземплярів одного типу дерева. Тип дерева складається з одного «кореневого» типу запису і впорядкованого набору з нуля або більше типів піддерев (кожне з яких є певним типом дерева). Тип дерева в цілому являє собою ієрархічно організований набір типів запису.

На рис. 10 показаний приклад типу дерева (схеми ієрархічної БД).

Ієра́рхія (грец. ίεράρχίά, від ίερσς - священний, та άρχή - влада) - поділ на вищі й нижчі посади, чини; суворий порядок підлеглості нижчих щодо посади або чину осіб вищим. В ієрархії між її членами діють вертикальні зв'язки - відносини субординації.

Тут тип запису Відділ є предком для типів запису Керівник і Службовці, а Керівник і Службовці - нащадки типу запису Відділ.

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

Керівни́к, також мéнеджер - найманий робітник, зайнятий професійною організаторською діяльністю в органах керування підприємства, фірми, установи, наділений суб'єктом власності визначеними повноваженнями.

Поле Рук_Отдел типу запису Керівник містить номер відділу, в якому працює службовець, який є керівником даними (передбачається, що він працює не обов'язково в тому ж відділі, яким керує). Між типами запису підтримуються зв'язки (точніше кажучи, типи зв'язків, оскільки реальні зв'язки з'являються в примірниках типу дерева).




Рис. 10. Приклад типу дерева
База даних з такою схемою могла б виглядати так, як показано на рис. 2.2



Рис. 11. Приклад ієрархічної бази даних
Всі екземпляри даного типу нащадка із загальним екземпляром типу предка називаються близнюками.

Близнюќи (близня́та) - дві, або зрідка більше, особи народжені від тієї самої вагітності. Одна з кожних 83 вагітностей завершується близнятами.

Примірник - одиничний предмет, коли йдеться про друкований чи рукописний текст. Поняття тотожне в більшості випадків слову «екземпляр».

Для ієрархічної бази даних визначається повний порядок обходу дерева: зверху-вниз, зліва-направо.

Маніпулювання даними. Прикладами типових операцій маніпулювання ієрархічно організованими даними можуть бути наступні:

  • Знайти зазначений примірник типу дерева БД (наприклад, відділ 310);

    Маніпуляція (фр. manipulation) - складний прийом, операція, витівка.



  • Перейти від одного примірника типу дерева до іншого;

  • Перейти від одного примірника типу запису до примірника іншого типу запису всередині дерева (наприклад, перейти від відділу до першого співробітникові);

  • Перейти від одного запису до іншої в порядку обходу ієрархії;

  • Вставити новий запис у вказану позицію;

  • Видалити поточний запис.

Обмеження цілісності. В ієрархічній моделі даних автоматично підтримується цілісність посилань між предками і нащадками: ніякий нащадок не може існувати без свого батька.

Мережева модель даних.

Мережеві структури даних. Мережевий підхід до організації даних є розширенням ієрархічного підходу. В ієрархічних структурах запис-нащадок повинен мати точно одного предка; в мережевій структурі даних в нащадка може бути довільне число предків. .

На рис. 2.3 показаний простий приклад схеми мережевої БД. На цьому малюнку показані три типи запису: Відділ, Службовці і Керівник та три типи зв'язку: Складається із службовців, має керівника і є службовцем.





Рис. 2.3. Приклад схеми мережевої бази даних

Маніпулювання даними. Ось приблизний набір операцій маніпулювання даними: Знайти певний запис в наборі однотипних записів (наприклад, службовця з ім'ям Іванов); Перейти від предка до першого нащадка (наприклад, до першого службовця відділу 625);

Перейти до наступного нащадка у деякому зв'язку (наприклад, від Іванова до Сидорова); Перейти від нащадка до предка за деякою зв'язку (наприклад, знайти відділ, в якому працює Сидоров);



Модифікувати запис або зв'язок;

Обмеження цілісності. Відсутність нащадків, що не иають предка (як в ієрархічній моделі).
Реляційна модель даних
Використовуються «таблиці», в яких і стовпці, і рядки не є впорядкованими.



Д о м ен отноше ния – это сов окуп ность з на ч е ний, из которых мог ут

в ыбир а ть ся з на ч е ния конкре тного атрибута . То е сть , конкре тный набор

име ющ ихся в та блице з на ч е ний атр ибута в любой моме нт в ре ме ни

д олжен быть п одмноже ств ом множе ства з на ч е ний д оме на , на котором

оп ре де лен этот а трибут.

О тноше ния ре ля ционной ба зы д анных обла д ают сле д ующ ими

св ойств ами:

· в отноше ниях не д олжно быть корте жей-д убликатов .

· корте жи отноше ний не уп оря д оч е ны.

· атр ибуты отноше ний также не уп оря д оч е ны.

Из этих св ойств отноше ния в ыте кают сле д ующ ие в ажные сле д ств ия .

· Из уника ль ности корте жей сле д ует, ч то в отноше нии вс егда име е тся

атр ибут или на бор атрибутов , п оз в оляю щ их и д ен т и ф и ц и р о в а ть кортеж,

д руг ими слов ами в отноше нии в сег да е сть пе р в ич ный ключ .

· Из не уп оря д оч е нности корте жей сле д ует, во-пе р в ых, ч то в отноше нии не сущ е ств ует д руг ого сп особа а д ре сации корте жей, кроме а д ре сации по

к лючу ,

во-в торых, ч то в отноше нии не сущ е ств ует таких п оня тий как пе р в ый кортеж, п осле д ний, п ре д ыд ущ ий, сле д ующ ий и т.д .

· Из не уп оря д оч е нности атрибутов сле д ует, ч то е д инстве нным

сп особом их а д ре сации в з а п росах я в ля е тся исп оль з ов а ние на име нов а ния атр ибута .

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

Відніма́ння - двомісна математична операція, обернена додаванню.

На цій основі в алгебрі Кодда побудовано 10 операцій, що не виводять за межі відношень : об'єднання (
UNION), перетин (INTERSECT), віднімання (MINUS), взяття розширеного декартового добутку (TIMES), перейменування атрибутів (RENAME), проекція (PROJECT), обмеження (WHERE), з'єднання (-JOIN ), ділення (DIVIDE BY) і присвоювання.

Атрибу́т (attribute) - невід'ємна, необхідна для забезпечення цілісності об'єкта (предмета) або суб'єкта (людини) властивість, його частина, додаток.



Цілісність в реляційної моделі даних. Кодд запропонував два декларативних механізми підтримки цілісності реляційних баз даних: обмеження цілісності сутності, або обмеження первинного ключа та обмеження цілісності посилань, або обмеження зовнішнього ключа.

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

Озна́чення, ви́значення чи дефіні́ція (від лат. definitio) - роз'яснення чи витлумачення значення (сенсу) терміну чи поняття. Слід зауважити, що означення завжди стосується символів, оскільки тільки символи мають сенс що його покликане роз'яснити означення.

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


Зовнішній ключ відношення R1, що вказує на відношення R2 має знайти там відповідний кортеж (уточнений аналог ієрархічної моделі) .
9. Мова SQL

Будь-яка мова роботи з базами даних повинеа надавати користувачеві наступні можливості:

- Створювати бази даних і таблиці з повним описом їх структури;

Таблиця - це перелік, зведення статистичних даних або інших відомостей, розташованих у певному порядку за рядками та стовпцями.



-Виконувати основні операції маніпулювання даними, такі як вставка, модифікація і видалення даних з таблиць;

-Виконувати прості і складні запити.



Мова SQL задовольняє практично всім цим вимогам і має два основних компоненти:

- мову DDL (Data Definition Language), призначену для визначення структур бази даних та управління доступом до даних;

- мову DML (Data Manipulation Language), призначений для вибірки і оновлення даних.

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

10. Переваги інформаційного моделювання

    1. Ідентифікація структури бази даних при відсутності належної документації для адекватного її використання та розвитку;

      Документа́ція - сукупність офіційно визнаних, взаємопов'язаних та складених у визначеній формі документів, які містять передбачувану інформацію про виріб, процес або діяльність даного підприємства. Відповідно до області застосування Документа́цій поділяється на бухгалтерську, конструкторську, нормативну, технічну, товарну, тощо.



    2. Перевірка правильності запропонованих модернізацій

    3. Перевірка безпечності запропонованих модернізацій

Засоби моделювання : мова SQL, офісна СУБД Access (простота, зручна графічна підтримка зв’язків між таблицями). Як приклад мережевої СУБД вибрано MYSQL.
2. Аналіз інформаційних систем

1. Робота з користувачами інформаційної системи

Користувачі діляться на три види, за способом доступу до СУБД:

1. анонімні,

2. локальні localuser @ localhost,

3. глобальні (зовнішні) globaluser @ globalhost.

Також різні і права користувачів:

1. select - право на використання операнда вибірки над таблицею.

В мовах програмування та математиці, опера́нд (англ. operand) - аргумент операції; дані, які обробляються командою; граматична конструкція, яка позначає вираз, що задає значення аргументу операції; іноді операндом називають місце або позицію в тексті, де має стояти аргумент операції.

Право на перегляд таблиць

2. insert, update, delete - відповідно внесення даних, зміна та видалення. Право на зміну вмісту таблиць

3. Адміністративні права - право давати іншим користувачам, скасовувати, змінювати права і так далі.

4. Спеціальні права.
Создание/переименование/удаление пользователей


  1. При создании пользователя, нужно указать имя пользователя, его способ доступа (с локальной машины или удаленно) и выдать ему пароль:

CREATE USER 'user'@'host' IDENTIFIED BY 'password';

  1. Переименование пользователя

RENAME USER 'user' TO 'user2';

  1. Удаление пользователя

DROP USER 'user'@'host';
3. Смена пароля пользователя

В команде указывается пользователь и новый пароль, который будет шифроваться операндом PASSWORD. Для смены пароля пользователя, нужно обладать соответствующим административным правом.

SET PASSWORD FOR 'user'@'host' = PASSWORD('newpassword');

4. Команды GRANT, REVOKE

GRANT — команда выдачи привилегий. Параметры операнда: Объект — базы данных и их таблицы. Если привилегии выдаются под конкретную таблицу, обязательно указывать к какой базе данных относится данная таблица, используя разделитель ".". Так же можно указать конкретные поля таблицы, на которые будут распространяться выдаваемые права. Субъект — пользователь базы данных. Важно указать тип доступа пользователя (с локальной или удаленной машины), чтобы повысить безопасность. Метасимвол '%' означает все типы пользователей.

GRANT


PRIVILEGES(field1, fieldn)

ON `database`.`table`

TO 'user'@'%';

GRANT


SELECT (`name`,`city`),

INSERT (`name`)

ON `test`.`girls`

TO 'shurup'@'%';

Снятие привилегий происходит аналогично выдаче:

REVOKE priv_type [(cols)]

ON [object_type]

`db_name`.`table_name`

FROM 'user'@'host';


2. Модель складу інформаційної системи
модель складу та структури системи (перелік таблиць);

Аналіз структури БД
Для перегляду інформації про бази даних, їх таблиць, користувачів і т.д., використовується операнд SHOW, після якого йде команда, що визначає якого роду інформацію вивести користувачу:


  1. Показати список баз даних системи:

SHOW DATABASES;

  1. Показати список таблиць БД, що використовується:

SHOW TABLES;

  1. Вивести інформацію про таблицю — результатом буде текст функції створення таблиці, з урахуванням всіх змін, проведених над таблицею в процесі роботи бази даних:

SHOW CREATE TABLE `table_name`;

  1. Показати права поточного користувача:

SHOW GRANTS;
3. Отримання інформації з БД. Оператор SELECT

Для отримання вмісту таблиць, використовується операнд SELECT. Загальний формат команди:

SELECT `field1` `field2` ... `fieldN`

FROM `table`

WHERE умова;

Тут `field%` — це атрибути, значення яких будуть виводиться в результаті, значення решти полів того ж рядка користувачу виведені не будуть. Якщо потрібен вивід всіх значень таблиці, для спрощення запису запиту використовується символ "*". `table` — це таблиця з якої буде зроблена вибірка. Умова WHERE може мати складну структуру, або бути відсутня, як не обов'язковий параметр. Наприклад, для вибірки всіх значень всіх атрибутів зі всіх таблиць достатньо ввести:

SELECT * FROM `table`;

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

Для вирішення деяких задач, умова відбору може мати складну структуру, для цього використовують логічні оператори AND/OR NOT і розділові дужки ( ).


  1. Порівняння виразів: рівно =, більше або рівно >=, менше або рівно <=, не рівно <> (або  !=)

WHERE ( а >= b ) = с;


  1. Логічне множення — коли потрібне одночасне виконання двох і більш умов

WHERE ( а AND b AND с);


  1. Логічне додавання. Щоб рядок задовольняв відбору, потрібне виконання хоча б однієї з декількох умов.

WHERE ( а OR b OR с);

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

WHERE ( а OR b OR з) AND d;

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

Пріоритет (рос. приоритет, англ. priority, нім. Priorität f) -




  1. Заперечення — вибірка успішна, коли умова не виконується.

WHERE NOT а;


  1. Якщо в полі не були введені взагалі ніякі дані, в таблиці це позначається значенням NULL (NULL — символ відсутності значення, не плутати з порожнім значенням: порожнє значення існує — воно порожнє, а NULL — відсутність значення). Для знаходження подібних полів існує спеціальна функція IS NULL:

WHERE `field` IS NULL;

Театральна лабораторія «ВідСутність» - зразковий художній колектив заснований в 2010 році за ініціативи Юрія Паскара в місті Рівне. Діє на базі Рівненського міського Палацу дітей та молоді.

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




  1. Приналежність значення поля інтервалу. Для скорочення еквівалентного запису (А >= B) AND (А <= С) була введена спеціальна функція:

WHERE `field` BETWEEN low_number AND high_number;


  1. Вбудована перевірка належності параметра заданій множині:

WHERE `field` IN ('A','B'...

Пара́метр (від дав.-гр. παραμετρέω) - відмірюю, розмірюю)(рос. параметр, англ. parameter, нім. Parameter m, Kennwert m, Kenngrösse f, Kennzahl f) - величина, що нею характеризують якусь властивість, стан, розмір або форму об'єкта, робочого тіла, процесу, явища або системи тощо.

,'Z');

  1. Для порівняння текстових полів з рядками-зразками використовують операнд LIKE

WHERE `field` LIKE '_ text  %';

рядок зразок може містити метасимволи: "_" — позначає будь-який одиночний символ "%" — відповідно ланцюжок будь-яких символів, будь-якої довжини, що вставляються в рядок зразок


3. Групування результатів відбору

1. GROUP Групує рядки, по унікальних значеннях вибраних стовпців.

SELECT * FROM `table`

GROUP `field`;

2. HAVING Операнд для накладення додаткової умови на результат групування

SELECT * FROM `table`

GROUP `field`

HAVING умова;

3. LIMIT

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


SELECT `field1` `field2` ... `fieldN` FROM `table`

[ WHERE умова ]

LIMIT number;

4. Сортування результатів відбору

Операнд ORDER сортує результат відбору, відповідно до вибраних полів (пріоритет зменшуєтья зліва направо). Можна додатково вказати тип сортування: за збільшенням ASC або зменшенню DESC. Операнд сортування слідує за операндом вибірки

SELECT `field1` `field2` ... `fieldN` FROM `table`

[ WHERE умова ]

ORDER `field1` `field2` ... `fieldN` [ ASC | DESC ];

5. Числові операції над результатами вибірки


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

SELECT AVG(`field`) FROM `table` [ WHERE умова ];

  1. Пошук мінімального та максимального значення поля вибірки:

SELECT MIN(`field`), MAX(`field`) FROM `table` [ WHERE умова ];

  1. Сума результату вибірки по вибраному полю:

SELECT SUM(`field`) FROM `table` [ WHERE умова ];

  1. Підрахунок кількості рядків вибірки, із заданим полем, здійснюється операндом COUNT(`field`). Додатковий параметр DISTINCT, відніме всі входження, що повторюються, по вибраному полю:

SELECT COUNT(`field`), COUNT(DISTINCT `field`) FROM `table`;

Вибірка з декількох таблиць

Вибірка одночасно з декількох таблиць здійснюватиметься в два етапи: на першому буде знайдено декартовий добуток опитуваних таблиць; на другому відбудеться безпосередньо вибірка з результуючої таблиці. Декартовий добуток — це побудова нової таблиці з двох або більш початкових таблиць, шляхом включення в неї рядків, утворених всіма можливими варіантами конкатенації (злиття) рядків початкових таблиць.

Конкатенація (об'єднання) - операція склеювання об'єктів лінійної структури, зазвичай рядків. Наприклад, конкатенація слів «мікро» і «світ» дасть слово «мікросвіт».

Таблиці перераховуються через коми. Умова відбору WHERE має точно такі ж параметри, як і для вибірки одиночної таблиці
SELECT `field1` `field2` ... `fieldN`

FROM `table1` `table2` ... `tableN`

WHERE умова  ;

1   2   3   4


Скачати 472.5 Kb.

  • Ієрархічна модель даних
  • Керівник і Службовці
  • Маніпулювання даними.
  • Мережева модель даних.
  • Маніпулювання даними
  • Обмеження цілісності.
  • Маніпулювання реляційними даними .
  • Цілісність в реляційної моделі даних.
  • 2. Аналіз інформаційних систем 1. Робота з користувачами інформаційної системи
  • Создание/переименование/удаление пользователей
  • 3. Отримання інформації з БД. Оператор SELECT
  • 3. Групування результатів відбору
  • 4. Сортування результатів відбору
  • 5. Числові операції над результатами вибірки Для отримання середнього значення атрибута по всіх рядках, що задовольняють умові відбору
  • Вибірка з декількох таблиць