| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Ссылочная целостность является важной для баз данных
1. ВведениеСсылочная целостность – это ограничение базы данных, гарантирующее, что ссылки между данными являются действительно правомерными и неповрежденными. Ссылочная целостность является фундаментальным принципом теории баз данных и проистекает из той идеи, что база данных должна не только сохранять данные, но и активно содействовать обеспечению их качества. Вот несколько дополнительных определений, найденных в Web:
Поддержка ссылочной целостности в базе данных обеспечивает много преимуществ.
Заметим, что определения, взятые из Web, выражаются в терминах реляционных баз данных. Однако принципы ссылочной целостности применяются в более широком контексте. Ссылочная целостность применима как к реляционным, так и к объектно-ориентированным (ОО) базам данных, а также к языкам программирования и моделированию. 2. Ссылочная целостность и РСУБДСинтаксис SQL для определения ссылочной целостности выглядит, по существу, подобно следующему. Слова из прописных буква обозначают ключевые слова. Квадратные скобки выделяют необязательные параметры. Столбцы внешнего ключа находятся в таблице table1, а столбцы первичного ключа (или другой комбинации столбцов со свойством уникальности значений) – в таблице table2. ALTER TABLE tableName1 ADD CONSTRAINT constraintName FOREIGN KEY (columnList) REFERENCES tableName2 [(columnList)] [onDeleteAction] [onUpdateAction]; В SQL внешний ключ может ссылаться на любую комбинацию столбцов со свойством уникальности в таблице, на которую ведет ссылка. В стандарте SQL обеспечиваются следующие действия по поддержанию ссылочной целостности при удалениях строк.
В стандарте SQL эти действия обеспечиваются и при модификации записей. Поддержка стандарта различается в разных продуктах.
3. Ссылочная целостность и ООСУБДПонятие ссылочной целостности применимо и к ООСУБД. Между объектами имеются связи, которые приводят к их взаимной зависимости, и поддержку этих зависимостей не следует возлагать на код приложения. Ссылочная целостность поддерживается в некоторых ООСУБД . Например, в ObjectStore ссылочная целостность реализуется с использованием сдвоенных указателей между парой объектов, которые поддерживаются СУБД во взаимно согласованном состоянии [1]. Таким образом, в ObjectStore сохраняется стиль языков программирования – указатель представляет собой всего лишь еще одну переменную экземпляра, скрытую внутри объекта. Однако в системе соблюдается и смысл ссылочной целостности путем поддержки зависимостей между объектами и предотвращения «висящих» ссылок. Эти пары взаимно согласованных указателей называются в ObjectStore инверсными партнерами (inverse members). В ObjectStore поддерживается целостность инверсных партнеров; при изменении одного партнера ObjectStore прозрачным образом изменяет другого партнера. Аналогично, при удалении объекта ObjectStore автоматически обновляет всех инверсных партнеров, чтобы предотвратить появление «висящих» ссылок. 4. Ссылочная целостность и языкиВ языках программирования (с небольшим числом исключений) ссылочной целосности не придается значение. Вместо этого в них делается упор на инкапсуляции, на том, что детали реализации следует скрывать в классе. Проблема состоит в том, что инкапсуляция часто подрывается наличием зависимостей между объектами. Значение оказывается недостаточным для обеспечения ссылки на объект. Например, объект Занятость (Employment) ссылается на объекты Человек (Person) и Компания (Company). Невозможно иметь дело с изолированной Занятостью. Если удаляется Человек, то должны быть удалены и связанные с ним объекты Занятость, потому что иначе образуются «висящие» ссылки на объект. Нельзя создать объект Занятость без объектов Человек и Компания. Как демонстриуется в, в языке программирования можно поддерживать ссылочную целостность. В GE R&D (General Electric Corporate Research and Development) Рэмбо (Rumbaugh) реализовал объектно-ориентиованный язык программирования DSM с семантической поддержкой зависимостей (называемых в статье отношениями) между объектами. 5. Ссылочная целостность и UMLПри использовании UML за счет семантической поддержки ассоциаций также возникает ссылочная целостность. Ассоциация (association) – это описание группы соединений (link) с общей структурой и семантикой. Соединение – это физическая или концептуальная связь между объектами. При конструировании моделей классов UML важно явно представить зависимости между объектами в виде ассоциаций и не скрывать их в виде атрибутов. Традиционные языки программирования вынуждают понижать статус ассоциаций, но они должны быть понятны, по крайней мере, на уровне мышления. Тогда можно придумать наилучший обходной путь в пределах возможностей языка. 6. Используется ли ссылочная целостность?Ссылочная целостность является выдающимся аспектом теории реляционных баз данных. Но действительно ли она используется на практике? Мы можем ответить на этот вопрос, поскольку на основе своих исследований в области обратной инженерии обладаем данными о 50 существующих базах данных. На практике ссылочная целостность обеспечивается редко. Насколько нам известно, она не поддерживается в большинстве программ, поскольку в языках программирования отсутствует соответствующий механизм, что затрудняет поддержку. Однако проблема является более глубокой. В большинстве реализаций реляционных СУБД также отсутствует ссылочная целостность. Даже в тех случаях, когда в РСУБД поддерживается механизм ссылочной целостности, многие разработчики его не используют. Наши исследования в области обратной инженерии показали, что 90% разработчиков реляционных баз данных не используют ссылочную целостность в своих приложениях. Последствия прискорбны, и мы видем их повседневно – программное обеспечение содержит ошибки, работает медленно, его трудно расширять. Одним из характерных примеров может служить стандарт LDAP. В LDAP не включены средства подержки ссылочной целостности, и это приводит к печальным последствиям. 7. ЗаключениеОбычно термин «ссылочная целостность» ассоциируется только с реляционными СУБД. Но в действительности этот термин обладает более широким смыслом и относится в базам данных вообще, а также к языкам программирования и моделированию. Смысл «ссылочной целостности», происходящий из реляционных СУБД, относится к механизму реализации. Однако более глубокий смысл связан с зависимостями между объектами. В этом расширенном смысле ссылочная целостность является существенным аспектом нашего осмысления проблем и представления их на основе моделей. Поэтому ссылочную целостность необходимо учитывать вне зависимости от реализационной платформы – РСУБД, ООСУБД или языка программирования. 8. Литература[1] Michael Blaha and William Premerlani. Object-Oriented Modeling and Design for Database Applications. Upper Saddle River, New Jersey: Prentice Hall, 1998. [2] Michael Blaha. A retrospective on industrial database reverse engineering projects—part 2. Eighth Working Conference on Reverse Engineering, October 2001, Stuttgart, Germany, 147–153. [3] Jim Melton and Alan R. Simon. Understanding the New SQL: A Complete Guide. San Francisco, California: Morgan Kaufmann, 1993. [4] James Rumbaugh. Relations as semantic constructs in an object-oriented language. OOPSLA’87 as ACM SIGPLAN 22, 12 (Dec. 1987), 466–481. [5] en.wikipedia.org/wiki/Referential_integrity [6] www.webopedia.com/TERM/R/referential_integrity.html [7] computing-dictionary.thefreedictionary.com/referential+integrity Об автореМайкл Блаха (Michael Blaha) защитил кандидатскую диссертацию в области баз данных в Университете им. Вашингтона г. Санкт-Луи, шт. Миссури. Восемь лет он проработал в Центре исследований и разработок компании General Electric в компании Джеймса Рэмбо (James Rumbaugh). С 1993 г. Блаха является консультантом и преподавателем в областях моделирования, архитектуры программного обеспечения, проектирования баз данных и обратной инженерии. Блаха - автор четырех книг и многочисленных статей. В 2005 г. вышло второе издание его книги (в соавторстве с Рэмбо) "Объектно-ориентированное моделирование и проектирование c использованием UML" (Object-Oriented Modeling and Design with UML, Second Edition, Prentice Hall, 2005, ISBN 0130159204).Источник: www.citforum.ru Рубрика: Теория
HTML 5: пять вещей вызывающих особый интер....
HTML 5 — это грядущее обновление гипертекстового языка разметки, основного способа создания контента для размещения его во всемирной паутине. Разработка HTML остановилась в 1999 году, на версии HTML 4.01 и с тех пор web-содержимое изменилось так, что текущие спецификации HTML перестали соответствовать сегодняшним требованиям. HTML 5 нацелен на то, чтобы увеличить функциональную совместимость HTML и соответствовать растущим требованиям разнообразного и смешанного web-контента. HTML 5 так же нацелен на устранение недостатков четвертой версии. В этой статье мы взглянем на 5 новых интересных вещей в HTML 5.
Подробнее... |
Рубрика: Html
| Добавлено: 22.12.2008
asp.net: ListView с разных сторон.
Элемент управления ListView был представлен в .Net Framework 3.5 как замена устаревшему GridView. Новый элемент имеет более расширенный функционал, чем его предшественник, но в тоже время лишен некоторых внутренних механизмов, что впрочем целиком следствие из расширенной универсальности ListView. Среди отличий ListView и GridView можно назвать и гибкую настройку разметки, что позволяет выводить данные не только в табличном виде, но и вообще в любом каком пожелает программист. Благодаря шаблонам ItemTemplate, EditItemTemplate, InsertItemTeplate можно настроить внешний вид при любом из состояний ListView: редактировании или выборе элемента.
Подробнее... |
Рубрика: .NET компоненты
| Добавлено: 22.12.2008
Создание кросс-таб отчета в Stimulsoft Rep....
Компания Стимулсофт предоставляет для разработчиков мощный набор инструментов для создания отчетов для Microsoft Visual Studio .Net 2005 и 2008; эти инструменты доступны как для Windows Forms, так и для Web Forms. Это генератор отчетов Stimulsoft Reports.Net. Генератор отчетов Stimulsoft Reports.Net имеет ряд особенностей: простая работа с дизайнером отчетов, полная поддержка экспорта в PDF, Word, Excel и многие другие форматы. Crystal Report и Microsoft Reporting Service – очень хорошие программные продукты для повседневной работы, но, если Вам необходимо создать отчеты с поддержкой кросс-табов, drill down, Ajax, штрих-кодов и возможностью подключения одновременно более одного источника данных, то Stimulsoft Reports.Net поможет Вам сэкономить массу времени. Также, данный генератор отчетов позволяет пользователям создавать свои собственные отчеты любой сложности. И все эти особенности делают Stimulsoft Reports.Net хорошим выбором в сфере программных продуктов для Business Intelligence.
Подробнее... |
Рубрика: .NET компоненты
| Добавлено: 22.12.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|