Проектирование баз данных методом нормализации
Создание структуры базы данных на примере "Школьного журнала" с использованием метода и принципа нормализации. Понятия базы данных, архитектуры БД и проектирования. Описание предметной области; приложения для работы с базой данных TTable и TQuery.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 01.04.2012 |
Размер файла | 996,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Алексей
Владими-рович
05.08.
1998
Набережная 1
Физика
03.09.11
4
Что такое физика
1-2
Основные физически величины
3
Приведем эти отношения к первой нормальной форме
Отношение находится в первой нормальной форме тогда и только тогда, когда на пересечении каждого столбца и каждой строки находятся только элементарные значения атрибутов.
Тогда имеем следующую таблицу отношений:
Таким образом, данное отношение находится в первой нормальной форме на пересечении каждого столбца и каждой строки находятся только элементарные значения.
Фамилия |
Имя |
Отчество |
Дата рождения |
Адрес |
Урок |
Дата занятия |
Оценка |
Тема |
Д/З |
|
Галанов |
Михаил |
Сергеевич |
11.04.1998 |
Комсомоль-ская 35 |
Физика |
03,09,11 |
5 |
Что такое физика |
1-2 |
|
Галанов |
Михаил |
Сергеевич |
11,04,1998 |
Комсомоль-ская 35 |
Физика |
05,09,11 |
0 |
Основные физические величины |
3 |
|
Данилов |
Сергей |
Геннадье-вич |
18.05.1998 |
Пер. Солнечный 1/2 |
Физика |
03,09,11 |
3 |
Что такое физика |
1-2 |
|
Данилов |
Сергей |
Геннадье-вич |
18,05,1998 |
Пер Солнечный 1/2 |
Физика |
05,09,11 |
0 |
Основные физические величины |
3 |
|
Бордов-ский |
Алексей |
Владими-рович |
05.08.1998 |
Набережная 1 |
Физика |
03,09,11 |
4 |
Что такое физика |
1-2 |
|
Бордов-ский |
Алексей |
Владими-рович |
05,08,1998 |
Набережная |
Физика |
05,09,11 |
0 |
Основные физические величины |
3 |
Фамилию, Имя, Отчество, Адрес, Дата рождения.
Второе с информацией о проведенных занятиях:
Название предмета, Дата проведения занятия, Тема занятия, Оценка, Домашнее задание
Разберемся с первым отношением:
Приведем его ко второй нормальной форме
Отношение находится во второй нормальной форме тогда и только тогда, когда оно находится в первой нормальной форме и не содержит неполных функциональных зависимостей, непервичных атрибутов от атрибутов первичного ключа.
Фамилия |
Имя |
Отчество |
Дата рождения |
Адрес |
|
Галанов |
Михаил |
Сергеевич |
11.04.1998 |
Комсомольская 35 |
|
Данилов |
Сергей |
Геннадьевич |
18.05.1998 |
Пер. Солнечный1/2 |
|
Бордовский |
Алексей |
Владимирович |
05.08.1998 |
Набережная 1 |
Этот набор отношений не содержит неполных функциональных зависимостей, и поэтому эти отношения находятся во второй нормальной форме.
У нас остается следующий набор отношений, который имеет отношение только к проведенным занятиям, и который так же необходимо привести к нормальной форме:
Урок |
Дата занятия |
Оценка |
Тема |
Д/З |
Урок |
|
Физика |
03,09,11 |
5 |
Что такое физика |
&1-2 |
Физика |
|
Физика |
05,09,11 |
0 |
Основные физически величины |
&3 |
Физика |
|
Физика |
03,09,11 |
3 |
Что такое физика |
&1-2 |
Физика |
|
Физика |
05,09,11 |
0 |
Основные физически величины |
&3 |
Физика |
|
Физика |
03,09,11 |
4 |
Что такое физика |
&1-2 |
Физика |
|
Физика |
05,09,11 |
0 |
Основные физически величины |
&3 |
Физика |
Для этого существующую таблицу представим в виде двух, в одной будет содержаться информация касательно проведенного урока, а именно отметка и дата занятия.
Урок |
Дата занятия |
Оценка |
|
Физика |
03,09,11 |
5 |
|
Физика |
05,09,11 |
0 |
|
Физика |
03,09,11 |
3 |
|
Физика |
05,09,11 |
0 |
|
Физика |
03,09,11 |
4 |
|
Физика |
05,09,11 |
0 |
Как видим, этот набор отношений не содержит неполных функциональных зависимостей, и поэтому эти отношения так же находятся во второй нормальной форме.
Вторая таблица будет содержать информацию которая касается темы проведенного занятия, и полученного учениками домашнего задания.
Рассмотрим оставшиеся отношения:
Тема |
Д/З |
|
Что такое физика |
&1-2 |
|
Основные физически величины |
&3 |
|
Что такое физика |
&1-2 |
|
Основные физически величины |
&3 |
|
Что такое физика |
&1-2 |
|
Основные физически величины |
&3 |
Как видим, этот набор отношений так же не содержит неполных функциональных зависимостей, и поэтому эти отношения находятся во второй нормальной форме.
Но для корректной работы нашей базы данных нам не обходимо привести отношения к третьей нормальной форме:
Отношение находится в третьей нормальной форме тогда и только тогда, когда оно находится во второй нормальной форме и не содержит транзитивных зависимостей.
Для этого приведем существующие наборы отношений к следующему виду:
Для начала каждому ученику и предмету присвоим персональный код, и получим следующие отношения:
Код ученика ->Фамилия, Имя, Отчество, Дата рождения, Адрес
Код предмета ->Название предмета
Код ученика ->Код предмета ->Дата проведения занятия ->Оценка
Дата проведения занятия ->Код предмета->Тема, Домашнее задание
Где Код ученика, Код предмета, Дата проведения занятия являются первичными ключами, таким образом имея данный набор отношений получаем следующий набор таблиц:
Ученики
Код ученика* |
Фамилия |
Имя |
Отчество |
Дата рождения |
Адрес |
|
1 |
Галанов |
Михаил |
Сергеевич |
11.04.1998 |
Комсомольская 35 |
|
2 |
Данилов |
Сергей |
Геннадьевич |
18.05.1998 |
Пер.Солничный1/2 |
|
3 |
Бордовский |
Алексей |
Владимирович |
05.08.1998 |
Набережная 1 |
Описание структуры:
Предмет
Код Предмета* |
Название предмета |
|
Inf_7 |
Информатика |
|
Fiz_7 |
Физика |
Описание структуры:
Отметка
Код ученика* |
Код предмета* |
Дата проведения |
Оценка |
|
1 |
Fiz_7 |
03,09,11 |
3 |
|
2 |
Fiz_7 |
03,09,11 |
5 |
|
3 |
Fiz_7 |
03,09,11 |
4 |
Описание структуры:
Тематический план
Дата занятия* |
Код предмета* |
Тема занятия |
Домашнее задание |
|
03,09,11 |
Inf_7 |
Что такое информатика |
&1-2 |
|
03,09,11 |
Fiz_7 |
Что такое физика |
&1 |
Описание структуры:
Теперь необходимо удостовериться, что при естественном соединении мы не потеряем ни одной строки и не получим лишних кортежей. (Фамилия, Имя, Отчество, Дата рождения, Адрес, Название предмета, Дата проведения занятия, Тема занятия, Оценка, Домашнее задание). Полученный набор отношений находится в третьей нормальной форме.
Как было сказано выше, что приведения отношений к третьей нормальной форме вполне достаточно для реализации базы данных. В нашем случае так же вполне достаточно привести отношения к третьей нормальной форме, что мы и сделали, теперь можем приступать к реализации данной базы данных.
Установим связи между полученными таблицами:
Создание приложения для работы с базой данных TTable и TQuery
TTable и TQuery являются основными компонентами, используемыми при программировании приложений баз данных (TStoredProc не в счет, и без него можно прекрасно обойтись, вызывая процедуры через select или execute в компоненте TQuery). TTable предоставляет доступ как к таблицам, а TQuery позволяет выполнять произвольные запросы. Если с TQuery все понятно - он выполняет тот запрос, который написан в свойстве TQuery.SQL - то TTable скрывает очень много подробностей своей работы от программиста. Без SQL Monitor увидеть все тонкости невозможно (если кто не знает - SQL Monitor находится в меню Database).
Итак, запустите Delphi, откройте SQL Monitor, положите на форму компонент TDatabase, подсоединитесь к серверу, затем положите компонент TTable, присоедините его к алиасу TDatabase и выберите любую таблицу из списка (свойство TableName). Переключитесь на SQL Monitor, сотрите все что там появилось, переключитесь обратно, и включите TTable.Active:=True; Смотрим в SQL Monitor (лог с самого начала):
· первым запросом BDE хочет убедиться, что выбранная нами таблица существует.
· второй запрос выбирает список полей выбранной таблицы, их названий, типов, условий проверки и т.п.
· третий запрос выбирает информацию об индексах указанной таблицы. Определяется, есть ли среди них первичный ключ, и по каким полям построены индексы.
· четвертый запрос почти повторяет второй, и выбирает информацию о полях - условия проверки, "вычисляемость" поля, допустимость NULL и прочее.
· собственно, пятый запрос открывает таблицу, формируя запрос SELECT FIELD1, FIELD2, ... FROM TABLE ORDER BY PK_FIELD ASC.
Заметьте, что подобные запросы выполняются каждый раз при открытии таблицы (любой) компонентом TTable. Перечитывания этих данных можно избежать, если включить у используемого алиаса параметр ENABLE SCHEMA CACHE. При этом считанную первый раз информацию BDE размещает на диске в указанном каталоге (SCHEMA CACHE DIR) в специальном файле, кэширует информацию для SCHEMA CACHE SIZE количества таблиц, и держит эту информацию в кэше в течение SCHEMA CACHE TIME секунд (если -1, то вечно). Если структуры таблиц закэшированы, то при их изменении на сервере (например, добавили новое поле) приложение будет работать со старой структурой, что может вызвать серьезные проблемы в работе приложения. SCHEMA CACHE нужно использовать только тогда, когда структура базы данных определена окончательно и не изменяется. Если все же очень сильно хочется использовать кэширование структур таблиц, то не забывайте правильно установить параметр SCHEMA CACHE TIME. Или при первом за день подключении приложения к серверу сначала кэширование структур можно выключить, отсоединиться, включить и подсоединиться снова - таким образом в самом начале работы кэш структур таблиц будет создан, и будет использоваться в течение дня.
Примечание: параметры SCHEMA CACHE не имеют абсолютно никакого отношения к механизму Cached Updates или к кэшированию данных.
Вернемся к запросу, которым TTable открыл таблицу. В конце запроса стоит указание порядка сортирвки - ORDER BY FIELD ASC. По умолчанию TTable сортирует данные в порядке поля первичного ключа. И кстати, если пользоваться свойством TTable.IndexName, то все равно к запросу будет добавляться ORDER BY INDEXFIELD ASC. Таким образом получается, что свойство IndexName при работе с SQL-серверами бессмыслено. Вместо него нужно просто использовать свойство IndexFieldNames. Даже если в этом свойстве указать поле, по которому нет индекса, то все равно BDE "прицепит" к запросу ORDER BY FIELD ASC. Кстати, BDE абсолютно игнорирует направление индекса, и всегда в запросе добавляет ASC, даже если индекс по этому полю создан как DESCENDING (по убыванию). Получается, что отсортировать таблицу в
TTable по убыванию нельзя.
Заключение
В процессе выполнения моей дипломной работы, я углубил знания об информационных системах, научился разрабатывать структуры баз данных, познакомился с принципом нормализации. Создал приложение для работы с базой данных на примере «Школьного журнала».
Целью моей дипломной работы было создание структуры базы данных на примере школьного журнала, методом нормализации.
Считаю, что цель достигнута, я разработал структуру базы данных, используя метод нормализации. Использовал первую, вторую, и третью нормальную форму.
Для того чтобы проверить работоспособность созданной структуры, я в среде программирования Delphi создал приложение, которое позволяет работать с моей базой данных.
Создавая приложение, я изучил основы языка SQL запросов, и использовал его для создания основного интерфейса журнала.
Надеюсь, что созданное мною приложение будет иметь приложение на практике в школе или ВУЗе.
Список литературы
1. Залотова С.И. Парактикум по Access. - М.: Финансы и статистика, 2001г.
2. Информатика. Учебное пособие / Под ред. В.Г. Кирия. - Иркутск: ИрГТУ ,1998 часть 2.
3. Могилев А.В., Информатика: Учеб. пособие для студентов пед. вузов. М.: Издательский центр "Академия", 2004г.
4. Симонович С.В. и др., Информатика. Базовый курс - СПб: Издательство «Питер», 2000.
5. Тихомирова А.Н., Прокди А.К., Колосков П.В., Клеандрова И.А. и др., Microsoft office 2007. Все программы пакета: MS Word. Самоучитель - СПб.: Наука и Техника, 2008.
6. Карпова Т.С. Базы данных - модели, разработка, реализации. Электронный учебник.
7. Фленов-Библия Delphi.
8. Самоучитель. Базы данных в Delphi.
9. Статья в википедии. Нормальная форма. режим доступа \\ http://ru.wikipedia.org/wiki/Нормальная_форма
10. Учебник по PHP. Взаимодействие PHP и MySQL.Нормализация базы данных \\ режим доступа http://softtime.ru/bookphp/gl12_6.php
11. Нормализация таблиц в реляционной модели базы данных \\ режим доступа http://referatwork.ru/refs/source/ref-11367.html
12. Статья: Нормализация реляционных баз данных \\ режим доступа http://club.shelek.ru/viewart.php?id=177
13. Описание основных приемов нормализации базы данных \\ режим доступа http://support.microsoft.com/kb/283878/ru
14. Основы нормализации базы данных \\ режим доступа http://ms.by.ru/HTML/19.htm
Введение в базы данных. 4.2Теория нормальных форм \\ режим доступа http://www.mstu.edu.ru/study/materials/zelenkov/ch_4_2.html
Приложение
Поскольку основной целью моей дипломной работы было создание структуры базы данных, Теперь рассмотрим кратко составные части приложение для работы с данной базой данных.
Оглавление:
Форма списка учащихся:
Форма для добавления нового занятия, а так же отметки ученика
Форма урока «Физики» с отметками учащихся
Размещено на Allbest.ru
Подобные документы
Понятие нормализации таблиц базы данных и ее цели. Этапы процесса нормализации. Пример ненормализованных данных. Нормальные формы, к которым приводятся таблицы. Реляционная алгебра над учебной базой. База данных для предметной области "Учебные пособия".
контрольная работа [216,1 K], добавлен 30.07.2010Система управления базой данных (СУБД), централизованное обеспечение безопасности и целостности данных, защита от несанкционированного доступа. Построение концептуальной и реляционной моделей. Процесс нормализации. Проектирование базы данных в ACCESS.
курсовая работа [1,8 M], добавлен 29.10.2008Назначение базы данных для обеспечения работы автобусного парка. Основные возможности админпанели. Выполняемые базой данных и приложением функции. Инфологическое моделирование данных. Описание разработанного web-приложения. Проектирование базы данных.
курсовая работа [2,2 M], добавлен 01.02.2013Анализ предметной области "Ремонт часов", с использованием СУБД MySQL, языка HTML, технологии PHP и ADO и выбора скриптовых языков VBScript или JavaScript. Нормализация базы данных. Пошаговое описание нормализации базы данных (методом ER-диаграмм).
курсовая работа [782,4 K], добавлен 18.06.2010Процесс проектирования базы данных на основе принципов нормализации. Применение инфологической модели на втором этапе проектирования. Семантика предметной области в модели базы данных. Оформление, выдача и обмен паспорта. Модель "сущность-связь".
курсовая работа [67,9 K], добавлен 27.02.2009Определение понятия и общее описание базы данных как упорядоченной информационной системы на носителе информации. Описание предметной области и разработка приложения базы данных, содержащей информацию о расписании занятий, для преподавателей кафедры.
курсовая работа [1,3 M], добавлен 08.08.2012Сущность базы данных. Процесс построения концептуальной модели. Построение реляционной модели, создание ключевого поля. Процесс нормализации. Проектирование базы данных в ACCESS. Порядок создание базы данных. Создание SQL запросов и работа в базе данных.
курсовая работа [185,6 K], добавлен 08.11.2008Анализ предметной области. Предположительный набор необходимых функций. Даталогическое и инфологическое проектирование. Реляционная модель данных. Создание запросов и атрибутов. Физическая модель данных. Разработка приложения для работы с базой данных.
курсовая работа [720,8 K], добавлен 26.04.2015Базы данных - важнейшая составная часть информационных систем. Проектирование базы данных на примере предметной области "Оргтехника". Сбор информации о предметной области. Построение информационно-логической модели данных. Разработка логической структуры.
курсовая работа [318,6 K], добавлен 24.12.2014Построение концептуальной модели. Проектирование реляционной модели данных на основе принципов нормализации: процесс нормализации и глоссарий. Проектирование базы данных в Microsoft Access: построение таблиц, создание запросов в том числе SQL – запросов.
курсовая работа [35,9 K], добавлен 08.11.2008