Skip to content

Latest commit

 

History

History
52 lines (37 loc) · 5.44 KB

ObjDB_Lab1.md

File metadata and controls

52 lines (37 loc) · 5.44 KB

Лабораторная работа №1

Задание

  1. Придумать предметную область (ПО)
  2. Описать инфологическую и даталогическую модели БД

Ограничения:

  • ПО дожна содержать не менее трех объектов (сущностей)
  • Модель БД дожна содержать типы связей: один к одному, один ко многим, многие ко многим.

Пояснения

Основные элементы ER-моделей (“Entity-Relationship model”):

  • объекты (сущности);
  • атрибуты объектов;
  • связи между объектами.

Инфологическая модель - описание базы данных, её сущностей и связей между ними на понятном человеку языке. Такая модель создаётся без ориентации на какую-либо конкретную СУБД и модель данных. Термины «семантическая модель», «концептуальная модель» и «инфологическая модель» являются синонимами.

Пример:

Склад:
 - ID
 - название
 - адрес
 - ...

Товар:
 - ID
 - название
 - количество
 - ...

Даталогическая модель - представление инфологической модели в терминах конкретной БД.

Создание схемы базы данных на основе конкретной модели данных, например, реляционной модели данных. Для реляционной модели данных даталогическая модель — набор схем отношений, обычно с указанием первичных ключей, а также «связей» между отношениями, представляющих собой внешние ключи.

LAMP, PHPMyAdmin, схема отношений между таблицами, SQL-код.

Связи между объектами

"Один-ко-многим" - тип связи таблиц, когда одной записи главной таблицы можно сопоставить несколько записей подчинённой таблицы. Это наиболее частый вид связи между таблицами. Например, если создавать телефонный справочник, то необходимо учесть, что у одного человека может быть несколько телефонов (2 мобильных, 1 домашний и 1 служебный). Или ещё пример: студент (записи о студентах хранятся в главной таблице) обучается в ВУЗе - он изучает несколько предметов (записи о предметах хранятся в подчинённой таблице), по которым сдаёт экзамены и зачёты.

А связь "многие-ко-многим" возникает в тех случаях, когда одной записи одной таблицы может соответствовать несколько записей другой таблицы и наоборот: когда одной записи второй таблицы может соответствовать несколько записей первой таблицы. Пример такого вида связи: имеем 2 таблицы "Товары" и "Клиенты", каждый клиент может приобрести несколько товаров, в свою очередь каждый товар (по наименованию) может быть приобретён (или заказан) несколькими клиентами. Ещё пример (по ВУЗ): пусть есть 2 таблицы "Преподаватель" и "Студент", каждый преподаватель может обучать нескольких студентов, в то же время каждый студент может обучаться у нескольких преподавателей.

Еще примеры из жизни: Допустим создаем БД описывающее работу какой-то школы

  • Каждая школа гарантированно имеет 1-го директора. Это связь 1 к 1. 1 школа -> 1 директор
  • В каждой школе есть несколько классов это связь 1 ко многим. 1 школа -> много классов
  • Теперь учителя-предметники. Если попробовать составить таблицу отношений учителей с классами то получим довольно сложную картину: 1 учитель может преподавать в нескольких классах, в то же самое время в одном классе может преподавать несколько учителей. Это и есть классическое отношение многие ко многим. Несколько учителей <-> Несколько классов.