Выбор системы управления базами данных
Часто в работе различных предприятий используются электронные таблицы Excel. Различные приказы, отчеты создаются в текстовом редакторе MS Word. С таблицами Excel удобно работать, когда они содержат ограниченное количество строк. В этих таблицах часто приходится держать повторяющиеся данные, в каждый столбец таблицы можно вводить разнородные данные. В то же время Excel обладает прекрасными возможностями анализа данных. Но если в работе не много расчетов, а информация относительно разнородна с большим количеством объектов и предполагает многопользовательский режим. Поэтому в данном случае целесообразно использовать СУБД
В зависимости от предметной области информационные системы могут очень сильно различаться по своим функциям, архитектуре, реализации. Однако можно выделить ряд свойств, которые являются общими:
информационные системы предназначены для сбора, хранения и обработки информации. Поэтому в основе любой из них лежит среда хранения и доступа к данным;
информационные системы ориентируются на конечного пользователя, не обладающего высокой квалификацией в области применения вычислительной техники. Поэтому клиентские приложения информационной системы должны обладать простым, удобным, легко осваиваемым интерфейсом, который предоставляет конечному пользователю все необходимые для работы функции, но в то же время не дает ему возможность выполнять какие-либо лишние действия.
Таким образом, при разработке информационной системы приходится решать две основные задачи:
- задачу разработки базы данных, предназначенной для хранения информации;
- задачу разработки графического интерфейса пользователя клиентских приложений.
СУБД MS Access
Система управления базами данных MS Access является универсальным программным инструментом создания и обслуживания баз данных и приложений пользователя в самых разных предметных областях. СУБД обеспечивает многоаспектный доступ к данным и использование одних и тех же данных различными задачами и приложениями пользователей.
СУБД Microsoft Access является системой управления реляционной базой данных, включающей все необходимые инструментальные средства для создания локальной базы данных, общей базы данных в локальной сети с файловым сервером или базы данных на SQL-сервере, а также для создания приложения пользователя, работающего с этими базами данных. База данных Access, создаваемая на локальном компьютере, отличается от баз данных других настольных СУБД. В ее файле могут храниться не только данные, но и объекты интерфейса — формы, отчеты, а также программный код. Благодаря этому можно создать приложение, целиком хранящееся в одном MDB-файле, что существенно упрощает как создание, так и распространение приложений для работы с базами данных.
СУБД Access включает разнообразные и многочисленные относительно автономные программные средства, ориентированные на создание объектов базы данных и приложений пользователя.
Средства графического конструирования позволяют пользователю создавать объекты базы данных и объекты приложения с помощью многочисленных графических элементов, не прибегая к программированию.
Среди многочисленных средств графического конструирования и
диалоговых средств Access следует выделить средства для создания:
- таблиц и схем баз данных;
- запросов выборки, отбирающих и объединяющих данные нескольких таблиц в виртуальную таблицу, которая может использоваться во многих задачах приложения;
- запросов на изменение данных базы;
- экранных форм, предназначенных для ввода, просмотра и обработки данных в диалоговом режиме;
- отчетов, предназначенных для просмотра и вывода на печать данных из базы и результатов их обработки в удобном для пользователя виде;
- страниц доступа к данным, обеспечивающим работу с базами данных в среде Internet и intranet;
- интерфейса управления приложением пользователя: меню, кнопочных форм, панелей управления приложением, позволяющих объединить различные операции по работе с базой данных в единый технологический процесс.
Средства программирования СУБД включают язык структурированных запросов SQL, язык макрокоманд и язык объектно-ориентированного программирования для приложений Microsoft Visual Basic for Applications (VBA). VBA является частью семейства Microsoft Visual Basic, которое входит в состав Visual Studio, (сравнение данного языка с другими языками программирования приводится в таблице 2.1).
VBA является базовым компонентом в Microsoft Office: он интегрирован в Access, Excel, FrontPage, Outlook, PowerPoint и Word. Все эти приложения, в том числе и локализованные на русском языке, используют англоязычный вариант VBA (включая справку).
VBA представляет собой базовую платформу программирования в среде не только Microsoft Office, но и многих других приложений. VBA содержит средства доступа не только к базам данных Access, но и к базам данных клиент-серверной архитектуры, таким как SQL Server, Oracle и др. Работа с этими базами данных обеспечивается через интерфейс ODBC (Open Database Connectivity, Открытый доступ к базам данных) или интерфейсы модели составного объекта (Component Object Model — СОМ), называемые OLE DB. Диспетчером данных, выполняющим загрузку и сохранение данных в пользовательской базе данных и системных базах данных Access, является ядро базы данных Microsoft Jet. Версия Microsoft Jet 4.0 имеет высокую производительность и улучшенные сетевые характеристики.
Ядро Jet 4.0 обеспечивает поддержку двухбайтового представления символов — Unicode, позволяющего использовать символы нескольких национальных алфавитов, но требующего дополнительных ресурсов памяти. Чтобы компенсировать возрастающий объем памяти, в Unicode применяется сжатие сохраняемых данных. Для лучшей совместимости Microsoft Jet и Microsoft SQL Server и соответствия языка SQL спецификации SQL 92 в реализацию Microsoft Jet 4.0 SQL были внесены изменения.
Преимущества СУБД Access перед электронными таблицами:
Для каждого столбца Access определен тип данных;
Access позволяет не только вводить данные в таблицы, но и контролировать правильность этих данных. Для этого устанавливаются правила проверки на уровне таблиц. При этом как бы не вводились данные – в таблицу, в форме или на странице – Access не позволит сохранить в записи данные, нарушающие эти правила.
Таблицы Access могут содержать большое количество строк и, при этом, СУБД имеет средства, позволяющие эффективно извлекать из этого хранилища нужные данные
Структура таблиц базы данных разрабатывается таким образом, чтобы избежать дублирования информации. Это позволяет не только экономить память, но и увеличить скорость обработки информации
Access имеет очень развитую систему защиты от несанкционированного доступа, позволяя разным пользователям или группам пользователей назначать разные права на доступ как к данным так и к элементам интерфейса (формам, командам меню, отчетам).
Предназначенная для коллективного пользования СУБД имеет средства, не позволяющие нескольким пользователям одновременно корректировать одни и те же данные. Поскольку в Access к данным могут иметь доступ одновременно несколько пользователей, в нем предусмотрены надежные средства зашиты и обеспечения целостности данных.
СУБД Access имеют возможность импортировать данные из других приложений Office – например, Word, Excel и т.д.
Одной из лучших современных СУБД являетсяSQL Server 2000, наиболее оптимально использующих возможности операционной системы Windows 2000 и предлагает пользователю большой набор средств обработки анализа разнообразной информации.
Но прежде чем принять решение об установке SQL Server 2000, надо подумать, насколько оправдано такое решение, насколько задачи, стоящие перед организацией, соответствуют возможностям и масштабам этого продукта. Всегда необходимо исходить из того, что затраты на приобретение лицензии и администрирование SQL Server 2000 должны быть соизмеримы с пользой от внедрения данного продукта. Поскольку техникум имеет не очень большой штат, имеющий дело со сравнительно небольшим объемом оперативной информации, полне можно обойтись возможностями, предоставляемыми СУБД Access из пакета Microsoft Office. Access отлично подходит для организации однопользовательской системы. Чтобы сделать доступным совместное использование таблиц данных, достаточно разместить их на файловом сервере и воспользоваться средствами синхронизации документов. Вполне можно обойтись приложением, подобным Access и реализующим непосредственное взаимодействие пользователя с базой данных, если:
предполагается работа с базой данных небольшого числа пользователей;
вопрос безопасности информации не играет большой роли;
предполагается использование баз данных небольшого объема;
в штате нет опытных системных администраторов;
кроме того, необходимо реализовать наиболее дешевое и простое решение;
система должна функционировать в локальной вычислительной сети и локально на отдельном персональном компьютере.
Microsoft Access, обладая всеми чертами классической СУБД, предоставляет и дополнительные возможности. Access - это не только мощная, гибкая и простая в использовании СУБД, но и, как и отмечалось выше, система для разработки работающих с базами данных приложений.
Обычно, решив отказаться от изменений в документе, его просто закрывают без сохранения и вновь открывают предыдущую копию. Этот прием работает почти во всех приложениях, но только не в СУБД. Все изменения, вносимые в таблицы базы, сохраняются на диске «на лету» (без нашего ведома), поэтому попытка закрыть базу без сохранения ничего не даст, так как все уже сохранено.
С помощью макросов Access можно легко связать данные с формами и отчетами. Имеется возможность создать большинство приложений, не написав ни единой строки программы, но если вам необходимо создать нечто более сложное, то на этот случай Microsoft Access предоставляет мощное средство - SQL (Structured Query Language) – уже упоминавшийся структурированный язык запросов. Используя этот язык, можно выделить из одной или нескольких таблиц необходимую для решения конкретной задачи информацию. Access значительно упрощает задачу обработки данных. При любой обработке данных из нескольких таблиц использует однажды заданные связи между таблицами. Можно сконцентрировать свои усилия на решении информационных проблем, не затрачивая сил на построение сложной системы, которая отслеживает в вашей базе все связи между структурами данных. В Microsoft Access имеется также простое и в то же время богатое возможностями средство графического задания запроса - так называемый «запрос по образцу» (QBE, query by example), которое используется для задания данных, необходимых для решения некоторой задачи. Используя для выделения и перемещения элементов на экране стандартные приемы работы с мышью в Windows и несколько клавиш на клавиатуре, вы можете буквально за секунды построить довольно сложный запрос.
При освоении работы с программой пользователь должен обладать необходимыми навыками работы в среде Windows и иметь общие представления о работе Access – понятие о текущей записи, перемещение между записями, уметь закрыть окно, прокрутить список, пользоваться клавишами перехода между полями Tab и Shift-Tab. Кроме того, он должен знать порядок применения ведения соответствующей документации.
Если у пользователя есть опыт работы с диалоговыми программами, то эта система не требует предварительного освоения.
Практическое руководство построения базы данных
Вычислительная техника с каждым годом все шире применяется в различных сферах человеческой деятельности. Резко возросший поток информации приводит к необходимости разработки новых приемов ее осмысления и обработки. Накопленный опыт и развитие программного обеспечения вычислительной техники позволяет переосмыслить такую традиционную область обработки информации как хранение и управление данными. Новый подход к организации процесса обработки информации проводит к понятию база данных и методам работы с ней.
§1. Модели данных. Концептуальная схема и подсхемы.
В самом общем смысле база данных – это набор записей и файлов, организованных особым способом.
Остановимся на некоторых определениях, используемых при проектировании и эксплуатации баз данных. Первое базовое понятие – это информация и данные. Под информацией понимаются любые сведения о каком-либо событии, процессе, явлении и так далее, необходимые при их описании и исследовании. Информация, представленная в определенном стандартном виде называется данными. Таким образом, описание задач, возникающих при работе с потоком информации, можно осуществлять с двух точек зрения: с позиции информации – тогда мы приходим к концептуальной схеме, или с точки зрения данных – тогда получается отображение концептуальной схемы в датологическую среду, то есть физическую схему задачи.
При постановке информационных задач, прежде всего, следует определить предметную область, то есть область, для которой будут определены объекты исследования и их взаимодействие между собой. Эта область может быть определена достаточно широко, например сфера управления предприятием, транспортом, сфера научных исследований и тому подобное. Однако достаточно широко определенная предметная область может быть сужена, то есть может быть выделена некоторая подобласть для решения некоторых более узких подзадач исходной проблемы. Например, если предметную область определить задачей управления аэропортом, то при работе кассира важно наличие или отсутствие билетов на заданные рейсы и наличие благоприятных погодных условий, а для организации перевозок – наличие необходимых самолетов и допущенных к подобным перевозкам пилотов.
В качестве примера описания предметной области разберем деятельность торговой фирмы, владеющей сетью магазинов. В общем виде ее деятельность можно представить в виде схемы, представленной на рис.1. В качестве подсхемы можно рассмотреть любой из блоков первого уровня. В свою очередь, каждый из блоков также может быть представлен в виде аналогичной схемы. Например, сеть магазинов может быть представлена в виде двух блоков: описание деятельность конкретного магазина и система связи и обмена между ними. В свою очередь, деятельность магазина можно представить в виде блоков, описывающих поставки товара, наличие товара на складе магазина и оптовом складе фирмы, естественно финансовый отдел магазина и отдел работы с покупателями, который также включает в себя отдел продаж и доставки.
Задача 1.1. Опишите полностью каждый из блоков первого уровня схемы 1, выделяя в каждом из них основные задачи. Например, отдел маркетинга
Задача 1.2. Опишите предметную область и постройте концептуальную схему работы какой-либо библиотеки. Выделите подсхемы работы с читательским списком, библиотечным фондом, отдел внешних связей и бухгалтерский отдел.
Задача 1.3. Опишите предметную область и разработайте концептуальную схему функционирования какого-либо факультета высшего учебного заведения.
Задача 1.4. Опишите предметную область и разработайте концептуальную схему функционирования какого-либо учреждения культуры (театр, художественная галерея, филармония и так далее) с точки зрения репертуарного плана.
Задача 1.5. Опишите предметную область и разработайте концептуальную схему функционирования авторемонтной мастерской с точки зрения формирования заказов на ремонт автомобиля.
Задача 1.6. Опишите предметную область и разработайте концептуальную схему функционирования фермерского хозяйства с точки зрения поставки производимых товаров на рынок.
Задача 1.7. Опишите предметную область и разработайте концептуальную схему проведения спортивной олимпиады студентов России для ведения протоколов проводимых соревнований.
Задача 1.8. Опишите предметную область и разработайте концептуальную схему функционирования оптовой товарной базы для ведения документации обработки заказов.
Задача 1.9. Опишите предметную область и разработайте концептуальную схему функционирования средней школы для ведения отчетности проведенных занятий.
Задача 1.10. Опишите предметную область и разработайте концептуальную схему работы с физическими лицами филиала банка Сбербанка России.
Задача 1.11. Опишите предметную область и разработайте концептуальную схему функционирования страховой компании.
§ 2. Этапы разработки базы данных.
При описании предметной области с точки зрения концептуальной модели, прежде всего, следует определить сущности, принадлежащие этой области, и связи между ними. Под сущностью, в таком подходе, понимается то, о чем должна накапливаться и обрабатываться информация. Например, при разработке схемы функционирования факультета сущностями могут выступать студенты факультета, преподаватели, читаемые предметы, методический и научно-исследовательский материал, разрабатываемый факультетом, семинары и конференции, проводимые на данном факультете и так далее. Каждая сущность характеризуется с помощью ограниченного набора свойств и связей с другими сущностями. Группа сущностей, характеризующаяся одним и тем же набором свойств, образует набор сущностей. Так, например, список студентов образует набор сущностей, который мы назовем СТУДЕНТ, и он будет характеризоваться следующими свойствами: фамилия, имя и отчество; номер студенческого билета; группа; место жительства; год поступления; наличие или отсутствие стипендии и тому подобное. Свойства набора сущностей называют атрибутами, а множество допустимых значений атрибутов называют доменом. С точки зрения датологической модели при описании атрибутов каждого из набора сущностей, следует указать не только имя атрибута, но и тип данных, описывающих данный атрибут. Тип данных, используемых при описании атрибута, зависит от того смысла, который вкладывается в этот атрибут при проектировании модели объектной области. Например, если в наборе объектов СТУДЕНТ атрибут «стипендия» характеризует только ее наличие или отсутствие, то есть домен этого атрибута состоит всего лишь из двух значений, то для его описания следует использовать логический тип. Если же этот атрибут описывает истинное значение стипендии, то тогда его значение должно быть числовым или денежным. Если же этот атрибут характеризует тип стипендии, например, обычная, повышенная, именная и так далее, то тип данных, отвечающих такому атрибуту, следует задать литерным.
В качестве примера, рассмотрим набор объектов, характеризующий сотрудников некоторой фабрики. В качестве атрибутов можно указать следующее:
Название атрибута | Тип данных | Домен |
Фамилия | Литерный | Сочетание символов-букв |
Имя | Литерный | Сочетание символов-букв |
Отчество | Литерный | Сочетание символов-букв |
Номер отдела | Числовой | Любая положительная целая цифра |
Должность | Литерный | Сочетание символов-букв |
Дата рождения | Тип дата | Допустимые значения при описании даты |
Стаж | Числовой | Любая положительная целая цифра |
Характеристика | Текст | Любой текст |
Табельный номер | Числовой | Любая положительная целая цифра |
Следует отметить, что в наборе сущностей должна обеспечиваться возможность выделить конкретную сущность из набора. Для однозначной идентификации конкретной сущности вводится понятие ключа. Ключом может служить или конкретный атрибут (простой ключ) или некоторая совокупность атрибутов (сложный или составной ключ).
Задача 2.1. Опишите набор сущностей, задающий совокупность студентов заданного факультета. Укажите перечень атрибутов с указанием типа данных, отвечающих каждому из них. Для каждого из атрибутов указать домен.
Задача 2.2. Опишите набор сущностей, задающий учебный план заданного факультета. Считать, что на факультете возможна специализация по нескольким специальностям. Укажите перечень атрибутов с указанием типа данных, отвечающих каждому из них. Необходимо указать также свойство объекта, описываемое каждым их атрибутов. Для каждого из атрибутов указать домен.
Задача 2.3. Опишите набор сущностей описывающих некоторый оптовый склад торговой фирмы. Считать, что фирма получает товар от различных поставщиков. Укажите перечень атрибутов с указанием типа данных, отвечающих каждому из них. Необходимо указать также свойство объекта, описываемое каждым их атрибутов. Для каждого из атрибутов указать домен.
Задача 2.4. Опишите набор сущностей, описывающих совокупность товаров некоторого частного магазина. Считать, что магазин получает товар с различных оптовых складов и различных фирм-поставщиков. Укажите перечень атрибутов с указанием типа данных, отвечающих каждому из них. Необходимо указать также свойство объекта, описываемое каждым их атрибутов. Для каждого из атрибутов указать домен.
Задача 2.5. Опишите набор сущностей, задающий книжный фонд некоторой библиотеки. Укажите перечень атрибутов с указанием типа данных, отвечающих каждому из них. Необходимо указать также свойство объекта, описываемое каждым их атрибутов. Для каждого из атрибутов указать домен.
Задача 2.6. Опишите набор сущностей, задающий список читателей некоторой библиотеки. Укажите перечень атрибутов с указанием типа данных, отвечающих каждому из них. Необходимо указать также свойство объекта, описываемое каждым их атрибутов. Для каждого из атрибутов указать домен.
При проектировании концептуальной модели первым важным вопросом является выбор набора сущностей, с помощью которого полностью охватывается интересующая нас часть предметной области. Второй вопрос – это выбор атрибутов, подходящих для описания этих наборов сущностей. Третий важный вопрос – это установление связей между наборами сущностей и их описание.
Связь между наборами объектов может быть трех типов. Первый тип – связь один к одному (обозначение 1:1), когда между записями двух наборов сущностей устанавливается связь, характеризующаяся взаимно однозначным соответствием между сущностями, входящими в каждый из наборов. Например, если один из наборов сущностей – это номера проданный на данный рейс билетов, а другой – это список пассажиров, то связь между ними будет один к одному. При нарушении этого принципа должен выдаваться сигнал ошибки, так как на одно и то же место будет продано несколько билетов. Второй тип связи – это один ко многим (1:М), или обратный вариант – многие к одному (М:1). Например, если один набор сущностей это клиенты некоторого банка, а другой – счета банка, то если у клиента в банке допускается несколько счетов, то будет установлена связь один ко многим. В случае, когда первичным рассматривается счет, то связь будет трактоваться как многие к одному. Третий вид связи – это многие ко многим (M:N), когда нескольким записям одного набора сущностей соответствует несколько записей другого набора. В качестве примера можно рассмотреть список студентов некоторого факультета и список предметов, читаемых на этом факультете. Связь между этими наборами сущностей будет как раз определяться как многие ко многим, причем она усложнится, если для студентов на факультете допускается некоторый выбор изучаемых предметов.
В реляционной модели данных сущность набор сущностей интерпретируется в виде таблиц, называемых отношениями или реляциями. В отношениях столбцы представляют собой атрибуты, и им присваиваются имена, по которым затем происходит обращение. Кортеж, соответствующий данной схеме отношения, представляет собой множество пар {имя атрибута, значение}, которое содержит одно вхождение каждого имени атрибута, принадлежащего данному отношению.
В Access отношения представляются в виде таблиц, а связи между ними устанавливаются с помощью схемы отношений. Для установления связей между таблицами используются ключи отношений (внешние ключи – атрибут или множество атрибутов одного отношения, являющиеся ключом другого отношения). Связь между двумя таблицами осуществляется путем присваивания значений внешнего ключа одной таблицы значениям ключа другой таблицы. Также как и другие ключи, внешние ключи могут быть как простыми, так и составными.
§ 3. Условия целостности данных.
Одним из условий нормального функционирования базы данных является понятие целостности данных, где модно выделить два аспекта.
категорийная целостность;
ссылочная целостностью
Категорийная целостность связана с тем, что значения атрибутов, являющихся ключом отношения, должны быть уникальными и не могут быть неопределенными. Поэтому строка, являющаяся кортежем не может быть занесена в отношение до тех пор, пока не будут определены все атрибуты ее ключа. что касается ссылочной целостности, то если в одном отношении удаляется запись, то в отношениях, связанных с ним не должно быть кортежей, имеющих значение внешнего ключа удаляемой записи.
При использовании Access для построения базы данных отношения трансформируются в таблицы, а при установлении связей с помощью схемы данных необходимо позаботиться об обеспечении целостности и каскадном обновлении и удалении данных.
§ 4. Нормализация данных.
Нормализация представляет собой процесс реорганизации таким образом, чтобы исключить повторения одних и тех же сведений и иных противоречий. Окончательная цель нормализации сводится к получению такого проекта базы данных, в которой каждый факт появляется один раз в одном месте (исключение избыточности информации), и, кроме того, исключить противоречия в хранимых данных. Целью нормализации является освободить проект от избыточности данных, аномалии обновления, аномалии удаления, аномалии ввода.
Основные проблемы, возникающие при работе с ненормализованными таблицами:
избыточность данных;
аномалия обновления;
аномалия удаления;
аномалия ввода.
Чтобы проиллюстрировать возникающие проблемы рассмотрим стол заказов некоторого книжного склада. Если представить себе таблицу заказов в виде {Код заказа, фамилия, имя, отчество, адрес, телефон, названия книг, авторы, количество заказанных экземпляров, стоимость, дата заказа}, то легко видеть, что при таком ее построении существует масса изъянов. Например, если заказано несколько книг, то атрибут названия книг не может быть единственным (атомарным), что повлечет за собой полей не атомарность полей авторы, количество заказанный экземпляров и стоимость. Если же попытаться сделать его атомарным, то информация о заказчике будет повторяться столько раз, сколько заказов он может сделать. Кроме того, информация о книгах может появиться лишь тогда, когда будет сделан заказ. Если заказчик удаляется из таблицы, то может быть утеряна информация об имеющихся на складе книгах. Точно таким же образом может быть утеряна информация о клиенте, ели некоторые названия книг будут удалены.
Определяют пять видов нормальных форм, однако для успешной работы вполне достаточно первых трех, на которых мы и остановимся.
Первая нормальная форма накладывает ограничения на значения полелей таблицы – они должны быть атомарными. Данное требование является базовым требованием классической реляционной модели данных. Например, в таблице собирается информация о сотрудниках некоторого учреждения.
Сотрудники.
Код | Фамилия | Имя | Отчество | Дата рождения | Дети | Дата рождения детей |
Иванов | Иван | Петрович | 12.09.63 | Анна Петр | 24.05.93 14.02.96 | |
Иванова | Анна | Сергеевна | 30.11.69 | Анна Петр | 24.05.93 14.02.96 | |
Петрова | Инна | Петровна | 23.06.74 | Иван | 24.05.94 | |
Рощин | Сергей | Олегович | 20.12.60 | Сергей Павел Ирина | 12.12.85 18.03.91 24.09.96 |
Как легко видеть, такое описание непременно приводит к многозначности, если детей больше чем один. Кроме того, ели родители работают в одном учреждении, то информация о детях будет повторена дважды. Чтобы освободится от этого противоречия, такую таблицу следует разбить на две: таблицу, содержащую информацию о сотрудниках, и таблицу, содержащую информацию о детях.
Сотрудники
Код | Фамилия | Имя | Отчество | Дата рождения |
Иванов | Иван | Петрович | 12.09.63 | |
Иванова | Анна | Сергеевна | 30.11.69 | |
Петрова | Инна | Петровна | 23.06.74 | |
Рощин | Сергей | Олегович | 20.12.60 |
Дети
Код | Фамилия | Имя | Отчество | Дата рождения |
Иванов | Петр | Иванович | 12.09.63 | |
Иванова | Анна | Ивановна | 24.05.93 | |
Петров | Иван | Сергеевич | 24.05.94 | |
Рощин | Сергей | Сергеевич | 12.12.85 | |
Рощин | Павел | Сергеевич | 18.03.91 | |
Рощина | Ирина | Сергеевна | 24.09.96 |
Код матери и отца не следует вводить в таблицу «Дети», так как не обязательно оба родителя работают на данном предприятии. Для связи этих таблиц лучше построить отдельное отношение, так как в этом случае указанные противоречия будут сняты. Данное отношение будет иметь два поля: код детей и код родителей. Данное отношение устанавливает связь между родителями и детьми. Следует учесть, что при построении концептуальной схемы необходимо отметить, что связь между таблицами «Сотрудники» и «Дети» - «многие ко многим», так как сотрудники могут иметь несколько детей и, если родители работают вместе, то ребенок имеет двух родителей в таблице сотрудники
Код сотрудника | Код ребенка |
. Access не поддерживает типы связей «многие ко многим», поэтому введение такого отношения снимает эту проблему. В окне «Схема данных» эта связь выглядит, как показано на рис. 2.
Для поддержания целостности данных следует при установлении связей необходимо обеспечить целостность данных, поддерживаемую Access. Окно, устанавливающее обеспечение целостности данных, представлено но на рис. 3.
Вторая нормальная форма. Отношение находится во второй нормальной форме в том и только в том случае, когда это отношение находится в первой нормальной форме и каждый неключевой атрибут полностью зависит от первичного ключа. Например, рассмотрим репертуар драматического театра на следующий месяц. В таблице определены следующие поля {код актера; ФИО актера; звание; дата рождения; название пьесы; автор; роль; дата постановки}. Ключом является (код актера)+(название пьесы)+роль.
Чтобы перейти от первой нормальной формы ко второй нужно выполнить следующие действия:
Определить на какие части можно разбить первичный ключ так, чтобы неключевые поля зависели только от одной из этих частей;
Создать новые таблицы для каждой из частей ключа и группы, зависящих от нее частей переместить в новую таблицу;
Удалить из исходной таблицы перемещенные поля
Например, таблицу можно преобразовать таким образом: одна таблица будет определять личность актера {код актера; ФИО актера; звание; дата рождения }, а вторая будет связана с исполняемой ролью {код роли; код актера; роль; название пьесы; автор; дата постановки}.
Третья нормальная форма. Рассмотрим вторую из полученных выше таблиц. Между полями (название пьесы)+автор и роль существует функциональная зависимость. В самом деле, мы не сможем внести в таблицу название пьесы, если не произошло распределение ролей. Отношение находится в третьей нормальной форме в том и только в том случае, когда оно находится во второй нормальной форме и каждый неключевой атрибут нетранзитивно зависит от первичного ключа[1]. Чтобы перейти от второй нормальной формы к третьей необходимо выполнить следующие преобразования.
Определить все поля (или группы полей), от которых зависят другие поля.
Создать новую таблицу для каждого такого поля (или группы полей) и группы зависящих от него полей и переместить их в эту таблицу.
Удалить перемещенные поля из исходной таблицы.
|
Разработать в представленных ниже задачах схему данных в третьей
нормальной форме.
Задача 4.1.
Построить базу данных, обслуживающую ведение заказов авторемонтной мастерской. Информация должна содержать сведения о клиенте(ФИО, адрес), тип работы, оплату и информацию об исполнителе (ФИО, квалификация).
Задача 4.2.
Построить базу данных, описывающую результаты сессии. Информация должна содержать номер семестра, сведения о студенте (ФИО, группа, специальность), сведения о сдаваемом предмете (название, семестр), дату сдачи экзамена, оценку и ФИО экзаменатора.
Задача 4.3.
Построить базу данных, описывающую работу библиотеки с читателем. Информация должна содержать сведения о читателе (ФИО, адрес, телефон), информацию о выданной книге (название, автор, издательство) и дату выдачи книги.
Задача 4.4.
Построить базу данных, описывающую обращение больных в поликлинику. Информация должна содержать сведения о больных (ФИО, адрес, дату рождения), враче (ФИО, специальность), дате осмотра и заключение врача.
Задача 4.5.
Построить базу данных, описывающую работу с заказами некоторой оптовой базы. Информация должна содержать сведения о заказчике (Название фирмы, адрес, телефон), сведения о заказываемом товаре (Наименование, фирма изготовитель, год выпуска, стоимость единицы продукции), а также количество заказанного товара.
Задача 4.6.
Построить базу данных, описывающую формирование фонда сети магазинов некоторой фирмы. Информация должна содержать сведения о магазине (название, адрес, телефон), сведения о поставщике (наименование, адрес, телефон) сведения о товаре (наименование, количество) и дату поставки.
Задача 4.7.
Построить базу данных, описывающую работу с клиентами фирмы по техническому обслуживанию торгового оборудования. Информация должна собираться о мастерах, выполняющих ремонтные работы (ФИО, квалификация, телефон), о магазинах, подающих заявки на ремонт оборудования (наименование оборудования, магазин, адрес, телефон) и о выполнении заказа с указанием даты выполнения и оплате.
Задача 4.8.
Построить базу данных, описывающую репертуарную политику театра. Информация собирается об актерах (ФИО, звание, дата рождения, адрес, телефон), о пьесе (авторы, название, список ролей с указанием их характеристики, то есть возраст, амплуа и так далее) и о репертуаре на следующий месяц с указанием даты спектакля.
Задача 4.9.
Построить базу данных, описывающую репертуарную политику филармонии. Информация собирается об исполнителях (ФИО или название коллектива, адрес, телефон, дополнительные сведения о них), об исполняемых произведениях, концертной площадке (название, характеристика, объем), контактный телефон, дате концерта и времени его начала.
Задача 4.10.
Построить базу данных, описывающую проведение чемпионата высшей лиги по футболу. Информация должна содержать сведения о клубе (название, главный тренер, место дислокации), футболистах (ФИО, дата рождения, номер игрока, специализация), места проведения матча (город, площадка) и даты проведения матча и счет.
Задача 4.11.
Построить базу данных, описывающую работу страховой компании. Информация должна содержать сведения о компании (название, номер регистрации, ФИО агента, телефон связи), о видах страхования, о клиенте (ФИО, адрес, телефон), дату заключения сделки, страховую сумму и комиссионные.
Задача 4.12.
Построить базу данных, описывающую деятельность ремонтной бригады ЖКХ. Информация должна содержать сведения о работниках бригады (ФИО, квалификация, специальность), сведения о заказчике (ФИО, адрес, телефон), контактный телефон ЖКХ вид ремонта и дату выполнения заказа.
Задача 4.13.
Построить базу данных, описывающую работу фермерского хозяйства. Информация должна содержать сведения о наемных работниках (ФИО, адрес, дата рождения), о проводимых работах (название, оплата), дату начала и окончания работы .
Задача 4.14
Построить базу данных, описывающую проведение чемпионата высших учебных заведений по баскетболу. Информация должна содержать сведения об учебном заведении (название, главный тренер, место нахождения), о членах команды (ФИО, дата рождения, номер игрока, факультет, группа), места проведения матча (город, площадка) и даты проведения матча и счет.
Задача 4.15.
Построить базу данных, описывающую работу центра занятости. Информация должна содержать сведения о работодателях (Название, адрес, телефон, должность, квалификация, ставка), о потенциальных претендентах (ФИО, адрес, телефон, дата рождения, квалификация, стаж работы) и дату заключения договора о найме.
Задача 4.16.
Построить базу данных, описывающую работу бригады ремонта дорожных покрытий. Информация должна содержать сведения о сотрудниках бригады (ФИО, адрес, телефон, специальность), о техническом парке (наименование, количество), о месте проведения и объеме работ, исполнителях, дате начала и окончания работы.
Задача 4.17.
Построить базу данных, описывающую ведение журнала успеваемости в школе. Информация должна содержать сведения о школьнике (ФИО, день рождения, адрес, телефон, сведения об отце и матери, класс), о преподающихся дисциплинах (название, класс), дату ответа и оценку.
Задача 4.18.
Построить базу данных, описывающую проведение зимней универсиады. Информация должна содержать сведения об участниках (ФИО, место жительства, город, название университета, дату рождения), список дисциплин универсиады, место проведения соревнования, дату проведения и список участников и показанные результаты.
Задача 4.19.
Построить базу данных, описывающую работу фотоателье. Информация должна содержать сведения о сотрудниках фотоателье (ФИО, адрес, телефон, должность), сведения о клиенте (ФИО, адрес), дату проведения съемки и дату выполнения заказа.