Перейти к содержимому


Фотография

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

mysql СУБД База данных

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 17 Март 2016 - 19:34

Данная версия системы управления базами данных (СУБД) под операционную систему OpenOS разработана для изучения особенностей работы реальной СУБД MySQL.

Предупреждаю сразу: в ней реализованы далеко не все функции MySQL. Некоторые я посчитал несущественными или избыточными, до некоторых просто не дошли руки. Но то, что есть позволяет создавать адаптированные под Луа базы данных, и формировать несложные SQL-запросы к ним. 

 

Для установки СУБД на ОС-компьютер выполните команду

pastebin run -f bS1kRJKw

Если в компьютере установлена интернет-карта, вы должны увидеть такой текст:

Добро пожаловать в программу установки СУБД MySQL
Выберите тип установки:
1. Серверная часть
2. Клиентская часть
3. Полная установка 

Поскольку данная версия пока не поддерживает обмен между клиентом и сервером по сети, выбираем полную установку.

После загрузки всех необходимых файлов, программа предложит перегрузить компьютер. Но мы пока не будем перегружать, а рассмотрим содержимое файла etc/dbms.cfg

--Файл конфигурации СУБД MySQL
DBpath="/mysql_db/"
port=3306
password="" 

Параметр DBpath содержит путь к папке, в которой будут храниться создаваемые базы. Если эта папка отсутствует, то при запуске СУБД она будет создана автоматически. Измените этот параметр, если значение по умолчанию вас не устраивает.

Параметр port содержит номер порта, через который, я надеюсь, когда нибудь можно будет обратиться к СУБД по сети.

Параметр password призван защищать доступ к базам паролем, но эта опция пока не реализована и вряд ли когда нибудь будет.

Так же к серверной части относится собственно СУБД - файл boot/dbms.lua, который благодаря своему расположению стартует автоматически и работает в фоновом режиме, что позволяет запускать на одном компьютере и сервер и клиент.

Вот теперь настало время перегрузить компьютер.

 

В клиентскую часть входят библиотека lib/mysql.lua и программа-монитор bin/mysql_mon.lua предоставляющая доступ к базам данных из командной строки.

Библиотека mysql предоставляет следующие функции для работы с базами данных:

Спойлер

При реализации функции query я сделал одно небольшое допущение: все служебные слова запроса следует писать строчными (маленькими) буквами.

SQL-монитор mysql_mon позволяет отправлять запросы к СУБД из командной строки. Я старался сделать его похожим на Command Line Client, поэтому объяснять суть его работы не вижу смысла. Для выхода из программы введите "exit".

Пример работы с СУБД:

Спойлер

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


Сообщение отредактировал Zer0Galaxy: 24 Март 2016 - 15:48


#2 Онлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 206
  • Уровень сигнала: 15,55%
  • В игре: 117 час. 1 мин.
  • ГородЛуна

Награды

                       

Отправлено 17 Март 2016 - 20:27

просвятите, где здесь файлик, который бы лексил, парсил и интерпретировал сикуэль?



#3 Оффлайн   SDV

SDV
  • Пользователи
  • Сообщений: 655
  • Уровень сигнала: 27,16%
  • В игре: 204 час. 27 мин.
  • ГородO.R.E.N.B.U.R.G.

Награды

        

Отправлено 17 Март 2016 - 20:52

Параметр password призван защищать доступ к базам паролем, но эта опция пока не реализована и вряд ли когда нибудь будет.

А как например то если с другого компа подключаются к базе.

Считай любой может приконектится к базе (зная ее название и порт).

Пароль не зря есть в оригинальной MySQL для этих целей.

 

mysql.connect ( server , username , password )

Зато тут есть атрибут password.

То есть все равно пароль задумывался изначально.

 

Но а в целом идея интересная (надо ее не забрасывать как многие интересные проекты), сам лично еще не ставил и не тестил, но по документации я понял что это cool :smile9:

Позже напишу статью в группе ВК про нее.



#4 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,84%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 17 Март 2016 - 21:48

просвятите, где здесь файлик, который бы лексил, парсил и интерпретировал сикуэль?

http://pastebin.com/wHvKJFtk



#5 Онлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 206
  • Уровень сигнала: 15,55%
  • В игре: 117 час. 1 мин.
  • ГородЛуна

Награды

                       

Отправлено 17 Март 2016 - 23:01

http://pastebin.com/wHvKJFtk



Здесь нет ни лексера, ни парсера. Только матч. Причем кривой. Вместо CREATE TABLE something ... пишем какую то дичь.

Здесь нет SQL.

Сообщение отредактировал LeshaInc: 17 Март 2016 - 23:02


#6 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 17 Март 2016 - 23:12

Здесь нет ни лексера, ни парсера. Только матч. Причем кривой. Вместо CREATE TABLE something ... пишем какую то дичь.
Здесь нет SQL.

Ну да. Всё чего Леша не понимает - дичь. А всё что дичь - не SQL
  • Alex, NEO и SDV это нравится

#7 Онлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 206
  • Уровень сигнала: 15,55%
  • В игре: 117 час. 1 мин.
  • ГородЛуна

Награды

                       

Отправлено 17 Март 2016 - 23:26

Ну да. Всё чего Леша не понимает - дичь. А всё что дичь - не SQL



Потому что если делаешь MySQL — описывай всю спецификацию на самом точном уровне. А то не MySQL, а MineSQL. Так же как с FTP. Сделал какую то фигню, которая ни капли не описывает из протокола FTP.

Все я там поинмаю. Обычный регексп, вместо полноценного воплощения языка. SQL — это не такой язык, который можно считывать простым регекспом.

#8 Оффлайн   cyber01

cyber01

    Техническая поддержка

  • Администраторы
  • Сообщений: 890
  • Уровень сигнала: 1,77%
  • В игре: 13 час. 18 мин.

Награды

            2      

Отправлено 18 Март 2016 - 00:07

Эхх... если бы это была библиотека для работы с реальным sql... а так это просто подобие...



#9 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 18 Март 2016 - 07:31

Эхх... если бы это была библиотека для работы с реальным sql... а так это просто подобие...

Ты имеешь в виду трансляцию sql-запросов в реальный мир? А разве Тоторо-банк не так работает?

Сообщение отредактировал Zer0Galaxy: 18 Март 2016 - 07:48


#10 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 2 001
  • Уровень сигнала: 169,88%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 18 Март 2016 - 09:44

Ты имеешь в виду трансляцию sql-запросов в реальный мир? А разве Тоторо-банк не так работает?

PHP-скрипт на сервере, который как раз SQL-запросы и посылает. Банк сам ничегошеньки не делает, кроме посылания запросов к этому скрипту.



#11 Оффлайн   cyber01

cyber01

    Техническая поддержка

  • Администраторы
  • Сообщений: 890
  • Уровень сигнала: 1,77%
  • В игре: 13 час. 18 мин.

Награды

            2      

Отправлено 18 Март 2016 - 15:32

Ты имеешь в виду трансляцию sql-запросов в реальный мир? А разве Тоторо-банк не так работает?

я думал с помощью либы можно связаться с реальным sql сервером и с ним уже общаться... но и создание своего сервера тоже хорошо :)






Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных