Автор работы: Пользователь скрыл имя, 28 Сентября 2010 в 18:38, Не определен
Понятия, сущность, функции
Обычно современная СУБД содержит следующие компоненты:
Классификация СУБД
По модели данных
По типу управляемой базы данных
Иерархические
Сетевые
Реляционные
Объектно-реляционные
Объектно-ориентированные
Таким образом, реляционная база данных представляет собой набор таблиц, связанных между собой.
Примеры реляционных СУБД: MySql, PostgreSql.
В
основу объектной модели положена концепция
объектно-ориентированного программирования,
в которой данные представляются
в виде набора объектов и классов,
связанных между собой
Примеры объектных СУБД: Cache, GemStone (от Servio Corporation), ONTOS (ONTOS).
В последнее время производители СУБД стремятся соединить два этих подхода и предлагают объектно-реляционную модель представления данных. Примеры таких СУБД – IBM DB2 for Common Servers, Oracle8.
По архитектуре организации хранения данных
локальные СУБД (все части локальной СУБД размещаются на одном компьютере)
распределенные СУБД (части СУБД могут размещаться на двух и более компьютерах)
По способу доступа к БД
В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. Ядро СУБД располагается на каждом клиентском компьютере. Доступ к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на ЦП сервера, а недостатком — высокая загрузка локальной сети.
На данный момент файл-серверные СУБД считаются устаревшими.
Примеры: Microsoft Access, Borland Paradox.
Клиент-серверные СУБД состоят из клиентской части (которая входит в состав прикладной программы) и сервера. Клиент-серверные СУБД, в отличие от файл-серверных, обеспечивают разграничение доступа между пользователями и мало загружают сеть и клиентские машины. Сервер является внешней по отношению к клиенту программой, и по надобности его можно заменить другим. Недостаток клиент-серверных СУБД в самом факте существования сервера (что плохо для локальных программ — в них удобнее встраиваемые СУБД) и больших вычислительных ресурсах, потребляемых сервером.
Примеры: Firebird, Interbase, MS SQL Server, Sybase, Oracle, PostgreSQL, MySQL.
Встраиваемая
СУБД — библиотека, которая позволяет
унифицированным образом
Примеры: OpenEdge, SQLite, BerkeleyDB, один из вариантов Firebird, один из вариантов MySQL, Sav Zigzag, Microsoft SQL Server Compact.
Ключи
В системах управления базами данных существует понятие первичного ключа.
Первичный ключ (primary key, PK) – минимальный набор полей, уникально идентифицирующий запись в таблице. Значит, первичный ключ – это в первую очередь набор полей таблицы, во-вторых, каждый набор значений этих полей должен определять единственную запись (строку) в таблице и, в-третьих, этот набор полей должен быть минимальным из всех обладающих таким же свойством. Поскольку первичный ключ определяет только одну уникальную запись, то никакие две записи таблицы не могут иметь одинаковых значений первичного ключа. Также первичные ключи используются для организации связей с другими таблицами.
Смысл
В теории реляционных баз данных таблица представляет собой изначально неупорядоченный набор записей. Единственный способ идентифицировать определённую запись в этой таблице — это указать набор значений одного или нескольких полей, который был бы уникальным для этой записи. Отсюда и происходит понятие первичного ключа — набора полей (атрибутов, столбцов) таблицы, совокупность значений которых определена для любой записи (строки) этой таблицы и различна для любых двух записей.
Использование
Первичный ключ в таблице является базовым уникальным идентификатором для записей. Значение первичного ключа используется везде, где нужно указать на конкретную запись. На использовании первичных ключей основана организация связей между таблицами реляционной БД. Чтобы организовать между двумя таблицами связь типа «один к одному» или «один ко многим(многие к одному)» в одну из связываемых таблиц добавляют поле (поля), содержащее(ие) значение первичного ключа записи в связанной таблице (такое поле называют внешним ключом). Для организации связи типа «многие ко многим» создают отдельную таблицу (так называемую «таблицу связи» или «таблицу ассоциации»), каждая запись которой содержит первичные ключи двух связанных записей в разных таблицах.
Классификация
Первичный ключ может состоять из единственного поля таблицы, значения которого уникальны для каждой записи. Так, например, на предприятии не может быть двух работников с одинаковыми табельными номерами, поэтому в таблице, содержащей записи о работниках, табельный номер может быть первичным ключом. Такой первичный ключ называют простым ключом.
Если таблица не имеет единственного уникального поля, первичный ключ может быть составлен из нескольких полей, совокупность значений которых гарантирует уникальность. Так, имя, фамилия, отчество, номер паспорта, серия паспорта не могут быть первичными ключами по отдельности, так как могут оказаться одинаковыми у двух и более людей. Но не бывает двух личных документов одного типа с одинаковыми серией и номером. Поэтому в таблице, содержащей записи о людях, первичным ключом может быть набор полей, состоящий из типа личного документа, его серии и номера. Такой первичный ключ называют составным ключом (англ. compound key, composite key, concatenated key).
Первичный ключ может состоять из информационных полей таблицы (то есть полей, содержащих полезную информацию об описываемых объектах). Такой первичный ключ называют естественным ключом. Теоретически, естественный ключ всегда можно сформировать, в этом случае мы получим т. н. интеллектуальный ключ. На практике, однако, использование естественных ключей наталкивается на определённые сложности:
Низкая эффективность — Естественный ключ может быть велик по размеру (особенно когда он составной), и его использование окажется технически неэффективным (ведь во всех таблицах, связанных с данной, понадобится создать поле того же размера, чтобы хранить ссылки).
Необходимость каскадных изменений — При изменении значения поля, входящего в естественный ключ, оказывается необходимым изменить значение поля не только в данной таблице, но и во всех таблицах, связанных с данной, в противном случае все ссылки на данную запись окажутся некорректными. В сложных базах данных таких связанных таблиц может быть очень много, и всегда остаётся опасность упустить из виду какую-то из них. При добавлении новых связанных таблиц приходится добавлять согласующие изменения во все места программ, где правится исходная таблица.
Несоответствие реальности — Уникальность естественного первичного ключа в реальных БД не всегда соблюдается. Допустим, например, что первичный ключ в таблице — данные личного документа. В такую таблицу окажется невозможным внести человека, о документах которого нет информации в момент добавления записи, а на практике такая необходимость может возникнуть.
Вследствие этих и других соображений в практике проектирования БД чаще используют т. н. синтетические (суррогатные) ключи — искусственно созданные технические ключевые поля, не несущие информации об объектах.
Индексирование
Одна
из основных задач, возникающих при
работе с базами данных, – это
задача поиска. При этом, поскольку
информации в базе данных, как правило,
содержится много, перед программистами
встает задача не просто поиска, а эффективного
поиска, т.е. поиска за сравнительно небольшое
время и с достаточной
Например, если говорить о MySQL, то там существует три вида индексов: PRIMARY, UNIQUE, и INDEX, а слово ключ (KEY) используется как синоним слова индекс (INDEX). Все индексы хранятся в памяти в виде B-деревьев.
PRIMARY – уникальный индекс (ключ) с ограничением, что все индексированные им поля не могут иметь пустого значения (т.е. они NOT NULL). Таблица может иметь только один первичный индекс, но он может состоять из нескольких полей.
UNIQUE – ключ (индекс), задающий поля, которые могут иметь только уникальные значения.
INDEX – обычный индекс.
Примеры баз данных
Astrophysics Data System- Астрофизическая Информационная Система НАСА - интерактивная база данных более 7 000 000 документов по астрономии и физике как из рецензируемых, так и из нерецензируемых источников.
Scientific and Technical Network- европейская база данных, содержащая около 10 млн наименований журнальных статей, препринтов, книг, диссертаций, патентов и материалов научных конференций в области прикладной физики, химии, биофизики, технологий, биотехнологий, медицины. Благодаря очень широкому спектру интересов база данных является одной из самых больших в мире.
Zentralblatt MATH- реферативный математический журнал, основанный издательством «Шпрингер» (Springer).Целью журнала является сбор, систематизация, публикация и распространение библиографических данных и рефератов книг и статей, посвящённых всем разделам математики и её приложениям в информатике, механике и физике. Журналом реферируются более 2300 журналов и периодических изданий разных стран, ежегодно публикуется около 80 000 аннотаций и рецензий, написанных более чем 5000 учёными. Большинство рефератов публикуется на английском языке, некоторые — на французском или немецком.
ABC-CLIO- aмериканская база данных, содержащая свыше 1 млн журнальных статей, книг, материалов конференций в области истории и политических наук. В базе данных имеются почти все исторические журналы мира. Создана и управляется Калифорнийским университетом в Санта-Барбара.
ArXiv- крупнейший бесплатный архив электронных препринтов научных статей по физике, математике, астрономии, информатике и биологии.Архив был создан в 1991 в Лос-Аламосской национальной лаборатории, США (англ. Los Alamos National Laboratory, LANL) и первоначально предназначался для физических статей, но постепенно возникли разделы, посвящённые другим наукам. К середине 2008 года в нём содержалось более 485 000 публикаций, и каждый месяц добавляется 3000—4000 статей.