Что такое чистка кода сайта
8 сетевых ресурсов для удаления вредоносного кода и устранения последствий взлома сайта
Как удалить зараженный сайт из черных списков и очистить его от вредоносного кода?
Взломать или заразить сайт вредоносным кодом могут по многим причинам. Злоумышленники, как правило, используют следующие приемы:
Если вы не уверены, содержит ваш сайт уязвимости или нет, проверьте его с помощью следующих инструментов:
Знаю, взлом сайта может выбить из колеи, но не переживайте, вы не одиноки, а с помощью следующих специалистов вы сможете восстановить вашу деятельность.
Инструменты для удаления вредоносных программ и кода:
1. SUCURI
SUCURI — это один из самых популярных сервисов для обеспечения безопасности сайта. Он помогает устранить такие последствия взлома как:
С помощью SUCURI вы не просто сможете разово устранить все проблемы, но и защитить ваш сайт и предупредить взлом в будущем.
2. Wordfence
Wordfence предназначен для быстрого восстановления сайта на WordPress или Joomla. Знаете ли вы, что расширение Wordfence для WordPress уже установлено более миллионом пользователей?
С Wordfence вы получаете следующее:
3. SiteGuarding
Если вам требуется удалить вредоносный код с WordPress или Joomla в экстренном порядке, то SiteGuarding с этим справляется за 1-3 часа.
На SiteGuarding предусмотрено несколько вариантов удаления вредоносного кода. Можно выбрать то, что подходит именно вам.
В стоимость входит следующее:
4. 6SCAN
Услуги по удалению вредоносного кода входят в пакет защиты сайта «Профессионал». В рамках этого пакета услуг 6SCAN удалит вредоносный код и добавят нужные вам настройки мониторинга и безопасности.
5. StopTheHacker
StopTheHacker оказывает все услуги по защите сайта, в том числе и по очистке сайта от вредоносного кода. Вы можете либо самостоятельно очистить сайт, либо активировать автоматическую очистку StopTheHacker.
Вместе с очисткой вы получите:
6. Web Malware Removal
Web Malware Removal поможет вам удалить вредоносный скрипт, бэкдоры, попадание в черный список Google и защитит вас от будущих атак.
Вы получите и бесплатную проверку сайта на год и защиту от атак SQLi, XSS или брутфорса.
7. SiteLock
SiteLock — бренд, которому многие доверяют безопасность сайта, оказывающий в том числе и услуги удаления вредоносного кода. Сервис называется SiteLock911.
Механизм работы SiteLock911 отличается от других. Сначала программа скачивает файлы сайта, затем проверяет код, удаляет вредоносный скрипт и загружает исправленные файлы на сервер.
Все пакеты SiteLock предусматривают удаление вредоносного кода, а также следующие услуги:
8. Virusdie
Virusdie — сервис с говорящим названием. Он непрерывно проверяет сайт на наличие вредоносного кода и автоматически удаляет его после того, как находит.
Virusdie также защищает сайт от XSS, SQLi, DDoS-атак, помогает с резервным копированием и восстановлением данных и т.д.
Я бы хотел упомянуть еще два инструмента для защиты от DDoS-атак:
Чистка и оптимизация кода HTML
Основные методы чистки кода HTML
Всем привет! В этой статье поговорим об такой статье оптимизации сайтов, как валидация, ну или на простом языке, чистка HTML кода страниц сайта.
Валидность – это приведение кода страниц сайта к определенным стандартам качества, своего рода, набору требований к коду страницы.
Так как при создании сайтов, в большинстве случаев, мы прибегаем к использованию различных редакторов, возникает много разных, в большинстве своем ненужных параметров в коде страницы. Конечно же, на внутреннюю оптимизацию сайта чистка кода почти никакого влияния не имеет, но она незаменима для придания страницам сайта «удобочитаемого» вида для поисковых ботов, ну и естественно, она наилучшим образом влияет на скорость работы сайта и загрузки страниц. А скорость, в свою очередь, является одним из «поведенческих факторов», на которые, последнее время, стали обращать пристальное внимание поисковые системы. Чем медленней грузится ваш сайт, тем меньше вероятность того, что на нем задержится пользователь, соответственно «поведенческий фактор» хуже.
Ни для кого не секрет, что поисковые боты видят сайт по-другому, нежели обычный пользователь. Роботам поисковых систем не видны различные визуальные изыски на страницах сайтов. Они видят только набор символов – HTML код. Порядок прохождения по коду, сверху – вниз. Исходя из этого, все, что находится выше на сайте, считается наиболее важным. Как раз на этом самом верху сайта и располагается куча разного «кодового хлама», задерживающего роботов и тем самым, препятствующего продвижению сайта в ТОП. Чтобы избежать этого, существует масса рекомендуемых действий.
Вот основные рекомендации по чистке и оптимизации HTML кода сайта:
Чистка и оптимизация HTML кода страниц сайта приводит к белее быстрой работе, а отсюда повышение релевантности сайта, улучшение ранжирования и, в конце концов, хоть и не большого, но повышения трафика посещений, а это, очень не плохо с точки зрения отсутствия денежных вложений.
Что такое кэш и зачем его чистить
Это старые данные, которые уже могут быть неактуальны
Когда не работает какой-то сайт или сервис, от техподдержки часто можно услышать «Почистите кэш и перезагрузите страницу». Иногда это помогает. Рассказываем, почему так происходит, что такое кэш, зачем он нужен и как его почистить.
⚠️ Минутка грамотности. По словарю РАН слово cache в русском пишется «кеш». Но по рекомендациям Гиляревского нужно писать «кэш». И нам нравится, как это произносится. Произнесите вместе с нами:
Что такое кэш
Кэш — это данные, которые компьютер уже получил и использовал один раз, а потом сохранил на будущее. Смысл кэша в том, чтобы в следующий раз взять данные не с далёкого и медленного сервера, а из собственного быстрого кэша. То же самое, что закупиться продуктами на неделю и потом ходить не в магазин, а в холодильник.
В случае с браузером это работает так:
Дальше происходит так:
4. Если вкладкой или браузером долго не пользовались, операционная система выгружает из оперативной памяти все страницы, чтобы освободить место для других программ.
5. Если переключиться назад на браузер, он моментально сходит в кэш, возьмёт оттуда загруженную страницу и покажет её на экране.
Получается, что если браузер будет брать из кэша только постоянные данные и скачивать с сервера только что-то новое, то страница будет загружаться гораздо быстрее. Выходит, главная задача браузера — понять, какой «срок годности» у данных в кэше и через какое время их надо запрашивать заново.
👉 Например, браузер может догадаться, что большая картинка на странице вряд ли будем меняться каждые несколько секунд, поэтому имеет смысл подержать её в кэше и не загружать с сервера при каждом посещении. Поэтому в кэше часто хранятся картинки, видеоролики, звуки и другие декоративные элементы страницы.
👉 Для сравнения: браузер понимает, что ответ сервера на конкретный запрос пользователя кэшировать не надо — ведь ответы могут очень быстро меняться. Поэтому ответы от сервера браузер не кэширует.
Какая проблема с кэшем
На первый взгляд кажется, что кэш — это прекрасно: данные уже загружены, к ним можно быстро обратиться и достать оттуда всё, что нужно, без запроса к серверу на другом конце планеты.
Но представьте такую ситуацию: вы заходите в интернет-магазин обуви, в котором покупали уже много раз, но товары почему-то не добавляются в корзину. Или добавляются, но кнопка «Оплатить» не работает. Чаще всего причина в том, что браузер делает так:
Решение — почистить кэш
Когда мы чистим кэш, оттуда удаляются все данные, которые браузер сохранил «на всякий случай». Это значит, что при обновлении страницы браузер заглянет в кэш, увидит, что там пусто и запросит все данные с сервера заново. Они, конечно, тоже сразу отправятся в кэш, но в следующий раз вы уже будете знать, что делать.
Чтобы очистить кэш в Сафари, достаточно нажать ⌥+⌘+E, а в Хроме — нажать Ctrl+Shift+Backspace (⇧+⌘+Backspace) и выбрать время, в пределах которого нужно очистить кэш:
Зачем нужен кэш, если из-за него всё ломается?
На самом деле всё ломается не из-за кэша, а из-за неправильных настроек сервера, которые отдают страницу. Потому что именно сервер должен сказать браузеру: «Вот это можно кэшировать, а вон то лучше не кэшируй, мало ли что».
Часто разработчики недокручивают эти настройки, и браузер не получает нужных инструкций, поэтому кэширует всё подряд. И тогда приходится вмешиваться, чистить кэш и восстанавливать работоспособность.
Как очистить сайт от разного хлама за 10 минут
Как очистить сайт от разного хлама
Добрый день, друзья! Все люди, у кого есть собственный сайт, давно заметили, что с течением времени их ресурс загружается все медленнее. Это происходит по разным причинам, я уже не раз упоминал о них.
Убираем лишние плагины
Это может быть слишком много плагинов. Я советую по возможности заменять различные плагины кодами. В интернете по поводу кодов написано довольно много информации. Мы еще вернемся к данному вопросу. Я скажу лишь кратко, что заменить код плагином довольно просто.
В большинстве случаев код вставляется в файл функций, тела статьи, стилей, комментариев и прочее. Я скажу честно, по данному вопросу статьи писать не собирался, но по просьбе читателей, планирую выпустить ряд статей по данному вопросу. На данный момент, у меня активно всего 11 плагинов, но это не предел. Я собираюсь отключить ещё как минимум четыре. Я сам заметил, сайт стал загружаться намного быстрее.
Как проверить сайт на время загрузки, я упоминал в своей статье, время загрузки сайта. Также есть еще другой ресурс, [urlspan]http://tools.pingdom.com/fpt/[/urlspan], который позволяет не только узнать время загрузки определенной страницы, но и показать, с какой скоростью грузятся различные части страницы (различные плагины, коды и прочее).
Хочу добавить, во время внесения изменений, перед тем, как очистить сайт, не забывайте сохранять данные, т.е. проводить бэкап. Могу привести простой пример, во время написания данной статьи, я заметил, что на моём сайте не загружаются разделы постов. Я начал разбираться, просмотрел все изменения, которые я проводил в течение последних суток.
Начал удалять и возвращать установленные вчера скрипты, и когда я удалил скрипт, отвечающий за отключения индексации разделов, разделы стали работать в обычном режиме. Я этот скрипт установил вчера, но из-за особенностей моей темы, он так себя повел.
Если бы я не вспомнил, какие именно я внес изменения, мне пришлось бы выполнить восстановление данных. А чтобы их восстановить, их необходимо вначале сохранить. Поэтому не стоит лениться, а нужно проводить бэкап данных хотя бы раза два в неделю. Перед внесением изменений в файловую систему, бекап просто необходим, иначе могут возникнуть большие проблемы!
Как очистить сайт путем выключения ревизий
Ревизии – это копии ваших статей. К примеру, вы начали писать какой-либо текст, опубликовали статью, через определенный промежуток времени внесли в данную статью какие-то улучшения. Тое есть немного изменили её. Во время подобных изменений и происходит ревизия, т.е. создаётся копия статьи.
Можете себе представить, сколько подобных копий возникнет за полгода, год? Данные копии вереницей станут тянуться за сайтом. Вот их то и следует удалить. Для этого нам потребуется открыть папочку wp-config.php. Это корневая папка. Тое есть она находится в корневом каталоге.
На моём ресурсе папочка называется publik_html. У вас или аналогично, или как-нибудь похоже. Скачать её удобно с помощью FileZilla. Затем откроем её текстовым редактором (notapad++) и вставим пару строк:
define(‘WP_POST_REVISIONS’, false);
define(‘EMPTY_TRASH_DAYS’, 1);
Благодаря первой строчки, мы отключим ревизию наших статей. Вторая строчка отключит корзину. Точнее я поставил 1, это время хранения постов в корзинке, измеряется в сутках. Можно конечно добавить 0. Но в этом случае есть возможность случайно удалить статью полностью. Тогда придется восстанавливать, если вы своевременно провели бэкап.
Очищаем базу данных нашего сайта
Как очистить сайт более детально? Можно почистить базу данных. Но в этом случае бэкап перед процедурой обязателен! Рисковать в этом деле не стоит.
Во время существования блога мы постоянно добавляем или удаляем плагины, коды и прочее. Во время подобных удалений следы от расширений остаются. Поэтому их также нужно убрать. Иначе вес базы может достичь 30 Мб и более! Что, как вы понимаете, увеличит время его загрузки!
Чтобы войти в базу, необходимо войти в свою админку на хостинге. Далее выбираете вашу базу, вводите пароль и входите. Затем, создадим копию базы. Для этого нажмем на «Экспорт», выделим всё и жмем Ок. Наша база скопируется на комп. Далее, необходимо её сохранить. Если вы удалите не нужное, базу можно восстановить, нажав на «Импорт», только перед этим не забудьте удалить базу с хостинга.
Чтобы начать чистку, войдем в меню «Структура». Теперь нам необходимо убрать таблицы удаленных плагинов и прочее. Во время установки вордпресса, у нас образуются таблицы:
Не вздумайте их удалить! Иначе придется делать восстановление! Во время установки плагинов создаются различные таблицы. К примеру, произвел установку плагина по поиску битых ссылок Broken link checker. У меня появились следующие таблички:
Их тоже не трогайте, данный плагин я показал для примера. Хотя он у меня не активный, его необходимо частенько применять для поиска битых ссылок. Просмотрите удаленные расширения и удалите их оставшиеся таблицы.
Для этого, ставьте галочку рядом с нужным плагином и жмите на значок удалить:
Затем, после удаления таблиц нужно, проведем чистку ревизий, т.к. мы их отключили, но данные в них остались. Перед процедурой обратите, сколько весит таблица wp-post. Очистив ревизии, заново проверьте, на сколько уменьшилась табличка.
Для очистки ревизий войдем в меню «SQL» и внесем строчку:
DELETE FROM wp_posts WHERE post_type = «revision»
Осталось нажать Ок. Затем вы увидите к примеру:
Как видно из скриншота, у меня удалилось 211 строчек. При этом, я провел подобную ревизию 20 дней назад. Затем мы эту табличку оптимизируем, вставив в меню «SQL» строчку:
OPTIMIZE TABLE wp_posts
Затем проведем удаление пинкбэков:
DELETE FROM wp_comments WHERE comment_type = ‘pingback’
Если не знаете, что это, то вкратце объясню: когда кто-то ставит на ваш ресурс ссылочку, вордпресс к вам в комментарии отсылает как бы обратную ссылку – pingback.
Как очистить сайт с помощью плагина
Это довольно простой и удобный метод. Для этого нам потребуется плагин, называющийся optimize DB. Его достаточно активировать, в том же разделе «Плагины» нажать на optimize, перейдем в его страничку и нажмем «Оптимизировать сейчас». Ваш ресурс будет оптимизирован. После этого не забудьте его деактивировать, для уменьшения нагрузки на сайт.
Также, если вы решили провести комплексную очистку сайта от хлама, вам желательно проконсультироваться у специалиста. Но специалиста найти сейчас не так просто. Да и обойдется вам это в «Копеечку». Поэтому, проще изучить данный материал по видеокурсу.
По поводу курсов, я бы предложил курс, который я сам прошел. Мне понравился материал Александра Борисова «[urlspan]Кибер-Блоггер[/urlspan]» В данном курсе Александр понятным языком рассказывает, как именно необходимо проводить очистку, какие применять методы, какие должны быть фото, ссылки и прочее.
[urlspan][/urlspan]
Я применил его метод и получил результат, у меня исчезли многие дубли страниц, пропали остатки удаленных плагинов, неработающие ссылки и прочее. На самом деле все это очень замедляет блог. Даже не то слово, за дубли страниц вас могут забанить поисковики!
Например, раньше Яндекс показывал проиндексированных постов на http://info-kibersant.ru/ 1220, хотя их реально было около 250, сейчас яндекс показывает 480, а Гугл 520, что намного ближе к реальности! Хотя на моём блоге их ещё мало, на многих число дублей достигает сотен тысяч! И это не выдумка! Данные сайты находятся не далеко от бана! Поэтому, сайт необходимо очищать!
Приведу слова Борисова про раздел «Очистка» в его курсе:
Подробнее информацию о курсе вы найдете на сайте Александра.
Я надеюсь, теперь вам ясно, как очистить сайт? Я привел только часть методов, хотя их на самом деле намного больше. Но и данных методов достаточно для очистки большего количества хлама с сайта. Желаю успехов!
Очистка данных: проблемы и современные подходы
Data Cleaning: Problems and Current Approaches, 2000 г.
Достаточно часто каждый аналитик сталкивается с ситуацией, когда загрузил данные в блок анализа, а в ответ – тишина, хотя в тестовом режиме все работает. Причина обычно в том, что данные недостаточно очищены, где в этой ситуации искать аналитику засаду и с чего начинать обычно задачка не из легких. Можно конечно использовать механизмы сглаживания, но каждый знает, что если из черного ящика с красными и зелеными шарами отсыпать килограмм шаров и вместо них вбросить килограмм белых, то в понимании распределения красных и зеленых это мало приблизит.
Когда находишься в ситуации «а с чего начать» помогает таксономия «грязных данных». Хотя в учебниках и дают список проблем, но он обычно неполный, вот постоянно искал исследования, которые рассматривают эту тему подробней. Попалась работа T.Gschwandtner, J.Gartner, W.Aigner, S.Miksch хотя они ее делали для рассмотрения способов очистки данных связанных с датами и временем но, на мой взгляд, это оказалось исключение, которое потребовало разобраться с правилами поглубже чем в учебниках. По собственному опыту знаю, что сопряжение дат и времени «вынос мозга» практически в прямом смысле и поэтому и зацепился за исследование этих авторов.
В своей работе они проанализировали несколько работ других авторов и составили мощный список «загрязнений данных» логика их анализа заслуживает уважения и, с другой стороны, дает возможность более «со стороны» посмотреть на любую задачу очистки данных. Все это видно когда сопоставляешь всю совокупность работ, по которым они делают сравнительный анализ. Поэтому и сделал перевод самых используемых ими 5 статей, список с ссылками на эти переводы ниже.
Это вторая статья из цикла
Предисловие
Мы классифицируем проблемы качества данных, которые решаются с помощью очистки данных, и даем обзор основных решение подходит. Очистка данных особенно необходима при интеграции разнородных источников данных и следует решать вместе с преобразованиями данных, связанных со схемой. В хранилищах данных очистка данных основная часть так называемого процесса ETL. Мы также обсуждаем текущую поддержку инструментов для очистки данных.
1. Введение
Очистка данных, также называемая очисткой или очисткой данных, занимается обнаружением и удалением ошибок и несоответствия данных в целях повышения качества данных. Проблемы с качеством данных присутствуют в единичных коллекции данных, такие как файлы и базы данных, например, из-за неправильного написания при вводе данных, отсутствующей информации или другие неверные данные. Когда необходимо интегрировать несколько источников данных, например, в хранилищах данных, объединить системы баз данных или глобальные информационные веб-системы, потребность в очистке данных возрастает существенно. Это связано с тем, что источники часто содержат избыточные данные в разных представлениях. Чтобы обеспечить доступ к точным и непротиворечивым данным, объединение различных представлений данных и устранение дублирующейся информации становится необходимо.
Рисунок 1. Этапы построения хранилища данных: процесс ET
Хранилища данных [6] [16] требуют и предоставляют обширную поддержку для очистки данных. Они загружают и постоянно обновляют огромные объемы данных из различных источников, поэтому высока вероятность того, что некоторые из источников содержат «грязные данные». Кроме того, хранилища данных используются для принятия решений, поэтому правильность их данных жизненно важна, чтобы избежать неправильных выводов. Например, дублирующаяся или отсутствующая информация приведет к неверной или вводящей в заблуждение статистике («мусор на входе, мусор на выходе»). Из-за широкого диапазона возможных несоответствий данных и огромного объема данных очистка данных считается одной из самых больших проблем в хранилищах данных. Во время так называемого процесса ETL (извлечение, преобразование, загрузка), показанного на рис. 1, дальнейшие преобразования данных связаны с преобразованием и интеграцией схемы / данных, а также с фильтрацией и агрегированием данных, которые должны храниться в хранилище. Как показано на рис. 1, вся очистка данных обычно выполняется в отдельной промежуточной области данных перед загрузкой преобразованных данных в хранилище. Для поддержки этих задач доступно большое количество инструментов с разной функциональностью, но часто значительную часть работы по очистке и преобразованию приходится выполнять вручную или с помощью низкоуровневых программ, которые сложно писать и поддерживать.
Интегрированные системы баз данных и информационные системы на базе Интернета проходят этапы преобразования данных, аналогичные этапам преобразования хранилищ данных. В частности, обычно существует оболочка для каждого источника данных для извлечения и посредник для интеграции [32] [31]. Пока что эти системы предоставляют лишь ограниченную поддержку очистки данных, вместо этого сосредотачиваясь на преобразовании данных для преобразования схемы и интеграции схемы. Данные не интегрируются предварительно, как для хранилищ данных, но их необходимо извлекать из нескольких источников, преобразовывать и объединять во время выполнения запроса. Соответствующие задержки связи и обработки могут быть значительными, что затрудняет достижение приемлемого времени отклика. Усилия, необходимые для очистки данных во время извлечения и интеграции, еще больше увеличивают время отклика, но являются обязательными для получения полезных результатов запроса.
Подход к очистке данных должен удовлетворять нескольким требованиям. Прежде всего, он должен обнаруживать и устранять все основные ошибки и несоответствия как в отдельных источниках данных, так и при интеграции нескольких источников. Подход должен поддерживаться инструментами, ограничивающими ручную проверку и усилия по программированию, и быть расширяемым, чтобы легко охватить дополнительные источники. Кроме того, очистку данных следует выполнять не изолированно, а вместе с преобразованием данных, связанных со схемой, на основе всеобъемлющих метаданных. Функции сопоставления для очистки данных и других преобразований данных должны быть указаны декларативно и должны быть повторно использованы для других источников данных, а также для обработки запросов. Инфраструктура рабочих процессов должна поддерживаться специально для хранилищ данных, чтобы выполнять все этапы преобразования данных для нескольких источников и больших наборов данных надежным и эффективным способом.
В то время как огромное количество исследований посвящено преобразованию схемы и интеграции схемы, очистка данных получила лишь небольшое внимание в исследовательском сообществе. Ряд авторов сосредоточились на проблеме выявления и устранения дубликатов, например, [11] [12] [15] [19] [22] [23]. Некоторые исследовательские группы концентрируются на общих проблемах, не ограниченных, но относящихся к очистке данных, таких как специальные подходы к интеллектуальному анализу данных [30] [29] и преобразования данных на основе сопоставления схем [1] [21]. Совсем недавно в нескольких исследованиях предлагается и исследуется более полный и единообразный подход к очистке данных, охватывающий несколько этапов преобразования, конкретные операторы и их реализацию [11] [19] [25].
2. Проблемы очистки данных
В этом разделе классифицируются основные проблемы качества данных, которые необходимо решить с помощью очистки и преобразования данных. Как мы увидим, эти проблемы тесно связаны и поэтому должны рассматриваться единообразно. Преобразования данных [26] необходимы для поддержки любых изменений в структуре, представлении или содержании данных. Эти преобразования становятся необходимыми во многих ситуациях, например, чтобы иметь дело с эволюцией схемы, миграцией устаревшей системы на новую информационную систему или когда необходимо интегрировать несколько источников данных.
Как показано на рис. 2, мы грубо различаем проблемы с одним источником и проблемы с несколькими источниками, а также проблемы, связанные со схемой и записями. Проблемы на уровне схемы, конечно, также отражаются в записях; они могут быть решены на уровне схемы за счет улучшенного проектирования схемы (эволюция схемы), преобразования схемы и интеграции схемы. С другой стороны, проблемы на уровне записи относятся к ошибкам и несоответствиям в фактическом содержании данных, которые не видны на уровне схемы. Они являются основным направлением очистки данных. На рис. 2 также показаны некоторые типичные проблемы для различных случаев. Хотя это не показано на рис. 2, проблемы с одним источником возникают (с повышенной вероятностью) и в случае с несколькими источниками, помимо конкретных проблем с несколькими источниками.
Рисунок 2. Классификация проблем качества данных в источниках данных
2.1 Проблемы с одним источником
Качество данных источника в значительной степени зависит от степени, в которой он управляется схемой и ограничениями целостности, контролирующими допустимые значения данных. Для источников без схемы, таких как файлы, существует несколько ограничений на то, какие данные можно вводить и хранить, что приводит к высокой вероятности ошибок и несоответствий. С другой стороны, системы баз данных устанавливают ограничения конкретной модели данных (например, реляционный подход требует простых значений атрибутов, ссылочной целостности и т.д.), А также ограничения целостности для конкретных приложений. Проблемы качества данных, связанные со схемой, таким образом, возникают из-за отсутствия соответствующих ограничений целостности, специфичных для модели или приложения, например, из-за ограничений модели данных или плохого проектирования схемы, или из-за того, что было определено только несколько ограничений целостности, чтобы ограничить накладные расходы контроль правильности. Проблемы, связанные с конкретной записью, связаны с ошибками и несоответствиями, которые невозможно предотвратить на уровне схемы (например, орфографические ошибки).
Таблица 1. Примеры проблем с одним источником на уровне схемы (нарушенные ограничения целостности)
Для проблем как на уровне схемы, так и на уровне записи можем различать различные области проблем: атрибут (поле), запись, тип записи и источник; примеры для различных случаев показаны в таблицах 1 и 2. Обратите внимание, что ограничения уникальности, указанные на уровне схемы, не предотвращают дублирование записей, например, если информация об одном и том же реальном объекте вводится дважды с разными значениями атрибутов (см. пример в таблице 2).
Таблица 2. Примеры проблем с одним источником на уровне записи
2.2 Проблемы с несколькими источниками
Проблемы, существующие в отдельных источниках, усугубляются, когда необходимо объединить несколько источников. Каждый источник может содержать грязные данные, и данные в источниках могут быть представлены по-разному, совпадать или противоречить. Это связано с тем, что источники обычно разрабатываются, развертываются и обслуживаются независимо для удовлетворения конкретных потребностей. Это приводит к большой степени неоднородности относительно. системы управления данными, модели данных, схемы и фактические данные.
Помимо конфликтов на уровне схемы, многие конфликты возникают только на уровне записи (конфликты данных). Все проблемы из случая с одним источником могут возникать с разными представлениями в разных источниках (например, дублированные записи, противоречащие записи и т.д.). Более того, даже когда существуют одинаковые имена атрибутов и типы данных, могут быть разные представления значений (например, для семейного положения) или разные интерпретации значений (например, единицы измерения доллар против евро) в разных источниках. Более того, информация в источниках может предоставляться на разных уровнях агрегирования (например, продажи по продукту по сравнению с продажами по группе продуктов) или ссылаться на разные моменты времени (например, текущие продажи на вчерашний день для источника 1 по сравнению с прошлой неделей для источника 2).
Основная проблема при очистке данных из нескольких источников состоит в том, чтобы идентифицировать перекрывающиеся данные, в частности совпадающие записи, относящиеся к одному и тому же реальному объекту (например, клиенту). Эту проблему также называют проблемой идентичности объекта [11], устранением дубликатов или проблемой слияния / очистки [15]. Часто информация является лишь частично избыточной, и источники могут дополнять друг друга, предоставляя дополнительную информацию об объекте. Таким образом, дублирующаяся информация должна быть удалена, а дополнительная информация должна быть консолидирована и объединена, чтобы получить единообразное представление об объектах реального мира.
Рисунок 3. Примеры проблем с несколькими источниками на уровне схемы и записи
3. Подходы к очистке данных
Как правило, очистка данных включает в себя несколько этапов
Анализ данных: чтобы определить, какие виды ошибок и несоответствий необходимо удалить, требуется подробный анализ данных. В дополнение к ручной проверке данных или выборок данных следует использовать программы анализа для получения метаданных о свойствах данных и обнаружения проблем с качеством данных.
Определение рабочего процесса преобразования и правил сопоставления: в зависимости от количества источников данных, степени их неоднородности и «грязности» данных может потребоваться выполнение большого количества шагов преобразования и очистки данных. Иногда перевод схемы используется для сопоставления источников с общей моделью данных; для хранилищ данных обычно используется реляционное представление. Ранние шаги по очистке данных могут исправить проблемы с записи из одного источника и подготовить данные для интеграции. Дальнейшие шаги касаются интеграции схемы / данных и устранения проблем с записями с несколькими источниками, например, дубликатов. Для хранилищ данных управление и поток данных для этих шагов преобразования и очистки должны быть указаны в рабочем процессе, который определяет процесс ETL (рис. 1).
Преобразования данных, связанные со схемой, а также этапы очистки должны быть указаны с помощью декларативного языка запросов и сопоставления, насколько это возможно, чтобы обеспечить автоматическое создание кода преобразования. Кроме того, должна быть возможность вызывать написанный пользователем код очистки и специальные инструменты во время рабочего процесса преобразования данных. На этапах преобразования могут запрашиваться отзывы пользователей о записях данных, для которых у них нет встроенной логики очистки.
Проверка: правильность и эффективность рабочего процесса преобразования и определений преобразования следует тестировать и оценивать, например, на образце или копии исходных данных, чтобы при необходимости улучшить определения. Может потребоваться несколько итераций этапов анализа, проектирования и проверки, например, поскольку некоторые ошибки становятся очевидными только после применения некоторых преобразований.
Трансформация: выполнение шагов преобразования либо путем запуска рабочего процесса ETL для загрузки и обновления хранилища данных, либо во время ответа на запросы из нескольких источников.
Процесс преобразования, очевидно, требует большого количества метаданных, таких как схемы, характеристики данных на уровне записи, сопоставления преобразований, определения рабочих процессов и т. Д. Для обеспечения согласованности, гибкости и простоты повторного использования эти метаданные должны храниться в репозитории на основе СУБД [ 4]. Для обеспечения качества данных должна быть записана подробная информация о процессе преобразования как в репозитории, так и в преобразованных записях, в частности информация о полноте и свежести исходных данных и информация о происхождении о происхождении преобразованных объектов и примененных изменениях. им. Например, на рис. 3 производная таблица Customers содержит атрибуты CID и Cno, позволяющие отследить исходные записи.
Далее мы более подробно описываем возможные подходы к анализу данных (обнаружению конфликтов), определению трансформации и разрешению конфликтов. Что касается подходов к трансляции схемы и интеграции схемы, мы обращаемся к литературе, поскольку эти проблемы были подробно изучены и описаны [2] [24] [26]. Конфликты имен обычно разрешаются путем переименования; структурные конфликты требуют частичной реструктуризации и объединения входных схем.
3.1 Анализ данных
Метаданных, отраженных в схемах, обычно недостаточно для оценки качества данных источника, особенно если соблюдаются лишь несколько ограничений целостности. Таким образом, важно проанализировать фактические записи, чтобы получить реальные (переработанные) метаданные о характеристиках данных или необычных шаблонах значений. Эти метаданные помогают находить проблемы с качеством данных. Более того, он может эффективно способствовать идентификации соответствий атрибутов между исходными схемами (сопоставление схем), на основе которых могут производиться автоматические преобразования данных [20] [9].
Существует два связанных подхода к анализу данных, профилированию данных и интеллектуальному анализу данных. Профилирование данных сосредоточено на анализе отдельных атрибутов записей. Он извлекает такую информацию, как тип данных, длина, диапазон значений, дискретные значения и их частота, дисперсия, уникальность, наличие нулевых значений, типичный строковый шаблон (например, для телефонных номеров) и т.д., Обеспечивая точное представление различного качества аспекты атрибута. В таблице 3 показаны примеры того, как эти метаданные могут помочь в обнаружении проблем с качеством данных.
Таблица 4. Примеры использования переработанных метаданных для решения проблем качества данных
Поиск данных помогает обнаруживать определенные закономерности данных в больших наборах данных, например, взаимосвязи между нескольких атрибутов. На этом сосредоточены так называемые модели описательного интеллектуального анализа данных, включая кластеризацию, обобщение, обнаружение ассоциаций и обнаружение последовательностей [10]. Как показано в [28], ограничения целостности среди атрибутов, таких как функциональные зависимости или «бизнес-правила» для конкретных приложений, могут быть выведены, что может быть использовано для восполнения пропущенных значений, исправления недопустимых значений и выявления повторяющихся записей в источниках данных. Например, правило ассоциации с высокой степенью достоверности может указывать на проблемы с качеством данных в записи, нарушающие это правило. Таким образом, достоверность 99% для правила «всего = количество * цена за единицу» означает, что 1% записей не соответствует требованиям и может потребовать более тщательного изучения.
3.2 Определение преобразований данных
Процесс преобразования данных обычно состоит из нескольких этапов, каждый из которых может выполнять преобразования (сопоставления), связанные со схемой и записью. Чтобы позволить системе преобразования и очистки данных генерировать код преобразования и, таким образом, уменьшить объем самопрограммирования, необходимо указать необходимые преобразования на соответствующем языке, например, поддерживаемом графическим пользовательским интерфейсом.
Рисунок 4. Пример определения шага преобразования
На рис. 4 показан шаг преобразования, указанный в SQL 99. Пример ссылается на рис. 3 и охватывает часть необходимых преобразований данных, которые должны быть применены к первому источнику. Преобразование определяет представление, в котором могут выполняться дальнейшие сопоставления. Преобразование выполняет реструктуризацию схемы с дополнительными атрибутами в представлении, полученном путем разделения атрибутов имени и адреса источника. Необходимые данные извлечение осуществляется с помощью UDF (выделено жирным шрифтом). Реализации UDF могут содержать логику очистки, например, для удаления орфографических ошибок в названиях городов или предоставления отсутствующих почтовых индексов.
UDF могут по-прежнему требовать значительных усилий по реализации и не поддерживать всю необходимую схему. трансформации. В частности, простые и часто необходимые функции, такие как разделение или объединение атрибутов, в общем случае не поддерживаются, но их часто необходимо повторно реализовать в вариациях для конкретных приложений (см. Конкретные функции извлечения на рис. 4).
Более сложные реструктуризации схемы (например, сворачивание и разворачивание атрибутов) вообще не поддерживаются. Для общей поддержки преобразований, связанных со схемой, требуются языковые расширения, такие как предложение SchemaSQL [18]. Очистка данных на уровне записи также может выиграть от специальных языковых расширений, таких как оператор Match, поддерживающий «приблизительные объединения» (см. ниже). Системная поддержка таких мощных операторов может значительно упростить программирование преобразований данных и повысить производительность. Некоторые текущие исследовательские работы по очистке данных исследуют полезность и реализацию таких расширений языка запросов [11] [25].
3.3 Разрешение конфликтов
Необходимо указать и выполнить набор шагов преобразования для решения различных проблем качества данных на уровне схемы и записи, которые отражаются в имеющихся источниках данных. Для отдельных источников данных необходимо выполнить несколько типов преобразований, чтобы решить проблемы с одним источником и подготовиться к интеграции с другими источниками. Помимо возможного перевода схемы, эти подготовительные шаги обычно включают:
Стандартизация: для облегчения сопоставления и интеграции записей значения атрибутов должны быть преобразованы в согласованный и унифицированный формат. Например, записи даты и времени должны быть приведены в конкретный формат; имена и другие строковые данные должны быть преобразованы в верхний или нижний регистр и т. д. Текстовые данные можно сжать и объединить, выполнив выделение корней, удалив префиксы, суффиксы и стоп-слова. Кроме того, сокращения и схемы кодирования следует последовательно разрешать, обращаясь к специальным словарям синонимов или применяя предопределенные правила преобразования.
Решение проблем с несколькими источниками требует реструктуризации схем для достижения интеграции схемы, включая такие шаги, как разделение, слияние, сворачивание и разворачивание атрибутов и таблиц. На уровне записи необходимо разрешить конфликтующие представления и иметь дело с перекрывающимися данными. Задача устранения дубликатов обычно выполняется после большинства других шагов преобразования и очистки, особенно после устранения ошибок единственного источника и конфликтующих представлений. Он выполняется либо на двух очищенных источниках одновременно, либо на одном уже интегрированном наборе данных. Для удаления дубликатов необходимо сначала идентифицировать (т.е. сопоставить) похожие записи, касающиеся одного и того же объекта реального мира. На втором этапе похожие записи объединяются в одну запись, содержащую все соответствующие атрибуты без избыточности. Кроме того, удаляются избыточные записи. Ниже мы обсудим ключевую проблему сопоставления записей. Более подробно об этом можно прочитать в другом месте этого выпуска [22].
Определение совпадающих записей с помощью такого подхода обычно является очень дорогостоящей операцией для больших наборов данных. Вычисление значения подобия для любых двух записей подразумевает оценку правила сопоставления на декартовом произведении входных данных. Кроме того, сортировка по значению сходства необходима для определения совпадающих записей, охватывающих повторяющуюся информацию. Все записи, для которых значение сходства превышает пороговое значение, могут рассматриваться как совпадения или как кандидаты на совпадение, которые должны быть подтверждены или отклонены пользователем. В [15] предлагается многопроходный подход, например согласование для уменьшения накладных расходов. Он основан на сопоставлении записей независимо по разным атрибутам и комбинировании различных результатов сопоставления. Предполагая, что входной файл один, каждый проход сопоставления сортирует записи по определенному атрибуту и проверяет только соседние записи в определенном окне на предмет того, удовлетворяют ли они заранее определенному правилу сопоставления. Это значительно сокращает количество оценок правил соответствия по сравнению с подходом декартовых произведений. Полный набор совпадений получается путем объединения пар совпадающих каждого прохода и их транзитивного замыкания.
4. Инструменты
На рынке доступно большое количество инструментов для поддержки задач преобразования и очистки данных, в частности, для хранилищ данных.1 Некоторые инструменты концентрируются на определенной области, такой как очистка имени и адресных данных, или конкретной стадии очистки, например анализ данных или устранение дубликатов. Из-за своей ограниченной области применения специализированные инструменты обычно работают очень хорошо, но их необходимо дополнять другими инструментами для решения широкого спектра задач преобразования и очистки. Другие инструменты, например инструменты ETL, предоставляют возможности комплексного преобразования и рабочего процесса, охватывающие большую часть процесса преобразования и очистки данных. Общей проблемой инструментов ETL является их ограниченная совместимость из-за проприетарных интерфейсов прикладного программирования (API) и проприетарных форматов метаданных, что затрудняет объединение функциональности нескольких инструментов [8].
Сначала мы обсудим инструменты для анализа данных и реинжиниринга данных, которые обрабатывают данные записи для выявления ошибок и несоответствий данных, а также для получения соответствующих преобразований очистки. Затем мы представляем специализированные инструменты для очистки и инструменты ETL соответственно.
4.1 Инструменты анализа данных и реинжиниринга
Инструменты реинжиниринга данных, например INTEGRITY (Vality), используют обнаруженные шаблоны и правила для определения и выполнения преобразований очистки, то есть реинжиниринга унаследованных данных. В INTEGRITY записи данных проходят несколько этапов анализа, таких как синтаксический анализ, набор данных, анализ шаблонов и частотный анализ. Результатом этих шагов является табличное представление содержимого полей, их шаблонов и частот, на основе которых можно выбрать шаблон для стандартизации данных. Для определения преобразований очистки INTEGRITY предоставляет язык, включающий набор операторов для преобразований столбцов (например, перемещения, разделения, удаления) и преобразования строк (например, слияния, разделения). ЦЕЛОСТНОСТЬ идентифицирует и объединяет записи, используя метод статистического сопоставления. Автоматические весовые коэффициенты используются для вычисления оценок для ранжирования совпадений, на основе которых пользователь может выбрать реальные дубликаты.
1 Полный список поставщиков и инструментов см. На коммерческих веб-сайтах, например, в Data Warehouse Information Center (www.dwinfocenter.org), Data Management Review (www.dmreview.com), Data Warehousing Institute (www.dwinstitute.com).
4.2 Специальные инструменты для очистки
Специализированные инструменты очистки обычно работают с определенным доменом, в основном с данными об именах и адресах, или концентрируются на устранении дубликатов. Преобразования должны предоставляться либо заранее в виде библиотеки правил, либо пользователем в интерактивном режиме. В качестве альтернативы преобразования данных могут быть автоматически получены с помощью инструментов сопоставления схем, таких как описанные в [21].
Специальная очистка домена: имена и адреса записываются во многих источниках и обычно имеют высокую мощность. Например, поиск совпадений с клиентами очень важен для управления взаимоотношениями с клиентами. Ряд коммерческих инструментов, например IDCENTRIC (FirstLogic), PUREINTEGRATE (Oracle), QUICKADDRESS (QASSystems), REUNION (PitneyBowes) и TRILLIUM (TrilliumSoftware), ориентированы на очистку таких данных. Они предоставляют такие методы, как извлечение и преобразование информации об именах и адресах в отдельные стандартные элементы, проверка названий улиц, городов и почтовых индексов в сочетании с функцией сопоставления на основе очищенных данных. Они включают в себя огромную библиотеку заранее определенных правил, касающихся проблем, обычно встречающихся при обработке этих данных. Например, модуль извлечения (парсер) и сопоставления TRILLIUM содержит более 200 000 бизнес-правил. Эти инструменты также предоставляют возможности для настройки или расширения библиотеки правил с помощью определяемых пользователем правил для конкретных нужд.
Устранение дубликатов: примеры инструментов для выявления и устранения дубликатов включают DATACLEANSER (EDD), MERGE / PURGELIBRARY (Sagent / QMSoftware), MATCHIT (HelpITSystems) и MASTERMERGE (PitneyBowes). Обычно они требуют, чтобы источники данных уже были очищены для сопоставления. Поддерживаются несколько подходов к сопоставлению значений атрибутов; такие инструменты, как DATACLEANSER и MERGE / PURGE LIBRARY, также позволяют интегрировать определенные пользователем правила сопоставления.
4.3 Инструменты ETL
Большое количество коммерческих инструментов комплексно поддерживают процесс ETL для хранилищ данных, например, COPYMANAGER (InformationBuilders), DATASTAGE (Informix / Ardent), EXTRACT (ETI), POWERMART (Informatica), DECISIONBASE (CA / Platinum), DATATRANSFORMATIONSERVICE. (Microsoft), METASUITE (Minerva / Carleton), SAGENTSOLUTIONPLATFORM (Sagent) и WAREHOUSEADMINISTRATOR (SAS). Они используют репозиторий, построенный на базе СУБД, для единообразного управления всеми метаданными об источниках данных, целевых схемах, сопоставлениях, программах-скриптах и т. Д. Схемы и данные извлекаются из рабочих источников данных как через собственные файловые шлюзы, так и через шлюзы СУБД, а также стандартные интерфейсы, такие как ODBC и EDA. Преобразования данных определяются с помощью простого в использовании графического интерфейса. Чтобы указать отдельные шаги сопоставления, обычно предоставляется собственный язык правил и обширная библиотека предопределенных функций преобразования. Инструменты также поддерживают повторное использование существующих решений преобразования, таких как внешние подпрограммы C / C ++, предоставляя интерфейс для их интеграции во внутреннюю библиотеку преобразования. Обработка преобразований выполняется либо механизмом, который интерпретирует указанные преобразования во время выполнения, либо скомпилированным кодом. Все инструменты на основе движка (например, COPYMANAGER, DECISIONBASE, POWERMART, DATASTAGE, WAREHOUSEADMINISTRATOR) имеют планировщик и поддерживают рабочие процессы со сложными зависимостями выполнения между заданиями сопоставления. Рабочий процесс также может вызывать внешние инструменты, например, для специализированных задач очистки, таких как очистка имени / адреса или удаление дубликатов.
Инструменты ETL обычно имеют мало встроенных возможностей очистки данных, но позволяют пользователю указать функциональность очистки через собственный API. Обычно нет поддержки анализа данных для автоматического обнаружения ошибок и несоответствий в данных. Однако пользователи могут реализовать такую логику с сохранением метаданных и определением характеристик контента с помощью функций агрегирования (сумма, количество, минимум, максимум, медиана, дисперсия, отклонение и т. Д.). Предоставленная библиотека преобразования покрывает многие потребности в преобразовании и очистке данных, такие как преобразование типов данных (например, переформатирование даты), строковые функции (например, разделение, слияние, замена, поиск подстроки), арифметические, научные и статистические функции и т. Д. Извлечение значений из атрибутов произвольной формы не является полностью автоматическим, но пользователь должен указать разделители, разделяющие вложенные значения.
Языки правил обычно охватывают конструкции if-then и case, которые помогают обрабатывать исключения в значениях данных, такие как орфографические ошибки, сокращения, пропущенные или загадочные значения и значения за пределами диапазона. Эти проблемы также можно решить, используя конструкцию поиска в таблице и функциональность соединения. Поддержка сопоставления записей обычно ограничивается использованием конструкции соединения и некоторых простых функций сопоставления строк, например, точное сопоставление или сопоставление с подстановочными знаками и soundex. Тем не менее, определяемые пользователем функции сопоставления полей, а также функции сопоставления сходств полей могут быть запрограммированы и добавлены во внутреннюю библиотеку преобразования.
5. Выводы
Мы представили классификацию проблем качества данных в источниках данных, дифференцируя их между одним и несколькими источниками, а также между проблемами на уровне схемы и на уровне записи. Мы далее обрисовали в общих чертах основные шаги по преобразованию и очистке данных и подчеркнули необходимость интегрированного охвата преобразований данных, связанных со схемой и записью. Кроме того, мы предоставили обзор коммерческих инструментов для очистки данных. Несмотря на то, что уровень развития этих инструментов является достаточно продвинутым, они обычно покрывают только часть проблемы и по-прежнему требуют значительных усилий вручную или самопрограммирования. Кроме того, их совместимость ограничена (проприетарные API и представления метаданных).
Пока что появилось лишь небольшое исследование по очистке данных, хотя большое количество инструментов указывает как на важность, так и на сложность проблемы очистки. Мы видим несколько тем, заслуживающих дальнейшего изучения. Прежде всего, требуется дополнительная работа по разработке и реализации наилучшего языкового подхода для поддержки преобразований схем и данных. Например, такие операторы, как Match, Merge или Mapping Composition, были изучены либо на уровне записи (данные), либо на уровне схемы (метаданные), но могут быть построены на аналогичных методах реализации. Очистка данных необходима не только для хранилищ данных, но и для обработки запросов к разнородным источникам данных, например, в сетевых информационных системах. Эта среда создает гораздо более жесткие ограничения производительности для очистки данных, которые необходимо учитывать при разработке подходящих подходов. Кроме того, очистка данных для полуструктурированных данных, например, на основе XML, вероятно, будет иметь большое значение, учитывая уменьшенные структурные ограничения и быстро увеличивающийся объем XML-данных.
Acknowledgments
We would like to thank Phil Bernstein, Helena Galhardas and Sunita Sarawagi for helpful comments.
References
[1] Abiteboul, S.; Clue, S.; Milo, T.; Mogilevsky, P.; Simeon, J.: Tools for Data Translation and Integration. In [26]:3-8, 1999.
[2] Batini, C.; Lenzerini, M.; Navathe, S.B.: A Comparative Analysis of Methodologies for Database Schema Integration. In Computing Surveys 18(4):323-364, 1986.
[3] Bernstein, P.A.; Bergstraesser, T.: Metadata Support for Data Transformation Using Microsoft Repository. In [26]:9-14, 1999
[4] Bernstein, P.A.; Dayal, U.: An Overview of Repository Technology. Proc. 20th VLDB, 1994.
[5] Bouzeghoub, M.; Fabret, F.; Galhardas, H.; Pereira, J; Simon, E.; Matulovic, M.: Data Warehouse Refreshment. In [16]:47-67.
[6] Chaudhuri, S., Dayal, U.: An Overview of Data Warehousing and OLAP Technology. ACM SIGMOD Record 26(1), 1997.
[7] Cohen, W.: Integration of Heterogeneous Databases without Common Domains Using Queries Based Textual Similarity. Proc. ACM SIGMOD Conf. on Data Management, 1998.
[8] Do, H.H.; Rahm, E.: On Metadata Interoperability in Data Warehouses. Techn. Report, Dept. of Computer Science, Univ. of Leipzig. http://dol.uni-leipzig.de/pub/2000-13.
[9] Doan, A.H.; Domingos, P.; Levy, A.Y.: Learning Source Description for Data Integration. Proc. 3rd Intl. Workshop The Web and Databases (WebDB), 2000.
[10] Fayyad, U.: Mining Database: Towards Algorithms for Knowledge Discovery. IEEE Techn. Bulletin Data Engineering 21(1), 1998.
[11] Galhardas, H.; Florescu, D.; Shasha, D.; Simon, E.: Declaratively cleaning your data using AJAX. In Journees Bases de Donnees, Oct. 2000. http://caravel.inria.fr/
[12] Galhardas, H.; Florescu, D.; Shasha, D.; Simon, E.: AJAX: An Extensible Data Cleaning Tool. Proc. ACM SIGMOD Conf., p. 590, 2000.
[13] Haas, L.M.; Miller, R.J.; Niswonger, B.; Tork Roth, M.; Schwarz, P.M.; Wimmers, E.L.: Transforming Heterogeneous
Data with Database Middleware: Beyond Integration. In [26]:31-36, 1999.
[14] Hellerstein, J.M.; Stonebraker, M.; Caccia, R.: Independent, Open Enterprise Data Integration. In [26]:43-49, 1999.
[15] Hernandez, M.A.; Stolfo, S.J.: Real-World Data is Dirty: Data Cleansing and the Merge/Purge Problem. Data Mining and Knowledge Discovery 2(1):9-37, 1998.
[16] Jarke, M., Lenzerini, M., Vassiliou, Y., Vassiliadis, P.: Fundamentals of Data Warehouses. Springer, 2000.
[17] Kashyap, V.; Sheth, A.P.: Semantic and Schematic Similarities between Database Objects: A Context-Based Approach. VLDB Journal 5(4):276-304, 1996.
[18] Lakshmanan, L.; Sadri, F.; Subramanian, I.N.: SchemaSQL – A Language for Interoperability in Relational Multi-Database Systems. Proc. 26th VLDB, 1996.
[19] Lee, M.L.; Lu, H.; Ling, T.W.; Ko, Y.T.: Cleansing Data for Mining and Warehousing. Proc. 10th Intl. Conf. Database and Expert Systems Applications (DEXA), 1999.
[20] Li, W.S.; Clifton, S.: SEMINT: A Tool for Identifying Attribute Correspondences in Heterogeneous Databases Using Neural Networks. In Data and Knowledge Engineering 33(1):49-84, 2000.
[21] Milo, T.; Zohar, S.: Using Schema Matching to Simplify Heterogeneous Data Translation. Proc. 24th VLDB, 1998.
[22] Monge, A. E. Matching Algorithm within a Duplicate Detection System. IEEE Techn. Bulletin Data Engineering
23 (4), 2000 (this issue).
[23] Monge, A. E.; Elkan, P.C.: The Field Matching Problem: Algorithms and Applications. Proc. 2nd Intl. Conf. Knowledge Discovery and Data Mining (KDD), 1996.
[24] Parent, C.; Spaccapietra, S.: Issues and Approaches of Database Integration. Comm. ACM 41(5):166-178, 1998.
[25] Raman, V.; Hellerstein, J.M.: Potter’s Wheel: An Interactive Framework for Data Cleaning. Working Paper, 1999. http://www.cs.berkeley.edu/
[26] Rundensteiner, E. (ed.): Special Issue on Data Transformation. IEEE Techn. Bull. Data Engineering 22(1), 1999.
[27] Quass, D.: A Framework for Research in Data Cleaning. Unpublished Manuscript. Brigham Young Univ., 1999
[28] Sapia, C.; Höfling, G.; Müller, M.; Hausdorf, C.; Stoyan, H.; Grimmer, U.: On Supporting the Data Warehouse
Design by Data Mining Techniques. Proc. GI-Workshop Data Mining and Data Warehousing, 1999.
[29] Savasere, A.; Omiecinski, E.; Navathe, S.: An Efficient Algorithm for Mining Association Rules in Large Databases. Proc. 21st VLDB, 1995.
[30] Srikant, R.; Agrawal, R.: Mining Generalized Association Rules. Proc. 21st VLDB conf., 1995.
[31] Tork Roth, M.; Schwarz, P.M.: Don’t Scrap It, Wrap It! A Wrapper Architecture for Legacy Data Sources. Proc.23rd VLDB, 1997.
[32] Wiederhold, G.: Mediators in the Architecture of Future Information Systems. Computer 25(3): 38-49, 1992.