
- •1. Введение в предмет.
- •1.1 Данные и информация.
- •1.2 Предметная область.
- •1.3 Понятие и сущность.
- •1.4 Концептуальная модель объекта.
- •1.5 Связь или отношение.
- •1.6 Логическая модель базы данных.
- •1.7 Физическая модель базы данных.
- •1.8 Введение в работу с базами данных на платформе Microsoft sql Server.
- •1.8.1 Платформа Microsoft sql Server.
- •1.8.2 Среда sql Server Management Studio.
- •2. Основные понятия баз данных.
- •2.3 Типы данных ms sql Server.
- •2.3.1 Типы char и varchar.
- •2.3.2 Типы данных nchar и nvarchar.
- •2.3.3 Типы точных числовых данных.
- •2.3.4 Тип данных даты и времени.
- •2.3.5 Типы данных Decimal, Float и Real.
- •2.3.6 Тип денежных данных.
- •2.3.7 Типы binary и varbinary.
- •2.3.8 Типы данных больших значений.
- •2.4 Индексы.
- •2.4.1 Простой индекс.
- •2.4.2 Уникальный индекс.
- •2.4.3 Первичный ключ.
- •2.4.4 Уточнение определения индексов для ms sql Server.
- •2.4.4.1 Создание кластеризованного индекса.
- •2.4.4.2 Создание некластеризованных индексов.
- •2.5 Ограничения (Constraints).
- •2.5.1 Ограничение первичного ключа (Primary key constraints).
- •2.5.2 Создание или изменение ограничения primary key.
- •2.5.2.1 Свойство identity.
- •2.5.2.2 Глобальные уникальные идентификаторы.
- •2.6 Отношения между таблицами.
- •2.7 Нормализация данных.
- •2.7.1 Функциональные зависимости.
- •2.7.2 Первая нормальная форма таблицы.
- •2.7.3 Вторая нормальная форма таблицы.
- •2.7.4 Третья нормальная форма таблицы.
- •2.8 Ограничение foreign key.
- •2.8.1 Ведение ссылочной целостности.
- •2.8.2 Диалоговое окно "Связи внешнего ключа".
- •2.9 Ограничение unique.
- •2.9.1 Создание ограничения уникальности визуальными средствами.
- •2.9.2 Изменение ограничения уникальности.
- •2.10 Проверочные ограничения check.
- •2.11 Значения по умолчанию (Default).
- •3. Диаграммы базы данных.
- •3.1 Конструктор баз данных.
- •3.1.1 Таблицы и столбцы в диаграмме базы данных.
- •3.2 Редактирование диаграммы.
- •4. Основы Transact-sql.
- •4.1 Введение в sql.
- •4.1.1 Особенности выполнения инструкций Transact-sql.
- •4.2 Запросы.
- •4.2.2 Синтаксис инструкции select.
- •4.2.2.1 Предложение select.
- •4.2.2.2 Предложение select_list.
- •4.2.2.3 Предложение into.
- •4.2.2.4 Предложение from.
- •4.2.2.5 Предложение where.
- •4.2.2.6 Предложение group by.
- •4.2.2.7 Предложение having.
- •4.2.2.8 Предложение order by.
- •4.3 Ввод данных.
- •4.4 Обновление или изменение данных.
- •4.5 Удаление данных.
- •4.6 Представления.
- •4.6.1 Сравнительные характеристики запросов и представлений.
- •4.6.2 Типы представлений.
- •4.6.2.1 Стандартные представления.
- •4.6.2.2 Индексированные представления.
- •4.6.3 Создание представлений.
- •4.6.3.1 Обновляемые представления.
- •4.7.5 Настройка разрешений на объекты базы данных.
- •4.7.5.3 Создание пользователя в базе данных.
- •4.7.5.4 Инструкция grant.
- •4.7.6 Удаление объектов базы данных.
2.8 Ограничение foreign key.
В MS SQL Server отношение между двумя таблицами устанавливается посредством создания ограничения FOREIGN KEY.
Столбцы, которые выбираются для внешнего ключа, должны иметь одинаковый тип данных с первичными столбцами, которым они соответствуют. Каждый ключ должен содержать одинаковое число столбцов. Например, если первичный ключ на первичной стороне связи состоит из двух столбцов, необходимо сопоставить каждому из этих столбцов столбец таблицы, который будет входить во внешний ключ на другой стороне связи.
Ограничение FOREIGN KEY можно определить при создании таблицы. Если таблица уже существует, ограничение FOREIGN KEY можно добавить, в этом случае оно присоединяется к существующим ограничениям PRIMARY KEY или UNIQUE этой или другой таблицы. Таблица может содержать несколько ограничений FOREIGN KEY.
Существующее ограничение FOREIGN KEY можно изменить или удалить. Возможно, потребуется, чтобы ограничение FOREIGN KEY ссылалось на другие столбцы. Однако длину столбца, определяющего ограничение FOREIGN KEY, изменить нельзя.
2.8.1 Ведение ссылочной целостности.
Ссылочная целостность есть система правил, гарантирующих поддержание отношения между связанными им таблицами при случайном удалении или изменении соответствующих данных.
Например, каждое название книги в таблице titles должно быть связано с определённым издателем в таблице publishers. Книга не может быть занесена в базу данных, если её издатель отсутствует в базе данных.
Ссылочная целостность БД определяется следующими правилами:
- нельзя ввести значение в столбец внешнего ключа дочерней таблицы, если соответствующее значение отсутствует в первичном ключе родительской таблицы, однако можно ввести значение NULL в столбец внешнего ключа. Например, невозможно указать, что задание выдано сотруднику, для которого нет данных в таблице employee, но при этом можно указать, что определенному сотруднику задание не выдано. Для этого необходимо задать в столбце job_id таблицы employee пустое значение;
- нельзя удалить строку из таблицы первичного ключа (родительской таблицы), если соответствующие ей строки присутствуют в дочерней таблице. Прежде, чем удалять строку из таблицы первичного ключа, необходимо удалить совпадающие с ней строки из связанной таблицы. Например, нельзя удалить строку из таблицы jobs, если задание, представляемое данной строкой, задействует сотрудников, перечисленных в таблице employee.
- нельзя изменить значение первичного ключа в родительской таблице, если эта строка имеет соответствующие строки в дочерней таблице. Например, нельзя изменить значение строки job_id в таблице jobs, если в таблице employee существуют связанные с ней данные о сотрудниках.
Ссылочная целостность может быть введена при выполнении следующих условий:
- родительская таблица имеет первичный ключ или ограничение уникальности;
- связываемые столбцы имеют одинаковый тип данных и размер;
- связываемые таблицы принадлежат одной базе данных.
2.8.2 Диалоговое окно "Связи внешнего ключа".
Чтобы открыть это диалоговое окно, откройте определение таблицы с внешним ключом, щелкните правой кнопкой мыши сетку определения таблицы, затем щелкните Отношения.
В диалоговом окне " Отношения внешнего ключа" доступны следующие параметры:
- Выбранный элемент Отношение
Выводит список существующих связей. Выберите связь, чтобы ее свойства отобразились в сетке справа. Если этот список пуст, то для этой таблицы не было определено ни одной связи.
-Добавить
Создает новую связь. Спецификации таблиц и столбцов должны быть заданы, иначе связь будет недопустима.
-Удалить
Удаляет связь, выбранную в списке Выбранный элемент Отношение. Чтобы отменить добавление связи, удалите эту связь, нажав данную кнопку.
- Категория (Общие)
Развернув, можно увидеть категории Проверка существующих данных при создании и повторном включении и Спецификации таблиц и столбцов.
- Проверка существующих данных при создании и возобновлении
Проверяет все существующие данные в таблице перед созданием или возобновлением ограничения относительно этого ограничения.
- Категория спецификации таблиц и столбцов
Разверните, чтобы увидеть, какие столбцы, из каких таблиц действуют как внешний и первичный (или уникальный) ключ в данной связи. Для изменения или задания этих значений нажмите кнопку с многоточием (…) справа от поля свойства.
- Базовая таблица внешнего ключа
Показывает, какая таблица содержит столбец, действующий как внешний ключ в выбранной связи.
- Столбцы внешних ключей
Показывает, какой столбец действует как внешний ключ в выбранной связи.
- Базовая таблица первичного или уникального ключа
Показывает, какая таблица содержит столбец, действующий как первичный (или уникальный) ключ в выбранной связи. Столбцы первичного или уникального ключа Показывает, какой столбец действует как первичный (или уникальный) ключ в выбранной связи.
- Категория идентификаторов
Разверните, чтобы увидеть поля свойств Имя и Описание.
- Имя
Показывает имя связи. Если создается новая связь, ей присваивается имя по умолчанию в зависимости от таблицы, отображаемой в активном окне в Конструкторе таблиц. Это имя всегда можно изменить.
- Описание
Описывает связь. Чтобы ввести более подробное описание, щелкните Описание и нажмите кнопку с многоточием (...) справа от поля свойства. При этом появится большее поле для записи текста.
- Категория конструктора таблиц
Разверните, чтобы увидеть данные для категорий Проверка существующих данных при создании и возобновлении и Принудительное использование для репликации.
- Принудительная репликация
Показывает, использовать ли данное ограничение, когда агент репликации выполняет в таблице вставку, изменение или удаление. Дополнительные сведения см. в разделе Управление ограничениями, идентификаторами и триггерами с помощью параметра "NOT FOR REPLICATION".
- Принудительное ограничение внешнего ключа
Укажите, допустимы ли изменения данных столбцов связи, если при этом нарушится целостность связи внешнего ключа. Выберите Да, если нужно запретить такие изменения, и Нет, если нужно разрешить их.