Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпора экзамен базы данных.docx
Скачиваний:
5
Добавлен:
25.08.2019
Размер:
64 Кб
Скачать

6. Понятие нормализации. Классификация нормальных форм, их назначение.

В теорииреляционных БД обычно выделяется следующая последовательность нормальных форм:

• перваянормальнаяформа (1НФ):

• втораянормальнаяформа (2НФ);

• третьянормальнаяформа (ЗНФ):

• нормальнаяформаБойса-Кодда (НФБК);

• четвертаянормальнаяформа (4НФ);

• пятаянормальнаяформа, илинормальнаяформапроек-

ции-соединения (5НФ или НФПС).

Каждая НФ болеевысокого порядка является более выгоднойс точки зрения концепции реляционных БД, чем-- предыдущая.При этом необходимо заметить тотфакт, что если некоторая БДнаходится, скажем, во 2НФ, тонеисключено, чтоеечастьуже

находится в ЗНФ, внутрикоторой может находиться часть вНФБК и т. д.

Основныесвойства НФ:

• каждаяследующая НФ в некотором смысле лучшепредыдущей;

• припереходе к следующей НФ свойства предыдущихнормальных форм сохраняются.

В основепроцесса проектирования лежит метод нормализации - декомпозиция отношения, находящегося в предыдущей НФ.

Каждой НФ соответствует некоторый наборограничений. Отношение, находящееся в некоторой НФ, должно удовлетворятьсвойственному этой форме набору ограничений. Поскольку требование 1НФ является базовым в классическойреляционноймодели

данных, начнемизложение с требований именно к этой форме.

7. История создания языка SQL.

В начале 70- х годов компанией IBM была разработана экспериментальная СУБД,SystemR на основе языка SEQUEL,который считается приставником языка SQL.

Целью разработки было создание простого непроцедурного языка,который мог бы воспользоваться пользователь даже не имеющий навыков программирования. В 1981 IBM объявила о своём первом основанном на SQL программном продукте –SQLIDS.

1-й стандарт языка SQLбыл принят американским институтом стандартизации в 1987 и уточнён в 1989.Дальнейшее развитие языка потребовало принятия в 1992 нового расширенного стандарта. В настоящее время язык SQL поддерживается многими десятками СУБД различных видов.

8. Выборка данных с использованием предложения SELECT. Назначение параметров ALL, DISTINCT, TOP в запросах.

[SELECT Список полей]

[FROM Список таблиц]

[WHERE Условие]

[GROUPBY Список полей]

[HAWING Условие]

[ORDERBY Список выражений]

ALL означает что нужно выводить все строки

DISTINCT означает что нужно выводить только неповторяющиеся значения

TOP позволяет определить или задать кол-во выводимых строк

9. Логические операторы языка SQL, операторы сравнения.

Лог.опер-AND,OR,NOT

Оперсравн-<>,<= ,>=,=.

Ключ.словоINисп-ся для задания списка возможных значений для проверяемой величины

10. Построение запросов с условием отбора. Использование операторов LIKE, BETWEEN, IN, IS NULL в запросах.

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

проживающие в городах Москва и Санкт-Петербург. Мы можем сформировать сложный запрос:

SELECT Фамилия, Имя, Город

FROM LichData, Adres

WHERE Ключ = Сотрудник AND (Город = "Москва" OR Город = "Санкт-Петербург");

Последнюю строку запроса можно упростить, если использовать оператор IN:

WHERE Ключ = Сотрудник AND Город IN ("Москва", "Санкт-Петербург");

Представьте, если нужны данные не по двум, а по десятку городов. В какого бы монстра

превратился запрос со сложным условием, если не использовать IN! При перечислении строк можно

использовать как двойные, так и одинарные кавычки, при перечислении числовых значений кавычки не

нужны. Все значения разделяются запятой.

Оператор BEETWEEN работает примерно так же, как IN, но задает не список, а диапазон

значений. Предположим, нам нужно выявить сотрудников, которые имеют стаж работы от 4 до 10 лет

включительно. Подобный запрос выглядит так:

SELECT Фамилия, Имя, Стаж

FROM LichData

WHERE Стаж BETWEEN 4 AND 10;

Оператор LIKE работает только с символьными и строковыми полями. Этот оператор позволяет

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

сотрудников, чья фамилия начинается на букву «Л». Запрос будет таким:

SELECT Фамилия, Имя, Отчество

FROM LichData

WHERE Фамилия LIKE 'Л%';

Следует учитывать, что оператор LIKE чувствителен к регистру букв. Если вы будете производить

поиск записи в программе при помощи SQL-запроса, позаботьтесь заранее привести буквы к нужному

регистру.

Оператор LIKE использует маску символов, что позволяет задавать довольно сложные условия.

Маска может иметь два специальных символа:

 «_» - Символ подчеркивания обозначает, что в этом месте должен быть любой символ.

Например, «м_р» может выводить такие слова, как «мир», «мор» или «мур», но не сможет

вывести слово «мера».

 «%» - Символ процента обозначает, что в этом месте может быть любое количество любыхсимволов

Иногда в таблице возникают записи, которые не имеют никаких значений для каждого поля, например потому что информация не завершена или потомучто это поле просто незаполнялось. SQL учитывает такой вариант, позволяя вводитьпустое значение NULL в полевместозначения. Когда значение поля равно NULL, это означает, что СУБД специально пометила это поле, как неимеющее никакого значения для этойзаписи. Этопринципиальноотличается от простого значения вполе, значения нуля или пробела, которые БД будет обрабатывать так же, как и любоедругоезначение. Т.к. NULL не является предметным значением, он неимеет и типа данных и может помещаться в любой типяаая.

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