Архив рубрики «Базы данных»
Настройка производительности базы данных
Важная часть разработки клиентно-серверного приложения, выполняют в конце разработки перед сдачей клиенту.
Цель повышения производительности должна быть оговорена в ТЗ в начале, надо стараться контролировать выполнение этой цели в процессе разработки.
Факторы повышения производительности:
— время отклика
— доступность системы
— 100%-ное время работоспособности
— параллельный режим работы
— восстановимость системы данных
— производительность офисных приложений
— сетевой трафик
— многопользовательский режим
и т.п.
Прочитать остальную часть записи »
Проблемы, связанные с ссылочной целостностью
Существуют 4 типа изменений базы данных, которые могут нарушить ссылочную целостность, когда речь идет о двух таблицах: главная и подчиненная.
Прочитать остальную часть записи »
Целостность базы данных
Термин «целостность» используется для описания точности и корректности (или непротиворечивости) данных, хранящихся в базе данных.
Если термин «безопасность» означает защиту данных от несанкционированного доступа, то «целостность» означает защиту от санкционированного доступа, т.е. целостность возникает тогда, когда у пользователя имеются права работы с базой данных, но при этом он работает корректно (не вводит каких-то данных, которые приводят базу данных в неправильное положение).
Прочитать остальную часть записи »
Безопасность базы данных
Под безопасностью подразумевается, что некоторому пользователю разрешается выполнять некоторые действия.
СУБД должны соблюдать 3 основных аспекта информационной безопасности:
1. Конфиденциальность
2. Целостность
3. Доступность
В этом посте мы поговорим о конфиденциальности
А) Управление безопасностью
В современных СУБД поддерживается как избирательный, так и обязательный подходы к обеспечению безопасности данных.
Прочитать остальную часть записи »
Защита данных – параллелизм
В предыдущей статье защита данных – восстановление мы рассмотрели принципы транзакций, контрольных точек, восстановление носителей, двухфазной фиксации и зеркального копирования. Теперь настало время рассказать о принципах параллелизма.
Прочитать остальную часть записи »
Защита данных — восстановление
Проблема защиты данных актуальна, т.к при работе пользователей с базами данных могут возникать ситуации, приводящие к потере данных:
— Могут быть созданы некачественные программы, которые разрушают данные или оставляют базу данных в непредсказуемом состоянии
— При параллельной работе пользователей (работа конкурирующих программ) могут возникать ситуации, когда получаются неправильные результаты
— Анонимные пользователи портят данные
— Обновления могут менять содержимое БД непредсказуемым способ
Прочитать остальную часть записи »
Пулы соединения с базой данных
Поскольку речь идет о многопользовательских системах то, как мы уже говорили, на примере базы данных ORACLE – одно соединение экземпляра — 6мб и каждый следующий клиент – 500кб оперативной памяти для того чтобы хранить все сведения о соединении.
В последнее время разрабатывать СУБД для подключения 100 и более 1000 пользователей стало экономически невыгодно, пошли по другому пути — создания пулов соединения. Считается, что ресурсы потребляются только активными пользователями. Тот, кто « подключился, но пошел жевать пирожок и болтать о чем-то другом», т.е. активно соединение не использует, он переходит в пассив.
Прочитать остальную часть записи »
Архитектура ODBC, JDBC, OCI, OLE DB и ADO
ODBC
Допустим, есть клиент, написанный к примеру на Visual C, есть база данных (ORACLE, MS SQL) и целая куча разных Desktops БД (Access, dBase, Paradox, Excel и т.д.). Как же происходит взаимодействие? Прежде всего, в системе устанавливается Microsoft Driver Manager (odbc32.dll). Эта dll-ка взаимодействует иногда с odbcint.ini и odbc.ini. Для работы с этой dll-кой есть администратор, который позволяет подключать драйверы (то что мы видим в панели управления).
Прочитать остальную часть записи »
Стандартизация доступа к базам данных
Шлюзы и ORB
Архитектура клиент серверной системы подразумевает не только распределение вычислительных ресурсов, но и разделение функций между ресурсами. Когда мы приступаем к разработке клиент серверной системы, часто приходится учитывать тот случай, что у клиентов (кто заказывает приложение) могут оказаться уже большие объемы каких-то данных, хранящиеся в каких-то СУБД. Часто бывает так, что это достаточно старые информационные системы, которые не так-то просто преобразовать к клиент-серверной системе.
Прочитать остальную часть записи »
Основные принципы клиент серверных систем
Здесь предполагается, что клиент есть одна машина, а сервер – другая машина.
Основные принципы клиент серверных систем:
1. Сохранение автономности сервера. Т.е. клиенты не должны ограничивать доступность сервера и нарушать его целостность.
Прочитать остальную часть записи »
Особенности работы в режиме SQL Server.
В таких СУБД (т.е. в SQL Server) часть функций по управлению базой данных оформляется в виде объектов, хранящихся в самой базе данных, а сервер реализует эти вот возможности в процессе работы.
• Во-первых, для этих целей используются процедуры базы данных, к которым возможно указать права доступа и использования.
Прочитать остальную часть записи »
Особенности работы локальной сети в режиме файл сервер
Особенности работы локальной сети в режиме файл сервер
Возможность одновременного доступа к общим данным является достаточно хорошим техническим решением для группы пользователей, однако для этого нужно соблюсти некоторые вещи, чтобы некоторая ограниченная группа пользователей могла параллельно иметь доступ и заботилась о целостности данных. Здесь решаются следующие основные общие проблемы:
Прочитать остальную часть записи »
Оперативная память СУБД Oracle
Основная области памяти СУБД Oracle:
• Область программного кода. Это ПО, которое предназначено для работы с самой БД.
• SGA (System Global Area) – Системная глобальная область. Это область считается основной в СУБД Oracle. Она хранит данные, используемые совместно всеми процессами в экземпляре. Формально можно делить ее на части: буферный кеш – содержит записи БД, ожидающие перезаписи на диск или доступные для чтения (считанные), буфер журнала обновления, который хранит копии транзакций, которые тоже ждут записи на диск
Прочитать остальную часть записи »
Системные (фоновые) процессы. Пользовательские процессы
Какие же это процессы? В SQL – сервере – 3 или 4, Interbase – 1, Oracle до 16 фоновых процессов – 16 программ, одновременно сидящих в памяти и занятых собой. Среди них есть обязательные и есть работающие периодически.
Обязательные:
• Dbwr – Процесс записи в БД. Отвечает за перезапись данных из системной области SGA в файлы базы данных, после чего буфер очищается, т.е. из буфера ОП пишет на диск.
Прочитать остальную часть записи »
Файлы инициализации. Инициализация работы СУБД
Файлы инициализации
В большинстве СУБД, особенно крупных, таких как Informix, Sybase, Oracle, обязательным элементом архитектуры СУБД являются специальные файлы инициализации. Простые текстовые файлы, которые можно редактировать в блокноте, либо в DOS’е. Во многих из них указывается перечень настраиваемых параметров и их значения – oracle – init.ora. В том числе размер системный глобальной области (SGA – System Global Area), места расположения различных файлов, включая файлов транзакций и разных других журналов.
Прочитать остальную часть записи »
Принципы хранения данных
Когда речь идет о Desktop СУБД, таких как FoxPro, Access, Dbase и другие кортежи хранятся последовательно – запись за записью и обращения к записям при чтении и при записи идет на уровне записи, т.е. работа идет над отдельными кортежами.
В SQL-серверах данные хранятся в виде страниц или блоков, которые обычно бывают в зависимости от СУБД от 1-8 Кб. (2Кб — SQL). Равным кластеру диска. При этом у СУБД есть буфер, который может считывать сразу несколько страниц – по умолчанию в InterBase по умолчанию 75 страниц. Чтение и запись идет сразу по 75 стр. Там, где запись идет редко – можно увеличить это число, следовательно, быстродействие увеличивается. И наоборот, потому что каждый раз приходится перезаписывать все страницы, следовательно, обращение к диску, следовательно, трата времени, т.к. время записи больше времени чтения из-за различных проверок – доменов и проч. (см выше)
Прочитать остальную часть записи »
Системный каталог
В отличие от файловых систем, которые были на начальной стадии и использовались в качестве хранилищ, в файле базы данных хранятся сами данные совместно с некоторым самоописанием этого файла.
Внутри самого файла БД есть область, некая часть файла, которая описывает саму БД, что в ней есть. Т.е. каталог БД хранится внутри нее.
Прочитать остальную часть записи »
Система управления базой данных (СУБД). Функции СУБД
СУБД.
Какие операции и какие функции выполняет ПО, скрывающиеся за этой аббревиатурой? Существует двоякий подход. Если говорить о Desktop СУБД, то там СУБД нет (в FoxPro слегка начинает проглядываться, но там есть файл и программное обеспечение, выполняющее роль СУБД. Весь код, который мы хоти обеспечить должен быть реализован во внешнем ПО. Между ПО, которое мы создаем и собственно файлом с данными ничего нет).
Прочитать остальную часть записи »
Архитектура баз данных
Поскольку есть разные производители, и разные СУБД, существует разнообразные архитектуры.
1. Однобазовая архитектура – применяется в больших СУБД (Oracle и т.д.). преимущество такой БД – управление и контролирование БД происходит с одного сервера. Недостаток в том, что с течением времени, БД становится все больше и больше. Усложняются проблемы с резервным копированием и т.д.
Прочитать остальную часть записи »
Обязанности администратора базы данных
Если администратор данных – сотрудник, отвечающий за политику и стратегию принятия решений, то администратор базы данных – это сотрудник, отвечающий за техническую реализацию почти того же самого.
Администратор данных – это «мозг». Администратор баз данных – исполнитель, реализующий идеи первого. У него есть типовые служебные обязанности:
Прочитать остальную часть записи »
Уровни архитектуры
Уровни архитектуры баз данных определены соответствующей группой ANSI/SPARC. Комитет планирования и стандартизации баз данных. Три уровня архитектуры:
1. Внешний уровень (External Level) – уровень, наиболее близкий к пользователю. Фактически он связан с тем, как видит данные конкретный пользователь. В этом случае нет никакой зависимости от конкретного языка и фактически внешний уровень – это то, как каждый конкретный пользователь видит те данные, которые ему определил программист, т.е. это внешнее представление конкретного пользователя.
Прочитать остальную часть записи »
Основы реляционного счисления
Реляционное счисление – это непроцедурный язык, поскольку он по сути декларирует требуемое, но не говорит, как это сделать. Это непроцедурный язык, являющийся языком декларации. «Хочу, но не знаю как». Обрабатываются не запись за записью в данном случае, а сразу массив записей, то есть вся таблица в результате реляционного счисления.
Прочитать остальную часть записи »
Факторы, влияющие на быстродействие дисководов.
Поскольку обычно люди работают с БД, фактически с файлами, а файлы могут быть очень большими, то общее быстродействие работы приложения с БД зависит от работы программных дисков – данные записываются и считываются с него.
Факторы, влияющие на быстродействие:
Прочитать остальную часть записи »
Языки управления базами данных
Для управления работой БД, начиная с создания объектов и на всех этапах эволюции СУБД, разрабатываются и используются соответствующие языки управления базами данных. На сегодня сформулированы два основных направления.
В большинстве СУБД, которые называются SQL-серверы – серверы, которые в той или иной степени поддерживают стандартизованный язык SQL – создание всех объектов, включая таблицы и т.д. управление базой данных происходит с использованием этого языка. У каждого производителя есть нюансы, называемые диалектами (касающимися в основном синтаксиса) и расширениями (полностью или частично реализованы стандарты и команды), аналогично языкам программирования, таким как С++ (Visual C++, Borland C++, Symantec C++).
Прочитать остальную часть записи »
Null — значение в базе данных
Для определения пропущенной или отсутствующей информации Эдвард Кодд ввел понятие метки Null (правило №2 реляционной модели) как некоторое значение, которое отсутствует.
Null – не ноль числовой, не пустая строка. Это просто нет значения. Пусто. Иногда его называют Unknown. Для реализации Null-значения в больших СУБД(в Desktop СУБД нулевые значения практически отсутствуют) в соответствующих колонках пишут Not Null. Эта колонка не будет поддерживать Null-значение. Если этого не приписать, то это автоматически означает, что какая-то колонка строковая, числовая, дата и т.д. будет поддерживать пустое значение.
Прочитать остальную часть записи »
Правила внешних ключей
Для обеспечения ссылочной целостности или, как иногда говорят, для поддержки внешних ключей, у пользователя базы данных должна быть возможность определить набор операций по связи между Primary Key и Foreign Key, которые ему разрешены и которые ему запрещены. Прежде всего такая ситуация возникает, когда необходимо выполнить операцию Delete (что делать, если в главной таблице удаляется родительская запись).
Прочитать остальную часть записи »
Потенциальные внешние ключи
Candidate Key – подмножество K множества атрибутов R, обладающее свойствами уникальности и не избыточности. Комбинация всех атрибутов обладает свойством уникальности, поэтому формально тоже Candidate Key.
Простой ключ – потенциальный ключ из одного атрибута. Имеет большое значение для идентификации на уровне кортежей.
Прочитать остальную часть записи »
Представления — пределения, достоинства и недостатки
Представление (view) – именованное производное отношение. Фигурирует в БД в виде кода.
Снимки (Snapshot) — именованное производное отношение, отличаются наличием в них данных на некоторый момент времени.
Реляционная БД – база, воспринимаемая пользователем как набор неименованных отношений разной арности.
Прочитать остальную часть записи »
Свойства и понятие отношений в базе данных
Отношение определяется на множестве доменов и содержит заголовок (атрибуты) и тело (множество кортежей). Заголовок также является множеством значений, все имена в нем уникальны.
Свойства отношений (следуют из того, что отношения – математические множества):
Прочитать остальную часть записи »
Ограничения совокупности допустимых значений в базе данных
Домен – общая совокупность допустимых значений (упрощенно – тип данных)
Ограничение – булевы функции, которые накладываются на данные, хранящиеся в БД.
Виды ограничений:
1. Уникальность: в некоторых атрибутах данные должны быть уникальны в каждом кортеже, но могут быть и пустыми.
Прочитать остальную часть записи »