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

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

Хотел бы расширить свои знания в области проектирования баз данных, интересуют такие вопросы как:
1) Выбор СУБД, т.е. что в каких случаях выбирать
2) Выбор подсистем субд
3) Освещение моментов выбора индексов
4) Может быть какие-нибудь паттерны проектирования
  • Вопрос задан
  • 5517 просмотров
Пригласить эксперта
Ответы на вопрос 6
devbutch
@devbutch
Агент "Везде успеть"
Программирование баз данных SQL. Типичные ошибки и...
Отличная книга, которая проливает свет на проектирование и типичные ошибки.(то бишь паттерны)
Ответ написан
bboytiwst
@bboytiwst
Не совсем о проектировании, но книга очень толковая
High performance Mysql 3rd edition
Ответ написан
igruschkafox
@igruschkafox
Специалист по сопровождению БД MS SQL
Сейчас буду ругаться :)

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

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

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

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

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

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

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
SaveTime Москва
от 140 000 до 200 000 руб.
Badoo Development Москва
от 180 000 до 250 000 руб.