Что такое база данных?
База данных – совокупность связанных данных, организованных по определенным правилам.
Эти правила предусматривают общие принципы описания, манипулирования и хранения данными.
Какие базы данных бывают?
Embedded – Встроенные БД, которые располагаются в памяти самого устройства. Приложения использующие такие данные взаимодействуют напрямую с ними.
Server – Серверные БД, функционируют как серверное приложение, требующее от сторонних программ отдельного подключения к ним.
СУБД – это комплекс языковых и программных средств, предназначенный для создания, ведения и совместного использования баз данных многими пользователями. Обычно СУБД, как и БД различают по используемой модели данных. Так, СУБД, основанные на использовании реляционной модели данных, называют реляционными СУБД.
Примеры популярных СУБД: MSSQL, MySQL, PostgreSQL, SQLite.
MSSQL, MySQL, PostgreSQL являются серверными СУБД. Главное их отличие в синтаксисе. К примеру, в MSSQL можно использовать напрямую транзакции. По аналогии с языком программирования, мы можем объявить переменную, затем используя её пробежаться, к примеру в цикле. Что касается MySQL то там тоже есть Transact SQL но мы напрямую её использовать не можем, только в хранимых процедурах и функциях.
Что касается SQLite – это встроенная СУБД, которая как правило используется непосредственно на устройствах.
Реляционная база данных – это совокупность связанных данных, хранящаяся в двухмерных таблицах.
Таблицы хранят непосредственно данные и состоят из полей и записей. Основные свойства таблицы:
SQL – информационно-логический язык, предназначенный для описания, изменения и извлечения данных, хранимых в реляционных БД.
Основной набор операций SQL
Основные операции с данными принято разделять на DDL и DML.
В MySQL есть полезные инструменты для работы с таблицами базы данных. Один из них – MySQL Workbench. MySQL Workbench — инструмент позволяющий подключаться к серверу MySQL, а так же визуально создавать и работать с данными.
Подключение к БД
Перед тем как работать с данными в базе, первым делом необходимо подключиться к самому серверу MySQL. Для того в приложении MySQL Workbench установим новое соединение:
В главном меню выбираем: Database -> Connect to Database
Далее указываем данные для подключения к серверу, включая логин и пароль.
Отключение защиты от изменения и удаления данных
Т.к. приложение позволяет работать напрямую с данными, программа по умолчанию имеет защиту от утери данных. Для этого стоит защита на операции delete, drop и update. Наш сервер тестовый, поэтому защиту эту для наших учебных целей мы можем отключить.
Переходим в меню: Edit -> Preferences ->SQL Editor
Снимаем галочку с пункта «Safe Updates (rejects UPDATEs and DELETEs with no restrictions».
Перед началом работы с данными в базе, необходимо выбрать базу, с которой мы будем взаимодействовать. Выполнять команды мы будем в командной строке приложения.
use sakila;
Где sakila – это имя базы с таблицами, которой мы хотим работать.
Далее простая выборка всех записей из таблицы sakila;
SELECT * FROM city;
Пример создания базы данных и таблицы
// Удаляет базу если она существует
DROP database CarsShop;
// Создаем базу данных
CREATE DATABASE CarsShop;
// Выбираем базу для работы с ней
USE CarsShop;
// Создаём таблицу в базе
CREATE TABLE clients
(
id INT AUTO_INCREMENT NOT NULL,
name VARCHAR(30),
age TINYYNT,
phone VARCHAR(15),
PRIMARY KEY (id)
)
Что касается регистра имени базы и таблицы, то для работы с ними не имеет значения.
Нормализация таблиц – это формальный аппарат ограничений на формирование таблиц, который позволяет устранить дублирование данных, обеспечивает непротиворечивость хранимых в базе данных, уменьшает трудозатраты на ведение базы данных (ввод и корректировку данных).
Для нормализации таблиц БД используют ограничения:
Первая нормальная форма (1NF) – Первая нормальная форма (1НФ) – это базовый принцип нормализации данных, который требует, чтобы таблица в базе данных имела атомарные значения (одно значение в ячейке), каждый столбец хранил данные одного типа и не было повторяющихся групп данных или дублирующих строк. Это также подразумевает наличие первичного ключа, уникально идентифицирующего каждую запись, и отсутствие массивов или списков в ячейках.
Вторая нормальная форма (2NF) – требует предварительного приведения исходной формы таблицы к первой НФ, а также каждый не ключевой столбец таблицы находящийся в 1НФ, должен зависеть от всего ключа.
Третья нормальная форма (3NF) — это способ организации таблиц в базе данных, который гарантирует, что таблица находится в первой нормальной форме (1НФ) и каждый не ключевой атрибут полностью функционально зависит от всего составного первичного ключа. Это означает, что если первичный ключ состоит из нескольких столбцов, то каждый не ключевой столбец должен зависеть от всех этих столбцов в совокупности, а не от их части. Цель 2НФ — устранить частичные зависимости, уменьшить избыточность данных и предотвратить аномалии при обновлении, вставке и удалении данных.