|
|
|||||||||||||||||||||||||||||
|
Типовые cхемы Oracle: Скажем Goodbye, Scott !Источник: databasejournal Стив Коллан
Нашего героя, учетную запись (ранее пользователя) SCOTT с паролем TIGER, знают, естествено, все oracle-исты мира. Большинство также знает, что это имя одного из первых служащих Software Development Laboratories (в последствии корпорация Oracle) Брюса Скотта (Bruce Scott), а пароль - гордое имя его кота Тигр (Tiger). Все знают и любят Scott/Tiger"а, а в русском языке еще добавляется маленькая улыбка, связанная с созвучием имени царя зверей и вида домашнего имущества. Так вот, хоронили или, что звучит намного приличнее, отправляли на покой Scott/Tiger уже много раз и давно. В мире живут многие тысячи друзей SCOTT/TIGER, существует даже Общество его имени, а схема SCOTT/TIGER имеется в наличии по умолчанию в Oracle Database10g EE (правда, в Database10g XE ее надо заводить отдельно). Так что прощаться с SCOTT/TIGER еще рано. Он еще послужит многим поколениям настоящих oracle-истов.
Знаете ли Вы, что Oracle-ская схема "Scott" намечена на выброс? Сколько тысяч людей узнали SQL, SQL*Plus и PL/SQL посредством бедного старого Scott? Я рискну сказать, что все нынешнее поколение администраторов баз данных Oracle и разработчиков Oracle-приложений знакомо со схемой Scott, и сама схема, вероятно, - одна из самых известных частей Oracle. Схема Scott полезна во многих отношениях, но ей не хватает мощности и сложности, чтобы показать многие наиболее продвинутые возможности Oracle. Хорошо. Если Scott уходит в сторону (на покой), кто же встанет на его место? К сожалению, типовые схемы, которые присутствуют в 9i и последующих релизах, в значительной степени обезличены. Теперь надо привыкать к именам типа HR, OE, PM, QS и SH.Действительно, если вы хоть раз создавали во время установки Oracle стартовую базу данных, то, возможно, уже "встретили" этих новых пользователей. Их имена (подсвеченные синим цветом) можно увидеть в представлении dba_users.
В порядке введения скажем, что за этими двух символьными именами стоит следующее: • HR (Human resources - кадры, людские ресурсы) - основные темы, поддержка Oracle Internet Directory; • OE (Order entry - ввод заказов) - промежуточные темы, различные типы данных (datatypes); • PM (Product media - продуктовая среда) - типы данных (datatypes), используемые для мультимедиа; • QS (Queued shipping - постановка в очередь) - продвинутая организация очередей, назвываемых IX в 10g; • SH (Sales history - история продаж) - большое количество данных, аналитическая обработка. Существует также подсхема, называемая OC (для оперативного (Online) Catalog, использующегося в схеме OE), используемая для объектно-реляционных (object-relational) примеров. В схеме Scott хорошо то, что она может быть удалена и воссоздана двумя командами ("drop user scott cascade;" с последующим запуском скрипта utlsampl.sql или demobld.sql). В новых же типовых схемах пользователи зависят друг от друга. Oracle предписывает порядок создания в случае, если вы захотите создать эти схемы вручную. Имена - HR, OE, PM, QS и SH - упорядочены по алфавиту, и этот порядок определяет очередность создания схем. Все варианты инсталяции (personal, standard или enterprise) включают первые четыре схемы, и только конфигурация ЕЕ (enterprise edition), включающая опцию секционирования (partitioning), обеспечивается схемой SH. Для удобства Oracle предоставляет мастер-сценарий, который создает полную типовую схему. Этот мастер-сценарий находится в директории ORACLE_HOME\demo (SQL-скрипт mksample). Примечание: как узнать, установлена опция секционирования? Так как эта статья предназначена для представления типовой схемы, а не опции секционирования, то самый быстрый способ узнать это состоит из следующих действий. Во-первых, если схема SH не создана, то и секционированные таблицы SH, вероятно, также не существуют. Во вторых, если схема SH существует, то взгляните на ее таблицы. Также можете обратиться к представлению xxx_part_tables, где префикс xxx принимает значение dba, all или user. SQL> show user USER is "SH" SQL> select table_name, partitioned 2 from user_tables; TABLE_NAME PAR ------------------------------ --- CAL_MONTH_SALES_MV NO CHANNELS NO COSTS YES <-- COUNTRIES NO CUSTOMERS NO FWEEK_PSCAT_SALES_MV NO MVIEW$_EXCEPTIONS NO MV_CAPABILITIES_TABLE NO PLAN_TABLE NO PRODUCTS NO PROMOTIONS NO REWRITE_TABLE NO SALES YES <-- SALES_TRANSACTIONS_EXT NO TIMES NO 15 rows selected. [Примечание от редакции OM/RE: довольно странный способ, чтобы выяснить наличие стандартной опции. Вроде бы гораздо проще задать следующий вопрос и получить на него однозначный ответ: SQL> select * from v$option 2 where parameter = "Partitioning"; PARAMETER VALUE -------------------- ----- Partitioning TRUE Скорее всего Стив Коллан хочет на стандартном примере подсказать начинающему разработчику как создавать и использовать секционированные таблицы. -- А.Бачин] Я в предыдущих статьях использовал схему SH из-за количества данных, содержавшихся в таблице SALES (приблизительно миллион строк). Полный набор типовых схем содержит много более трех миллионов записей данных, что является, конечно, лишь небольшой частью обрабатываемых данных нормального объема. К сожалению, если все, что нужно, содержится в нескольких строках таблицы, то вы оказываетесь перед необходимостью ограничивать или фильтровать данные. Предложение же "select * from emp;" возвращает 14 строк, а "select * from employees;" в схеме HR возвращает 107 строк (а таблица отделов (department) возвращает 27). Поскольку Oracle не заявил, что удаляет SQL-скрипты пользователя Scott из программного комплекса, то приходит на ум совсем неплохая идея сохранить эти два сценария (demobld и utlsampl, находящиеся соответственно в директориях sqlplus\demo и rdbms\admin) для будущего упоминания и использования. Это же касается схем Adams, Jones, Clark и Blake, которые нам уже хорошо знакомы. [Примечание от редакции OM/RE: в Oracle Database 10g также по умолчанию инсталлируются схемы Scott, Adams, Jones, Clark и Blake, но скрипт demobld.sql по указанному адресу отсутствует. Скорее всего также будет и в еще не дошедшей до меня Oracle Database 11g. -- А.Бачин] В типовых схемах базы данных Oracle10g и Oracle9i присутствуют диаграммы. Схема Queued Shipping довольно сложна, если до сих пор вы пользовались только схемой Scott. Если вы умеете рисовать диаграммы entity-relationship (сущность-связь) и создавать таблицы, то можете самостоятельно изучить скрипты-сценарии и диаграммы от Oracle. Анализируя эти скрипты, можно увидеть различные примеры написания предложений "create table" и "alter table". Также вы увидите несколько таблиц с параметром "PCTFREE 5". По какой причине он имеет место? И кроме того, зачем добавлена опция NOLOGGING к предложению "CREATE TABLE sales"? В заключение "Формальное" включение типовых схем в документацию и обучающие программы (как интерактивные, так и ведущиеся преподавателями) обеспечивает студентам, изучающих Oracle, и инструкторам, преподающих Oracle, наличие под рукой наилучших ресурсов, помогающих исследовать и применять большое количество расширенных способностей Oracle. Понимание, что происходит по запросу "select * from emp", является первым значительным шагом на дороге того, какие предлагает Oracle сложные типы данных, объекты и конструкции. Типовая схема открыта [для пополнения и модификации - А.Б.], так что вмешивайтесь и учитесь большему в направлениях материализованных представлений, объектно-реляционных таблиц и секционирования. Работа, которую вы исполняете или захотите получить, может существенно зависеть от объема ваших знаний об особенностях Oracle Ссылки по теме
|
|