Итого по задачам с базой для компов.
высылаю цепочку с обсуждением задачи по написанию скриптов для работы с базой данных для наших программ.
Цель задачи состоит в том, чтобы организовать первичный интерфейс для добавления/удаления/просмотра списка компьютеров, их МАК-адресов, групп, в которые можно поместить компьютеры и программного обеспечения, которое на них нужно устанавливать.
Цель разбора запросов к 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)