Додайте свій проект безкоштовно і почніть отримувати пропозиції від фрілансерів-виконавців вже через хвилини після публікації!
300 ₽

перевод текста с русского на английский

проект завершено


Black Base ©

Система управления базами данных.

Программа создавалась в период когда программирование уже было освоено, а работы еще не было. Как всякий уважающий себя начинающий программист, я мечтал написать собственный Windows. Но на тот момент решил, что начинать надо с малого, и для начала начал писать собственную СУБД. Очнулся я через 4 года. Результатом стала программа в том виде, в каком она сейчас Вам представлена.

В чём фишка данной СУБД?

Приведем пример. Если мы имеем традиционный файл следующего вида:

|-------x---------|-----------------------------------------------y-------------|

И нам необходимо вставить между отрезкамиx и y объем данных равный n мы сначала физически переписываем весь отрезок y, а затем вписываем на это место данныеn. Таким образом нами физически было записано данных на суммуn+y, причем y данные мы еще и считали, перед тем как записать, поэтому мы обработали (считали и записали) объем данных равный n+y+y.

|-------x---------|-------n---|-----------------------------------------------y-------------|

Моя программа организует файл таким образом, что может в любое его место вписать или удалить любой объем данных без перезаписи данных y. Что это дает? Применительно к предыдущему примеру, решением будет только запись данных n.

|-------x---------|-------n---|-----------------------------------------------y-------------|

Что это даёт применительно к реляционным базам данных на практике?

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

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

Моя база данных снимает этот вопрос. Можно индексировать хоть каждое поле, скорость добавления и удаления данных не изменится. Т. е. изменится конечно, но это будет капля в море по сравнению с переписыванием индексов в традиционных базах данных.

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

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

Подробнее о программе.

Сделано очень много. Очень много работы с функциями, отладки по крешам, по скорости… Объем рукописного текста (исходников) занял более 3-х мегабайт!!! 1Мбайт это примерно 1000 средних книжных страниц. После 4-х лет работы, я осознал, что одному этот проект не вытянуть. Просто уже не помещается такой объем информации в одной голове. В реальности над подобными проектами работают сотни человек.

Я упаковал его в такую демонстрационную упаковку, на подобии Microsoft Office Access , чтобы можно было понять, что всё таки это всё работает. И получил патент. С тех пор прошло около 10 лет.

Пример работы

Откроем программу. Должна открываться во всех Windows, т. к. написана и скомпилирована еще на старом Visual C++ 5. Хотя я и подозреваю, что всякие багги будут вылезать. Итак, запустили Black Base.

Делаем новую базу данных. File-Create. Вводим имя новой базы данных, например b1.

Делаем новую таблицу. Кнопочка “Create”. Вводим имя таблицы-books, потом добавим таблицу mens. Базу данных библиотеки набросаем…

Дважды щелкаем по таблице books, таблица откроется в том виде, в каком она физически записана в базе..

Выделяем квадратик в левом верхнем углу таблицы и в меню выбираем Columns-New

Появляется окно для выбора характеристик нового столбика: тип данных, обязательное поле, имя столбика, размер поля. Для начала сделаем поле id.

Затем выделяем столбик и добавляем новый. Выделяется столбик для того, чтобы указать физически где новый столбик будет находится физически. Таким образом сделаем 3 столбика: id, name, author.

Теперь выделим запись после которой добавим новые записи, в нашем случае выделим строку с именами столбиков, и добавим новые записи.

В меню выберем Records-Add.

Сразу 200 записей добавим, а потом из Excel скопируем, чтобы по одной записи не добавлять. Теперь наша таблица имеет следующий вид:

Некоторые данные не записались, т. к. там кавычка в названии… Теперь на эту таблицу сделаем первый запрос. Закроем окно таблицы, и в окна базы выберем меню Inquiries-Create.

Создан первый запрос showbooks.

Выделим этот запрос и нажмем Disigned.

Версия отладочная, поэтому сообщения об ошибках отсутствуют, все ошибки рассматриваются в отладчике. В частности при выборе столбиков после SELECT необходимо писать имя таблицы…точка…имя столбика причем не через запятую а через пробел L. В общем наш запрос имеет следующий вид.

Закрываем запрос в режиме редактирования, и открываем для просмотра результата работы запроса. Кнопка Open.

Далее создадим и заполним таблицу посетителей библиотеки.

Теперь создадим и заполним таблицу в которую вносятся книги, и кому они выданы…

Теперь создадим запрос для более «человеческого» представления: кому какие книги выданы.

Тут немного отладки… Всё таки 10 лет лежала база нетронутой… И машина сменилась… Так что имена таблиц и запросы слегка изменились…

Результат выполнения запроса, или кому какие книги выданы:

Еще один запрос, чтобы увидеть какие книги выданы Шарлотте:

И результат работы этого запроса:

Пример этой базы данных прилагается. Да, еще… если программа завершится некорректно, структура открытой базы данных скорее всего будет нарушена.

Дальнейшее развитие данной СУБД я вижу в следующем.

  1. Разделение проекта на 2 части: 1-визуальная, 2-сервер баз данных, с доступом через порт, с паролями, логинами…
  2. Перенос кода на современные машины, и оптимизация под основные операционные системы, Windows, Linux, Macintosh. Так как в программе использовались только стандартные С++ библиотеки, значительных проблем не возникнет. Даже визуальная часть программы «загнана» в один класс, типа CWnd, на основе которого строятся все остальные элементы.

Программа писалась еще на Windows 95, Visual C++ 5.

  1. Расширение рабочего синтаксиса SQL до стандарта ANSI и добавление всех необходимых типов данных.
  2. Введение кодировки utf8, уже доказано, что это оптимальная кодировка.
  3. Ну и конечно бесконечные доработки, тесты, краштесты…

Общая информация о структурах баз данных.


С уважением, Сафаров Олег Айратович, автор и разработчик СУБД Black Base.

Координаты:

Тел. 8-965-9261199

Email [email protected]

Странички в соцсетях:


Додатки 1

Перегляд контактної інформації доступний тільки зареєстрованим користувачам.

Відгук замовника про фрилансера Владиславе В.

Якість
Професіоналізм
Вартість
Контактність
Терміни

Всё в порядке, быстро, качественно.

Олег С. Олег Сафаров

Відгук фрілансера про замовника Олеге Сафарове

Оплата
Постановка задачі
Чіткість вимог
Контактність

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

Владислав В. Владислав ВебДев


Зробити ставку!

Замовник не бажає робити передплату? Запропонуйте оплату через Сейф, щоб уникнути можливого шахрайства.

  1. 1 день300 ₽
    Maks Strix
     233   2   0

    Готов обговорить ваш проект.
    Работаю:
    В срок, за разумную цену и качественно
    Скайп:live:makskondratiuk

    Україна Харків | 29 жовтня 2015 |
  2. 1 день150 ₽
    София Высоцкая
     127 

    Добрый день, готова выполнить ваш заказ!
    Имеется ОГРОМНЫЙ ОПЫТ в данной сфере.
    Знай АНГЛИЙСКИЙ и др. языки В СОВЕРШЕНСТВЕ!
    Сделаю всё быстро, а главное качественно! И всего за 150 рублей.

    Росія Москва | 29 жовтня 2015 |
  3.  фрілансер більше не працює на сервісі
  4. 1 день4 $
    Денис Мовознавець
     450   13   0

    Профессиональный переводчик с опытом работы более 9-ти лет. Имею много опыта в переводе текстов на тематику программирования, веб-дизайна, баз данных, компьютерных систем. Выполню работу быстро и качественно.

    Україна Україна | 29 жовтня 2015 |
  5. 1 день10 $
    Валерий Духнич
     242   5   0

    Здравствуйте.
    Имею 20-ти летний опыт переводов и интерпретации текстов различной тематики.
    С примерами можно ознакомиться на сайте http://duck696.wix.com/translate-it-su (в стадии разработки)
    Выполняю быстрый и качественный перевод.
    английский, французский, русский, украинский
    САТ (Trados, PROMT)
    эл. почта: [email protected]
    Буду рад взаимовыгодному сотрудничеству.
    С уважением, Валерий.

    Україна Київ | 29 жовтня 2015 |
  1. ставка відкликана

Замовник
Олег Сафаров
Росія Росія  2   0
Проект опублікований
29 жовтня 2015
374 перегляди
Способи оплати
Поділитися