Руководство для начинающих по дизайну базы данных SQL [закрыто]



знаете ли вы хороший источник, чтобы узнать, как разрабатывать решения SQL?



помимо основного синтаксиса языка, я ищу что-то, чтобы помочь мне понять:




  1. какие таблицы строить и как их связывать

  2. как проектировать для разных масштабов (небольшое клиентское приложение для огромного распределенного веб-сайта)

  3. как писать эффективные / эффективные / элегантные SQL-запросы

616   7  

7 ответов:

Я начал с этой книги:дизайн реляционной базы данных четко объяснен (серия Моргана Кауфмана в системах управления данными) (Мягкая обложка) Ян л. Харрингтон и нашел его очень ясным и полезным

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

Я думаю, что SQL и проектирования баз данных разные (но дополнительных) навыков.

Я начал с этой статьи

http://en.tekstenuitleg.net/articles/software/database-design-tutorial/intro.html

Это довольно лаконично по сравнению с чтением целой книги, и это объясняет основы дизайна базы данных (нормализация, типы отношений) очень хорошо.

опыт имеет большое значение, но с точки зрения дизайна таблиц вы можете многому научиться от того, как ORMs, такие как Hibernate и Grails, работают, чтобы понять, почему они делают что-то. Кроме того:

  1. держите разные типы данных отдельно - не храните адреса в таблице заказов, например, ссылка на адрес в отдельной таблице адресов.

  2. Мне лично нравится иметь целочисленный или длинный суррогатный ключ на каждой таблице (который содержит данные, а не те, которые ссылаются различные таблицы вместе, например, отношения m:n), который является первичным ключом.

  3. Мне также нравится иметь созданный и измененный столбец временной метки.

  4. убедитесь, что каждый столбец, который вы делаете "where column = val" в любом запросе имеет индекс. Может быть, не самый совершенный индекс в мире для типа данных, но по крайней мере индекс.

  5. настройка внешних ключей. Также можно настроить удаление и изменение правил, если это необходимо, чтобы либо cascade, либо set null, в зависимости от структуры объекта (поэтому вам нужно удалить только один раз в "голове" вашего дерева объектов, и все подобъекты этого объекта удаляются автоматически).

  6. Если вы хотите modularise ваш код, вы, возможно, захотите, чтобы ваш modularise схемы БД - например, это "клиенты" зона, это "приказы" области, и это "продукты", и использовать для соединения/связи таблиц между ними, даже если они 1:N отношения, и, возможно, продублировать важная информация (например, дублируйте название продукта, код, цену в таблице order_details). Почитайте о нормализации.

  7. кто - то другой будет рекомендовать прямо противоположное для некоторых или всех из вышеперечисленных :p-никогда не один истинный способ сделать некоторые вещи Эх!

Мне очень понравилась эта статья.. http://www.codeproject.com/Articles/359654/important-database-designing-rules-which-I-fo

Head First SQL большое введение.

Это вопросы, которые, по моему мнению, требуют разных знаний из разных областей.

  1. вы просто не можете заранее знать," какие " таблицы строить, вы должны знать проблему, которую вы должны решить, и соответствующим образом спроектировать схему;
  2. Это сочетание проектного решения базы данных и пользовательских возможностей поставщика базы данных (т. е. вы должны проверить документацию вашей (r)СУБД и в конечном итоге узнать некоторые "советы и рекомендации" для масштабирования), а также конфигурации СУБД имеет решающее значение для масштабирования (репликация, разделение данных и т. д.);
  3. опять же, почти каждая СУБД поставляется с определенным "диалектом" языка SQL, поэтому, если вы хотите эффективные запросы, вы должны изучить этот конкретный диалект --btw. скорее всего, написать элегантный запрос, который также эффективен, - это большое дело: элегантность и эффективность часто конфликтуют цели -

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

прошло некоторое время с тех пор, как я его прочитал (так что я не уверен, насколько это все еще актуально), но мое воспоминание заключается в том, что книга Джо Селко "SQL для Smarties" предоставляет много информации о написании элегантных, эффективных и эффективных запросов.

Comments

    Ничего не найдено.