Оглавление
- MyISAM
- Что такое СУБД и язык структурированных запросов SQL
- Добавление данных в таблицу в SQL
- Области применения БД
- История появления первых БД
- Элементы
- Функции «слоупока»: как заставить открываться «Все функции» в 97 раз быстрее!
- Правила целостности данных
- Особенности реляционных БД
- Основные понятия
- Денормализация
- Определение сущностей
- Структура базы данных: построение блоков
- Автокликер для 1С
- Особенности реляционных данных
- Сетевые базы данных, структура сетевых данных
- Определение связей между сущностями
- Лекция 1. Основные понятия теории баз данных
- Подводим итоги проектирования
MyISAM
MyISAM – является родным типом таблиц для базы СУБД MySQL. База данных в MySQL организуется как каталог. Таблицы базы данных организуются как файлы данного каталога. Каждая MyISAM таблица хранится на диске в трех файлах, имена которых совпадают с названием таблицы, а расширение может принимать одно из следующих значений:
- Frm – содержит структуру таблицы, в файле данного типа хранится информация об именах и типах столбцов и индексов.
- Myd – файл, в котором содержатся данные таблицы.
- Myi – файл, котором содержатся индексы таблицы.
Особенности типа таблиц MyISAM:
- Данные хранятся в кросс-платформенном формате, это позволяет переносить базы данных с сервера непосредственным копированием файлов, минуя промежуточные форматы.
- Максимальное число индексов в таблице составляет 64. Каждый индекс может состоять максимум из 16 столбцов.
- Для каждого из текстовых столбцов может быть назначена своя кодировка.
- Допускается индексирования текстовых столбцов, в том числе и переменной длины.
- Поддерживается полнотекстовый поиск.
- Каждая таблица имеет специальный флаг, указывающий правильность закрытия таблиц. Если сервер останавливается аварийно, то при его повторном старте незакрытые флаги сигнализируют о возможных сбойных таблицах, сервер автоматически проверяет их и пытается восстановить.
Что такое СУБД и язык структурированных запросов SQL
Определение
Системы управления базами данных СУБД – специальные средства, включающие определенный язык программирования, предназначены для разработки программ или их систем, работающих с базами данных.
Распространенные СУБД:
- Oracle Database;
- MS SQL Server;
- MySQL (MariaDB);
- ACCESS в составе профессионального пакета Microsoft Office.
Современные системы обладают большими возможностями, а также способствуют разработке сложных программных комплексов.
Определение
SQL (SQL, Structured Query Language) — язык программирования структурированных запросов, применяемый в качестве эффективного способа сохранения данных, поиска их частей, обновления, извлечения из базы и удаления.
SQL представляет собой ключевой инструмент оптимизации и обслуживания базы данных. Возможности обработки охватывают:
- команды определения представлений;
- указания прав доступа, схем отношений;
- взаимодействие с другими языками программирования;
- проверку целостности;
- задание начала и завершения транзакций.
SQL отличается простотой и легкостью в изучении. Его применяют:
- разработчики баз данных, для обеспечения функциональности приложений;
- тестировщики, в ручном и автоматическом режиме;
- администраторы, с целью поддержки рабочих параметров среды.
Добавление данных в таблицу в SQL
Теперь нужно заполнить данными созданные нами таблицы т.е. добавить строки. Для этого используется команда INSERT. Она может добавлять строки тремя способами:— полную строку— часть строки— результат запроса
Начнем с таблицы статусов:
переводя на человеческий мы сказали: Добавь в таблицу users_status в столбец status значение admin. В приведенном мной примере название столбца и значение которое мы добавляем в скобки можно не брать. Потому что мы добавляем одно значение в один столбец. Но как правило нужно добавлять в несколько столбцов — разные значения, для этого в скобках, через запятую перечисляем вначале столбцы, а значения которые мы хотим вписать в соответствующий столбец после команды VALUES. Значения всегда должны быть в одинарных кавычках. И не забывай, что значения надо указывать в том же порядке в котором мы перечисляли столбцы, но при этом этот порядок не обязательно должен соответвовать порядку столбцов в таблице:
Как видишь, мы добавили только часть строки, пропустив столбец status. В такой ситуации туда будет записано значение NULL т.е . пусто, но только если мы не указывали параметр NOT NULL для этого столбца. Ну и, кстати столбец id по правильному тоже надо было бы пропускать, потому что он всё равно автоматически заполниться.
Если вдруг ты решил изменить какое-то значение в таблице для этого применяется команда UPDATE:
По сути мы сказали: ОБНОВИ значение в таблице users_status В СТОЛБЦЕ status на administrator ТАМ ГДЕ id=1. Используя WHERE мы задали условия для поиска нужной нам записи. Тут нам как раз и понадобились наши идентификаторы, благодаря которым мы выбираем именно нужную строку. Кстати, если не указать условие, используя WHERE мы обновим все значение в таблице. Так делать не нужно.
Области применения БД
Сегодня понятие базы данных заметно усложнилось. Теперь ее нельзя воспринимать как просто объем хранимой информации. Если бы это было так, то все базы данных можно было бы записывать в текстовый документ или документ Excel. Однако современные базы данных имеют ряд характерных особенностей, благодаря чему отличаются от обычных табличных данных.
База данных от простых табличных данных отличается, во-первых, объемом если записей больше 50 тысяч, то такую таблицу уже нужно конвертировать в базы данных, а во-вторых — наличием связей между таблицами. Если из одной базы данных перебросить таблицы в другую базу данных несложно, то связи между ними каждый раз приходится выстраивать заново, что создает определенные проблемы.
Зачем вообще нужны базы данных? Это не только массив информации, пусть и упорядоченный. Во-первых, это инструмент для математического моделирования и средство для решения численных расчетов, которые трудно или невозможно произвести вручную. Во-вторых, проектирование баз данных позволяет организовать поисковые, справочные, банковские системы, автоматизированные системы для различных предприятий. При этом задействуются колоссальные объемы памяти.
Суммарный объем данных «цифровой вселенной» удваивается каждые два года, поэтому сейчас крупные БД исчисляются петабайтами и даже эксабайтами.
Примеров использования БД бесконечно много — они применяются в интернете, в промышленности, в маркетинге, в мобильных устройствах, в финансовой и банковской сферах, на телевидении, в телекоммуникациях, в рекламе. Базы данных обязательно используются для управления персоналом, бухгалтерского учета, связи и т.д.
Нередко использование баз данных решает общенациональные проблемы, как например, в Исландии — стране с небольшим населением, всего 300 тысяч человек. По причине географического расположения, а также в силу истории, за последние 200 лет на этом острове практически не было ни эмиграции, ни иммиграции населения. Поэтому правительство Исландии смогло создать генеалогическую базу данных всех родственных связей в стране — Íslendingabók. Все те, у кого есть исландский идентификационный номер, могут сверить свое родство, например, чтобы исключить вероятность брака с близким родственником.
История появления первых БД
В широком значении этого термина «базы данных» появились очень давно, тысячи лет назад. Сразу, как только человек изобрел способ создавать документы — с помощью письма, клинописи, узелковой письменности и т.д. Царям и знати приходилось вести учет своей казны, сборщикам податей — фиксировать объемы налогов и т.д. Все эти данные составляли некоторый массив информации, который был прообразом современных баз данных. Массивы становились все больше, а средства для их описания все сложнее. Возникла необходимость оперативно записывать и считывать информацию, появились первые устройства-табуляторы.
Еще в 1804 году Жозеф Мари Жаккар придумал использовать для хранения информации перфокарты — с их помощью ткацкий станок легко мог бы быть перепрограммирован на определенный узор. В 1890 году Бюро переписи США использовало схожие перфокарты и табуляторы для автоматизации подсчетов при переписи населения. Идея с перфокартами успешно использовалась и в первых компьютерах. В картонных листах пробивались определенным образом отверстия, кодируя полезную информацию. Однако, объем и скорость чтения данных на перфокартах, понятное дело, были низкими.
С появлением электронно-вычислительных машин возникла необходимость в программном обеспечении для устройств обработки записей на основе файловой структуры прообраз современных СУБД — систем управления базами данных. Именно тогда и появился термин «база данных» в том контексте, котором мы привыкли его сегодня понимать.
Одна из старейших компаний, которая начала заниматься разработкой баз данных, — Oracle. Хотя свое название она приобрела в 1980-х, фактически команда специалистов начала свою работу еще в 1977 году. В то время будущий основатель американской компании Ларри Эллисон (Lawrence Ellison) работал в компании Ampex, которая была вовлечена в проект для ЦРУ под названием Oracle. Когда в военном ведомстве свернули этот проект, Ларри решил продолжить работу в собственной фирме и даже взял для нее исходное название проекта. Кстати, интересный факт: Ларри Эллисон был крупным акционером Apple и способствовал продвижению карьеры самого Стива Джобса.
С середины 1950-х годов стали разрабатываться основные подходы и требования к базам данных. В 1972 году вышел труд британского ученого Тедда Кодда, в котором автор описал основную идею реляционной технологии. Он сформулировал несколько правил для «настоящей» базы данных.
Во-первых, она должна включать в себя элементы, своего рода строительные кирпичики — коллекции типов объектов данных. Во-вторых, структура выборки данных должна подчиняться правилам целостности, ограничивающим набор экземпляров массива информации. И, наконец, к элементам выборки можно применять различные операции. Эти идеи заинтересовали Ларри Эллисона, и вскоре была выпущена самая первая база данных.
Забавно, что первая версия БД, выпущенная Oracle, уже имела версию «v2». На эту маленькую хитрость пошли из маркетинговых соображений.
Второй номер версии должен был подчеркнуть отрыв от конкурентов (например, IBM, в которой и работал Тедд Кодд) и стимулировать спрос на продукт. СУБД Oracle создавалась на ассемблере, однако, впоследствии от ассемблера отказались в пользу языка С, лицензия на который стоила значительно меньше.
Элементы
См. Также: Данные
Отношения (общие характеристики)
В BDR все данные хранятся и доступны через ранее установленные отношения.
производные отношения
Другие отношения не хранят данные, а вычисляются путем применения реляционных операций. Эти отношения называются производными отношениями, а их реализация называется « представлением » или « запросомПроизводные отношения удобны тем, что они выражают информацию из нескольких отношений, действующих так, как если бы это была одна таблица.
Некоторые из них определяются не пользователями, а определяются тем простым фактом, что база данных является реляционной. Некоторые другие ограничения могут быть определены пользователем, например, с помощью поля с целочисленными значениями от 1 до 10.
Ограничения обеспечивают метод реализации «правил» в базе данных.
Ограничения ограничивают данные, которые могут храниться в таблицах.
Обычно они определяются с помощью выражений, результатом которых является логическое значение, указывающее, удовлетворяют ли данные ограничению или нет.
Ограничения не являются неформальной и формальной частью реляционной модели, но они включены, поскольку играют роль в лучшей организации данных. Ограничения широко обсуждаются наряду с реляционными концепциями.
домены
Домен описывает набор возможных значений для определенного атрибута. Поскольку домен ограничивает значения атрибута, его можно рассматривать как ограничение. Математически приписывание домена атрибуту означает, что «любое значение этого атрибута должно быть элементом указанного набора».
Различные типы доменов: целые числа, текстовые строки, даты, непроцедурные и т. д.
Каждая таблица может иметь одно или несколько полей, значения которых однозначно идентифицируют каждую запись указанной таблицы, то есть не может быть двух или более разных записей, значения которых в указанных полях идентичны. Этот набор полей называется уникальным ключом. В данной таблице может быть несколько уникальных ключей, и каждый из них часто называют потенциальным первичным ключом.
Ключевая классификация
первичный ключ
Основная статья: Первичный ключ
Первичный ключ — это уникальный ключ (он может состоять из одного или нескольких полей таблицы), выбранный среди всех кандидатов, который однозначно определяет все остальные атрибуты таблицы для указания данных, которые будут связаны с другими таблицами. Способ сделать это (связь между таблицами) — через внешние ключи.
внешний или внешний ключ
Основная статья: Внешний ключ
Внешний ключ — это ссылка на ключ в другой таблице, он определяет существующую связь между двумя таблицами. Внешние ключи не обязательно должны быть уникальными ключами в таблице, где они находятся, но на которую они ссылаются.
Например, код отдела может быть внешним ключом в таблице сотрудников. В одном отделе допускается несколько сотрудников, но для каждого отдельного ключа отдела в таблице отделов будет один и только один отдел.
индексный ключ
См. Также: Указатель (база данных)
Ключи индекса возникают из-за необходимости более быстрого доступа к данным. Индексы могут быть созданы с любой комбинацией полей из таблицы. Запросы, фильтрующие записи с помощью этих полей, могут находить записи непоследовательно, используя ключ индекса.
Реляционные базы данных включают несколько методов сортировки, каждый из которых оптимален для определенного распределения данных и размера отношения.
Индексы обычно не считаются частью базы данных, поскольку они являются дополнительной деталью. Однако ключи индекса разрабатываются той же группой программистов, что и другие части базы данных.
Хранимые процедуры
Основная статья: Хранимые процедуры
Хранимая процедура — это исполняемый код, который связан с базой данных и хранится в ней. Хранимые процедуры обычно собирают и настраивают общие операции, такие как вставка записи в таблицу, сбор статистической информации или инкапсуляция сложных вычислений. Они часто используются API для безопасности или простоты.
Хранимые процедуры не являются частью реляционной модели, но включают их во все коммерческие реализации.
Функции «слоупока»: как заставить открываться «Все функции» в 97 раз быстрее!
Наверное, каждый программист 1С (да и не только программист), открывая «Функции для технического специалиста» (ранее «Все функции») на массивных конфигурациях вроде ERP 2.4 и т.п., в своей жизни много раз задавался вопросом – почему же они так долго открываются??
Действительно, в зависимости от мощностей сервера «Все функции» могут открываться от 20 секунд до 2 минут!
«Ну, слишком много объектов в конфигурации, огромное количество констант, справочников, документов, регистров… – Отвечали себе страдающие пользователи. – Пока программа обойдёт в цикле все метаданные, пока построит дерево… Тут ничего не поделаешь…».
И все они были не правы! Я провёл собственное расследование, которое показало, что 97% времени построения дерева метаданных тратится на…
1 стартмани
Правила целостности данных
Также с помощью средств проектирования баз данных необходимо настроить БД с учетом возможности проверки данных на соответствие определенным правилам. Многие СУБД, такие как Microsoft Access, автоматически применяют некоторые из этих правил.
Правило целостности гласит, что первичный ключ никогда не может быть равен NULL. Если ключ состоит из нескольких столбцов, ни один из них не может быть равен NULL. В противном случае он может неоднозначно идентифицировать запись.
Правило целостности ссылок требует, чтобы каждый внешний ключ, указанный в одной таблице, сопоставлялся с одним первичным ключом в таблице, на которую он ссылается. Если первичный ключ изменяется или удаляется, эти изменения необходимо реализовать во всех объектах, на которые ссылается этот ключ в базе данных.
Правила целостности бизнес-логики обеспечивают соответствие данных определенным логическим параметрам. Например, время встречи должно быть в пределах стандартных рабочих часов.
Особенности реляционных БД
БД используются для организации хранения данных. Структура реляционной базы данных полностью определяется перечнем названия полей с указанием их типов и свойств. Все записи имеют одинаковые поля, но в них показываются разные свойства объекта. Аналогом реляционной БД считается двумерная таблица. Характерные особенности файла БД:
- Уникальное имя для каждой таблицы.
- Фиксированное число полей.
- На пересечении строки и столбца всегда есть только одно значение.
- Записи отличаются друг от друга хотя бы одним значением элемента.
- Полям присваиваются индивидуальные имена.
- В каждый из столбцов необходимо вставлять однородные данные: целые числа, даты, суммы, имена или фамилии, названия предметов.
Реляционная БД чаще всего не ограничивается одной таблицей. Обычно создаются несколько таблиц со связанной информацией. Это позволяет исполнять более сложные операции над данными. Таблицы реляционной БД обязаны соответствовать требованиям понятия нормализации отношений, то есть ограничениям на формирование, которые позволят избежать дублирования и обеспечат непротиворечивость хранимой информации. Пусть создана таблица «Прокат», содержащая следующие поля: Шифр Клиента, Ф. И. О., Вид устройства, Дата выдачи, Оплата, Срок возврата. Эта организация хранения информации имеет несколько недостатков:
- дублирование информации (вид устройства повторяется для разных клиентов), что увеличивает объём БД;
- для обновления информации требуется обрабатывать каждую запись.
Основные понятия
База данных
База данных — совокупность взаимосвязанных данных, хранимых постоянно на внешних носителях и используемых одновременно несколькими пользователями в рамках одной организации.
База данных — совокупность файлов определённой структуры. Каждый файл является набором записей.
Свойства БД:
- Интегрированность — наличие логической связи между данными в таблицах, которую можно проследить по структуре таблиц;
- Разделяемость — возможность многопользовательского режима работы с данными;
- Персистентность — долгоживущий характер записей базы данных: записи, созданные во время работы пользовательского приложения, продолжают существовать после его завершения и удаляются явно (сравните с переменными языка программирования).
Система БД
База данных является составной частью системы баз данных.
Система БД — компьютеризированная система обработки таблиц (наборов записей), которые представляют собой БД.
Функции СБД:
Структура СБД
- Добавление новой пустой таблицы в базу данных;
- Добавление новых записей в существующие таблицы;
- Выборка записей из существующих таблиц;
- Обновление записей в существующих таблицах;
- Удаление записей из существующих таблиц;
- Удаление существующих таблиц из базы данных;
- Поддержка языка баз данных.
Структура системы БД:
- Клиент — программа, реализующая интерфейс между приложением и конечным пользователем;
- Приложение — скрипт на языке баз данных (SQL), реализующий операции клиента;
- Машина баз данных — виртуальная машина, реализующая язык баз данных (SQL), и обеспечивающая преобразование команд этого языка в последовательность вызовов низкоуровневых функций системы управления файлами;
- Система управления файлами — программная система, реализующая низкоуровневые функции ввода-вывода, которые обеспечивают работу с файлами базы данных на физическом уровне;
- База данных.
СУБД
СУБД
Структура СУБД:
- Машина баз данных;
- Система управления файлами;
- Инструментальные средства разработки приложений и клиентских частей.
Функции СУБД:
- поддержка языка баз данных SQL;
- поддержка словаря данных;
- управление данными на физическом уровне;
- управление буферами оперативной памяти;
- поддержка транзакций;
- резервное копирование данных и восстановление данных после сбоев;
- обеспечение безопасности данных;
- обеспечение целостности данных.
Денормализация
Денормализация — это умышленное изменение структуры базы, нарушающее правила нормальных форм. Обычно это делается с целью улучшения производительности базы данных.
Теоретически, надо всегда стремиться к полностью нормализованной базе, однако на практике полная нормализация базы почти всегда означает падение производительности. Чрезмерная нормализация базы данных может привести к тому, что при каждом извлечении данных придется обращаться к нескольким таблицам. Обычно в запросе должны участвовать четыре таблицы или менее.
Стандартными приемами денормализации являются: объединение нескольких таблиц в одну, сохранение одинаковых атрибутов в нескольких таблицах, а также хранение в таблице сводных или вычисляемых данных.
4.9
15
Голоса
Рейтинг статьи
Определение сущностей
На этом этапе вам необходимо определить сущности, из которых будет состоять база данных.
Сущность — это объект в базе данных, в котором хранятся данные. Сущность может представлять собой нечто вещественное (дом, человек, предмет, место) или абстрактное (банковская операция, отдел компании, маршрут автобуса). В физической модели сущность называется таблицей.
Сущности состоят из атрибутов (столбцов таблицы) и записей (строк в таблице).
Обычно базы данных состоят из нескольких основных сущностей, связанных с большим количеством подчиненных сущностей. Основные сущности называются независимыми: они не зависят ни от какой-либо другой сущности. Подчиненные сущности называются зависимыми: для того чтобы существовала одна из них, должна существовать связанная с ней основная таблица.
На диаграммах сущности обычно представляются в виде прямоугольников. Имя сущности указывается внутри прямоугольника:
Любая таблица имеет следующие характеристики:
- в ней нет одинаковых строк;
- все столбцы (атрибуты) в таблице должны иметь разные имена;
- элементы в пределах одной колонки имеют одинаковый тип (строка, число, дата);
- порядок следования строк в таблице может быть произвольным.
На этом этапе вам необходимо выявить все категории информации (сущности), которые будут храниться в базе данных.
Структура базы данных: построение блоков
Следующим шагом будет визуальное представление базы данных. Для этого нужно точно знать, как структурируются реляционные БД. Внутри базы связанные данные группируются в таблицы, каждая из которых состоит из строк и столбцов.
Чтобы преобразовать списки данных в таблицы, начните с создания таблицы для каждого типа объектов, таких как товары, продажи, клиенты и заказы. Вот пример:
Каждая строка таблицы называется записью. Записи включают в себя информацию о чем-то или о ком-то, например, о конкретном клиенте. Столбцы (также называемые полями или атрибутами) содержат информацию одного типа, которая отображается для каждой записи, например, адреса всех клиентов, перечисленных в таблице.
Чтобы при проектировании модели базы данных обеспечить согласованность разных записей, назначьте соответствующий тип данных для каждого столбца. К общим типам данных относятся:
- CHAR — конкретная длина текста;
- VARCHAR — текст различной длины;
- TEXT — большой объем текста;
- INT — положительное или отрицательное целое число;
- FLOAT, DOUBLE — числа с плавающей запятой;
- BLOB — двоичные данные.
Некоторые СУБД также предлагают тип данных Autonumber, который автоматически генерирует уникальный номер в каждой строке.
В визуальном представлении БД каждая таблица будет представлена блоком на диаграмме. В заголовке каждого блока должно быть указано, что описывают данные в этой таблице, а ниже должны быть перечислены атрибуты:
При проектировании информационной базы данных необходимо решить, какие атрибуты будут служить в качестве первичного ключа для каждой таблицы, если таковые будут. Первичный ключ (PK) — это уникальный идентификатор для данного объекта. С его помощью вы можете выбрать данные конкретного клиента, даже если знаете только это значение.
Атрибуты, выбранные в качестве первичных ключей, должны быть уникальными, неизменяемыми и для них не может быть задано значение NULL (они не могут быть пустыми). По этой причине номера заказов и имена пользователей являются подходящими первичными ключами, а номера телефонов или адреса — нет. Также можно использовать в качестве первичного ключа несколько полей одновременно (это называется составным ключом).
Когда придет время создавать фактическую БД, вы реализуете как логическую, так и физическую структуру через язык определения данных, поддерживаемый вашей СУБД.
Также необходимо оценить размер БД, чтобы убедиться, что можно получить требуемый уровень производительности и у вас достаточно места для хранения данных.
Автокликер для 1С
Внешняя обработка, запускаемая в обычном (неуправляемом) режиме для автоматизации действий пользователя (кликер). ActiveX компонента, используемая в обработке, получает события от клавиатуры и мыши по всей области экрана в любом приложении и транслирует их в 1С, получает информацию о процессах, текущем активном приложении, выбранном языке в текущем приложении, умеет сохранять снимки произвольной области экрана, активных окон, буфера обмена, а также, в режиме воспроизведения умеет активировать описанные выше события. Все методы и свойства компоненты доступны при непосредственной интеграции в 1С. Примеры обращения к компоненте представлены в открытом коде обработки.
1 стартмани
Особенности реляционных данных
Главная особенность — все объекты хранятся в виде набора 2-мерных таблиц. Каждая таблица включает в себя набор столбцов, где указываются следующие параметры:
— название;
— тип данных (число, строка и т. д.).
Вторая важная особенность заключается в том, что число столбцов фиксировано. Это значит, что структура БД известна заранее, при этом количество рядов либо строк данных практически не ограничено. Грубо говоря, строки в реляционных БД — есть объекты, хранимые в базе.
По большему счёту, БД — это абстрактное понятие, а в случае с реляционной структурой таблица — есть не более чем удобный способ хранения информации. Причём набор таблиц превращается в базу данных тогда, когда он связан логически. А чтобы этим всем управлять, используют СУБД. Классический пример СУБД — система управления MySQL. Иными словами, СУБД MySQL — есть программное воплощение математических идей.
Сетевые базы данных, структура сетевых данных
В каком-то смысле сетевые базы данных — это своеобразная модификация иерархических баз данных. Разница заключается в том, что в структуре иерархических данных у дочернего элемента бывает лишь один потомок (к каждому элементу, расположенному ниже, идёт лишь одна стрелочка с элемента, размещённого выше). А вот в сетевых базах данных у дочернего элемента бывает несколько предков (элементов, находящихся выше него). Для наглядного понимания структуры сетевых данных смотрите очередной рисунок:
Следует отметить, что сетевые базы данных имеют примерно те же характеристики, что и иерархические данные. Однако в рамках этой статьи мы не будем углубляться в особенности управления сетевыми и иерархическими данными, а лучше подробнее поговорим о реляционных базах данных.
Определение связей между сущностями
Реляционные базы данных позволяют объединять информацию, принадлежащую разным сущностям.
Отношение — это ситуация, при которой одна сущность ссылается на первичный ключ второй сущности. Как, например, сущности Дом и Хозяин на предыдущем рисунке.
Отношения определяются в процессе проектирования базы. Для этого следует проанализировать сущности и выявить логические связи, существующие между ними.
Тип отношения определяет количество записей сущности, связанных с записью другой сущности. Отношения делятся на три основных типа, о которых рассказано далее.
Один-к-одному
Каждой записи первой сущности соответствует только одна запись из второй сущности. А каждой записи второй сущности соответствует только одна запись из первой сущности. Например, есть две сущности: Люди и Свидетельства о рождении. И у одного человека может быть только одно свидетельство о рождении.
Один-ко-многим
Каждой записи первой сущности могут соответствовать несколько записей из второй сущности. Однако каждой записи второй сущности соответствует только одна запись из первой сущности. Например, есть две сущности: Заказ и Позиция заказа. И в одном заказе может быть много товаров.
Многие-ко-многим
Каждой записи первой сущности могут соответствовать несколько записей из второй сущности. Однако и каждой записи второй сущности может соответствовать несколько записей из первой сущности. Например, есть две сущности: Автор и Книга. Один автор может написать много книг. Но у книги может быть несколько авторов.
По критерию обязательности отношения делятся на обязательные и необязательные.
- Обязательное отношение означает, что для каждой записи из первой сущности непременно должны присутствовать связанные записи во второй сущности.
- Необязательное отношение означает, что для записи из первой сущности может и не существовать записи во второй сущности.
Лекция 1. Основные понятия теории баз данных
План:
- Основные понятия теории баз данных
- История возникновения баз данных
- История развития баз данных
- Классификация БД
- для обеспечения их работы нужны сравнительно низкие вычислительные мощности
- данные, которые они используют, имеют сложную структуру
- необходимы средства сохранения данных между последовательными запусками системы, …
динамически обновляемойбазы данных (БД)Предметная областьметаданнымихранятся в словаре базы данныхсистема управления базой данныхСУБД
- управление данными во внешней памяти (на дисках);
- управление данными в оперативной памяти;
- журнализация изменений и восстановление базы данных после сбоев;
- поддержание языков БД (язык определения данных, язык манипулирования данными).
История возникновения БД
Первая областьВторая область
- надежное хранение информации в памяти компьютера;
- выполнение специфических для данного приложения преобразований информации и вычислений;
- предоставление пользователям удобного и легко осваиваемого интерфейса.
- создать файл (требуемого типа и размера);
- открыть ранее созданный файл;
- прочитать из файла некоторую запись (текущую, следующую, предыдущую, первую, последнюю);
- записать в файл на место текущей записи новую, добавить новую запись в конец файла.
структура записи файла была известна только программе, которая с ним работалаКаждая программапри изменении структуры файла требовалось изменять структуру программыИзменение структуры файла, которое было необходимо для одной программы, требовало исправления и перекомпиляции и дополнительной отладки всех остальных программ, работающих с этим же файлом.по отношению к каждому зарегистрированному пользователю данной вычислительной системы для каждого существующего файла указываются действия, которые разрешены или запрещены данному пользователюнеобходимость обеспечения эффективной параллельной работы многих пользователей с одними и теми же файламисообщалось о невозможности открытия файлаИстория развития БДПервый этап
- информация преимущественно хранится в последовательных файлах на магнитных лентах;
- физическая структура данных строго соответствует логической;
- в качестве архива хранятся несколько копий файлов;
- файлы предназначены для единственной программы;
- программист планирует не только логическую, но и физическую организацию данных;
- при изменении физической или логической организации данных программа должна перерабатываться.
Второй этап
- появились внешние устройства прямого доступа, позволившие осуществить произвольный доступ к записям (прямой, индексно-последовательный);
- вошли в употребление процедуры поиска записи по ключевому полю (обычно одному);
- стало возможным переносить файлы на другие внешние устройства без изменения прикладных программ, что обычно обеспечивалось средствами языка управления данными соответствующей операционной системы.
Третий этапЧетвертый этап
- логическая и физическая независимость данных;
- удобство развития БД;
- безопасность, секретность, целостность данных;
- поиск информации по различным запросам;
- языковые средства для администратора, прикладного программиста, пользователя-непрофессионала.
Новый этап
- дружественность и удобство работы пользователя (развитые диалоги, меню, оконный интерфейс, контекстная помощь);
- упрощение громоздких схем СУБД за счет частичной реализации ряда свойств;
- почти полный переход на реляционные СУБД;
- ориентация не только на программиста, но и на пользователя-непрофессионала;
- наличие средств автоматизации программирования в виде генераторов форм, меню, отчетов, запросов.
Классификация БД
- По форме представления информации: фактографические и документальные.
- По типу используемой модели данных: иерархические, сетевые, реляционные.
- По типологии хранения данных: локальные (централизованные) и распределённые (удалённые) БД.
Вопросы для самоконтроля:
- Дайте определения понятиям: информационная система, предметная область.
- Что называется базой данных и каково ее место в ИС?
- В чем различие между данными и метаданными?
- Каково назначение систем управления базами данных?
- Для чего используется словарь данных?
- Назовите этапы развития БД.
- Какую роль в развитии технологии БД сыграло появление ПК?
- Каковы функции СУБД?
Подводим итоги проектирования
Проектирование БД — процесс небыстрый и достаточно трудоёмкий. Во время проектирования надо хорошо знать предметную область, учитывать все нюансы. Вся информация должна отображаться в виде таких элементов, как объекты, атрибуты, связи, причём проектирование успешно лишь тогда, когда всё сделано максимально рационально.
Вообще, взгляды на проектирование среди разработчиков могут различаться. Некоторые игнорируют теорию, руководствуясь лишь опытом и здравым смыслом. Другие во время проектирования отводят главную роль интуиции, считая проектирование искусством, которым владеют далеко не все. Как бы там ни было, знания никогда не бывают лишними.
Да, реляционная база данных — это не более чем хранилище, где хранятся данные. Однако от того, как грамотно вы его организуете, будет зависеть стабильность работы всего приложения, где используются эти самые данные.
В заключение, добавим, что умение проектировать базы вам никогда не помешает. А научиться всему этому вы сможете на нашем курсе «Реляционные СУБД». Ждём вас!
Эта тема закрыта для публикации ответов.