22606

Реляційне числення. Мова “Альфа”

Лекция

Математика и математический анализ

RANGE ОПД X GET WП.КД = Д3 RANGE ОПД X – оператор декларації ОПД – тип X – змінна. Перший варіант: RANGE Д X GET WОПД.колір = червоний RANGE ОПД Y GET W2П.

Украинкский

2013-08-04

58.5 KB

1 чел.

II.2. Реляційне числення. Мова “Альфа”

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

Алфавіт.

V1 = {a; r; P; };  V2 = {; ; ; ; };  V3 = {=; ; ; ; ; };  V4 = {[; ]; (; ); ,; :};

V = V1 V2 V3  V4;

Індекси – це слова виду ... (m - штук), m = 0,1,2,...

Константи – слова виду а... (m - штук), m = 0,1,2,...; позначення - am; a=a0;

Змінні – слова виду r... (m - штук), m = 0,1,2,...; позначення - rm;

Предикати (унарні)  – слова виду P... (m - штук), m = 0,1,2,...; позначення - Pm;

Зрізи – слова виду r...[...] (i та m - штук), і,m = 0,1,2,...; позначення – ri[m];

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

Терми значень – слова виду Pi rj;

 Терми зєднань – слова виду    , або   , де , -- зрізи, - константа, - бінарний предикат (порівняння).

Приклади термів зєднань:

r1[3] r2[1];  r1[2] = a ;

Правильно побудовані формули (ППФ)

  1.  Всі терми значень і терми зєднань є ППФ. Всі їх змінні – вільні.
  2.  Якщо F – ППФ, то F – ППФ. Змінні залишаються вільними.
  3.  Якщо F1 і F2ППФ і їх спільні змінні вільні у кожній з формул, то F1  F2, F1  F2  ППФ. Змінні вільні у F1  F2, F1  F2, якщо вони вільні принаймні у одній формулі.
  4.  Якщо F – ППФ і r – вільна у ній змінна, то r(F), r(F) – ППФ; r – звязана змінна.
  5.  Інших ППФ немає.

Приклади ППФ:

P1r2  (r2[1]  r3[2])

r2 ((P1 r1  P2r2) (r[1] r[2]))

Безкванторна ППФ F називається правильно визначеною (ПВ) над змінною r, якщо виконуються такі умови:

  1.  r єдина змінна в F;
  2.  всі терми в F є термами значень;
  3.   входить в F тільки після , або відсутній.

Нехай  F -- ППФ ПВ над r, а G -- ППФ і має r як вільну змінну, але не має термів значень виду Pir, тоді будемо використовувати позначення:

r (F G) --- F (G)

r (F G) --- F (G)

ППФ W називається формулою з областю визначення (ФОВ), якщо виконуються вимоги:

  1.  W = U1  U2  ... Un  V, n1;
  2.  Ui ,i = 1,2,...,n – є ПВ формулою над змінною ri (i j   ri  rj)
  3.  V – або пуста, або ППФ, що задовольняє умовам:
  •  квантори входять у V тільки у вигляді F(G), або  F(G);
  •  кожна вільна змінна з V є вільною в одній з Ui ;
  •  у V немає термів значень з вільними змінними.

Приклади ФОВ:

У мові “Альфа” описуються властивості даних, які треба знайти.

Приклади.

  1.  Знайти всі відомості про всіх постачальників.

GET W(П.КП, П.прізвище, П.статус, П.місто)

GET W(П)

  1.  Знайти коди постачальників з статусом більше 20, що живуть в місті N

GET W(П.КП): П.статус > 20 Ù П.місто = ‘N’

GET W(П.КП, П.статус): П.місто = ‘N’ DOWN П.статус

GET W(1) – код постачальника з найбільшим статусом.

  1.  Знайти прізвища постачальників, що постачають деталь Д3.

RANGE ОПД X

GET W(П.прізвище): $X (X.КП = П.КП & X.КД = Д3)

RANGE ОПД X – оператор декларації, ОПД – тип, X – змінна.

Змінні, що входять під квантор, обов’язково декларуються.

  1.  Знайти прізвища постачальників, які постачають принаймні одну червону деталь.

Перший варіант:

RANGE Д X

GET W(ОПД.КП): $X (X.КД = ОПД.КД & X.колір = червоний)

RANGE ОПД Y

GET W2(П.прізвище): $Y (Y.КП = П.КП)

Другий варіант:

RANGE Д X

RANGE ОПД Y

GET W(П.прізвище): $X $Y (Y.КП = П.КП & X.КД = Y.КД & X.колір = червоний)

  1.  Знайти прізвища тих постачальників, які постачають принаймні одну деталь, яку постачає постачальник П5.

RANGE ОПД X

RANGE ОПД Y

GET W(П.прізвище): $X $Y (X.КП = П.КП & X.КД = Y.КД & Y.КП = П5)

Зауваження: В мові “Альфа” порядок однойменних кванторів несуттєвий, різних кванторів – суттєвий.

  1.  Знайти прізвища тих постачальників, які не постачають деталь Д1.

Від супротивного:

RANGE ОПД X

GET W(П.прізвище): Ø($X(X.КП = П.КП & X.КД = Д1))

Або:

GET W(П.прізвище): "X(X.КП ¹ П.КП Ú X.КД ¹ Д1)

  1.  Знайти прізвища постачальників, які постачають всі деталі.

RANGE Д X

RANGE ОПД Y

GET W(П.прізвище): "X $Y(Y.КП = П.КП & Y.КД = X.КД)

  1.  Знайти прізвища тих постачальників, що постачають принаймні всі ті деталі, що і Петренко.

RANGE ОПД X

RANGE ОПД X1

RANGE Д Y

RANGE П Z

GET W(П.прізвище): "Y ($X $Z (X.КП = Z.КП & X.КД = Y.КД & Z.прізвище = Петренко) Þ

$X1 (X1.КП = П.КП & X1.КД = Y.КД))

  1.  Знайти коди одержувачів, які не одержують жодної червоної деталі від постачальників з міста N.

RANGE П X

RANGE Д Y

RANGE ОПД Z

GET W(О.КО): Ø($Z $X $Y (X.місто = N & Y.колір = червоний & Z.КП = X.КП

& Z.КД = Y.КД & Z.КО = О.КО))

  1.  Знайти прізвища постачальників, які постачають одну і ту ж саму деталь всім одержувачам

RANGE О X

RANGE Д Y

RANGE ОПД Z

GET W(О.КО): $Y "X $Z (Z.КП = П.КП & Z.КД = Y.КД & Z.КО = X.КО)

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

RANGE ОПД X

GET W(О.КО): "X (X.КО = О.КО Þ X.КП = П7)

  1.  Знайти коди деталей, які постачаються всім одержувачам з міста ‘N’.

RANGE ОПД X

RANGE О Y

GET W(Д.КД): "Y (Y.місто = ‘N’ Þ $X (X.КД = Д.КД & X.КО = Y.КО))

  1.  Знайти номери одержувачів, які використовують тільки ті деталі, що постачаються від поставника П7.

RANGE ОПД X

RANGE Д Y

RANGE ОПД Z

GET W(О.КО): "Y ($Z (Z.КД = Y.КД & Z.КО = О.КО) Þ $X(X.КД = Y.КД & X.КП = П7))

  1.  Знайти номери одержувачів, які використовують принаймні декілька деталей від постачальника П7

RANGE ОПД X

RANGE Д Y

RANGE ОПД Z

GET W(О.КО): "Y ($Z (Z.КД = Y.КД & Z.КО = О.КО) Þ $X(X.КД = Y.КД & X.КО = О.КО & X.КП = П7))

  1.  Змінити колір деталі Д6 на червоний.

HOLD W(Д.КД, Д.колір): Д.КД = Д6

W.колір = червоний

UPDATE W

HOLD – здійснюється пошук, але залишається вказівник на на тому місці, звідки дані отримані.

Також використовуються: DELETE W – вилучення даних, PUT W – внесення даних.

  1.  Знайти загальну кількість постачальників.

GET W(COUNT (П.КП))

COUNTпідраховує поля будь-яких типів.

Також використовуються: TOTAL, MAX, MIN, AVERAGE – використовуються лише по арифметичним полям.

  1.  Знайти коди постачальників з найбільшим статусом.

GET W(П.КП): TOP(1, П.статус)

Також використовується BOTTOM.

  1.  Для кожної деталі, що постачається, знайти її номер та загальний об’єм поставки.

GET W(ОПД, КД, iTOTAL(ОПД, КД, кількість))

Параметри iTOTAL в даному випадку  – ‘ОПД’ – реляція, в якій відбувається групування по атрибуту ‘КД’ і для кожної групи підраховується сума по атрибуту ‘кількість’.

Також використовуються: iCOUNT, iMAX, iMIN, iAVERAGE.

  1.  Знайти коди деталей, що постачаються більш ніж одним постачальником.

GET W(ОПД.КД):iCOUNT(ОПД, КД, КП) > 1


 

А также другие работы, которые могут Вас заинтересовать

5362. Экономическая теория. Микроэкономика. Макроэкономика. Конспект лекций 1.05 MB
  Общетеоретические вопросы экономики Предмет и метод экономической теории Предмет экономической теории. Задачи экономической теории. Экономические блага, их классификация. Граница производственных возможностей. Экономическая...
5363. Вымогательство и его криминалистическая характеристика 146 KB
  Вымогательство и его криминалистическая характеристика Одним из наиболее опасных посягательств на государственную или общественную собственность, а также на личные интересы граждан, является вымогательство (как основная статья доходов организованной...
5364. Основы синергетики 78.5 KB
  В последние годы наблюдается стремительный и бурный рост интереса к междисциплинарному направлению, получившему название синергетика. Издаются солидные монографии, учебники, выходят сотни статей, проводятся национальные и международные ко...
5365. Уровни познания. Эмпирическое и теоретическое исследование 67 KB
  Уровни естественнонаучного познания Изучение естествознания нужно не только для того, чтобы мы как культурные люди знали и разбирались в его результатах, но и для понимания самой структуры нашего мышления. Итак, мы отправляемся в безбрежное море поз...
5366. Механизм излучения. Виды спектральных анализов 34.44 KB
  Спектр - это разложение света на составные части, лучи разных цветов. Метод исследования химического состава различных веществ по их линейчатым спектрам испускания или поглощения называют спектральным анализом. Для спектрального анализ...
5367. Составление гидравлической схемы и рассчет привода волочно-пакетирущей машины 159.5 KB
  Исходные данные для проектирования Валочно-пакетирующая машина. Поворот платформы. Нагрузка на штоке гидроцилиндра - Т=130 (кН) Скорость движения штока цилиндра – V=24 (м/с) Температура окружающей среды...
5368. Проектирование агрегатного участка и повышение технологического процесса в агрегатном участке 950 KB
  Транспортный комплекс Республики Беларусь занимает исключительно важное место в жизнеобеспечении ее многоотраслевой экономики и реализации социальной политики государства. Устойчивое и эффективное его функционирование является необходимым у...
5369. Метод оценки загрязнения атмосферного воздуха автомобильным транспортом с использованием геоинформационных систем 669.5 KB
  Актуальность темы В 2007 году выбросы вредных (загрязняющих) веществ в атмосферный воздух на территории Российской Федерации достигли 16,3 млн. тонн при неуклонном росте объема выбросов с 1997 г. В большинстве городов вкл...
5370. Проектирование техпроцесса изготовления детали ось 97 KB
  Целью представленного курсового проекта являлось проектирование техпроцесса изготовления детали ось. В результате был разработан техпроцесс, состоящий из девяти операций, приведены расчеты режимов резания, припусков, дано описание и расче...