Елена Литвак - Как научиться проектировать базы данных и остаться в живых

Как научиться проектировать базы данных и остаться в живых
Название: Как научиться проектировать базы данных и остаться в живых
Автор:
Жанр: Книги о компьютерах
Серии: Нет данных
ISBN: Нет данных
Год: Не установлен
О чем книга "Как научиться проектировать базы данных и остаться в живых"

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

Бесплатно читать онлайн Как научиться проектировать базы данных и остаться в живых


© Елена Литвак, 2021


ISBN 978-5-0053-1339-3

Создано в интеллектуальной издательской системе Ridero

Введение

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

Почему математика? Да потому, что базы данных – это чисто математический объект, который называется «реляционная алгебра». И тут, поверьте, есть от чего взорваться мозгу. В книге известного исследователя в области информационных технологий Джеффри Ульмана «Системы баз данных: полный курс» целых 1088 страниц. Проектированию на основе математического аппарата и описания реляционной алгебры посвящена примерно половина книги. Надо ли говорить, что студент второго курса обычно засыпает уже на десятой странице? А взрослый работающий человек, который хочет повысить свой скил по проектированию, просто отчаивается: «Когда я все это освою, если мне нужно уже через неделю спроектировать базу данных и показать результаты?!».

«Интуитивное» описание процесса проектирования намного проще, но оно не дает универсального подхода. Друзья, вот таблица, вот еще таблица. Эта штука называется первичный ключ. А в другой таблице есть столбец с таким же названием. Так вот их нужно соединить! Понятно? Понятно. Только вот, что делать, если у меня другая задача и другие таблицы? Кто вообще определяет, сколько у меня будет таблиц и что с чем соединять? Откуда в другой таблице взялся этот волшебный столбец? Что делать, если его там нет? На все эти вопросы «интуитивный» подход четкого ответа не дает. Он просто позволяет увидеть решение одной конкретной задачи.

Я проходила через все это сама, когда была студенткой на специальности «Прикладная математика». Я прохожу через это уже 18 лет с каждой новой группой моих студентов, которых я обучаю проектированию баз данных. На прочтение Ульмана у них просто нет ни времени, ни энтузиазма – им пять дисциплин сдавать в сессию. Да и, что тут греха таить, математика сразу вызывает стресс. А метод «я нашел в интернете» не позволяет спроектировать любую базу данных на все случаи жизни, то есть он не универсален.

За годы чтения курса баз данных на специальности «Прикладная информатика» я придумала методику проектирования, которая убивает двух зайцев сразу. С одной стороны совершенно не нужно продираться через несколько сотен страниц математики и падать в обморок от слов «кортеж», «алгебра», «нормальная форма», с другой стороны методика годится на все случаи жизни. Ну почти на все; -). Я даже рискну сказать ужасную для преподавателя вещь: если вы будете пользоваться этой методикой, вам не нужно будет думать, просто действуйте по алгоритму, и он сам приведет вас к результату. Ну что рискнем? Поехали!

Почему не нужно бояться баз данных?

Знаете почему не нужно бояться баз данных? Потому что в них нет ничего такого, чего нет в окружающем нас реальном мире. Вот смотрите, база данных проектируется для какой-то ограниченной части реального мира. Мы называем эту часть предметной областью. Например, «управление поликлиникой», «прием и отгрузка товара со склада», «управление кафе» – это все примеры предметных областей. База данных – это модель предметной области. А само слово «модель» означает, что допускаются определенные упрощения в сравнении с реальностью. В модели самолета нет таких деталей, которых нет в настоящем самолете. Наоборот, для упрощения некоторые детали в модели отсутствуют. Поэтому любая модель всегда будет проще реальности.

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

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

Сущности предметной области

Совсем без терминов все-таки не получится. И самый важный для нас термин – это сущность предметной области. Иногда еще их называют информационными объектами, но мне больше нравится слово «сущность». Так что же это такое?


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


Реальные объекты, объединенные в одну сущность, будем называть экземплярами сущности.


Как это понимать? Вот смотрите, допустим, наша предметная область – это поликлиника. Требуется разработать базу данных для ведения учета работающих врачей, пациентов и их визитов к врачам.

Иван Иванович – хирург, врач высшей категории со стажем 25 лет. А Анастасия Павловна – терапевт, врач первой категории со стажем 2 года. Оба они совершенно конкретные живые люди, с которыми можно поговорить. И чтобы рассказать о них, мы назвали их имена, специальности, категории и стаж. Таких врачей, как они, в поликлинике почти сотня и всех их мы можем назвать одним словом «врач». Врач – это и будет то абстрактное понятие, которое объединяет конкретных Ивана Ивановича, Анастасию Павловну и других их коллег. «Имя», «Специальность», «Категория» и «Стаж» – это и есть одинаковые свойства, которыми описываются разные врачи.


Свойства, которыми описывается сущность, принято называть атрибутами сущности.


Итак, мы выделили сущность «Врач» с атрибутами «Имя», «Специальность», «Категория» и «Стаж». А Иван Иванович и Анастасия Павловна являются экземплярами сущности «Врач», для которых атрибуты принимают уже конкретные значения.

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


Рис.1 Сущность «Врач»


Самое трудное в проектировании увидеть эти самые сущности. Давайте продолжим тренироваться на примере поликлиники. С врачами разобрались. А «Пациент» – это сущность? Как это выяснить? Очень просто. Задаем два вопроса и отвечаем на них:

– Реальных пациентов в поликлинике много или один? – Много. Следовательно, «пациенты» являются группой объектов.

– Разные пациенты описываются одинаковыми свойствами? – Да. У всех пациентов есть «Фамилия», «Дата рождения», «Адрес».

Следовательно, понятие «Пациент» полностью соответствует определению сущности.


Рис.2 Сущность «Пациент»


А является ли сущностью «Регистратура»? Снова задаем вопрос:


С этой книгой читают
Книга подойдет всем, кто хочет изучить язык запросов SQL, но не знает с чего начать. В ней максимально подробно, доступно с большим количеством скриншотов разобраны практические примеры на основные виды SQL-запросов. Информация разбита на семь разделов. Если неспеша изучать по одному разделу в неделю, то через два месяца вы будете человеком, который разбирается в SQL и умеет делать запросы достаточно высокой сложности. Но можно двигаться и горазд
С точки зрения инженера.Любое договорное знание.В Небытии.Настоящего.Является Софизмом.Истина непознаваема.В данной книге излагаются.Софизмы об Иннатизме и Tabula rasa.А также излагаются Софизм об Апперцепции по Канту, Софизм об Антиципации по Канту и Софизм Термодинамика..С точки зрения инженера.Настоящее.Странного Мига в Бытие.Непознаваемо.
С точки зрения инженера.Любое договорное знание.В Небытии.Настоящего.Является Софизмом.Истина, Творение, Сущее и Бытие.Непознаваемы.В данной книге излагаются.Творение Дуализма Небытия и Бытия.Трактат о Творении Дуализма.
…Поистине неисповедимы пути Господни. Мы не можем знать, куда он направит нас завтра, через месяц, через год. Как отзовется наше слово, наше действие – все это в руках и помыслах Всевышнего.Но мы точно знаем, что он нас бережет, он не дает нам испытаний, которых мы не могли бы вынести. Он ведет нас так, как надо.
В издании представлены материалы по новой перспективной технологии – мобильной электронной подписи (МЭП). В брошюре представлены теоретические основы технологии, рассмотрены перспективы и применение МЭП. И в качестве практической части – установка и применение мобильной электронной подписи.
Александр Никонов – известный популяризатор науки, журналист, публицист, писатель. Автор множества бестселлеров.В этой книге он приоткрывает завесу тайны параллельной медицины. Почему она может вылечить то, против чего бессильны Минздрав – поликлиники и больницы? Как на самом деле можно избавиться от артритов, артрозов, панкреатита и диабета, гипертонии и аритмии? Куда обращаться, если врачи ставят неутешительный диагноз? Вы узнаете:– как вылечит
Эта книга-календарь поможет вам жить так, как должен жить человек на планете Земля, – в гармонии с собой и с мирозданием. Из посланий Крайона вы узнаете, как каждый день делать шаг в наилучшем для себя направлении и наилучшим образом. Как научиться не конфликтовать ни с самим собой, ни с окружающими, ни с природой; как не совершать ошибок, обходить препятствия и легко приходить туда, где вас ждет наивысшее благо и разрешение ваших проблем. Неслож
– Как ты могла скрыть от меня, детей, Юля?! Я имею на них такое же право, что и ты! – С чего ты взял, что имеешь? Ты развелся со мной! Выбросил на улицу без объяснения причин. Завел себе интрижку! Аня и Ваня только мои дети! И не смей к нам больше приближаться, они не твои. – Не мои, – Стас зло прищуривается, – что ж, проверим. Мы были женаты всего год, планировали ребенка. Но в один день Стас выкинул меня из своей жизни, подав на развод. Уже по
- Позавтракай и поговорим. - О чем? Пара минут и меня здесь не будет. Я знаю правила игры. - Ничего ты не знаешь, Настенька, - Вадим усмехается. - Завтра ты обо мне и не вспомнишь. - Нет, - отвечает он без эмоционально и твердо. - Если ты беспокоишься насчёт того, что мы ночью делали, - мой голос становится тише, - так не переживай, я никому не скажу. Да я даже фамилии твоей не знаю и кто ты. - Сафронов Вадим. - Мне это все равно ни о чем не