Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория СУБД.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
107.03 Кб
Скачать

Теория субд

Лекции на тему  “Введение в теорию СУБД”

Прежде чем начать практиковаться в создании моделей, проектировании сложной базы или в управлении навороченной СУБД, нужно обогатить себя хотя бы минимальными теоретическими навыками. Еще в древние времена, когда о базах данных только мечтали, кто-то подметил, что без теории нет практики.

ЧТО ТАКОЕ СУБД И С ЧЕМ ЕЕ ЕДЯТ

Тем, кто впервые слышит о базах данных, нет смысла рассказывать о моделях, свя­зях и т.п. Самое первое, с чего нужно начать повествование, - базовые определения, за­получив которые в свой арсенал, ты легко переваришь все остальное.

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

Внесение объекта в базу – только полдела. Его еще нужно как-то характеризовать, свя­зать с ним определенное значение. И тут нужно ввести понятие "данное". Данное – это определенный показатель, характеризу­ющий объект и наделяющий его определен­ным значением. Причем не обязательно, что­бы объект был определен одним данным – их может быть много. Представь, что ты имеешь дело с хакерской структурой. Хакерство – это объект. А вот данные - это уже хакерские те­чения, стаж незаконной деятельности, коли­чество написанных эксплойтов и взломан­ных машин и т.п. Другими словами, данные – это характеристики определенного объекта. Именно это больше всего интересует клиен­та, обратившегося к пока еще будущей БД.

Создать многомегабайтный файл с тоннами информации (которая, кстати, вполне может быть избыточной) – это не решение пробле­мы. Человек любит комфорт, поэтому, чтобы, например, пробить информацию на крупного хакера, от клиента потребуется предоставить только ник взломщика, и тогда исчерпываю­щая информация о киберпреступнике станет оружием справедливости. Организовать та­кую систему очень непросто, прошел не один десяток лет, прежде чем отдельные файлы стали достойными базами данных (база дан­ных в ini-файле – это тоже стильно – прим. Dr.). Теперь все стало намного проще благо­даря существованию структурированных файлов – баз данных и различных моделей организации данных.

Собственно, модель – это основа, на кото­рую опирается та или иная база данных. В той или иной модели определяются связи между данными, типы вводимых данных, ме­тоды хранения, управления и т.п. Связь дан­ных с прикладными программами обеспечи­вается посредством СУБД или с помощью систем управления базами данных.

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

За таблицами – наше будущее!

 

Та или иная СУБД зависит от модели, ко­торая положена в основу базы. В наше вре­мя стали наиболее распространенными две модели: реляционная (модель отношений) и объектно-ориентированная (модель объек­тов). О них и пойдет речь в этой статье.

Начнем с реляционной модели. В далеком 1969 году американский математик доктор Э.Ф. Кодд (Е.F. Codd) проанализировал сло­жившуюся к тому времени ситуацию по базам данных и пришел к выводу, что дело плохо. Во всех имевшихся в то время моделях были существенные недостатки: избыточность дан­ных, сложность обработки и отсутствие безо­пасности хранения информации и т.п. После тягостных раздумий Кодд решил создать свою модель - реляционную. Для тех, кто злостно прогуливал английский, напомню, что relation переводится как "отношение" или просто "таблица". Гениальный доктор просто реали­зовал хранение данных в табличной форме, то есть организовал такие "хранилища" в ви­де логических структур (физические методы хранения могут быть любыми). Тем самым Кодд сумел добиться наглядности представле­ния информации и удобства ее обработки. Благодаря достижению этого гения для фор­мирования таблицы данных стало достаточно выполнить определенный логический запрос, подчиняющийся законам булевой алгебры. Среди операторов манипуляции данными су­ществуют минимум три операции: извлечение строк (SELECT), извлечение столбцов (PRO­JECT) и объединение таблиц (JOIN). В резуль­тате этих действий мы получаем таблицу. И простой вывод из всего этого: результатом любой операции в реляционной модели явля­ется объект того же рода, что и объект, над ко­торым осуществлялось действие.

Это и есть основное свойство опи­сываемой модели.

Кроме базовых знаний, нам понадо­бятся основные определения, приме­нимые к этой модели: тип данных, ат­рибут, кортеж, отношение и первич­ный ключ.

Тип данных – определение, которое соответствует понятию типа в языках программирования. Другими словами, для реляционной модели можно отме­тить такие основные типы, как "целые числа", "строки", "символы", "числа с плавающей запятой", "дата" и "день­ги" (куда в наше время без денег :)).

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

Кортеж – строка в таблице с данны­ми. Таким образом, исчерпывающая информация на определенного хаке­ра является кортежем.

Отношение – таблица в целом. Опи­сание типов данных, применяемых в табличке, называется заголовком от­ношения, а все остальное (собствен­но данные) – телом отношения.

Первичный ключ – минимальный на­бор атрибутов (столбцов), которые бу­дут определять однозначную уникаль­ность каждого кортежа (строки) в отно­шении (таблице). При создании базы следует очень внимательно отнестись к заданию первичного ключа – в нашем примере ника хакера будет недостаточ­но (вдруг кто-нибудь захочет взять се­бе кличку своего кумира? :)). Бывает, что для аутентификации вводится до­полнительное поле с порядковым но­мером, который будет однозначно раз­ным для каждой строки. Но никто не запрещает выбирать для первичного ключа два или три атрибута: все как ты пожелаешь, лишь бы это действие бы­ло логически обоснованным (подобный ряд атрибутов будет называться сос­тавным первичным ключом).