Что является эквивалентом реляционной базы данных факториала и функции Фибоначчи? - PullRequest
14 голосов
/ 27 октября 2011

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

Так что теперь я пытаюсь разобраться с некоторой системой SQL и всеми примерами из учебников, которые я могу придумать, включая скучные и скучные таблицы, такие как «Студент» или «Сотрудник». Какие хорошие альтернативные наборы данных я мог бы использовать вместо этого? Я ищу что-то, что ( в порядке важности ) ...

  1. Данные могут быть получены с помощью простого алгоритма.
    • Я не хочу вводить вещи вручную.
    • Я хочу иметь возможность легко увеличить размер моих таблиц, чтобы подчеркнуть эффективность и т. Д.
  2. Может использоваться для демонстрации как можно большего количества материала. Выбор, объединение, индексирование ... Вы называете это.
  3. Может использоваться для получения интересных результатов.
    • Я могу жить с "скучными" манипуляциями с данными, если данные реальны и имеют само использование, но я бы предпочел что-то более интересное, если я создаю набор данных с нуля.

В худшем случае, я, по крайней мере, предполагаю, что должен быть какой-то набор эталонных данных, который бы соответствовал по крайней мере первым двум критериям, и я хотел бы услышать об этом тоже.

Ответы [ 7 ]

12 голосов
/ 27 октября 2011

База данных эталонов в мире Microsoft - Северный ветер .Одной из аналогичных программ с открытым исходным кодом (EPL) является база данных Eclipse Classic Models .

Насколько я знаю, вы также не можете автоматически генерировать.экспортирует специализированные продукты со всего мира ", в то время как Classic Models продает" масштабные модели классических автомобилей ".Оба довольно интересные.:)

10 голосов
/ 03 ноября 2011

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

Так вот что для меня было забавным - интеллектуальный анализ данных!Перейдите по адресу:

http://usa.ipums.org/usa/

и загрузите свои микроданные (вам нужно будет зарегистрироваться, но это бесплатно).

Вам нужно будет написать небольшой скрипт для вставки файла с фиксированной шириной в вашу базу данных, что само по себе должно быть весело.И вам нужно будет написать небольшой скрипт для автоматического создания полей (поскольку их много) на основе анализа их метафайла.Это тоже весело.

Тогда вы можете начать задавать вопросы.Предположим, что вопросы касаются цен на жилье:

Скажем, вы хотите взглянуть на динамику цен на жилье среди тех, кто имеет доходы в 10% населения за последние 40 лет.Затем ограничьте, если они живут в Калифорнии.Посмотрите, есть ли корреляция между доходом и долей ипотечных платежей в процентах от дохода.Затем сгруппируйте это по географическому региону.Затем посмотрите, есть ли корреляция между этими областями с самым высоким ипотечным бременем и процентом единиц, занятых арендаторами.Ваш БД будет иметь некоторые встроенные статистические функции, но вы всегда можете запрограммировать и свои собственные - поэтому корреляция может быть эквивалентом Фибоначчи.Затем напишите небольшой сценарий, чтобы сделать то же самое в R, импортируя данные из вашей базы данных, манипулируя им и сохраняя результат.

Лучший способ узнать о БД - это использовать их для каких-то других целей.

Как только вы закончите играть с iPUMS, взгляните на данные GEO с (в зависимости от вашей базы данных) чем-то вроде PostGis - единственное отличие состоит в том, что iPUMS дает вам разрешение с точки зрения трактов, тогда как данные ГИСимеет координаты широты / долготы.Затем вы можете построить тепловую карту ипотечного бремени для США и развить эту тепловую карту в разных временных масштабах.

1 голос
/ 04 ноября 2011

Вам будет трудно найти учебные пособия по базам данных.Основная причина этого заключается в том, что стандарт SQL-92 , на котором основано большинство примеров, является довольно старой скучной.Существуют обновленные стандарты, но большинство учебных пособий по базам данных будут стремиться к самому низкому общему знаменателю: SQL-92.

Если вы хотите узнать о базах данных как инженер-программист, я определенно рекомендую начать сMicrosoft SQL Server.Есть много причин для этого, некоторые факты, некоторые мнения.Основная причина в том, что с SQL Server гораздо проще продвинуться дальше.

Что касается примеров данных, то Northwind был заменен AdventureWorks.Вы можете получить последние версии codeplex .Это гораздо более реалистичная база данных и позволяет демонстрировать гораздо больше, чем базовые объединения, фильтрацию и свертку.Также важно то, что он фактически поддерживается для каждого выпуска SQL Server и обновляется для демонстрации некоторых новых функций базы данных.

Теперь, для вашей цели # 1, ну, я бы рассмотрелмасштабирование упражнения.После того, как вы пройдете основные и скучные вещи, вы постепенно сможете выполнять эффективные крупномасштабные манипуляции с данными и, в то время как на самом деле не генерируете данные, по крайней мере, копируйте / вставляйте / изменяйте свои данные SQL, чтобы они соответствовали вашему размеру.

Имейте в виду, что тестирование баз данных не является тривиальным.Производительность и эффективность базы данных зависит от многих аспектов вашего приложения .Как это использовать, так же важно, как и его настройка.

Удачи и сообщите нам, если вы найдете жизнеспособное решение за пределами этого форума.

1 голос
/ 02 ноября 2011

Возможно, вы можете что-то сделать с химией. Введите 118 элементов или извлеките их для онлайн-источника. Используйте основные правила, чтобы объединить их в молекулы, которые вы можете хранить в базе данных. Объединяйте молекулы в более крупные молекулы и выполняйте с ними более сложные запросы.

0 голосов
/ 05 ноября 2011

База данных Eclipse Classic Model - лучший аналог базы данных с открытым исходным кодом для факториала и функции Фибоначчи. И Microsoft Northwind - еще одна мощная альтернатива, которую вы можете использовать.

0 голосов
/ 02 ноября 2011

Географические данные могут демонстрировать множество возможностей SQL, хотя и несколько сложны (но не слишком сложны). Он также доступен из многих источников в Интернете - международных организаций и т. Д.

Вы можете создать базу данных со странами, городами, почтовыми индексами и т. Д. Отметьте столицы стран (помните, что в некоторых странах имеется более одной столицы ...). Включите данные ГИС, если вы хотите по-настоящему модно. Кроме того, подумайте, как вы можете смоделировать другую адресную информацию. А что если адресная информация должна была поддерживать международные адреса? Вы можете сделать то же самое с номерами телефонов. После того, как вы освоитесь, вы даже сможете интегрироваться с Google Maps или чем-то подобным.

Скорее всего, вам придется самостоятельно разрабатывать и импортировать базы данных, но на самом деле это довольно большая часть работы с базами данных.

0 голосов
/ 02 ноября 2011

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

...