What is a Database Management System

advertisement
Что такое СУБД - система управления базой данных
(DBMS - Database Management System )?
1. Система, которая предоставляет доступ к данным очень большого
объема.
2. Система, которая поддерживает эффективный (быстрый) доступ к
данным.
3. Система, которая поддерживает доступ к данным одновременно для
многих пользователей.
4. Система, которая поддерживает безопасный и атомарный
(неделимый) доступ к данным.
Реляционная модель.
 Базируется (строится) на таблицах, например таких
acct#
12345
34567
...
name
Sally
Sue
...
Balance
1000.21
285.48
...
 Используется большинством современных СУБД
Три аспекта изучения и исследования СУБД.
1. Моделирование и проектирование баз данных.
 Позволяет выявить некоторые проблемы до перехода к реализации.
2. Программирование: запросы и операции над данными из базы
(например, модификация данных).
 SQL = “интерактивное общение с базой данных”
3. Реализация СУБД.
Настоящий курс = (1) + (2), (3) – не рассматривается .
E/R модель (модель сущностей-связей).
Представление данных основано на диаграммах.
 Сущность – это объект = “нечто существующее”
 Множество сущностей - это класс = множество “экземпляров (т.е.
подобных)” сущностей (объектов)
 Атрибут – это свойство объекта (сравните с элементом структуры
данных)
 На диаграмме: объект изображается прямоугольником, атрибут –
овалом.
Ф.И.О.
Телефон
Номер
Рост
Студенты
Связи.
 В связи участвуют два или более множества объектов.
 На диаграмме обозначаются ромбами.
Студенты
Изучает
Предметы
Экземпляр связей.
Конкретный экземпляр (представитель) связи между сущностями
представляет собой таблицу, в которой:
 По одному столбцу для каждого множества сущностей из связи.
 По одной строке для каждого набора (кортежа) объектов (по одному
из каждого такого множества), между которыми существует связь.
Например:
Студент
Sally
Sally
Joe
...
Предмет
CS145
CS245
CS145
...
Множественные связи.
Обычно рассматриваются бинарные связи (т.е. связи между двумя
объектами).
 Тем не менее, есть случаи, когда надо связать три объекта или
более
 Например, нужно связать множества объектов «Студенты»,
«Предметы» и «Преподаватели». Диаграмма в этом случае может
выглядеть так:
Студенты
Изучает
Предметы
Преподает
Преподаватели
 Правильно, если все студенты слушают предмет, который ведет
какой-то один преподаватель. Связь «Студент»-«Преподаватель»
реализована через «Предмет»
 Но если студенты разделены на подгруппы и в каждой подгруппе
свой преподаватель? В этом случае студенты будут связаны с
разными преподавателями, ведущими один предмет. Чтобы описать
этот случай нужен 3-ой (тройной, тернарный) способ связи.
Предметы
Студенты
Регистрация
Преподаватели
Например:
Студент
Ann
Bob
Cal
...
Предмет
CS145
CS145
CS245
...
Преподаватель
Don
Edy
Don
...
Пример: Пиво-Бары-Посетители
 будет использоваться в течение всего курса
name
addr
license
Bars
Serves
Frequents
Beers
name
Drinkers
Likes
manf
name
addr
Виды связей.
0..n 0..n
Многие-ко-многим
0..n
0..1
Многие-к-одному
0..1
0..1
Один-к-одному
Представление связи Многие-к-одному.
E/R: линия со стрелкой в сторону «к-одному»
 Линия со стрелкой и закругленным концом = «ровно один»
Пример: Посетители – Пиво – Любимый сорт
name
addr
license
Bars
Serves
Frequents
Favorite
Beers
name
Drinkers
Likes
manf
name
addr
Представление связи «один-к-одному».
 Обозначается линией со стрелками в обоих направлениях (
соответствует случаю 0..1 0..1 приведенному выше).
 Иногда важно подчеркнуть, что в связи между объектами один из
объектов обязан существовать – на этот объект будет указывать
круглая стрелка, назовем эту связь «один-к-ровно-одному».
Manfs
Bestseller
Beers
Произведено
В этой диаграмме, «Производитель» – объект, в схемах, приведенных
ранее – атрибут. Где правильный вариант?
Атрибуты связи.
price
Bars
Sells
Beers
 Изображение для 3-ого (тернарного) способа связи:
price
Prices
Bars
Sells
Beers
 Это действительно множественная (3-ая) связь.
 Цена зависит от обоих объектов: бара и сорта пива.
 Замечание: стрелка во множественной связи означает «все
остальные объекты определяют один из этих»
 Нет общего подхода для описания
 Если цена зависит, например, только от сорта пива, то можно
используя 2 бинарные связи: Цена-Пиво и Пиво-Бар
 Еще лучше: просто сделать цену атрибутом пива
Преобразование множественной связи в бинарную.
 Громоздко в E/R, но необходимо для некоторых «объектноориентированных» моделей
 Создается новый объект-связь для представления строк множества
связей
 Например, (Joe's Bar, Bud, $2.50) для «Продаж»
 Другие объекты связываются как «многие-к-ровно-одному» с
новым объектом-связью
BarBeerPrice
TheBar
Bars
TheBeer
Beers
ThePrice
Prices
Роли.
Иногда множество объектов может быть связано с самим собой.
 Для отличия конец связи помечается меткой, которая называется
ролью.
Женаты
Муж
Жена
Посетители
Муж
d1
d5
...
Жена
d2
d4
...
Друзья
1
2
Посетители
Друг1
d1
d1
d2
d2
...
Друг3
d2
d3
d1
d4
...
 Замечание: Друзья – есть симметрия, Семья - нет
 В E/R модели нет способа отобразить симметрию.
Вопрос по модели:
Могли бы мы заменить связь «женаты» с двумя ролями: муж и жена –
симметричной связью «супруги»?
Подклассы.
Подкласс = частный случай = меньше объектов = больше свойств.
Пример: Эль – это вид пива. Дополним свойства (=атрибуты и связи)
пива, атрибутом «цвет» для этого вида (эль).
Подклассы в E/R модели.
 Подклассы образуют дерево (не множественное наследование)
 Is a – треугольник указывает на подкласс
name
Beers
isa
color
Ales
manf
Различия в определении подкласса.
1. E/R модель: Сущность (объект) имеет компоненты в каждом из
множеств объектов, к которым она логически принадлежит.
 Свойства объекта являются объединением свойств этих
компонент распределены по множествам объектов
2. Объектно-ориентированная
модель:
Объект
(сущность)
принадлежит только одному классу.
 Объект наследует свойства своих суперклассов.
name
Beers
manf
isa
Pete's Ale
color
Ales
Ключи.
Ключ – это множество таких свойств (атрибутов) объекта, что не
существует 2-х объектов с одинаковыми свойствами (значениями
ключевых атрибутов).
 В E/R модели, каждое множество объектов должно иметь ключ. В
случае, когда множество имеет несколько ключей, роль ключа
«назначается» одному из них.
 В E/R диаграммах ключ обозначается подчеркиванием атрибутов,
определяющих ключ.
Пример.
Допустим, что «name» - это ключ для множества объектов «Beers».
name
Beers
manf
isa
color
Ales
 Название сорта пива является ключом и для Ales.
 В общем случае, ключ корневого объекта – это ключ и всех
остальных объектов.
Пример: Составной ключ.
Код
Факультет
Время
Предметы

Аудитория
Возможно, что «Время» + «Аудитория» тоже ключ, но это не
отмечается как ключ.
Download