Data Definition Language

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

Data Definition Language (DDL) (язык описания данных) — это словарь, используемый для определения или описания структуры баз данных.

В DDL входят такие операторы как: CREATE (создать), ALTER (изменить), DROP (удалить).
Оператор CREATE используются для определения новых сущностей.
Оператор ALTER используются для изменения определений существующих сущностей.
Оператор DROP используются для удаления существующих сущностей.

Изменение Базы Данных:

Важно! Измененный максимальный размер не может быть меньше текущего размера БД или равный текущему.

Изменяем таблицу Customers, добавив столбец NewFild

Изменяем таблицу Customers, удалив столбец NewFild

Установив значение по умолчанию

Целостность баз данных

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

Типы целостности базы данных:

  • Доменная целостность
  • Целостность сущностей
  • Ссылочная целостность

Доменная целостность

Доменная целостность гарантирует наличие в некотором столбце только допустимых значений.
Ограничения, обеспечивающие доменную целостности:

  • Использование ограничений проверки(CHECK).
  • Использование ограничений на умолчания(DEFAULT).

Целостность сущностей

Целостность сущностей гарантирует уникальность записей в таблицах(сущностях).
Ограничения, обеспечивающие целостность сущностей:

  • Использование ограничений первичного ключа(Primary Key).
  • Использование ограничений на уникальность(UNIQUE).

Primary Key

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

Первичный ключ (Primary Key) — это атрибут или группа атрибутов, однозначно идентифицирующих экземпляр сущности. На диаграмме первичные ключи размещаются выше горизонтальной линии. Ключ может быть сложным, т.е. состоять из нескольких атрибутов.

Создание первичного ключа

пример использования:

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

пример:

Изменяем таблицу Customers задав ограничение первичного ключа на столбце CustomerNo

 

Ссылочная целостность

Ссылочная целостность гарантирует невозможность создания записи в одной таблице, которая ссылается на несуществующую запись другой таблицы.
Ограничения обеспечивающие ссылочную целостность:

  • Использование ограничений внешнего ключа(Foreign Key).

Foreign Key

Foreign Key (Внешний Ключ) – задает столбец который ссылается на ограничение Primary Key или UNIQUE. Ограничение Foreign Key запрещает вводить данные не существующие в ссылочных столбцах (столбцах с ограничением Primary Key или UNIQUE).

Внешние ключи (Foreign Key) создаются автоматически, когда сущности соединяются связью (миграция ключа). Связи между таблицами реляционной БД представляются
одинаковыми ключами в таблицах (внешними ключами).

Создание внешнего ключа

Не допускается запись в ссылаемый столбец (столбец с FOREIGN KEY) дочерней таблици, значений несуществующих в ссылочном столбце (столбец с PRIMARY KEY) родительской таблицы.

Создание ограничения внешнего ключа на существующей таблице

Удаление ограничения внешнего ключа. FK_CustomersCustomerNo — имя по умолчанию

Entity-Relationship

Диаграммы «сущность-связь» (Entity-Relationship) предназначены для разработки моделей данных и обеспечивают стандартный способ определения данных и отношений между ними.

Дочерняя и Родительская таблицы

Таблица содержащая FK называется дочерней таблицей по отношению к ссылаемой таблице (родительской таблице) содержащей первичный ключ.

Родительская таблица – таблица на которую ссылаются.
Дочерняя таблица – таблица которая ссылается.

СВЯЗИ-Relations

Связь — это некоторая ассоциация между двумя таблицами, реализованная при помощи пары FK -> PK или FK -> UNIQUE.
Одна таблица может быть связана с другой таблицей или сама с собою. Связи позволяют по одной сущности находить другие сущности, связанные с нею

Типы связей

Один к одному

 

 

Один ко многим

 

 

Многие ко многим

Ограничения ссылочной целостности

С помощью ограничений ссылочной целостности (ON DELETE, ON UPDATE) можно определять действия, которые SQL Server будет производить над строками дочерней таблицы, когда пользователь попытается  удалить или обновить ключевой столбец родительской таблицы.

Действия:CASCADE — при UPDATE, DELETE в родительской таблице ключевого значения,в дочерней таблице также выполняется UPDATE на новое значение,  или DELETE строк из дочерней таблицы соответственно.

Изменяем ID в таблице:

SET NULL — при UPDATE, DELETE в родительской таблице ключевого значения, в дочерней таблице все значения, составляющие эти внешние ключи,  будут изменены на NULL

SET DEFAULT — при UPDATE, DELETE в родительской таблице ключевого значения, в дочерней таблице все значения, составляющие эти внешние ключи,  будут изменены на значение по умолчанию.

NO ACTION (по умолчанию) — запрещает выполнение UPDATE, DELETE!

Пользовательские ограничения

Создаем шаблон, при котором можно будет вводить только цифры и не более 12 штук.

UNIQUE (алтернативный ключ), значение в ячейке должно быть уникальное

Возможно задать сразу несколько ограничений в произвольном порядке

Создание пользовательского ограничения на существующей таблице

Отключение работы ограничения CHECK

Включение работы ограничения CHECK

Удаление ограничения CHECK

Важно! После удаления не возможен возврат ограничения CHECK

 

 

Обновлено: 20.08.2018 — 13:17

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.