Должны быть организованны в базы данных с целью адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей

Вид материалаДокументы

Содержание


Общая характеристика продуктов Oracle
Общая характеристика продуктов MSSQL
Set option
Foreign key
2.2. Анализ структуры и организации БД.
2.2.2. Интерфейс редактора.
2.4. Выбор и обоснование технических решений.
2.4.2. Организация доступа в Интернет.
Подобный материал:
1   2   3   4

Общая характеристика продуктов Oracle



Все продукты Oracle (СУБД, средства разработки, средства для конечного пользователя, сетевые компоненты) являются открытыми, масштабируемыми и программируемыми. Они позволяют разрабатывать приложения, как уровня небольшой рабочей группы, так и уровня огромного предприятия с тысячами пользователей, террабайтными базами, размещенными в различных зданиях и даже странах.
Средства Oracle позволяют надежно защитить эти данные, обеспечить их целостность и непротиворечивость. Продукты Oracle работают более чем на ста вычислительных платформах (компьютер + операционная система), поддерживают все основные промышленные сетевые протоколы и графические оконные среды. Это позволяет с минимальными затратами переносить готовые приложения с одной платформы на другую.
С помощью средств Oracle возможно реализовать оперативную обработку (OLTP - системы), системы поддержки принятия решений (DSS - системы) и системы накопления и анализа больших объемов данных (Data Warehouse и OLAP - системы). Oracle поддерживает все основные стандарты:
  • FIPS 127-2, ANSI X3-135.1992 - для БД;
  • NCSC TDI C2, B1, ITSEC F - C2/E3, F - B1/B3 - по защите данных;
  • OSI, DNSIX (MaxSix), SNMP - для сети;
  • ODBC, TSIG, X/Open, DCE, DDE, OLE, OCX, VBX - для взаимодействия приложений.


Система управления базами данных ORACLE, разработанная корпорацией Oracle, Inc., относится к реляционным системам баз данных. В настоящее время ORACLE является одной из наиболее мощных промышленных СУБД, занимая одно из ведущих мест в мире среди систем управления реляционными БД. Ее особенностью является клиент/серверная архитектура, обеспечивающая высокий уровень независимости данных, их рациональную логическую и физическую структуру, эффективное управление использованием дискового пространства и гибкость доступа к данным. Таким образом, архитектура ORACLE предполагает наличие трех составляющих: сервера, клиента и сети (с коммуникационным программным обеспечением). В роли такого обеспечения выступает пакет SQL*Net. В этой книге представлена СУБД ORACLE версии 7.0, хотя в настоящее время уже имеется более высокая версия системы.

Общая характеристика продуктов MSSQL



Коль скоро этот обзор посвящен серверу баз данных, невозможно не упомянуть о том, что создание машин для хранения и управления данными является, пожалуй, одним из самых значимых достижений человечества со времени изобретения письменности. Microsoft SQL Server 6.5 является одним из наиболее стремительно развивающихся серверов баз данных на рынке корпоративных СУБД. Разумеется, в рамках данной статьи невозможно подробно остановиться на характеристиках этого продукта в той мере, в какой это хотелось бы сделать и какой он, безусловно, заслуживает. Поэтому мы ограничим нашу задачу рассмотрением хотя бы некоторых базовых возможностей Microsoft SQL Server 6.5 применительно к перечисленным выше функциям сервера баз данных.

Симметричная мультипроцессорная архитектура MS SQL Server предусматривает использование "родных" сервисов операционной системы Windows NT для управления потоками (threads), памятью, операциями дискового чтения/записи, сетевыми службами, функциями безопасности, а также для поддержки параллельного выполнения потоков на нескольких CPU. Использование потоков Windows NT позволяет MS SQL Server автоматически масштабироваться при работе на многопроцессорных платформах, что исключает необходимость дополнительной конфигурации или программной настройки. Например, на Comdex была продемонстрирована работа MS SQL Server на платформе AlphaServer 8400 производства Digital, оснащенным 12 процессорами, 28 Гбайт памяти и 39-ти терабайтным хранилищем. В отличие от большинства распространенных СУБД, вынужденных иметь в своем составе механизмы дублирования ядра операционной системы для обеспечения кросс-платформенной переносимости, MS SQL Server обладает достаточно легковесной прозрачной архитектурой, не перетяжеленной несвойственными ей функциями. В результате, например, при смене типа процессора не требуется заново приобретать MS SQL Server для новой аппаратной платформы. Он ставится, по определению, на все, на чем работает Windows NT (на сегодня это Intel, Alpha, MIPS и PowerPC). По мере того как Windows NT завоевывает все большее признание, и все ведущие производители СУБД уже выпустили версии своих продуктов под этой операционной системой или уже заявили о своей готовности это сделать в ближайшее время, изначальная ориентированность MS SQL Server 6.5 на тесную интеграцию с Windows NT выступает в качестве одного из серьезных преимуществ.

На каждое пользовательское соединение в MS SQL Server назначается отдельный рабочий поток (порядка 55К) в рамках единого серверного процесса. Так как каждый из этих потоков в действительности является потоком Win32, на них распространяются соответствующие функции контроля операционной системы, включая защиту памяти, правила доступа к оборудованию и планирование выполнения потоков во времени (thread scheduling). Это предоставляет улучшенные способности к масштабированию при росте числа одновременно работающих пользователей, динамическую балансировку при загрузке процессоров и повышенную надежность, так как пользовательские запросы, исполняющиеся на разных потоках, защищены друг от друга. Несмотря на то что пул соединений ограничен 1024 потоками, динамическое управление пользовательскими соединениями и свободными потоками позволяет увеличить эту величину до 32 767. Кроме этого, другие пулы потоков могут использоваться для параллельного выполнения операций сканирования данных, удаления и обновления, резервного копирования, проверки целостности базы, индексирования, асинхронного опережающего чтения данных в кэш на основе алгоритмов предсказания, создания и управления курсорами и т. д.

Сетевые службы Windows NT обеспечивают MS SQL Server поддержку протоколов TCP/IP, NWLink IPX/SPX, Named Pipes (NetBEUI), Banyan Vines, AppleTalk (ADSP) и DECNet. В версии 6.5 к ним добавилась дополнительная сетевая библиотека - multiprotocol network library, которая "умеет слушать" порты TCP/IP, сокеты SPX или поименованные каналы (named pipes), которые обычно выбираются динамически. Несомненным достоинством multiprotocol является наличие сетевого сервиса, обеспечивающего взаимодействие между процессами при помощи вызовов удаленных процедур, что позволяет, например, использовать шифрование при передаче данных.


Общая характеристика продуктов Informix.


Работы над системой управления базами данных Informix были начаты в 1980 г. Согласно начальному замыслу программный комплекс Informix рассматривался как СУБД, специально ориентированная для работы в среде ОС UNIX. Для организации хранения данных был выбран реляционный подход. С тех пор Informix стал одной из основных СУБД, работающих в среде UNIX.

Сейчас продукты Informix уже установлены практически на всех UNIX-компьютерах. Среди всех ОЕМ фирма выбрала шесть стратегических партнеров. Это: Sequent, HP, SUN, IBM, Siemens Nixdorf, NCR. Портирование продуктов фирмы на производимые стратегическими партнерами платформы производится в первую очередь. Практически это означает, что при появлении на рынке новой платформы или новой версии операционной системы для платформы уже имеется соответствующая версия продуктов Informix.

Среди не UNIX платформ Informix поддерживает NetWare, Windows, Windows NT и DOS.

Фирма Informix объявила и поддерживает программу InSync. Программа объединяет независимых разработчиков программного обеспечения. В рамках этой программы созданы программные интерфейсы для связи с СУБД других производителей, в частности СУБД, функционирующие на не UNIX-платформах.

Продукты Informix содержат серверы баз данных, средства разработки и отладки, коммуникационные средства. Характерной особенностью Informix является наличие нескольких типов серверов, подробнее о них будет сказано ниже.

Начиная с версии 4.0 фирма Informix поставляет сервер базы данных OnLine, который поддерживает аппарат распределенных транзакций (технология OLTP - on-line transaction processing), что позволяет по-новому подходить к созданию баз данных с очень большим объемом хранимой информации.

Кроме того, в Informix-OnLine включен новый тип данных - битовые поля (BLOB - binary large objects). Битовые поля могут использоваться для мультимедийных приложений (хранение изображений и звука).

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

Сервер базы данных (database engine), он же ядро базы данных - это отдельная программа, выполняемая как отдельный процесс. Сервер передает выбранную из базы информацию по каналу клиенту. Именно сервер работает с данными, заботится об их размещении на диске. Технологию "клиент-сервер" со стороны сервера обеспечивают модули Informix-SE, Informix-Online или Informix OnLine-Dynamic Server.

Informix-SE представляет собой сервер базы данных, предназначенный для обеспечения работы в системах с малым или средним объемом информации.

Хранение данных в этом случае осуществляется в файловой системе операционной системы, что значительно упрощает разработку и эксплуатацию приложений.

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

Informix-OnLine - это сервер второго поколения, обеспечивающий технологию распределенных транзакций (OLTP - on-line transaction processing). Технология распределенных транзакций позволяет выполнять запросы в распределенной базе данных, физически находящихся на различных компьютерах. По сравнению с Informix-SE сервер Informix-OnLine имеет специальный тип данных - битовые поля (BLOB - Binary Large Objects), символьные строки переменной длины, буферизацию транзакций, зеркальный диск, автоматическое восстановление после системных сбоев, большую скорость (в 2-4 раза).

Модуль Informix-Star является средством поддержки работы с распределенными базами данных. Посредством модуля InformixStar осуществляется оперативная обработка транзакций.

Работа сервера Informix заключается в запуске специальной программы (SQLEXEC для Informix-SE и SQLTURBO для Informix-OnLine), которая обеспечивает работу всех SQL-операторов. Для каждого клиента запускается процесс операционной системы, использующий эту программу. В случае, если клиент прервал работу, но не вышел из своей задачи, то его процесс занимает ресурсы системы, снижая ее производительность.

Одним из последних достижений фирмы стал выпуск нового сервера базы данных OnLine Dynamic Server, которой входит в состав системы начиная с версии 6.0. Этот продукт основан на так называемой Динамической Масштабируемой Архитектуре (Dynamically Scalable Architecture - DSA), которая специально ориентирована на работу с многопроцессорными системами. OnLine Dynamic Server обеспечивает повышение производительности за счет гибкости использования ресурсов СУБД, использование многопоточной архитектуры. Фактически OnLine Dynamic Server берет на себя многие связанные с распределением ресурсов функции операционной системы. В результате уменьшается нагрузка на операционную системы, что, в конечном счете, приводит к росту производительности.

Для обслуживания клиентов запускаются "виртуальные процессоры" - процессы операционной системы, которые устанавливают связь между клиентом и ядром Informix. Связь устанавливается с помощью специальных "нитей" (thread), которые активизируются, только если клиент активен и обращается к серверу базы данных. В случае если клиент неактивен, "нить" может обслуживать других клиентов.

Число виртуальных процессоров определяет администратор базы данных, исходя из реальных ресурсов вычислительной системы и сети клиентов. Если вычислительная система является многопроцессорной, то разные виртуальные процессоры могут обслуживаться разными реальными процессорами.

В версии 6.0 сетевые функции заложены в ядре СУБД. Поэтому для функционирования в сети OnLine Dynamic Server модули Informix-Net или Informix-Star не требуются.


Общая характеристика продуктов MySQL.


SQL СУБД (реляционная) без излишеств (правда, в последней версии появились транзакции с помощью Berkley DB и INNOBASE), зато быстрая (для поиска и добавления, если предстоят частые изменения, то лучше поискать другую СУБД). Стандарты: entry level SQL92, ODBC levels 0-2.

Лицензия - GPL/LGPL (но в случае извлечения прибыли от MySQL фирма - MySQL AB, Швеция - мягко намекает на оплату поддержки). Для хостинга лицензия не нужна, но клиенты должны иметь возможность убедиться, что все установлено правильно (предлагается давать доступ на чтение к установленным исходникам).

Написана на C и C++. Базовая платформа: Solaris 2.7-2.8, SuSE Linux 7.1 (ядро 2.4, ReiserFS), но работает также в AIX, BSDI, DEC Unix, FreeBSD, HP-UX, Linux 2.0, Mac OS X, NetBSD, OpenBSD, OS/2, SGI Irix, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Win9x, NT, Win2000.

Многопотоковая. Первоначально мимикрировала под mSQL. API для C, C++, Java, Eiffel, Perl, PHP, Python, Tcl. ODBC. Парольная защита (пароли шифруются перед пересылке, это, однако, не увеличивает безопасность).

Таблицы в виде B-tree со сжатием индекса. До 32 индексов на таблицу. До 16 колонок на индекс. Длина индекса до 500 байт. Таблицы в памяти. Записи переменной длины. Есть примеры использования MySQL с 60000 таблиц и 5 миллиардами строк. Отсутствует memory leak (проверено Purify). Поддержка koi8-r и cp1251 (сортировка, сравнение и т.д.). Клиенты могут соединяться по TCP/IP (можно использовать только, если никто не подслушивает) или Unix socket. Можно встраивать в свои программы.

Стабильность подсистем: ISAM - стабильная, MyISAM - gamma, C API - стабильная (буфер до 16МБ), mysql(,admin,show,dump,import) - стабильные, Basic SQL - стабильная, оптимизатор - стабильная, блокировка (одновременный доступ нескольких процессов, не клиентов) - gamma (проблемы в Linux, рекомендуется --skip-locking), нити в Linux - рекомендуется --skip-locking и использовать не более 1000 одновременных соединений, DBD - стабильная, MyODBC - gamma, репликация - бета/gamma, BDB - бета (транзакции), автоматическое восстановление MyISAM - бета, слияние таблиц - бета/gamma, INNODB - альфа (транзакции с блокировкой на уровне строк), полнотекстовый поиск - бета.

Расширения к ANSI SQL92:
  • типы полей MEDIUMINT, SET, ENUM и различные модификации BLOB и TEXT
  • атрибуты полей: AUTO_INCREMENT, BINARY, NULL, UNSIGNED и ZEROFILL
  • по умолчанию строки сравниваются независимо от регистра
  • ключевые слова TEMPORARY и IF NOT EXISTS при создании/удалении таблиц
  • ключ DELAYED при создании/замене строк
  • ключ LOW_PRIORITY при манипуляции со строками
  • SHOW
  • строки можно заключать не только в апострофы, но и в кавычки
  • SET OPTION
  • синонимы операторов OR (||) и AND (&&) и MOD (%)
  • LAST_INSERT_ID()
  • REGEXP
  • IT_COUNT(), CASE, ELT(), FROM_DAYS(), FORMAT(), IF(), PASSWORD(), ENCRYPT(), md5(), ENCODE(), DECODE(), PERIOD_ADD(), PERIOD_DIFF(), TO_DAYS(), or WEEKDAY()
  • REPLACE вместо DELETE + INSERT
  • присвоение значений переменным в выражениях
  • комментарии в стиле C и sh
  • множество других мелких улучшений и несовместимостей, которые не позволят Вам "соскочить" с MySQL на другую СУБД

Отсутствующие возможности ANSI SQL92:
  • sub-select (в руководстве приводятся примеры как обойтись без него)
  • хранимые процедуры и тригеры (тригеры не планируются совсем)
  • FOREIGN KEY
  • views


РАЗДЕЛ II. СПЕЦИАЛЬНАЯ ЧАСТЬ.


2.1. Цель создания БД «Современная Россия».


Целью создания БД было объединить разнообразные материалы, относящиеся к различным областям человеческой деятельности, в единой, легко доступной среде, с возможностью пополнения и изменения через Интернет.


2.2. Анализ структуры и организации БД.

2.2.1. Интерфейс пользователя.

Должен предусматривать процедуру регистрации, систему поиска подобного поисковой машине (Yandex, Rambler) и систему подробного поиска.

2.2.2. Интерфейс редактора.

Должен давать возможность вводить и редактировать записи в БД с удаленного компьютера через Интернет.

2.2.3. Интерфейс администратора.

Должен давать возможность администрирования БД.

2.3. Требования к БД.
  1. Все применяемые программные средства должны быть свободно распространяемыми, т.е. проект должен быть лицензионно чист.
  2. Предполагаемый объем хранимой и доступной через Интернет для пользователя информации составляет от 10 до 100 Гб.
  3. Время поиска не более 10 секунд.
  4. Информация в БД должна быть структурирована по рубрикам, причем каждая запись в БД может принадлежать более чем одной рубрике. Степень вложения рубрик – не более трех.
  5. Записи в БД должны иметь следующие реквизиты:
    1. Обязательно:
  • Источник (может быть более одного);
  • Рубрика (может быть более одной);
  • Язык публикации (один);
  • Заголовок (один);
  • Публикуемый текст (один);
    1. Не обязательно:
  • Автор (может быть более одного);
  • Два подзаголовка;
  • Аннотация к тексту;
  • Дата и место публикации;
  • Ключевое слово (для индикации и поиска);
  • Служебное поле (для отметок редактора, не доступное обычным пользователям);

Каждая запись в БД в качестве приложения к публикации может иметь неограниченное число файлов любых типов (zip, аудио, видеофрагмент, графика и др.).

2.4. Выбор и обоснование технических решений.

2.4.1. Выбор платформы.

В качестве платформы для WEB сервера выбрана операционная среда Free BSD, функционирующая на сервере следующей конфигурации: Pentium 3 – 1000 Dual, память 512 Мб, RAID 120 Кб. В качестве устройства Backup применяется пишущий CD-RW.

FreeBSD - это мощная операционная система семейства BSD UNIX для компьютеров архитектур, совместимых с Intel ia32, DEC Alpha и PC-98. Корни ее идут из BSD UNIX, версии UNIX разработанной в Университете Калифорнии, Беркли. Она разрабатывается и поддерживается большой командой разработчиков. Поддержка других платформ находится на разных стадиях разработки.

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

FreeBSD является идеальной платформой для построения Internet или Intranet. Эта система предоставляет надёжные даже при самой интенсивной нагрузке сетевые службы, и эффективное управление памятью, что позволяет обеспечивать приемлемое время отклика для сотен и даже тысяч одновременно работающих пользовательских задач.

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

FreeBSD может быть установлена с различных носителей, включая CD-ROM, дискеты, магнитную ленту, раздел MS-DOS, или если у вас есть подключение к сети, то вы можете установить её непосредственно через FTP или NFS. Хотя вы можете предположить, что операционная система с такими возможностями продаётся по высокой цене, FreeBSD распространяется бесплатно и поставляется со всеми исходными текстами.

2.4.2. Организация доступа в Интернет.