Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 177

Некоторые файловые форматы были разработаны для того, чтобы хранить опре-

деленные структуры данных, и они не являются ни реляционными, ни базами дан-

ных NoSQL. В следующих разделах рассказывается о некоторых из них.

Электронные таблицы

Электронные таблицы, в частности Microsoft Excel, — это широко распространен-

ный формат данных. Если вы можете сохранить свою таблицу в CSV-файл, то мо-

жете считать его с помощью стандартного модуля csv, который был описан ранее.

Если у вас есть бинарный файл xls, для его считывания и записи можете исполь-

зовать стороннюю библиотеку xlrd.

HDF5

HDF5 (http://www.hdfgroup.org/why_hdf) — это бинарный формат данных, предназна-

ченный для хранения многомерных или иерархических числовых данных. Обычно

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

рам данных (от гигабайтов до терабайтов) является распространенным требованием.

Несмотря на то что HDF5 в некоторых случаях мог бы стать хорошей альтернативой

базам данных, по каким-то причинам этот формат практически неизвестен в совре-

менном мире. Он лучше всего подходит для приложений вида WORM (write once/

read many — «запиши однажды — считай много раз»), которые не нуждаются в защите

от конфликтующих записей. Вы можете счесть полезными следующие модули:

 h5py — является интерфейсом низкого уровня с широкими возможностями.

Прочтите его документацию (http://www.h5py.org/) и код (https://github.com/h5py/

h5py);

 PyTables — это интерфейс немного более высокого уровня, имеющий некоторые

особенности, характерные для баз данных. Прочтите его документацию (http://

www.pytables.org/) и код (http://pytables.github.com/).

Оба этих формата рассматриваются в приложении В с точки зрения применения

в научных приложениях, написанных на Python. Здесь я упоминаю об HDF5 затем,

чтобы у вас был под рукой нестандартный вариант на случай, когда вам нужно со-

хранять и вычитывать крупные объемы данных. Хорошим примером использования

этого формата является Million Song Dataset (http://bit.ly/millionsong), содержащий

информацию о песнях.

232

Глава 8. Данные должны куда-то попадать

Реляционные базы данных

Реляционным базам данных всего около 40 лет, но в компьютерном мире они ис-

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

В эти моменты вы сможете оценить следующие их преимущества.

 Доступ к данным возможен для нескольких пользователей одновременно.

 Действует защита от повреждения данных пользователями.

 Существуют эффективные методы сохранения и считывания данных.

 Данные определяются схемами, их можно ограничить.

 Объединения позволяют найти отношения между различными типами данных.

 Декларативный (в противоположность императивному) язык запросов SQL

(Structured Query Language, структурированный язык запросов).

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

ношения между различными типами данных, представленными в форме таблиц

(в наши дни они называются именно так). Например, в нашем примере в меню

существовало бы отношение между каждым элементом и его ценой.

Таблица представляет собой сетку с рядами и графами, похожую на электронную

таблицу. Чтобы создать таблицу, необходимо указать ее имя и порядок, имена и типы