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


 

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

56260. Das Aussehen 48.5 KB
  Мета: практична: активізувати граматичні навички з тем «Відмінювання прикметників» та «Ступені порівняння прикметників», відробити надані раніш ЛО...
56261. Висловлення побажань; вживання Subjonctif présent 28.58 KB
  Bonjour, chers élèves! Aujourd’hui on va systématiser nos connaissances du subjonctif. On va aussi pratiquer les manières d’exprimer nos souhaits. Par quels moyens peut-on exprimer nos souhaits: par e-mail, par lettre, coup de téléphone, pendant l’entretien personnel?
56262. Сучасний урок української мови в школі. Навчально-методичний посібник для студентів педагогічних університетів і вчителів 1.79 MB
  Сучасний урок української мови в школі. Урок як основна форма організації навчальної діяльності учнів з української мови. Мета уроку української мови як системне утворення та шляхи її реалізації. Мотиваційне забезпечення навчальної діяльності на уроках української мови.
56263. Спектакль «Суд над Ядерною Енергією» 71.5 KB
  Вступне слово. Сьогодні завершується тиждень безпеки життєдіяльності. І ми зібралися з вами на останньому заході, що проводиться в рамках цього тижня й присвяченій найбільшій та найстрашнішій загрозі для всього людства – використанню ядерної енергії.
56265. Сума кутів трикутника 50 KB
  Обладнання: набір креслярського приладдя; таблиця Сума кутів трикутникамультимедійний проектор компютеркомпютерна презентація. Учитель ставить проблему: що учні знають про кути трикутника Один з варіантів відповіді...
56266. Summer Holidays Suggested level – A1+ elementary 7.04 MB
  Мета: Тренувати учнів в усному мовлені, письмі та роботі з комп’ютером. Розвивати память, здогадливість та самостійність у праці. Учити учнів вести дискусію про відпочинок під час літніх канікул. Підготувати до оформлення паспорту ”Holiday Passport”.
56267. Strategies and Techniques for Teaching Speaking 152.5 KB
  In the communicative model of language teaching, instructors help their students develop this body of knowledge by providing authentic practice that prepares students for real-life communication situations.