Можете посоветовать книжку по проектированию баз данных?

Здравствуйте,

Хотел бы расширить свои знания в области проектирования баз данных, интересуют такие вопросы как:
1) Выбор СУБД, т.е. что в каких случаях выбирать
2) Выбор подсистем субд
3) Освещение моментов выбора индексов
4) Может быть какие-нибудь паттерны проектирования
  • Вопрос задан
  • 6847 просмотров
Пригласить эксперта
Ответы на вопрос 6
slinkinone
@slinkinone
Агент "Везде успеть"
Программирование баз данных SQL. Типичные ошибки и...
Отличная книга, которая проливает свет на проектирование и типичные ошибки.(то бишь паттерны)
Ответ написан
Комментировать
@shamyyl
Web-разработчик
Книжка по PostgreSQL postgresql.leopard.in.ua
Ответ написан
Комментировать
igruschkafox
@igruschkafox
Специалист по сопровождению БД MS SQL
Сейчас буду ругаться :)

1) Выбор СУБД, т.е. что в каких случаях выбирать
Основываясь на своем опыте (22 - проекта) рекомендую так:
СУБД это всего лишь инструмент
- Если в организации есть хорошие специалисты которые могут эффективно работать на MS SQL знают все его возможности и понимают почему он так дорого стоит - тогда MS SQL
- Если в организации есть хорошие специалисты Ораклы - тогда лучше ставить Ораклу
- Если обрабатываются очень очень секретные данные - тогда тоже лучше что то отличное от MS SQL - например Ораклу (так как операционная система отличная от Виндовс) - но в большинстве компаний данные не представляют интерес для спецслужб :)

2) Выбор подсистем субд
- Было бы здорово понять что такое "Подсистема СУБД"

3) Освещение моментов выбора индексов
- Все зависит от запросов которые идут в базу, а так же от данных. На начальном этапе индексирования в MS SQL пригодится Помощьник по настройки ядра СУБД. Дальше уже надо исходить из анализа планов запросов (не обязательно всех, а хотя бы самых длительных). При этом надо учитывать что на тестовых данных будут оптимальны одни индексы, а через год эксплуатации имеющиеся индексы уже могут стать не самым лучшим способом поиска по таблицам .... это админить надо базу ...

4) Может быть какие-нибудь паттерны проектирования
- В моей компании только и делают что переучивают пришедших специалистов у которых в голове свои патерны! Честное слово - в институте такой Херни на вдалбливают в голову студентов что диву даешься (например: некоторые разработчики в каждой таблице вставляют поле идентети - хотя по нему поиск не производится,и еще на это же поле вешают кластерный индекс - "Мудацкое Российское Высшее Образование"(с))
- Патерны Хорошо! Замечательно! Но универсальных способов нет!
Ознакомится с ними стоит что бы не делать ошибок - но даже если сделали такую ошибку - то никто не мешает потом исправить :) разбить таблицу на несколько или объеденить пару таблиц в одну. Главное что бы апликушники (программисты клиентской части) пользовались принципами ООП (что бы сильно не переделывать код программы при изменении структуры базы)
Ответ написан
Комментировать
bboytiwst
@bboytiwst
Не совсем о проектировании, но книга очень толковая
High performance Mysql 3rd edition
Ответ написан
Комментировать
Sergei_Erjemin
@Sergei_Erjemin
Улыбайся, будь самураем...
Не усложняйте себе жизнь. У вас есть данные. Вы знаете как вы с ними будете обращаться, как часто читать, как часто обновлять, по каким полям сортировать, как группировать... Вы знаете каких данных много, каких мало... Все что остается -- разбросать по разным таблицам и наладить связи.

Из того, что реально стоит забот: решить в каком месте стоит уступать стройности данных и выбрать дублирование в ущерб производительности. Но это лучше понять когда начнете реально нагружать свое творение и увидите, что, например, рекурсивные вопросы не так уж красивы и ради них стоит ввести еще одно поле. А какое -- с уровнем вложенности или обозначения корня вложений -- решите по ходу дела.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы