Программы для создания субд. Как я создаю базу данных для своих приложений

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

Когда имеется готовая база данных в Delphi, то не нужно затрачивать свое время на изучение и написание программного кода для курсовой или дипломной работе по программированию баз данных. В наличии имеется много реализованных проектов баз данных, позволяющих написать свою работу на хорошую оценку. Большой выбор проектов на субд Access в Delphi 7 позволит выбрать самый подходящий проект для защиты, такие исходники как учет товаров, учет программ и т.д.. Также имеются проекты с базой данных MySQL и InterBase.

Сферы, где применяются базы данных

  • Государственные учебные заведения;
  • Перепись населения. Такая база данных позволяет специальным органам проводить быстрый просчет статистики по населению страны. К примеру, можно выполнить сравнение по количеству жителей в разные года выбранного города. Вести базу сотрудников, которые выполняют обход по закрепленным адресам.
  • Коммерческие организации . К ним относятся муниципальные предприятия (унитарные), производственные кооперативы, хозяйственные общества и хозяйства.
  • Торговые предприятия;
  • Агентства недвижимости;
  • Тур-агентства;
  • и прочие предприятия.
  • MySQL
  • Многие компании создают различные многофункциональные приложения для облегчения управления, разработки и администрирования баз данных.

    Большинство реляционных баз данных, за исключением MS Access, состоят из двух отдельных компонентов: «back-end», где хранятся данные и «front-end» - пользовательский интерфейс для взаимодействия с данными. Этот тип конструкции достаточно умный, так как он распараллеливает двухуровневую модель программирования, которая отделяет слой данных от пользовательского интерфейса и позволяет сконцентрировать рынок ПО непосредственно на улучшении своих продуктов. Эта модель открывает двери для третьих сторон, которые создают свои приложения для взаимодействия с различными базами данных.

    В Интернете каждый может найти много продуктов для разработки и администрирования баз данных MySQL. Мы решили собрать 10 самых популярных инструментов в одной статье, чтобы вы смогли сэкономить свое время.

    1. Workbench

    Первое место, по праву принадлежит инструменту Workbench (разработка компании Sun Systems/Oracle), который может работать на платформах Microsoft Windows, Mac OS X и Linux. Workbench объединяет в себе разработку и администрирование баз данных и является преемником DBDesigner4.

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

    Стоимость - бесплатно.

    Что делает Workbench популярным?

    • возможность представить модель БД в графическом виде, а также редактирование данных в таблице;
    • наличие простого и функционального механизма по созданию связей между полями таблиц, среди которых реализована связь «многие-ко-многим» с возможностью создания таблицы связей;
    • функция Reverse Engineering позволяет восстанавливать структуру таблиц и связей из той, которая была реализована ранее и хранится на сервере БД;
    • наличие редактора SQL-запросов, который дает возможность при отправке на сервер получать ответ в табличном виде и другие возможности.

    2. Navicat

    Второе место занимает Navicat (разработка компании PremiumSoft CyberTech Ltd) - инструмент для разработки и администрирования баз данных, который работает на любом сервере MySQL, начиная с версии 3.21. Для MySQL, Navicat доступен для работы на платформах Microsoft Windows, Mac OS X и Linux.

    Стоимость продукта варьируется от 199 до 379 долл. США.

    Что делает Navicat популярным?

    • наличие визуального конструктора запросов;
    • возможность импорта, экспорта и резервного копирования данных;
    • возможность создавать отчеты;
    • SSH и HTTP туннелинг;
    • миграция и синхронизация данных и структуры;
    • инструмент для планирования задач и другие возможности.

    3. PHPMyAdmin

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

    Стоимость - бесплатно.

    Что делает PHPMyAdmin популярным?

    • возможность управлять СУБД MySQL без непосредственного ввода SQL команд;
    • как панель управления PHPMyAdmin предоставляет возможность администрирования выделенных БД;
    • интенсивное развитие;
    • возможность интегрировать PHPMyAdmin в собственные разработки благодаря лицензии GNU General Public License и другие возможности.

    4. dbForge Studio for MySQL

    dbForge Studio for MySQL - инструмент, представляющий интерес как для пользователей MySQL, так и для разработчиков БД. С его помощью вы сумеете легко автоматизировать рутинную работу и сэкономить время. Сегодня dbForge Studio for MySQL представлен в трех редакциях: Express, Standard и Professional, что позволяет выбрать тот инструмент, который нужен именно вам. Пользоваться dbForge Studio for MySQL можно как коммерческой, так и бесплатной версией.

    Существует как бесплатная, так и платная версии, цена последней составляет 49,95 долл. США (стандартное издание) и 99,99 долл. США (профессиональное издание).

    Что делает dbForge Studio популярным?

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

    5. HeidiSQL

    HeidiSQL - бесплатный инструмент для управления базами данных. Достойная альтернатива PHPMyAdmin, которая позволяет создавать и редактировать таблицы, представления, триггеры, процедура, а также просматривать и редактировать данные. Также HeidiSQL предоставляет возможность экспорта данных как в SQL файл, так и в буфер обмена на других серверах.

    Стоимость - бесплатно.

    Что делает HeidiSQL популярным?

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

    6. SQL Maestro для MySQL

    SQL Maestro для MySQL - инструмент для администрирования, разработки и управления наиболее востребованных СУБД. Удобный графический интерфейс дает возможность выполнять SQL запросы и скрипты, управлять привилегиями пользователей, экспортировать и создавать резервные копии данных.

    В зависимости от выбранной лицензии и варианта использования, стоимость данного инструмента варьируется от 99 до 1949 долл. США.

    Что делает SQL Maestro для MySQL популярным?

    • поддержка версий MySQL сервера с версии 3.23;
    • наличие конструктора баз данных;
    • возможность редактирование, группировки, сортировки и фильтрации данных;
    • визуальный конструктор запросов;
    • SSH и HTTP туннелинг;
    • BLOB-редактор и другие возможности.

    7. EMS SQL Manager для MySQL

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

    Существует платная и бесплатная версии приложения. Последняя имеет ряд функциональных ограничений. Стоимость платной версии варьируется в пределах 95 – 245 долл. США.

    Что делает EMS SQL Manager for MySQLпопулярным?

    • поддержка данных UTF8;
    • простое управление различными объектами MySQL;
    • совместимость со всеми версиями с 3.23 по 6.0 включительно;
    • наличие графических и текстовых инструментов для формирования запросов;
    • SSH и HTTP туннелинг;
    • удобный конструктор отчетов и другие возможности.

    8. SQLyog

    SQLyog - один из наиболее мощных инструментов, который сочетает в себе возможности MySQL Administrator, PHPMyAdmin и некоторые другие инструменты для администрирования и разработки баз данных. SQLyog работает на платформах Microsoft Windows, Windows NT. и Linux с помощью Wine.

    Доступна как бесплатная, так и платная версия SQLyog. Стоимость платной версии - от 99 до 1499 долл. США (варьируется в зависимости от количества пользователей и лицензии, с поддержкой или без нее).

    Что делает SQLyog популярным?

    • удобный конструктор запросов;
    • возможность синхронизации данных;
    • поддержка юникода;
    • SSH и HTTP, HTTPS туннелинг;
    • «умное» автозавершение работы;
    • интеллектуальное дополнение кода и другие возможности.

    9. DBTools Manager

    DBTools Manager - приложение для управления данными, с встроенной поддержкой MySQL, PostgreSQL, MSAccess, MSSQL Server, Oracle и других БД. Поддерживаемые платформы: Windows 2000, XP, Vista, 7.

    DBTools Manager представлен в бесплатном (Standard) и платном варианте (Enterprise). Стоимость составляет 69.90 долл. США за одну лицензию, при покупке нескольких лицензий предусмотрены скидки.

    Подробнее ознакомиться и приобрести DBTools Manager можно здесь

  • Разработка под Android ,
  • SQLite
    • Tutorial
    • Recovery Mode

    Всем привет! Меня зовут Олег и я программист-любитель под Android. Любитель потому что в данный момент я зарабатываю деньги программированием в совсем другом направлении. А это хобби, которому я посвящаю свое свободное время. К сожалению у меня нет знакомых программистов под Android и все свои базовые знания я черпаю либо из книг, либо из интернета. Во всех тех книжках и статьях в интернете, которые я читал, созданию базы данных для приложения отводится крайне мало места и по сути все описание сводится к созданию класса являющегося наследником SQLiteOpenHelper и последующему внедрению SQL кода в Java код. Если не считать, что мы получаем плохо читаемый код (а если в нашем приложении появляется больше 10 таблиц, то вспоминать все эти взаимосвязи между таблицами тот еще ад), то в принципе жить можно конечно, но как-то совершенно не хочется.
    Забыл сказать самое главное, можно сказать что это моя проба пера тут. И так поехали.

    О вечном вопросе: почему?

    Почему в книгах и в статьях, посвященных программированию под Android, не описываются инструменты для проектирования архитектуры базы данных и какие-нибудь паттерны для работы с базами данных на этапе их создания я честно говоря не знаю. Казалось бы добавить всего пару страниц в книгу или написать отдельную статью (как делаю это я сейчас) проще простого - но нет. В этой статье, я кратко пройдусь по инструментам, которые я использую в своей работе и более подробно по коду который отвечает за начальное создание БД, который с моей точки зрения выглядит более читаемым и удобным.


    Если в нашем приложении больше 5 таблиц, то уже было бы не плохо использовать какой-нибудь инструмент для визуального проектирования архитектуры БД. Поскольку для меня это хобби, то и использую я абсолютно бесплатный инструмент под названием Oracle SQL Developer Data Modeler (скачать его можно ).

    Данная программа позволяет визуально рисовать таблицы, и строить взаимосвязи с ними. Многие ошибки проектирования архитектуры БД можно избежать при таком подходе проектирования (это я уже вам говорю как профессиональный программист БД). Выглядит это примерно так:

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

    Данный инструмент является аналогом таких известных продуктов как SQL Naviagator, Toad etc. Но как следует из названия, заточен он под работу с SQLite. Он позволяет визуально создать БД и получить DDL код создаваемых таблиц. Кстати, он также позволяет создавать представления (View), которые вы тоже при желании можете использовать в своем приложении. Не знаю насколько правильный подход использования представлений в программах для Android, но в одном из своих приложений я использовал их.

    Собственно говоря я больше не каких сторонних инструментов не использую, и дальше начинается магия с Android Studio. Как я уже писал выше, если начать внедрять SQL код в Java код, то на выходе мы получим плохочитаемый, а значит и плохо расширяемый код. Поэтому я выношу все SQL инструкции во внешние файлы, которые у меня находятся в директории assets . В Android Studio выглядит это примерно так:


    О директориях db и data

    Внутри директории assets я создал две директории db_01 и data_01 . Цифры в названиях директорий соответствуют номеру версии моей БД с которой я работаю. В директории db у меня хранятся сами SQL скрипты создания таблиц. А в директории data хранятся данные необходимые для начального заполнения таблиц.


    Теперь давайте посмотрим на код внутри моего DBHelper который я использую в своих проектах. Сначала переменные класса и конструктор (тут без каких либо неожиданностей):

    Private static final String TAG = "RoadMap4.DBHelper"; String mDb = "db_"; String mData = "data_"; Context mContext; int mVersion; public DBHelper(Context context, String name, int version) { super(context, name, null, version); mContext = context; mVersion = version; }
    Теперь метод onCreate и тут становится уже интереснее:

    @Override public void onCreate(SQLiteDatabase db) { ArrayList tables = getSQLTables(); for (String table: tables){ db.execSQL(table); } ArrayList> dataSQL = getSQLDatas(); for (HashMap hm: dataSQL){ for (String table: hm.keySet()){ Log.d(TAG, "insert into " + table + " " + hm.get(table)); long rowId = db.insert(table, null, hm.get(table)); } } }
    Логически он разделен на два цикла, в первом цикле я получаю список SQL - инструкций для создания БД и затем выполняю их, во втором цикле я уже заполняю созданные ранее таблицы начальными данными. И так, шаг первый:

    Private ArrayList getSQLTables() { ArrayList tables = new ArrayList<>(); ArrayList files = new ArrayList<>(); AssetManager assetManager = mContext.getAssets(); String dir = mDb + mVersion; try { String listFiles = assetManager.list(dir); for (String file: listFiles){ files.add(file); } Collections.sort(files, new QueryFilesComparator()); BufferedReader bufferedReader; String query; String line; for (String file: files){ Log.d(TAG, "file db is " + file); bufferedReader = new BufferedReader(new InputStreamReader(assetManager.open(dir + "/" + file))); query = ""; while ((line = bufferedReader.readLine()) != null){ query = query + line; } bufferedReader.close(); tables.add(query); } } catch (IOException e) { e.printStackTrace(); } return tables; }
    Тут все достаточно просто, мы просто читаем содержимое файлов, и конкатенируем содержимое каждого файла в элемент массива. Обратите внимание, что я произвожу сортировку списка файлов, так как таблицы могут иметь внешние ключи, а значит таблицы должны создаваться в определенном порядке. Я использую нумерацию в название файлов, и с помощью нею и произвожу сортировку.

    Private class QueryFilesComparator implements Comparator{ @Override public int compare(String file1, String file2) { Integer f2 = Integer.parseInt(file1.substring(0, 2)); Integer f1 = Integer.parseInt(file2.substring(0, 2)); return f2.compareTo(f1); } }
    С заполнением таблиц все веселей. Таблицы у меня заполняются не только жестко заданными значениями, но также значениями из ресурсов и UUID ключами (я надеюсь когда-нибудь прийти к сетевой версии своей программы, что бы мои пользователи могли работать с общими данными). Сама структура файлов с начальными данными выглядит так:


    Несмотря на то, что файлы у меня имеют расширение sql, внутри не sql код а вот такая штука:

    Prioritys
    pri_id:UUID:UUID

    pri_name:string:normal
    pri_color:color:colorGreen
    pri_default:int:1
    prioritys
    pri_id:UUID:UUID
    pri_object:string:object_task
    pri_name:string:hold
    pri_color:color:colorBlue
    pri_default:int:0
    prioritys
    pri_id:UUID:UUID
    pri_object:string:object_task
    pri_name:string:important
    pri_color:color:colorRed
    pri_default:int:0
    prioritys
    pri_id:UUID:UUID

    pri_name:string:normal
    pri_color:color:colorGreen
    pri_default:int:1
    prioritys
    pri_id:UUID:UUID
    pri_object:string:object_project
    pri_name:string:hold
    pri_color:color:colorBlue
    pri_default:int:0
    prioritys
    pri_id:UUID:UUID
    pri_object:string:object_project
    pri_name:string:important
    pri_color:color:colorRed
    pri_default:int:0

    Структура файла такая: я выполняю вызов функции split(":") применительно к строчке и если получаю что ее размер равен 1 то значит это название таблицы, куда надо записать данные. Иначе это сами данные. Первое поле это название поля в таблице. Второе поле тип, по которому я определяю что мне надо в это самое поле записать. Если это UUID - это значит мне надо сгенерировать уникальное значение UUID. Если string значит мне надо из ресурсов вытащить строковое значение. Если color, то опять-таки, из ресурсов надо вытащить код цвета. Если int или text, то я просто преобразую данное значение в int или String без каких либо телодвижений. Сам код выглядит вот так:

    Private ArrayList> getSQLDatas() { ArrayList> data = new ArrayList<>(); ArrayList files = new ArrayList<>(); AssetManager assetManager = mContext.getAssets(); String dir = mData + mVersion; try { String listFiles = assetManager.list(dir); for (String file: listFiles){ files.add(file); } Collections.sort(files, new QueryFilesComparator()); BufferedReader bufferedReader; String line; int separator = 0; ContentValues cv = null; String fields; String nameTable = null; String packageName = mContext.getPackageName(); boolean flag = false; HashMap hm; for (String file: files){ Log.d(TAG, "file db is " + file); bufferedReader = new BufferedReader(new InputStreamReader(assetManager.open(dir + "/" + file))); while ((line = bufferedReader.readLine()) != null){ fields = line.trim().split(":"); if (fields.length == 1){ if (flag == true){ hm = new HashMap<>(); hm.put(nameTable, cv); data.add(hm); } // наименование таблицы nameTable = line.trim(); cv = new ContentValues(); continue; } else { if (fields.equals("UUID")){ cv.put(fields, UUID.randomUUID().toString()); } else if (fields.equals("color") || fields.equals("string")){ int resId = mContext.getResources().getIdentifier(fields, fields, packageName); Log.d(TAG, fields + " " + resId); switch (fields){ case "color": cv.put(fields, resId); break; case "string": cv.put(fields, mContext.getString(resId)); break; default: break; } } else if (fields.equals("text")){ cv.put(fields, fields); } else if (fields.equals("int")){ cv.put(fields, Integer.parseInt(fields)); } } flag = true; } bufferedReader.close(); } } catch (IOException e) { e.printStackTrace(); } return data; }

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

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

    О SQL

    SQL - это язык программирования, который применяется для создания баз данных. Если его установить на компьютер и начать создавать базу данных, то будет не совсем удобно. Связано это с тем, что сам по себе SQL не имеет никакой графической оболочки, а запросы к базе данных нужно отправлять вообще через командную строку. По этой причине появились различного рода программы, которые упрощают разработку баз данных. Однако обучиться азам этого языка все же стоит. Вдруг нужно какой-то запрос сделать, а программа работает некорректно.

    Microsoft Access

    Эта программа для создания баз данных точно знакома многим. Ведь она идет в пакете программ Microsoft Office. Эта программа является одной из самых легких в освоении, ведь знания языка программирования SQL там практически не нужны. Можно лишь обозначить, какой запрос сделать, а программа сама составит SQL-запрос.

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

    PhpMyAdmin

    Access, конечно, программа хорошая, но если нужна база данных для сайта, она не справится. Тогда на помощь приходит PhpMyAdmin. Это очень полезная программа для создания баз данных. Установка на компьютер занимает некоторое время, да и при инсталляции легко что-то сделать не так, и не будет работать. Поэтому при установке этой программы для создания баз данных нужно четко следовать инструкции. Но плюсом еще PhpMyAdmin является то, что к ней можно получить доступ и через интернет в виде сайта! Например, у вас есть сайт, который работает на WordPress. У него будет база данных. И если у вас сайт на каком-нибудь хорошем хостинге, то, вероятнее всего, работа с базами данных будет осуществляться через PhpMyAdmin, и к нему можно будет получить доступ через панель управления хостинга.

    Еще одна программа для создания баз данных. Она бесплатная, но есть и платная версия с улучшенными возможностями. В этой программе легко создавать связи с таблицами, да и вообще, просто удобно работать. Также плюсом является то, что можно показать БД в графическом виде. Большинство людей при работе с базами данных отдают предпочтение именно этой программе. В принципе, и PhpMyAdmin по возможностям не уступает, но все-таки она больше предназначена для работы с БД сайтов.

    В этой статье были рассмотрены основные программы для создания баз данных. На самом деле их огромное множество, поэтому каждый выбирает инструмент под себя, но если же вы только осваиваетесь и желаете изучить эту область, то рекомендуется работать с MySQL WorkBench. После того как вы изучите основы SQL, для вас уже не будет существенной разницы, где работать, ведь запросы везде одинаковые. Удобно и то, что, создав базу данных в одной программе, можно ее открыть через другой софт, который тоже предназначен для работы с БД. При создании софта с базой данных не обойтись без этих знаний. Более того, освоив SQL, можно даже создать свое программное обеспечение для разработки и редактирования баз данных.

    DbVisualizer 9.1.5

    DbVisualizer is a database tool for developers and database administrators, helping you with both the development and maintenance of your databases.

    Firebird 2.5.2

    Firebird is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, and a variety of Unix platforms. Firebird offers excellent concurrency, high performance, and powerful language support for stored procedures and triggers.

    Reitec.PMM 1.2.1.0

    Reitec.PMM is a free tool for the management of test equipment as part of quality assurance.

    WowBase 1.1

    Create your own database quickly and easily.

    MyContacts 3.1

    Managing contacts, birthdays and dates/tasks.

    LibreOffice Rus для Windows 3.6.4

    Офисный пакет LibreOffice - лучшая бесплатная альтернатива для Microsoft Office 2003, 2007 и даже 2010.

    PhpMyAdmin 3.5.3

    phpMyAdmin Rus - программа для управления базой данных MySQL, скачать и использовать которую можно бесплатно - как дома, так и в организации. Русская версия.

    Oracle MySQL для Linux, UNIX, *BSD и других *nix 5.5.28 Final / 6.0.6 Beta

    Oracle MySQL - Известный сервер базы данных. Знаменит безупречной стабильностью работы и скоростью.

    Oracle MySQL для Windows 5.5.28 Final / 6.0.6 Beta

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

    Публикации по теме