Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Придумать запросы к таблицам на основе операций реляционной алгебры / 5 сообщений из 5, страница 1 из 1
06.10.2013, 11:00:05
    #38417981
Artemka1994
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Придумать запросы к таблицам на основе операций реляционной алгебры
Дано условие:База торговых точек города: название, адрес и телефоны, специализация, форма собственности, время работы. Выбор магазинов по произвольному шаблону. Составили примерную таблицу, ввели данные.

Помогите пожалуйста придумать несколько или хотя бы один запрос по своему усмотрению(желательно на основе операций реляционной алгебры). Просто только начинаем изучать Sql и не хватает ни опыта, ни фантазии.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
DROP DATABASE IF EXISTS Primer; {Удалить БД, если она существует}
CREATE DATABASE Primer; {Создать  БД}
USE Primer; {Использовать БД}

DROP TABLE IF EXISTS SPECL; {Удалить таблицу, если она существует}

CREATE TABLE SPECL(KODS SERIAL PRIMARY KEY, {Создать таблицу}
                              SPECIAL VARCHAR(50) NOT NULL);
DROP TABLE IF EXISTS FORM;

CREATE TABLE FORM(KODFS SERIAL PRIMARY KEY,
                              STATUS VARCHAR(40) NOT NULL);
DROP TABLE IF EXISTS FIRMA;

CREATE TABLE FIRMA(KODFIRM SERIAL PRIMARY KEY,
                              KODFS INT REFERENCES FORM(KODFS),
                              KODS INT REFERENCES SPECL(KODS),
                              NAMEFIRM VARCHAR(40) NOT NULL,
                              CONTEL VARCHAR(50));
DROP TABLE IF EXISTS SHOP;

CREATE TABLE SHOP(KODM SERIAL PRIMARY KEY,
                              KODFIRM INT REFERENCES FIRMA(KODFIRM),
                              NAME VARCHAR(30) NOT NULL,
                              TELEPHONE VARCHAR(40),
                              TIMEWORK VARCHAR(60),
                              ADRESS VARCHAR(40));

INSERT INTO SPECL(SPECIAL)
                         VALUES ('Парфюмерия'),
                                    ('Автозапчасти'),
                                    ('Книги'),
                                    ('Компьютеры');
INSERT INTO FORM(STATUS)
                         VALUES ('ЧП'),
                                     ('ООО'),
                                     ('АО');
INSERT INTO FIRMA(KODFS, KODS, NAMEFIRM, CONTEL)
                       VALUES (1, 1,'Mary Kay','моб.тел.0954576321'),
                                   (3, 2,'CARBONOV','моб.тел.0505432577'),
                                   (1, 3, 'Никифоров','моб.тел. 0660005013'),
                                   (2, 4,'Бета','моб.тел.+38(0692)47-08-38, 54-08-91');

INSERT INTO SHOP(KODFIRM, NAME, TELEPHONE, TIMEWORK, ADRESS)
            VALUES (1, 'Лилия','моб.тел.0442383287','Пн-Сб с 9.00 до 18.30','ул.Победы,18'),
                             (2, 'Технок','моб.тел.0504489256','Пн-Вс с 8.00 до 21.00','ул.Белорусская,21'),
                             (4, 'Тайм','тел./факс:0652692414','Пн-Пт с 10.00 до 19.30','ул.Артёмовская,5'),
                             (4, 'Voltmart','моб.тел.80509440565, 80505671923','Пн-Сб с 9.30 до 
                            17.00','ул.Карла-Маркса, 19А'),
                             (3,'Читатель','моб.тел.80683469102','Вт-Пт с 8.00 до 
                            17.30','пер.Первомайский, 59');
...
Рейтинг: 0 / 0
06.10.2013, 16:47:47
    #38418115
Edkonst2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Придумать запросы к таблицам на основе операций реляционной алгебры
Artemka1994,

Например:
Код: sql
1.
2.
3.
4.
select s.NAME, s.TELEPHONE, s.TIMEWORK, s.ADRESS, fm.STATUS +' '+ f.NAMEFIRM  as NAMEFIRM, f.CONTEL
from SHOP s
left outer join FIRMA fr on s.KODFIRM = fr.KODFIRM
left outer join FORM fm on fr.KODFS = fm.KODFS 



Можете еще прилепить по аналогии специализацию.
...
Рейтинг: 0 / 0
06.10.2013, 16:49:20
    #38418118
Edkonst2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Придумать запросы к таблицам на основе операций реляционной алгебры
Edkonst2008,

Сорри, не заметил примечание в скобках :-)
...
Рейтинг: 0 / 0
06.10.2013, 17:16:34
    #38418130
Artemka1994
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Придумать запросы к таблицам на основе операций реляционной алгебры
Edkonst2008,

Всё равно спасибо, что откликнулись.
...
Рейтинг: 0 / 0
06.10.2013, 18:35:39
    #38418175
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Придумать запросы к таблицам на основе операций реляционной алгебры
Artemka1994,

вот простенький примерчик:
Код: sql
1.
((FIRMA JOIN SPECL) WHERE KODS = KODS(1)) { special }


Он эквивалентен sql-запросу:
Код: sql
1.
2.
3.
SELECT special
FROM FIRMA JOIN SPECL ON FIRMA.KODS=SPECL.KODS
WHERE KODS=1



Рекомендую книгу "Введение в системы баз данных", Дж. Дейт, 8-е издание. Глава 7 про реляционную алгебру. На самом деле ничего сложного, очень похоже на sql, по сути лишь синтаксис отличается.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Придумать запросы к таблицам на основе операций реляционной алгебры / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]