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