Основу любой информации составляют данные. О них мы и расскажем.
Давайте разберемся, что такое вообще база данных и чем она отличается от других форм хранения информации.
Определение базы данных
Допустим Вы делаете какие-то записи в блокноте от случая к случаю, рисуете карандашом небольшие гравюры и складываете их в папку. Будет ли блокнот с записями и папка с гравюрами базой данных? Нет.
Чтобы придать записям и рисункам атрибуты данных их надо систематизировать и организовать. Если мы введем: рубрики в наш блокнот будем структурировать записи в эти рубрики по датам и присвоим каждой записи номер, то такую структуру можно назвать базой данных.
Итак, база данных это структура предназначенная для хранения, обработки, изменения информации.
Чем же будет блокнот? Его можно назвать Системой управлением базой данных или коротко СУБД. Программный продукт с помощью которого мы можем управлять своей базой данных.
Видов баз данных много — это может быть таблица в привычном эксель, база данных программы, база данных у сервера. Также базы данных бывают разных типов: иерархические, реляционные, резидентные, поисковые, ключ-значение, документированные, графовые.
Любая информация, которую вы используете в повседневности сохраняется в базах данных. Вы расплатились картой в кафе, заказали товар в интернет магазине, позвонили подруге, написали сообщение, встали в электронную очередь, настроили будильник. Все это сохраняется базах данных.
Наше внимание мы остановим на реляционных базах данных. Они используются уже 50 лет и показали свою эффективность.
Что такое реляционная база данных? Её название происходит от английского слова relation (отношение).
Один элемент базы имеет отношение ко многим её элементам.
Такая концепция пришла в программирование и финансовый учёт из алгебры.
Реляционные базы данных популярны до сих пор. Такие данные состоят из строк (кортежей) и столбцов (атрибутов) с данными, объеденными в таблицы (сущности), которые имею свою иерархическую структуру. Каждая строка в таблице имеет свою номер, в программировании ее называют ключ.
Таблица имеет определенное число строк ее называют — мощность. Количество столбцов называют размерностью.
Для упрощения мы будем использовать привычные для всех термины.
Основы проектирования данных
Чтобы пользоваться данными было удобно мы должны их правильно расположить по строкам и столбцам в таблицах. В программировании это называется нормализацией.
В строках не должно храниться избыточные данные, иначе пользоваться ими станет неудобно. Мы не сможем четко манипулировать записями.
Например. избыточность можно определить так: одни и те же данные хранятся в разных местах базы данных (адреса, списки товаров и прочее), указаны разные значения целые цифры, дробные значения или прописью. Такая база данных разрастается. В результате управлять ей становится неудобно.
Нормализация позволяет сделать базу данных устойчивой избавить ее от логических и структурных проблем. Данные должны стремится к целостности т. е. располагаться согласно логике, которую задали мы.
Вся информация в реляционных базах данных хранится в таблицах. Таблицы могут взаимодействовать между собой. Можно забирать определенные данные, объединять их, выводить в одной строке, производить вычисления с ними, записывать вычисления в новые таблицы. Множество разных возможностей.
Три правила нормализации данных
Свои таблицы мы должны проектировать строго следуя этим правилам. Это минимизирует ошибки и сделает нашу базу эффективной.
Первая нормальная форма
Каждый столбец таблицы содержит только одно значение. Давайте рассмотрим это на схеме.
Таблица сверху не содержит первой нормальной формы. Ниже мы привели ее в соответствие с ней. Каждый столбец, в каждой строке имеет только одно значение. Если даже у организации будет два счета, то другой счет появится в новой строке.
Вторая нормальная форма
У каждой строки в таблице должен быть номер или ключ. Ключи позволяют однозначно идентифицировать нам нужную строку при работе с базой данных.
Мы добавили к каждой строке специальное поле, т. е. придали каждой строки свой уникальный ID — ключ. В таблице он не должен повторяться. По такому ключу мы должны найти строку информацию из которой хотим получить.
Третья нормальная форма
Таблица приведенная выше хороша только для небольших объемов информации. Если значений несколько тысяч на помощь приходит третий принцип проектирования таблиц. Мы должны разбить эту таблицу на несколько. В каждой из таблиц будет своя уникальная нумерация строк или свой уникальный ключ кортежа.
Получается, что каждая единица информации хранится в отдельно сущности и у каждой свои поля.
Преимущества на этой структуры на первый взгляд не очевидны. Когда у нас возникнет потребность изменить данные мы будем их менять не во всем массиве, а только в своей отдельной, маленькой таблице. В результате, процесс будет быстрый и не трудоемкий.
Реляционные базы данных успешно применяются не только в программировании. В них работают аналитики, финансисты, маркетологи.
В следующем материале мы установим систему для управления реляционной базой данных на наш виртуальный сервер.