Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Реляционные базы данных. Исходя из обсуждений и объяснений этой главы, можно дать более формальное определение (более формальное
Исходя из обсуждений и объяснений этой главы, можно дать более формальное определение (более формальное, чем данное выше в этой главе) термина "реляционная база данных". Перефразировав определение, данное Коддом в [4.1], Получим следующее: Реляционная база данных — это база данных, воспринимаемая пользователем как набор нормализованных отношений (т.е. переменных отношений) разной степени. Как отмечалось ранее, выражение "воспринимаемая пользователем" является решающим: идея реляционной модели применяется к внешнему и концептуальному уровням системы, а не к внутреннему уровню. Можно сказать и иначе — реляционная модель представляет систему баз данных на уровне абстракции, несколько удаленном от подробностей лежащей в основе этой системы машины; так же как, например, язык Pascal представляет систему программирования на уровне абстракции, несколько удаленном от подробностей лежащей в основе этой системы машины. В действительности реляционную модель можно рассматривать как язык программирования, специально, ориентированный на приложения баз данных. Различие между доменами и (именованными) отношениями также можно несколько уточнить. Мы называем именованные отношения переменными, так как их значения изменяются со временем. Как указывалось выше в этой главе, домены не являются переменными в этом смысле. Например, множество всех возможных номеров поставщиков, конечно, не изменяется со временем, или если изменяется, то изменение носит описательный характер, т.е. происходит на уровне типа, а не экземпляра. Это немного похоже на изменение основного типа данных для номера поставщиков с CHAR(5) на CHAR(7). Обратите внимание, что такое изменение, возможно, повлечет за собой реорганизацию базы данных. Итак, можно сказать, что в традиционных терминах отношение соответствует файлу (логическому, а не физическому), кортеж — записи (экземпляру, а не типу), атрибут полю (типу, а не экземпляру). Однако это соответствие в лучшем случае приблизительное. Отношение следует рассматривать не как "просто файл", а как файл, подчиняющийся определенным правилам, это отражается в значительном упрощении структуры объектов данных, с которой сталкивается пользователь, и, как следствие, в упрощении операторов, необходимых для работы с этими объектами. Если говорить точнее, все данные в реляционной системе представляются одним и только одним способом, а именно явными значениями (это свойство иногда называют "основным принципом реляционной модели", а также "информационным принципом"). В частности, этими явными значениями представляются логические связи в отношении и между отношениями; не существует видимых для пользователя указателей на файлы или записи, не существует видимого для пользователя порядка записей, не существует видимых для пользователя групп повторения и т.д.
[6][1] Если рассматривать отношения как таблицы, то мы могли бы сказать, что, например, переменная отношения S в разное время представляет разные таблицы. Однако заметьте, что в этих разных таблицах будут разные строки, а столбцы будут одинаковые. [7][2] Для читателей, знакомых с языком SQL, отметим, что в SQL существует возможность добавлять новый столбец или удалять существующий столбец из базовой таблицы посредством оператора ALTER TABLE. Однако эту операцию лучше рассматривать не как изменение существующей таблицы, а как уничтожение существующей таблицы и создание новой с тем же именем и новым заголовком. [8][3]Точнее, всегда существует по крайней мере один потенциальный ключ. Мы предполагаем, что один из потенциальных ключей выбран как первичный. Дальнейшее обсуждение этого вопроса приведено в главе 5. [9][4]Понятие "последовательности" требуется для интерфейса между реляционной базой данных и базовым языком, таким как С или COBOL. Но это требование для базовых языков, а не для реляционной модели. В сущности, эти языки требуют, чтобы неупорядоченные множества были преобразованы в упорядоченные таким образом, чтобы могли выполняться операции типа "вызвать следующий кортеж". Заметьте также, что такие возможности составляют часть прикладного программного интерфейса—они не видны конечному пользователю. [10][5]Здесь мы используем очевидное сокращение, согласно которому выражение (S1,Smith,20,London) соответствует кортежу {<S#:'S1'>, <SNAME:'Smith'>, <STATUS:20>, <CITY: 'London'>}.
Целостность реляционных данных (стр. 113-130)
Глава 5 Целостность реляционных данных: Date: 2016-05-25; view: 519; Нарушение авторских прав |