Конференция "Прочее" » Посоветуйте книгу
 
  • cosinus (07.11.08 12:30) [0]
    Доброго всем дня.
    Посоветуйте книгу по проектированию БД (не по кокретной реализации в программировании). То есть есть некая задача, нужно "разрисовать на бумаге" какие таблички что и как будут хранить, как будут связаны и т.д. Насколько я понимаю, с этого надо начинать построение любой БД.
    Задача то есть, а в голове по этому вопросу - каша полная.
    Желательно, что-нибудь не сильно сложное, для начала.
  • MsGuns © (07.11.08 12:38) [1]
    Проектирование БД штука весьма нетривиальная, поэтому "что-нибудь не сильно сложное" посоветовать крайне трудно. Мне в свое время очень помог Кнут, но его книги не так просты для новичка.
  • TUser © (07.11.08 12:40) [2]
    > Мне в свое время очень помог Кнут

    А где у него про БД?

    Из непростого, пожалуйста - Дейт.
  • Правильный$Вася (07.11.08 13:07) [3]
    если есть первичное понимание отношений, кортежей и т.п., то лучше поискать книжки с фразами "первая нормальная форма 1NF, вторая нормальная форма 2NF, третья нормальная форма 3NF" и т.д.
  • MsGuns © (07.11.08 13:08) [4]
    Сортировка, поиск, кортежи, деревья - это все по-твоему не имеет отношение к БД ?
  • TUser © (07.11.08 13:12) [5]
    Это имеет отношение к реализации движка БД. А автора, имхо, интересует, как конкретную предметную область описать в виде таблиц, что проиндексировать, где какие ключи, где как нормализовать, ...
  • cosinus (07.11.08 13:14) [6]

    > Правильный$Вася   (07.11.08 13:07) [3]

    Нету понимания (


    > TUser ©   (07.11.08 13:12) [5]

    Именно так.
  • MsGuns © (07.11.08 14:50) [7]
    Приступать к проектированию БД не зная основ алгоритмов хранения и обработки данных в ЭВМ - это изначально наделать кучу концептуальных ошибок, без них невозможно понять даже сути нормализации - зачем она нужна и как работает.
    Например, в каких случаях данные о сущности нужно разбивать на несколько таблиц, а в каких достаточно одной коммулятивной.

    Ну и, конечно, главное - это свободное ориентирование в области автоматизации. Невозможно написать даже средненькую бухгалтерскую СУБД, не понимая сущности бухучета и не зная основ его построения.

    Единственное, что я могу советовать уверенно - ни в коем случае не брать в качестве учебного пособия авторов типа Фаронова или Архангельского.
  • TUser © (07.11.08 14:55) [8]
    > Приступать к проектированию БД не зная основ алгоритмов хранения и обработки данных в ЭВМ - это ...

    а еще надо знать английский язык, основы синтаксиса какого-нибудь алгоритмического и много еще чего. Но автор спросил про проектирование БД, так вот ему Дейт, а учебник по алгоритмам и английскому он не просил. Имхо.
  • Sergey13 © (07.11.08 14:58) [9]
    > [7] MsGuns ©   (07.11.08 14:50)

    ИМХО. Так можно всю жизнь изучать основы компьютерного мирозданья и так и не спроектировать ни одного склада. 8-)
  • MsGuns © (07.11.08 15:06) [10]
    >TUser ©   (07.11.08 14:55) [8]
    >Но автор спросил про проектирование БД, так вот ему Дейт, а учебник по алгоритмам и английскому он не просил. Имхо.

     Я ничего не имею против этого известного и уважаемого товарища. Но у него, насколько помню, много посвящено "как", но слишком мало "зачем".

    >Sergey13 ©   (07.11.08 14:58) [9]
    >ИМХО. Так можно всю жизнь изучать основы компьютерного мирозданья и так и не спроектировать ни одного склада. 8-)

    Видишь ли, конечно, можно любому первокласснику объяснить как запрограммировать телефонный справочник, особенно если дать все необходимые компоненты для доступа к таблице, выборки, сортировки и т.д. Но какова цена будет этому его "справочнику"?
    ИМХО, не стОит браться за дело лишь бы сделать его кое-как. По крайней мере никакого удовлетворения это "работа" тебе не доставит. Не говоря уже о пользе окружающим :)
  • Sergey13 © (07.11.08 15:15) [11]
    > [10] MsGuns ©   (07.11.08 15:06)

    > ИМХО, не стОит браться за дело лишь бы сделать его кое-как.

    ИМХО, за дело надо браться. Или НЕ браться. Первая БД все равно не будет здоровской хоть все умные книжки перечитай. Все равно опыт наживать надо.
    Но программирование чем и прекрасно - всегда можно начать сначала и переделать все к чертовой матери незаметно для заказчика (и за его деньги). 8-)
  • MsGuns © (07.11.08 15:19) [12]
    >TUser ©   (07.11.08 14:55) [8]
    >Но автор спросил про проектирование БД, так вот ему Дейт, а учебник по алгоритмам и английскому он не просил. Имхо.

     Я ничего не имею против этого известного и уважаемого товарища. Но у него, насколько помню, много посвящено "как", но слишком мало "зачем".

    >Sergey13 ©   (07.11.08 14:58) [9]
    >ИМХО. Так можно всю жизнь изучать основы компьютерного мирозданья и так и не спроектировать ни одного склада. 8-)

    Видишь ли, конечно, можно любому первокласснику объяснить как запрограммировать телефонный справочник, особенно если дать все необходимые компоненты для доступа к таблице, выборки, сортировки и т.д. Но какова цена будет этому его "справочнику"?
    ИМХО, не стОит браться за дело лишь бы сделать его кое-как. По крайней мере никакого удовлетворения это "работа" тебе не доставит. Не говоря уже о пользе окружающим :)
  • Брюнетка © (07.11.08 15:19) [13]
    > [9] Sergey13 ©   (07.11.08 14:58)
    > ИМХО. Так можно всю жизнь изучать основы компьютерного мирозданья
    > и так и не спроектировать ни одного склада. 8-)

    На изучение основ нужна целая жизнь?
    "Не верю" (с)
  • Sergey13 © (07.11.08 15:34) [14]
    > [13] Брюнетка ©   (07.11.08 15:19)

    Тут в том и вопрос - что считать необходимыми и достаточными основами для конкретной задачи?
  • Брюнетка © (07.11.08 15:40) [15]
    > [14] Sergey13 ©   (07.11.08 15:34)

    Видимо, речь о том, нужно ли проектировщику БД знать основы программирования.
  • Sergey13 © (07.11.08 15:54) [16]
    > [15] Брюнетка ©   (07.11.08 15:40)

    Можно даже глубже - основы какого программирования? 8-)
  • Jeer © (07.11.08 15:58) [17]

    > Задача то есть, а в голове по этому вопросу - каша полная.


    Начни описывать своими словами - глядишь, вместе до чего-либо удовлетворительного и дойдем.
  • Anatoly Podgoretsky © (07.11.08 16:58) [18]
    > Брюнетка  (07.11.2008 15:19:13)  [13]

    Две?
  • Sergey Masloff (07.11.08 23:31) [19]
    MsGuns ©   (07.11.08 14:50) [7]
    >Приступать к проектированию БД не зная основ алгоритмов хранения и >обработки данных в ЭВМ - это изначально наделать кучу концептуальных >ошибок, без них невозможно понять даже сути нормализации - зачем она >нужна и как работает.
    Фигня. Вчера это работало не так как сегодня а сегодня не так как будет работать завтра. Так что представлять неплохо но совсем необязательно

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

    >Ну и, конечно, главное - это свободное ориентирование в области >автоматизации. Невозможно написать даже средненькую бухгалтерскую >СУБД, не понимая сущности бухучета и не зная основ его построения.
    Можно. Только постановщики-аналитики грамотные нужны. Хотя конечно знание предметки это важно.

    >Единственное, что я могу советовать уверенно - ни в коем случае не брать >в качестве учебного пособия авторов типа Фаронова или Архангельского.
    Ну тут нет критериев отнесения к типу "Фаронов" или типу "Архангельский". Кстати была такая книга Шумаков - Фаронов базы данных в delphi 3 - могу сказать что книга просто отличная.
  • Альф (08.11.08 02:31) [20]
    Практически в любой книжке по "кокретной реализации в программировании" БД есть несколько глав по проектированию.
    Если только основы - то можно почитать Конолли "Базы даных. Проектирование".
  • cosinus (08.11.08 11:09) [21]
    Мнения разделились, однако названия книг и авторов называются и более того, описываются, где как, где зачем, и это "есть хорошо". Теперь, с вашего позволения, по пунктам.

    > MsGuns ©   (07.11.08 14:50) [7]
    Полностью согласен с тем, что не понимая сути объекта автоматизации, писать одному(то есть без аналитиков и т.д.) любую БД под нее - это обрекать себя на исправление ошибок (вплоть до полного переписывания) на N лет. Однако, как мне кажется, если подойти к этому более-менее нормально, то через эти N лет программист будет вполне прилично знать и сам объект и БД. Несмотря на свою явную (на мой взгляд) неправильность, данный метод тоже вроде имеет право на существование и некоторые его прошли. Но это не то, что мне надо.

    > MsGuns ©   (07.11.08 15:06) [10]
    Я хочу знать зачем, но мне на данном этапе достаточно кратких отсылок от как к зачем. Может я человек такой, но для себя(то есть при самообучении), мне гораздо труднее сначала прочитать весь "фундамент", а потом браться за проектирование и написание простенькой БД. Мне проще и интереснее (что нималоважно, иначе просто плюну и все) идти как бы "ступеньками".

    > TUser ©   (07.11.08 14:55) [8]
    Именно. В этой ветке непреодолимо хочется с тобой во всем соглашаться ))))
    Я знаю и основы и англ. язык (правда он вполне достаточен, чтобы понять по MSDN что и как, но я не думаю, что будет комфортно учиться, читая книгу написаннаю на нем)

    > Sergey Masloff   (07.11.08 23:31) [19]
    Видел я эту книгу, кстати где-то в эл.виде. Попробую и ее поднять.

    Всем спасибо за помощь, буду искать и "читать до просвлетвления".
    PS Задача стоит передо мной и заказчик тоже я. просто как то неприлично постоянно сталкиваться по работе с БД и не понимать самых основ. Хочу спроектировать и написать для начала простенькую БД, а потом, как сказал Sergey13 © глядишь и дело пойдет. Просто не хотелось бы начинать с халтуры. Еще раз спасибо всем.
  • Mystic © (08.11.08 14:03) [22]
    Кстати,
    Шумаков Фаронов Delphi 5. Руководство разработчика баз данных
    http://depositfiles.com/ru/files/5306192

    Знаю двух практиков, с хорошим знанием предметной области, которым эта книга послужило стартом.
  • cosinus (08.11.08 14:29) [23]

    > Mystic ©   (08.11.08 14:03) [22]

    Спасибо.
  • Petr V. Abramov © (08.11.08 21:29) [24]

    > cosinus   (08.11.08 11:09) [21]

    по проектированию - Дейт.


    > MsGuns ©   (07.11.08 14:50) [7]

    ну прочитает человек, например, Кнута. Увидит в контексте СУБД слово B-tree Index. И подумает, что это двоичное дерево, про которые так много у Кнута читал.
    Ать облом, похоже, да не то, ибо http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/schema.htm#sthref966
    Вывод: "основ алгоритмов хранения и обработки данных в ЭВМ" надо читать в документации по конкретной СУБД.
  • Petr V. Abramov © (08.11.08 21:37) [25]

    > Petr V. Abramov ©   (08.11.08 21:29) [24]

    кстати, занятный глюк IE7 или OraCLE.COM
    если нажать ссылку из [24], покажет не internal structure of indexes, а что угодно.
    Если открыть окошко, скопировать туда ссылку, нажать зеленую стрелочку - все нормально
  • tesseract © (08.11.08 22:00) [26]

    > B-tree Index. И подумает, что это двоичное дерево, про которые
    > так много у Кнута читал.


    У Кнута вроде не одно самоупорядочивающеяся есть. B-tree кстати и в NTFS используеться.  Но Pervasive всё равно лучшую реализацию имеет. И причем с 198-х.
  • Petr V. Abramov © (10.11.08 00:03) [27]

    > Но Pervasive всё равно лучшую реализацию имеет.

    Pervasive - это Btrieve++, который может выехать только на гениальности работы Novell`а с дисками
  • Брюнетка © (10.11.08 07:54) [28]
    > [18] Anatoly Podgoretsky ©   (07.11.08 16:58)
    > Две?

    Для эстонца?
    -)
 
Конференция "Прочее" » Посоветуйте книгу
Есть новые Нет новых   [134446   +31][b:0][p:0.001]