Типи і реляційна модель

ПриміткаПри першому прочитанні книги читач може побажати ознайомитися з цією главою лише коротко Сама ця глава по праву займає місце, відведене їй в даній частині, але значний обєм представленого в ній матеріалу фактично не буде потрібно до глави 20 частини V і глав 25-27 частини VI

Поняття типу даних (Або скорочено типу) є фундаментальним кожне значення, кожна змінна, кожен параметр, кожен оператор, призначений тільки для читання, і особливо кожен реляційний атрибут відноситься до того чи іншому типу Так що ж таке тип Крім усього

іншого, він являє собою безліч значень До прикладів таких типів відносяться INTEGER (безліч всіх цілих чисел), CHAR (безліч всіх символьних рядків), s # (безліч всіх номерів постачальників) і тд Тому, наприклад, кажучи про те, що змінна відносини s з даними про постачальників має атрибут STATUS типу INTEGER, МИ ПІД ЦИМ увазі, що значеннями цього атрибута є цілі числа і нічого крім цілих

чисел

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

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

■ Другий висновок може служити пересторогою: автор намагається зберегти в цій частині книги розумну точність Тому він не стверджує, наприклад, що тип INTEGER являє собою безліч всіх можливих цілих чисел, а повинен фактично зробити застереження, що це-безліч всіх цілих чисел, які можуть бути представлені у розглянутій компютерній системі (оскільки, безумовно, є такі цілі числа, які перевищують можливості представлення в будь компютерній системі) Цілком очевидно, що аналогічне уточнення відноситься до багатьох наступним твердженням та прикладам, наведеним в цьому розділі у звязку з цим автор не буде явно підкреслювати зазначену особливість типів, але просить читача завжди враховувати дане застереження

Будь окремо взятий тип є або визначеним системою (Тобто вбудованим), або визначеним користувачем У даній главі передбачається, що з трьох типів, згаданих вище, INTEGER І CHAR визначені системою, as # визначений користувачем Але основою для оголошення реляційних атрибутів (а також змінних, параметрів та операторів, призначених тільки для читання, – див розділ 52) може стати будь-який тип, незалежно від того, чи визначено він системою або користувачем

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

■ У системі передбачені оператори для порівняння цілих чисел, =, <" і т.д.

■ У ній також передбачені оператори для виконання арифметичних опера ций з цілими числами, +, * і тд

■ Але в системі не передбачені оператори для виконання над цілими числами строкових операцій | | (Конкатенація), SUBSTR (виділення підрядка) і тд (Іншими словами, рядкові операції над цілими числами не підтримуються)

На відміну від цього, у разі використання типу, визначається користувачем, такого як s #, може знадобитися визначити оператори для порівняння номерів постачальників – =, <" і т.д. Але такі оператори, як "+", "*" і т.д., швидше за все, не будуть визначені, а це означає, що арифметичні операції над номерами постачальників не повинні підтримуватися (і дійсно, для чого може взагалі знадобитися складати або множити номери двох постачальників?).

Тепер перейдемо до більш докладного вивчення викладених вище ідей, використовуючи як основу теорію типів, яка представлена ​​в [33]

Джерело: Дейт К Дж, Введення в системи баз даних, 8-е видання: Пер з англ – М: Видавничий дім «Вільямс», 2005 – 1328 с: Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*