Базы_данных(мет). Тема Нормализация
Скачать 326.25 Kb.
|
Создание физической модели БД и генерация схемы БДПеред тем как преступить к созданию физической модели, необходимо выбрать сервер СУБД. Для этого необходимо переключиться на физическую модель и выбрать пункт меню Database/Choose Database… . Затем выбрать необходимый сервер СУБД. Диалог Target Server позволяет задать тип данных и опцию NULL для новых колонок, а так же правила ссылочной целостности, принимаемые по умолчанию. Напомним, что на уровне физической модели сущности соответствует таблица в реальной СУБД, атрибуту – колонка таблицы, связи – внешний ключ, первичным и альтернативным ключам – уникальные индексы, а инверсным входам не уникальные. Поскольку логическая модель разрабатывалась на русском языке, то имена таблиц, колонок и индексов необходимо задать на английском языке. Кроме того, для каждой колонки необходимо указать тип данных, возможность пустых значений и т.п. Для создания английских имен таблиц необходимо воспользоваться редактором таблиц, для остальных манипуляций – редактором колонок. После того как будут выполнены все действия, физическая модель приобретет следующий вид (см. рис. 11). Рис. 11. Общий вид физической модели Последним шагом является генерация схемы БД. Для этого необходимо выбрать пункт меню Task/Forward Engineer/ Schema Generation… Все необходимые параметры генерации схемы БД можно задать на предназначенной для этого панели диалога Access Schema Generation (см. рис.12). Генерация схемы БД запускается нажатием кнопки Generate. вуз. Рис.12. Диалоговое окно Access Schema Generation ПримернормализацииБД Описание предметной областиРассматривается задача о зачислении абитуриентов на бюджетные места в некоторый Абитуриенты сдают экзамены на один или несколько факультетов вуза. Известно расписание экзаменов: дата, предмет экзамена, факультет, на который экзамен сдается. На экзаменах абитуриенты получают оценки. По каждому абитуриенту хранятся некоторые данные, в частности номер и датавыдачи аттестата. Нормализация данных:Вариант1: Введем дополнительные характеристики: Код экзамена и Код абитуриента. Представим всю информацию следующим образом: ОЦЕНКА Код экзаменаПредмет экзамена Дата экзамена Факультет Кодабитуриента Фамилия Имя Отчество Номер аттестата Дата выдачи аттестата Значение оценки Данное отношение находится в 1-ой нормальной форме (все его атрибуты атомарны и нет одинаковых кортежей). Так как каждый абитуриент сдает экзамен только один раз, то в качестве потенциального ключа необходимо взять пару атрибутов {Кодэкзамена, Кодабитуриента}. Определим функциональные зависимости: Зависимость атрибутов от ключа отношения:{Код экзамена, Код абитуриента} Значение оценки Между объектами предметной области можно выделить следующие зависимости:Зависимостьатрибутов,характеризующихабитуриентаоткодаабитуриента: { Код абитуриента } Фамилия { Код абитуриента } Имя { Код абитуриента } Отчество { Код абитуриента } Номер аттестации { Код абитуриента } Дата выдачи аттестата Зависимостьатрибутов,характеризующихэкзаменоткодаэкзамена: { Код экзамена } Предмет экзамена { Код экзамена } Дата экзамена { Код экзамена } Факультет Отношение ОЦЕНКА не находится в 2НФ, т.к. есть атрибуты, зависящие от части сложного ключа. Приведем отношение во 2-ую нормальную форму. Для этого театрибуты,которыезависятотчастисложного ключа, вынесем в отдельные отношения: АБИТУРИЕНТ Кодабитуриента Фамилия Имя Отчество Номер аттестата Дата выдачи аттестата ЭКЗАМЕН Код экзаменаПредмет экзамена Дата экзамена Факультет ОЦЕНКА Кодэкзамена Кодабитуриента Значение оценки Отношение АБИТУРИЕНТ: Потенциальныйключ: { Код абитуриента} Функциональныезависимости: { Код абитуриента } Фамилия { Код абитуриента } Имя { Код абитуриента } Отчество { Код абитуриента } Номер аттестации { Код абитуриента } Дата выдачи аттестата Отношение ЭКЗАМЕН: Потенциальныйключ: { Код экзамена } Функциональныезависимости: { Код экзамена } Предмет экзамена { Код экзамена } Дата экзамена { Код экзамена } Факультет Отношение ОЦЕНКА: Потенциальныйключ: { Код экзамена, Код абитуриента } Функциональныезависимости: { Код экзамена, Код абитуриента } Значение оценки Все отношения находятся в 3НФ, т.к. они находятся во 2НФ и всенеключевыеатрибутывзаимно независимы. Следовательно, реляционную модель представим следующими отношениями: Экзамены (Код экзамена, Предмет, Факультет, Дата). Абитуриенты (Код абитуриента, Фамилия, Имя, Отчество, Номер аттестата, Дата выдачи аттестата). Оценки (Код экзамена, Код абитуриента, Значение оценки). Вариант2: Введем дополнительные характеристики: Код экзамена и Код абитуриента, а также Код оценки, который будет однозначно идентифицировать запись о некотором студенте, получившем некоторую оценку по некоторому предмету. Представим всю информацию следующим образом: ОЦЕНКА Кодоценки Код экзаменаПредмет экзамена Дата экзамена Факультет Кодабитуриента Данное отношение находится в 1-ойнормальнойформе(все его атрибуты атомарны и нет одинаковых кортежей). В качестве потенциального ключа необходимо взять атрибут {Кодоценки}. Определим функциональные зависимости: Зависимость атрибутов от ключа отношения:{Код оценки} { Код экзамена, Код абитуриента, Значение оценки} Между объектами предметной области можно выделить следующие зависимости:Зависимостьатрибутов,характеризующихабитуриентаоткодаабитуриента: { Код абитуриента } Фамилия { Код абитуриента } Имя { Код абитуриента } Отчество { Код абитуриента } Номер аттестации { Код абитуриента } Дата выдачи аттестата Зависимостьатрибутов,характеризующихэкзаменоткодаэкзамена: { Код экзамена } Предмет экзамена { Код экзамена } Дата экзамена { Код экзамена } Факультет Отношение ОЦЕНКА находится в 2НФ, т.к. в качестве потенциального ключа выбран один атрибут. Отношение ОЦЕНКА не находится в 3НФ, т.к. имеются функциональные зависимости неключевых атрибутов. АБИТУРИЕНТ Кодабитуриента Фамилия Имя Отчество Номер аттестата Дата выдачи аттестата ЭКЗАМЕН Код экзаменаПредмет экзамена Дата экзамена Факультет ОЦЕНКА Кодоценки Код экзамена Код абитуриента Значение оценки Приведем отношение о 3-ую нормальную форму. Для этого тенеключевыеатрибуты,которыеявляютсязависимыми, вынесем в отдельные отношения: Вариант 1. Определениефакультативовдлястудентов Вы работаете в высшем учебном заведении и занимаетесь организацией факультативов. В вашем распоряжении имеются сведения о студентах, включающие стандартные анкетные данные (фамилия, имя, отчество, адрес, телефон). Преподаватели вашей кафедры должны обеспечить проведение факультативных занятий по некоторым предметам. По каждому факультативу установлены определенное количество часов и вид проводимых занятий (лекции, практика, лабораторные работы). В результате работы со студентами у вас появляется информация о том, на какие факультативы записался каждый из них. Существует некоторый минимальный объем факультативных предметов, которые должен прослушать каждый студент. По окончании семестра вы заносите информацию об оценках, полученных студентами на экзаменах. Вариант2. Распределениеучебнойнагрузки Вы работаете в высшем учебном заведении и занимаетесь распределением нагрузки между преподавателями кафедры. В вашем распоряжении имеются сведения о преподавателях кафедры, включающие наряду с анкетными данными информацию об их ученой степени, занимаемой административной должности и стаже работы. Преподаватели вашей кафедры должны обеспечить проведение занятий по некоторым предметам. По каждому из них установлено определенное количество часов. В результате распределения нагрузки у вас должна получиться информация следующего рода: «Такой-то преподаватель проводит занятия по такому-то предмету с такой-то группой». Вариант3. Библиотека Вы являетесь руководителем библиотеки. Ваша библиотека решила зарабатывать деньги, выдавая напрокат некоторые книги, имеющиеся в небольшом количестве экземпляров. Вашей задачей является отслеживание финансовых показателей работы. У каждой книги, выдаваемой в прокат, есть название, автор, жанр. В зависимости от ценности книги вы определили для каждой из них залоговую стоимость (сумма, вносимая клиентом при взятии книги напрокат) и стоимость проката (сумма, которую клиент платит при возврате книги, получая назад залог). В библиотеку обращаются читатели. Все читатели регистрируются в картотеке, которая содержит стандартные анкетные данные (фамилия, имя, отчество, адрес, телефон). Каждый читатель может обращаться в библиотеку несколько раз. Все обращения читателей фиксируются, при этом по каждому факту выдачи книги запоминаются дата выдачи и ожидаемая дата возврата. Вариант4. Прокатавтомобилей Вы являетесь руководителем коммерческой службы в фирме, занимающейся прокатом автомобилей. Вашей задачей является отслеживание финансовых показателей работы пункта проката. В автопарк входит некоторое количество автомобилей различных марок, стоимостей и типов. Каждый автомобиль имеет свою стоимость проката. В пункт проката обращаются клиенты. Все клиенты проходят обязательную регистрацию, при которой о них собирается стандартная информация (фамилия, имя, отчество, адрес, телефон). Каждый клиент может обращаться в пункт проката несколько раз. Все обращения клиентов фиксируются, при этом по каждой сделке запоминаются дата выдачи и ожидаемая дата возврата. Вариант 5. Выдачабанкомкредитов Вы являетесь руководителем информационно-аналитического центра коммерческого банка. Одним из существенных видов деятельности банка является выдача кредитов юридическим лицам. Вашей задачей является отслеживание динамики работы кредитного отдела. В зависимости от условий получения кредита, процентной ставки и срока возврата все кредитные операции делятся на несколько основных видов. Каждый из этих видов имеет свое название. Кредит может получить клиент, при регистрации предоставивший следующие сведения: название, вид собственности, адрес, телефон, контактное лицо. Каждый факт выдачи кредита регистрируется банком, при этом фиксируются сумма кредита, клиент и дата выдачи. Вариант 6. Страховая компания Вы работаете в страховой компании. Вашей задачей является отслеживание ее финансовой деятельности. Компания имеет различные филиалы по всей стране. Каждый филиал характеризуется названием, адресом и телефоном. Деятельность компании организована следующим образом: к вам обращаются различные лица с целью заключения договора о страховании. В зависимости от принимаемых на страхование объектов и страхуемых рисков договор заключается по определенному виду страхования (например, страхование автотранспорта от угона, страхование домашнего имущества, добровольное медицинское страхование). При заключении договора вы фиксируете дату заключения, страховую сумму, вид страхования, тарифную ставку и филиал, в котором заключался договор. Вариант 7. Реализацияготовойпродукции Вы работаете в компании, занимающейся оптово-розничной продажей различных товаров. Вашей задачей является отслеживание финансовой стороны ее работы. Деятельность компании организована следующим образом: компания торгует товарами из определенного спектра. Каждый из этих товаров характеризуется наименованием, оптовой ценой, розничной ценой и справочной информацией. В вашу компанию обращаются покупатели. Для каждого из них вы запоминаете в базе данных стандартные данные (наименование, адрес, телефон, контактное лицо) и составляете по каждой сделке документ, запоминая наряду с покупателем количество купленного им товара и дату покупки. Вариант 8. Курсыповышенияквалификации Вы работаете в учебном заведении и занимаетесь организацией курсов повышения квалификации. В вашем распоряжении имеются сведения о сформированных группах студентов. Группы формируются в зависимости от специальности и отделения. В каждую из них включено определенное количество студентов. Проведение занятий обеспечивает штат преподавателей. Для каждого из них у вас в базе данных зарегистрированы стандартные анкетные данные (фамилия, имя, отчество, телефон) и стаж работы. В результате распределения нагрузки вы получаете информацию о том, сколько часов занятий проводит каждый преподаватель с соответствующими группами. Кроме того, хранятся сведения о типе проводимых занятий (лекции, практика), предмете и оплате за 1 час. Вариант 9. Туристическаяфирма Вы работаете в туристической компании, продающей путевки клиентам. Вашей задачей является отслеживание финансовой стороны деятельности фирмы. Работа с клиентами в вашей компании организована следующим образом: у каждого клиента, пришедшего к вам, собираются некоторые стандартные данные – фамилия, имя, отчество, адрес, телефон. После этого сотрудники выясняют у клиента, где он хотел бы отдыхать. При этом ему демонстрируются различные варианты, включающие страну проживания, особенности местного климата, имеющиеся отели разного класса. Наряду с этим обсуждается возможная длительность пребывания и стоимость путевки. В случае если удалось договориться и найти для клиента приемлемый вариант, вы регистрируете факт продажи путевки (или путевок, если клиент покупает сразу несколько путевок), фиксируя дату отправления. Иногда вы решаете предоставить клиенту некоторую скидку. Вариант10. Платнаяполиклиника Вы являетесь руководителем службы планирования платной поликлиники. Вашей задачей является отслеживание финансовых показателей работы поликлиники. В поликлинике работают врачи различных специальностей, имеющие разную квалификацию. Каждый день в поликлинику обращаются больные. Все они проходят обязательную регистрацию, при которой в базу данных заносятся стандартные анкетные данные (фамилия, имя, отчество, год рождения). Каждый больной может обращаться в поликлинику несколько раз, нуждаясь в различной медицинской помощи. Все обращения больных фиксируются, при этом устанавливается диагноз, определяется стоимость лечения, запоминается дата обращения. Вариант11. Интернет-магазин Вы являетесь сотрудником коммерческого отдела компании, продающей различные товары через Интернет. Вашей задачей является отслеживание финансовой составляющей ее работы. Работа компании организована следующим образом: на Интернет-сайте представлены (выставлены на продажу) некоторые товары. Каждый из них имеет некоторое название, цену и единицу измерения (штуки, килограммы, литры). Для проведения исследований и оптимизации работы магазина вы пытаетесь собирать данные с клиентов. При этом для вас определяющее значение имеют стандартные анкетные данные, а также телефон и адрес электронной почты для связи. В случае приобретения товаров на сумму свыше 5000 р. клиент переходит в категорию постоянных и получает скидку на каждую покупку в размере 2%. По каждому факту продажи вы автоматически фиксируете клиента, товары, количество, дату продажи, дату доставки. Вариант12. Химчистка Вы работаете в химчистке, осуществляющей прием у населения вещей для выведения пятен. Для наведения порядка вы, по мере возможности, составляете базу данных клиентов, запоминая их анкетные данные (фамилия, имя, отчество). Начиная с третьего обращения клиент переходит в категорию постоянных и получает скидку в 3% при чистке каждой последующей вещи. Все оказываемые услуги подразделяются на виды, имеющие название, тип и стоимость, зависящую от сложности работ. Работа с клиентом первоначально состоит в определении объема работ, вида услуги и, соответственно, ее стоимости. Если клиент согласен, он оставляет вещь (при этом фиксируются услуга, клиент и дата приема) и забирает ее после обработки (при этом фиксируется дата возврата). Вариант13. Грузовыеперевозки Вы работаете в компании, занимающейся перевозками грузов. Вашей задачей является отслеживание стоимости перевозок с учетом заработной платы водителей. Компания осуществляет перевозки по различным маршрутам. Для каждого маршрута вы определили некоторое название, вычислили примерное расстояние и установили некоторую оплату для водителя. Информация о водителях включает фамилию, имя, отчество и стаж. Для проведения расчетов вы храните полную информацию о перевозках (маршрут, водитель, даты отправки и прибытия). По факту некоторых перевозок водителям выплачивается премия. Вариант14. Учеттелефонныхпереговоров Вы работаете в коммерческой службе телефонной компании. Компания предоставляет абонентам телефонные линии для междугородних переговоров. Вашей задачей является отслеживание стоимости междугородних телефонных переговоров. Абонентами компании являются юридические лица, имеющие телефонную точку, ИНН, расчетный счет в банке. Стоимость переговоров зависит от города, в который осуществляется звонок, и времени суток (день, ночь). Каждый звонок абонента автоматически фиксируется в базе данных. При этом запоминаются город, дата, длительность разговора и время суток. Вариант15. Гостиница Вы работаете в гостинице. Вашей задачей является отслеживание финансовой стороны ее работы. Ваша деятельность организована следующим образом: гостиница предоставляет номера клиентам на определенный срок. Каждый номер характеризуется вместимостью, комфортностью (люкс, полулюкс, обычный) и ценой. Вашими клиентами являются различные лица, о которых вы собираете определенную информацию (фамилия, имя, отчество и некоторый комментарий). Сдача номера клиенту производится при наличии свободных мест в номерах, подходящих клиенту по указанным выше параметрам. При поселении фиксируется дата поселения. При выезде из гостиницы для каждого места запоминается дата освобождения. |