Содержание

На основную страницу приложения
  • СПЕЦВЫПУСК

    "КУХНЯ" СУБД ACCESS

    Популярное введение в теорию баз данных

      А.Б.Ливчак, А.Г.Гейн 

     

     

     

 ВВЕДЕНИЕ

Прочитав заголовок, читатель вправе воскликнуть: "Ну, вот, еще одно популярное введение! И это при том, что на книжных полках рядами стоят книги для "чайников", а обучение последним "наворотам" Access пробралось чуть ли не в школьные учебники. Имеет ли смысл снова все это читать?"

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

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

Совместима ли вообще пользовательская точка зрения на преподавание школьной информатики со стремлением дать школьнику представление о теоретических основах Computer Science? На наш взгляд, да. Только для этого прагматики должны отказаться от обучения чистому "кнопконажимательству", а теоретики — повернуться лицом к модным программным системам. Конечно, представленные таким образом прагматики и теоретики — это абстрактные абсолютизированные понятия. Реальные авторы учебников и учебных пособий располагаются, как обычно, где-то между этих двух крайних позиций. Однако в этой их "серединной" позиции, к сожалению, довольно часто нет органического проникновения друг в друга теории и практики, а есть всего лишь более или менее механическое их соединение.

Поясним сказанное на примере изучения баз данных. В дальнейшем изложении нас будет особо интересовать одно понятие, весьма употребительное и в системе управления базами данных Access, — понятие "связь". Обращает на себя внимание тот факт, что понятие связи, являющееся одним из центральных в Access, по сути дела, нигде не определяется. Вот что пишет об этом в своем учебнике Ю.А. Шафрин: "Объект, атрибут и свяльфундаментальные понятия информационной системы" ( [31] , стр. 531), Если объекту и атрибуту в дальнейшем в этом учебнике даются хоть какие-то определения, то определения связи нет вообще. Как же так? Ведь это — одно из фундаментальных (по мнению автора) понятий, которых всего-то три. И в учебнике под редакцией проф. Н.В.Макаровой раздел, посвященный базам данных, начинается обещанием научить школьника "связывать разные таблицы данных' ([19], стр. 201). Но что такое связь, так и остается неразрешенной загадкой. В учебнике С.В.Симоновича и др. связи таблиц также уделяется большое внимание. В частности, в нем говорится: ''Базы данных, имеющие связанные таблицы, называются также реляционными базами данных" ( [25] , стр. 98). Стало быть, по мнению авторов, связь — непременный (и даже определяющий!) признак реляционности. Однако хотя в учебнике подробно расписано, как устанавливается связь, но что такое связь, там тоже не объясняется.

Конечно, это относится не только к понятию связи и не только к школьным учебникам, К сожалению, это вообще стиль "пользовательской" литературы. В ней обычно объясняется, как с данным понятием работать (т.е. какие кнопки в каком порядке нажимать), но что это понятие означает, либо вообще не говорится, либо поясняется довольно невнятно. В частности, Help Access так определяет связь: "Отношение (связь), установленное между общими полями (столбцами) двух таблиц. Существуют отношения "один- к одному", "многие ко многим" и "один ко многим". Можно ли отсюда понять, что такое связь? Маловероятно. Зато такое определение провоцирует вопрос, как установить эту самую связь, поскольку внимание читателя искусно перемещается со слова "отношение" на слово "установленное". А дополнительные "разъяснения", что связь бывает "один к одному", "многие ко многим" и "один ко многим", способны создать у пользователя впечатление о невероятной сложности этого понятия. Читателю после такого ушата холодной воды уже и не захочется выяснять, что такое связь.

Между тем связь - это не такое уж хитрое понятие, оно вполне доступно среднему школьнику. Правда, чтобы объяснить его, в школьный курс информатики нужно ввести ряд новых идей. Впрочем, идеи эти давно стучатся в дверь. И нужны они, конечно, не только для объяснения понятия связи. Повторяем, что связь — это только пример.

Итак, что же это за идеи?...

TopList