Підручник (sql)

Мал. 6.8 Взаємозв'язок етапів Малюнок проектування 6.8 Вз імосвязь етапів проектування

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

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

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

Підручник (sql)

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

6.5 Інфологіческое моделювання та проектування

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

Илм включає ряд компонентів (рис. 6.9). Центральної компонентою Илм є ER-модель, що описує об'єкти предметної області та зв'язки між ними.

Об'єкти можуть бути простими і складними. Простий це неподільний на складові об'єкт. Складні - це складові, узагальнені та зведені об'єкти.

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

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

Підручник (sql)

Мал. 6.16 Приклад узагальненого об'єкта

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

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

Мал. 6.17 Приклад агрегованого Малюнок 6.16 об'єкта - Приклад агрегованого об'єкта

Підручник (sql)

Малюнок 6.17 - Елементи ЕR-діаграми в різних стандартах: а) CASE ORACLE; б) IDEF

Мал. 6.17 Елементи ER-діаграми в різних стандартах: a - CASE ORACLE; б - IDEF

6.6 Даталогіческое проектування

Кінцевим результатом даталогіческого проектування є опис логічної структури БД на мові опису. У логічній структурі визначаються всі інформаційні одиниці і зв'язку між ними, типи даних і кількісні характеристики. Однак не всі види зв'язків можуть відображатися в ДЛМ, наприклад ті, які не підтримує конкретна СУБД. На етапі розробки ДЛМ визначається склад БД, наприклад, зберігати тільки вихідні дані, а всі похідні можуть бути отримані розрахунковим шляхом в результаті запиту. При відображенні об'єкта в файл виключаються однакові ідентифікатори різних об'єктів, даються нові імена, визначаються кількість і структура файлів.

Важливу роль на цьому етапі відіграє внутрізапісная структура даних (вектори, групи та ін.) І межзапісная структура (реляційна, ієрархічна, мережева).

Для переходу від Илм до реляційної ДЛМ треба виконати наступні операції по заміні ER-типу на опис атрибутів відносин.

1 Простий об'єкт з одиничними властивостями.

ІО1 (Ім'я об'екта1)

R2 (ІО1. С1, С2, С6, С7)

Отримані реляційні відносини будуть перебувати в 4 нормальній формі. Перетворення в пунктах 5, 7 і в 6, 8, 9 мають однакові реляційні схеми.

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

Частина 2 структурована мова ЗАПИТІВ SQL

1 ВСТУП В SQL

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

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

1.1 Інтерактивний і вкладений SQL

Є два SQL: інтерактивний і вкладений.

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

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

Вкладений SQL складається з команд SQL, поміщених усередині програм, які зазвичай написані на деякому іншому мовою (типу Сі або Паскаля). Це робить програми більш потужними і ефективним. Однак, допускаючи ці мови, доводиться мати справу зі структурою SQL і стилем управління даних, який вимагає деяких розширень до інтерактивному SQL. Передача SQL команд у вкладений SQL є видається ( "passed off") для змінних або параметрів використовуваних програмою, в яку вони були вкладені.

2 СТВОРЕННЯ БАЗИ ДАНИХ

2.1 Оператор create database

Для створення БД використовується оператор SQL. що має такий вигляд:

Create "<имя файла>"[User" ім'я користувача "[password" пароль "]] [page _ size [=] ціле]

[Length [=] ціле [page [s]]]

[Default character set набор_сімволов] [<вторичный файл>];

[] - необов'язковий елемент; <> - можливі елементи. <вторичный файл> = File "ім'я файлу" [<файлов_информ>] [Вторинний файл]

<файлов_информ> = Length [=] ціле [page [s]] | starting [at [page]]

ціле [файлов_інформ] де "<имя файла>"- специфікація файлу, вякому буде зберігатися БД;

user "ім'я користувача" - перевіряється при з'єднанні користувача з сервером; password "пароль" - перевіряється спільно з ім'ям користувача;

page _ size [=] ціле - розмір сторінки БД користувача в байтах 1024 (за замовчуванням), 2048, 4096

default character set - визначає набір символів застосовуються в БД, за замовчуванням None; file "<имя файла>"- ім'я одного або декількох файлів, в яких буде розташовуватися БД;

starting [at [page]] - якщо БД займає кілька файлів, то ця пропозиція дозволяє визначити з якої сторінки розташовується БД в зазначених файлі;

length [=] ціле [page [s]] - довжина файлу в сторінках. За замовчуванням 75 сторінок, мінімум 50, а максимум обмежений дисковим простором.

У багатофайлову БД найперший файл називається первинним. інші - вторинними. наприклад:

Create database "D: \ BD \ base. Gdb"

file "D: \ BD \ base. gd 1" starting at page 1001 length 500

file "D: \ BD \ base. gd 2".

Тут визначається БД d: \ bd \ base. gdb що складається з 3-х файлів: первинного base. gdb довжиною 1000 сторінок, base. gd 1 довжиною 500 сторінок і base. gd 2 невизначеної довжини.

Якщо для вторинного файлу не вказана довжина, слід вказати, з якої сторінки він повинен починатися.

Розмір сторінки вказується в байтах, наприклад:

Create database "base. Gdb" page _ size 4096.

Збільшення розміру сторінки може призвести до прискорення роботи з БД за рахунок зменшення глибини індексів, зменшення операцій зчитування довгих записів. Але не виправдано коли запити

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

2.2 Типи записів на прикладі СУБД Interbase

НЕ ВСЕ ТИПИ ЗНАЧЕНЬ, ЯКІ МОЖУТЬ ЗАЙМАТИ ПОЛЯ ТАБЛИЦІ - логічний ОДНАКОВІ. НАЙБІЛЬШ ОЧЕВИДНЕ ВІДМІННІСТЬ - МІЖ ЧИСЛАМИ І ТЕКСТОМ. ВИ НЕ МОЖЕТЕ поміщають ЧИСЛА в алфавітному порядку або віднімається ОДНЕ ІМ'Я З ІНШОГО. ТАК ЯК СИСТЕМИ З реляційної базою даних базується на ЗВ'ЯЗКАХ МІЖ фрагменти інформації, РІЗНІ ТИПИ ДАНИХ ПОВИННІ ЗРОЗУМІЛО ВІДРІЗНЯТИСЯ ДРУГА ВІД ОДНОГО, ТАК ЩОБ ВІДПОВІДНІ ПРОЦЕСИ І ПОРІВНЯННЯ МОГЛИ БУТИ В НИХ ВИКОНАНІ.

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

blob змінний будь-який тип двійкових даних, наприклад файл BMP.

3 ВВЕДЕННЯ ЗНАЧЕНЬ

3.1 Оператор insert

Всі рядки в SQL вводяться з використанням команди модифікації INSERT. У найпростішій формі, INSERT використовує такий синтаксис:

insert into

values ​​( , . );

Так, наприклад, щоб ввести рядок в таблицю Students. ви можете використовувати наступне усло

insert into Students

values ​​(11, "Комсомоленко", "В-31");

Команди не справляють ніякого виведення, але ваша програма повинна дати вам деяке підтвердження того, що дані були використані. Ім'я таблиці (в нашому випадку - Students), має бути попередньо визначено, в команді CREATE TABLE, а кожне значення пронумерована в реченні значень, має збігатися з типом даних стовпця, в який воно вставляється. Значення, звичайно ж, вводяться в таблицю в поіменному порядку, тому перше значення з ім'ям, автоматично потрапляє встолбец 1, друге встолбец 2 і так далі.

3.2 Вставка порожніх покажчиків (null)

Якщо вам потрібно ввести пусте значення (NULL), ви вводите його точно також як і звичайне значен

Так як значення NULL - це спеціальний маркер, а не просто символьне значення, він не включається в поодинокі лапки.

3.3 Іменування стовпця для вставки (insert)

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

insert into Students (група, фио) values ​​( "В-31", "Рєпін");

4 СТВОРЕННЯ ДОМЕНУ

Зверніть увагу, що стовпець номер_в_жур

тично встановлена ​​в значення - за замовчуванням. П 4.1 Оператор create domain або інше значення визначається як - по промовчу

ня NULL в даному стовпці, і цей стовпець НЕ вуст

забезпечений значенням для будь-якої команди INSERT

Якщо в таблиці присутні стовпці з однаковими характеристиками, то можна попередньо описати їх тип і поведінку за допомогою домену. Наприклад, створити тип Pol_type для таблиці Sotr.

Create domain Pol_type as char (3) collate PXW _ CYRL; Create table Sotr (

Fio char (20) not null. Pol Pol _ type.

otdel char (10), dolj char (20), primary key (Fio));

де Not null - стовпці асоційовані з доменом обов'язково повинні містити значення.

4.2 Обмеження на значення домену

Схожі статті