Презентация на тему: Лекция 2 Основные модели данных

Лекция 2 Основные модели данных
Классификация моделей данных
Классификация моделей данных
Уровни моделей данных (последовательность разработки БД)
Лекция 2 Основные модели данных
Типы моделей БД
Иерархическая модель
Лекция 2 Основные модели данных
Иерархическая модель
Иерархическая модель данных
Лекция 2 Основные модели данных
Лекция 2 Основные модели данных
Лекция 2 Основные модели данных
Иерархическая модель
Иерархическая модель
Сетевая модель данных
Лекция 2 Основные модели данных
Сетевая модель
Сетевая модель данных
Сетевая модель данных
Сетевая модель
Сетевая модель
Система инвертированных списков
Система инвертированных списков
Преимущества дореляционных моделей данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Достоинства и недостатки РМД
Реляционная модель данных
Реляционная модель данных
Операции над отношениями
Реляционная модель данных
Операции над отношениями
Каждая операция реляционной алгебры использует одну или несколько таблиц (отношений) в качестве ее операндов и продуцирует в результате новую таблицу, т.е.
Пример декартова произведения
Отношение (теория)
Декартово произведение
Отношение - таблица
Лекция 2 Основные модели данных
Основные понятия реляционных баз данных
Элементы реляционной модели
Схема отношения
ДОМЕН
Элементы реляционной модели
Организация связей между таблицами
Организация связей между таблицами
Пример связи внутри таблицы
Свойства реляционной таблицы
Реляционная модель представляет собой базу данных в виде множества взаимосвязанных отношений.
Связи отношений
Крис Дейт
Три понятия целостности
Ограничения целостности
Целостность на уровне сущности
Правило категорной целостности:
ЦЕЛОСТНОСТЬ НА УРОВНЕ СУЩНОСТИ
Целостность на уровне ссылки
ЦЕЛОСТНОСТЬ НА УРОВНЕ ССЫЛКИ
Типы ограничений
Ограничения ключей
Другие ограничения
Каскадная ссылочная целостность
Ключи
Ключи
Ключи отношения
Ключевые атрибуты
Ключи
Ключи
Внешний ключ
NULL -значение
NULL -значение
NULL -значение
NULL -значение
Пустое значение
NULL -значение
Тип данных
1/78
Средняя оценка: 4.9/5 (всего оценок: 45)
Код скопирован в буфер обмена
Скачать (637 Кб)
1

Первый слайд презентации: Лекция 2 Основные модели данных

1 Лекция 2 Основные модели данных Модель данных – это совокупность структуры данных и операций их обработки

Изображение слайда
2

Слайд 2: Классификация моделей данных

2 Классификация моделей данных Модель данных - это некоторая абстракция, которая, будучи применима к конкретным данным, позволяет пользователям и разработчикам трактовать их уже как информацию, то есть сведения, содержащие не только данные, но и взаимосвязь между ними. (©) Владислав Лавров, vlavrov.professorjournal.ru

Изображение слайда
3

Слайд 3: Классификация моделей данных

3 Классификация моделей данных Модели данных Инфологические Даталогические Физические Модель «сущность-связь» ( ER ) Документальные Фактографические Основаны на файловых структурах Основаны на странично-сегментной организации Дескрипторные Тезаурусные Иерархические Сетевые Реляционные Объектно-ориентированные

Изображение слайда
4

Слайд 4: Уровни моделей данных (последовательность разработки БД)

4 Уровни моделей данных (последовательность разработки БД) Предметная область (часть реального мира, отражаемая в БД) Пользователи АБД ИНФОЛОГИЧЕСКАЯ МОДЕЛЬ Обобщенное, не привязанное к какой-либо СУБД, описание предметной области (набор данных, типов, связей и др.) ДАТАЛОГИЧЕСКАЯ МОДЕЛЬ Описание на языке конкретной СУБД ФИЗИЧЕСКАЯ МОДЕЛЬ Описание хранимых данных База данных Модели, используемые СУБД

Изображение слайда
5

Слайд 5

5 Типы моделей БД (по П.Робу ) Иерархические Сетевые Реляционные C истема индексов

Изображение слайда
6

Слайд 6: Типы моделей БД

Иерархическая модель данных (ИМД). Сетевая модель данных (СМД). Реляционная модель данных (РМД). Объектно-реляционная модель данных (ОРМД ). Стандарт SQL -3 ( SQL-2003). Oracle ( с версии 8.0 ), DB2, Informix, PostgreSQL, SQL Server 2008 и др.) Объектно-ориентированная модель данных ( ООМД). O2, GemStone, Iris и др. Стандарт ODMG 3.0 ( Object Database Management Group ). Многомерные базы данных. Потоковые базы данных. NoSQL } I поколение - II поколение - III поколение

Изображение слайда
7

Слайд 7: Иерархическая модель

7 Иерархическая модель Иерархическая модель БД представляет собой совокупность объектов различного уровня, причем объекты нижнего уровня подчинены объектам верхнего уровня. Объекты, связанные иерархическими отношениями, образуют ориентированный граф

Изображение слайда
8

Слайд 8

8 Существует строгая подчиненность элементов: один главный, остальные подчиненные. Например, система каталогов на диске. Иерархическая модель

Изображение слайда
9

Слайд 9: Иерархическая модель

9 Иерархическая модель Свойства иерархической модели: каждый узел связан только с одним вышестоящим узлом, кроме вершины иерархическая модель данных имеет только одну вершину, узел не подчинен более никаким узлам от каждого узла существует единственный путь к вершине связь не может быть установлена между объектами, находящимися через уровень связь между узлами первого уровня не определяется

Изображение слайда
10

Слайд 10: Иерархическая модель данных

10 Иерархическая модель данных Директор Руководитель отдела продаж Руководитель PR- отдела Руководитель отдела обслуживания Сотрудник Сотрудник Сотрудник Сотрудник Сотрудник

Изображение слайда
11

Слайд 11

Полный сцепленный ключ. Операции над данными. Навигация в ИМД. Основной недостаток: дублирование данных. Иерархическая модель данных

Изображение слайда
12

Слайд 12

12 Пример иерархии между сегментами Сегмент типа B Сегмент типа C Сегмент типа D Сегмент типа E Сегмент типа А Уровень 1 Уровень 2 Уровень 3 Логически исходный (корневой) сегмент Логически подчиненные сегменты

Изображение слайда
13

Слайд 13

13 Пример структуры иерархического дерева Название сегмента Названия полей

Изображение слайда
14

Слайд 14: Иерархическая модель

14 Иерархическая модель Преимущества: Простота понимания и использования, быстрота доступа к данным. Простота оценки операционных характеристик благодаря заранее заданным взаимосвязям и тому, что операции манипулирования данными являются навигационными, т.е. разработчик приложения явным образом описывает всю процедуру обработки.

Изображение слайда
15

Слайд 15: Иерархическая модель

15 Иерархическая модель Недостатки: Отсутствие универсальности Не всякую информацию можно выразить в иерархической модели данных Исключительно навигационный принцип доступа к данным Доступ к данным только через корневой элемент Трудность реализации взаимосвязей «многие-ко-многим». При этом искусственно созданная структура иерархической модели становится громоздкой, может потребоваться хранение избыточных данных на физическом уровне.

Изображение слайда
16

Слайд 16: Сетевая модель данных

16 Сетевая модель данных Элемент данных - минимальная информационная единица, доступная пользователю с использованием СУБД Агрегат данных - более высокий уровень обобщения в модели. Агрегат имеет имя, по которому в системе допустимо обращение к нему. Разработана рабочей группой по базам данных ( Data Base Task Group, DBTG ) Ассоциации КОДАСИЛ ( Confer ence on Dat a Systems Languages, CODASYL) Пример : СУБД Integrated Database Management System ( IDMS ) компании Cullinet Software, Inc. (1972 г.)

Изображение слайда
17

Слайд 17

17 Сетевые БД более гибкие: нет явно выраженного главного элемента и существует возможность установления горизонтальных связей. Например, организация информации в Интернете ( W W W ). Сетевая модель данных Сетевая модель базы данных представляет совокупность объектов различного уровня, однако схема связей между объектами может быть любой.

Изображение слайда
18

Слайд 18: Сетевая модель

18 Сетевая модель Элементами этой модели являются: уровень, узел, связь Отличия в том, что элемент одного уровня может быть связан с любым числом элементов соседнего уровня Не существует подчиненности уровней друг другу Свойства сетевой модели: Связь не может быть установлена между объектами, находящимися через уровень Связь между узлами первого уровня не определяется

Изображение слайда
19

Слайд 19: Сетевая модель данных

19 Сетевая модель данных Сотрудник 1 Сотрудник 2 Сотрудник 3 Сотрудник 4 Проект 1 Проект 2 Проект 3 Заказчик 2 Заказчик 3 Заказчик 4 4 Заказчик 1

Изображение слайда
20

Слайд 20: Сетевая модель данных

20 Сетевая модель данных Запись - совокупность агрегатов или элементов данных, моделирующая некоторый класс объектов реального мира. Различают тип записи и экземпляр записи Набор - двухуровневый граф, связывающий отношением «один ко многим» два типа записи. (!) Особенности модели - наборы объединяются в сетевой граф, потомок может иметь любое число предков !!!

Изображение слайда
21

Слайд 21: Сетевая модель

21 Сетевая модель Преимущества: универсальность возможность доступа к данным через значения нескольких отношений

Изображение слайда
22

Слайд 22: Сетевая модель

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

Изображение слайда
23

Слайд 23: Система инвертированных списков

23 Система инвертированных списков – система индексов Систему инвертированных списков можно рассматривать как частный случай сетевой модели данных, которая имеет два уровня Основные элементы: основной файл, инвертированный список (файл), список связей

Изображение слайда
24

Слайд 24: Система инвертированных списков

24 Система инвертированных списков Инвертированные списки являются основой для создания информационно-поисковых систем В информационно-поисковых системах ключевые атрибуты соответствуют ключевым словам, определяющим тематику поиска

Изображение слайда
25

Слайд 25: Преимущества дореляционных моделей данных

25 Преимущества дореляционных моделей данных Развитие средства управления данными во внешней памяти на низком уровне Возможность построения вручную эффективных прикладных систем; Недостатки дореляционных моделей данных Слишком сложно пользоваться Фактически необходимы знания о физической организации Прикладные системы зависят от этой организации (логическая и физическая зависимости данных); Логика построения приложений перегружена деталями организации доступа к БД (©) Владислав Лавров, vlavrov.professorjournal.ru

Изображение слайда
26

Слайд 26: Реляционная модель данных

26 Реляционная модель данных Теоретической основой этой модели стала теория отношений, основу которой заложили два логика — американец Чарльз Содерс Пирс (1839-1914) и немец Эрнст Шредер (1841-1902). В руководствах по теории отношений было показано, что множество отношений замкнуто относительно некоторых специальных операций, то есть образует вместе с этими операциями абстрактную алгебру. Это важнейшее свойство отношений было использовано в реляционной модели для разработки языка манипулирования данными, связанного с исходной алгеброй.

Изображение слайда
27

Слайд 27: Реляционная модель данных

27 Реляционная модель данных Реляционные базы данных позволяют хранить информацию в отношениях (нескольких «плоских» (двухмерных) таблицах), связанных между собой посредством совместно используемых полей данных, называемых ключами. Реляционные базы данных предоставляют более простой доступ к оперативно составляемым отчетам (обычно через SQL) и обеспечивают повышенную надежность и целостность данных благодаря отсутствию избыточной информации. Реляционная модель (от английского “ relation ” - отношение) основана на отношениях между таблицами, которые содержат информацию.

Изображение слайда
28

Слайд 28: Реляционная модель данных

28 Реляционная модель данных Реляционная система – это система, основанная на следующих принципах: Данные пользователя представлены только в виде таблиц Элементы: поле (столбец), запись (строка) и таблица (отношение) Используется в реляционных системах пользователю предоставляются операторы, генерирующие новые таблицы из старых (для выборки данных)

Изображение слайда
29

Слайд 29: Реляционная модель данных

29 Реляционная модель данных Преимущества: простота в такой модели всего одна информационная конструкция, формализующая табличное представление теоретическое обоснование существуют четкие методы формализации данных в таблицах независимость данных при изменении БД необходимы бывают лишь минимальные изменения прикладных программ

Изображение слайда
30

Слайд 30: Достоинства и недостатки РМД

Достоинства: наличие теоретического базиса; максимальная степень независимости данных от программ; наличие декларативного языка запросов. Недостатки: низкая эффективность выполнения запросов ; отсутствие однозначного соответствия между сущностями предметной области и таблицами реляционной базы данных.

Изображение слайда
31

Слайд 31: Реляционная модель данных

31 Реляционная модель данных Реляционная модель предложена сотрудником исследовательской лаборатории корпорации IBM в Сан-Хосе математиком Эдгаром. Ф.Коддом в 1970 г., который создал и описал концепцию реляционных баз данных в своей основополагающей работе «Реляционная модель для крупных, совместно используемых банков данных» (A Relational Model of Data for Large Shared Data Banks. Communications of the ACM, июнь 1970). В настоящее время эта модель является фактическим стандартом, на который ориентируются практически все современные коммерческие СУБД.

Изображение слайда
32

Слайд 32: Реляционная модель данных

32 Реляционная модель данных Суть работы Кодда заключалась в том, что предлагалось с реляционными базами данных использовать декларативные, а не процедурные языки программирования. Декларативные языки, такие как язык запросов SQL (Structured Query Language), дают пользователям возможность, по существу, сообщить компьютеру: « Я хочу получить следующие биты данных из всех записей, которые удовлетворяют определенному набору критериев ». Компьютер сам «поймет», какие необходимо совершить шаги, чтобы получить эту информацию из базы данных.

Изображение слайда
33

Слайд 33: Операции над отношениями

33 Операции над отношениями К отношениям можно применять систему операций, позволяющую получать одни отношения из других. Основной единицей обработки данных в реляционных БД является отношение, а не отдельные его кортежи (строки). Операции, выполняемые над отношениями, можно разделить на две группы.

Изображение слайда
34

Слайд 34: Реляционная модель данных

34 Реляционная модель данных Э. Ф. Кодд впервые сформулировал основные понятия и ограничения реляционной модели, ограничив набор операций в ней семью основными и одной дополнительной операцией. Предложения Кодда были настолько эффективны для систем баз данных, что за эту модель он был удостоен престижной премии Тьюринга в области теоретических основ вычислительной техники.

Изображение слайда
35

Слайд 35: Операции над отношениями

35 Операции над отношениями Реляционная алгебра – Процедурный язык обработки реляционных таблиц. Операции над множествами, к которым относятся операции: объединения, пересечения, разности, деления и декартова произведения. Реляционное исчисление – Непроцедурный язык создания запросов. Специальные операции над отношениями, к которым относятся операции: проекции, соединения, выбора.

Изображение слайда
36

Слайд 36: Каждая операция реляционной алгебры использует одну или несколько таблиц (отношений) в качестве ее операндов и продуцирует в результате новую таблицу, т.е. позволяет "разрезать" или "склеивать" таблицы

36 Каждая операция реляционной алгебры использует одну или несколько таблиц (отношений) в качестве ее операндов и продуцирует в результате новую таблицу, т.е. позволяет "разрезать" или "склеивать" таблицы

Изображение слайда
37

Слайд 37: Пример декартова произведения

Должность ФИО Должность Оклад директор Белов С.Ю. директор 40 000 инженер Белов С.Ю. директор 75000 экономист Белов С.Ю. инженер 40 000 Белов С.Ю. инженер 75000 ФИО Белов С.Ю. экономист 40 000 Белов С.Ю. Белов С.Ю. экономист 75000 Рогов А.И. Рогов А.И. директор 40 000 Панина А.А. Рогов А.И. директор 75000 Волкова Н.М. Рогов А.И. инженер 40 000 Рогов А.И. инженер 75000 Оклад Рогов А.И. экономист 40 000 40000 … … … 75000 Волкова Н.М. экономист 40 000 Полужирным шрифтом выделены записи, имеющие соответствие в предметной области.

Изображение слайда
38

Слайд 38: Отношение (теория)

38 Отношение (теория) Отношением R, определенным на множествах D1, D2,..., Dn (n > 1), N -арным отношением R называют подмножество декартова произведения D1xD2x... xDn множеств необязательно различных, где D1xD2x...xDn— полное декартово произведение. При этом: Исходные множества D1, D2,..., Dn называются доменами отношения элементы декартова произведения D1xD2x... xDn называются кортежами число n определяет степень отношения ( n =1 - унарное, n =2 - бинарное,..., n -арное) (арность, к-во атрибутов) количество кортежей называется мощностью отношения (к-во строк) R D1xD2x...xDm,

Изображение слайда
39

Слайд 39: Декартово произведение

39 Декартово произведение Полное декартово произведение — это набор всевозможных сочетаний из п элементов каждое, где каждый элемент берется из своего домена. Например, имеем три домена: D1 содержит три фамилии, D2 — набор из двух учебных дисциплин и D3 — набор из трех оценок. Допустим, содержимое доменов следующее: D1 = {Иванов, Крылов, Степанов}; D2 = (Теория автоматов, Базы данных}; D3 = {3, 4, 5} Тогда полное декартово произведение содержит набор из 18 троек, где первый элемент — это одна из фамилий, второй — это название одной из учебных дисциплин, а третий — одна из оценок.

Изображение слайда
40

Слайд 40: Отношение - таблица

40 Отношение - таблица Отношения удобно представлять в виде таблиц. На рис унке ниже представлена таблица (отношение степени 4), содержащая некоторые сведения о работниках гипотетического предприятия. Столбцы таблицы соответствуют вхождениям доменов в отношение, а строки — наборам из n- значений, взятых из исходных доменов, которые расположены в строго определенном порядке в соответствии с заголовком. Каждая строка таблицы содержит информацию об одном конкретном объекте БД (книге, сотруднике, товаре), а каждый столбец – конкретную характеристику этого объекта (фамилия, название, цена). Строки такой таблицы называются кортежами ( записями), столбцы – атрибутами ( полями). Каждая запись должна отличаться от другой значением хотя бы одного поля, которое называется ключом. Ключевое поле – это поле или группа полей, которые однозначно определяют запись. Например, табельный номер сотрудника, код изделия, номер автомобиля.

Изображение слайда
41

Слайд 41

41 Каждое поле имеет свое имя и тип. Реальные БД состоят, как правило, из нескольких таблиц, связанных между собой каким-нибудь полем и, при запросе к такой БД можно использовать информацию из разных таблиц.

Изображение слайда
42

Слайд 42: Основные понятия реляционных баз данных

42 Основные понятия реляционных баз данных кардинальное число степень домен атрибуты кортежи ключ Отношение обладает двумя основными свойствами: 1. В отношении не должно быть одинаковых кортежей, т.к. это множество. 2. Порядок кортежей в отношении несущественен. описание (схема отношения)

Изображение слайда
43

Слайд 43: Элементы реляционной модели

43 Элементы реляционной модели Атрибут — характеристика сущности или объекта. У атрибута есть имя и тип данных. Домен ( domain ) - компонент реляционной базы данных, предназначенный для формирования и описания множества допустимых значений атрибута. Кортеж ( tuple) - набор связанных (логически соединенных) полей ( строка таблицы базы данных). Кардинальное число, мощность ( cardinality ) — выражает значение связности компонентов. Задает число допустимых вхождений сущностей, связанных с единым местонахождением объединенной сущности (количество строк). Мощность отношения - число кортежей в отношении (проще говоря, число записей). Количество атрибутов в отношении называется степенью, или рангом, отношения. Можно говорить об n -арности отношения.

Изображение слайда
44

Слайд 44: Схема отношения

44 Схема отношения Схемой отношения R называется перечень имен атрибутов данного отношения с указанием домена, к которому они относятся: или Именнованное множество пар "имя атрибута - имя домена" называется схемой отношения. Схема отношения представляет собой список имен атрибутов. Например, для приведенного примера схема отношения имеет вид СОТРУДНИК (ФИО, Отдел, Должность, Д. Рождения). Набор именованных схем отношений представляет из себя схему базы данных.

Изображение слайда
45

Слайд 45: ДОМЕН

45 ДОМЕН Домен  — множество значений, которые может принимать элемент данных. Например, домен ИМЕНА определен на базовом типе строк символов, но в число его значений могут входить только те строки, которые могут представлять имена (в частности, для возможности представления русских имен такие строки не могут начинаться с мягкого или твердого знака и не могут быть длиннее, например, 20 символов). В один домен могут входить значения из нескольких колонок, объединённых, помимо одинакового типа данных, ещё и логически. Если два значения берутся из одного и того же домена, то можно выполнить сравнение этих двух значений. Декартово произведение доменов – множество всех возможных комбинаций значений доменов: D1 × D2 ×... × Dn = {(d 1i, d 1i,..., d ni )}, где d ki  D k

Изображение слайда
46

Слайд 46: Элементы реляционной модели

46 Элементы реляционной модели Элемент реляционной модели Форма представления Отношение Таблица Схема отношения Строка заголовков таблицы Кортеж Строка таблицы Сущность Описание свойств объекта Атрибут Заголовок столбца таблицы Первичный ключ Один или несколько атрибутов Тип данных Тип значений элементов

Изображение слайда
47

Слайд 47: Организация связей между таблицами

«Отдел» – внешний ключ в таблице «Сотрудники» Таблица «Сотрудники» Таблица «Отделы» «Номер отдела» - первичный ключ в таблице «Отделы» Связь один-ко-многим: Отделы – Сотрудники

Изображение слайда
48

Слайд 48: Организация связей между таблицами

В таблице «Участие»: «Участник» – внешний ключ к таблице «Сотрудники» «Проект» – внешний ключ к таблице «Проекты» Таблица «Сотрудники» Таблица «Проекты» Связь многие-ко-многим: Проекты – Сотрудники Таблица «Участие»

Изображение слайда
49

Слайд 49: Пример связи внутри таблицы

Табельный номер ФИО сотрудника Должность Оклад Начальник 023 Волкова Елена Павловна секретарь 26000 101 113 Белов Сергей Юрьевич инженер 39800 205 101 Рогов Сергей Михайлович директор 62000 NULL 205 Махова Ольга Алексеевна начальник отдела 51300 101 ... ... ... ... ...

Изображение слайда
50

Слайд 50: Свойства реляционной таблицы

50 Свойства реляционной таблицы Таблица представляет собой двумерную структуру, состоящую из строк и столбцов Каждая строка таблицы ( кортеж, tuple ) представляет собой отдельную сущность внутри набора сущностей Каждый столбец таблицы представляет собой атрибут, и у каждого столбца есть свое имя На каждом пересечении строки и столбца имеется единственное значение Каждая таблица должна иметь атрибут или несколько атрибутов, уникально идентифицирующих каждую строку Все значения в столбце должны отображаться в одинаковом формате. Например, если атрибуту присваивается формат целого, то все значения в столбце, представляющем данный атрибут, должны быть целыми Каждый столбец имеет определенный диапазон значений, называемый доменом атрибута ( attribute domain ) Порядок следования строк и столбцов для СУБД не существенен

Изображение слайда
51

Слайд 51: Реляционная модель представляет собой базу данных в виде множества взаимосвязанных отношений

51 Реляционная модель представляет собой базу данных в виде множества взаимосвязанных отношений.

Изображение слайда
52

Слайд 52: Связи отношений

52 Связи отношений В каждой связи одно отношение может выступать как основное, а другое отношение выступает в роли подчиненного. Таким образом, один кортеж основного отношения может быть связан с несколькими кортежами подчиненного отношения. Для поддержки этих связей оба отношения должны содержать наборы атрибутов, по которым они связаны. В основном отношении это первичный ключ отношения, который однозначно определяет кортеж основного отношения. В подчиненном отношении для моделирования связи должен присутствовать набор атрибутов, соответствующий первичному ключу основного отношения. Однако здесь этот набор атрибутов уже является вторичным ключом или внешним ключом, т.е. он определяет множество кортежей отношения, которые связаны с единственным кортежем основного отношения.

Изображение слайда
53

Слайд 53: Крис Дейт

53 Крис Дейт Реляционная модель состоит из 3-х частей, описывающих разные аспекты реляционного подхода: - структурной – нормализованное n- арное отношение; - манипуляционной – на основе реляционной алгебры и реляционного исчисления; - целостной – целостность сущностей (категорная сущность), согласно которой отношение должно обладать PRIMARY KEY для осуществления уникальности записей, следовательно в таблице не м.б. 2-х одинаковых объектов; ссылочная целостность, основанная на механизме вторичных ключей, смысл которой состоит в том, что некоторому атрибуту (группе атрибутов) одного отношения назначается ссылка на первичный ключ другого отношения, след-но закрепляются связи подчиненности между этими отношениями

Изображение слайда
54

Слайд 54: Три понятия целостности

54 Три понятия целостности Целостность в отношении конкретной базы (возраст, рост не м.б. отрицательными) Целостность сущностей Ссылочная целостность

Изображение слайда
55

Слайд 55: Ограничения целостности

55 Ограничения целостности Целостность данных (целостность отношения)- это механизм поддержания соответствия базы данных предметной области, при котором выбранные данные всегда дают один и тот же результат. В реляционной модели данных определены два базовых требования обеспечения целостности: целостность ссылок целостность сущностей ( категорная сущность ).

Изображение слайда
56

Слайд 56: Целостность на уровне сущности

56 Целостность на уровне сущности В пределах таблицы первичный ключ должен быть уникальным, чтобы однозначно идентифицировать каждую строку. Когда дело обстоит так, то говорят, что таблица проявляет целостность на уровне сущности ( entity integrity ). Для обеспечения целостности на уровне сущности в первичном ключе недопустимы пустые значения, null (т.е. полное отсутствие данных).

Изображение слайда
57

Слайд 57: Правило категорной целостности:

57 Правило категорной целостности: Никакой ключевой атрибут любой строки реляционной таблицы не может иметь пустого значения.

Изображение слайда
58

Слайд 58: ЦЕЛОСТНОСТЬ НА УРОВНЕ СУЩНОСТИ

58 ЦЕЛОСТНОСТЬ НА УРОВНЕ СУЩНОСТИ Требование - Все элементы первичного ключа уникальны и никакая часть первичного ключа не может быть пустой ( null ) Назначение - Гарантирует, что каждая сущность (логический объект) будет иметь уникальную идентификацию, а значения внешнего ключа могут должным образом ссылаться на значения первичного ключа Пример - Счет не может иметь несколько дублирующихся значений и не мо­жет иметь пустое значение ( null ). Короче говоря, все счета уникаль­но идентифицируются своим номером

Изображение слайда
59

Слайд 59: Целостность на уровне ссылки

59 Целостность на уровне ссылки Если внешний ключ содержит значения, совпадающие с первичным ключом или пустые значения ( null ), говорят, что таблица (или таблицы), использующая такой ключ проявляет целостность на уровне ссылки ( referential integrity ). Другими словами целостность на уровне ссылки означает, что в том случае, если внешний ключ содержит некое значение, то это значение ссылается на существующий действительный кортеж (строку) в другом отношении.

Изображение слайда
60

Слайд 60: ЦЕЛОСТНОСТЬ НА УРОВНЕ ССЫЛКИ

60 ЦЕЛОСТНОСТЬ НА УРОВНЕ ССЫЛКИ Требования - Внешний ключ может иметь или пустое значение (если только он не является частью первичного ключа данной таблицы), или значение, совпадающее со значением первичного ключа в связанной таблице. (Каждое непустое значение внешнего ключа должно ссылаться на существующее значение первичного ключа.) Назначение - Допускается, что атрибут не имеет соответствующего значения, но атрибут не может принимать недопустимые значения. Выполнение правила целостности на уровне ссылки делает невозможным удаление строки в одной таблице, где первичный ключ имеет обязательное соответствие со значением внешнего ключа в другой таблице. Пример - Клиенту может быть не назначен (еще) торговый агент, но невозможно назначить клиенту несуществующего агента.

Изображение слайда
61

Слайд 61: Типы ограничений

61 Типы ограничений Тип целостности Тип ограничения Описание Доменная DEFAULT Значение по умолчанию для столбца CHECK Допустимое значение столбца FOREIGN KEY Столбец, в котором должно быть значение NULL Допустимость NULL -значений Объектная PRIMARY KEY Однозначно определяет каждую строку UNIQUE Предотвращает повторение непервичных ключей Ссылочная FOREIGN KEY Столбцы, значения которых должны совпадать с первичным ключом этой таблицы CHECK Допустимые значения столбца на основе содержимого другого столбца

Изображение слайда
62

Слайд 62: Ограничения ключей

62 Ограничения ключей Ограничение внешнего ключа : Ограничение первичного ключа : Уникальное значение – null не допускается Один PRIMARY KEY на таблицу – на основе одного или нескольких столбцов Ссылки между столбцами в одной или разных таблицах Должен ссылаться на PRIMARY KEY или UNIQUE CREATE TABLE [HumanResources].[Department] (… CONSTRAINT [PK_Department_DepartmentID] PRIMARY KEY CLUSTERED ([DepartmentID] ASC) WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ALTER TABLE [Sales].[SalesOrderHeader] WITH CHECK ADD CONSTRAINT [FK_SalesOrderHeader_Customer_CustomerID] FOREIGN KEY ([CustomerID]) REFERENCES [Sales].[Customer] ([CustomerID])

Изображение слайда
63

Слайд 63: Другие ограничения

63 Другие ограничения DEFAULT Определяет значение столбца, если оно не задается Только одно ограничение DEFAULT на столбец Можно использовать некоторые системные функции CHECK Ограничивает значение, которые можно задать в столбце Можно использовать несколько CHECK для столбца Может ссылаться на столбцы в той же таблице Не может содержать подзапросы UNIQUE Гарантирует. Что каждое значение в столбце уникально Только одно NULL -значение на столбец Может включать один или несколько столбцов

Изображение слайда
64

Слайд 64: Каскадная ссылочная целостность

64 Каскадная ссылочная целостность Параметр Поведение UPDATE Поведение DELETE NO ACTION ( по умолчанию ) Ошибка и откат транзакции CASCADE Обновление внешних ключей в связанной таблице Удаление строк в связанной таблице SET NULL Внешним ключам в связанных таблицах присваиваются NULL -значения SET DEFAULT Внешним ключам в связанных таблицах устанавливаются значения по умолчанию Задается оператором CASCADE ограничения FOREIGN KEY

Изображение слайда
65

Слайд 65: Ключи

65

Изображение слайда
66

Слайд 66: Ключи

66 Ключи Атрибут, значение которого однозначно идентифицирует кортежи, называется ключевым (или просто ключом ). В нашем случае ключом является атрибут "Табельный номер", поскольку его значение уникально для каждого работника предприятия (неповторяемое). В рамках расширенной классификации ключей можно определить некоторые специальные ключи. Отношение может содержать несколько ключей. Всегда один из ключей объявляется первичным, его значения не могут обновляться. Все остальные ключи отношения называются возможными ключами.

Изображение слайда
67

Слайд 67: Ключи отношения

Ключ – атрибут (группа атрибутов), которые позволяют классифицировать кортеж (запись таблицы). Потенциальный ключ (уникальный ключ) – атрибут (группа атрибутов), которые позволяют идентифицировать кортеж (запись таблицы). Первичный ключ ( primary key ) - это атрибут (или несколько атрибутов), уникально идентифицирующий данную сущность (строку). Каждая таблица должна иметь первичный ключ. Вторичный ключ – любой другой ключ, кроме первичного. Может быть необязательным и неуникальным. Внешний ключ – служит для организации связей между таблицами.

Изображение слайда
68

Слайд 68: Ключевые атрибуты

68 Ключевые атрибуты Ключевые атрибуты Составной (сложный) ключ ключ, состоящий из нескольких атрибутов Простой ключ ключ, состоящий из одного атрибута Внешний ключ первичный ключ, наследуемый от родительской сущности через специфическое отношение Первичный ключ атрибут или группа атрибутов, однозначно идентифицирующая экземпляр сущности Потенциальный ключ атрибуты, претендующие на роль первичного ключа Альтернативный ключ потенциальный ключ, не ставший первичным

Изображение слайда
69

Слайд 69: Ключи

69 Ключи Суперключ ( superkey ) - это ключ, уникально идентифицирующий каждую сущность. Иными словами, суперключ функционально определяет все атрибуты сущности ( "Табельный номер", ФИО) По тенциальный ключ ( candidate key ) можно определить как суперключ без избыточноси ( составной ключ "Табельный номер", ФИО яв ляется суперключом, но не потенциальным ключом, поскольку STUNUM сам по себе есть суперключ. Потенциальные ключи Пусть R – некоторое отношение. Тогда потенциальный ключ K для R – это подмножество атрибутов R, обладающих следующими свойствами: уникальность, т.е. нет двух различных кортежей в текущем значении переменной отношения R с одинаковым значением K неизбыточность, т.е. никакое из подмножеств K не обладает свойством уникальности

Изображение слайда
70

Слайд 70: Ключи

70 Ключи Ключ может состоять из более чем одного атрибута. Такие мультиатрибутные ключи называются составными ключами ( composite key ). Любой атрибут, который является частью составного ключа, называется ключевым атрибутом ( key attribute ). Если кортежи идентифицируются только сцеплением значений нескольких атрибутов, то говорят, что отношение имеет составной ключ.

Изображение слайда
71

Слайд 71: Внешний ключ

71 Внешний ключ Для связи двух таблиц в реляционной модели используется понятие внешнего ключа. Внешний ключ ( foreign key ) - н абор атрибутов одной таблицы, являющийся ключом другой (или той же самой) таблицы; используется для определения логических связей между таблицами. Вторичный ключ ( secondary key ) определяется как ключ, который используется только для поиска данных. С точки зрения реляционных баз данных, в идеальной таблице имя каждого внешнего ключа совпадает с именем первичного ключа в связанной таблице, но не обязательно. Рекурсивный внешний ключ - Внешний ключ, ссылающийся на свою собственную реляционную таблицу.

Изображение слайда
72

Слайд 72: NULL -значение

72 NULL -значение

Изображение слайда
73

Слайд 73: NULL -значение

73 NULL -значение Иногда требуется возможность обозначить отсутствие информации, которая является необязательной в данном отношении Например, для отношения Students таким необязательным атрибутом может являться Height (рост студента)

Изображение слайда
74

Слайд 74: NULL -значение

74 NULL -значение Проблему можно решить двумя способами: использовать специальные значения того же типа данных, что и сам атрибут Например, атрибут Height имеет тип int, тогда можно использовать –1 для обозначения отсутствия информации о росте студента, а любое другое число будет указывать сам рост Использовать специальные универсальные маркеры – NULL-значения

Изображение слайда
75

Слайд 75: NULL -значение

75 NULL -значение Эдгар Кодд предложил второй вариант, главным преимуществом которого является то, что NULL-значение некоторого атрибута свидетельствует именно о его отсутствии, т.е. это не то же самое, что и число 0 или пустая строка Однако, такие неопределённые значения могут вызвать осложнения при обеспечении целостности БД

Изображение слайда
76

Слайд 76: Пустое значение

76 Пустое значение Для обеспечения целостности на уровне сущности в первичном ключе недопустимы пустые значения, null ( полное отсутствие данных). Пустое значение ( null ) не является значением 0 в полном смысле. Например, отсутствие данных может означать: неизвестное значение атрибута; известное, но неверное значение атрибута; некорректное условие. Необходимо помнить, что пустое зна­чение ( null ) это не то же самое, что пробел.

Изображение слайда
77

Слайд 77: NULL -значение

77 NULL -значение С использованием значения NULL вводится правило целостности объектов : ни один элемент первичного ключа базового отношения не может быть NULL -значением Это правило объясняется следующим: кортежи отношений соответствуют объектам реального мира, следовательно, эти объекты различны, а первичные ключи выполняют функцию уникальной идентификации

Изображение слайда
78

Последний слайд презентации: Лекция 2 Основные модели данных: Тип данных

78 Тип данных Значения данных, хранимые в реляционной базе данных, являются типизированными, т. е. известен тип каждого хранимого значения. Понятие типа данных в реляционной модели данных полностью соответствует понятию типа данных в языках программирования. Традиционное (нестрогое) определение типа данных состоит из трех основных компонентов: определение множества значений данного типа; определение набора операций, применимых к значениям типа; определение способа внешнего представления значений типа (литералов). Обычно в современных реляционных базах данных допускается хранение символьных, числовых данных (точных и приблизительных), специализированных числовых данных (таких, как «деньги»), а также специальных «темпоральных» данных (дата, время, временной интервал). Активно развивается подход к внедрению в реляционные системы возможностей определения пользователями собственных типов данных.

Изображение слайда