Этапы разработки базы данных

Разновидности СУБД

Пользователь может выбрать одну из нескольких СУБД для дальнейшей работы. Каждый вид оных имеет собственные сильные и слабые стороны.

Сегодня Java предлагает следующую классификацию систем управления БД по методу организации хранения информации:

  1. Иерархические. Структура представляет собой своеобразное дерево. Пример – файловые системы, начинающиеся с корневой папки дисков.
  2. Сетевые. Это – откорректированные иерархические. Каждый узел может обладать несколькими «родителями».
  3. Объектно-ориентированные. Здесь все материалы электронного типа организованы как классы или объекты с атрибутами и принципами взаимодействия по законам ООП.
  4. Реляционные. Представлены таблицами. Они могут иметь связь между собой. Информация здесь имеет структурированный характер.

В Java JDBC лучше всего останавливаться на последнем варианте. Реляционные «хранилища электронных материалов» на практике распространены больше остальных. На их основе составление приложений с JDBC не доставит существенных хлопот.

Языки запросов

Для того, чтобы похвастаться хорошими результатами работы с БД в программировании, важно не только знать основы работы с ними, но и наиболее популярные «хранилища информации». Каждый вариант имеет собственные нюансы и особенности, отражающиеся при коддинге

Сегодня при написании программ чаще всего используются такие базы, как:

  1. MySQL – СУБД Oracle. Является бесплатной. Работает как на Linux, так в Windows. Имеет высокую производительность, если использовать при узком круге поставленных задач. Выступает в качестве функционально простого варианта. MySQL применяется на практике в узком спектре задач. Встречается преимущественно в мелких и средних разработках.
  2. Oracle – первый настоящий вариант СУБД. Написан на Ассемблере. Изначально имел поддержку исключительно базовых свойств SQL. Имеет отличную сетевую производительность, а также автоматическую оптимизацию. Обладает поддержкой подключаемых «сторонних» БД и живую миграцию. Хорошо производит сжатие электронных материалов. Используется в различных операционных системах.
  3. SQL – вариант, увидевший свет в 90-х. Разработчиком выступила компания Microsoft. С самого момента возникновения соответствующий вариант служит для работы с БД в Windows и продуктах Майкрософт. Имеет облачные технологии, резервное копирование, гибридные решения облачного типа. Отлично подходит для бизнес-аналитики.

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

Использование построенной базы данных

Сюда можно отнести

  • Сортировку, фильтрацию и поиск записей в таблицах;
  • Отбор информации из таблиц по установленным критериям отбора;
  • Осуществление обработки данных, к примеру, удаление, вставка, изменение или выполнение расчётов;
  • Формирование отчётов.

Во время эксплуатации базы данных информация постоянно обновляется, могут меняться связи между сущностями.

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

В качестве концептуального уровня представления данных рассматривается модель «сущность-связь».

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

Во внутреннем или физическом уровне представления данных определяются характеристики хранения данных и методов доступа к ним.

Например, в любой школе России применяется база данных «Электронный журнал». На рисунке проиллюстрирована схема уровней представления информации для такой базы данных.

Выбери ответ

Классы

  • 11 класс
  • 10 класс
  • 9 класс
  • 8 класс
  • 7 класс
  • 6 класс
  • 5 класс
  • 4 класс
  • 3 класс
  • 2 класс
  • 1 класс

Предметы

  • Русский
  • Общество
  • История
  • Математика
  • Физика
  • Литература
  • Английский
  • Информатика
  • Химия
  • Биология
  • География

Онлайн-школы

  • Умскул
  • Учи Дома
  • Фоксфорд
  • Тетрика
  • Skypro

Репетиторы по предметам

  • Русский
  • Общество
  • История
  • Математика
  • Физика
  • Литература
  • Английский
  • Информатика
  • Химия
  • Биология

Куда поступать?

  • 10 лучших московских ВУЗов, о которых надо знать
  • Рейтинг самых эффективных факультетов российских ВУЗов
  • 10 критериев выбора ВУЗа и факультета
  • Скидки на оплату обучения в ВУЗах Москвы
  • Рейтинг самых востребованных ВУЗов для экономистов
  • Сравнение ведущих технических ВУЗов России

Коротко об MySQL и phpMyAdmin

MySQL — это свободная система управления базами данных, которая создаётся путём построения таблиц с определёнными свойствами. При помощи языков программирования (таких, как PHP, Perl, Basic и другие) возможно сохранение определённых данных в MySQL, а также их вывод на страницу в виде HTML. Преимуществами баз данных MySQL являются: многопоточность. Поддержка нескольких одновременных запросов, гибкая система привилегий и паролей, легкость управления таблицей, включая добавление и удаление ключей и полей м многое другое.

phpMyAdmin — веб-приложение с открытым исходным кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования баз данных MySQL. В данный момент phpMyAdmin позволяет: создавать и удалять базы данных, создавать, копировать, удалять, переименовывать и изменять таблицы, выполнять SQL-запросы, осуществлять поиск в базе данных или в её разделах и многое другое. В целом управлять базами данных через phpMyAdmin не составит большого труда и умения.

Поисковая СУБД

Этот тип СУБД используется для осуществления полнотекстового поиска. А также поиска по различным данным, например из других БД, электронной почты, RSS-канала, текста, JSON, XML, CSV и даже PDF и документам MS Office.

Поисковая СУБД имеет собственные оптимизированные подходы к индексированию данных, в том числе использование так называемых инвертированных и фасетных индексов для поиска почти в реальном времени.

Различные СУБД этого типа применяют разные языки запросов.

Самые известные поисковые СУБД:

  • Apache Solr;
  • Elasticsearch;
  • Splunk.

Когда следует выбирать поисковую СУБД?

Идеальные примеры — подходящие для быстрого полнотекстового поиска в различных источниках данных системы сбора и поиска по журналам структурированных, полуструктурированных и неструктурированных данных.

Когда не следует выбирать поисковую СУБД?

Файловые системы

Представим себе, что имеется некоторый носитель информации определенной емкости, устройство для чтения-записи на этот носитель в режиме произвольного доступа и прикладные программы, которые используют конкретный носитель для ввода-вывода информации во внешнюю память. В этом случае, каждая прикладная программа должна знать где и в каком месте хранятся необходимые данные. Так как прикладных программ больше, чем носителей информации, то несколько прикладных программ могут использовать один накопитель. Что произойдет, если одной из прикладных программ потребуется дозаписать свои данные на диск? Может произойти наложение: ситуация в которой данные одной программы будут перезаписаны другой программой. Важным шагом в развитии информационных систем явился переход к использованию централизованных систем управления файлами. С точки зрения прикладной программы, файл – именованная область внешней памяти, в которую можно записывать данные, и из которой можно их считывать. Для того чтобы была возможность считать информацию из какой либо области внешней памяти необходимо знать имя этого сектора(имя файла), размер самой области и его физическое расположение. Сама система управления файлами выполняет следующие функции:

  • распределение внешней памяти;
  • отображение имеет файлов в соответствующие адреса во внеш-ней памяти;
  • обеспечение доступа к данным.

Рассмотрение особенностей реализации отдельных систем управления файлами выходит за рамки данной темы. На данном этапе достаточно знать, что прикладные программы видят файл как линейную последовательность записей и могут выполнить над ним ряд операций. Основные операции сфайлами в СУФ:

  • создать файл (определенного типа и размера)
  • открыть ранее созданный файл
  • прочитать из файла определенную запись
  • изменить запись
  • добавить запись в конец файла

Подключение к СУБД

Если мы планируем работать в командной строке, заходим в среду управления MySQL.

а) В Linux вводим команду:

mysql -uroot -p

* где root — пользователь, под которым мы будем подключаться к оболочке; ключ -p потребует ввода пароля.

б) В Windows запускаем командную строку — в меню пуск или найдя ее в поиске. Переходим в каталог, с установленной СУБД и запускаем одноименную команду mysql, например:

cd «%ProgramFiles%\MySQL\MySQL Server 5.5\bin\»

* в данном примере предполагается, что у нас установлена MySQL версии 5.5. 

mysql -u root -p

* здесь, как и в Linux, идет подключение к mysql/mariadb под учетной записью root с запросом пароля.

Бинарные связи

Бинарные связи – это связи, в которые вступают ровно две сущности. Важнейшее свойство связи – кардинальное число. 

Типы бинарных связей:

  • Связь типа «один-к-одному» означает, что один экземпляр первой сущности связан не более чем с одним экземпляром второй сущности и, наоборот, один экземпляр второй сущности связан не более чем с одним экземпляром первой сущности.
  • Связь типа «один-ко-многим» означает, что один экземпляр первой сущности связан с несколькими экземплярами второй сущности, но при этом один экземпляр второй сущности связан не более чем с один экземпляром первой сущности.
  • Связь типа «много-ко-многим» означает, что каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, и каждый экземпляр второй сущности может быть связан с несколькими экземплярами первой сущности. Эта связь должна быть заменена двумя связями типа один-ко-многим путем создания промежуточной сущности.

А что там внутри. Пример нормализации

Разберём устройство реляционной БД подробнее на примере. Позже это поможет нам понимать и сравнивать базы разных типов.

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

Каждая строка этой таблицы содержит данные о звонке клиента по его проблеме и ответ оператора, а также дату обращения.

Телефон у компании многоканальный. Поэтому одному и тому же оператору могут звонить разные клиенты, а один и тот же клиент может попадать на разных операторов с разными вопросами.

Запускаем MySQL

Для начала мы создадим саму базу данных с названием «Teatr» с помощью команды:

Create database Teatr;

После этого подключаем, созданную базу данных:

Use Teatr;

Устанавливаем кодировку:

Set names cp866;

Создаем первую таблицу Aktery. Здесь c помощью команды engine MyIsam Character Set CP1251 мы указываем кодировку в таблице. Varchar – это текстовый тип данных, где в скобках указывается, из скольких символов будет состоять значение.

После того, как мы создали таблицу, ее необходимо заполнить. Делается это с помощью команды insert into. После него указывается, в какую таблицу идет заполнение. В нашем случае это Aktery. В скобках перечисляются названия столбцов (ID, FIO, Zvanie, Stazh). После команды values в скобках соответственно перечисляются данные для заполнения.

Чтобы просмотреть заполненную таблицу, необходимо ввести команду:

Select * from Aktery;

Где * означает, что выводятся все столбцы, from – из таблицы.

Вместо * можно указывать конкретные столбцы, которые нужно вывести. Выведем значения столбца FIO из таблицы Aktery:

Select FIO from Aktery;

Аналогичным образом создадим таблицу Spectakli. Decimal – числовой тип данных с плавающей запятой.

Заполняем таблицу Spectakli.

Чтобы просмотреть таблицу Spectakli введем:

Select * from Spectakli;

Мы уже создали первые две базовые таблицы. На данном этапе мы включим в нашу базу данных еще одну таблицу, которая будет связывать две предыдущие . Здесь всё аналогично созданию предыдущих таблиц, помимо последних строчек кода:

Foreign Key (Akter_ID) references Aktery(ID) on delete restrict on Update Cascade означает, что значения столбца из таблицы Zanjatost связана со значением идентификатора из таблицы Aktery. Это означает, если мы изменим значение в таблице Aktery, то оно автоматически поменяется и в связующей таблице Zanjatiost.

Заполняем таблицу Zanjatost:

Просматриваем содержимое созданной ранее таблицы:

Select * from zanjatost;

В базе данных MySQL можно производить различные операции. В данной статье мы рассмотрим самые основные из них.

Выведем все значения таблицы Spectakli, где год постановки равняется 2016:

Select * from Spectakli Where God_postanovki=2016;

Также можно вывести все значения из таблицы Spectakli, где сумма бюджета превышает указанного значения, в нашем случае это 250000 :

Select * from spectakli Where bjudzhet > 250000;

Как и в любом другом языке программирования, в MySQL существуют логические операторы сравнения. Рассмотрим запрос с использованием AND. Выведем содержимое таблицы спектакли, где бюджет больше 250000 и год постановки позже 2010 года:

Select * from spectakli Where bjudzhet > 250000 and god_postanovki > 2010;

Выведем сумму собранного бюджета из таблицы спектакли:

Select sum(Bjudzhet) From spectakli;

Рассмотрим более сложный запрос. Выведем Ф.И.О. актеров из таблицы Aktery и стоимость годового контракта из таблицы Zanjatost, где идентификатор актера из таблицы Aktery равен значению Akter_ID из таблицы Zanjatost:

Select Aktery.FIO, Zanjatost.Stoimost_kontrakta From Aktery, Zanjatost Where Aktery.ID=Zanjatost.Akter_ID;

Выгрузить базу данных из MySQL можно с помощью дополнительной программы MySQL Administrator. В ней необходимо указать значение username и password, которые вы вводили при установке MySQL сервера.

Переносим созданную базу данных из графы Schemala в Backup Content.

После этого нажимаем на Execude Backup Now и выбираем сохранить файл.

Как использовать MySQL Workbench

В этом разделе мы рассмотрим использование MySQL Workbench. Первым шагом будет установка соединения, для этого выполните следующие действия.

  1. Откройте MySQL Workbench. Вы увидите соединение под MySQL Connections. Щелкните это соединение и введите пароль, который вы установили для своего пользователя root.

Давайте посмотрим на это окно, прежде чем перейти к другим вещам. Как вы можете видеть на изображении ниже, у нас есть следующие основные разделы:

  • Редактор SQL: здесь вы создаете и редактируете запросы.
  • Панель справки: здесь вы можете просмотреть синтаксис и описание конкретного ключевого слова.
  • Панель навигации: позволяет управлять активными соединениями MySQL, а также показывает схемы соединения на этом сервере.
  • Окно вывода истории: здесь отображается сводка выполненных запросов в следующих формах: вывод действия, вывод текста или вывод истории.

Теперь, когда ваша MySQL Workbench запущена и работает, давайте приступим к созданию баз данных и извлечению данных. Предположим, у вас есть пекарня, и вы хотите отслеживать разные вещи, например, сколько вы продаете за день или ваш инвентарь.

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

Создание базы данных

Давайте начнем с создания нашей базы данных с помощью команды: create database bakery. Выполните команду с помощью кнопки «Выполнить». При успешном выполнении команды вы должны увидеть зеленую галочку рядом с элементом действия.

Вы можете просмотреть все свои базы данных на панели «Навигатор». Следуй этим шагам:

  1. Щелкните » Схемы«в нижней части навигатора. Вы можете просмотреть все свои базы данных здесь.
  2. Если вы не видите здесь свою базу данных, нажмите кнопку «Обновить».

Теперь, когда наша база данных готова, давайте добавим наши таблицы.

Языки манипулирования данными

Основное средство для общения с реляционными базами данных — язык структурированных запросов SQL.

Это декларативный язык. То есть инструкции в нём не идут одна за другой (не как в императивных языках). Каждый оператор SQL описывает только необходимое действие, а СУБД сама принимает решение, как его выполнить.

Например, чтобы выбрать все данные из таблицы Messages за 10.11.2020, делается запрос:

SELECT * FROM messages WHERE date = ‘10.11.2020’

Язык структурированных запросов делится на несколько частей (группы операторов) и позволяет:

  • определять данные (DDL),
  • манипулировать ими (DML),
  • контролировать доступ к данным (DCL)
  • и управлять транзакциями (TCL).

В SQL изначально нет средств для создания печатных отчётов, экранных форм и других инструментов для разработки программ. Хотя SQL сам по себе не является полноценным (Тьюринг-полным) языком программирования, но его стандарт позволяет создавать процедурные расширения. Они доводят его функциональность до полноценного языка программирования.

При этом синтаксис SQL в разных СУБД может различаться. Кое-где даже используются его отдельные диалекты, например:

  • T-SQL — для работы с Microsoft SQL Server;
  • на PL / SQL пишут хранимые процедуры и функции в Oracle;
  • на PL / pgSQL — в PostgreSQL.

Реляционная СУБД

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

Реляционная СУБД подойдет для создания системы, предназначенной для хранения значительного числа сущностей — таблиц — с различными типами отношений между ними (один к одному, один ко многим, многие ко многим).

Самые известные реляционные СУБД:

  • Oracle;
  • Microsoft SQL;
  • PostgreSQL;
  • MySQL;
  • IBM DB2.

Когда следует выбирать реляционную базу данных?

Во-первых (1), при высокой нормализации данных. А во-вторых (2), при обработке большого количества коротких транзакций, среди которых немалый процент транзакций с вставкой.

Когда не следует выбирать реляционную СУБД?

Для хранения 1) неструктурированных данных и 2) очень простых структур «ключ — значение». Для первых лучше подойдет документная СУБД. А для вторых — специализированная СУБД типа «ключ — значение».

Пример с соединением таблиц

Следующий MySQL пример AND показывает, как условие AND может использоваться для соединения нескольких таблиц в операторе SELECT. Например:

MySQL

SELECT orders.order_id, suppliers.supplier_name
FROM suppliers, orders
WHERE suppliers.supplier_id = orders.supplier_id
AND suppliers.supplier_name = ‘Apple’;

1
2
3
4

SELECTorders.order_id,suppliers.supplier_name

FROMsuppliers,orders

WHEREsuppliers.supplier_id=orders.supplier_id

ANDsuppliers.supplier_name=’Apple’;

Хотя приведенный запрос работает отлично, можно его записать следующим образом, используя соединение INNER JOIN. Например:

MySQL

SELECT orders.order_id, suppliers.supplier_name
FROM suppliers
INNER JOIN orders
ON suppliers.supplier_id = orders.supplier_id
WHERE suppliers.supplier_name = ‘Apple’;

1
2
3
4
5

SELECTorders.order_id,suppliers.supplier_name

FROMsuppliers

INNER JOINorders

ONsuppliers.supplier_id=orders.supplier_id

WHEREsuppliers.supplier_name=’Apple’;

Этот пример MySQL условия AND вернет все строки, где supplier_name — это ‘Apple’. И таблицы suppliers и orders объединенных на основании supplier_id. Вы заметите, что все поля имеют префикс имен таблиц (например: orders.order_id). Это необходимо для устранения какой-либо двусмысленности в отношении того, к какой области относятся ссылки; поскольку одно и то же имя поля может существовать как в таблице suppliers, так и в таблице orders.

В этом случае в результирующем наборе будут отображаться только поля order_id и supplier_name (как указано в первой части оператора SELECT).

InnoDB

Данный тип таблиц обеспечивает высокую производительность и устойчивое хранение данных в таблицах объемом вплоть до 1 Тбайт и нагрузкой на 
сервер до 800 вставок/обновлений в секунду.Особенности таблиц типа InnoDB:

  • Таблицы не создаются в базах данных, и для каждой из таблиц не выделяется отдельный файл данных. Исключение – файл определения с расширением frm, который создается по умолчанию. Все таблицы хранятся в едином табличном пространстве, поэтому имена таблиц должны быть уникальными.
  • Хранение данных в едином табличном пространстве позволяет снять ограничение на объем таблиц, так как файл с таблицами может быть разбит не несколько частей и распределен по нескольким дискам или даже хостам.
  • Данный тип таблиц поддерживает автоматическое восстановление после сбоев.
  • Обеспечивается поддержка транзакций.
  • Единственный тип таблиц, поддерживающий внешние ключи и каскадное удаление.
  • Выполняется блокировка на уровне отдельных записей.
  • Расширенная поддержка кодировок.
  • Рушатся при достижении объема в несколько гигабайт, однако заметно уступают в скорости и не поддерживают полнотекстовый поиск.

MyISAM

MyISAM – является родным типом таблиц для базы СУБД MySQL. База данных в MySQL организуется как каталог. Таблицы базы данных организуются как файлы данного каталога. Каждая MyISAM таблица хранится на диске в трех файлах, имена которых совпадают с названием таблицы, а расширение может принимать одно из следующих значений:

  • Frm – содержит структуру таблицы, в файле данного типа хранится информация об именах и типах столбцов и индексов.
  • Myd – файл, в котором содержатся данные таблицы.
  • Myi – файл, котором содержатся индексы таблицы.

Особенности типа таблиц MyISAM:

  • Данные хранятся в кросс-платформенном формате, это позволяет переносить базы данных с сервера непосредственным копированием файлов, минуя промежуточные форматы.
  • Максимальное число индексов в таблице составляет 64. Каждый индекс может состоять максимум из 16 столбцов.
  • Для каждого из текстовых столбцов может быть назначена своя кодировка.
  • Допускается индексирования текстовых столбцов, в том числе и переменной длины.
  • Поддерживается полнотекстовый поиск.
  • Каждая таблица имеет специальный флаг, указывающий правильность закрытия таблиц. Если сервер останавливается аварийно, то при его повторном старте незакрытые флаги сигнализируют о возможных сбойных таблицах, сервер автоматически проверяет их и пытается восстановить.
Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: