3.1 Проектирование структуры базы данных
Для реализации базы данных мною выбрана СУБД MySQL. Web-интерфейс для работы с базой данных реализован с помощью серверного языка сценариев PHP Hypertext Preprocessor. Выполнено содержательное наполнение базы и показаны примеры работы с базой данных. Создание любой базы данных начинается с выбора структуры базы данных. В нашем случае удобнее использовать одиннадцать таблиц с данными. Для более подробного описание структуры базы данных «ДК Юла» обратимся к физической и логической модели.
Логический уровень - это абстрактный взгляд на данные, на нем данные представляются так, как выглядят в реальном мире, и могут называться так, как они называются в реальном мире, например "Клиент", "Занятие" или "Преподаватели". Объекты модели, представляемые на логическом уровне, называются сущностями и атрибутами. Логическая модель данных может быть построена на основе другой логической модели, например на основе модели процессов. Логическая модель данных является универсальной и никак не связана с конкретной реализацией СУБД.
Физическая модель данных, напротив, зависит от конкретной СУБД, фактически являясь отображением системного каталога. В физической модели содержится информация о всех объектах БД. Поскольку стандартов на объекты БД не существует (например, нет стандарта на типы данных), физическая модель зависит от конкретной реализации СУБД. Следовательно, одной и той же логической модели могут соответствовать несколько разных физических моделей. Если в логической модели не имеет значения, какой конкретно тип данных имеет атрибут, то в физической модели важно описать всю информацию о конкретных физических объектах - таблицах, колонках, индексах, процедурах и т. д. Разделение модели данных на логические и физические позволяет решить множество важных задач.[13]
Физическая схема базы данных.
Выделим следующие основные сущности предметной области и их атрибуты.
1. Сущность client (клиент) необходима для хранения информации о клиентах:
· id_student: int(8) (суррогатный ключ)
· fio: varchar(100) (ФИО клиента)
· birthDay: date (Дата рождения)
· id_parent: int(8) (суррогатный ключ)
2. Сущность lessons (занятия) необходима для хранения информации о занятиях:
· id_lesson: int(8) (суррогатный ключ)
· name: varchar(100) (название занятия)
· price: int(5) (стоимость абонемента за месяц)
· time: int(4) (продолжительность занятия)
3. Сущность parents (родители) необходима для хранения информации о родителях:
· id_parent: int(8) (суррогатный ключ)
· fio: varchar(50) (ФИО родителя)
· phone: varchar(11) (телефон родителя)
· address: varchar(100) (адрес родителя)
· passport: varchar(100) (паспортные данные родителя)
4. Сущность schedule (расписание) необходима для хранения информации о расписании занятий:
· id_schedule: int(8) (суррогатный ключ)
· id_lesson: int(8) (суррогатный ключ)
· day_week: varchar(1) (день недели 1,2…7)
· hour: time (время начала занятия)
5. Сущность teacher (учитель) необходима для хранения информации об учителях:
· id_teacher: int(8) (суррогатный ключ)
· fio: varchar(100) (ФИО учителя)
· phone: varchar(11) (телефон учителя)
6. Сущность status (статус) необходима для хранения информации о статусах посещаемости занятий:
· id_status: int(8) (суррогатный ключ)
· name: varchar(20) (наименование статуса посещаемости)
7. Сущность attendance (посещаемость) необходима для хранения информации о посещаемости клиентов:
· id_lesson: int(8) (суррогатный ключ)
· id_student: int(8) (суррогатный ключ)
· date: datetime (дата и время посещения занятия)
· id_status: int(8) (суррогатный ключ)
8. Сущности клиента и занятия объединены связкой ass_clientlessons:
· id_student: int(8) (суррогатный ключ)
· id_lesson: int(8) (суррогатный ключ)
· date_start: date (дата начала обучения)
· date_finish:date (дата окончания обучения)
9. Сущности учителя и занятия объединены связкой ass_teacherlesson:
· id_teacher: int(8) (суррогатный ключ)
· id_lesson: int(8) (суррогатный ключ)
10. Сущность adminra (администратор) необходима для регистрации администраторов
· cod_a: int(2) (суррогатный ключ)
· nik: varchar(20) (логин администратора)
· password: varchar(20) (пароль для авторизации с правами администратора)
11. Сущность authentication (аутентификация) необходима для регистрации родителей на сайте
· id_parent: int(8) (суррогатный ключ)
· login: varchar(15) (логин родителя)
· password: varchar(15) (пароль родителя)
Логическая модель базы данных.
Общая схема базы данных выглядит следующим образом:
Рисунок 3.1 - Логическая модель базы данных
В первую очередь все одиннадцать таблиц базы данных необходимо разделить на четыре вида: таблицы - справочники, таблицы-связки, не заполняемые таблицы, таблицы - аутентификаторы. Наибольшее количество в данной базе данных создано таблиц-справочников. Рассмотрим сначала именно их.
- Введение
- 1. Аналитический обзор
- 1.1 Выбор программной среды
- 1.2 Система управления базами данных MySQL
- 1.3 PHP: Hypertext Preprocessor
- 2. Анализ предметной области
- 2.1 Краткая характеристика сети Детских Клубов «Юла»
- 2.2 Обоснование необходимости разработки
- 2.3 Определение целевого сегмента пользователей, их функции
- 3. Проектная часть разработки
- 3.1 Проектирование структуры базы данных
- Автоматизированные рабочие места (арм), их локальные и отраслевые сети
- Автоматизированное рабочее место
- 4.1. Автоматизированное рабочее место
- 1. Автоматизированное рабочее место
- Используемая вычислительная техника. Количество автоматизированных рабочих мест (арм), характеристика автоматизированного рабочего места бухгалтера. Наличие вычислительной сети и ее структура.
- Обеспечение автоматизированных рабочих мест
- Автоматизированное рабочее место.
- Автоматизированные рабочие места
- 2. Автоматизированные рабочие места
- 2.11. Автоматизированные рабочие места