Реляционные базы данных - должно быть больше прав? - PullRequest
15 голосов
/ 15 апреля 2009

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

Мой уровень знаний, когда речь заходит о базах данных, однако (я бы предположил) довольно базовый - я могу правильно моделировать отношения данных с помощью диаграмм ER, таблиц соединений, обработки «многие ко многим», «один ко многим» и т. Д. И т. Д. Я имею опыт, когда дело доходит до программирования в целом, и я полагаю, что мои знания базы данных подобны знанию основ объектно-ориентированного программирования, то есть, как моделировать автомобильный класс, наследовать от класса транспортного средства, содержать объекты колеса и так далее.

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

Все, что я могу сейчас сделать, это, вероятно, моя база данных фильмов в бэк-энде моего личного сайта, которая, вероятно, рухнула бы, если бы я был Amazon и должен был хранить миллионы фильмов. Так что есть тема масштабируемости, верно? Я уверен, что в дизайне базы данных есть довольно «стандартный» набор предметов / концепций, которые вы просто должны понимать и применять в реальной жизни, если собираетесь работать с базами данных на профессиональном уровне.

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

Заранее спасибо!

Ответы [ 19 ]

9 голосов
/ 15 апреля 2009

Стандартный текст в этом поле - «Введение в системы баз данных», C. J. Date.

У меня двадцать лет опыта в C; Я прочитал это, подумал, что это отлично, и я написал из-за этого реляционную базу данных (правильную, а не эту малярию SQL!).

4 голосов
/ 24 апреля 2009

Еще одна область - это многомерное моделирование и хранение данных.

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

3 голосов
/ 28 апреля 2009

Я предложу список областей, которые вы можете рассмотреть как аспекты программирования с базами данных. Я бы не стал утверждать, что вам нужно быть экспертом во всех из них или даже в большинстве из них, чтобы иметь возможность программировать с использованием СУБД или даже программировать СУБД. Тем не менее, это все темы, которые в какой-то момент имеют какое-то отношение - в произвольном порядке:

  • Запрос языка дизайна
  • Оптимизация запросов
  • Переписывание запросов
  • Типы данных
  • Организация хранения
  • Управление транзакциями
  • Протоколы связи
  • Шифрование
  • Аутентификация и идентификация
  • Схема проектирования
  • Тиражирование
  • Резервное копирование и восстановление
  • Двухфазные коммиты
  • Оптимистичный контроль параллелизма
  • Блокировка и пессимистический контроль параллелизма
  • Авторизация
  • Контроль доступа на основе меток
  • Теория множеств
  • Реляционная теория
  • Распределенный запрос
  • логическая логика
  • Определяемые пользователем типы и функции
  • Управление каталогами
  • Управление буфером
  • Сортировка
  • Интернационализация (I18N), Локализация (L10N), Глобализация (G11N)
  • Кванторы
  • Аудит
  • Триггеры
  • Хранимые процедуры

Я также не претендую на полноту или минимальность.

3 голосов
/ 27 апреля 2009

Получите больше грязи от C. J. Date Database In Depth: Реляционная теория для практиков , если его Введение в системы баз данных недостаточно грязное для вас.

Серьезно, эти две книги дадут вам гораздо больше знаний о РСУБД, в гораздо меньшем объеме, чем многие другие профессиональные работники баз данных. В частности, Database in Depth рассматривает, как относиться к базам данных как к реляционным, даже если язык их не поддерживает, и как превратить SQL в язык, близкий к реляционному.

2 голосов
/ 28 апреля 2009

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

http://database -programmer.blogspot.com / 2008/09 / всеобъемлющий стол-из-contents.html

Это сайт Кеннета Даунса, он идет от самых основ SQL и углубляется в более сложные темы. В конце концов, человек написал рамки вокруг БД.

Еще один - высокая масштабируемость ...

http://highscalability.com/

Они попадают в каждое царство БД.

Надеюсь, это поможет.

2 голосов
/ 29 апреля 2009

Я думаю, что set + реляционная алгебра - это то, о чем большинство пользователей баз данных мало знают, но хорошо бы научиться. Когда вы поймете логику, лежащую в основе отображения одного отношения к другому, вы начнете более четко видеть, почему такие вещи, как нормализация, хороши, почему лучше избегать значений NULL, если это возможно, и т. Д. Вы также начинаете видеть недостатки в SQL по сравнению с более чистыми языками реляционных запросов. где функции накладывают ограничения на парадигму из-за соображений производительности и т. д.

1 голос
/ 24 апреля 2009

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

Полнотекстовый поиск и XML - это темы, которые, похоже, появляются все больше и больше.

У меня нет опыта работы с ним, но я знаю, что у DB2 (пробная версия которой есть) есть некоторые новые сумасшедшие возможности)

Веселитесь: -)

1 голос
/ 24 апреля 2009

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

Некоторая базовая алгебра отношений является полезным знанием и тесно связана с теорией множеств.

1 голос
/ 15 апреля 2009

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

...