Архив рубрики «Базы данных»
Общая модель РСУБД, концептуальная архитектура РСУБД
Считается, что РСУБД могут обслуживать как локальные, так и глобальные сети. Узлы в локальной сети могут иметь шинную, кольцевую или звездную конфигурацию. Все линии локальных сетей имеют достаточно большую скорость и небольшой процент ошибок. В глобальной сети используется либо полностью связанная конфигурация при небольшом числе узлов, либо частично связанную конфигурацию.
Прочитать остальную часть записи »
Уровни доступа к распределенным данным
В 1989 году компания IBM о своем намерении создать РСУБД в 4 этапа (это и есть уровни доступа):
1) Удаленный запрос – отдельный SQL оператор обращается к одной удаленной базе данных, и каждый оператор – это отдельная транзакция. Таким образом, пользователь может выполнить несколько SQL операторов, обращающихся к разным базам данных, но каждый раз это будет отдельная транзакция;
Прочитать остальную часть записи »
Проблемы и особенности распределенных баз данных
В наше время распределенным базам данных нашли широчайшее применение, поскольку корпорации и фирмы размещаются во многих офисах, как в пределах одного города, так и разбросанным по нескольким странам и даже континентам. Особенно это касается фирм, связанных с билетами, авиа и водными перевозками и так далее.
Прочитать остальную часть записи »
Моделирование объектов и генерация кодов при создании БД
Во-первых, к объектам базы данных, которые моделируются с помощью Erwin или других аналогичных средств, относятся домены, значения по умолчанию и ограничения. Для моделирования доменов следует выполнить команды из Главного Меню Model — Domain Dictionary. Откроется окошко, в котором нужно нажать кнопку New, указать тип, Logical Name и Physical Name. Logical Name может быть русскоязычным и будет появляться на логической модели, Physical Name должно быть англоязычным и лучше без пробелов. Оно нужно для физической модели. В правой части окна можно моделировать поля ввода Valid и Default, то есть ограничения и значения по умолчанию соответственно.
Прочитать остальную часть записи »
Проблемы ER моделирования при создании баз данных
а) Рекурсивные связи many-to-many с добавлением иерархии IS-A.
Разновидностью рекурсивных связей many-to-many является связи типа перечни комплектующих. Например, автомобиль разбивается на части: корпус, двигатель и т.д. до винтиков и получается перечень входящих в него гаечек, прокладочек и т.д.
Прочитать остальную часть записи »
Дополнительные типы связей при проектировании баз данных
Сама связь, ее вид определяет, с одной стороны, кол-во возможных подчиненных, дочерних образцов, как то любое число, или другие варианты, с другой стороны, связь фактически определяет являются ли две таблицы в соотношении зависимой, подчиненной, или обе они независимые. Если формальная связь – тогда по сути они независимые.
Прочитать остальную часть записи »
Моделирование ссылочной целостности
В отличие от БД первого и второго поколения, где были иерархические БД, где считывание данных производилось, по сути, по указателям, то есть по физическому месту хранения этих данных, в отличие от них хранение в реляционных БД основано на самих данных, то есть, и связь между таблицами осуществляется на основе тех данных, которые лежат в таблице, а не какими-то другими путями.
Прочитать остальную часть записи »
Именование сущностей и атрибутов
Нужно показать назначение таблиц и колонок в этой таблице, то есть называть их так для чего они служат, хотя на практике, бывает, именуют на английском языке, аналоги на английских словах, или иногда пишут латиницей русские слова, ну тоже выход, значит, из положения, хотя иногда получается очень длинно, например, количества товара где-то там.
Прочитать остальную часть записи »
Полная атрибутивная модель FA (Fuller Attributer)
FA (Fuller Attributer) модель – это модель данных, которая полностью описывает все атрибуты сущности с указанием типов данных. Атрибуты могут однозначными (дата рождения человека) и многозначными (у человека может быть несколько телефонов).
Как создаются атрибуты в Erwinе
Надо щелкнуть правой клавишей по сущности и выбрать из всплывающего меню Attribute Editor (редактор атрибутов). Появиться окошко, в котором надо щелкнуть по кнопке New, и выбрать, если это на логическом уровне, тип данных. При этом на логическом уровне можно создавать 2 вида имён: имя, которое будет отображаться над таблицей может быть русскоязычным, и физическое имя, которое будут только на физической модели (только на латинице). Можно указать одно и тоже имя.
Прочитать остальную часть записи »
Key Basic Model
Key Basic Model – модель с ключами. Фактически эта модель когда Вы уже определились какие колонки будут ключевыми, всё остальное то же самое что на ERD модели. В Erwinе прямоугольник, который отображает сущность разделён на две части. В верхней маленькой области размещаются главные ключи PK.
Прочитать остальную часть записи »
ERD-диаграммы
Цель создания ERD-диаграммы обеспечить просмотр требований достаточных для удовлетворения потребностей разрабатываемой ИС (информационной системы). Фактически с ERD-диаграммы и начинается разработка модели, когда определяется общий перечень таблиц и связей между ними. Потом уже определяются ключи, атрибуты и т.д., но сперва надо определиться с таблицами.
Прочитать остальную часть записи »
Обзор логических и физических моделей
Обзор логических моделей
1. Диаграмма сущность-связь. Используется чтобы показать менеджерам какие таблицы проектируются для заказчика, какие связи между ними и т.д. Обычно менеджерам не важно какие там поля есть. Т.е. это модель высшего уровня, когда согласовывается модель дальше начинает она прорабатываться.
Прочитать остальную часть записи »
Моделирование структур баз данных
С появлением PC-станций стали развиваться средства автоматизированное проектирование типовых вещей (базы данных это типовые вещи в том смысле, что набор данных для проектирования и так велик и вполне укладывается в некий перечень: таблицы, связи, домены, поля, типы дынных и т. д. это всё перечислимые вещи осязаемого размера, поэтому здесь трудностей нет, есть промышленные вещи такие как: моделирование печатных плат, вплоть до разведения проводников в AutoCAD-е).
Прочитать остальную часть записи »
Настройки синтаксиса SQL
Язык SQL – язык декларативный. Он декларирует то, что мы хотим получить в ответе. На самом деле это не непосредственный код, который исполняется.
Язык SQL – это язык, который потом с помощью оптимизатора превращается в исполняемый код. В отличие от обычных интерпретаторов, которые из байт кодов делают исполняемый код, здесь ещё учитывается план выполнения, поэтому здесь более сложная работа происходит, чем в обычных кодовых системах типа Java, TopNet и т.п. Поэтому получение одного и того же результата возможно при написании запросов разными способами.
Прочитать остальную часть записи »
Настройка оптимизатора SQL
Ввиду различия режимов оптимизатора различен и результат их работы, поэтому важен выбор оптимизатора, используемого по умолчанию. Как правило, общепринятые цели настройки включают следующие задачи:
1) Устранение полного просмотра таблиц, путём создания индексов во всех случаях, когда стоимость индекса меньше стоимости полного просмотра. Т.е. заранее создать индексы для всех колонок, по которым придётся делать выборку.
2) Обеспечивание правильного использования всех индексных ресурсов оптимизатора. (стоимостной оптимизатор работает по индексам, по расположению данных)
3) Использования битовых индексов про любой возможности. Битовые индексы работает быстрее, в памяти места занимают меньше.
4) Использование стоимостных подсказок для повышения производительности запросов.
Прочитать остальную часть записи »
Режимы оптимизации в базах данных
Когда выбираются низкоуровневые процедуры и генерируется план, здесь учитываются цели, которых хотим достичь.
На сегодня существует 3 режима оптимизации (по большому счету 2, поскольку 3-ий выбирает из этих двух):
1) продукционный оптимизатор Rule: использует продукционную оптимизацию, формально говоря продукционный оптимизатор, был разработан первым, появился он в Oracle, до сих пор он работает там и модернизируется. Суть продукционного оптимизатора: формально говоря, различные виды выборки имеют разные веса (например: доступ к одной строке – вес (ранг) r=1, доступ к одиночной строке по кластерному соединению (когда формально выбирается одна, но соединение с другой) r=2, к одиночной строке по ключу с уникальным или первичным ключом r=3).
Прочитать остальную часть записи »
Оптимизация в базах данных
Оптимизация базы данных – создание таких условий, когда обеспечивается наибольшее быстродействие базы данных при минимальных затратах. (в принципе оптимизация без указания чего это очень расплывчатое понятие) Здесь понимается создание условий максимального быстродействия при возможно минимальных ресурсах.
Прочитать остальную часть записи »
Настройка сверхтрудных баз данных
Настройка сверхтрудных баз данных предусматривает настройку среды базы данных, а затем настройку запросов и транзакций, которые потребляют большое число ресурсов.
Для повышения производительности следует придерживаться следующих советов:
1) устанавливают максимально возможный объем системной глобальной памяти (в Oracle это называется SGA, рекомендуемый объем 2%,но иногда это невозможно) Прочитать остальную часть записи »
Общие принципы повышения производительности и доступности
А. На производительность влияет:
1) многопотоковая архитектура;
2) параллельная обработка;
3) фрагментация таблицы индексов;
4) оптимизация выполнения запросов;
5) разделяемая память; Прочитать остальную часть записи »
Microsoft Master Server
IT-4 вышел в 1996 году.
Есть несколько клиентов K1, K2,…Kn — есть сервер 1 и сервер 2, у которых есть диски.
Прочитать остальную часть записи »
Параллельное выполнение операций в БД
СУБД Oracle одна из первых претендовала на то, чтобы запускаться на компьютере в нескольким числом процессоров. Если ОП Windows от Microsoft обещают только к 2010 году сделать такой чтобы она учитывала наличие 2-ух процессоров и распределяла нагрузку от одного процессора, то СУБД Oracle уже давно определяет количество процессоров и может перераспределить сама нагрузку на разные процессоры. Особенно это касается операторов выборки данных, удаления записей, обновление записей и т.д. особенно тогда когда надо загружать индексы и основную базу данных, либо когда запрос выполняется на одном процессоре под запросом другого и т.д.
Прочитать остальную часть записи »
Цепочки указателей в базах данных
Часто используются, когда приходится выполнять запросы типа: найти поставщиков из города N.
Прочитать остальную часть записи »
Кластеризация в базах данных
Как правило, используется в СУБД среднего и большого размера. SQL-сервер – сервер среднего класса, а кластеризация в нем уже есть.
Идея кластеризации заключается в наиболее близком физическом размещении на диске логически связанных между собой данных (например, по какому-нибудь полю, по ключу). Записи физически лежат друг за другом.
Прочитать остальную часть записи »
Хеширование в базах данных
Хеш-адресацией или хеш-индексированием называется технология быстрого прямого доступа к хранимой записи на основе значения обычного числового поля.
Всякого рода индексирование, в том числе битовые индексы, предполагают наличие ещё одного файла: для десктоповских СУБД – физического, для SQL-сервера – логического (находящегося в одном физическом). Хеширование не требует дополнительного файла.
Прочитать остальную часть записи »
Выбор таблиц и столбцов при создании индексов
1. Основные правила выбора ТАБЛИЦ при индексировании
1. Целесообразно индексировать таблицы, из которых выбирается не более 5% строк (сразу).
2. Следует индексировать таблицы, не имеющие дублей в разделе where команды select.
3. Не целесообразно индексировать часто обновляемые таблицы.
4. Не целесообразно индексировать таблицы, занимающие не более 2х страниц (~500 записей).
Прим. это м.б. таблицы адресов, городов, районов.
Прочитать остальную часть записи »
Структуры типа B (балансированное Balance Tree) дерева
Это наиболее распространенные в наше время индексы, для сверх больших баз данных. Фактически это многоуровневые индексы, правда сделанные не потипу индекс на индекс, как мы рассматривали первоначально.
Суть создания такого индекса такова, чтобы за 2, 3 считывания можно было находить нужную запись. Как это делается: Есть какой то корневой индекс Root( в нем номера – 23, 31, 44, они очень разряжены). У них есть идентификация, указатели.
Прочитать остальную часть записи »
Многоуровневые индексы, вторичные индексы, поиск документов и обращенные индексы
Многоуровневые индексы
Для ускорения просмотра больших индексов, часто делают индекс для индекса. Тогда индексный файл очень большой, и его приходиться частями загружать в оперативную память, и это тоже долго. Тогда если есть индексный файл, то фактически делается другой уровень.
Прочитать остальную часть записи »
Неплотное индексирование — базы данных
Для поиска нужной записи используется RID. Но на самом деле SQL серверы работают не с записями, а со страницами. Считывается каждый раз страница, а внутри страницы ищется нужная запись. А раз так то на самом деле RID (Record идентификатор) можно заменить на идентификатор страниц.
Прочитать остальную часть записи »
Варианты создаваемых индексов и особенности создания. Применения индексов
Хранимый файл может иметь один индекс, как в нашем рассмотренном случае тут: http://all4study.ru/bd/indeksirovanie-v-bazax-dannyx.html, и хранимый файл может иметь несколько индексов, который сделаны так что они могут быть раздельными или совместными. Если индексов полей два и более, то индекс может быть сделан по каждому полю отдельно, или может быть сделан совместный, так называемый составной индекс. Т.е когда идет комбинация полей, он называется составным.
Прочитать остальную часть записи »
Индексирование в базах данных
Структура хранения на основе индексирования предполагает использовать двух хранимых файлов.
Прочитать остальную часть записи »