Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД.docx
Скачиваний:
61
Добавлен:
26.03.2016
Размер:
5.1 Mб
Скачать

Билет №28.

1. Реляционная модель данных (РМД) — логическая модель данных. На реляционной модели данных строятся реляционные базы данных. Первичный ключ (англ.primary key) — в реляционной модели данных один из потенциальных ключей отношения, выбранный в качестве основного ключа (или ключа по умолчанию).

Если в отношении имеется единственный потенциальный ключ, он является и первичным ключом. Если потенциальных ключей несколько, один из них выбирается в качестве первичного, а другие называют «альтернативными».

С точки зрения теории все потенциальные ключи отношения эквивалентны, то есть обладают одинаковыми свойствами уникальности и минимальности. В качестве первичного ключа, как правило, выбирают тот, который имеет наименьший размер (физического хранения) и/или включает наименьшее количество атрибутов.

Другой критерий выбора первичного ключа — сохранение уникальности со временем.

2. Вложенным запросом называется запрос, помещаемый в инструкцию SELECT, INSERT, UPDATE или DELETE или в другой вложенный запрос. Подзапрос может быть использован везде, где разрешены выражения. Вложенный запрос — оператор SELECT, заключенный в круглые скобки, и используемый в предложениях WHERE или HAVING.

Отличия:

1.      таблица результатов вложенного запроса всегда состоит из 1-го столбца. Список возвращаемых столбцов во вложенном запросе всегда должен иметь только 1 элемент.

2.      во вложенный запрос не может входить предложение ORDER BY для экономии времени.

3.      вложенный запрос не может быть запросом на объединение нескольких различных операторов SELECT.

4.      особенность: имена столбцов используемых во вложенном запросе могут являться ссылками на столбцы главного или внешнего запроса.

Пример:

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

SELECT NOM, FIO FROM PERSON

WHERE SUMD < (SELECT MAX(MONEYS) FROM PROFIT).

3.

Задача.

База данных содержит таблицы:

Студент (номер_зачетки, фио, ......)

Успеваемость (номер_зачетки, код_предмета, оценка, ....).

Выдать список студентов с указанием среднего балла для каждого из них (SQL).

select Surname,Name,Patronymic,cast(avg(Mark) as numeric(1,0)) as [Average mark] from student

inner join Progress on Progress.NumberZach=Student.NumberZach

group by surname,name,Patronymic

47

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]