Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД / test.doc
Скачиваний:
205
Добавлен:
10.05.2015
Размер:
2.72 Mб
Скачать

3. Технологии поиска данных (на примере платформы Sybase).

СУБД позволяет не только создавать базы, но и предоставляет различные возможности быстрого поиска нужной информации.

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

Пример запроса:

SELECT * FROM people WHERE people.name = 'Иван'

PowerScript позволяет использовать в запросах аргументы (retrieve argument):

SELECT * FROM people WHERE people.name = :search_name

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

Пример использования фильтра в PowerScript:

string search_string;

search_string = "first_name LIKE '%" + sle_search.text + "%'";

dw_people.setFilter(search_string);

dw_people.SetTransObject(sqlca);

dw_people.retrieve();

4. Применение ключей в субд.

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

Правила:

1. Внешний ключ должен иметь столько же полей, что и первичный ключ родительской таблицы

2. Типы полей первичного и соответствующего внешнего ключа должны совпадать. Это означает, что при связывании таблиц мы «экспортируем» элементы первичного ключа в другую таблицу, но не требуем уникальности значений внешнего ключа.

Потенциальные ключи

По определению, тело отношения есть множество кортежей, поэтому отношения не могут содержать одинаковые кортежи. Это значит, что каждый кортеж должен обладать свойством уникальности. На самом деле, свойством уникальности в пределах отношения могут обладать отдельные атрибуты кортежей или группы атрибутов. Такие уникальные атрибуты удобно использовать для идентификации кортежей.

Отношение может иметь несколько потенциальных ключей. Традиционно, один из потенциальных ключей объявляется первичным, а остальные - альтернативными. Различия между первичным и альтернативными ключами могут быть важны в конкретной реализации реляционной СУБД, но с точки зрения реляционной модели данных, нет оснований выделять таким образом один из потенциальных ключей.

Целостность сущностей

Т.к. потенциальные ключи фактически служат идентификаторами объектов предметной области (т.е. предназначены для различения объектов), то значения этих идентификаторов не могут содержать неизвестные значения. Действительно, если бы идентификаторы могли содержать null-значения, то мы не могли бы дать ответ "да" или "нет" на вопрос, совпадают или нет два идентификатора.

Это определяет следующее правило целостности сущностей:

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

Внешние ключи

Различные объекты предметной области, информация о которых хранится в базе данных, всегда взаимосвязаны друг с другом. Например, накладная на поставку товара содержит список товаров с количествами и ценами, сотрудник предприятия имеет детей, числится в подразделении и т.д. Термины "содержит", "имеет", "числится" отражают взаимосвязи между понятиями "накладная" и "список товаров", "сотрудник" и "дети", "сотрудник" и "подразделение". Такие взаимосвязи отражаются в реляционных базах данных при

Целостность внешних ключей

Т.к. внешние ключи фактически служат ссылками на кортежи в другом (или в том же самом) отношении, то эти ссылки не должны указывать на несуществующие объекты. Это определяет следующее правило целостности внешних ключей:

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

Соседние файлы в папке БД