Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео. И, конечно, не забывайте о лайках.
Приложение к видео 1
Реляционные базы данных. Основные понятия
Я начал, на мой взгляд, интересный и очень важный курс по реляционным базам данных. Мне могут возразить, что современным прикладным программистам эти знания лишни. На что, я бы, конечно. мог возразить, что лишних знаний не бывает. Но мне кажется, если программист пишет код, который обращается к реляционным базам данных, то какими инструментами он не пользовался бы, понимать структуру БД очень важно. Да в конце концов, всегда можно перейти в другую категорию разработчиков - тех кто проектирует базы данных или пишет код на стороне сервера баз данных.
В видеоуроке, я дал только несколько важных понятий РБД (реляционных баз данных) . Просто такая инициализация моего курса. Так, чтобы можно было бы уже писать простые клиентские приложения. Здесь же я просто кратко повторю основные тезисы.
На рисунке представлена таблица и её содержимое. Положим в ней содержится информация о студентах. Перечислю основные тезисы табличного представления данных.
- Реляционная база данных состоит из таблиц, связанных друг с другом. В данном случае мы рассматриваем только одну таблицу.
- Структура таблицы определяется её столбцами. Обратим внимание на столбец Идентификатор. Обычное имя для такого столбца id (от identifier). Это идентификатор строк таблицы. Есть и другое название Первичный ключ или Primary Key. Я посвящу отдельную лекцию первичным ключам. Довольно часто в качестве идентификатора выбирают счетчик добавляемых строк, т.е. целое число, хотя это и не обязательно. В нашем пример не все номера по порядку присутствуют. Это означает, что какие-то строки таблицы были просто удалены. Это не влияет на то, что идентификатор однозначно определяет строку в таблице.
- В теории РБД вводится понятие сущность. Для упрощения я бы сказал, что таблица есть представление сущности предметной области. Тогда столбцы таблицы можно назвать атрибутами или свойствами сущности. Столбец имеет уникальное имя в таблице и тип данных, которые в нём расположены. К типам данных в РБД мы ещё не раз вернёмся.
- Особо отметим, что идентификатор не является атрибутом сущности. Кроме понятия сущности, вводят ещё понятие экземпляра сущности. Строка таблицы по сути представляет такой экземпляр. Наличие идентификатора гарантирует отличие одного экземпляра сущности от другого.
- Два важных принципа РБД. 1. Две таблицы, отличающиеся друг от друга только порядком следования столбцов считаются идентичными. 2. Две таблицы, отличающиеся друг от друга только порядком следования строк, считаются идентичными. К этим важным положениям мы будем ещё не раз возвращаться.
Выше представлена таблица вместе с её содержимым. При изображении структуры данных, обычно используют другую нотацию (см. рисунок ниже).
Здесь представлены только столбцы таблицы. Иногда для столбца указывается и тип данных, который там хранится. Обращаю внимание, что имя столбца - идентификатора подчеркнуто. Обычно так обозначается первичный ключ. Первичный ключ в таблице всегда один.
Меня могут спросить: а разве нельзя идентифицировать строку таблицы другими атрибутами, например паспортом студента (если он представлен в таблице) и т.п. Конечно можно. Только первичный ключ это объект базы данных, которые поддерживается СУБД и обеспечивает отличие одного экземпляра сущности от другого, а другие столбцы могут использоваться для получения конкретной строки, а могут и не использоваться и не несут никакой дополнительной смысловой нагрузки. Важно также отметить, что идентификатор - первичный ключ, как показан в данной статье, не имеет отношение к самой сущности, другие же столбцы таблицы являются её свойствами. И это очень важно и об этом я ещё порассуждаю в следующих материалах.
Наконец на рисунке ниже, перечислены несколько основных понятий, которые я упоминал на уроке.
Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.