1/44
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
База данных
Это организованный набор данных, которые связаны между собой и могут быть использованы для обработки и хранения информации. Пример: список контактов на телефоне или таблица с заказами в интернет-магазине.
Данные
Это любая информация, которую можно сохранить в базе данных. Данные могут быть связаны с реальными объектами (например, людьми, вещами, местами). Пример: имя, адрес, дата рождения.
Модель баз данных
это способ, с помощью которого данные хранятся и связаны между собой. Существуют разные модели, и каждая по-своему организует данные. Самые известные из них — иерархическая, сетевая, реляционная и модель "ключ — значение”
Иерархическая модель
В этой модели данные представляют собой древовидную структуру, где каждый элемент (запись) связан с одним родителем. Это похоже на структуру папок на компьютере: одна папка может содержать другие папки и файлы.
Сетевая модель
это модель, в которой данные организованы в виде графа. В отличие от иерархической модели, где каждая запись может иметь только одного родителя, в сетевой модели одна запись может быть связана с несколькими родительскими и дочерними записями, то есть реализуются многие-ко-многим отношения.
Реляционная модель
Одна из самых популярных моделей. В ней данные хранятся в виде таблиц, которые могут быть связаны между собой. Каждая таблица содержит строки (записи) и столбцы (поля). Модель называется реляционной, потому что основана на понятии отношения из математики — по сути, таблицы представляют собой множества данных, связанных определёнными правилами. Такие базы данных используются повсеместно: в банках, магазинах, на сайтах и т.д.
Модель ключ — значение
В этой модели каждый элемент данных хранится в виде пары: уникальный ключ и значение. Это подходит для быстрого поиска данных, например, для хранения настроек приложения или кеша.
Документная модель
Здесь данные хранятся в виде документов (например, в форматах JSON или XML). Каждый документ может содержать разные типы информации, и не нужно заранее задавать структуру (не требуется заранее определять, какие поля и типы данных будут у документов — в отличие от реляционных баз данных). Эта модель используется для гибкого хранения данных, например, в социальных сетях или интернет-магазинах (гибкость и отсутствие фиксированной структуры).
Пример применения баз данных
Бизнес: Хранение данных о клиентах и продажах.
Медицина: Хранение данных о пациентах, результатах анализов.
В банках: Хранение информации о клиентах, счетах и транзакциях.
Таблица в реляционной базе
Таблица — это основная структура хранения в реляционной базе. Она состоит из строк и столбцов:
Строки (или записи) содержат данные об отдельных объектах. Например, одна строка может описывать одного человека.
Столбцы (или поля) представляют характеристики этих объектов — например, имя, фамилия, дата рождения. Все значения в одном столбце имеют одинаковый тип: например, только числа или только текст.
Первичный ключ
Это поле (или несколько полей) таблицы, значения которого не повторяются. С помощью первичного ключа можно однозначно определить каждую запись. Например, в таблице людей это может быть уникальный идентификатор — ID.
Если уникальность можно обеспечить только сочетанием нескольких полей, такой ключ называют составным. Первичный ключ не обязателен, но обычно используется для надёжности и навигации по данным.
Внешний ключ
Поле в таблице, которое содержит ссылки на значения первичного ключа в другой таблице. Благодаря этому возможно связать данные между таблицами. Например, таблица «Люди» может содержать поле «Код страны», которое ссылается на таблицу «Страны».
Внешние ключи позволяют не дублировать данные: страна указывается в одном месте, а в других таблицах просто используются её коды.
Схема данных
Это описание структуры базы данных: какие таблицы есть, какие у них поля и какие связи между таблицами. Обычно схема изображается в виде таблиц, связанных линиями, которые показывают первичные и внешние ключи. Схема помогает понять, как устроена база и как в ней находить нужную информацию.
Нормализация данных
Это процесс организации данных по определённым правилам, чтобы убрать дублирование и ошибки. Это помогает сделать базу данных удобной для хранения и обработки.
Избыточность данных
Когда одна и та же информация повторяется в разных местах базы данных. Это плохо, потому что занимает лишнее место и может привести к ошибкам, например, когда меняешь данные в одном месте, а забываешь в другом.
Аномалии
Это ошибки, которые возникают из-за плохой структуры таблицы:
Типы аномалий:
Аномалия вставки — это невозможность добавления данных в базу данных из-за отсутствия других данных. Например, если студент ещё не выбрал курс, а поле курса обязательно — запись не добавится. Решается разбиением данных на отдельные таблицы.
Аномалия удаления — это потеря важной информации при удалении записи из базы данных.
Например, если студент — единственный, кто записан на курс, и его удалить, то вместе с ним удалится и информация о самом курсе.
3. Аномалия изменения — когда данные дублируются и при изменении нужно править во многих местах.
Первая нормальная форма (1НФ)
Таблица должна содержать только простые, неделимые значения (в каждой ячейке — одно значение), не должно быть полей с одинаковым смыслом (повторяющихся по сути). Также таблица должна иметь первичный ключ — уникальный идентификатор записи.
Вторая нормальная форма (2НФ)
Таблица должна быть в первой нормальной форме, и при этом все неключевые поля должны зависеть от всего первичного ключа, а не только от части. Если ключ состоит из нескольких полей, то каждое неключевое поле должно зависеть от всех этих полей.
Неключевые поля
это поля (столбцы) таблицы, которые не входят в состав первичного ключа.
Третья нормальная форма (3НФ)
3НФ означает, что таблица находится во второй нормальной форме и в ней отсутствуют транзитивные зависимости: каждый неключевой столбец зависит только от первичного ключа, а не от других неключевых столбцов.
EmployeeID | Name | DepartmentID | DepartmentName |
---|
EmployeeID
— ключ
DepartmentID
— неключевое поле
DepartmentName
— неключевое поле
И здесь:
DepartmentName
зависит от DepartmentID
DepartmentID
зависит от EmployeeID
Декомпозиция
Процесс разделения большой таблицы на несколько меньших, чтобы устранить избыточность и аномалии.
Денормализация
Обратный процесс нормализации — добавление избыточности намеренно для ускорения чтения данных, когда это выгодно по производительности.
СУБД (Система Управления Базами Данных)
это программное обеспечение, которое позволяет работать с базой данных. Она как посредник между пользователем (или программой) и файлами, где хранятся данные.
SQL-запрос
Команда на языке SQL (или другом языке), которая отправляется СУБД для выполнения операции с данными. Каждый запрос состоит из операторов, определяющих необходимые действия, и различных выражений, например, логических или арифметических.
SQL
декларативный язык запросов к реляционным базам. С его помощью мы описываем, какие данные хотим получить или изменить, а СУБД сама решает, как это сделать.
Типы СУБД по расположению данных
Локальные СУБД — база данных находится на одном компьютере или сервере.
Распределённые СУБД — данные хранятся на нескольких серверах, которые физически могут находиться в разных местах.
PostgreSQL
Очень мощная и бесплатная СУБД, которая подходит для больших проектов с высокими нагрузками. Поддерживает стандартный SQL и расширения на других языках. Не имеет ограничений на размер базы.
MySQL
Одна из самых популярных СУБД с открытым исходным кодом. Подходит для веб-проектов и учебных целей. Имеет простой синтаксис, поддержку многих ОС и хорошую производительность при работе с небольшими и средними объемами данных.
SQLite
Минималистичная встраиваемая СУБД. Всё содержимое базы данных хранится в одном файле. Не требует установки и настройки сервера. Используется в проектах с небольшим трафиком.
NoSQL-СУБД
Системы управления базами данных, не использующие реляционную модель. Примеры: MongoDB (документы), Redis (ключ-значение), Neo4j (графовая модель). Подходят для работы с большими объёмами разнородных данных.
Диалекты SQL
Разные СУБД могут использовать слегка отличающиеся версии SQL. Например, синтаксис или расширенные функции могут отличаться в MySQL, PostgreSQL или SQLite. Несмотря на это, основная структура запросов остаётся схожей.
Транзакция
Последовательность операций, которая выполняется как единое целое. Если одна из операций неудачна, можно "откатить" все изменения. Пример — перевод денег между счетами: списание и зачисление должны произойти вместе.
Тип данных
это характеристика, которая определяет, какие значения может принимать определённый столбец или переменная в базе данных. Другими словами, тип данных говорит базе данных, какого рода данные будут храниться (например, числа, текст, даты и т.д.) и как с ними работать.
Строковые типы данных
Строковые типы данных — предназначены для хранения текстовой информации, такой как имена людей, фамилии, названия городов и любая подобная текстовая информация.
Обычно используют CHAR
или VARCHAR
:
CHAR(n)
— строка фиксированной длины. Например, CHAR(4)
всегда занимает 4 символа, даже если записано «ab» — оставшиеся два символа будут пробелами.
VARCHAR(n)
— строка переменной длины. Если хранится «ab» в VARCHAR(4)
, реально займёт только два символа.
Когда нужны большие тексты — используют TEXT
, MEDIUMTEXT
, LONGTEXT
. В отличие от VARCHAR
, здесь не указывается максимальная длина при создании таблицы — она ограничивается самим типом данных.
Целочисленные типы данных
В SQL целочисленные типы данных используются для хранения целых чисел. В MySQL их несколько видов (TINYINT, SMALLINT, INT, BIGINT), которые отличаются размером и диапазоном чисел, которые можно хранить. Например, TINYINT — это очень маленькие числа от -128 до 127, а BIGINT — очень большие.
signed и unsigned
Все целые числа в MySQL бывают двух видов — signed и unsigned. Signed — это числа с возможностью быть отрицательными и положительными. Unsigned — только положительные, но диапазон в два раза больше. Например, если ты знаешь, что значение не может быть отрицательным — например, количество товаров на складе — лучше использовать unsigned, чтобы иметь больше доступных значений.
Числа с плавающей точкой
Это числа с дробной частью. Они хранятся приблизительно — с некоторой погрешностью, потому что число хранится в специальном формате. Если точность не критична — например, для температуры или координат — эти числа подходят. FLOAT занимает меньше места, DOUBLE — больше и точнее.
NULL
это специальное значение, которое означает отсутствие данных. Это не то же самое, что 0 или пустая строка. 0 — это число, пустая строка — это текст, а NULL значит, что данных вообще нет. Например, если у пользователя нет телефона, в поле с телефоном можно записать NULL.
ENUM
это тип данных, который может принимать только заранее оговорённые значения. Например, поле “пол” может иметь только ‘male’ или ‘female’. Если попытаться записать другое значение, база выдаст ошибку. Это очень удобно, чтобы не допустить ошибочных данных.
Операторы
представляют собой зарезервированные слова, которые имеют специальное значение и выполняют определенные функции в SQL. Операторы не могут использоваться в качестве имен таблиц, полей или других объектов базы данных.
SELECT
используется для извлечения данных из таблицы. Сразу после него указывают имя нужного столбца. Если нужно взять несколько столбцов — перечисляют их через запятую. А чтобы взять все столбцы сразу, пишут символ *.
FROM
ключевое слово для указания таблицы, из которой извлекаются данные.
DISTINCT
ключевое слово для извлечения только уникальных записей. Указывается непосредственно перед именами полей.
LIMIT
ключевое слово для ограничения количества извлекаемых записей.
OFFSET
ключевое слово для задания начальной точки извлечения. Можно использовать только в паре с ключевым словом LIMIT
. Выражение LIMIT n OFFSET m
можно записать в более коротком виде: LIMIT m, n
.
Записи при использовании ключевого слова OFFSET
индексируются с нуля, поэтому, например, выражение LIMIT 3 OFFSET 2
говорит о том, что должно быть извлечено три записи, начиная с третьей.