> "Кофейня" > Может кто-нить тут занимается созданием БД?


: Missory 26.7.2006, 7:43
возник небольшой, но серьезный вопрос, хотел посоветоватся!

: alledishev 26.7.2006, 7:54
Missory
Вопрос какого характера?
Когда то сталкивался, может помогу.

: GET 26.7.2006, 8:00
Да тут у нас ДБшников полно. Например, al2000.

: Missory 26.7.2006, 8:09
Задача такая:

База данных статистики, т.е. основной объем данных это цифры.
Эти цифры делятся на периоды, которым они соответсвуют.

Всего 6 периодов.

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

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

: al2000 26.7.2006, 8:20
GET
Цитата
Да тут у нас ДБшников полно. Например, al2000.

wow.gif wow.gif wow.gif wow.gif ты что имел ввиду?

: Vins 26.7.2006, 9:04
wind48.gif Вот и мне надо, помогите посоветуйте wind48.gif
Нужна база или надстройка, для общественной организации,
ФИО, паспорт, адрес, примечание, членские взносы. Доступ только пользователя, без сетки. задачи такие вести учет членов, что бы удобно корректировать реквизиты. вести учет поступлений взносов, поквартально и за год, хотя бы так. Ну и поиск по хотя бы порядковому номеру
Замучался в экселе уже более 500 человек.
Вроде для 1с, что то есть.

: Armann 26.7.2006, 9:44
Missory, лучше сделать одну таблицу. При наличии индексов разницы в скорости не заметишь, а в удобстве - намного выиграешь.
Vins, если есть желание изучить Microsoft Access - то это можно сделать там. Или вам нужен уже готовый продукт?

: Vins 26.7.2006, 9:48
Armann
Хотелось бы что то уже готовое и попроще, а то общественный казначей не разбереться.

: RomanMSK 26.7.2006, 9:55
Missory

Согласен с Armann, пихать всё в одну таблицу.
Просмотр делать через фильтры, которые будут показывать только нужные группы


Vins
MS Access 2003 тебе нужен.
Если лень писать базу (для меня этот - не более 1 часа), для тебя там есть уже готовые БД (шаблоны), например, склад, сотрудники, расходы, контакты.

вести такие списки в Excel - пустая трата времени.

: Missory 26.7.2006, 10:06
Armann
RomanMSK
Есть одна проблемка!
Сервак не ахти, 512 оперативки!
На нем итак стоит 2 базы, которыми активно пользуются и еще 3 которыми крайне редно!
Нарузка получится большая!

На данный момент есть реализация в разных таблицах, гемора много, но скорость приличная!
Еще выигрыш появляется в блокировках таблиц. Блокировка одной таблицы более критичка, чем одной из нескольких.
Индексы, разумеется, есть, но, что самое удивительное, они большой производительности не дали (пытаюсь разбратся почему). Сейчас вношу в БД информацию котороая будет накапливатся в течении 10 лет, как бы тестирую!
Посмотрю, что будет с блокировками и индексами!

: Armann 26.7.2006, 10:15
Missory, какой сервер БД? MS SQL? MySQL?
Как много данных?
Какой характер работы с данными, в основном чтение или в основном запись? Насколько интенсивно?
Еще почти в каждом сервере БД можно посмотреть план выполняемого запроса, и увидеть используются индексы или нет. В любом случае стоит поискать книжку или статейки про использование индексов, их плюсы и минусы

: Missory 26.7.2006, 10:24
Armann
Цитата
какой сервер БД?

MS SQL 2000 SP4

Цитата
Как много данных?

Не особо много, то хватает.
За год около 1ГБ, но со временем будет расти меньше

Цитата
Какой характер работы с данными, в основном чтение или в основном запись?

Сам не знаю! Планируется просмотр БД через веб(~500 компов будут одновременно смотреть) и клиентская часть(для внесения данных) в ~100 отделах.
В основном, конечно это просмотр информации!

Цитата
Еще почти в каждом сервере БД можно посмотреть план выполняемого запроса

Смотрел! Индексы берет павильные!

: Armann 26.7.2006, 11:03
Missory, неплохая база получится, однозначна наращивать оперативку на сервере нужно smile.gif За год гигабайт - это в одной таблице?
Если в основном просмотр информации - на блокировках можно особо не заморачиваться, и кроме того можно не экономить на индексах - наделать их на разные случаи жизни. Конкретно по поводу быстродействия, если не касаться оптимальности запросов, то тут разве что такие советы:
1. Однозначно добавлять на сервак памяти. Даже гиговая база на 512 мегах оперативки ворочаться будет не очень быстро, а еще там есть и другие базы.
2. Если за год гигабайт в одной таблице - то видимо все таки придется разделять по разным таблицам, хотя бы по годам. Как вариант - нарабатывать вторичные таблицы, в разрезе нужных пользователям данных, и работать дальше уже со вторичными таблицами

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

: Missory 26.7.2006, 11:18
Armann
Цитата
За год гигабайт - это в одной таблице?

Неа, гиг со всех таблиц, но в остальных таблицах может прибавится по 20-100 записей и все! Конечно основные таблички это будудт именно с данными. Они-то и будут создавась объем.

Цитата
Если в основном просмотр информации - на блокировках можно особо не заморачиваться

Тут и получается не определеность. Конечно просмотров будет больше, но и UPDATE будет не мало, гораз до больше, чем INSERT!

Оперативку пытаюсь выбить.... обещали 4 ГБ к концу года!

Спасибо за совет!

: Armann 26.7.2006, 11:35
Еще совет - поищите обучающие курсы по MS SQL 2000, в них в принципе достаточно хорошо все написано, и про оптимизацию в том числе. Ну и есть какой то очень хороший хелп в поставке MS SQL, только как называется - забыл smile.gif Есть там в названии слово Book, она даже в меню Программы присутствует
Удачи smile.gif

: Vins 26.7.2006, 11:39
Так мне то что кроме Microsoft Access посоветуйте, не охота заморачиваться в нем, время тратить

: Missory 26.7.2006, 11:44
Vins
А чем тебя ацес не устраивает?

Между прочим вполне нормальная СУБД (если не влазить в будри не ставить переде ней задачи, типа хацу все сразу), то работает реально!

: Vins 26.7.2006, 11:48
Missory Ну во первых Это мне придется делать, а я не особо силен, во вторых хотелось что то попроще и полегче весом, комп там старый 98 винда

: Missory 26.7.2006, 12:07
Vins
1) Не ищи легких путей! Я думаю за день два можно кое чему научится!

2) А это не страшно! Она у тебя будет нормально работать! Конечно супер эффективности не будет, но это даже не из-за характеристик компа, а из-за самой СУБД

: Vins 26.7.2006, 12:17
Спасибо, пойду покупать книжку Microsoft Access для чайников

: Missory 26.7.2006, 12:29
Vins
Ацес для начинающих в самый раз!
Есть таая штука, как нормализация таблиц, штука полезная и новичек порсто не сможет сделать ее сам. А Ацес сам делает!

И руский он полностью. Многие вещи понятны будут!

Так что удачи!
По крайней мере я тебе больше ничего не могу посоветовать из ПО!

: RomanMSK 26.7.2006, 16:33
чо за ацес, ребята, вы что, неграмотные ?

читается эксэсс...

: Vins 26.7.2006, 17:57
RomanMSK
Отредактировал свои посты заменил ацесс на Microsoft Access, но легче от этого не стало

: Кот 26.7.2006, 21:56
Если есть время и желание - Visual Basic 2005 Express Edition (на выходе простенькая софтина и обращение к SQL-серверу без шифрования). MS SQL имеет очень эффективную систему связи таблиц и хэширования данных, плюс при грамотных индексах отвечает даже на сложные запросы практически мгновенно
Просто научитесь правильно строить запросы. Кстати, если сделать блокировку "оптимистичную" и статическую, требования к памяти и быстродействию в MS SQL уменьшаются в разы. Учитесь правильно строить запросы!!!

Если нет времени и желания - Access и его модель данных Jet. Тормозить будет страшно (у нас база всего 300 метров - простой запрос (не отчет!) делается секунд 20-30, если сложный отчет - то и полчаса как с куста).
К недостаткам можно отнести кривую систему индексов вплоть до формата базы Jet 2.0, сильно тормозящую работу. Что самое смешное, полноценно индексы ускоряют работу только под Win 2k/XP, в "девятках" толку от них, как и в Jet 1.5 из состава Access 97...

Если база однопользовательская (локальная), имеет в пределах 10000-15000 записей (строк) и в пределах 20-30 полей (столбцов) каждый при размере файла в пределах 10-15 мегабайт - оптимальным будет использование MS Excel с небольшой нормализацией и допиской скриптов на VBA (всякие там формочки для ввода/выборки, фильтры и т.п.). И нафиг не нужен громоздкий Access и тем паче спецсофтина
У меня, например, в обскриптованном экселе велась база счетов отдела закупок... года полтора велась (потом я ушел оттуда, может, и после меня жила еще) - в день по 3-5 счетов как с куста, плюс отслеживаение всех (поэтапных в том числе!!!) оплат, отгрузок и т.п. И ничего, только под конец фильтры-выборки переключались секунд по 5, да для печати отчеты готовились по минуте-две (даже прогресс-бар пришлось дописывать, чтоб в панике не давили резет) - а комп был всего лишь Celeron-366 с 64 метрами памяти под Win NT4.

Короче, все зависит от задач

Missory / Vins, скиньте мне срочно на мыл ailcat(собака)ngs.ru структуру данных и т.п. (если сможете скинуть примеры в экселе чего есть и чего надо - будет вообще супер) - я их нормализую и соберу БД + софтинку нарисую. Я сейчас как раз пытаюсь разобраться с VB2005EE (там дофига хорошего добавили по сравнению с прежними версиями) да с одним потрясным контролом связи с SQL-базами (в тырнете нарыл буквально на днях) - заодно и поучусь на конкретном примере, и вам, глядишь, польза выйдет.
Missory, когда в Москву приедешь - отдам софтинку (ну, или обломаю разочарованно - хотя постараюсь все-таки осилить, ибо самому интересно реальную задачку решить).
Vins, ну а с тобой проще пересечься будет - так что, сам понимаешь... Но, сразу предупрежу - прога с VB2005 на Win 9x/Me работать не будет, ей минимум 2000SP3, а лучше XP надо! Если удастся откуда скачать VB6 - соберу тебе прогу в нем на Access'овском движке JET 2.0 (все покомпактнее будет, чем Access, да и писал я на нем году в 2002 одну фигулину, до сих пор в той фирме работает - надеюсь, еще не все забыл smile.gif ).

: Missory 27.7.2006, 5:10
Кот
Спасибо, но она у меня нормализована, да и смысла мне писать софтину нет, т.е. он уже написла. БД уже тоже почти доделана. Щас индексами занимаюсь, связями!

Хотел заметить, разработанная Мелкософтом WINFS (файловая система) специально для БД дает достаточно большой прирост производительности на Access с использованием Jet какой-то там новой версии! Для их любимого SQL 2005 тоже есть какая-то заточка. Но она работает в системе с самим СУБД, т.е. там управление (размещение данных) ведется через саму СУБД! Как конкретно это работает я не знаю, возможно только на W Vista. В общем MS обещают, что БД будут габотать гораз до быстрее при W Vista, MS SQL, WINFS и ахренительными характеристиками компа!

ИМХО Я считаю, что это очередной рекламный ход, что бы продать сервера фирмы IBM и свой софт!

: Missory 27.7.2006, 6:18
Если кому инетересно, то схемка такая:
user posted image

: Кот 27.7.2006, 7:22
Если и продавать, то никак не IBM-овские сервера - с ними мелкомягкие давно рассорились и я не слышал, чтоб мирились...
NTFS - самая медленная файловая система для серверов. Компенсируется это одной из самых высоких надежностью сохранности данных при программных сбоях компьютера. На производительность БД она влияет только отрицательно (если БД не хеширует индексы и т.п. фенечки).
MS SQL 2005 - обладает отличнейшим механизмом выборки (и хэширования индексов), благодаря чему ей быстродействие файловой системы становится вторичным, особенно если результат запроса на диске хранится в близко расположенных областях.
MS Access с движком до Jet 2.0 (Офис-2002) не умеет хэшировать данные и индексты, работая с ними напрямую с диска, что явно не прибавляет быстродействия. Другое дело, что, возможно, в Офис-2007 (в Офис-2003?) таки ввели новую версию Jet, которая все это умеет делать, благо опыт MS SQL есть уже много лет - тогда описанное ограничение носит чисто коммерческий характер (механизм заблокирован программно для предыдущих версий ОС).

Просто на небольших базах (до 300-500 мегабайт данных) вы врядли заметите разницу быстродействия. А вот если попробовать запустить 300-метровую базу под FAT-32 (Win Me) и под NTFS 5.x (Win 2k/XP) - то в первой она покажет быстродействие на 20-30% выше....

: alledishev 27.7.2006, 7:34
Кот
Один блин химик, другой компьютерщик.

Такой разносторонний народ.

: Missory 27.7.2006, 7:37
alledishev
И все мы автомобилисты... beer.gif

: alledishev 27.7.2006, 8:47
Missory
А куда без этого? wind14.gif tank.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)