База для установки ПО

4 views
Skip to first unread message

Evgeny Sinelnikov

unread,
Feb 26, 2010, 5:24:07 AM2/26/10
to toiit-la...@googlegroups.com, Alexandr Ng, Александр Гашников
Итого по задачам с базой для компов.

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

Цель задачи состоит в том, чтобы организовать первичный интерфейс для добавления/удаления/просмотра списка компьютеров, их МАК-адресов, групп, в которые можно поместить компьютеры и программного обеспечения, которое на них нужно устанавливать.

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

Прикладываю к письму минимальную структуру базы данных в формате DIA (а также картинку в PNG) и модифицированный пример скрипта для запроса к базе. Далее требуется добавить скрипты для модификации базы (добавление и удаление элементов справочников - компьютеров (comp), программ (soft), групп (group), операционных систем (os) и настроек (setting)).

Структура базы представлена логическая. Её цель - отразить основной список объектов и связи между ними.

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

Вопросы по реализации скриптов для работы со справочниками решают: Наговицын Александр 221гр. и Гашников Александр 222гр. От них я хочу получить набор скриптов для модификации базы. Поскольку физическая структура базы не утверждена им потребуется уточнять её по мере обсуждения.

Хочу отметить, что в python есть два модуля для работы с базой. Основной MySQLdb и упрощённый - _mysql. Основные различия в интерфейсах представлены в документации проекта mysql-python:
http://mysql-python.sourceforge.net/
http://mysql-python.sourceforge.net/MySQLdb.html#mysql

Я полагаю, что для утилит более уместен интерфейс MySQLdb в виду его большего удобства и переносимости.


Пересланная цепочка
Тема: базы данных.Наговицын.А 221.гр
------------------------

От кого: Alexandr Ng <glu...@gmail.com>
Дата: 18 февраля 2010 г. 20:49
Кому: gmast...@googlemail.com


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

таблица test1 состоит из колонок id и name
Вариант 1 )       мой запрос на добавление элементов должен реализовываться в строчке и иметь применый вид 
cursor.execute("select id  * from test1") # запрос на получение всех строк таблицы(к примеру)

Вариант 2)       или же воспользоваться обычной формой :
 db.query("LOAD DATA LOCAL INFILE "tabl.txt" INTO TABLE test1")
где tabl.txt - текстовый файл содержащий по одной записи в каждой строке (значения столбцов должны быть разделены символами табуляции и даны в том порядке, который был определен командой CREATE TABLE). Незаполненным полям, можно присвоить значение NULL.

для добавления одиночных записей используем команду INSERT
 db.query("INSERT INTO test1  VALUES ('значение id','значение name');

для отсутсвующих значений задается параметр null

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


подключение к бд происходит так :
 import mysql
 db = mysql.connect( host='localhost',user='root',passwd=''",db='test1');


host - это имя системы, где работает сервер MySQL
user - это пользовательский идентификатор, который должен быть удостоверен.
db - это имя базы данных, которая должна использоваться, как только установлено соединение с сервером.


во вложенном файле приведен упрощенный пример с комментариями для варианта с курсорами

----------
От кого: Evgeny Sinelnikov <gmast...@googlemail.com>
Дата: 20 февраля 2010 г. 11:02
Кому: Alexandr Ng <glu...@gmail.com>


Вот пример таблицы. Нужны скрипты:

Добавить компьютер:
 - указываем имя и его MAC-адрес. Вид MAC'а: 33446772fed4 (без
разделителей - шестнадцатеричное число). Если вводят 55-66-33-66-66-33
или 44:66:55:33:77:11 убираем минусы или двоеточия. То есть нужно
перед запросом сделать проверку на имя хоста и MAC.
Удалить компьютер:
 - по маку
 - по имени
Изменить имя для мака или мак для имени
Получить список компов и их маков

Обработка ошибок. Проблемы бывают такие:
 - нет доступа к базе
 - пароль не верный
 - комп уже при вставке
 - удаление того, что нет

--
Sin (Sinelnikov Evgeny)

----------
От кого: Evgeny Sinelnikov <gmast...@googlemail.com>
Дата: 20 февраля 2010 г. 17:02
Кому: Alexandr Ng <glu...@gmail.com>


Более полная диаграмма схемы базы.

20 февраля 2010 г. 11:02 пользователь Evgeny Sinelnikov
<gmast...@googlemail.com> написал:
--
Sin (Sinelnikov Evgeny)




--
Sin (Sinelnikov Evgeny)
шаблон.txt
comps.png
comps.dia
comps_lst.py
Reply all
Reply to author
Forward
0 new messages