|
|
Популярно об Oracle
(17.09.2000) |

|
Oracle -
компания, производящая программное обеспечение. Образована в 1977г.
Флагманский продукт - мощная реляционная база данных. Исходный код написан
на языке C и разрабатывался более 20 лет. Ядро базы очень качественное и
высокопроизводительное, а язык C позволяет переносить базу на множество
платформ. CEO - Ларри Эллисон, очень хочет быть самым богатым человеком и
конкуренция с Биллом Гейтсом хороший стимул.
Что может база данных 1) Хранить
огромные объемы информации и выдавать ее очень быстро, обслуживая
множество пользователей. Управлять хранением по мере возможностей: к
примеру, контролировать непротиворечивость хранимых данных. 2)
Обеспечивать одновременную работу пользователей с теми же самыми
данными. 3) Поддержка хранимых процедур. Можно написать программу на
языке с простым синтаксисом (PL/SQL) или Java, которая будет обрабатывать
данные на стороне сервера, используя любые запросы SQL. Таким образом, не
нужно передавать данные клиентской программе по сети. Код программы не
зашит в приложение и его можно легко внедрять в другие приложения, язык и
библиотеки стандартных процедур редко меняются и труд программистов не
пропадает с выходом новой версии программного обеспечения. Хранимые
процедуры PL/SQL компилируются и работают очень быстро. Не путайте эту
возможность с "сервером приложений" - он всего лишь выполняет визуализацию
результатов обработки. 4) Использование баз данных стабилизирует
общество и дает власть над собственной информацией компаниям. К примеру, в
США полицейский, проверяя водительские права, видит перед собой
весь список нарушений владельца. Владельцы стараются не нарушать правила.
У финансовых учреждений есть доступ к кредитной истории всех жителей.
Жители стараются возвращать долги вовремя. Марксистское определение
свободы. В странах, где базы данных не распространены жителя могут
задержать на несколько часов или суток "для выяснения". Кстати, сколько в
России ни покупали госучреждения базы данных, польза от этого существенно
меньше, чем могла бы быть. Наверное, потому, что пытались разрабатывать
системы своими силами.
Какая операционная система лучше для базы данных
Oracle Oracle работает на более чем 80 операционных системах,
от суперкомпьютеров до встроенных систем. Вопрос выбора для стандартной
базы можно разбить на несколько частей 1) Новые версии появляются
последовательно в течение месяца для Sun Solaris, WindowsNT/2000, Linux.
Позже появляются версии для Novell Netware, клонов UNIX. 2) От
операционной системы требуется: чтение-запись в файлы большого размера в
асинхронном режиме, поддержка raw partitions, корректная работа
виртуальной памяти, обслуживание около 10 базовых процессов и от ~10 до
100 процессов на каждую сотню пользователей. Большинство операционных
систем с этим справляется одинаково. На Windows NT/2000 вместо отдельных
процессов используются нити процесса, что производительнее. Поддержка
журнализации в файловой системе не важна, так как Oracle не меняет
метаданные - редко создает файлы и меняет их размер. А системы с полной
журнализацией вообще вредны: они медленнее в случае Oracle. Размеры
драйверов файловых систем и контроллеров жеских дисков почти у всех
одинаков. На Windows NT/2000 вся работа с файлами идет через кэш
операционной системы в самонастраивающемся асинхронном режиме, благодаря
чему работа с файлами на этой операционной системе производительнее по
сравнению с другими ОС. В Unix асинхронный ввод-вывод до сих пор
опциональный да и не везде работает на файловых системах. Причем, процесс
кэширования загнан в жесткие рамки: если блок старше установленного
времени лопни, но сбрось его на диск независимо от его загрузки. Отсюда
существенное увеличение производительности при использовании RAID
контроллеров на Unix, чьи алгоритмы и кэширование более интеллектуальны
("elevator reading", например). Главное, чтобы дисковая подсистема не
выдавала ошибок при большом числе обращений. Для виртуальной памяти
главное, чтобы система не давала утечек памяти. Oracle выделяет большую
область памяти сразу, поэтому фрагментация памяти не особенно страшна.
Также существенна тщательность отладки кода самого Oracle под конкретную
систему. Она лучше для более популярных систем. 3) Реализация стека
транспортных протоколов, например, TCP/IP. Он неплохо реализован на всех
системах. Открытость кода Linux дает ей преимущество в быстром улучшении
кода и оперативном устранении проблем. Драйвера сетевых карт для
Windows2000 реализованы пока плохо. Solaris поддерживает маленькое число
сетевых карт, поэтому, если появится Ultra-Exa-bit Ethernet, его может не
удастся использовать 4) Оборудование, на котором система работает. Если
есть специфическое оборудование, то выбора операционной системы не стоит.
Для средних по размеру баз данных выбор сужен до платформ Spark и
Intel/AMD. Обе платформы чувствуют себя неплохо. Другие платформы уже
стали историей, возможно, красивой и цепляющейся за жизнь, но лучше
смотреть в будущее. RS6000 довольно интересная платформа,
малопроизводительная, но берет большим числом слабосвязанных процессоров и
ресурсами IBM. 5) Поддержка быстрой памяти, что очень важно для баз
данных. В обоих платформах используется SDRAM (просто потому, что другой
не делают - нет массового спроса), но есть основание полагать, что DDR
SDRAM появится быстрее у платформы AMD/Intel. Поддержка жестких дисков
одинакова и стандартна. Производительность внутренней системной шины
вопрос сложный, но пока она не является узким местом. Кэши первого,
второго и третьего уровня почти одинаковы, просто, потому что технология
производства микросхем одна. Возможность использования многопроцессорных
машин лучше у Spark и RS6000. Однако, пока пройдет время от выделения
денег до внедрения, выйдет новый процессор, а обновлять штучные машины
затруднительно. Иногда внедрение базы данных начинается с однократного
выделения денег, которые нужно освоить. Если же деньги считают, то лучше
начать со слабой машины. Все равно первое время база не будет слишком
большой с большим числом пользователей. Если же она разрастется и появится
большое число пользователей, то деньги на обновление найдутся. Разница в
производительности архитектур RISC и CISC уже перестала влиять на умы.
Вкратце можно сказать, что как раз сложные операции CISC очень нужны в
таких приложениях, как базы данных. И, наверное, самое главное при выборе
платформы - надежность, или точнее, стабильность работы железа. 6)
Поинтересуйтесь количеством ошибок на выбираемой платформе. Иначе вы
увидите небо в алмазах, то есть багах. Даже популярность платформы не
может застраховать от этого. Широкий кругозор полезен: встречаются
администраторы, которые мигрируют на платформы, поддержка которых в
ближайшее время прекращается. 7) Учитывать планы Oracle: Oracle's
customers deploy data servers, development tools, applications, and
application servers on a short list of systems. This system consolidation
enables Oracle to make its suite of products available for simultaneous
release on the following operating systems: Compaq Tru64 Linux
Intel HP HP-UX(64-bit) IBM AIX(64-bit) Solaris SPARC
Windows NT Oracle products will no longer be developed on the Intel
Solaris platform. Системы расположены не по алфавиту. В пререлиз этого
документа Windows2000 входила отдельной строкой. Скорее всего, Oracle
держит гвоздь наготове, но все зависит от ситуации на рынке ОС.
Версии базы данных 1) Oracle7 версии
7.3.4.5.2. Последняя версия появилась в 1998 году, обновления в 2000.
Существует практически для любой операционной системы. Минимальные
требования к оперативной памяти - 16-32Мб. Переход с нее на новую версию
базы данных не связан с ее производительностью или базовыми возможностями
хранения данных, скорее, он связан с ее моральным устареванием. Эта версия
будет обновляться до конца 2000г. (desupport notice), поддерживаться до
2004г. (extended assistance support) 2) Oracle8 версии 8.0.6.
Существенных изменений в реляционной части нет. База стала требовать
больше оперативной памяти для работы. Просто, программное обеспечение было
перекомпилировано с увеличением памяти, отводимой под внутренние буфера.
Были внесены изменения в формат блоков данных и алгоритмы поведения
процессов для лучшей масштабируемости. Появились новые опции для
управления большими базами данных, актуальные для баз с тысячами файлов на
сотнях дисков. Oracle ввел элементы объектных технологий в структуру языка
запросов. Это была дань моде: в то время было можно говорить об "объектной
базе данных". Существенным новшеством было введение новой технологии
backup&recovery. Просто все функции выделили в отдельную утилиту и
создали свой командный язык. Основное преимущество - возможность
контролировать скорость копирования файлов в backup, чтобы не загружать
работающую базу данных. Из недостатков - то, что сохранение-восстановление
стало настолько сложным, что восстановление базы данных новой утилитой
стало рискованным занятием. В целом, это промежуточная версия. Desupport
был объявлен на июль 2000г., даже раньше чем на Oracle7. 3) Oracle8i.
Сокращенно, версия 8.1.5 - R1, 8.1.6 -R2, 8.1.7 - R3 (сентябрь 2000). База
стала еще более жадной до памяти, но более "вылизанной", безошибочной и с
дополнительными возможностями. Реляционная часть, то собственно для чего и
нужна база данных, без революционных новшеств, но неуклонно улучшается.
Например, появляются возможности вроде добавления и удаления столбцов,
настройка прав доступа для хранимых процедур. Процесс записи на диск
получил возможность действовать асинхронно независимо от поддержки
операционной системы (Oracle8.1 DBWR has evolved from batch oriented
message driven writer into a queue management driven writer process).
Добавилась возможность асинхронной обработки информации: AQ. В базу
встроили виртуальную машину Java. Теперь в базе могут храниться процедуры,
написанные на этом языке. Работают они медленно, памяти требуют много, но
в будущем это полезно, так как уменьшает затраты на программирование,
точнее, кодирование и отладку и уберегает от устаревания кода. Тенденции
таковы, что мощность компьютеров растет и они дешевеют, а труд кодировщика
возрастает, да и уменьшается число любителей кодировать. Еще одна
возможность этой версии базы данных - реальная поддержка технологии
IIOP. 4) Oracle8e или 8.2 (весна 2001). Это будущая версия базы. Буква
"e" означает электронную коммерцию. Предполагается, что с базой данных
можно будет работать напрямую через различные Web-интерфейсы. Новые
технологии уже оформлены в виде первых весий продуктов Oracle Internet
File System (iFS), Oracle Internet Directory (OiD), Internet Application
Server (iAS).
Виды баз данных
Oracle 1) Oracle Enterprise Edition (Oracle8i EE). Версия,
предназначенная для больших компаний. Включает все опции созданные
Oracle 2) Oracle Standard Edition (Oracle8i SE). Отсутствуют многие
опции (Parallel query, Object option и др.). Оптимальный выбор для для
компаний, которым не нужны специфические возможности нужные, в основном,
базам данных большого размера. По производительности не отличается от
Oracle Enterprise Edition. В версии Oracle7, называлась Oracle Workgroup
Server. 3) Oracle
Personal Edition. Версия базы данных под Windows платформу на одного
пользователя. К ней нельзя подключиться по сети. Предназначена для
разработчиков приложений. Позиционирование на рынке сомнительно. 4)
Oracle 8i Lite. Компактная версия базы данных с существенно урезанными
возможностями, как то отсутствие триггеров и хранимых процедур. Зато есть
хранимые процедуры на Java. Предназначена для локального хранения данных
программами. Есть весия для карманных компьютеров Palm. Полезна
возможность репликации и обмена данными с базами данных Oracle. Похоже,
эти возможности так никогда и не будут востребованы. К этому моменту все
устройства будут уже связаны в сеть.
Связь с базой данных
Oracle выпускает собственное программное обеспечение для связи с базой
данных, оно есть для всех платформ. Работает очень быстро и безошибочно,
обрабатывая большое число функций, в отличии от того же ODBC. Генерирует
небольшой трафик - практически, передает только данные, буферизует
ввод-вывод и работает асинхронно. Может работать по любым транспортным
протоколам (TCP/IP, IPX/SPX, LU6, DecNet), может шифровать данные.
Занимает мало места и не меняет системные файлы (dll), поэтому не
конфликтует ни с каким программным обеспечением. Смена версиий проходит
безболезненно и прозрачно для пользователей. Программное обечпечение
для связи с базой состоит из серверной части и клиентской. Серверная часть
- это процесс, который запускается на сервере и обслуживает клиентов,
связывающихся с любой из баз, работающих на этом сервере. Клиентское - это
набор файлов (динамически линкуемых библиотек), которые обслуживают вызовы
программ, запускаемых пользователем и требующих обращения к базе
данных. Эволюция версиий 1) Sql*Net версии
1.1.6.9. Последняя версия сервера Oracle, с которой поставлялась серверная
часть клиента - 7.2.2.4.0.C. Хотя, любая база данных версии 7 может быть
настроена на поддержку клиента Sql*Net версии 1. Версия отличалась
простотой конфигурирования: достаточно указать протокол, адрес сервера и
имя базы данных (SID) и соединение пройдет. К примеру, адрес выглядил так:
"t:host:orcl" 2) Sql*Net версии 2.3. Сделано много улучшений, скрытых
от пользователя. Выидным осталось ухудшение - для того, чтобы указать путь
к базе данных, нужно его описать в довольно сложном формате. Зато проделав
это один раз, можно его использовать по краткому наименованию (алиасу).
Обычно это проделывает администратор сети. Немного позже выпустили
графическую утилиту конфигурирования алиасов "Sql*Net Easy Configurator" и
проблема была полностью снята. 3) Net8. Нетрудно догадаться, что он
вышел вместе с новой версией базы данных Oracle8. Маркхетинг (им
большинство занимаются, если ничего делать не умеют) требовал броских
названий. На самом деле, никаких серьезных изменений не было сделано.
Клиенты Sql*Net v.2 могли подсоединяться к серверу с установленным Net8.
На сервер Oracle8 нельзя установить Sql*Net v.1, но его уже никто не
использовал 4) Драйвера для Java прграмм. Из-за различия в структуре
языков C и Java переписывать драйвер Net8 на Java довольно затруднительно.
Вкратце, нельзя разделить функции на относящиеся к драйверу и к программе
в том месте, где они разделены в C. Пошли другим путем: создали два типа
драйверов. Первый (так называемый "толстый") использует вызовы процедур
стандартного клиента Net8. Это не очень удобно, так как для работы Java
программ нужно устанавливать клиента Net8, для каждой платформы свой.
Второй (так называемый "тонкий") клиент целиком написан на Java не
зависит от платформы. В нем пока отсутствуют некоторые функции, например,
шифрование данных. 5) Corba доступ к базе. Находится в стадии
разработки. Точнее, он уже работает, но еще не совсем отлажен.
Средства разработки приложений
Углубимся в недалекое прошлое, когда Microsoft конкурировала с Novell за
рынок файловых серверов. По производителности Windows NT3.5,
NT4, Netware 3.12 и 4.1 эквивалентны, но долгое время Microsoft не могла
победить Novell. Все дело было в клиенте. Клиент Novell под DOS/Win3.1 был
вне конкуренции с убогим клиентом Microsoft. Хотя бы потому, что потреблял
меньше памяти и открывал больше файлов. Администраторы именно по этому и
покупали Novell. Все изменилось с выходом Windows95, когда клиент
Microsoft стал работать намного лучше, чем клиент Novell. Novell просто не
удосужилась (прошляпила) создать 32битный драйвер, поглощенная
совершенствованием сервера. Напомню, что 16-битные драйверы в процессе
файлового ввода-вывода сильно тормозили реакцию операционной системы. Для
базы данных средства разработки приложений все равно, что клиентское
программное обеспечение для файловых серверов. Краткая история
средств разработки. В самом начале Oracle предлагало библиотеки процедур C
и Cobol, с помощью которых программы, написанные на этих языках могли
обращаться к базе данных. Назывались эти "Software Development Kits" Pro*C
и Pro*Cobol. Написание программ на языке C довольно сложное занятие, тем
более, что от программы требовалось только отобразить данные на экране и
разработчики просто каждый раз изобретали бы велосипед. Требовалось
визуальное средство программирования вроде
TurboPascal. Oracle создал такое средство -
прекрасный набор средств быстрой разработки приложений (RAD) Sql*Forms,
Sql*Reports, Sql*Menu, Case. Программы, разработанные с их помощью могли
работать в терминале Unix (сессия telnet) или DOS. К сожалению, эти
программы не могли работать в Windows95. Причем, даже не они, а драйвер
Sql*Net под DOS переводил DOS в защищенный режим, поэтому и не мог
работать под Windows. Oracle не захотел переписывать драйвер и это
средство разработки было выброшено на обочину истории. Конечно,
возможность работы в сессиях telnet с Unix оставалась, но программы
были жадными до памяти (работая под DOS потреблялась память клиента) и
реально на средней машине Unix могли работать порядка 50 пользователей. К
тому же, стандартный telnet клиент Windows не отображал цветов (он и
сейчас не отображает). С приходом графической
операционной системы Oracle создал средство разработки Oracle Forms,
Reports, Graphics. Их пик популярности пришелся на версию 4.5.
Автоматическая миграция старых приложений была возможна, только мышка
после миграции не поддерживалась. Сторонние разработчики (Kumaran)
выпустили средство безболезненной миграции и все желающие смогли
автоматически обновить свои программы за несимволическую
плату. Чуть позже Oracle выпустил средство
автоматической разработки сложных приложений Oracle Designer (сама первая
версия была текстовой, работала под OS/2 и назвалась Oracle Case). С его
помощью группа разработчиков могла вести визуальное создание проекта
начиная от разработки схемы базы данных и кончая автоматической генерацией
программ. В конце разработчикам оставалось подкорректировать дизайн
сгенерированных программ. Позже, всвязи с модными веяниями, эти средства
разработки были переименованы в Developer/2000 и Designer/2000. Сейчас
называются просто: Oracle Forms Developer и Oracle
Designer. Недостатком средств разработки являлось
то, что для работы программы требовали очень много оперативной памяти. Они
требовали довольно упитанного, если не сказать "толстого" клиента. Мода на
инжиниринг-реинжиниринг бизнес-процессов прошла, соответственно,
интерес к Designer/2000 у разработчиков немного уменьшился. Oracle не смог
обновить Designer/2000 до нового технологического прорыва, памятником
которому остался мало известный широкой публике проект Sedona.
Пользуясь бедственным положением Borland, Oracle
купил лицензию на Borland JBuilder и, подкорректировав связь со
своей базой данных, выпустил Application Builder 1.1 (позже JDeveloper).
Совершеснствуя код, Oracle довел JDeveloper до версии 3.1 и поборол почти
все явные баги. К этому времени Oracle почти полностью переписал Oracle
Enterprise Manager на язык Java, что подтвердило живучесть выбранной
технологии. Переписать не составляло большого труда, так как преобразовать
код С++ в Java можно почти автоматически. При этом, правда, программы
становятся неуклюжими. Но они уже есть и переписывание с учетом технологии
Java дело времени. Репутацию Java сильно подмочили слабые программисты.
Качественный Java код компактен и достаточно быстро
работает. В момент появления графических средств и моды на
объектное программирование Oracle выпустил продукт Oracle Power Objects.
Он был ориенирован на рынок дешевых, быстрых средств разработки с не очень
большим числом функций. В какой-то мере его выпуск был данью модной
объектной технологии разработки. Спросом он не пользовался и Oracle не
стал растрачивать ресурсы на его развитие. В Power Objects впервые
появился "Инспектор" объектов, в котором можно было указать свойства и
методы объекта. На нем можно было быстро написать простое приложение для
работы с базой данных. Отказавшись от продвижения oracle
Power Objects (desupport JAN-2000), компания стала продвигать Oracle
Discoverer, как простое средство визуального построения запросов к базе
данных. Место под солнцем для этого средства не понятно: им могут
пользоваться довольно продвинутые пользователи, но написать на нем
приложение для простых операционистов нельзя. Ну а продвинутые
пользователи не занимаются выборкой информации из базы
данных. Параллельно с развитием традиционных средств
разработки WWW вышел на качественно новый уровень, показав, что обращаться
к базе данных можно и даже нужно из веб-браузера. Большинству клиентов
ведь нужно просто быстро найти немного информации и обновить ее. Например,
по имени человека узнать его кредитную историю. Oracle разработал для этих
целей Web Server (v2.1), позже переименованный в Application Server (до
v4.0.8). Одна из его полезных возможностей - динамическое создание html
страниц. Причем, эти страницы выдает хранимая процедура базы данных,
которая может наполнить страницу любой информацией, находящейся в базе.
Недостатком является ограниченность языка HTML приотображении форм
запросов. Сейчас Oracle продвигает стандарт XML. Вкратце, тот же HTML,
только с намного большими возможностями по отображению информации. Если
удастся сделать язык стандартным и не очень сложным, он имеет шанс
получить поддержку пользователей. В какой-то момент
Oracle решил вдохнуть новую жизнь в приложения, написанные на
Developer/2000 и создал технологию Oracle Forms Server, встроив ее в
Application Server. Она заключается в том, что клиентское приложение
работает на сервере, а слепки экрана передаются в апплет, отображаемый в
веб-браузере. Приложения были настолько громоздкими, что редкий сервер мог
обеспечить работу больше чем 10 пользователей. Проще использовать
Microsoft Terminal Server. Oracle Application Server
состоит из обработчика запросов, который принимает запросы пользователей и
передает их соответствующему сервису. Например, файловой системе, если
пользователь запросил статический документ. Так работает большинство веб
серверов. Можно передать запрос и к базе данных, что и делает "картридж"
PL/SQL. Эти две самые полезные возможности объединены в продукт Oracle
Portal (бывший WebDB). Application Server отличается от него наличием еще
нескольких "картриджей", которые большинству пользователей не нужны. В
середине 2000 года Oracle принял решение использовать код свободно
распространяемого веб сервера Apache в качестве веб листенера и подключать
к нему свои "картриджи". Это сделали после того, как поняли, что по
производительности собственный листенер (код был куплен у Spyglass) не
достигнет Apache и траты на его дальнейшее улучшение бессмысленны. Oracle
может теперь сконцентрироваться на отладке картриджей. Oracle не
использует технологию периодического извлечения информации из базы и
помещения ее в статические страницы. Эту технологию поддерживает
Микрософт. Это оправданно, так как база данных Oracle достаточно мощная,
чтобы делать выборку прямо из базы данных. Можно
упомянуть о таком экзотическом продукте, как Oracle Express. Отдавая дань
моде на Data Warehouse, или хранилища всевозможных данных, порывшись в
которых теоретически можно найти что-то интересное, Oracle купил у
стороннего разработчика семейство продуктов Express. Они позволяли
извлекать данные, помещая их в многомерные таблицы и отображать в виде
графиков агрегированную информацию. Аналитик мог, отображая данные в
разных ракурсах найти интересные закономерности. Например,
анализируя биллинговую информацию телефонных компаний, можно найти, что
люди в возрасте 18-23 лет говорят дольше вечером. Значит, "этим можно
воспользоваться". Эту технологию не удалось довести до ума на сервере
Express, к тому же она оправдывает себя в случае терабайтных баз данных.
Владельцы таких баз имеют возможность нанять аналитиков, которые делают
прогнозы лучше. Сейчас Oracle интегрирует функции OLAP в процедуры базы
данных DBMS_OLAP и встраивает новые объекты в базу. Напрашивается
аналогися с Oracle Power Objects. Немного о
продуктах сторонних производителей. Конкурировать с такой огромной
компанией, как Oracle может не всякий, поэтому хороших средств разработки
нет, либо они перекупаются Oracle. Это знают как разработчики, так и их
клиенты и редко пользуются продуктами сторонних производителей. На Вorland
Delphi можно было создавать программы, работающие с базой данных Oracle.
Platinum создало средства разработки. Большую проблему представляет
конкуренция со стороны Microsoft Visual Studio + SqlServer.
Текущие средства разработки Oracle
Developer, Designer 6i (версии 2.1 support ends OCT-2000), JDeveloper 3.1
сейчас продаются вместе. Можно выбирать наиболее подходящиее средство. Я
предпочитаю JDeveloper, так как код, написанный на Java не девальвируется
(немного спроно, особенно, с точки зрения перехода с AWT на Swing и смены
технологии обработки событий). Производительность процессоров и объем
памяти быстро увеличиваются. Java код открыт, может быть декомпилирован и
подправлен. Код Java можно автоматически транслировать в C++ и
скомпилировать. Работает чрезвычайно быстро. Oracle 8.1.7 это
поддерживает. Возможно, стоит ориенироваться на веб технологии. Цитата:
"В новой версии PeopleSoft 8.0 будет использоваться лишь HTML-интерфейс, и
мы перестанем ориенироваться только на работу с клиентами под Windows"-
Энди Олбриктен V.P. PeopleSoft (Сети 8/2000).
Date: 3-Aug-00
14:03 Subject: What is the Future for
developer2000 prfessionals I am a Developer2000 person. I was told that
there is no future for Developer2000. The world is moving towards Java and
object oriented programming and that somewhere down the line Developer
2000 will not used anymore. My aim is to become a project
leader/manager. Is it true that i need programming experience in java or
c++ to be able to go up the
ladder. -------------------------------------------------------------------------------- Date:
4-Aug-00 02:09 Subject: Re: What is the
Future for developer2000 prfessionals Of course you require true
working knowledge of JAVA and C++ to become project leader/Manager but
still you could achieve this if you are a good in managing projects /
people and strong in technical procedures.
All the
best -------------------------------------------------------------------------------- Date:
3-Aug-00 15:49 Yup, This seems to be true because in 1998, I used to
get daily tons of phone from requirter for Oracle Developer-2000 but now
Iam not receving any single call for it. But I changed my path in 1997
from developer to DBA.
Yeah, you should switch to Java and C++.
Средства администрирования базы данных
Oracle В поставку сервера базы данных
входят утилиты sqlplus, svrmgrl, rman. С помощью простого командного языка
база данных ими и управляется. Лучше выучить один раз команды, чем
запоминать где находятся кнопки в графической
оболочке. Есть набор графичиских утилит Oracle
Enterprise Manager (OEM). С их помощью начинающий администратор может
легко и удобно управлять базой данных. Действительно, нет смысла
запоминать сложные и долго набираемые команды, например, создания таблиц.
Проанализировать производительность базы данных можно с помощью пакетов
OEM Tuning Pack и Diagnostics Pack. Идея графических
средств администрирвоания OEM были перхвачены у Микрософт. Когда Микрософт
создало свой Enterprise Manager для SqlServer, Oracle "на всякий случай"
создало аналогичное средство для своей базы данных. Изначально Oracle
Server управлялся утилитой sql*dba в режиме командной строки, как Unix. У
утилиты был текстовый режим с меню, очень удобный и психологически
комфортный. Можно было вместо набора команд просто ткнуть в меню мышкой. К
сожалению, этот режим исчез после версии Oracle7.1.3. Oracle создал новую
утилиту командной строки SeverManager, она дошла до наших дней без
изменения. Конечно, она переписывалась и менялась, но для администратора
язык команд оставался тем же. Это о пользе изучения командного языка:
"learn once, use forever", хотя я не приверженец Unix (редакторы Unix это
извращение: за долгую историю и не написать нормального редактора нужно
умудриться). Кстати, напоминаю, что редактировать файлы Unix средствами
Windows не рекомендуется, там символ возврата каретки несколько
другой. Чем удобно администрирование баз данных
Oracle, так это тем, что методы одинаковы на всех платформах. Вам нужно
только вызвать ServerManager и редактор файлов. К примеру, курс по
тонкостям администрирования Oracle under Unix занимает один
день. О сторонних производителях. Таких разработок
было много для Oracle7 и они были очень удобны (например, разработки
Platinum), ну и дорогие, конечно пока Oracle не выпустил OEM. Oracle
встраивает все интересные возможности в свои средства администрирования.
Есть небольшие и удобные продукты QuestSoft, помогающие работать со схемой
программисту, но серьезных продуктов администрирования нет.
Восстановление базы данных в случае
сбоя Самое простое - использовать standby database. Это база
данных той же версии, что и рабочая, установленная на той же операционной
системе, что и настоящая, работающая на другой или этой же машине
синхронно с настоящей базой данных, но с небольшим отставанием по времени.
Дополнительной нагрузки на рабочую базу данных нет. Если рабочая база
испорится, то standby database будет готова исполнять роль настоящей.
Пользователи должны будут только переподключиться.
Если база данных огромная, то дорого найти такой же компьютер для запасной
базы, поэтому используются другие методы. Они сложны и им нужно
учиться.
Документация
Документация присутствует в электронном виде ( html, pdf) на некоторых
дистрибутивах и очень полезна для чтения, если есть понимание архитектуры
продукта. Последнее время отсутствует или присутствует только в виде
руководства по инсталляции, так как не помещается на CD-ROMе. Книги по
технологиям Oracle выпускают издательства O'Reily и McGrowhill, но это
всего лишь книги, написанные профессионалами, а не разработчиками
продуктов. У хорошего специалиста всегда есть работа и нет временина
написание книг. Часто в книгах встречаются рекомендации, поданные как
откровения, которые стандартно изучаются в авторизованных курсах обучения.
Oracle предлагает обучение трех типов Instructor Lead training (ILT),
Computer based training (CBT/TBT) и Oracle Channel. Обучаться лучше под
руководством инструктора. Не задумывался почему, но знания передаются
лучше. Документация на русском языке продается
компанией РдТех (г.Протвино Московской области), которая более 10 лет
специализируется на ее переводе. Стоимость переводной документации высока,
но она очень высокого качества. Присутствующие в широкой продаже переводы
книг, пусть даже известных издательств, сильно уступают оригиналам на
английском. Это переводы-кальки, сделанные переводчиком, а не
специалистом. Из-за различия построения фраз в английском и русском языках
фразы получаются бессмысленными, а часть ассоциаций теряется. Мнение, что
только информация 'между строк' это русское изобретение, рекомендую
прочесть, к примеру, интервью с Ларри
Элиссоном, как живой пример английской речи.
Программа сертификации OCP В ней
важна не цель, а сам процесс подготовки к тесту. Это дисциплинирует и дает
адреналин, неплохо стимулируя. Важность сертификата скорее не в бумаге, а
в той уверенности и энергии, которую вы получите после подготовки к тесту
и успешной сдачи. Мало какой работодатель рассматривает сертификат как
подтверждение квалификации - "you can pass the exams and without
experience you will then join that happy pool of wannabe DBA's who can't
get a job just based on being an OCP". Сертификат говорит о квалификации
столько же, сколько наличие платежной карточки Visa о сумме на вашем
счете. Вы покажете, что имеете некоторый начальный уровень и у вас нашлись
деньги на тесты. Искусство решать проблемы (осуществлять техническую
поддержку) и наличие стандартных знаний не одно и то же. Наличие
большого числа сертификатов без уважительной причины (например, компании
требовался сертификат) вызывает подозрение в наличии свободного времени и
излишнего самомнения. Гораздо большую пользу имеет сертификат о
прохождении обучения. С 2000 года он выдается компанией Oracle и имеет ее
печать и уникальный номер. До 2000 года он выдавался на едином бланке
Oracle, но на нем стояла печать Авторизованного Учебного Центра. Его
наличие показывает, что компания согласна тратить на вас приличные деньги.
Oracle ввел градацию Oracle Masters, в требования которой, помимо сдачи
тестов, входит прохождение курсов. Обучение не на авторизованных курсах
является минусом. К примеру, сотрудники Oracle жаловались, что им
приходится переучивать людей, прошедших неавторизованные курсы. Я, правда,
не встречал таких людей, хотя видел, что рекомендации по настройке Oracle,
которые встречаются в Интернет содержат грубые
ошибки. Тесты Oracle не очень сложны. В нашем центре
90% кандидатов их проходит с первого раза. Наибольшей проблемой является
несерьезное отношение к тесту и, соответственно, невнимательность при
ответе на вопросы. Вопросы четкие, хотя иногда неоднозначные. Правильный
ответ, который подразумевается, можно найти в книге к курсу. Braindumps в
Интернет отсутствуют, а те что есть не соответствуют настоящим тестам.
Ценовая политика Oracle Существенную
часть доходов Oracle составляют услуги: техническая поддержка,
консультации, обучение и продажи флагманского продукта - базы данных. В
политике цен Oracle достаточно демократична - цены на программное
обеспечение не очень высоки, но если вам требуется качественные услуги, вы
можете их купить. Oracle отслеживает состояние рынка и составляет
прогнозы, поэтому цены устанавливаются исходя из рыночного спроса. Oracle
не защищает свои продукты. Основной рынок баз данных развитые страны (США,
Англия, Германия), где нелегальные продукты не используются. Также
продукты настолько сложны, что их поддержку может организовать только
квалифицированный специалист. Обычно, базы данных содержат важную
информацию, поэтому рисковать их содержимым редко кто решается. Более
типичным является покупка немного меньшего числа лицензий на клиентские
места, чем требуется. Сложно обратиться в техническую поддержку с жалобой
на медленную работу с сотней клиентов, когда у вас куплено 10
лицензий.
Другие базы данных Informix, Sybase
теряют рынок и уже не являются конкурентами. IBM DB2 является мощной базой
данных и достойной альтернативой, но общение с сотрудниками IBM на
любителя. Если ваша компания не номинируется в top100, вы рискуете
остаться со своими проблемами один на один. Microsoft SqlServer хорошая
база данных и подходит во многих случаях, но поддержку больших реальных
баз данных ей доверять не стоит. Она - прекрасное решение, если вы
переходите с MS Access. До SqlServer7 у нее была проблема с блокировками,
точнее не было блокировок на уровне строк, что затрудняло работу в
многопользовательском режиме. Известна история того, как компания 1C
обнаружила, что ее программы на SqlServer7 работают на порядок медленнее,
чем на предыдущей версии. 1C с помощью российского представительства
Микрософт смогла добиться от разработчиков продукта исправления кода. Эту
историю приводят как доказательство чуткости Микрософт. Это скорее говорит
о качестве кода, который при желании можно сделать производительнее в 10
раз. По стоимости решения Oracle на Linux дешевле MS SqlServer on Win2k. К
тому же, как показал опыт сетевых устойств (Cisco), лучше ставить на
победителя. При выборе учитывайте средство разработки, на котором написано
или будет создано ваше приложение - часто оно определяет выбор базы
данных. По моему мнению, Oracle выиграл бы намного больше, если бы раньше
у него было хорошее средство разработки: Developer/2000 очень тяжел.
Oracle зря отказался от текстовых средств Sql*Forms, для терминалов
текстовые окна гораздо удобнее. В Develpoer/2000 оставалась возможность
писать для терминалов, но ей мало кто пользовался.
Oracle vs MS SqlServer7 Oracle не делает
сравнений с базой Микрософт. Oracle ограничился конкурсом ценой миллион
долларов для того кто докажет, что MS SqlServer достигает хотя бы тысячной
доли производительности базы данных Oracle на терабайтной базе в
стандатрных запросах. Приз никто не получил. Иногда можно найти сравнение
обоих продуктов, сделанные конечными пользователями. Например,
следующее:
1. Locking / concurrency SQL Server has no
multi-version consistency model which means that "writers block readers
and readers block writers" to ensure data integrity. In contrast, with
Oracle the rule is "readers dont block writers and writers dont block
readers". This is possible without compromising data integrity because
Oracle will dynamically re-create a read-consistent image for a reader of
any requested data that has been changed but not yet committed. In other
words, the reader will see the data as it was before the writer began
changing it (until the writer commits). SQL Server's locking scheme is
much simpler (less mature) and will result in a lot of delays/waits in a
heavy OLTP environment. Also, SQL Server will escalate row locks to
page level locks when too many rows on a page are locked. This locks rows
which are uninvolved in any updates for no good reason.
2.
PERFORMANCE and TUNING a. No control of sorting (memory
allocation) b. No control over SQL Caching (memory allocation) c.
No control over storage/space management to prevent fragmentation. All
pages (blocks) are always 8k and all extents are always 8 pages (64k).
This means you have no way to specify larger extents to ensure contiguous
space for large objects. d. No partioning e. No bitmap indexes
f. no reverse key indexes g. no function-based indexes h. no
star query optimization i. no hash joins
3. RELIABILITY a.
no ability to mirror the transaction log files b. if the logs fill up
the disk, the datbase will crash hard. Sometimes requires the server
itself to be rebooted.
4. DATA INTEGRITY a. No cascade delete
option (without writing manual procedures/triggers) b. No optional
relationships between tables. FK constraints are only allowed on a
mandatory column.
5. MISSING OBJECT TYPES a. No public or
private synonyms b. No user written functions c. no independent
sequences d. no packages e. no user defined data types f. No
"before" event triggers (only "after" event triggers)
6.
PROGRAMMING a. Significant extensions to the ANSI SQL-92 standard
which means converting applications to a different database later will be
a challenge (code re-write). b. No "dead connection detection".
Client's who lose their connection may still hold locks until a DBA is
notified to kill their server side connection. c. No JAVA engine
d. No SQL*Net aliases/service names -- this means applications have to
hard code the actual server name into their apps making it difficult to
move databases later to load balance across servers. e. Stored
Procedures are not compiled until executed (overhead) f. No ability to
read/write from external files from a stored procedure.
SUMMARY
SQL Server is clearly positioned between MS-ACCESS and ORACLE in terms
of functionality, performance, and scalability. I think it makes a strong
work group level solution (small number of users with small amount of
data). Oracle still is much more advanced and has more to offer for larger
applications with both OLTP and Data Warehouse applications.
Глядя
на то как у меня работает Outlook, теряя сообщения в больших папках
(тысячи сообщений) могу предположить, что в SqlServer индексы могут
аналогично "терять" доступ к строкам. Яблоко от яблони недалеко падает.
Причем падает несколько раз в год. В Outlook Express9X папки хоть можно
было восстановить удалив файлы индексов. В Outlook2000 индексы хранятся
вместе с данными.
Компания |
Объем
продаж (млн.$) |
|
1998 |
1999 |
1 |
ORACLE |
3782.9 |
4719.0 |
2 |
IBM |
1733.8 |
2275.0 |
3 |
Microsoft |
525.0 |
869.4 |
4 |
Informix |
579.1 |
656.0 |
5 |
Sybase |
427.4 |
429.1 |
7 |
SAS |
171.8 |
183.4 |
8 |
Progress |
130.0 |
161.0 |
10 |
CA |
137.0 |
157.0 |
Oracle
Technology Network Место, где можно, бесплатно
зарегистрировавшись, скачать программное обеспечение Oracle, почитать
документацию (но не техническую и консалтинговую информацию), даже
бесплатно заказать CD-ROM с новейшим программным обеспечением в целях
разработки. И Oracle его бесплатно пришлет через месяц-два. Правда,
странно - если заказать JDeveloper в целях разработки и разработать на нем
систему для своего предприятия, это будет лицензионно чисто. А так он
стоит денег. Наверное, это если разрабатывать программы для других
предприятий. Можно поучаствовать в форуме пользователей. Можно за 200$ в
год получать CD-ROMы со всеми программными продуктами Oracle, очень похоже
на Microsoft MSDN.
Техническая поддержка и
консалтинг Это существенные части бизнеса Oracle. Уровни
поддержки делятся на бронзовый, серебряный и золотой. Можно купить
различные уровни для разных продуктов. Большое преимущество - доступ к
knowlege base (metalink.oracle.com). Для
регистрации необходим CSI (Customer Support Identifier), который указан в
договоре на покупку продуктов Oracle. Часто, покупая поддержку покупатели
не читают контракт и не используют эту возможность. Стоимость поддержки от
300$ в год. Возможности поддержки: поиск документов по любому продукту в
базе знаний; технические форумы в которых сотрудник Oracle обязан дать
ответ (по купленным продуктам); доступ к базе исправлений ошибок; iTAR
(technical assistance request) - ставите проблему, поддержка ее решает.
Один только доступ к этому серверу стоит денег, заплаченных за техническую
поддержку.
Техническая информация в
Интернет Ее довольно мало и что самое
неприятное, она нечасто обновляется. Большая часть информации относится к
периоду 1995-97 годов. Можно подумать, что технологии Oracle так
долговечны, что от появления на рынке до массового использования проходит
5 лет. Задержка промышленного внедрения в год-два есть и существуют базы
данных работающие на версиях Oracle7, но не большая часть. Просто
написание информации для размещения в Интернет держится на доброй воле
авторов и не приносит дохода. Этим занимаются, когда есть как минимум
свободное время. Обычно, размещение информации происходит, когда автор
обучается, сам ищет и структуирует
полезную информацию для себя. Период поиска у многих
заканчивается выходом на профессиональный уровень, когда стоимость их
рабочего времени и загруженность не позволяют обновлять информацию.
Наиболее интересная информация доступна в базе Oracle Metalink, но за
доступ к ней необходимо платить - это техническое
обслуживание. Вся информация содержится во
внутренней сети Oracle. Ее очень много. Ограниченный доступ к ней и
конференциям возможен при покупке технической поддержки (текущий интерфейс
Oracle MetaLink v2). Вот почему конференций по Oracle мало - все сидят в
закрытых конференциях.
Обучение В документации есть все
нужное для работы, но чтобы ее прочесть и понять нужно потратить много
времени и сил. При этом не гарантируется, что вы все правильно усвоите. В
документации объясняется "как", но не объясняется "почему". А в случае
работы с продуктами oracle умение предсказывать работу
продуктов и стратегию корпорации помогает сохранить много денег своей
компании.
Стоит ли изучать технологии
Oracle Это зависит от человека. Технологии Oracle намного
сложнее изучения MS Word. Можно столкнуться с тем, что просто не хватает
интеллекта для понимания технологии и выполнения своей работы. Могу
предложить небольшой тест из алгебры: если в кольце главных идеалов
произведение ab делится на c , и
а взаимно прост с с, то делится ли
b на c? Правильный ответ: если вы
считаете, что кольцо - это метафора, успех в области рзработки и
администрирования Oracle не грозит. Если вы хотите
администрировать Oracle, то помните, что перед тем как доверить вам базу
данных вас попросят продемонстрировать, что вы ее сможете восстановить.
Можно стать оператором базы данных. Оператор - человек, монотонно
выполняющий повседневную работу, данную администратором (DBA). Например,
меняющий пароли пользователям, если они их забыли.
Если вы хотите разрабатывать приложения, то вам нужно изучить язык
запросов SQL и PL/SQL, иногда Java. Если вы хотите разрабатывать схемы баз
данных, заниматься аналитической работой, то не имея опыта разработки,
лучше об этом не думать. Нужно быть опытным разработчиком, чтобы знать,
что такая-то схема сложна для программирования, а такая плоха с точки
зрения производительности.
Oracle
magazine Это журнал, издаваемый Oracle. Подписаться на
него можно совершенно бесплатно, только его не всегда и не всем высылают.
В нем встречаются интересные статьи. Oracle Profit - тоже бесплатен, но
довольно глуп и не содержит кроме рекламы ничего интересного.
Oracle Partner Program Преимущества
достаточно значительные, например, доступ к Metalink. Подробности на alliance.oracle.com (Login:
guest/welcome) или на www.fors.ru/win/partners/programme.shtml
Рэй Лэйн Директор
по текущим операциям, второй человек в Oracle, ушел из компании в июне
2000 после часового разговора с Ларри Эллисоном. Рэй работал в компании 8
лет и за время рего руководства компания существенно продвинулась. Как
показал опыт HP, Novell и Seagate, смена глав в больших компаниях слабо
влияет на положение компаний на рынке. Большая часть обязанностей Рея
перешла к Гари
Блуму, формирующему стратегию Oracle в области новых технологий.
NC (Network Computer) У Ларри
Эллисона есть теория, по которой развитие компьютерной отрасли идет
15-летними циклами (похоже на длинные циклы Кондратьева). От терминальной
работы с мэйнфреймами до PC и обратно. Вероятно, это так и будущее за PDA,
но краеугольным камнем, отличающим NC от PC почему-то стал винчестер. Хотя
его цена, размеры и шум постоянно уменьшаются, а объем растет. Приходит
сантехник к Ларри Эллисону ремонтировать засорившуюся раковину. Начинает
ковыряться в отстойнике... Сантехник: - У вас тут из сети все на
винт падает...вот и забило... - Надо винт больше ставить? - Нет,
винт надо вообще спилить нафиг. Так родилась идея сетевого
компьютера
This document source from http://www.fors.com/oleg/myorafaq.htm
|