-
Доброго всем дня. Посоветуйте книгу по проектированию БД (не по кокретной реализации в программировании). То есть есть некая задача, нужно "разрисовать на бумаге" какие таблички что и как будут хранить, как будут связаны и т.д. Насколько я понимаю, с этого надо начинать построение любой БД. Задача то есть, а в голове по этому вопросу - каша полная. Желательно, что-нибудь не сильно сложное, для начала.
-
Проектирование БД штука весьма нетривиальная, поэтому "что-нибудь не сильно сложное" посоветовать крайне трудно. Мне в свое время очень помог Кнут, но его книги не так просты для новичка.
-
> Мне в свое время очень помог Кнут
А где у него про БД?
Из непростого, пожалуйста - Дейт.
-
если есть первичное понимание отношений, кортежей и т.п., то лучше поискать книжки с фразами "первая нормальная форма 1NF, вторая нормальная форма 2NF, третья нормальная форма 3NF" и т.д.
-
Сортировка, поиск, кортежи, деревья - это все по-твоему не имеет отношение к БД ?
-
Это имеет отношение к реализации движка БД. А автора, имхо, интересует, как конкретную предметную область описать в виде таблиц, что проиндексировать, где какие ключи, где как нормализовать, ...
-
> Правильный$Вася (07.11.08 13:07) [3]
Нету понимания (
> TUser © (07.11.08 13:12) [5]
Именно так.
-
Приступать к проектированию БД не зная основ алгоритмов хранения и обработки данных в ЭВМ - это изначально наделать кучу концептуальных ошибок, без них невозможно понять даже сути нормализации - зачем она нужна и как работает. Например, в каких случаях данные о сущности нужно разбивать на несколько таблиц, а в каких достаточно одной коммулятивной.
Ну и, конечно, главное - это свободное ориентирование в области автоматизации. Невозможно написать даже средненькую бухгалтерскую СУБД, не понимая сущности бухучета и не зная основ его построения.
Единственное, что я могу советовать уверенно - ни в коем случае не брать в качестве учебного пособия авторов типа Фаронова или Архангельского.
-
> Приступать к проектированию БД не зная основ алгоритмов хранения и обработки данных в ЭВМ - это ...
а еще надо знать английский язык, основы синтаксиса какого-нибудь алгоритмического и много еще чего. Но автор спросил про проектирование БД, так вот ему Дейт, а учебник по алгоритмам и английскому он не просил. Имхо.
-
> [7] MsGuns © (07.11.08 14:50)
ИМХО. Так можно всю жизнь изучать основы компьютерного мирозданья и так и не спроектировать ни одного склада. 8-)
-
>TUser © (07.11.08 14:55) [8] >Но автор спросил про проектирование БД, так вот ему Дейт, а учебник по алгоритмам и английскому он не просил. Имхо.
Я ничего не имею против этого известного и уважаемого товарища. Но у него, насколько помню, много посвящено "как", но слишком мало "зачем".
>Sergey13 © (07.11.08 14:58) [9] >ИМХО. Так можно всю жизнь изучать основы компьютерного мирозданья и так и не спроектировать ни одного склада. 8-)
Видишь ли, конечно, можно любому первокласснику объяснить как запрограммировать телефонный справочник, особенно если дать все необходимые компоненты для доступа к таблице, выборки, сортировки и т.д. Но какова цена будет этому его "справочнику"? ИМХО, не стОит браться за дело лишь бы сделать его кое-как. По крайней мере никакого удовлетворения это "работа" тебе не доставит. Не говоря уже о пользе окружающим :)
-
> [10] MsGuns © (07.11.08 15:06)
> ИМХО, не стОит браться за дело лишь бы сделать его кое-как.
ИМХО, за дело надо браться. Или НЕ браться. Первая БД все равно не будет здоровской хоть все умные книжки перечитай. Все равно опыт наживать надо. Но программирование чем и прекрасно - всегда можно начать сначала и переделать все к чертовой матери незаметно для заказчика (и за его деньги). 8-)
-
>TUser © (07.11.08 14:55) [8] >Но автор спросил про проектирование БД, так вот ему Дейт, а учебник по алгоритмам и английскому он не просил. Имхо.
Я ничего не имею против этого известного и уважаемого товарища. Но у него, насколько помню, много посвящено "как", но слишком мало "зачем".
>Sergey13 © (07.11.08 14:58) [9] >ИМХО. Так можно всю жизнь изучать основы компьютерного мирозданья и так и не спроектировать ни одного склада. 8-)
Видишь ли, конечно, можно любому первокласснику объяснить как запрограммировать телефонный справочник, особенно если дать все необходимые компоненты для доступа к таблице, выборки, сортировки и т.д. Но какова цена будет этому его "справочнику"? ИМХО, не стОит браться за дело лишь бы сделать его кое-как. По крайней мере никакого удовлетворения это "работа" тебе не доставит. Не говоря уже о пользе окружающим :)
-
> [9] Sergey13 © (07.11.08 14:58) > ИМХО. Так можно всю жизнь изучать основы компьютерного мирозданья > и так и не спроектировать ни одного склада. 8-)
На изучение основ нужна целая жизнь? "Не верю" (с)
-
> [13] Брюнетка © (07.11.08 15:19)
Тут в том и вопрос - что считать необходимыми и достаточными основами для конкретной задачи?
-
> [14] Sergey13 © (07.11.08 15:34)
Видимо, речь о том, нужно ли проектировщику БД знать основы программирования.
-
> [15] Брюнетка © (07.11.08 15:40)
Можно даже глубже - основы какого программирования? 8-)
-
> Задача то есть, а в голове по этому вопросу - каша полная.
Начни описывать своими словами - глядишь, вместе до чего-либо удовлетворительного и дойдем.
-
> Брюнетка (07.11.2008 15:19:13) [13]
Две?
-
MsGuns © (07.11.08 14:50) [7] >Приступать к проектированию БД не зная основ алгоритмов хранения и >обработки данных в ЭВМ - это изначально наделать кучу концептуальных >ошибок, без них невозможно понять даже сути нормализации - зачем она >нужна и как работает. Фигня. Вчера это работало не так как сегодня а сегодня не так как будет работать завтра. Так что представлять неплохо но совсем необязательно
>Например, в каких случаях данные о сущности нужно разбивать на >несколько таблиц, а в каких достаточно одной коммулятивной. Это в книжках пишут когда достаточно одной а когда нужно разбивать? И прямо однозначно если а и б => разбивать если в и г => достаточно одной?
>Ну и, конечно, главное - это свободное ориентирование в области >автоматизации. Невозможно написать даже средненькую бухгалтерскую >СУБД, не понимая сущности бухучета и не зная основ его построения. Можно. Только постановщики-аналитики грамотные нужны. Хотя конечно знание предметки это важно.
>Единственное, что я могу советовать уверенно - ни в коем случае не брать >в качестве учебного пособия авторов типа Фаронова или Архангельского. Ну тут нет критериев отнесения к типу "Фаронов" или типу "Архангельский". Кстати была такая книга Шумаков - Фаронов базы данных в delphi 3 - могу сказать что книга просто отличная.
-
Практически в любой книжке по "кокретной реализации в программировании" БД есть несколько глав по проектированию. Если только основы - то можно почитать Конолли "Базы даных. Проектирование".
-
Мнения разделились, однако названия книг и авторов называются и более того, описываются, где как, где зачем, и это "есть хорошо". Теперь, с вашего позволения, по пунктам.
> 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 © глядишь и дело пойдет. Просто не хотелось бы начинать с халтуры. Еще раз спасибо всем.
-
Кстати, Шумаков Фаронов Delphi 5. Руководство разработчика баз данных http://depositfiles.com/ru/files/5306192Знаю двух практиков, с хорошим знанием предметной области, которым эта книга послужило стартом.
-
> Mystic © (08.11.08 14:03) [22]
Спасибо.
-
> 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:29) [24]
кстати, занятный глюк IE7 или OraCLE.COM если нажать ссылку из [24], покажет не internal structure of indexes, а что угодно. Если открыть окошко, скопировать туда ссылку, нажать зеленую стрелочку - все нормально
-
> B-tree Index. И подумает, что это двоичное дерево, про которые > так много у Кнута читал.
У Кнута вроде не одно самоупорядочивающеяся есть. B-tree кстати и в NTFS используеться. Но Pervasive всё равно лучшую реализацию имеет. И причем с 198-х.
-
> Но Pervasive всё равно лучшую реализацию имеет.
Pervasive - это Btrieve++, который может выехать только на гениальности работы Novell`а с дисками
-
> [18] Anatoly Podgoretsky © (07.11.08 16:58) > Две?
Для эстонца? -)
|