Автор Тема: Инструменты. База данных  (Прочитано 127121 раз)

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #100 : Декабря 18, 2006, 11:51:23 »
Этот грёбаный "хелп", блин, не только не помог, но и переключил браузер на справку в интернете, загубив набранное, но не отправленное сообщение. Пилят!
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #101 : Декабря 18, 2006, 13:11:02 »
В общем, я не понял, что надо менять в структуре.
Я вижу пока проблему, связанную с объединением имён и фамилий из разных записей таблицы "Имена и названия". То есть в таблице "Гонщики" надо предусмотреть два поля, которые будут объединяться. Так?
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Валерий Лутошкин

  • Участник
  • *
  • Сообщений: 82
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #102 : Декабря 23, 2006, 05:33:19 »
Фактически, раз у тебя создан справочник имен и фамилий, то в любой таблице, где у тебя используются хоть какие-то имена и фамилии, необходимо предусмотреть поля для хранения индекса имени и индекса фамилии из справочника (т.е. поля "Код имени"). Сами же имена и фамилии будут храниться только в одном единственном месте.
И тут всплывают сразу две проблемы. Проблема №1 заключается в том, что ты не знаешь точно, сколько имен-фамилий будет у гонщика. В том плане, что гонщика могут звать ведь и "Остап Сулейман Берта Мария". Если ты хранишь это в одном поле имени - то замечательно, а если хочешь в разных и собирать полное имя из кусочков - то получается отношение между таблицами "многие ко многим", которое разрешается только через промежуточную таблицу. Это реализуемо, но требует определенных действий.
Проблема №2 - я, честно говоря, уже давно не следил за темой имен, поэтому не знаю - сошлись вы на том, что используете для перевода исторически сложившуюся транскрипцию или забиваете на нее и переводите всегда однозначно. Самый популярный пример первого - это "Джордж Харрисон и Гарри Гаррисон". Если нужна реализация такого варианта - тогда в таблице имен придется хранить два отдельных варианта с одинаковым оригинальным именем и разными переводами. Что усложняет ее заполнение и приводит к путанице. Забить на сложившуюся же транскрипцию - технически упрощает решение, но с точки зрения удобства восприятия - может создать проблемы.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #103 : Декабря 23, 2006, 06:28:24 »
Цитата: pLuto
Фактически, раз у тебя создан справочник имен и фамилий, то в любой таблице, где у тебя используются хоть какие-то имена и фамилии, необходимо предусмотреть поля для хранения индекса имени и индекса фамилии из справочника (т.е. поля "Код имени"). Сами же имена и фамилии будут храниться только в одном единственном месте. И тут всплывают сразу две проблемы. Проблема №1 заключается в том, что ты не знаешь точно, сколько имен-фамилий будет у гонщика. В том плане, что гонщика могут звать ведь и "Остап Сулейман Берта Мария". Если ты хранишь это в одном поле имени - то замечательно, а если хочешь в разных и собирать полное имя из кусочков - то получается отношение между таблицами "многие ко многим", которое разрешается только через промежуточную таблицу. Это реализуемо, но требует определенных действий.

Ага, я понял. Значит, в таблице вместо поля "Имя гонщика" в текстовом формате должно быть поле "Код имени" в числовом?
А промежуточная таблица - это таблица для составных имён? Тогда совсем фигня запутанная получится.
Цитата: pLuto
Проблема №2 - я, честно говоря, уже давно не следил за темой имен, поэтому не знаю - сошлись вы на том, что используете для перевода исторически сложившуюся транскрипцию или забиваете на нее и переводите всегда однозначно. Самый популярный пример первого - это "Джордж Харрисон и Гарри Гаррисон". Если нужна реализация такого варианта - тогда в таблице имен придется хранить два отдельных варианта с одинаковым оригинальным именем и разными переводами. Что усложняет ее заполнение и приводит к путанице. Забить на сложившуюся же транскрипцию - технически упрощает решение, но с точки зрения удобства восприятия - может создать проблемы.

Это-то как раз и не проблема, ибо в таблице "Имена и названия" изначально задуманы поля "Имя собственное в оригинале", "Транслитерация", "Транскрипция", "Традиционный перевод" и "Дословный перевод", а ещё - "Имя собственное по-английски" и "Выбранное имя". Как усложнение заполнения это в принципе не рассматривается, так как таблица как раз  и задумана для этого "усложнённого заполнения".
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Валерий Лутошкин

  • Участник
  • *
  • Сообщений: 82
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #104 : Декабря 24, 2006, 03:47:05 »
Цитата: Владимир Коваленко
Цитата: pLuto
Фактически, раз у тебя создан справочник имен и фамилий, то в любой таблице, где у тебя используются хоть какие-то имена и фамилии, необходимо предусмотреть поля для хранения индекса имени и индекса фамилии из справочника (т.е. поля "Код имени"). Сами же имена и фамилии будут храниться только в одном единственном месте. И тут всплывают сразу две проблемы. Проблема №1 заключается в том, что ты не знаешь точно, сколько имен-фамилий будет у гонщика. В том плане, что гонщика могут звать ведь и "Остап Сулейман Берта Мария". Если ты хранишь это в одном поле имени - то замечательно, а если хочешь в разных и собирать полное имя из кусочков - то получается отношение между таблицами "многие ко многим", которое разрешается только через промежуточную таблицу. Это реализуемо, но требует определенных действий.

Ага, я понял. Значит, в таблице вместо поля "Имя гонщика" в текстовом формате должно быть поле "Код имени" в числовом?
А промежуточная таблица - это таблица для составных имён? Тогда совсем фигня запутанная получится.

Проблема как раз в том, что у тебя не одно имя будет для гонщика. Как минимум имя и фамилия. Если для каждого гонщика будет только одно имя и только одна фамилия - то можно предусмотреть два поля "Код имени" и "Код фамилии". Тогда у тебя отношение "Одно ко многим", т.е. одной записи для гонщика не может соответствовать больше одного кода в таблице имен (речь про одну конкретную ячейку в таблице гонщиков, естественно - сделаешь две, три или десять ячеек - будет, соответственно, столько же соответствий "Одно ко многим").
А если ты хочешь, чтобы количество имен для гонщика изменялось динамически - то тебе придется предусматривать промежуточную таблицу, в которой будут ячейки "Код гонщика", "Код имени", "Позиция имени". Заполнять такую таблицу в акцессе в режиме редактирования таблицы неудобно, для этого уже необходимо предусматривать специальный код - хоть в акцессе, хоть в вебе - который будет облегчать ее заполнение.
Правда, я все равно не очень понял, как ты собираешься указывать сложившееся написание для разных гонщиков с одинаковым именем. Как пример - есть два гонщика, Harry Smith и Harry Jones. При этом одного на русский обычно переводили Гарри Смит, а второго - Хэрри Джонс. Если у тебя в таблице имен для обоих используется имя Harry, то как ты укажешь, что для первого традиционное написание такое, а для второго - такое?

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #105 : Декабря 24, 2006, 06:45:15 »
Выходит, придётся оставить идею общей таблицы имён и приводить переводы для каждого полного имени и названия.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #106 : Октября 12, 2007, 02:31:58 »
Всё-таки создание базы данных надо определить как одну из первоочередных задач. Каждый день надо хотя бы по капельке, но что-то делать.
В настоящий момент база данных находится в следующем состоянии:

Я ещё подумал и решил всё-таки оставить общую таблицу для имён с переводами.
Сегодня я позанимался таблицей трасс. Для примера вписал в таблицу несколько вариантов трассы в Донингтоне:
     
Код трассы
 
Название трассы
 
Описание трассы
 
Страна
 
Город
 
Длина круга, км
 
Длина круга, миль
 
Годы функционирования
 
Название трассы в оригинале
 
1
 
Донингтон-Парк
 
Донингтон-Парк (1931)
 
Великобритания
 
Донингтон
 
 
 
2,327
 
1931-1935
 
Donington Park
 
2
 
Донингтон-Парк
 
Донингтон-Парк (1935)
 
Великобритания
 
Донингтон
 
 
 
2,971
 
1935-1937
 
Donington Park
 
3
 
Донингтон-Парк
 
Донингтон-Парк (1937)
 
Великобритания
 
Донингтон
 
 
 
3,220
 
1937-1939
 
Donington Park
Что есть смысл добавить или изменить?
Можете предлагать данные по доругим трассам по предложенной схеме. Я их вобью в БД для дальнейшей отладки.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Александр Кульчицкий

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 3 517
  • Карма 759
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #107 : Октября 12, 2007, 02:54:50 »
У меня есть сомнения относительно основного языка наименования и необходимости двух колонок для длины круга.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #108 : Октября 12, 2007, 05:46:40 »
Из-за особенностей построения данного вида баз данных колонка с названием трассы в оригинале будет в любом случае, но её можно будет не отображать в этой таблице. Для любых имён и названий будет отдельная таблица, в которой будут перечислены все варианты названий, переводов и т.п.
Насчёт длин круга, в принципе, есть возможность сделать формулы для пересчёта. Длина в милях может пригодиться при использовании публикаций с неметрическими данными.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Александр Кульчицкий

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 3 517
  • Карма 759
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #109 : Октября 12, 2007, 07:23:02 »
Цитата: Владимир Коваленко
Из-за особенностей построения данного вида баз данных колонка с названием трассы в оригинале будет в любом случае, но её можно будет не отображать в этой таблице.

В принципе это я и имел в виду. Строить базу данных и осуществлять поиск не по оригинальному названию (переводу) несколько сложнее.
Цитата: Владимир Коваленко
Насчёт длин круга, в принципе, есть возможность сделать формулы для пересчёта. Длина в милях может пригодиться при использовании публикаций с неметрическими данными.

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

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #110 : Октября 12, 2007, 08:09:25 »
Цитата: Александр Кульчицкий
В принципе это я и имел в виду. Строить базу данных и осуществлять поиск не по оригинальному названию (переводу) несколько сложнее.

Теперь понял.
Сложнее - только тем, кто не хочет учиться. Я не собираюсь усугублять и без того хреновое состояние знания русского языка. Лучше пускай знают один язык хорошо, чем два - плохо.
Цитата: Александр Кульчицкий
Желательна формула для пересчета и возможность переключения, как для заведения данных, так и для просмотра в двух системах, но чтобы постоянно отображалась - одна. Понимаю, что это чуть сложнее, но приятней для пользования.

Да, конечно. Я предусмотрел мили по той причине, что иногда в первоисточниках именно в них всё указывается, и попытки пересчёта дают некоторую погрешность. То есть, если взять длину круга в километрах и поделить на время прохождения круга, получится скорость в км/ч. Если использовать длину круга в милях, скорость будет в милях/ч. Если известна только скорость в милях/ч и длина круга в километрах, то можно высчитать из них время через пересчёт длины, а затем пересчитать в км/ч. В общем, результат должен несколько отличаться.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Мозговой Роман

  • Опытный участник
  • **
  • Сообщений: 183
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #111 : Октября 12, 2007, 09:33:41 »
Мили-километры будут отличаться ненамного в результате пересчёта, бОльшую погрешность даст неточность в самом источнике. Поэтому поддержу достаточность указания в метрических единицах.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #112 : Октября 15, 2007, 02:04:52 »
Решил всё-таки отказаться от общей таблицы имён и названий и всю лингвистическую информацию размещать в тематических таблицах, из которых переработал пока что только "Трассы". Вот схема БД:

А вот пример заполнения таблицы "Трассы", только в несколько необычном виде:
     Код трассы 1 2 3 4  Трасса Донингтон Донингтон Донингтон Валенсия  Название в оригинале Donington Donington Donington Valencia  Язык английский английский английский испанский  Транскрипция Донингтон Донингтон Донингтон Валенсия  Транслитерация Донингтон Донингтон Донингтон Валенсия  Другие варианты перевода          Описание трассы Донингтон (1933) Донингтон (1935) Донингтон (1937)    Официальное название трассы "Донингтон-Парк" "Донингтон-Парк" "Донингтон-Парк" трасса имени Рикардо Тормо  Официальное название трассы в оригинале Donington Park Donington Park Donington Park Ricardo Tormo Circuit  Страна Великобритания Великобритания Великобритания Испания  Город Донингтон Донингтон Донингтон Валенсия  Длина круга, км          Длина круга, миль 2,327 2,971 3,220    Год начала функционирования 1933 1935 1937    Год окончания функционирования 1935 1937 1939  
Валенсию я добавил в качестве примера трассы, имеющей некое специальное название, не совпадающее с описанием трассы по географическому признаку. Я не искал испанского названия трассы, так что можете подсказать (в данном случае вопрос абсолютной точности неважен, это всего лишь пример построения и функционирования БД).
Можете предлагать каверзные примеры, которые, может быть, не вписываются в предложенную схему.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #113 : Ноября 23, 2007, 01:37:58 »
Цитата: Андрей Безбожный
Как программер, я бы мог многое подсказать и, возможно, что-нибудь и сделать. Проблема в том, что я не могу понять как должен выглядеть сайт-архив. Какие разделы и т.д.? Речь идёт о некоей базе - как она должна выглядеть (в смысле интерфейс - поля ввода, селекторы и т.д.) и в каком виде выдавать результаты запросов?

Андрей, в данной БД основной упор делается не на результаты участников (место в гонке, причина схода и т.п.), а на заявочные списки. То есть в первую очередь должны быть списки соревнований, затем - списки гонок в рамках соревнований и списки участников по стартовым номерам. Потом уже можно будет добавлять результаты заездов.
Всё это нужно для того, чтобы идентифицировать фотографии. Например, у тебя есть фотография, на которой видно, что трасса - Гудвуд, автомобиль - "Ягуар", а его номер - 23. Надо открыть БД и сделать выборку по этим параметрам, чтобы дальше уже решить, в какой из гонок был сделан данный кадр.
Иногда возникает потребность проследить все выступления того или иного автомобиля или гонщика. Например, если ты пишешь статью о гонщике, надо в хронологическом порядке расписать, когда он выступал на одном автомобиле, когда - на другом. Интересно же, как Майк Хоторн завоевал себе место в "Феррари" в 1952 году за рулём своего "купера", а Мосс - в "Мерседесе" на личной "мазерати" в 1954 году.
Для этого нужна БД, позволяющая сделать выборки по таблицам.
Я пришёл к выводу, что рабочих таблиц должно быть три.
1. Таблица соревнований. Во все времена старались за день-два провести по несколько гонок. Вот этот набор гонок и называется соревнованием. В таблице надо только показать, в какой день на какой трассе проводилось такое вот масштабное мероприятие. Что-то типа этого: http://f1.pluto.net.ru/forum_posts.asp?FID=4&TID=606&TPN=1&get=#17589.
2. Таблица гонок. А вот теперь уже для каждого соревнования расписываются конкретные гонки, входившие в программу. Здесь заполняются такие данные, как дистанция в кругах и километрах, категория и класс автомобилей.
3. Таблица участников. Здесь уже для каждой гонки приводится список участников со стартовыми номерами, марками, моделями и заводскими номерами автомобилей и двигателей, а также результатами заездов.
Получается, что самая подробная таблица - третья. В ней будет код конкретной гонки из второй таблицы. А во второй таблице будет код соревнования из первой.
То есть, например, в строчке третьей таблицы будет всё подробно расписано: стартовый номер, марка автомобиль, модель, заводской номер, марка двигателя, модель, заводской номер; гонщик, результат в тренировке, результат в гонке. Всё это привязывается к конкретной гонке через ещё одно поле - с кодом гонки.
На данный момент схема БД остаётся такой же, как в предыдущем сообщении.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Vadim

  • Новичок
  • Сообщений: 29
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #114 : Ноября 23, 2007, 03:23:01 »
Добавлю свои три копейки.
Насколько я понимаю ситуацию... цель - получить удобную для дальнейшей обработки информацию.
На начальном этапе проще всего набивать информацию в Excel'e. И вот здесь мне Черепович советовал выбрать главным критерием - первоначальный набор данных по дате. То есть, для первой в списке гонки берется ID - год+номер гонки в году, например 189501, следующая строка 189502 и так далее. Это будет первый лист, который набиваешь, назовем его RACES. Второй лист состоит из результатов, кот. назовем CLASSIFICATION -Здесь вбиваем результаты. А потом уже, когда обработан большой объем информации, всё это добро загоняется в Access, из которого можно будет формировать любые таблицы по любому запросу... будь то место проведения, дата, фамилия гонщика, и т.д. и т.п.
Вот, например, как могут выглядеть страницы для набора инфы в Exel'e:
     ID Date Place Distance, km Distance, miles Laps Lap, km Lap, miles Starters Weather Name Notes   189501 11-13.06.1895  1178,00     46 entries, 22 starters Paris-Bordeaux-Paris (I GP de l'A.C.F.)  Race named in retrospect: I Grand Prix de l'A.C.F.; First two ineligible for prizes as cars were two seaters and only four seaters were eligible; Route: Paris-Versailles-Orleans-Vouvray-Tours-Poitiers-Ruffec-Angouleme-Bordeaux and back (B)
   189502 28.11.1895 (02.11)   92    about 100 entries, only two cars started Times-Herald Contest Chicago-Evanston Chicago-Waukegan-Chicago; Source:"The Checquered Flag" by Ivan Rendall (1993); According to "A Record of Motor Racing" by Gerald Rose (1909, 1949)  about 100 entries, only two cars started; The winners' time  8:44, Average speed 10.76 mph; The 2nd classifier J. Frank Duryea did not finish the race
 
-----------
 
     GP Order Driver Nat Chassis Entrant Class Cla Reason Pos Time Laps Speed Speed, mph No Starting Pos Fastest Lap Pole Position Q speed Laps lead Notes    189501 1 Emile Levassor FRA Panhard 4 hp   Classified  1 48:48'00"  24.54kph/15.25mph         189501 2 Rigoulot FRA Peugeot   Classified  2 54:35'00"              189501 3 A. Koechlin  Peugeot   Classified  3 59:48'00"            
 
     189502 1 Oscar Mueller  Mueller Benz   Classified  1  
Я не согласен ни с одним Вашим словом, но... готов умереть за Ваше право говорить...

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #115 : Ноября 23, 2007, 07:09:52 »
Предложенная тобой структура в точности повторяет две основные таблицы моей базы данных (разве что они у меня называются Events и Raceresults, а индекс состоит из трех частей - год, соревнования, гонка в рамках соревнований). Но я советую не связываться с Excel, а сразу создавать таблицы в Access - вдруг при импорте данных возникнут неувязки в формате полей? Я могу ошибаться (с Access давно не работал, моя БД реализована на совершенно иной программной основе), но, кажется, длина текстового поля ограничена 255 символами, то есть пространные текстовые примечания столбца Notes при импорте таблиц в Access могут оказаться потерянными или обрезанными.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #116 : Ноября 23, 2007, 23:05:58 »
В принципе, я иду примерно в том же направлении, только у меня три таблицы, а у вас - по две.
Вадим, ты соревнования вообще не учитываешь. Вероятно, ты просто учитываешь только какие-то наиболее значимые гонки, а их можно считать самодостаточными, и необходимость разбираться в сборных соревнованиях отпадает.
Лёша, ты каким-то образом соревнования учитываешь, но не так явно. В твоей БД можно получить выборкой список соревнований? Я пытаюсь понять, не является ли моя таблица соревнований лишней.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #117 : Ноября 24, 2007, 03:20:03 »
Не совсем понял твой вопрос, а именно: что именно должна содержать выборка, сформированная запросом? Список соревнований, проводившихся в каждом конкретном сезоне? Если да, то это сделать можно, и довольно просто. Поскольку каждая гонка, входившая в состав каких-либо соревнований, в таблице Events в поле EventName имеет одно и то же название (например, "Чемпионат СССР, 3 этап" или "Гонки на приз общества "Калев""), то можно составить такой запрос:
SELECT DISTINCT EventName
FROM events
WHERE (IDEvent>740000)AND(IDEvent<750000)
ORDER BY EventName
Этот запрос расшифровывается так: выбрать все различные значения поля EventName таблицы Events для сезона 1974 года, упорядочив по значению Event Name. Я сам использую его в своей базе данных - правда, в неявной форме, текст запроса был записан один-единственный раз в ходе программирования, а для его выполнения надо только указать конкретный год - по введенному значению вычисляются параметры для предложения WHERE, и запрос выполняется.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #118 : Ноября 24, 2007, 10:49:29 »
Вот, например, фрагмент таблицы гонок:
1963.03.30 Sat Snetterton          Lombank Trophy Meeting       (1/3) Race 1                               Appendix C Sports Cars and GT prototypes
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Vadim

  • Новичок
  • Сообщений: 29
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #119 : Ноября 24, 2007, 12:41:53 »
Владимир, ты сам ответил на свой вопрос.
Да, есть ещё поле(столбец) с названием соревнования, по которому ты и сможешь выбрать потом из базы необходимые тебе гонки и сформировать список/таблицу/etc.
Таких дополнительных полей(столбцов) может быть сколько угодно. Главное, чтобы они тебе были нужны для последующей группировки, сортировки, обработки и осмысления.
Я не согласен ни с одним Вашим словом, но... готов умереть за Ваше право говорить...

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #120 : Ноября 24, 2007, 13:00:11 »
Мы дождёмся ответа Алексея.
Если ты рассматривал схему моей БД, ты должен был увидеть, что всё это уже реализовано. Если у Алексея нет таблицы соревнований, то в этом отношении я пошёл на шаг дальше его схемы и на два - твоей. Ты ведь вообще не заложил в свою таблицу соревнования - только отдельные гонки.
И мне здесь важно понять, не наворотил ли я лишнего.
Да, кстати.
Цитата: Flicker
Да, есть ещё поле(столбец) с названием соревнования, по которому ты и сможешь выбрать потом из базы необходимые тебе гонки и сформировать список/таблицу/etc.

Это тот случай, когда нужна максимальная точность в терминологии. Сначала ты сказал "соревнования", а потом - "гонки". По таблице соревнований нельзя выбирать гонки. Просто оговорка?
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #121 : Ноября 24, 2007, 13:11:43 »
По-моему, ты здесь именно "наворотил лишнего"  Стремление к полной нормализации базы данных - это, конечно, хорошо, но скажи, зачем тебе отдельная таблица соревнований? У меня ее нет, потому что в свое время я попросту счел ее ненужной. Получить список всех соревнований сезона я легко могу и без нее - при помощи приведенного выше запроса. Если же вводить еще одну таблицу, БД только станет более громоздкой, сложной в работе и менее доступной для понимания ее структуры. Короче говоря, при конструировании своей БД я создавал отдельные таблицы только тогда, когда это действительно было необходимо.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #122 : Ноября 24, 2007, 13:20:36 »
Я так понимаю, суть реляционных баз данных в том и состоит, чтобы разбить весь массив на наиболее простые таблицы, из которых затем по идентификаторам составлять любые комбинации данных.
А как у тебя выглядят описания соревнований? У меня это - комбинация даты и названия соревнования (которое может быть повторяющимся, например, "пасхальные соревнования БАРК").
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #123 : Ноября 24, 2007, 13:43:21 »
Разбивать массив данных на простые таблицы стоит до поры до времени - пока это обоснованно. После какого-то момента это, наоборот, не упрощает, а усложняет работу.
А вот тебе для примера фрагмент моей таблицы Events:
     600401

Оффлайн Алексей Гончарик

  • Коллекционер
  • Опытный участник
  • ***
  • Сообщений: 214
  • Карма 113
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #124 : Ноября 25, 2007, 12:08:59 »
А кто-то подсчитывал количество участников в гонках? Я пытался подсчитывать - по таким сериям как Ф-1, Ф-3000 проще, т.к. по этим сериям есть множество ссылок в Интернете. Зато по европейской Ф-2 много противоречивой информации.
Данная проблема возникает с тем, что есть заявочные списки, но при этом не все участники стартовали.
 
Сфера интересов - формульные гонки с 1968 года, влияние политических процессов на автоспорт и влияние автоспорта на мировые и локальные политические процессы.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #125 : Ноября 25, 2007, 13:46:52 »
Лично меня подобные вопросы просто не интересуют. Статистика в виде количественного подсчёта чего-либо и сопоставления разных чисел - штука вообще для истории вредная, так как не учитывает то, что цифрами описать нельзя. Традиционная трактовка истории, которую я так критикую, - это, в принципе, упрощенная статистическая обработка результатов соревнований.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир

  • Опытный участник
  • **
  • Сообщений: 3 780
  • Карма 1110
  • ЧМ Ф-1: 1950-по настоящее время!
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #126 : Ноября 25, 2007, 16:15:54 »
 
Цитата: Алексей Рогачев
Разбивать массив данных на простые таблицы стоит до поры до времени - пока это обоснованно.
Мне один человек, который их разрабатывает периодически сказал примерно так.
Должна быть одна большая - основная таблица, в которой нужно предусмотреть все возможные поля для решаемой задачи.  Причем "вся соль" в том, что в ней большинство полей хранится  в виде кодов - они быстрее обрабатываются и занимают меньше места в памяти.
И остальные маленькие, где  каждому коду  соотвестывует конкретное значение.

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

Из детского сада. И это замечательно! ЧМ Ф-1-это реальность!
С некоторых - как гость на данном  форуме. Чем-то пригожусь еще в плане книг. По заказам литературы пишите через почту! 1000-ый Гран-при в истории ЧМ Ф-1 -рубеж!

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #127 : Ноября 25, 2007, 16:32:43 »
То, о чем ты говоришь, и называется нормализацией. Теоретически так оно и должно быть. Но на практике полностью нормализованных баз данных почти не бывает. Я изучал одну книгу, посвященную программированию СУБД в среде Delphi, там как раз об этом и говорилось: мол, не надо слепо следовать канонам, а надо делать так, как будет удобнее и эффективнее решать конкретную задачу. Если полная нормализация для этого не требуется, то и не стоит за ней гнаться. Пусть будут затрачены лишние ресурсы памяти и времени обработки, зато будет легче понимать структуру, а следовательно, и составлять запросы на SQL.
Экономия ресурсов важна для огромных распределенных баз данных, где обрабатываются и пересылаются по сетям очень большие объемы информации. Для наших же целей нужны относительно маленькие локальные БД, при работе с которыми сэкономленные килобайты будут совершенно неощутимыми. Например, вся моя база данных (считая и таблицы, и файлы настроек, и исполняемый модуль СУБД) имеет объем около 10 МБ. А оперативная память компьютера - 2 ГБ, жесткий диск - 320 ГБ. Ну и зачем тогда такая грошовая экономия?Алексей Рогачев39412,0738541667

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #128 : Ноября 26, 2007, 02:15:02 »
Цитата: gp2
Должна быть одна большая - основная таблица, в которой нужно предусмотреть все возможные поля для решаемой задачи.  Причем "вся соль" в том, что в ней большинство полей хранится в виде кодов - они быстрее обрабатываются и занимают меньше места в памяти.
И остальные маленькие, где  каждому коду  соотвестывует конкретное значение.

Мне понравилась эта формулировка. Я вроде бы как это чувствовал, но не совсем осознанно.
Получается, в нашем случае большая таблица - это результаты соревнований, в каждой строчке которой уникальная информация - это комбинация "гонщик + автомобиль + стартовый номер + результаты". Для каждой такой комбинации повторяющаяся информация - это дата, соревнования, гонка (со всеми её данными), трасса (со всеми её параметрами). Получается, что каждой уникальной комбинации достаточно привести только один код - и он приведёт к массе в принципе полезной, но чаще всего ненужной информации.
Получается, есть два подхода.
1. Лёша, это твой: оставить некоторую избыточность, и в большой таблице просто скрывать то, что сейчас не нужно. Скрывать лишнее.
2. Абсолютная оптимизация: добиться максимальной простоты большой таблицы, чтобы вызывать из маленьких только нужную информацию. Вызывать нужное.
Мне теперь надо понять, какой из вариантов более эффективен.
Кстати, при каких-либо изменениях и дополнениях в структуре БД что удобнее?
Допустим, Лёша, ты решил изменить название соревнования. Ты можешь сделать это одной командой, или тебе придётся вручную переписывать несколько десятков записей?
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #129 : Ноября 26, 2007, 03:30:19 »
Разумеется, одной командой! Жму на кнопочку, открывается стандартный системный диалог замены, ввожу туда то, что надо найти и на что надо заменить, и нажимаю "Заменить все".

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #130 : Ноября 26, 2007, 04:25:08 »
Ладно, над этим надо ещё думать.
Ещё один важный момент. Необходимо прописывать отдельной строкой каждое шасси каждой модели автомобилей. Понятно, что нет полной информации по этому вопросу. Я думаю, что для тех случаев, когда конкретный экземпляр автомобиля неизвестен, нужно предусмотреть как бы общий вариант - модель автомобиля без указания номера шасси. При появлении уточняющей информации можно заменить общее название на конкретное.
В связи с этим возникает другой вопрос: как обозначать автомобиль, для которого известен номер шасси? Можно указать автомобиль и номер в разных ячейках, но тогда, вероятно, сложно будет выбирать конкретный автомобиль через подстановку при заполнении результатов гонок.
Можно номер шасси указывать в скобках после названия автомобиля.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #131 : Ноября 26, 2007, 04:39:19 »
Допустим, у тебя есть таблица результатов гонок, в ней всякие столбцы, как полагается: имя, фамилия, место, время гонки, скорость и так далее. А что касается автомобиля, то можно поступить следующим образом: делаешь два поля, одно называешь, допустим, IDCar - сюда будет вписываться код модели автомобиля, - а второе ChassisNo - здесь будет храниться номер конкретного шасси. Поле IDCar будет служить для связи с другой таблицей, где можно хранить подробные технические характеристики. А номер шасси, по-моему, незачем переносить куда-нибудь еще, пусть так и находится в таблице результатов гонок. Тогда запрос на участие в гонках какого-либо конкретного автомобиля с известным номером шасси можно будет выполнять даже без помощи SQL, просто через фильтр данных. Алексей Рогачев39412,5590509259

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #132 : Ноября 26, 2007, 04:52:02 »
Я хочу заложить возможность заносить в БД технические характеристики, а в стародавние времена автомобили одной модели могли различаться даже такими серьёзными деталями, как тип подвески (у одной - "балка", у другой - труба де Диона). Поэтому каждое шасси стоит определять конкретно.
Тут ещё такой вопрос. При абсолютной оптимизации надо разделить марку автомобиля ("Мазерати"), модель (250Ф) и номер шасси (не говоря уж о номере двигателя).  Можно ли какими-либо операциями собирать в одну ячейку данные из нескольких? Чтобы, например, из "Мазерати" и "250Ф" можно было бы получить "Мазерати 250Ф".
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #133 : Ноября 26, 2007, 07:36:22 »
Цитата: Владимир Коваленко
Я хочу заложить возможность заносить в БД технические характеристики, а в стародавние времена автомобили одной модели могли различаться даже такими серьёзными деталями, как тип подвески (у одной - "балка", у другой - труба де Диона). Поэтому каждое шасси стоит определять конкретно.

Что ж, это тоже выход. Но тогда тебе надо будет для каждой гонки с абсолютной точностью знать все номера шасси.
Цитата: Владимир Коваленко
Тут ещё такой вопрос. При абсолютной оптимизации надо разделить марку автомобиля ("Мазерати"), модель (250Ф) и номер шасси (не говоря уж о номере двигателя).  Можно ли какими-либо операциями собирать в одну ячейку данные из нескольких? Чтобы, например, из "Мазерати" и "250Ф" можно было бы получить "Мазерати 250Ф".
Я не понял суть вопроса. Что в твоем понимании значит "собирать"? Получать в одной ячейке выводимого на экран результата совокупность данных из нескольких полей таблицы? При самостоятельной разработке СУБД - да, есть такое понятие "вычисляемое поле", то есть такое, значение которого получается из других полей таблицы по заданному тобой алгоритму. Наверняка в Access должно быть что-нибудь подобное.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #134 : Ноября 26, 2007, 07:37:57 »
Именно это я и имел в виду.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #135 : Ноября 26, 2007, 07:48:35 »
По-моему, прежде чем разрабатывать структуру представления автомобилей в таблице результатов, надо определиться со степенью подробности информации. Наверняка ведь конкретные номера шасси ты знаешь далеко не во всех случаях - иногда просто модель, иногда только марку автомобиля. Я могу предложить следующий вариант индексации - на примере той же "Мазерати-250Ф":
Mas - просто "Мазерати" (для тех случаев, когда модель неизвестна; в эту запись, разумеется, никакие технические данные не вводятся)
Mas250F - "Мазерати-250Ф" (когда неизвестен номер шасси; сюда можно ввести "общепринятые" технические данные, фигурирующие в популярных публикациях, или тоже не вводить ничего)
Mas250F-025 - "Мазерати-250Ф", шасси номер 25 (здесь уже полные технические данные по конкретному автомобилю, которые тебе удалось собрать)
Эти индексы будут служить для связи таблиц "Результаты гонок" и "Автомобили". А в таблице "Автомобили" можно будет сделать текстовое поле для полного названия.

Оффлайн Владимир

  • Опытный участник
  • **
  • Сообщений: 3 780
  • Карма 1110
  • ЧМ Ф-1: 1950-по настоящее время!
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #136 : Ноября 27, 2007, 16:40:12 »
 Есть несколько первичных вопросов, о которых для начала нужно хотя бы подумать и попытся порассуждать, прежде чем что-либо делать дальше.

Важно это потому, что разработанную структуру базы данных данных впоследствии изменять практически невозможно. Это весьма трудоемкая, временами невыполнимая операция. Это нужно четко понимать.

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

1. Уровень базы данных. Все серии Мировой автоспорта?  Ведущие серии ?
Одна серия?
Как вариант по отдельной базе данных на каждую серию. Но тт потеряется некоторый весьма интересный момент, как мне кажется. И получится много отдельных программ.  Но с другой стороны такие базы по каждой серии будут проще.

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

3. Учет аномалий, т.е. некоторый редких, "едичиных" событий.
Пример для Формулы-1:
0,5 очка за гонку и деление очков за быстрый круг;
выступления нескольких гонщиков на одном автомобиле и тем более ваыступления двух и более гонщиков на двух и более автомобилях в одной гонке (кажется одна гонка была какая-то в этом плане очень-очень запутанная) - с точки зрения организации отношений в базе данных - это коллизия весьма серьезная.
Прмеров этих хватит, думаю пока.

4. Перечень всех параметров, которые необходимо зафиксировать в базе. Добавление потом чего-то неучтенного  может казаться невозможным.

Например, хранить ди в базе только статистику или же и текстовые отчеты из разных источников? 

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

 gp239414,0595717593
Из детского сада. И это замечательно! ЧМ Ф-1-это реальность!
С некоторых - как гость на данном  форуме. Чем-то пригожусь еще в плане книг. По заказам литературы пишите через почту! 1000-ый Гран-при в истории ЧМ Ф-1 -рубеж!

Оффлайн Александр Кульчицкий

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 3 517
  • Карма 759
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #137 : Февраля 27, 2008, 06:03:20 »
Алексей, но твой сайт можно рассматривать тоже как некую базу данных, но там тоже не голая статистика. У тебя таблицы с результатами гонок связаны с автомобилями (фотографии, технические характеристики и тексты), трассами (то же самое), а сейчас к ним добавляются и гонщики.

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #138 : Февраля 27, 2008, 10:53:54 »
Сайт - это простой набор веб-страниц, а не база данных.
Кстати!!! Своим замечанием ты меня натолкнул на совершенно закономерное рассуждение: раз уж у меня из раздела результатов гонок есть переходы к трассам и автомобилям, надо бы, логически рассуждая, обеспечить такие переходы и к новому разделу о гонщиках. Мне как-то это совершенно в голову не приходило  Спасибо за подсказку!Алексей Рогачев39505,8215162037

Оффлайн Владимир

  • Опытный участник
  • **
  • Сообщений: 3 780
  • Карма 1110
  • ЧМ Ф-1: 1950-по настоящее время!
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #139 : Февраля 27, 2008, 18:32:01 »
 
Цитата: Владимир Коваленко
1. Ты делаешь выборку из результатов и делаешь вывод, что
2. ...
3. а вышеуказанные модели автомобилей потенциально были лучшими среди современников, но не показали результатов из-за проблем с доводкой. Такие вещи статистическая обработка отвергает, потому что основана исключительно на цифрах.
4. ...Тренировки...
1. Именно для выборки, причем максимально быстрой и с возможностью построения сложных запросов и вывода на экран в удобной форме  и делается БД. Иначе  все можно  было бы сохранять в текстовом виде.
2. Выбоки могут быть разными, если будет залодена информация и соответствующие запросы обработки к ней.
3. Можно ввести таблицу с подробным перечнем тезничесмких характеристик каждой машины... .
4. Никто не запрешает ввести табицы и по тренировкам (практикам), и по квалификации и по гонкам.

***

Просто, чем больше будет различных параметров, тем сложнее будет структура БД и тем больше информации нужно будет вносить.
Можно сделать и текстовые поля типа Memo (если не ошибаюсь)... .
Из детского сада. И это замечательно! ЧМ Ф-1-это реальность!
С некоторых - как гость на данном  форуме. Чем-то пригожусь еще в плане книг. По заказам литературы пишите через почту! 1000-ый Гран-при в истории ЧМ Ф-1 -рубеж!

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #140 : Февраля 28, 2008, 01:11:09 »
Есть определённая грань, после которой база данных уже не служит изучению истории, а существует ради себя самой и историю искажает.
И напомню, что я сужу с позиций автоспорта пятидесятых годов и более ранних периодов, когда всё было гораздо менее стандартизировано, чем сейчас, и для внесения в базу данных многие параметры пришлось бы тупо подгонять под современные термины и понятия, а это означает искажение общей картины.
Для себя я такое считаю неприемлемым, но никому не навязываю. Делайте каждый как считаете нужным. Делов-то!
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Александр Кульчицкий

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 3 517
  • Карма 759
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #141 : Февраля 28, 2008, 04:18:59 »
Цитата: Алексей Рогачев
Сайт - это простой набор веб-страниц, а не база данных.

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

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #142 : Февраля 28, 2008, 04:24:59 »
Цитата: gp2
1. Именно для выборки, причем максимально быстрой и с возможностью построения сложных запросов и вывода на экран в удобной форме  и делается БД. Иначе  все можно  было бы сохранять в текстовом виде.

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

Оффлайн Александр Кульчицкий

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 3 517
  • Карма 759
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #143 : Февраля 28, 2008, 05:10:48 »
Относительно выборки я с тобой согласен. Просто выборка из текстовых документов гораздо сложней, но она, в принципе, возможна. Вспомни возможности "Ворда" или нормативно-справочных прграмм типа "Консультант Плюс", "Гарант" и им подобных. С фото и видеоматериалами еще сложней, выборка для них может осуществляться только при помощи каталогав, т.е. эти материалы должны быть каталогизированы. Это как библиотека, которую нельзя себе представить без каталога. Более простой вариант, но и более примитивный с точки зрения возможности выборки - идентификация содержания и названия.
Не удивлюсь, если скоро научатся делать выборку из голосовых документов, как сейчас распознают рукописный текст (печатный уже давно научились).
В связи с этим такие базы данных, о которых я говорю, гораздо сложней. Недаром Володя не видит, как формализовать некоторые вещи. Я этого тоже не знаю.

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #144 : Февраля 28, 2008, 07:13:50 »
В принципе такие базы данных, о которых ты говоришь, можно создавать и сейчас. В формате Paradox 7, в котором реализована моя БД, есть специальные типы полей для изображений и для длинных текстов - а ведь этот формат уже довольно старый, ему уже лет десять, кажется.

Оффлайн Александр Кульчицкий

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 3 517
  • Карма 759
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #145 : Февраля 28, 2008, 07:56:43 »
Да? А мне показалось, что меня слишком уж занесло. Размечтался.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #146 : Апреля 13, 2008, 01:23:43 »
База данных некоего Дино Бесена: http://www.geocities.com/f1db2000/.
Собственно файл базы данных: http://rapidshare.com/files/106744659/f1history_20080411.rar.
Тема на "Ностальгии" с обсуждением: Formula 1 History Database.
БД плохая, но для интереса стоит посмотреть.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #147 : Июня 13, 2008, 13:29:14 »
Снова вернулся к своей базе данных. Ввёл такое понятие, как СТАТУС гонки. В наше время это аналог статуса серии. Бывают серии международные, попавшие под покровительство ФИА. Они публикуются в официальном календаре федерации (2008 International Sporting Calendar ). Есть другие международные серии, которые не попали в календарь ФИА. Есть серии национальные, к участию в которых допускаются только обладатели национальных лицензий. Наконец, клубные соревнования предназначены только для членов своих клубов.
Я думаю, что в этом описании можно найти массу спорных ситуаций, но, в целом, схема примерно такая.
Раньше было то же самое, только серий не было, а вышеописанные признаки касались конкретных гонок.
Статусы гонок будут такими:
а) международная гонка ФИА/АИАКР;
б) международная гонка;
в) национальная гонка;
г) местная гонка;
д) клубная гонка;
е) неопределённый статус.
Схема БД на сегодняшний день выглядит следующим образом:

Ещё раз всё просмотрел и пришёл к выводу, что принципиальные составляющие базы готовы, и можно приступать к заполнению. Отдельные детали будут отрабатываться потом. Лучше всё-таки начать заполнять, а то это дело ещё долго не сдвинется с мёртвой точки.
Заслуживающей внимания статистики много, но поскольку статистика основных соревнований в интернете почти полностью основана на Шелдоне, решил вносить в БД первоисточник. Потом можно будет добавлять остальное.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Мозговой Роман

  • Опытный участник
  • **
  • Сообщений: 183
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #148 : Июня 16, 2008, 03:06:38 »
Владимир, может, в блоке "Автомобили" по примеру "Результатов" поставить поле Примечание? Будет удобно в тех случаях, когда в разных источниках встречается отличная информация по марке авто или (чаще) двигателя. В доп. поле можно будет указать источник основной информации и альтернативный вариант.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #149 : Июня 16, 2008, 03:40:49 »
Я думал над подобными проблемами. Возможны ещё ситуации, когда для одной гонки известны все детали, включая номера шасси и двигателя, а для другой таких деталей нет, хотя есть мнение, что они должны быть такими же.
Я планирую создавать отдельные записи для каждого возможного варианта. если подробности неизвестны, будет использоваться общий вариант, даже если доподлинно известно, что использовались разные шасси.
Например, вот какие (вымышленные) варианты могут быть.
а) "Феррари-100" (общий);
б) "Феррари-100", номер шасси - 001;
в) "Феррари-100", номер шасси - 002 (и т.д.);
г) "Феррари-100", номер шасси - 001, номер двигателя - 001 (и т.д.).
Несмотря на то, что вариант "г" - это однозначно "б" и, тем более, "а", он может использоваться только тогда, когда точно известно, что на автомобиле стоял первый двигатель. Затем, допустим, его поменяли, но для определённой гонки мы не знаем, в ней участвовал новый двигатель или нет, и тогда используем вариант "б". Наконец, на другую гонку привезли обе машины, но мы не знаем, какой гонщик на каком шасси выступал. Тогда для обоих в БД будет числиться общий вариант "а".
Я не вижу в этом проблемы, потому что в любой момент в записи участника можно поменять код автомобиля с одного на другой. Правильно я мыслю?
Вопрос, возможно, глупый, но так как я очень мало занимался с БД, у меня никогда нет полной уверенности в том, правильно ли я понимаю ситуацию.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.