Лекция № 17 БАЗЫ ДАННЫХ – ОСНОВА ИНФОРМАЦИОННОЙ СИСТЕМ
ПЛАН
1. База данных - основа информационной системы.
2. Проектирование многотабличной базы данных.
3. Создание базы данных.
1 База данных - основа информационной системы
Что такое база данных
Основой для многих информационных систем (прежде всего, информационно-справочных систем) являются базы данных.
База данных (БД) - это совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы и отражающих состояние и взаимодействие объектов в определенной предметной области.
Под вычислительной системой здесь понимается отдельный компьютер или компьютерная сеть. В первом случае база данных называется централизованной, во втором случае - распределенной.
База данных является компьютерной информационной моделью некоторой реальной системы. Например, книжного фонда библиотеки, кадрового состава предприятия, учебного процесса в школе и т. д. Такую систему называют предметной областью базы данных и информационной системы, в которую БД входит.
Описание структуры данных, хранимых в БД, называется моделью представления данных, или моделью данных. В теории БД известны три классические модели данных: иерархическая, сетевая и реляционная (табличная). По виду используемой моде ли данных базы данных делятся на иерархические, сетевые и реляционные (табличные).
В последние годы при разработке информационных систем ста ли использоваться и другие виды моделей данных. К ним относятся объектно-ориентированные, объектно-реляционные, многомерные и другие модели. Классическим вариантом, и пока наиболее распространенным, остается реляционная модель. В курсе информатики основной школы вы уже знакомились с основами реляционных БД. Вспомним главные понятия, связанные с ними.
Реляционная модель данных
Основной информационной единицей реляционной БД является таблица. База данных может состоять из одной таблицы (одно табличная БД) или из множества взаимосвязанных таблиц (многотабличная БД). Структурными составляющими таблицы являются записи и поля.
Каждая запись содержит информацию об отдельном объекте системы: одной книге в библиотеке, одном сотруднике предприятия и т. п. А каждое поле - это определенная характеристика (свойство, атрибут) объекта: название книги, автор книги, фамилия сотрудника, год рождения и т. п. Поля таблицы должны иметь несовпадающие имена.
В одной таблице не должно быть повторяющихся записей. Для каждой таблицы реляционной БД определяется главный ключ - поле или совокупность полей, однозначно определяющих запись. Иначе говоря, значение главного ключа не должно повторяться в разных записях. Например, в библиотечной базе данных в качестве такого ключа может быть выбран инвентарный номер книги, который не может совпадать у разных книг.
Для строчного представления структуры таблицы применяется следующая форма:
ИМЯ_ТАБЛИЦЫ
(ИМЯ_ПОЛЯ 1, ИМЯ_ПОЛЯ_2, ... ,
ИМЯ_ПОЛЯ_N)
Подчеркиваются поля, составляющие главный ключ.
В теории реляционных баз данных таблица называется отношением. Отношение по-английски - relation. Отсюда происходит название «реляционные базы данных». ИМЯ_ТАБЛИЦЫ в нашем примере - это имя отношения. Примеры отношений:
БИБЛИОТЕКА
(ИНВ_НОМЕР, АВТОР, НАЗВАНИЕ,
ГОД_ИЗД, ИЗДАТЕЛЬСТВО)
БОЛЬНИЦА
(ПАЛАТА, НОМЕР_МЕСТА, ПАЦИЕНТ,
ДАТА_ПОСТУП, ДИАГНОЗ, ПЕРВИЧНЫЙ)
Каждое поле таблицы имеет определенный тип. С типом связаны два свойства поля:
1) множество значений, которые оно может принимать;
2) множество операций, которые над ним можно выполнять.
Поле имеет также формат (длину). Существуют четыре основных типа для полей БД: символьный, числовой, логический и дата. Для полей таблиц БИБЛИОТЕКА и БОЛЬНИЦА могут быть установлены следующие типы:
символьный тип: АВТОР, НАЗВАНИЕ, ИЗДАТЕЛЬСТВО,
ПАЦИЕНТ, ДИАГНОЗ;
числовой тип: ИНВ_НОМЕР, ГОД_ИЗД, ПАЛАТА,
НОМЕР_МЕСТА;
дата: ДАТА_ПОСТУП;
логический: ПЕРВИЧНЫЙ.
В нашем случае поле ПЕРВИЧНЫЙ показывает, поступил больной в больницу с данным диагнозом впервые или повторно. Те записи, где значение этого поля равно TRUE (ИСТИНА), относятся к первичным больным, значение FALSE (ЛОЖЬ) отмечает повторных больных. Таким образом, поле логического типа может принимать только два значения.
В таблице БОЛЬНИЦА используется составной ключ - состоящий из двух полей: ПАЛАТА и НОМЕР_МЕСТА. Только их сочетание не повторяется в разных записях (ведь фамилии пациентов могут совпадать). Система управления базами данных (СУБД)
Система управления базами данных (СУБД)
Система управления базами данных (СУБД) - комплекс языковых и программных средств, предназначенных для создания, ведения и использования базы данных многими пользователями.
В зависимости от вида используемой модели данных различаются иерархические, сетевые и реляционные СУБД.
Наибольшее распространение на персональных компьютерах получили так называемые полнофункциональные реляционные СУБД. Они выполняют одновременно как функцию системных средств, так и функцию пользовательского инструмента для создания приложений. Примером СУБД такого типа является Microsoft Access.
Полноценная информационная система на компьютере состоит из трех частей:
СУБД + база данных + приложения.
Основные действия, которые пользователь может выполнять с помощью СУБД:
• создание структуры базы данных;
• заполнение базы данных информацией;
• изменение (редактирование) структуры и содержания базы данных;
• поиск информации в БД;
• сортировка данных.
Система основных понятий
2 Проектирование многотабличной базы данных
Рассмотрим на конкретном примере методику проектирования многотабличной базы данных. Для этого снова вернемся к за даче моделирования работы с информацией, выполняемой прием ной комиссией при поступлении абитуриентов в университет (Л16. § 3 Пример структурной модели предметной области).
Табличная форма модели данных
В§ 3 была построена модель данных, состоящая из трех взаимосвязанных таблиц. Воспроизведем ее еще раз.
Эти три таблицы можно рассматривать как модель данных в реляционной СУБД. Но работать с БД в таком виде неудобно. Помимо того что реляционная БД должна состоять из таблиц, к ней предъявляется еще ряд требований.
Одним из главных требований является требование отсутствия избыточности (или минимизация избыточности) данных. Избыточность приводит к лишнему расходу памяти. Память нужно экономить. Это не только увеличивает информационную плотность базы данных, но и сокращает время поиска и обработки данных.
Очевидный недостаток описанных таблиц - многократное повторение длинных значений полей в разных записях. Например, название специальности «Радиофизика и электроника» будет повторяться в 100 записях для 100 абитуриентов, которые на нее поступают. Проще сделать так. В таблице СПЕЦИАЛЬНОСТИ для каждой специальности ввести
свой короткий код. Тогда полное название запишется в БД только один раз, а в анкетах абитуриентов будет указываться только код. Точно так же можно закодировать названия факультетов.
Внесем изменения в таблицы ФАКУЛЬТЕТЫ и СПЕЦИАЛЬНОСТИ.
Здесь предполагаются два упрощающих допущения: пусть на разных специальностях одного факультета сдаются одни и те же экзамены, а число экзаменов на всех факультетах равно трем (это вполне разумно).
Очень неудобной для работы является таблица АБИТУРИЕНТЫ. В ней слишком много полей. В частности, такую таблицу неудобно будет просматривать на экране, легко запутаться в полях.
Поступим следующим образом. Разделим «большую» таблицу АБИТУРИЕНТЫ на четыре таблицы поменьше:
С такими таблицами работать гораздо проще. На разных этапах работы приемной комиссии каждая из этих таблиц будет иметь самостоятельное значение.
Таблица АНКЕТЫ содержит анкетные данные, не влияющие на зачисление абитуриента в вуз. В таблице АБИТУРИЕНТЫ содержатся сведения, определяющие, куда поступает абитуриент, а так же данные, которые могут повлиять на его зачисление (предположим, что это может быть производственный стаж и наличие медали). Таблица ОЦЕНКИ - это ведомость, которая будет заполняться для всех абитуриентов в процессе приема экзаменов. Таблица ИТОГИ будет содержать результаты зачисления всех абитуриентов.
Отношения и связи
Каждая из спроектированных выше таблиц будет представлена в БД отдельным отношением. Опишем все их в строчной фор ме, дав в некоторых случаях полям сокращенные имена и под черкнув главные ключи.
ФАКУЛЬТЕТЫ (КОД_
ФКТ, ФАКУЛЬТЕТ, ЭК3АМЕН_l ,
ЭКАМЕН_2 , ЭК3АМЕН_3)
СПЕЦИАЛЬНОСТИ
(КОД_ СПЕЦ, СПЕЦИАЛЬНОСТЬ,
КОД_ФКТ, ПЛАН)
АБИТУРИЕНТЫ
(РЕГ _НОМ, КОД_ СПЕЦ, МЕДАЛЬ, СТАЖ)
АНКЕТЫ
(РЕГ_НОМ, ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО,
ДАТА_РОЖД, ГОРОД, УЧ_3АВЕДЕНИЕ)
ОЦЕНКИ
(РЕГ_НОМ, ОЦЕНКА_l , ОЦЕНКА_2 , ОЦЕНКА_3)
Чтобы эти шесть таблиц представляли собой систему, между ними должны быть установлены связи.
Фактически связи уже имеются через общие имена полей. Первые два отношения связаны между собой кодом факультета, второе и третье - кодом специальности, а четыре последних - регистрационным номером. Связи позволяют определить соответствия между любыми данными в этих таблицах, например между фамилией некоторого абитуриента и его оценкой по математике; между названием города и результатами экзамена по русскому языку выпускников школ этого города и пр. Благодаря этим связям возможно получение ответов на запросы, требующие поиска информации в нескольких таблицах одновременно.
Схема базы данных
Для явного указания связей между таблицами должна быть построена схема базы данных. В схеме указывается наличие связей между таблицами и типы связей. Схема для нашей системы представлена на рис . 1.11.
Рис. 1.11. Схема базы данных
В схеме использованы два типа связей: один к одному и один ко многим. Первый обозначен двунаправленной одинарной стрел кой, второй - одинарной стрелкой в одну сторону и двойной в другую. При связи «один к одному» с одной записью в таблице связана одна запись в другой таблице . Например, одна запись об абитуриенте связана с одним списком оценок. При наличии связи «один ко многим» одна запись в некоторой таблице связана с множеством записей в другой таблице . Например, с одним факультетом связано множество специальностей, а с одной специальностью - множество абитуриентов, поступающих на эту специальность.
Связь «один ко многим» - это связь между двумя соседними уровнями иерархической структуры. А таблицы, связанные отношениями «один к одному», находятся на одном уровне иерархии. В принципе все они могут быть объединены в одну таблицу, поскольку главный ключ у них один – РЕГ_ НОМ. Но чем это неудобно, было объяснено выше.
Что такое целостность данных
СУБД поддерживает организацию связей между таблицами БД, обеспечивающую одно важное свойство базы данных, которое называется целостностью данных.
Система не допустит, чтобы одноименные поля в разных связанных между собой таблицах имели разные значения. Согласно этому принципу, будет автоматически контролироваться ввод данных. В связанных таблицах может быть установлен режим каскад ной замены: если в одной из таблиц изменяется значение поля, по которому установлена связь, то в других таблицах одноименные поля автоматически изменят свои значения. Аналогично действует режим каскадного удаления: достаточно удалить запись из одной таблицы, чтобы связанные записи исчезли из всех остальных таблиц. Это естественно, поскольку, например, если закрывается ка кой-то факультет, то исчезают и все его специальности. Или если у абитуриента изменяют регистрационный номер в таблице АБИТУРИЕНТЫ, то автоматически номер должен обновиться и в других таблицах.
На этом проектирование базы данных завершается. Это был теоретический этап. Практическая работа по созданию базы данных будет проходить в рамках компьютерного практикума.
Система основных понятий
3 Создание базы данных
База данных создается средствами СУБД. Создание происходит в два этапа.
1) Построение структуры таблиц и установка связей.
2) Ввод данных в таблицы. На первом этапе в каждой таблице определяются имена по лей, их типы и форматы. Совсем не обязательно все таблицы БД должны быть построены одновременно. В нашем примере на начальном этапе работы приемной комиссии могут быть созданы таблицы ФАКУЛЬТЕТЫ и СПЕЦИАЛЬНОСТИ. Структуры этих таблиц представлены в табл. 1 . 3 и 1 .4.
Таблица 1.3 - ФАКУЛЬТЕТЫ - структура таблицы
Таблица 1.4 - СПЕЦИАЛЬНОСТИ - структура таблицы
Затем средствами СУБД устанавливаются связи между таблицами через общее поле КОД_ ФКТ.
После этого таблицы можно заполнять данными. Современные СУБД предоставляют пользователю удобные средства ввода. Данные можно вводить непосредственно в строки таблиц, отражаемых на экране, или через диалоговые окна - формы (рис.1.12). В процессе ввода данных СУБД осуществляет автоматический контроль соответствия вводимых данных объявленным типам и форматам полей.
В таблице 1. 5 приведены первые три записи таблицы ФАКУЛЬТЕТЫ, а в табл. 1.6 - шесть записей таблицы СПЕЦИАЛЬНОСТИ.
Рис. 1.12. Форма для ввода, просмотра и редактирования таблицы
Таблица 1.5 - ФАКУЛЬТЕТЫ
Таблица 1.6 - СПЕЦИАЛЬНОСТИ
На этапе приема документов в базу данных будут добавлены таблицы АНКЕТЫ и АБИТУРИЕНТЫ . Их структуры представлены в табл. 1. 7 и 1 .8. Таблица 1.7 АНКЕТЫ - структура таблицы
Таблица 1.8 - АБИТУРИЕНТЫ - структура таблицы
После установки связей таблицы будут заполняться данными. Первые двенадцать записей в этих таблицах приведены в табл. 1.9 и 1 . 10.
Таблица 1.9 – АНКЕТЫ
Таблица 1.10 – АБИТУРИЕНТЫ
Когда начнутся приемные экзамены, понадобится таблица ОЦЕНКИ. Опишем ее структуру в табл. 1.11 .
Таблица 1.11 ОЦЕНКИ - структура таблицы
Тип «байтовый» является разновидностью типа «целый». Он применяется для целых положительных чисел в диапазоне от 0 до 255 и занимает в памяти 1 байт. Поскольку оценки принимают значения от 2 до 5, этот тип оказывается наиболее «экономным».
А вот какой вид (после установки связи с таблицей АБИТУРИЕНТЫ и ввода данных) примет таблица с результатами сдачи экзаменов перечисленными выше двенадцатью абитуриентами - табл. 1.12 (здесь 0 - неявка на экзамен).
Таблица 1.12 - ОЦЕНКИ
И наконец, осталось создать таблицу ИТОГИ для занесения в нее результатов зачисления абитуриентов в университет. Структура ее описана в табл. 1.13.
Таблица 1.13 ИТОГИ - структура таблицы
Содержание таблицы приведено в табл. 1.14.
Таблица 1.14 - ИТОГИ
Логические значения поля ЗАЧИСЛЕНИЕ первоначально отмечаются пустыми квадратиками, обозначающими ЛОЖЬ («нет») (значение по умолчанию логического поля - ЛОЖЬ). После объявления итогов для принятых абитуриентов это значение будет заменено на значение ИСТИНА («да») - будет выставлена галочка. Осталось подключить эту таблицу к схеме через поле РЕГ нам.
Система основных понятий
ВОПРОСЫ И ЗАДАНИЯ
1. База данных - основа информационной системы
1. а) Для чего предназначены базы данных? Выберите верный ответ:
1) для выполнения вычислений на компьютере;
2) для осуществления хранения, поиска и сортировки данных;
3) для принятия управляющих решений.
б) Какие существуют варианты классификации БД?
в) Почему реляционный вид БД является наиболее распространенным?
г) Что такое запись в реляционной БД?
д) Что такое поле, тип поля; какие бывают типы полей?
е) Что такое главный ключ записи?
2. Определите главный ключ и типы полей в следующих отношениях: АВТОБУСЫ (НОМЕР МАРШРУТА, НАЧАЛЬНАЯ ОСТАНОВКА,
КОНЕЧНАЯ ОСТАНОВКА)
КИНО (КИНОТЕАТР, СЕАНС, ФИЛЬМ, РОССИЙСКИЙ,
ДЛИТЕЛЬНОСТЬ)
УРОКИ (ДЕНЬ НЕДЕЛИ, НОМЕР УРОКА, КЛАСС, ПРЕДМЕТ,
ПРЕПОДАВАТЕЛЬ)
3. Опишите структуру записей (имена полей, типы полей, главные ключи) для баз данных: РЕЙСЫ САМОЛЕТОВ, ШКОЛЫ ГОРОДА, СТРАНЫ МИРА.
2. Проектирование многотабличной базы данных
1. а) Перечислите задачи, которые должна решать проектируемая информационная система « Приемная комиссия ».
б) Какие информационные процессы происходят на различных этапах приемной кампании в техникуме?
в) Какая информация добавляется к базе данных на каждом этапе?
2. а) В чем заключается построение модели данных?
б) Что означает свойство целостности БД?
в) Какие данные следует добавить в БД приемной комиссии, если требуется учитывать преподавателей, принимающих экзамены, и деление абитуриентов на экзаменационные группы?
г) Какие данные следует добавить в БД приемной комиссии, если дополнительно к требованиям предыдущего задания нужно учитывать расписание экзаменов, т. е. сведения о том, где, когда и какому преподавателю сдает экзамен данная группа?
д) Постройте схему БД с учетом выполнения заданий 2, в и 2, г.
3.
а) При проектировании БД были определены следующие отношения: МАГАЗИН (НОМЕР
_МАГ, ТИП, АДРЕС, ДИРЕКТОР, ТЕЛЕФОН)
ОТДЕЛ
(НАЗВАНИЕ_ОТД, ЗАВЕДУЮЩИЙ, ТЕЛЕФОН)
ПРОДАВЕЦ
(ТАБЕЛЬНЫЙ_НОМ, ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО,
КАТЕГОРИЯ)
Являются ли эти отношения связанными? Добавьте всё, что необходимо для их связи; изобразите схему БД в графическом виде.
б) Спроектируйте базу данных для информационной системы «Наш техникум», содержащей сведения об учителях, учениках, группах, изучаемых предметах. Замечание: данное задание носит творческий характер и может быть выполнено во многих вариантах. Устройте конкурс на лучшее решение этой задачи.
3. Создание базы данных
1. Что нужно иметь для того, чтобы начать процесс создания базы данных?
2. Какую информацию нужно указать СУБД для создания таблиц БД?
3. Каким способом можно вводить данные в таблицы?
4. Как СУБД помогает пользователю производить безошибочный ввод данных?
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.