egorius: (Default)

Юрий Полунов, «От абака до компьютера: судьбы людей и машин», том 2-й

Второй том книги посвящен персональным компьютерам. Тема это относительно новая и существенно более необъятная, чем «большое железо» первого тома, а потому в большей степени подвержена влиянию авторских пристрастий. Например, я бы не обошел вниманием компьютеры серии MSX, без которых моя жизнь сложилось бы совсем иначе. А говоря об издательских системах, хотя бы мельком упомянул Кнута (тем более, что в контексте баз данных автор рассказал немного о System R). Да и язык к концу книги стал все больше напоминать плохой перевод с английского.

Итог: второй том понравился меньше. Но в любом случае автор достоин благодарности за попытку обрисовать новейшую историю нашей отрасли.

Никколо Макиавелли, «Государь»

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

egorius: (Default)

Говоря о истории языка SQL, на первый взгляд кажется логичным начать с 1969 года, в конце которого Эдгар Фред Кодд, работавший в исследовательском отделении IBM в Сан-Хосе, написал свой отчет, положивший начало реляционной теории, а вместе с ней и реляционным базам данных.

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

История развития вычислительной техники начиная с изобретения абака — это так или иначе история автоматизации вычислений. Даже само слово «вычислительная» говорит об этом (и в английском языке тоже: «computer», «calculator» — вычислитель).

Важная переломная точка приходится на XIX век. Типичной задачей того времени, требовавшей большого объема вычислений, был расчет различных таблиц (например, логарифмических или тригонометрических). Работа над устройствами, способными автоматически справляться с вычислениями, привела Чарльза Бэббиджа к его знаменитой ныне Аналитической машине. Другие устройства того времени были спроектированы для решения какой-либо одной конкретной задачи, Аналитическая же машина была по задумке Бэббиджа программируема.

Она состояла из блоков, присутствующих теперь в любой ЭВМ: арифметическое устройство, запоминающее устройство, управляющее устройство, периферия (ввод программы и данных с жаккаровских перфокарт и вывод результатов на печать). К сожалению, Аналитическая машина никогда не была построена, хотя это и неудивительно: за неимением лучшего в середине XIX века, Бэббидж спроектировал свою машину на механической элементной базе (то есть в прямом смысле на рычагах и шестеренках).

Однако заложенные в машину принципы оказались настолько удачными, что они во многом определили дальнейшее развитие вычислительной техники. Говард Эйкен, создавший в 1943 году (при участии IBM — так уж получилось, что эта корпорация будет встречаться нам постоянно) первую реально работавшую программируемую машину Automatic Sequence Controlled Calculator (для краткости названную Mark I), признался: «Живи Бэббидж на 75 лет позже, я остался бы безработным». Фактически Mark I повторял архитектуру Аналитической машины, но на более современной элементной базе (Эйкен использовал как механические элементы, как и электромеханические реле).

Аналитическая машина, к слову говоря, оказала влияние и на программирование. Благодаря как самому Бэббиджу, так и Аде Лавлейс (дочери «того самого» лорда Байрона) мы получили такие понятия, как цикл, условный переход и библиотека подпрограмм.

Некоторое время после появления ЭВМ их продолжали использовать только для вычислительных задач (в основном с военной спецификой: расчет баллистических таблиц, вычисления для создания водородной бомбы, криптография). Но уже к концу 1940-х появилось понимание, что наряду с чисто математическими задачами, программируемый компьютер может решать и задачи бизнеса. Первыми ласточками стали великобританский EDSAC (1949) и построенные в начале 1950-х на его основе коммерческая система LEO (применялась для расчета зарплаты, складского учета, планирования производства — практически ERP), а также американский UNIVAC (1951), созданный для хранения, обработки и печати большого объема данных (в качестве внешней памяти использовалась магнитная лента емкостью порядка миллиона символов, лентопротяжное устройство обеспечивало скорость 12500 символов в минуту).

Более широкому применению ЭВМ в бизнесе мешало отсутствие запоминающего устройства большой емкости с произвольным доступом: магнитная лента по своей сути последовательна, а магнитные барабаны имели небольшую емкость и использовались в основном как дополнительное «медленное» ОЗУ. Ситуация изменилась в 1956 году с изобретением IBM жестких магнитных дисков и появлением первого НЖМД IBM 350 Disk File (устройство имело емкость 5 миллионов символов и состояло из 50 дисков, вращающихся со скоростью 1200 оборотов в минуту).

«Появление запоминающих устройств прямого доступа стало причиной переворота в мышлении... Направления, обозначаемые словами в и из, поменялись на обратные. Если директива ввод в мире последовательного доступа к файлам означала с ленты в вычислительную машину, то новая директива ввод означает в базу данных» — писал Чарльз Бахман, создатель первой СУБД.

Примерно в то же время (середина 1950-х) начали появляться и первые операционные системы, которые, среди прочего, унифицировали работу с внешними устройствами, введя понятие файла. В отличие от обычного современного понимания файла как потока байтов, в операционных системах мэйнфреймов файл был структурирован и представлял собой набор записей фиксированного или переменного размера. Доступ к файлам мог быть как последовательный (запись за записью), так и индексированный (по части записи, объявленной ключом, можно перейти сразу к подходящим записям). В таком файле нетрудно разглядеть прообраз БД, и действительно, создатели баз данных с удовольствием пользовались богатыми возможностями ОС.

Однако многими важными для информационных систем свойствами ОС все-таки не обладают. Взаимосвязанные данные сложной структуры нужно хранить в нескольких файлах, обеспечивая при этом их согласованность (пользователь БД не должен увидеть «промежуточной» ситуации, когда в одном файле информация уже изменилась, а в другом еще нет). Должна быть возможность одновременного доступа к данным многими пользователями (как для чтения, так и для изменения), а механизмы файловых систем для этого слишком грубы. Требуется надежное хранение информации с возможностью восстановления базы данных после сбоя в согласованном состоянии. Кроме того, нужен пользовательский интерфейс к базе данных для выборки и изменения информации.

Решать эти задачи каждый раз заново в каждом приложении, работающем с базой данных, совершенно неинтересно. Поэтому уже в 1961-64 годах появилась первая система управления базами данных, IDS (Integrated Data Store), спроектированная упоминавшимся выше Чарльзом Бахманом. Идеологию этой СУБД Бахман принес с собой и в комитет CODASYL (Conference on Data System Languages).

Первоначальной задачей комитета, объединившего в 1959 году представителей многих компаний, связанных с обработкой данных, являлась разработка универсального языка программирования для решения задач, ориентированных на бизнес. К началу 1960-х уже существовал ряд языков высокого уровня, из которых стоит упомянуть Фортран (разработан Джоном Бэкусом для решения вычислительных задач в 1954 году в исследовательском отделении IBM в Сан-Хосе), Алгол (разработан в 1958 году комитетом европейских и американских ученых, включая и Бэкуса; имел академическую направленность), Лисп (первый функциональный язык; создан в 1958 году Джоном Маккарти из MIT).

Результатом работы CODASYL явился новый язык Кобол (COBOL, Common Business-Oriented Language). Позднее, в 1965 году, в составе CODASYL при участии Бахмана выделилась группа по базам данных, которая выработала сетевую модель баз данных. Команды для работы с БД интегрировали в Кобол — аналогичным образом 20 лет спустя Oracle интегрирует SQL в PL/SQL.

За работу по созданию первой СУБД и за участие в работе CODASYL, Бахман в 1973 году стал лауреатом премии Тьюринга, вручаемой ежегодно с 1966 года ассоциацией ACM «исследователю, выбранному за полезные сообществу программистов и пользователей достижения технического характера».

Продолжение: 2. Программист-навигатор.

Почитать и посмотреть )

egorius: (Default)

Стивен Фейерштейн, «Oracle PL/SQL для профессионалов», 5-е издание

Прочитал наконец эту книгу. Не зря я не доверял Стивену, который вовсе и не Фейерштейн, а Фойерстин по собственному признанию.

С одной стороны, всё начинается с азов и возникает соблазн порекомендовать книгу стажёрам. Но на следующей же странице автор ныряет в дебри, даже не пытаясь выстроить последовательность изложения от простого к сложному. Ну да, так проще, вот только «что написано без труда, обычно читается без удовольствия». И так вся книга: водянистое месиво из простого и сложного. А ещё это надо умножить на отвратительный перевод, окончательно повергающий новичка в уныние.

С другой стороны, на «для профессионалов» она тоже не тянет. Со многими рекомендациями автора я не могу согласиться (предлагает писать commit work «для улучшения читабельности»; уверяет, что отладка с помощью dbms_output — удел неудачников), некоторые положения просто некорректны (говорит, что fetch после commit вызывает ошибку; путает область действия с областью видимости), зачастую функциональность описывается без рассуждений о смысле её использования или даётся ничем не обоснованный совет, примеры на редкость бессодержательны.

Раньше всем советовал, теперь не буду. Хотя других книг про PL/SQL вообще нет. Надо свою писать...

Юрий Полунов, «От абака до компьютера: судьбы людей и машин», том 1-й

Первый том отчати охватывает «Методологию и историю прикладной математики» Дедушки™ Виктора Константиновича и «Вычислительные системы» Александра Николаевича. Второй том про персоналки, но до него я пока не добрался.

Тянет меня что-то последнее время на историю... А книга интересная и познавательная. Жаль, что отечественной технике и людям отведена в ней всего одна глава.

Profile

egorius: (Default)
egorius

March 2025

M T W T F S S
      1 2
34 567 89
1011 121314 1516
17181920212223
24252627 28 29 30
31      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 29th, 2025 04:06 pm
Powered by Dreamwidth Studios