|
Программирование >> Элементы языков с и с++
ключа данной таблицы. Когда вы выбираете какой-то реквизит на роль первичного ключа, проверьте, действительно ли он уникален, т. е. не встречается ли более одного раза во всех строках таблицы. Если не существует единственной колонки, обладающей свойством неповторяемости данных в ее строках (это свойство называют еще уникальностью), то разработчику таблицы самому следует определить первичный ключ на основе двух и более колонок, которые вместе дают требуемую однозначность Нужно просто подобрать такие поля. При задании таблицы обычно такие атрибуты помечаются, а физически (при образовании ключа) они сцепляются друг с другом, обеспечивая свою уникальность для каждой строки таблицы. Вместе с первичным ключом таблицы (primary key) существует и так называемый уиикачьный ключ (unique key). Уникальный ключ - это не идентификатор строки, каким является первичный ключ. Основная цель уникального ключа- обеспечение ввода в колонку, названную уникальным ключом, уникального значения. У таблицы может быть только один первичный ключ и любое количество уникальных. Первичный и уникальный ключи задаются при создании таблицы, когда соответствующие поля относят к первичному ключу или к уникальному. Если поле помечено как уникальное, то в него для каждой строки можно вводить только различные данные. Если в некоторую строку данного поля ввести значение, которое уже встречалось в какой-либо другой строке, то система выдаст сообщение об ощибке. Так должна работать любая БД. Набор правил при разработке таблицы При создании базы данных требуется разработать набор правил для каждой таблицы и колонок. Правила устанавливают и обеспечивают целостность данных (связанные данные должны и модифицироваться, и удаляться совместно). Определение ограничений на целостность данных Ограничения на целостность данных - это правила, управляющие связями: колонка-таблица и таблица-таблица, а также учитывающие проверку данных на достоверность. Эти правила должны охватывать все транзакции, которые имеют доступ к БД и автоматически поддерживаются системой. Транзакция - это совокупность операций, обеспечивающих завершенность некоторого действия. Например, с вашего компьютера, установленного в банке, подана команда: Перечислить такую-то сумму с такого-то счета на счет такого-то клиента . Операция (в данном случае это транзакция) будет считаться завершенной, если все детали буд\т выполнены, и до окончания перечисления не произойдет ни отказа компьютера, ни чего-либо другого, помешавшего завершению перечисления. Ограничения на целостность дан-ны.\ могут быть применены как в целом к таблице, так и к отдельтюй колонке. Мы уже знаем: ограничения, налагаемые на первичный или уникальный ключ (по их определению) гарантируют, что любые два значения в колонке или в наборе колонок не будут совпадать. Значения данных, которые однозначно определяют строки (первичный ключ) водной таблице, могут появляться в других таблицах. В этой связи вводится понятие внешнего кчючи (foreign key). Внешний ключ - это колонка или набор колонок таблицы, которые содержат значения, совпадающие с первичным ключом в другой таблице. Принудительное обеспечение целостности данных При задании внешнего ключа необходимо быть уверенным, что станет поддерживаться целостность данных, когда более одной таблицы ссылаются на одни и те же данные. Строки одной таблицы всегда должны соответствовать строкам таблиц, ссьшающихся на эту таблицу. Например, вы обрабатываете движение товаров на складе. В вашей БД имеются таблицы Поставщики и Покупатели, содержащие коды товаров, а также таблица Ценник (сегодня модно давать ей название Прайс-лист), в которой имеются характеристики товаров (иена, единица измерения и т. п.). Все три таблицы связаны между собой кодом товара. И, например, неаккуратное изменение какой-либо строки в таблице Цсппнк может разрушить данные в остальных таблицах. Поддержание режима целостности данных обеспечивает их нормальное функционирование. Поэтому в программном обеспечении баз .чанных предусматривают возможность принудительного обеспечения ссылочной целостности с помощью задания внешнего ключа. Но прежде чем задать внешний ключ, необходимо определить уникальный и первичные ключи, на которые ссылается этот внешний ключ. Тогда, если информацию изменить в одном месте, то она автоматически будет соотвегст-венно изменена и во всех остальных места.ч, в которых уже существует. Выбор индексов Индекс (указатель)- это механизм, используемый для ускорения извлечения записей таблицы в ответ на некоторый запрос при определенных условиях поиска. Это как поиск по указателю в книге: индекс (указатель) содержит номера страниц, связанных с данным термином, что позволяет быстро найти нужную страницу. Индекс базы данных служит логическим указателем на физическое размещение (адрес) строки в таблице. Индекс хранит каждое значение колонки, по которой предполагается вести поиск в таблице, или значения колонок с указателями на все дисковые блоки, содержащие строки с таким значением. Извлечение данных является быстрым, потому что значения индекса упорядочены и сами они относительно невелики. Это позволяет системе быстро отыскивать ключевые значения. Как только в индексе ключевое значение найдено, система выбирает связанный с этим значением указатель на физическое размещение данно10, которое ищется. Использование индексов требует меньшего количества страниц выборки, чем последовательный просмотр каждой строки таблицы. Индекс может быть определен на одной или нескольких колонках таблицы. Язык SQL Каждая система управления реляционной БД предусматривает применение специального языка структурированных запросов SQL (Structured Quen Language), причем используется не весь язык, а некоторое его подмножество. Например, Microsoft SQL Server использует вариант SQL, названный Transact-SQL, который, по мнению разработчиков этого продукта, наиболее подходит для созданной ими структуры БД. На языке SQL создаются элементы БД (структуры таблиц, хранимые процедуры и т. д.). На этом же языке пишутся запросы к БД на выборку или модификацию информации. Мы дадим лишь основные сведения о наиболее часто употребляемых операторах этого языка, потому что на их использовании построена работа с наборами данных. Работа с наборами данных построена на принципе запрос-ответ , а запросы формируются на языке SQL. Правда, среда программирования предосгавляет возможность определенной автоматизации этого процесса, однако без понимания сути дела пользоваться услугами эгой среды довольно затруднительно, ибо часто приходится самому вмешиваться в процесс построения запросов. Наиболее часто используемые операторы SQL приведены в табл. 12.3.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |