Классика баз данных - статьи

       

можно было бы определить как


Например, коллекцию TEENAGER (подросток) можно было бы определить как коллекцию, состоящую из таких же элементов данных, что и PERSON, но обладающий ограничениями на возраст. Опять-таки, уже создавались прототипы, демонстрирующие, как добавлять эти возможности к реляционным системам, и мы ожидаем, что коммерческие реляционные системы будут развиваться в этом направлении.

Наше третье предложение касается включения функций в СУБД третьего поколения.

Предложение 1.3: Функции, в том числе, процедуры и методы баз данных, а также инкапсуляция – хорошие идеи.

Поддержка системами второго поколения функций и инкапсуляции ограничена. Например, в SQL над таблицами возможны только операции, осуществляемые функциями create, alter и drop. Следовательно, абстракция таблицы доступна только путем выполнения одной из перечисленных функций.

Очевидно, выгоды, предоставляемые инкапсуляцией, должны стать доступными для разработчиков приложений, чтобы те могли ассоциировать функции с пользовательскими коллекциями. Например, функции HIRE(EMPLOYEE), FIRE(EMPLOYEE) и RAISE-SAL(EMPLOYEE) (соответственно нанять, уволить служащего и повысить ему зарплату) должны быть ассоциированы с уже знакомой коллекцией EMPLOYEE. Если пользователям не разрешен прямой доступ к коллекции EMPLOYEE, а вместо этого предоставлены упомянутые функции, то вся информация о внутренней структуре объектов класса EMPLOYEE инкапсулирована внутри этих функций.

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

В защищенных или распределенных системах применение инкапсуляции часто дает выигрыш в производительности. Например, функции HIRE(EMPLOYEE) в процессе выполнения несколько раз может потребоваться доступ к базе данных.

Содержание  Назад  Вперед