Что такое СУБД - система управления базой данных

(DBMS - Database Management System )?

1.  Система, которая предоставляет доступ к данным очень большого объема.

2.  Система, которая поддерживает эффективный (быстрый) доступ к данным.

3.  Система, которая поддерживает доступ к данным одновременно для многих пользователей.

4.  Система, которая поддерживает безопасный и атомарный (неделимый) доступ к данным.

Реляционная модель.

§  Базируется (строится) на таблицах, например таких

acct#

name

Balance

 

 

12345

Sally

1000.21

 

34567

Sue

285.48

 

...

...

...

§  Используется большинством современных СУБД

Три аспекта изучения и исследования СУБД.

1. Моделирование и проектирование баз данных.

§  Позволяет выявить некоторые проблемы до перехода к реализации.

2. Программирование: запросы и операции над данными из базы (например, модификация данных).

§  SQL = “интерактивное общение с базой данных”

3. Реализация СУБД.

Настоящий курс = (1) + (2), (3) – не рассматривается.

E/R модель (модель сущностей-связей).

Представление данных основано на диаграммах.

§  Сущность – это объект = “нечто существующее”

§  Множество сущностей - это класс = множество “экземпляров (т. е. подобных)” сущностей (объектов)

§  Атрибут – это свойство объекта (сравните с элементом структуры данных)

§  На диаграмме: объект изображается прямоугольником, атрибут – овалом.

 

НЕ нашли? Не то? Что вы ищете?

Связи.

§  В связи участвуют два или более множества объектов.

§  На диаграмме обозначаются ромбами.

Студенты

 
 

Экземпляр связей.

Конкретный экземпляр (представитель) связи между сущностями представляет собой таблицу, в которой:

§ По одному столбцу для каждого множества сущностей из связи.

§ По одной строке для каждого набора (кортежа) объектов (по одному из каждого такого множества), между которыми существует связь.

Например:

Студент

Предмет

Sally

CS145

Sally

CS245

Joe

CS145

...

...

Множественные связи.

Обычно рассматриваются бинарные связи (т. е. связи между двумя объектами).

§  Тем не менее, есть случаи, когда надо связать три объекта или более

§  Например, нужно связать множества объектов «Студенты», «Предметы» и «Преподаватели». Диаграмма в этом случае может выглядеть так:

Студенты

 
 

Ромб: “Обучение” 

§  Правильно, если все студенты слушают предмет, который ведет какой-то один преподаватель. Связь «Студент»-«Преподаватель» реализована через «Предмет»

§  Но если студенты разделены на подгруппы и в каждой подгруппе свой преподаватель? В этом случае студенты будут связаны с разными преподавателями, ведущими один предмет. Чтобы описать этот случай нужен 3-ой (тройной, тернарный) способ связи.

 

Например:

Студент

Предмет

Преподаватель

Ann

CS145

Don

Bob

CS145

Edy

Cal

CS245

Don

...

...

...

Пример: Пиво-Бары-Посетители

§  будет использоваться в течение всего курса

 


Виды связей.

 

0..n 0..n 0..n 0

Многие-ко-многим Многие-к-одному Один-к-одному

Представление связи Многие-к-одному.

E/R: линия со стрелкой в сторону «к-одному»

§  Линия со стрелкой и закругленным концом = «ровно один»

Пример: Посетители – Пиво – Любимый сорт

 

Представление связи «один-к-одному».

§  Обозначается линией со стрелками в обоих направлениях ( соответствует случаю 0приведенному выше).

§  Иногда важно подчеркнуть, что в связи между объектами один из объектов обязан существовать – на этот объект будет указывать круглая стрелка, назовем эту связь «один-к-ровно-одному».

 

В этой диаграмме, «Производитель» – объект, в схемах, приведенных ранее – атрибут. Где правильный вариант?

Атрибуты связи.

 

§  Изображение для 3-ого (тернарного) способа связи:

Овал: price
 

§  Это действительно множественная (3-ая) связь.

§  Цена зависит от обоих объектов: бара и сорта пива.

§  Замечание: стрелка во множественной связи означает «все остальные объекты определяют один из этих»

§  Нет общего подхода для описания

§  Если цена зависит, например, только от сорта пива, то можно используя 2 бинарные связи: Цена-Пиво и Пиво-Бар

§  Еще лучше: просто сделать цену атрибутом пива

Преобразование множественной связи в бинарную.

§  Громоздко в E/R, но необходимо для некоторых «объектно-ориентированных» моделей

§  Создается новый объект-связь для представления строк множества связей

§  Например, (Joe's Bar, Bud, $2.50) для «Продаж»

§  Другие объекты связываются как «многие-к-ровно-одному» с новым объектом-связью

 

Роли.

Иногда множество объектов может быть связано с самим собой.

§  Для отличия конец связи помечается меткой, которая называется ролью.

Ромб: Женаты

Муж Жена

Подпись: Посетители

Муж

Жена

d1

d2

d5

d4

...

...

1 2

Подпись: Посетители



Ромб:

Друг1

Друг3

d1

d2

d1

d3

d2

d1

d2

d4

...

...

§  Замечание: Друзья – есть симметрия, Семья - нет

§  В E/R модели нет способа отобразить симметрию.

Вопрос по модели:

Могли бы мы заменить связь «женаты» с двумя ролями: муж и жена – симметричной связью «супруги»?

Подклассы.

Подкласс = частный случай = меньше объектов = больше свойств.

Пример: Эль – это вид пива. Дополним свойства (=атрибуты и связи) пива, атрибутом «цвет» для этого вида (эль).

Подклассы в E/R модели.

§  Подклассы образуют дерево (не множественное наследование)

§  Is a – треугольник указывает на подкласс

 

Различия в определении подкласса.

1.  E/R модель: Сущность (объект) имеет компоненты в каждом из множеств объектов, к которым она логически принадлежит.

§  Свойства объекта являются объединением свойств этих компонент распределены по множествам объектов

2.  Объектно-ориентированная модель: Объект (сущность) принадлежит только одному классу.

§  Объект наследует свойства своих суперклассов.

 

Pete's Ale

 

Ключи.

Ключ – это множество таких свойств (атрибутов) объекта, что не существует 2-х объектов с одинаковыми свойствами (значениями ключевых атрибутов).

§  В E/R модели, каждое множество объектов должно иметь ключ. В случае, когда множество имеет несколько ключей, роль ключа «назначается» одному из них.

§  В E/R диаграммах ключ обозначается подчеркиванием атрибутов, определяющих ключ.

Пример.

Допустим, что «name» - это ключ для множества объектов «Beers».

 

§  Название сорта пива является ключом и для Ales.

§  В общем случае, ключ корневого объекта – это ключ и всех остальных объектов.

Пример: Составной ключ.

§  Возможно, что «Время» + «Аудитория» тоже ключ, но это не отмечается как ключ.