Способы повышения эффективности обработки данных за счет их организации доклад

Способы обработки персональных данных

Защита персональных данных
с помощью DLP-системы

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

Нормативно-правовое регулирование

В российском правовом поле термин «персональные данные» появился в начале 2000-х годов. Он был позаимствован из европейского и американского законодательства. Целью введения в национальное законодательство новой концепции стала защита информации о частной жизни человека, его здоровье, имуществе от посягательств злоумышленников.

Классификация действий с персональными данными

Закон «О персональных данных» называет несколько видов действий, которые могут производиться с поступившими в распоряжение организации персональными данными. Этот перечень ограничен и расширительному толкованию не подлежит. Таким образом, оператор ПДн может производить с ними следующие действия:

  • сбор – это фактическая передача персональных данных от их субъекта оператору;
  • запись – может происходить и ручным, и машинным способом;
  • систематизация – техническое действие, облегчающее обработку персональных данных для оператора;
  • накопление – термин не имеет самостоятельного значения и предполагает хранение информационных массивов на материальных носителях или с использованием средств автоматизации до момента их уничтожения;
  • хранение – законодатель устанавливает множество требований к способам физической и технической защиты персональных данных;
  • уточнение – под этим термином могут подразумеваться или обновление, или изменение информации;
  • извлечение – здесь предполагается перенос персональных данных из памяти средств автоматизации на материальные носители;
  • использование;
  • передача – этот термин рассматривает такие способы предоставления к данным доступа третьим лицам, как распространение, предоставление. Распространение предполагает, что сведения становятся доступными неограниченному кругу лиц, которые могут получить их, зайдя на открытый сайт, купив газету или компакт-диск с информацией; для предоставления характерно совершение тех же действий, но в отношении нескольких субъектов, определенных соглашением или иным способом;
  • обезличивание – этот способ обработки предусмотрен системами безопасности, он практически исключает возможность выделения персональных данных конкретного лица из общей для всех базы. Обезличивание может происходить только в условиях применения способа обработки данных при помощи средств автоматизации. Если оно используется, выделение данных одного субъекта из массива возможно только при применении специальных средств;
  • блокирование – под ним подразумевается временное прекращение любых действий с персональными данными. Блокировка производится по заявлению субъекта персональных данных или по требованию регулятора. Если она необходима, обработка сведений возможна только в целях их уточнения;
  • удаление – оно отличается от уничтожения, так как производится в целях коррекции персональных данных или для решения иных технических задач;
  • уничтожение – это те шаги, которые не только уничтожают персональные данные, обрабатываемые ручным или автоматизированным способом, но и полностью исключают их восстановление. Важно: если данные находились на материальных носителях, вместе с ними уничтожаются и сами носители. Уничтожение происходит по требованию субъекта персональных данных или по истечении срока их обработки.

Способы обработки

Также в статье 3 закона «О персональных данных» четко определяет, что выделяются два способа обработки персональных данных:

  • с использованием средств автоматизации;
  • без них.

Такое же понимание можно найти в нормативных актах Роскомнадзора. Под автоматизированным способом обработки законодатель и ведомство понимают совершение любых действий с персональными данными, которые связаны с использованием средств вычислительной техники. Закон не раскрывает термин «средства вычислительной техники» конкретно, но очевидно, что под ними понимаются информационные системы. Для способа обработки персональных данных средствами автоматизации есть одно серьезное ограничение. Ни одно решение, на основании которого могут быть изменены права или обязанности гражданина, не может быть принято только исходя из результатов обработки сведений средствами вычислительной техники.

Читайте также:  Гомойотермия это способ регулирования когда температура ядра тела

Соответственно, ручной способ обработки персональных данных – это занесение их на материальные носители вручную и дальнейшая работа с такими носителями. Закон в дальнейшем не конкретизирует особенности организации работы каждым способом, предоставляя это сделать ФСТЭК России. Ведомство, в свою очередь, определяет требования к автоматизированному способу обработки и используемым для него средствам. С точки зрения ручного способа действуют или общие принципы, или организационные меры, затрудняющие физический доступ к персональным данным путем разграничения функционала сотрудников. Так же работают требования по физической защите помещений.

Принципы обработки

Федеральный закон утверждает, что любая обработка персональных данных должна быть основана на определенных принципах, которых должен придерживаться каждый оператор. Среди них:

  • законность и справедливость – цели обработки персональных данных должны быть законными, все субъекты и операторы должны находиться в равных условиях;
  • конкретность – обработка персональных данных должна осуществляться только для достижения конкретных целей и задач, заранее определенных оператором. Не допускается обработка любыми способами, если она несовместима с провозглашенными целями;
  • недопущение избыточности – оператор должен обрабатывать только тот объем персональных данных, которые соответствуют назначенным целям. Недопустимо запрашивать у субъекта персональных данных избыточную информацию;
  • точность, достаточность и актуальность – все некорректные сведения должны удаляться или оператором самостоятельно или по заявлению субъекта, при изменении данных они должны своевременно актуализироваться;
  • минимальная идентификация – хранение ПДн в условиях использования средств автоматизации должно происходить таким образом, чтобы идентифицировать их субъекта можно было бы только строго определенное время и для решения определенных задач.

Условия обработки

Во избежание привлечения к административной ответственности необходимо придерживаться и установленных законодательством условий обработки персональных данных. Среди основных:

1. обработка персональных данных допускается тогда, когда человек выразил на это согласие и не отозвал его;

2. в отсутствие согласия обработка допускается в строго определенных законом случаях. Это такие ситуации, как возложение на оператора обязанностей по осуществлению деятельности, для которой необходима обработка персональных данных, или если этого требуют международные договоры или Федеральные законы Российской Федерации, действующие в значимых областях, например, в сфере защиты от терроризма. К этой же сфере регулирования относится ситуация, когда ПДн предоставляются государственным или федеральным органам власти для исполнения их установленных законом обязанностей;

3. она также допускается без согласия субъекта персональных данных при осуществлении любых судебных процессов, уголовных, гражданско-правовых, в сфере конституционного права, для разрешения споров или для исполнения судебного акта. Так, персональные данные граждан беспрепятственно предоставляются судебным приставам.

Частным, но не менее важным случаем обработки ПДн любыми средствами и способами без согласия субъекта будет ситуация, когда это необходимо для защиты жизни и здоровья человека. Допускается и обработка персональных данных в работе журналистов, если они не нарушают права лиц на тайну частной жизни или иные интересы. Отдельные нормы регулируют условия обработки персональных данных лиц, которые находятся под государственной охраной.

Способы обработки персональных данных государственными и муниципальными органами

Закон о персональных данных устанавливает дополнительные требования к способам и методам их обработки для государственных или муниципальных органов. Так, для них могут быть установлены определенные способы обезличивания, затрудняющие определение принадлежности информации тому или иному лицу. Также для них установлено ограничение на любое использование ПДн или обозначение их принадлежности такими способами, которые могли бы оскорбить чувства конкретных лиц или социальных групп. Ни один способ обработки данных государственными органами и учреждениями не должен ограничить права человека.

Читайте также:  Способы обеспечения обязательств неустойка залог задаток удержание поручительство гарантии

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

Источник

Немного о повышении производительности БД: Практические советы

Мы в 1cloud много рассказываем о собственном опыте работы над провайдером виртуальной инфраструктуры и тонкостях организации внутренних процессов. Сегодня мы решили немного поговорить об оптимизации БД.

Многие СУБД способны не только хранить и управлять данными, но и исполнять код на сервере. Примером этого служат хранимые процедуры и триггеры. Однако всего одна операция изменения данных может запустить несколько триггеров и хранимых процедур, которые, в свою очередь, «разбудят» еще парочку. В качестве примера можно привести каскадное удаление в базах данных SQL, когда исключение одной строки в таблице приводит к изменению многих других связанных записей.

Очевидно, что пользоваться расширенной функциональностью следует осторожно, чтобы не нагружать сервер, ибо все это может сказаться на производительности клиентских приложений, использующих данную БД.

Взгляните на график ниже. На нем изображены результаты выполнения нагрузочного тестирования приложения, когда число пользователей (синий график), работающих с БД, постепенно увеличивается до 50. Количество запросов (оранжевый), с которыми система может справиться, быстро достигает своего максимума и перестаёт расти, тогда как время ответа (желтый) постепенно увеличивается.

При работе с крупными базами данных даже малейшее изменение способно оказать серьезное влияние на производительность, причем как в положительную, так и отрицательную сторону. В организациях среднего и большого размера настройкой баз данных занимается администратор, но частенько эти задачи ложатся на плечи разработчиков. Поэтому далее мы дадим несколько практических советов, которые помогут повысить производительность баз данных SQL.

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

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

Однако стоит обратить внимание, что, если ваши таблицы «бомбардируются» методами INSERT, UPDATE и DELETE, к индексации нужно отнестись осторожно – она может привести к ухудшению производительности, так как после проведения указанных выше операций все индексы должны быть изменены.

Более того, когда нужно добавить в таблицу большое количество строк (например более миллиона) сразу, администраторы БД часто сбрасывают индексы для ускорения процесса вставки (после вставки индексы создаются заново). Индексация – это обширная и интересная тема, для ознакомления с которой недостаточно столь краткого описания. Больше информации по этой теме вы найдете здесь.

Не используйте циклы с большим количеством итераций

Представьте ситуацию, когда на вашу БД последовательно приходит 1000 запросов:

Такие циклы писать не рекомендуется. Пример выше можно переделать, используя один INSERT или UPDATE с несколькими параметрами:

Убедитесь, что операция WHERE не перезаписывает одинаковые значения. Такая простая оптимизация может ускорить выполнение SQL-запроса, уменьшив количество обновляемых строк с тысяч до сотен. Пример проверки:

Избегайте коррелирующих подзапросов

Коррелирующим подзапросом называют такой подзапрос, который использует значения родительского запроса. Он выполняется построчно, один раз для каждой строки, возвращённой внешним (родительским) запросом, что снижает скорость работы БД. Вот простой пример коррелирующего подзапроса:

Здесь проблема в том, что внутренний запрос (SELECT CompanyName…) выполняется для каждой строки, которую возвращает внешний запрос (SELECT c.Name…). Чтобы повысить производительность, можно переписать подзапрос через JOIN:

Читайте также:  Способы борьбы с госдолгом

Старайтесь не использовать SELECT *

Старайтесь не использовать SELECT *! Вместо этого стоит подключать каждый столбец по отдельности. Звучит просто, но на этом моменте спотыкаются многие разработчики. Представьте таблицу с сотнями столбцов и миллионами строк. Если вашему приложению нужно лишь несколько столбцов, нет смысла запрашивать всю таблицу – это большая трата ресурсов.

Например, что лучше: SELECT * FROM Employees или SELECT FirstName, City, Country FROM Employees?

Если вам действительно нужны все столбцы, укажите каждый в явном виде. Это поможет избежать ошибок и дополнительной настройки БД в будущем. Например, если вы используете INSERT… SELECT. а в исходной таблице появился новый столбец, могут возникнуть ошибки, даже если этот столбец не нужен в конечной таблице:

Во избежание таких ошибок, нужно прописывать каждый столбец:

Однако стоит заметить, что есть ситуации, в которых использование SELECT * допустимо. Примером могут служить временные таблицы.

Пользуйтесь временными таблицами с умом

Временные таблицы чаще всего усложняют структуру запроса. Поэтому их лучше не использовать, если есть возможность оформить простой запрос.

Но если вы пишете хранимую процедуру, выполняющую какие-то действия с данными, которые невозможно оформить в одном запросе, то используйте временные таблицы как «посредников», помогающих получить конечный результат.

Допустим, вам нужно сделать выборку с условиями из большой таблицы. Чтобы увеличить производительность БД, стоит перевести свои данные во временную таблицу и выполнить JOIN уже с ней. Временная таблица будет меньше исходной, поэтому объединение произойдёт быстрее.

Не всегда понятно, в чем разница между временными таблицами и подзапросами. Потому приведем пример: представьте таблицу покупателей с миллионами записей, из которой нужно сделать выборку по региону. Один из вариантов реализации – использовать SELECT INTO с последующим объединением во временную таблицу:

Но вместо временных таблиц можно использовать подзапрос:

В предыдущем пункте мы обсуждали, что стоит прописывать в подзапросе только нужные нам столбцы, поэтому:

Каждый из трех примеров вернет один и тот же результат, но в случае с временными таблицами вы получаете возможность использовать индексацию. Для более полного понимания принципов работы временных таблиц и подзапросов можете почитать тему на Stack Overflow.

Когда работа с временной таблицей закончена, лучше удалить её и освободить ресурсы tempdb, чем ждать, пока произойдет автоматическое удаление (когда ваше соединение с сервером БД закроется):

Если необходимо проверить существование записи, лучше использовать оператор EXISTS() вместо COUNT(). Тогда как COUNT() проходит по всей таблице, EXISTS() прекращает работу после нахождения первого совпадения. Этот подход повышает производительность и улучшает читаемость кода:

Вместо заключения

Пользователи приложений любят, когда им не нужно подолгу смотреть на значок загрузки, когда все работает четко и быстро. Применение описанных в этом материале приемов позволит вам повысить производительность базы данных, что положительно скажется на пользовательском опыте.

Хотелось бы подвести небольшой итог и повторить ключевые моменты, описанные в статье:

  1. Используйте индексы, чтобы ускорить проведение поиска и сортировки.
  2. Не используйте циклы с большим количеством итераций для вставки данных – используйте INSERT или UPDATE.
  3. Обходите стороной коррелирующие подзапросы.
  4. Ограничивайте количество параметров оператора SELECT – указывайте только нужные таблицы.
  5. Используйте временные таблицы только как «посредников» для объединения крупных таблиц.
  6. Для проверки на наличие записи пользуйтесь оператором EXISTS(), который заканчивает работу после определения первого совпадения.

Если вам интересна тема производительности баз данных, то на Stack Exchange есть обсуждение, в котором собрано большое количество полезных ресурсов, – вам стоит обратить на него внимание. Еще можете почитать наш материал о том, как работают с данными крупные мировые компании.

Источник

Оцените статью
Разные способы