itmo_conspects

Проектирование баз данных

На этом курсе мы будем проектировать реляционные базы данных с помощью СУБД PostgreSQL

Также будут разбираться другие СУБД, реализующие другие модели данных, а также работа с контейнерами.

Лекция 1. Терминология

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

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

Модели данных помогают нам преобразовать объекты доменной области в понятные компьютеру образы.

Нормализация базы данных - это процесс структурирования данных в базе данных в соответствии с определенными правилами, направленный на устранение избыточности данных и обеспечение их целостности. Основная идея нормализации заключается в разбиении больших таблиц на несколько меньших, логически связанных между собой, с целью обеспечения целостности и согласованности данных

Нормальные формы ведут за собой потери производительности при агрегации данных. В каких-то случаях применяется денормализация - обратный процесс, целью которого является увеличение избыточности и производительности

На курсе “Базы данных” мы изучали виды ключей записей в реляционной БД:

Суперключ - набор одного или нескольких атрибутов, которые в совокупности позволяют уникально идентифицировать каждую запись в таблице

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

Первичный ключ - один из потенциальных ключей, выбранный для уникальной идентификации записей в таблице

Внешний ключ - атрибут или множество атрибутов, которые соответствуют потенциальному ключу некоторого (может быть того же самого) отношения

Также ключ может быть естественным и суррогатным

Естественный ключ - это атрибут (или комбинация), который уже присутствует в данных и имеет смысл с точки зрения предметной области

Пример: адрес электронной почты в базе клиентов

Плюсы: экономия памяти

Минусы: может измениться, может быть неопределенной длины

Суррогатный ключ - искусственно созданный уникальный идентификатор

Плюсы: не может потребоваться его менять, занимает мало места

Минусы: избыточные данные

Роль суррогатного ключа может принять автоинкремент (увеличенное на 1 значение ключа предыдущей созданной записи) или UUID

Также в PostgreSQL существуют такие типы данных: