- •2. Перечислите основные функции системы управления базами данных и охарактеризуйте их.
- •Управление данными во внешней памяти;
- •Управление буферами оперативной памяти;
- •Управление транзакциями;
- •Ведение журнала изменений в бд;
- •Поддержка языков бд.
- •Обеспечение целостности и безопасности бд.
- •3. Охарактеризуйте типовую организацию системы управления базами данных.
- •4. Раскройте сущность понятия «модель представления данных». Перечислите и опишите виды моделей данных.
- •6. Перечислите и охарактеризуйте основные виды связей реляционной базы данных. Приведите примеры. Перечислите достоинства связывания таблиц.
- •7. Напишите, как вы понимаете контроль целостности связей. Опишите действие контроля целостности при манипулировании данными в таблицах на примере связи 1:м.
- •Ввод новых записей.
- •16. Опишите функции преобразования символов в строке (lower, upper, initcap), строковые функции (lpad, ltrim, substr, instr, length и др.), функции работы с числами. Приведите примеры.
- •17. Опишите функции преобразования типов данных: cast, convert; и функции агрегирования. Приведите примеры.
- •18. Опишите назначение ключевых слов group by, having, order by оператора select. Приведите примеры использования указанных ключевых слов.
- •19. Вложенный подзапрос. Перечислите и дайте характеристику видам вложенных подзапросов. Приведите примеры. Опишите использование операторов any, all с операторами сравнения.
- •20. Перечислите и охарактеризуйте команды, предназначенные для модификации данных: вставка, обновление, удаление. Приведите примеры.
7. Напишите, как вы понимаете контроль целостности связей. Опишите действие контроля целостности при манипулировании данными в таблицах на примере связи 1:м.
Целостность - корректность и непротиворечивость данных в любой момент времени. Поддержание целостности – комплекс мер по защите данных от некорректных изменений или разрушений.
Правила обеспечения целостности можно разделить на 3-и группы:
1. Целостность по сущностям - это можно обеспечить лишь тогда , когда ни один из атрибутов, входящих в состав первичного ключа, не может быть NULL.
2. Целостность по ссылкам (связям) – каждому значению внешнего ключа должны соответствовать строки в связываемых отношениях.
3. Целостность определяемая пользователем – пользователь контролирует: а) Уникальность тех или иных атрибутов; б) диапазон вводимых значений; в) принадлежность на набор значений;
П ри образовании связи вида 1:М одна запись главной таблицы оказывается связанной с несколькими записями дополнительной и имеет место схема
Контроль целостности связей вида 1:М означает анализ содержимого двух таблиц на соблюдение следующих правил:
• каждой записи основной таблицы соответствует нуль или более записей дополнительной таблицы;
• в дополнительной таблице нет записей, которые не имеют родительских записей в основной таблице;
• каждая запись дополнительной таблицы имеет только одну родительскую запись основной таблицы.
Опишем действие контроля целостности при манипулировании данными в таблицах. Рассмотрим три основные операции над данными двух таблиц:
-
Ввод новых записей.
При вводе новых записей возникает вопрос определения последовательности ввода записей в таблицы такой, чтобы не допустить нарушение целостности. Исходя из приведенных правил видно что данные сначала вводятся в основную таблицу, а потом -- в дополнительную. Очередность ввода может быть установлена на уровне целых таблиц или отдельных записей (случай одновременного ввода в несколько открытых таблиц).
В процессе заполнения основной таблицы контроль значений полей связи ведется как контроль обычного ключа (на совпадение со значениями тех же полей других записей). Заполнение полей связи дополнительной таблицы контролируется на предмет совпадения со значениями полей связи основной таблицы. Если вновь вводимое значение в поле связи дополнительной таблицы не совпадет ни с одним соответствующим значением в записях основной таблицы, то ввод такого значения должен блокироваться.
-
модификацию записей. Изменение содержимого полей связанных записей, не относящихся к полям связи, должно происходить обычным образом. Но при редактировании полей связи дополнительной таблицы очевидным требованием является то, чтобы новое значение поля связи совпадало с соответствующим значением какой-либо записи основной таблицы, т.е. дополнительная запись может сменить родителя, но остаться без него не должна.
Редактирование поля связи основной таблицы разумно подчинить одному из следующих правил:
-
редактировать записи, у которых нет подчиненных записей. Если есть подчиненные записи, то блокировать модификацию полей связи;
-
изменения в полях связи основной записи мгновенно передавать во все поля связи всех записей дополнительной таблицы (каскадное обновление).
-
удаление записей. В операциях удаления записей связанных таблиц большую свободу, имеют записи дополнительной таблицы. Удаление их должно происходить практически бесконтрольно.
Удаление записей основной таблицы логично подчинить одному из следующих правил:
-
удалять можно запись, которая не имеет подчиненных записей;
-
запретить (блокировать) удаление записи при наличии подчиненных записей, либо удалять ее вместе со всеми подчиненными записями (каскадное удаление).
8. Назовите основную цель проектирования базы данных. Раскройте смысл следующих понятий: декомпозиция и нормализация отношений, функциональная зависимость, полная функциональная зависимость, первая нормальная форма, вторая нормальная форма, третья нормальная форма.
Цели проектирования баз данных:
-
Обеспечить возможность хранения в базе данных всех необходимых данных.
-
Исключить избыточность данных.
-
Свести к минимуму количество хранимых в базе данных отношений.
-
Нормализовать отношения для упрощения проблем, связанных с модификацией данных.
Декомпозиция отношения – разбиение некоторого отношения на более мелкие составные части, с целью более детального изучения.
Нормализация – формальная процедура разбиения некоторой реляционной таблицы на 2 или более с целью получения такого проекта БД, в котором исключена избыточность информации. Это, кроме экономии памяти, исключает возможную противоречивость хранимых данных и создания структуры, в которой предусмотрена возможность ее будущих изменений, и влияние этих изменений на приложения, использующих информацию в БД, минимально.
В отношении R атрибут Y функционально зависит от атрибута X (X и Y могут быть составными) в том и только в том случае, если каждому значению X соответствует в точности одно значение Y. Обозначается: R.X (r) R.Y.
В отношении R атрибут Y находится в полной функциональной зависимости от составного атрибута X, если он функционально зависит от X и не зависит функционально от любого подмножества атрибута X.
Таблица находится в первой нормальной форме (1НФ) тогда и только тогда, когда ни одна из ее строк не содержит в любом своем поле более одного значения и ни одно из ее ключевых полей не пусто.
Первая нормальная форма является основой реляционной модели данных, т.е. любая таблица в базе данных автоматически находится в первой нормальной форме.
Таблица находится во второй нормальной форме (2НФ), если она удовлетворяет определению 1НФ и все ее поля, не входящие в первичный ключ, связаны полной функциональной зависимостью с первичным ключом.
Если таблица имеет простой первичный ключ, состоящий только из одного атрибута, то она автоматически находится во второй нормальной форме.
Если же первичный ключ составной, то таблица необязательно находится во второй нормальной форме. Тогда ее необходимо разделить на две или более таблиц таким образом, чтобы первичный ключ однозначно идентифицировал значение в любом поле.
Таблица находится в третьей нормальной форме (3НФ), если она удовлетворяет определению 2НФ и не одно из ее не ключевых полей не зависит функционально от любого другого не ключевого поля.
Требование третьей нормальной формы сводится к тому, чтобы все не ключевые зависели только от первичного ключа и не зависели друг от друга.
9. Раскройте сущность следующих понятий: реляционная алгебра, отношения совместимые по типу. Перечислите теоретико-множественные операторы реляционной алгебры. Дайте характеристику операторам: объединение, пересечение. Приведите примеры.
Реляционная алгебра — формальная система манипулирования отношениями в реляционной модели данных, основанная на теории множеств. Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Реляционная алгебра замкнута таким образом, что результаты одних реляционных выражений можно использовать в других выражениях.
Реляционная алгебра состоит из 8 реляционных операторов, объединенных в две группы:
-
Теоретико-множественные операторы: объединение, пересечение, вычитание, декартово произведение
-
Специальные реляционные операторы: выборка, проекция, соединение, деление.
Операции реляционной алгебры могут выполняться над одним отношением (например, проекция) или над двумя отношениями (например, объединение). В первом случае операция называется унарной, а во втором— бинарной. При выполнении бинарной операции участвующие в операциях отношения должны быть совместимы по типу.
Отношения называют совместимыми по типу, если они имеют идентичные заголовки, а именно,
-
Отношения имеют одно и то же множество имен атрибутов, т.е. для любого атрибута в одном отношении найдется атрибут с таким же наименованием в другом отношении,
-
Атрибуты с одинаковыми именами определены на одних и тех же доменах.
Объединением двух совместимых по типу отношений A и B называется отношение с тем же заголовком, что и у отношений A и B, телом, состоящим из кортежей, принадлежащих или A, или B, или обоим отношениям. В результирующем отношении порядок следования кортежей не существенен, но повторяющихся кортежей быть не должно. Обозначается АВ.
ФИО_Учен. |
ФИО_Родит. |
Адрес |
Телефон |
Ромашка А.А. |
Ромашка А.П. |
Савецкая, 9 |
8763444 |
Шишков Р.Л. |
Шишков Л.Д. |
Ленина, 33 |
2567485 |
Дудкин Е.Ю. |
Дудкин Ю.Н. |
Гоголя, 54 |
8976535 |
Орлова Т.А. |
Орлов А.П. |
Ленина,45 |
7658900 |
Денисова О.Л. |
Денисов Л.Г. |
Гоголя, 89 |
2347866 |
ФИО_Учен. |
ФИО_Родит. |
Адрес |
Телефон |
Орлова Т.А. |
Орлов А.П. |
Ленина,45 |
7658900 |
Норкин А.Л. |
Норкин Л.Ю. |
Савецкая, 5 |
2457890 |
Павлова Д.Д. |
Павлов Д.Г. |
Буденого, 4 |
6783434 |
Шишков Р.Л. |
Шишков Л.Д. |
Ленина, 33 |
2567485 |
Кирилов Е.Р. |
Кирилов Р.О. |
Гоголя, 9 |
7865453 |
В результате объединения этих отношений, получим отношение в котором будут ученики, которые обучаются играть или на пианино, или на скрипке.
ФИО_Учен. |
ФИО_Родит. |
Адрес |
Телефон |
Орлова Т.А. |
Орлов А.П. |
Ленина,45 |
7658900 |
Норкин А.Л. |
Норкин Л.Ю. |
Савецкая, 5 |
2457890 |
Павлова Д.Д. |
Павлов Д.Г. |
Буденого, 4 |
6783434 |
Шишков Р.Л. |
Шишков Л.Д. |
Ленина, 33 |
2567485 |
Кирилов Е.Р. |
Кирилов Р.О. |
Гоголя, 9 |
7865453 |
Ромашка А.А. |
Ромашка А.П. |
Савецкая, 9 |
8763444 |
Дудкин Е.Ю. |
Дудкин Ю.Н. |
Гоголя, 54 |
8976535 |
Денисова О.Л. |
Денисов Л.Г. |
Гоголя, 89 |
2347866 |
Пересечением двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений A и B, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям A и B. Обозначается АВ.
Например, пересечением двух отношений предыдущего примера будет отношение в котором будут сведенья о учениках, которые учатся играть и на скрипке, и на пианино
ФИО_Учен. |
ФИО_Родит. |
Адрес |
Телефон |
Шишков Р.Л. |
Шишков Л.Д. |
Ленина, 33 |
2567485 |
Орлова Т.А. |
Орлов А.П. |
Ленина,45 |
7658900 |
10. Раскройте сущность следующих понятий: реляционная алгебра, отношения совместимые по типу. Перечислите теоретико-множественные операторы реляционной алгебры. Дайте характеристику операторам: вычитание, произведение. Приведите примеры.
Реляционная алгебра — формальная система манипулирования отношениями в реляционной модели данных, основанная на теории множеств. Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Реляционная алгебра замкнута таким образом, что результаты одних реляционных выражений можно использовать в других выражениях.
Реляционная алгебра состоит из 8 реляционных операторов, объединенных в две группы:
-
Теоретико-множественные операторы: объединение, пересечение, вычитание, декартово произведение
-
Специальные реляционные операторы: выборка, проекция, соединение, деление.
Операции реляционной алгебры могут выполняться над одним отношением (например, проекция) или над двумя отношениями (например, объединение). В первом случае операция называется унарной, а во втором — бинарной. При выполнении бинарной операции участвующие в операциях отношения должны быть совместимы по типу.
Отношения называют совместимыми по типу, если они имеют идентичные заголовки, а именно,
-
Отношения имеют одно и то же множество имен атрибутов, т.е. для любого атрибута в одном отношении найдется атрибут с таким же наименованием в другом отношении,
-
Атрибуты с одинаковыми именами определены на одних и тех же доменах.
Вычитанием двух совместимых по типу отношений A и B называется отношение с тем же заголовком, что и у отношений A и B, и телом, состоящим из кортежей, принадлежащих отношению A и не принадлежащих отношению B. Обозначается A–B. Разность отношений А–В ≠ В–А.
№тов |
НазТ |
Стоимость |
145 |
Шоколад |
4500 |
845 |
Молоко |
1700 |
234 |
Гречка |
2900 |
123 |
Рис |
6570 |
459 |
Манка |
2800 |
267 |
Мука |
3250 |
№тов |
НазТ |
Стоимость |
145 |
Шоколад |
4500 |
234 |
Гречка |
2900 |
123 |
Рис |
6570 |
156 |
Соль |
1550 |
267 |
Мука |
3250 |
№тов |
НазТ |
Стоимость |
845 |
Молоко |
1700 |
459 |
Манка |
2800 |
Декартово произведение отношения A степени к1 и отношения B степени к2, которые не имеют одинаковых имен атрибутов, есть такое отношение R степени (к1+к2), заголовок которого представляет сцепление заголовков отношений A и B, а тело имеет кортежи такие, что первые к1 элементов кортежей принадлежат множеству A, а последние к2 элементов — множеству B. Обозначается A×B.
Произведение |
|||||
A |
|
B |
|
R |
|
a |
|
x |
|
a |
x |
b |
|
y |
|
a |
y |
c |
|
|
|
b |
x |
|
|
|
|
b |
y |
|
|
|
|
c |
x |
|
|
|
|
c |
y |
№зач |
ФИО |
145 |
Шокин Р.О. |
234 |
Ролен Д.П. |
123 |
Цукина Н.О. |
267 |
Леткин Е.Р. |
Назв.предмета |
Преподаватель |
СУБД |
Лоткин Р.А. |
ОАиП |
Каприн С.Р. |
В результате декартова произведения «Студенты» × «Предметы» получим новое отношение
№зач |
ФИО |
Назв.предмета |
Преподаватель |
145 |
Шокин Р.О. |
СУБД |
Лоткин Р.А. |
145 |
Шокин Р.О. |
ОАиП |
Каприн С.Р. |
234 |
Ролен Д.П. |
СУБД |
Лоткин Р.А. |
234 |
Ролен Д.П. |
ОАиП |
Каприн С.Р. |
123 |
Цукина Н.О. |
СУБД |
Лоткин Р.А. |
123 |
Цукина Н.О. |
ОАиП |
Каприн С.Р. |
267 |
Леткин Е.Р. |
СУБД |
Лоткин Р.А. |
267 |
Леткин Е.Р. |
ОАиП |
Каприн С.Р. |
11. Раскройте сущность следующих понятий: реляционная алгебра, отношения совместимые по типу. Перечислите специальные операторы реляционной алгебры. Дайте характеристику операторам: выборка, проекция. Приведите примеры.
Реляционная алгебра — формальная система манипулирования отношениями в реляционной модели данных, основанная на теории множеств. Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Реляционная алгебра замкнута таким образом, что результаты одних реляционных выражений можно использовать в других выражениях.
Реляционная алгебра состоит из 8 реляционных операторов, объединенных в две группы:
-
Теоретико-множественные операторы: объединение, пересечение, вычитание, декартово произведение
-
Специальные реляционные операторы: выборка, проекция, соединение, деление.
Операции реляционной алгебры могут выполняться над одним отношением (например, проекция) или над двумя отношениями (например, объединение). В первом случае операция называется унарной, а во втором — бинарной. При выполнении бинарной операции участвующие в операциях отношения должны быть совместимы по типу.
Отношения называют совместимыми по типу, если они имеют идентичные заголовки, а именно,
-
Отношения имеют одно и то же множество имен атрибутов, т.е. для любого атрибута в одном отношении найдется атрибут с таким же наименованием в другом отношении,
-
Атрибуты с одинаковыми именами определены на одних и тех же доменах.
Выборкой на отношении A с условием D называется отношение с тем же заголовком, что и у отношения A, и телом, состоящем из кортежей, значения атрибутов которых при подстановке в условие D дают значение ИСТИНА. Условие D представляет собой логическое выражение, в которое могут входить атрибуты отношения A и (или) скалярные выражения.
Например, дано отношение «Работники»
-
Таб №
ФИО
Должность
Телефон
568745
Крид М.В.
Инженер
7589564
458763
Ладник Т.Д.
Бухгалтер
6589746
954842
Беглов Д.А.
Инженер
5699869
548965
Олешник Л.Н.
Программист
5896387
Нужно выбрать сведенья о работниках, которые занимают должность инженер. В результате, получим
-
Таб №
ФИО
Должность
Телефон
568745
Крид М.В.
Инженер
7589564
954842
Беглов Д.А.
Инженер
5699869
Проекцией примененной к отношению A называется отношение B, содержащее кортежи A, за исключением повторяющихся кортежей, после исключения из него некоторых атрибутов. Такие кортежи называются подкортежами.
Например, дано отношение «Работники». Нужно вывести только наименование всех должностей. В результате получим новое отношение
-
Должность
Инженер
Бухгалтер
Программист
12. Раскройте сущность следующих понятий: реляционная алгебра, отношения совместимые по типу. Перечислите специальные операторы реляционной алгебры. Дайте характеристику операторам: соединение, деление. Приведите примеры.
Реляционная алгебра — формальная система манипулирования отношениями в реляционной модели данных, основанная на теории множеств. Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Реляционная алгебра замкнута таким образом, что результаты одних реляционных выражений можно использовать в других выражениях.
Реляционная алгебра состоит из 8 реляционных операторов, объединенных в две группы:
-
Теоретико-множественные операторы: объединение, пересечение, вычитание, декартово произведение
-
Специальные реляционные операторы: выборка, проекция, соединение, деление.
Операции реляционной алгебры могут выполняться над одним отношением (например, проекция) или над двумя отношениями (например, объединение). В первом случае операция называется унарной, а во втором — бинарной. При выполнении бинарной операции участвующие в операциях отношения должны быть совместимы по типу.
Отношения называют совместимыми по типу, если они имеют идентичные заголовки, а именно,
-
Отношения имеют одно и то же множество имен атрибутов, т.е. для любого атрибута в одном отношении найдется атрибут с таким же наименованием в другом отношении,
-
Атрибуты с одинаковыми именами определены на одних и тех же доменах.
Пусть даны отношения A(X1,X2,…,Xn,Y1,Y2,…,Ym) и B(Y1,Y2,…,Ym), причем атрибуты Y1,Y2,…,Ym - общие для двух отношений. Делением отношений A на B называется отношение с заголовком (X1,X2,…,Xn) и телом, содержащим множество кортежей (x1,x2,…,xn), таких, что для всех кортежей (y1,y2,…,ym) из B в отношении A найдется кортеж (x1,x2,…,xn,y1,y2,…,ym).
Отношение A выступает в роли делимого, отношение B выступает в роли делителя. Деление отношений аналогично делению чисел с остатком.
Например имеется отношение Право. Требуется найти тех пилотов, которые имеют право управлять всеми типами самолета из некоторого множества q.
Пилот |
Тип_самолета |
Иванов |
707 |
Иванов |
727 |
Иванов |
747 |
Петров |
707 |
Петров |
727 |
Сидоров |
707 |
Сидоров |
727 |
Сидоров |
747 |
Сидоров |
1011 |
Макаров |
727 |
Тип_самолета |
707 |
727 |
747 |
Тогда в результате получим отношение
Пилот |
Иванов |
Сидоров |
Соединение отношений – создание нового отношения, кортеж которого является результатом сцепления кортежей исходных отношений. Различают соединения отношений двух видов: естественное и по условию.
При соединении отношений А и В по условию производится сцепление строк отношений А и В, и проверка полученной строки на соответствии заданному условию. Если условие выполнено, то полученная строка включается в результирующее отношение. Условие представляет собой логическое выражение, в которое могут входить атрибуты отношений A и B и (или) скалярные выражения. Т.о., операция соединения по условию есть результат последовательного применения операций декартового произведения и выборки.
Пусть даны отношения A(A1,A2,...,An,X1,X2,...Xn) и B(X1,X2,...Xn,B1,B2,...,Bn), причем атрибуты X1,X2,...Xn‑ общие для двух отношений. Тогда естественным соединением отношений A и B называется отношение с заголовком (A1,A2,...,An, X1,X2,...Xn,B1,B2,...,Bm) и телом, содержащим множество кортежей (a1,a2,...,an,x1,x2,...,xn,b1, ,b2,...,bn), таких, что (a1,a2,...,an,x1,x2,...,xn) из A и (x1,x2,...,xn,b1,b2,...,bn) из B.
Естественное соединение производится по всем одинаковым атрибутам.
Например требуется соединить отношения Студенты и Оценки, для которой общим атрибутом является Ном_зач_книжки.
Студенты Оценки
ФИО |
Дата_рожд |
Ном_зач_книжки |
Белков Ю.Г. |
06.08.86 |
2346 |
Романов О.Р. |
12.04.90 |
2568 |
Шариков А.И. |
21.09.88 |
2478 |
Код_дисциплины |
Ном_зач_книжки |
Оценки |
4 |
2346 |
6 |
4 |
2568 |
5 |
7 |
2346 |
8 |
2 |
2568 |
6 |
3 |
2478 |
9 |
Результатом операции естественного соединения будет отношение
ФИО |
Дата_рожд |
Ном_зач_книжки |
Код_дисциплины |
Оценки |
Белков Ю.Г. |
06.08.86 |
2346 |
4 |
6 |
Белков Ю.Г. |
06.08.86 |
2346 |
7 |
8 |
Романов О.Р. |
12.04.90 |
2568 |
4 |
5 |
Романов О.Р. |
12.04.90 |
2568 |
2 |
6 |
Шариков А.И. |
21.09.88 |
2478 |
3 |
9 |
13. Перечислите основные отличия SQL от процедурных языков программирования. Назовите существующие формы языка SQL. Охарактеризуйте основные категории команд языка SQL (DDL, DML, DQL, DCL и др.), основные достоинства языка SQL.
Структурированный язык запросов SQL был разработан в 1970 г. корпорацией IBM как язык управления реляционных баз данных. Существует две формы SQL: Интерактивный и Вложенный. Как правило, обе формы работают одинаково, но используются различно.
Вложенный SQL состоит из команд SQL помещенных внутри программ, которые обычно написаны на некотором другом языке (Си, Delphi и др.). Это делает эти программы более мощными и эффективными.
Интерактивный SQL используется непосредственно в базе данных для осуществления к ней запросов пользователей. В этой форме SQL команда выполняется непосредственно после ее ввода, так что можно увидеть результат немедленно.
Отличие SQL от процедурных языков программирования
SQL относится к классу непроцедурных языков программирования. В отличие от универсальных процедурных языков, которые также могут быть использованы для работы с базами данных, SQL ориентирован не на записи, а на множества. Это означает следующее: в качестве входной информации для формулируемого на языке SQL запроса к базе данных используется множество записей одной или нескольких таблиц. В результате выполнения запроса также образуется множество записей результирующей таблицы. Другими словами, в SQL результатом любой операции над отношениями также является отношение. Запрос SQL задает не процедуру, то есть последовательность действий, необходимых для получения результата, а условия, которым должны удовлетворять записи результирующего таблицы, сформулированные в терминах входного (или входных) отношения.
Основные категории команд языка SQL:
-
DDL-язык определения данных, позволяет создавать и изменять структуру объектов базы данных, например, создавать и удалять таблицы;
-
DML – язык манипулирования данными, используется для манипулирования информацией внутри объектов реляционной базы данных посредством трех основных команд: INSERT(вставка), UPDATE(изменения), DELETE (удаление);
-
DQL – язык запросов, его основная команда SELECT, которая вместе со своими многочисленными опциями и предложениями используется для формирования запросов к реляционной БД;
-
DCL – язык управления данными. Команды управления данными позволяют управлять доступом к информации, находящейся внутри БД. Они используются для создания объектов, связанных с доступом к данным, а также служат для контроля над распределением привилегий между пользователями;
-
команды администрирования данных. С помощью команд администрирования данных пользователь осуществляет контроль за выполняемыми действиями и анализирует операции базы данных; они также могут оказаться полезными при анализе производительности системы;
-
команды управления транзакциями. Суть транзакции заключается в том что либо все команды одной транзакции выполняются, либо не выполняется ни одна команда из данной транзакции.
Основные достоинства языка SQL:
-
стандартность;
-
независимость от конкретных СУБД – все распространенные СУБД используют SQL, т.к. реляционную базу данных можно перенести с одной СУБД на другую с минимальными доработками;
-
возможность переноса с одной вычислительной системы на другую – СУБД может быть ориентирована на различные вычислительные системы;
-
реляционная основа языка – SQL является языком реляционных БД. Табличная структура реляционной БД понятна, а потому язык SQL прост для изучения;
-
возможность создания интерактивных запросов–SQL обеспечивает пользователям немедленный доступ к данным, при этом в интерактивном режиме можно получить результат запроса за очень короткое время без написания сложной программы;
-
возможность программного доступа к БД–язык SQL легко использовать в приложениях, которым необходимо обращаться к базам данных;
-
обеспечение различного представления данных – с помощью SQL можно представить такую структуру данных, что тот или иной пользователь будет видеть различные их представления;
-
возможность динамического изменения и расширения структуры БД – язык SQL позволяет манипулировать структурой БД, тем самым обеспечивая гибкость с точки зрения приспособленности БД к изменяющимся требованиям предметной области;
-
поддержка архитектуры клиент-сервер. SQL служит связующим звеном между взаимодействующей с пользователем клиентской системой и серверной системой, управляющей БД, позволяя каждой из них сосредоточиться на выполнении своих функций.
14. Опишите назначение оператора SELECT. Запишите синтаксис оператора SELECT в общем виде. Опишите назначение ключевого слова FROM. Приведите примеры использования оператора SELECT с ключевым словом FROM. Опишите назначение аргумента DISTINCT и приветите пример.
Оператор SELECT предназначен для выборки информации из таблиц базы данных.
Синтаксис оператора SELECT:
SELECT [[ALL]|DISTINCT] <список атрибутов>
FROM <список таблиц>;
В квадратных скобках указаны элементы, которые могут отсутствовать в запросе. Ключевое слово SELECT сообщает базе данных, что данное предложение является запросом на извлечение информации. После слова SELECT через запятую перечисляются наименования полей (список атрибутов), содержимое которых запрашивается. Обязательным ключевым словом, которое вместе с SELECT должно обязательно присутствовать в запросе является слово FROM (из). За слово FROM указывается список имен таблиц разделенных запятыми, из которых извлекается информация. Любой SQL-запрос должен заканчиваться символом «;» (точка с запятой). Точка с запятой используется, чтобы сообщать БД что запрос сформирован и готов к выполнению.
Например, нужно вывести авторов всех книг, которые имеются в книжном магазине.
SELECT Автор
FROM КНИГИ;
Результатом данного запроса будет таблица
Автор |
Набоков |
Пушкин |
Булгаков |
Зощенко |
Пушкин |
…….. |
Предыдущий запрос можно записать в следующем виде:
SELECT DISTINCT Автор
FROM КНИГИ;
В результате получим таблицу, в которой дубликаты строк исключены
Автор |
Набоков |
Пушкин |
Булгаков |
Зощенко |
…….. |
Если необходимо вывести значения всех, столбцов таблицы, то можно вместо перечисления их имен использовать символ «*» (звездочка).
SELECT *
FROM КНИГИ;
В данном случае результатом выполнения запроса будет вся таблица КНИГИ.
Оператор SELECT может содержаться не только перечень столбцов таблицы или символ *, но и выражения, а также отдельные числовые или текстовые константы. Текстовые константы должны заключаться в одинарные кавычки.
Например
SELECT ’Книга’ ,Наз_Кн, Ст_Кн AS Старая_Цена, Ст_Кн*1.5 AS Нов_Цена
FROM КНИГИ;
В результате получим
Книга |
Наз_Кн |
Старая_Цена |
Нов_Цена |
Книга |
Крестоносцы |
12000 |
18000 |
Книга |
Доктор Живаго |
15000 |
22500 |
Книга |
Мастер и Маргарита |
19000 |
28500 |
Книга |
Молодая гвардия |
11000 |
16500 |
…. |
…. |
…. |
…. |
15. Опишите назначение ключевого слова WHERE оператора SELECT. Охарактеризуйте основные операторы, используемые при задании логического условия в предложении WHERE. Приведите примеры использования оператора SELECT с ключевым словом WHERE.
Предложение WHERE определяет, какие строки указанных таблиц должны быть выбраны. Использование в операторе SELECT предложения, определяемого ключевым словом WHERE (где), позволяет задавать выражение условия, принимающее значение истина или ложь для некоторой строки таблицы. В таблицу, являющуюся результатом запроса, включаются только те строки, для которых условие, указанное в предложении WHERE, принимает значение истина.
В синтаксисе в предложении WHERE для отбора нужных строк таблицы можно использовать операторы сравнения = (равно), <> (не равно), <(меньше), <= (меньше или равно), > (больше), >=(больше или равно).
Также можно использовать несколько условий, соединенных логическими операторами:
AND - когда должны удовлетворяться оба разделяемых с помощью AND условия;
OR - когда должно удовлетворяться одно из разделяемых с помощью OR условий;
AND NOT - когда должно удовлетворяться первое условие и не должно второе;
OR NOT - когда или должно удовлетворяться первое условие или не должно удовлетворяться второе.
Например, запрос выдающий сведенья о студентах проживающих в г. Кобрине или Жабинка или Пинске:
SELECT *
FROM Студенты
WHERE Город=‘Кобрин’ OR Город=‘Жабинка’ OR Город=‘Пинск’;
При задании логического условия в предложении WHERE могут быть использованы операторы IN, BETWEEN, LIKE, IS NULL.
Оператор BETWEEN ... AND ... (находится в интервале от ... до ...) обеспечивает выборку строк, в которых значение какого-либо столбца находятся в заданном диапазоне. Оператор NOT BETWEEN … AND … наоборот обеспечивает выборку строк, значения которых находятся за пределами заданного диапазона. Первое значение в предложении c BETWEEN должно предшествовать второму в смысле алфавитной или числовой упорядоченности.
Например, выдать сведенья о картинах, стоимость которых находится в пределах от 80000 до 150000.
SELECT *
FROM Картины
WHERE Цена BETWEEN 80000 AND 150000;
В результате получим таблицу:
Наз_картины |
Художник |
Цена |
Домовой |
Зирок Д.Л. |
84600 |
Закат |
Литов Д.Е. |
145900 |
Отражение |
Катов Л.А. |
118000 |
Оператор IN определяет принадлежность данного значения к некоторому множеству. Оператор NOT IN наоборот делает выборку значений, которые не принадлежат заданному множеству. Например, запрос выдающий сведенья о студентах проживающих в г. Кобрине или Жабинка или Пинске:
SELECT *
FROM Студенты
WHERE Город IN (‘Кобрин’, ‘Жабинка’, ‘Пинск’);
Оператор LIKE применим только к символьным полям, в которых требуется находить подстроки. Оператор NOT LIKE - обеспечивает выборку строк, поля которых не содержат указанную подстроку.
Для выборки строковых значений по заданному образцу подстроки можно применять шаблон искомого образца строки, использующий символы: • символ подчеркивания «_»заменяет один любой символ. Например, 'б_к' будет соответствовать словам 'бык', 'бок' или 'бак';
• знак процента «%»замещает последовательность любого числа символов. Например 'р%' будет соответствовать словам 'рак' или 'рубашка' и т.д.
Например, чтобы получить список книг, в названии которых есть подстрока «Delphi», надо записать
SELECT Код_книги, Название, Автор
FROM Книги
WHERE Название LIKE ‘%Delphi%’;
Если при загрузке данных не введено значение в какое-либо поле таблицы, то СУБД поместит в него NULL-значение. Обнаружить эти значения можно с помощью IS NULL. Оператор IS NOT NULL наоборот обеспечивает выборку только тех строк, поля которых имеют определенные значения данных.
Например, запрос, приведенный ниже, возвратит строки из таблицы Поставщики, в которых отсутствуют сведения в столбцах Адрес или Телефон:
SELECT *
FROM Поставщики
WHERE Адрес IS NULL OR Телефон IS NULL;