Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с реляционной алгеброй 
:(
    Опции темы
Асоишница
Дата 29.9.2013, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 13.3.2012

Репутация: нет
Всего: нет



Понимаю, что задачи простые. Но не для тех, кто первый раз в данной теме(лаба в универе)
Я пробовала рещить, но не уверена в правильности решения.
структура базы данных:

Поставщики S    
П#    Имя П    Статус    Город
П1    Петров    20    Москва
П2    Синицин    10    Таллинн
П3    Федоров    30    Таллинн
П4    Чаянов    20    Минск
П5    Крюков    30    Киев

            

Детали P    
Д#    Имя Д    Цвет  Размер    Город
Д1    Болт            Красный    12    Москва
Д2    Гайка    Зеленая    17    Минск
Д3    Диск            Черный    17    Вильнюс
Д4    Диск            Черный    14    Москва
Д5    Корпус    Красный    12    Минск
Д6    Крышки    Красный    19    Москва


Проекты J

ПР#    Имя ПР    Город
ПР1    ИПР1    Минск
ПР2    ИПР1    Таллинн
ПР3    ИПР3    Псков
ПР4    ИПР4    Псков
ПР5    ИПР4    Москва
ПР6    ИПР6    Саратов
ПР7    ИПР7    Москва

 
Кол-во деталей поставляемых одним поставщиком для одного проекта 
П#    Д#    ПР#    S
П1    Д1    ПР1    200
П1    Д1    ПР2    700
П2    Д3    ПР1    400
П2    Д2    ПР2    200
П2    Д3    ПР3    200
П2    Д3    ПР4    500
П2    Д3    ПР5    600
П2    Д3    ПР6    400
П2    Д3    ПР7    800
П2    Д5    ПР2    100
П3    Д3    ПР1    200
П3    Д4    ПР2    500
П4    Д6    ПР3    300
П4    Д6    ПР7    300
П5    Д2    ПР2    200
П5    Д2    ПР4    100
П5    Д5    ПР5    500
П5    Д5    ПР7    100
П5    Д6    ПР2    200
П5    Д1    ПР2    100
П5    Д3    ПР4    200
П5    Д4    ПР4    800
П5    Д5    ПР4    400
П5    Д6    ПР4    500
Первичный ключ помечен знаком #.
Структура таблиц:
Поставщики: S ( П#, ИмяП, Статус, Город ) 
Детали: P ( Д#, ИмяД, Цвет, Размер, Город) 
Проекты: J  (ПР#, ИмяПР, Город ) 
Количество деталей, поставляемых одним поставщиком для одного проекта:
SPJ ( П#, Д#, ПР#, S ) 

В прикреплённом файле эта же структура, но таблицами.

И вот, собственно, сами задания.


1.    Получить все такие тройки "номера поставщиков-номера деталей-номера проектов", для которых никакие из двух выводимых поставщиков, деталей и проектов не размещены в одном городе.



(S[П#, Город] MINUS P[Д#, Город]) TIMES (J[ПР#, Город] MINUS S[П#, Город]) TIMES (P[Д#, Город] MINUS J[ПР#, Город])
 Получили (П2, П3, П5)х(ПР3, ПР4, ПР6)хД3. Ну и из этого тройки.
Может, я что упустила(пробовала через симметрическую разность, но там из-за объединений бред)
И ещё вопрос, как вывести эти пары вроде того, как в предыдущем задании проекцию делала

2.    Получить номера деталей, поставляемых для всех проектов, обеспечиваемых поставщиком из того же города, где размещен проект.

Вариант решения №1:

1) Произведем проекцию отношения S по атрибутам П# и Город
S[П#,Город]

2)Произведем проекцию отношения J по атрибутам ПР# и Город
J[ПР#,Город]

3) Произведем проекцию отношения SPJ по атрибутам Д# и ПР# 
SPJ[Д#,ПР#]

4)Над полученными ранее отношениями произведем операцию пересечения 
(S[П#,Город] INSERSECT J[ПР#,Город])INSERSECT SPJ[Д#,ПР#]

5) Произведем проекцию полученного выше отношения по атрибуту Д#
((S[П#,Город] INSERSECT J[ПР#,Город])INSERSECT SPJ[Д#,ПР#])[Д#]


Вариант №2

(SPJ[ПР#, Д#] DIVIDEBY (J[Город, ПР#] DIVIDEBY S[Город])
Если это правильно, то чтобы получить результат, достаточно
(SPJ[ПР#, Д#] DIVIDEBY (J[Город, ПР#] DIVIDEBY S[Город])[Д#]
или надо
((SPJ[ПР#, Д#] DIVIDEBY (J[Город, ПР#] DIVIDEBY S[Город]) JOIN SPJ)[Д#]

По идее должны получить Д2, Д4, Д5


3.    Получить все пары номеров поставщиков, скажем, Sx и Sy, такие, что оба эти поставщика поставляют в точности одно и то же множество деталей.

Тут в решении я сомневаюсь больше всего.
(SPJ RENAME S AS S1)[S1] TIMES SPJ WHERE S=S1)[S]

Ну и тоже, как это произведение отобразить



Это сообщение отредактировал(а) Асоишница - 2.10.2013, 15:14

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  структура_базы_данных.doc 51,50 Kb
PM MAIL   Вверх
Zloxa
Дата 30.9.2013, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(Асоишница @  29.9.2013,  17:20 Найти цитируемый пост)
(SPJ[ПР#, Д#] DIVIDEBY (J[Город, ПР#] DIVIDEBY S[Город])

Такую форму записи поймет, скорее всего, лишь весьма узкий круг лиц, среди которых Ваш препод.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Асоишница
Дата 30.9.2013, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 13.3.2012

Репутация: нет
Всего: нет



Zloxa,  так оно что, правильно?
А как по-другому?
PM MAIL   Вверх
baldina
Дата 30.9.2013, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 2
Всего: 101



Асоишница, у вас реляционная БД. для запросов к таким БД обычно используется SQL.
Вы используете алгебру Кодда, с её нотацией мало кто знаком
PM MAIL   Вверх
Асоишница
Дата 30.9.2013, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 13.3.2012

Репутация: нет
Всего: нет



baldina, в методичке к лабе говорится, что это всё расширенная алгебра Кодда- усовершенствованная. Но факт остаётся фактом- именно в таком виде мне надо сдать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0541 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.