Изучаем управление базами данных: — 7 лучших бесплатных систем с открытым исходным кодом

5 последних уроков рубрики «Разное»

  • Выбрать хороший хостинг для своего сайта достаточно сложная задача. Особенно сейчас, когда на рынке услуг хостинга действует несколько сотен игроков с очень привлекательными предложениями. Хорошим вариантом является лидер рейтинга Хостинг Ниндзя — Макхост.

  • Как разместить свой сайт на хостинге? Правильно выбранный хороший хостинг — это будущее Ваших сайтов

    Проект готов, Все проверено на локальном сервере OpenServer и можно переносить сайт на хостинг. Вот только какую компанию выбрать? Предлагаю рассмотреть хостинг fornex.com. Отличное место для твоего проекта с перспективами бурного роста.

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

  • Подборка из нескольких десятков ресурсов для создания мокапов и прототипов.

Типы движков баз данных MySQL

Каждый из примеров создания таблицы в этой статье до этого момента включал в себя определение ENGINE= . MySQL поставляется с несколькими различными движками баз данных, каждый из которых имеет свои преимущества. Используя директиву ENGINE =, можно выбрать, какой движок использовать для каждой таблицы. В настоящее время доступны следующие движки баз данных MySQL:

  • InnoDB — был представлен вMySQL версии 4.0 и классифицирован как безопасная среда для транзакций.Ее механизм гарантирует, что все транзакции будут завершены на 100%. При этом частично завершенные транзакции (например, в результате отказа сервера или сбоя питания) не будут записаны. Недостатком InnoDB является отсутствие поддержки полнотекстового поиска.
  • MyISAM — высокопроизводительный движок с поддержкой полнотекстового поиска. Эта производительность и функциональность обеспечивается за счет отсутствия безопасности транзакций.
  • MEMORY— с точки зрения функционала эквивалентен MyISAM, за исключением того, что все данные хранятся в оперативной памяти, а не на жестком диске. Это обеспечивает высокую скорость обработки. Временный характер данных, сохраняемых в оперативной памяти, делает движок MEMORY более подходящим для временного хранения таблиц.

Движки различных типов могут сочетаться в одной базе данных. Например, некоторые таблицы могут использовать движок InnoDB, а другие — MyISAM. Если во время создания таблицы движок не указывается, то по умолчанию MySQL будет использовать MyISAM.

Чтобы указать тип движка, который будет использоваться для таблицы, о поместите соответствующее определение ENGINE= после определения столбцов таблицы:

CREATE TABLE tmp_orders
{
tmp_number   int    NOT_NULL,
tmp_quantity    int    NOT_NULL,
tmp_desc     char(20) NOT_NULL,
      PRIMARY KEY (tmp_number)
) ENGINE=MEMORY;

Пожалуйста, опубликуйте ваши комментарии по текущей теме статьи. За комментарии, отклики, лайки, дизлайки, подписки низкий вам поклон!

Вадим Дворниковавтор-переводчик статьи «Creating Databases and Tables Using SQL Commands»

Что такое MySQL

MySQL — это реляционная база данных (СУБД). Реляционная — значит внутри неё есть данные, которые связаны между собой, и эту связь можно представить в виде таблиц. 

Технически MySQL — это много таблиц, как-то связанных между собой. Например, одна отвечает за товары, другая — за покупки, третья — за клиентов. Вот картинка из нашей обзорной статьи:

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

Всё, что мы делаем в MySQL, — создаём таблицы с данными и настраиваем связи между ними.

1 Анализ предметной области

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

  1. репертуар и расписание проката кинотеатра должен кто-то вносить в систему — соответствующую роль назовем «Менеджер»;
  2. посетитель и кассир должны иметь возможность просматривать расписание, при этом интересно расписание, начиная с некоторого момента времени (например, текущего времени). Составлять оно может по-разному:
    1. расписание показа всех фильмов, упорядоченное по времени;
    2. расписание прокатов в отдельных залах кинотеатра;
    3. расписание проката определенного фильма.

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

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

Каждая сущность, кроме hall_row содержит поле id, которое идентифицирует объект. У сущности hall_row поле id не нужно, так как в одном и том же зале кинотеатра (id_hall) не могут повторяться номера рядов (number).

Когда пользователь выберет зал и прокат — система должна отобразить заполненность зала, при этом надо отобразить конфигурацию зала с пометкой занятых и свободных мест. Под конфигурацией зала тут имеется ввиду, что разные залы имеют разный размер, а ряды зала могут иметь различное количество мест. Поэтому в базе данных зал (hall) составляется из рядов (hall_row), одним из параметров которых является вместимость (capacity).

Способы создания шаблонной базы в 1С

Создать чистую базу в «1С: Предприятие» версия 8.3 можно на основе имеющейся конфигурации. Для примера, были проведены доработки, и база стала не типовой. Однако появилось потребность в отдельной базе для работы с новой организацией.

Шаблон конфигурации, который есть в наборе «1С: Предприятие», можно использовать для любой конфигурации, помимо «1С: Бухгалтерия». Чтобы сформировать чистую базу для конфигураций «1С: Зарплата и Управление Персоналом» и «1С: Бухгалтерия», можно воспользоваться следующими способами.

Создание на основе текущей конфигурации (той, которая сейчас используется)

Необходимо открыть базу, кликнув на значок «Конфигуратор» (см. рис. 1). После – кликнуть на строчку «Сохранить конфигурацию в файл», расположенную в подменю «Конфигурация» (см. рис. 2).

При неактивной кнопке «Сохранить», изначально откройте конфигурацию (см. рис. 3). После этого кнопка активируется, и можно будет проводить сохранение. В папке, которая используется для сохранения, появится 1Cv8.cf файл.
 


Теперь необходимо вновь перейти к окошку для запуска создания пустой базы. Здесь ставится галочка на строке формирования новой информационной базы (выбирается та, что без конфигурации). Выбирается требующееся название и путь к размещению базы. После останется кликнуть на строчку «Готово» (см. рис. 4).  


После этого нужно в режиме конфигуратора открыть базу. Отыщите строку «Загрузить конфигурацию из файла» в меню конфигурации, откройте сохраненный ранее файл и кликайте на кнопку «Открыть» (см. рис. 5).

Далее следует провести обновление конфигурации информационной базы, согласиться со всеми изменениями (см. рис. 6). Откройте в режиме предприятия базу, ожидайте исполнения изначального заполнения (см. рис. 7). Пустая база успешно создана. 

Создание базы из шаблона на примере ЗУП

Перейдите на сайт ИТС. Вам необходимо найти подраздел с названием «Скачать обновление программ», расположенный в меню «1С: Обновление программ». Кликайте на строку «Типовые конфигурации фирмы 1С для РФ», ищите нужную конфигурацию (см. рис. 8). В нашем случае нам нужна конфигурация «1С: Зарплата и Управление Персоналом».

Выбираем последнюю версию софта, далее – полный дистрибутив  и загружаем его на ПК (см. рис. 9).

В полученном файле будет setup файл (см. рис. 10). Откройте его, выбрав путь установочного файла по умолчанию (см. рис. 11).

Теперь необходимо открыть окошко запуска программы «1С», и добавить новую базу аналогичным путем. Однако в разделе выбора базы, указать «из шаблона». Если шаблонов больше одного (см. рис. 12), нужно выбрать желаемый шаблон, ввести название и путь базы. После следует кликнуть на кнопку «Готово» и ждать. К работе с базой можно будет приступать сразу, после изначального заполнения.

Остались вопросы? Закажите консультацию наших специалистов!

Перенумерация документов в 1С 8.3 Бухгалтерия
Как сделать свертку базы 1С 8.3 Бухгалтерия

Хранение ссылок на объекты

При манипулировании данными, хранящимися в базе данных «1С:Предприятия 8», зачастую используется объектный подход. Это значит, что обращение (чтение и запись) к некоторой совокупности данных, хранящихся в базе, происходит как к единому целому. Например, используя объектную технику, можно манипулировать данными справочников, документов, планов видов характеристик, планов счетов и т.д.

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

Эта ссылка также хранится в поле базы данных, вместе с остальными данными объекта. Кроме того, ссылка может быть использована как значение какого-либо поля другого объекта. Например, ссылка на объект справочника Контрагенты может быть использована как значение соответствующего реквизита документа Приходная накладная.

SQL Учебник

SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии

Как создать базу данных Microsoft Access 2010. Работа с БД пошагово

База данных является информационной моделью предметной области.

· Фактографичная – эта БД предназначена для сохранения данных в виде чисел и текстов.

· Документальная – запись, которой отражает документ, содержит библиографическое описание и другие данные.

· Централизованная – это БД, которая хранится в памяти ядерного компьютера, если этот компьютер является компьютером сети, то возможно распределение к компонентам сети.

· Распределительная – эта БД состоит из множества кусков в различных компьютерных сетях.

Модель — это способ выражения логического представления физических данных.

Есть 3 основных типа моделей данных:

Объекты базы данн ых в Microsoft Access

К объектам принадлежит:

· Таблица — это основной структурный элемент содержащий данные.

· Форма — это объект, отражающий все данные в нужном для пользователя виде, формы которого содержат элементы управления.

· Отчет — это наиболее удачный вариант отображения данных на экране или бумаге.

· Запрос — используют для просмотра изменения анализа данных различными способами.

· Макрос используют для элементов управления, созданных языке Visual Basic for Application (VBA).

Таблицы. Режимы создания таблиц в Microsoft Access

Есть такие режимы создания таблиц:

· Мастер создания таблиц.

· Связь с таблицами.

Как создать таблицу пошагово. Создание таблиц в режиме конструктора в Microsoft Access

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

Окно режима конструктора состоит из 2 частей.

· Верхняя часть содержит:

1. Имя поля (Имя поля не может содержать . ! ‘ и не может начинаться с пробела).

· Нижняя часть содержит свойства полей.

Типы данных в Microsoft Access

· Текстовый (максимально 256 символов).

· Поле МЕМО (от англ. слова память; максимально 54 тыс. символов).

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

· Логический (0 или 1; да или нет).

· Поле объекта (фото, видео, музыка). Сам объект не отображается, а отображается только ссылка на него.

· Гиперссылка — это специальное поле для сохранения веб-адресов объектов или ссылки на внешние объекты.

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

Свойства полей в Microsoft Access

· Размер поля используется для текстовых и числовых данных.

· Формат поля способ отображения данных.

· Маска ввода определяет форму, в которой вводятся данные. Подпись определяет заголовок поля в удобном виде.

· Значение по умолчанию.

· Условие на значение.

· Сообщение об ошибке.

Символы для создания масок в Microsoft Access

0 – цифра, введение обязательное (+ — не допускается).

9 – цифра или пробел, введение необязательное (+ — не допускается).

# – цифра или пробел, введение необязательное, пустые знаки превращаются в пробелы (+ — допускается).

L – буква, от А до Я от А до С, введение обязательное.

? – те же буквы, введение необязательное.

A – буква или цифра, введение обязательное.

A – буква или цифра, введение необязательное.

& – любой знак или пропуск, введение обязательное.

C – любой знак или пробел, введение необязательное.

/ – десятых тысяч, дат и времени.

Структура базы данных: построение блоков

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

Чтобы преобразовать списки данных в таблицы, начните с создания таблицы для каждого типа объектов, таких как товары, продажи, клиенты и заказы. Вот пример:

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

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

  • CHAR — конкретная длина текста;
  • VARCHAR — текст различной длины;
  • TEXT — большой объем текста;
  • INT — положительное или отрицательное целое число;
  • FLOAT, DOUBLE — числа с плавающей запятой;
  • BLOB — двоичные данные.

Некоторые СУБД также предлагают тип данных Autonumber, который автоматически генерирует уникальный номер в каждой строке.

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

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

Атрибуты, выбранные в качестве первичных ключей, должны быть уникальными, неизменяемыми и для них не может быть задано значение NULL (они не могут быть пустыми). По этой причине номера заказов и имена пользователей являются подходящими первичными ключами, а номера телефонов или адреса — нет. Также можно использовать в качестве первичного ключа несколько полей одновременно (это называется составным ключом).

Когда придет время создавать фактическую БД, вы реализуете как логическую, так и физическую структуру через язык определения данных, поддерживаемый вашей СУБД.

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

Что такое база знаний?

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

База знаний может быть внутренней (только для сотрудников компании) и внешней (для клиентов). Мы поговорим именно о такой базе знаний, которую пользователи видят на вашем сайте. Она может называться по-разному: FAQ (часто задаваемые вопросы), справочный центр, центр поддержки, справка, помощь, справка и поддержка — но суть одна и та же. Это раздел на сайте, который содержит информационные статьи для ваших пользователей.

Как работают связи в базе данных

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

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

Один ко многим. Когда у нас есть таблица с клиентами и таблица с их покупками, тут работает связь «один ко многим». Это значит, что у нас одной записи о клиенте соответствует несколько записей об их покупках, например, если он их сделал в разное время. Благодаря этой связи мы можем вывести все покупки для каждого клиента в отдельности.

Ещё пример — художники и картины. Каждая картина принадлежит только одному художнику, но одному художнику может принадлежать много разных картин. 

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

Допустим, вы ведёте свой список дел в ежедневнике, где можно ставить метки для дел. Метки помогают понять, что за дело перед вами, и выглядят примерно так: «в дороге», «позвонить», «на неделе», «подписать у Иваныча» и «за компьютером». Их можно назначить любой задаче — одну метку, две или все сразу. Получается так:

  • одна метка может стоять на множестве разных задач
  • у одной задачи может быть много разных меток. 

Это значит, что мы связали множество меток со множеством задач и теперь можем искать одно через другое.

Назначение и возможности СУБД mysql

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

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

Таблицы позволяют при обработке информации увеличить:

  • оперативность;
  • гибкость;
  • быстродействие.

Созданная БД в mysql характеризуется:

  • быстротой обработки и поддержкой больших объемов данных;
  • простотой и надежностью в использовании;
  • наличием богатого набора полезных свойств;
  • поддержкой работы практически во всех операционных системах.

СУБД mysql эффективно применяется в самых разнообразных отраслях и направлениях.

Удаление базы данных в Microsoft SQL Server

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

В случае с графическим интерфейсом необходимо в обозревателе объектов щелкнуть правой кнопкой мыши по нужной базе данных и выбрать пункт «Удалить».

В окне «Удаление объекта» нажимаем «ОК». Для принудительного закрытия существующих подключений к БД можете поставить галочку «Закрыть существующие соединения».

В случае с T-SQL, для удаления базы данных достаточно написать следующую инструкцию (в БД также никто не должен работать).

   
   DROP DATABASE TestDB;

Где DROP DATABASE — это инструкция для удаления базы данных, TestDB – имя базы данных. Иными словами, командой DROP объекты на SQL сервере удаляются.

Где их используют

Базы данных сейчас используются почти везде:

  • На сайтах, чтобы хранить контент для страниц. Все статьи в «Коде» на самом деле хранятся в базе данных и извлекаются оттуда по вашему запросу.
  • В смартфонах, чтобы хранить все ваши данные — фото, сообщения, заметки, контакты и музыку. Так как всего этого много, а доступ к этому должен быть молниеносный, используют разные виды СУБД.
  • В почтовых сервисах, чтобы можно было найти нужное письмо. Там строятся сложные индексные массивы, по которым ваш почтовый клиент ищет данные.
  • Везде, где есть личные кабинеты и регистрация, — чтобы запоминать пользователей и отличать их друг от друга.
  • В соцсетях и блогах почти всё хранится в базах данных.

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

Создание резервной копии и восстановление из бэкапа

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

pg_dump -h хост -U имя_роли -F формат_дампа -f путь_к_дампу имя_БД

Чтобы было проще разобраться, рассмотрим каждый параметр:

  • хост – сервер, на котором располагается БД. Например, можно указать localhost, домен, IP-адрес.
  • имя_роли – имя пользователя PostgreSQL, под которым мы работаем с базой данных.
  • формат_дампа – формат, в котором дамп сохранится на сервере. Доступны следующие форматы: c (custom) – архив .tar.gz, t (tar) – архив .tar, p (plain) – текст без сжатия, обычно .sql.
  • путь_к_дампу – путь, по которому будет сохранена резервная копия.
  • имя_БД – название БД, для которой будет создана резервная копия.

Выглядит это примерно так:

pg_dump -h localhost -U mybase -F c -f /home/user/backups/dump.tar.gz mybase

Для выполнения этой команды нужно ввести пароль, который используется при входе в psql от имени указанной роли (mybase в приведенном примере).

Восстановление из резервной копии выполняется аналогичным образом: 

pg_restore -h хост -U имя_роли -F формат_дампа -d имя_базы путь_к_дампу

Параметры похожие, отличия минимальные

Важно знать хост, помнить формат и путь к бэкапу

Мы разобрались с основными действиями и настройками PostgreSQL. На этом все! 

Создание и обновление структур данных на основе метаданных

В процессе создания или модификации прикладного решения разработчик избавлен от необходимости каких-либо действий по непосредственному изменению структуры полей базы данных прикладного решения.

Разработчику достаточно путем визуального конструирования описать структуру используемых объектов прикладного решения, состав их реквизитов, табличных частей, форм и пр.

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

Например, для того, чтобы в справочнике сотрудников появилась возможность хранить сведения о составе семьи сотрудника, разработчику «1С:Предприятия 8» не нужно создавать в базе данных специальную новую таблицу, задавать правила, по которым данные, хранящиеся в этой таблице, будут связаны с данными из основной таблицы, программировать алгоритмы совместного доступа к данным этих таблиц, создавать алгоритмы проверки прав доступа к данным, находящимся в подчиненной таблице и пр.

Все, что требуется сделать разработчику — щелчком мыши добавить к справочнику табличную часть и задать два ее строковых реквизита: Имя и Родство. При сохранении или обновлении конфигурации платформа самостоятельно выполнит реорганизацию структуры базы данных, создаст необходимые таблицы и т.д.

Проектирование баз данных

Проектирование — самая трудная задача при работе с данными. Оно заключается не только в том, чтобы создать таблицу, указав наименование столбцов и тип данных. Это гораздо более сложный процесс, требующий специализированных знаний и умений. Говоря о типах баз данных в столбцах, подразумевается, например, способ их записи, который бывает символьный (строковый), числовой, календарный, NULL.

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

2 Построение концептуальной модели

Выше были отображены основные сущности, но не отображены роли пользователей, хотя их тоже должна хранить система. Они показаны ниже на ER-диаграмме в нотации Чена .

На диаграмме выделены роли кассира и менеджера, а также основные отношения между сущностями. На диаграмме нет роли администратора, но его роль заключается в:

  1. создании всех таблиц базы;
  2. добавлении залов и рядов в них;
  3. добавлении кассиров и менеджеров.

На диаграмме не отражена роль посетителя, так как:

  1. билет не содержит информации о том, кто его купил (посетитель может подарить билет другу);
  2. система вообще не хранит информацию о посетителях;
  3. покупку билета он осуществляет через общение с кассиром вне системы;
  4. никакие данные в базе посетитель самостоятельно изменить не может.

На диаграмме проставлены кратности связей, например, видно, что один менеджер может добавить много (N) прокатов. В этой базе не оказалось связей типа N:M, сложных или рекурсивных связей — такие связи являются препятствиями в проектировании и решаются изменением ее структуры.

Для формирования схемы данных необходимо сначала дополнить ER-диаграмму реквизитами сущностей (уточнить ее) — результат приведен на рисунке.

  • система не должна позволять продавать несколько билетов на одно и то же место при одном показе фильма. Это значит, что вторичным ключем для Билета должен быть кортеж (id_screening, row, seat). Однако, тогда нет необходимости в id билета — на билеты не ссылается ни одна таблица, это поле может быть удалено. Изначально id был добавлен потому, что обычно на билетах в кинотеатрах печатается номер;
  • билет хранит поле id_hall, это было сделано для того, чтобы посетитель кинотеатра мог найти свой кинозал. Однако, билет, выдаваемый пользователю — это не тоже самое, что информация о билетах, хранимая в базе данных. Билет базы данных хранит также поле id_screening, а Показ уже ссылается на id_hall. Таким образом, в базе нет смысла хранить id_hall в таблице билетов.

Исправленная ER-диаграмма приведена ниже:

Таблица менеджеров и кассиров не объединены в таблицу Users так как вопросы разграничения прав доступа в различных СУБД решаются по-разному. Так, в MS SQL пользователи добавляются с помощью специальных запросов типа:

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector