На этом курсе мы будем проектировать реляционные базы данных с помощью СУБД PostgreSQL
Также будут разбираться другие СУБД, реализующие другие модели данных, а также работа с контейнерами.
Модель данных - это концептуальное описание структуры данных, их взаимосвязей, а также правил и ограничений, регулирующих работу с данными. Система управления БД реализует определенную модель данных
Можно выделить такие модели данных:
Модели данных помогают нам преобразовать объекты доменной области в понятные компьютеру образы.
Нормализация базы данных - это процесс структурирования данных в базе данных в соответствии с определенными правилами, направленный на устранение избыточности данных и обеспечение их целостности. Основная идея нормализации заключается в разбиении больших таблиц на несколько меньших, логически связанных между собой, с целью обеспечения целостности и согласованности данных
Нормальные формы ведут за собой потери производительности при агрегации данных. В каких-то случаях применяется денормализация - обратный процесс, целью которого является увеличение избыточности и производительности
На курсе “Базы данных” мы изучали виды ключей записей в реляционной БД:
Суперключ - набор одного или нескольких атрибутов, которые в совокупности позволяют уникально идентифицировать каждую запись в таблице
Потенциальный ключ - минимальный суперключ, который не содержит избыточных атрибутов
Первичный ключ - один из потенциальных ключей, выбранный для уникальной идентификации записей в таблице
Внешний ключ - атрибут или множество атрибутов, которые соответствуют потенциальному ключу некоторого (может быть того же самого) отношения
Также ключ может быть естественным и суррогатным
Естественный ключ - это атрибут (или комбинация), который уже присутствует в данных и имеет смысл с точки зрения предметной области
Пример: адрес электронной почты в базе клиентов
Плюсы: экономия памяти
Минусы: может измениться, может быть неопределенной длины
Суррогатный ключ - искусственно созданный уникальный идентификатор
Плюсы: не может потребоваться его менять, занимает мало места
Минусы: избыточные данные
Роль суррогатного ключа может принять автоинкремент (увеличенное на 1 значение ключа предыдущей созданной записи) или UUID
Также в PostgreSQL существуют такие типы данных:
Целочисленные типы - smallint, int, bigint, (serial, big serial)
С плавающей точкой - real, double, money, decimal
Строки - varchar, char, text
Дата и время - date, time, timestamp, interval
Логический - bool
Геометрические типы - point, path, line