1 / 122

Базы данных

Базы данных. Коробецкая А.А. Самара 2014. Опоздание на перекличку приравнивается к пропуску занятия. Пропуск можно закрыть, предъявив конспект лекции. Лабораторный практикум: Проектирование БД Реализация в связке Access + Delphi. Основные темы. Концептуальное проектирование БД.

Download Presentation

Базы данных

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Базы данных Коробецкая А.А. Самара 2014

  2. Опоздание на перекличку приравнивается к пропускузанятия. Пропуск можно закрыть, предъявив конспект лекции. Лабораторный практикум: Проектирование БД Реализация в связке Access + Delphi

  3. Основные темы Концептуальное проектирование БД. Проектирование реляционных БД. Реляционная алгебра. Структурированный язык запросов – SQL. Физическое проектирование БД. Администрирование БД.

  4. Лекция 1. Введение.Концептуальное (инфологическое) проектирование

  5. База данных (БД) БД представляет собой электронное хранилище, в котором находятся структурированные данные для ускорения их поиска и обработки. БД — организованная в соответствии с определёнными правилами и поддерживаемая в памяти компьютера совокупность данных, характеризующая актуальное состояние некоторой предметной области и используемая для удовлетворения информационных потребностей пользователей. БД – совокупность данных (файлов, документов), организованных специальным образом и описывающих определенную предметную область. • Признаки БД: • электронный формат; • структурированность; • наличие схемы данных (метаданных) в составе БД; • большой объем хранимых данных; • общая предметная область.

  6. Виды БД • По модели данных: • Реляционная (табличная) • Иерархическая • Сетевая • Объектно-ориентированная • Постреляционная • Хронологическая (хранилище данных) • По способу хранения данных: • Локальная (централизованная) • Распределенная • Файл-серверная • Клиент-серверная • Двухзвенная • Многозвенная

  7. Виды БД • По виду хранимой информации: • Фактографические БД – БД, хранящие информацию в виде данных-фактов (записи, файлы и т.д.). Данные отражают текущее состояние предметной области. • Динамические БД - БД, хранящие данные и время вместе, отображая состояние предметной области в определенный момент времени. • Документальные БД- БД, хранящие информацию в виде документов (отчетов, монографий и т.д.). • Графические БД – БД, хранящие информацию в виде графических объектов (картинно-графические, база видеоданных, “graphics based data base” и др.). • Интегрированные БД – БД, хранящие информацию в виде данных, документов, графических документов.

  8. Основные средства реализации БД • Файловая система + собственный пользовательский сервис на языке высокого уровня. • СУБД - система управления базами данных, выполняющая все функции файловой системы, средства создания и ведения БД, средства манипулирования данными (добавление, удаление, изменение данных), средства поиска данных (поиск, выбор, сортировка). • Машины баз данных – программно-аппаратные средства реализации баз данных. Значительно быстрее СУБД, но менее универсальны.

  9. Язык запросов СУБД Это формальный язык для доступа и редактирования БД. СОЗДАТЬ ТАБЛИЦУ Расписание ( Номер_рейса Целое Дни_недели Текст (8) Пункт_отправления Текст (24) Время_вылета Время Пункт_назначения Текст (24) Время_прибытия Время Тип_самолета Текст (8) Стоимость_билета Валюта ); ВЫБРАТЬ Номер_рейса, Дни_недели, Время_вылета ИЗ ТАБЛИЦЫ Расписание ГДЕ Пункт_отправления = 'Москва‘ И Пункт_назначения = 'Самара‘ И Время_вылета > 17; Де-факто стандартный язык запросов к табличным БД – SQL.

  10. Жизненный цикл БД • Проектирование • Реализация • Эксплуатация • Основные этапы проектирования БД: • Определение требований к системе. • Инфологическоепроектирование БД – получение семантических (смысловых) моделей данных. • Выбор СУБД и других инструментальных средств. • Логическоепроектирование БД – организация данных в виде структур данных. • Физическоепроектирование БД – выбор рациональной структуры хранения данных и методов доступа к ним.

  11. Уровни представления данных Концептуальный уровень - это семантический уровень представления данных в виде абстрактных понятий, учитывающих особенности предметной области. Логический уровень - уровень представления в виде структуры данных (таблицы, списки, деревья, графы, и т.д.). Физический уровень - способ организации данных на машинном носителе (в виде бит, байт и т.д. и их структур). Абстрактный уровень Конкретный уровень

  12. Концептуальная (инфологическая) модель«сущность – связь» • Entity-Relation (ER-модель) была предложена Питером Ченом(P.Chen) в 1976г. • Модель описывает: • Сущности • Атрибуты сущностей • Связи между сущностями Модель может быть представлена в графическом (ER-диаграмма) или в текстовом виде. Существует большое число нотаций (способов изображения) ER-диаграмм.

  13. Основные понятия Сущность – любой различимый объект, реальный или мыслимый, (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных объект предметной области. Обозначается существительным. Необходимо различать тип и экземпляр сущности. Тип сущности: ГОРОД Экземпляр сущности: МОСКВА, САМАРА, КАЛУГА Тип сущности: ФИРМА Экземпляр сущности: ОАО «Сбербанк», ООО «Луч», ИП Удальцов Город

  14. Атрибут Атрибут – поименованная характеристика сущности. Обозначается существительным. Наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей. Название • Название • Адрес • Телефон • ФИО руководителя Фирма Город Координаты Население Гражданин ФИО № паспорта Дата рождения Место рождения

  15. Ключ Атрибут (или атрибуты) однозначно идентифицирующий сущность называется ключом. На схеме ключевой атрибут подчеркивается, или рядом ставится значок ключа . • Наименование • Артикул • Производитель Товар Ключ, состоящий из нескольких атрибутов, называется составным. • Название • Автор • Год • Издательство • Число страниц Книга Составной ключ не надо путать с потенциальными ключами. Любой из потенциальных ключей может быть выбран как первичный. Остлаьные – альтернативные. • ФИО • № студенческого билета • № паспорта Студент (первичный ключ) (альтернативный ключ)

  16. Связи Связь – соответствие (отображение, ассоциация) между экземплярами сущности. Обозначается обычно глаголом или причастием, но не обязательно. Фирма Город зарегистрирована в Гражданство Страна Житель Владеет Имущество Собственник

  17. Типы (кратность) связей Можно указать точную кратность связиили диапазон 1 4 1 2..n Автомобиль Колесо Сумма Слагаемые

  18. Пример В зависимости от ситуации, одни и те же сущности могут иметь разные типы связи. 1 1 Брак Муж Жена моногамия 1 n Брак Муж Жена многоженство n 1 Брак Муж Жена многомужие n m Брак Муж Жена полигамия 1 Супруг 1 Брак

  19. Сложные связи Петля между экземплярами одной сущности Ремикс 1 Аудиозапись m Множественные связи между одними и теми же сущностями Работает в n 1 Сотрудник Фирма 1 m Руководит Тернарные связи между тремя сущностями Диагноз m n Врач Пациент p Болезнь Связи более высоких порядков – между 4-мя и более сущностями

  20. Класс принадлежности Класс принадлежности сущности называется обязательным, если экземпляры данной сущности должны участвовать в связи обязательно. Обозначается закрашенной точкой на конце связи. Класс принадлежности сущности называется необязательным, если экземпляры данной сущности могут не участвовать в связи. Точка не ставится или ставится незакрашенный кружок. Преподаватель Лекция на практике трудности: обязательно одновременно создавать экземпляры обеих сущностей Преподаватель Лекция Человек Кошка

  21. Ассоциативная сущность Связь тоже может иметь атрибуты. Такая связь превращается в ассоциативную сущность. Регистрация Фирма Город Адрес регистрации Дата регистрации

  22. Зависимые сущности Зависимая сущность не может существовать без независимых (стрежневых) сущностей. Сущность Независимая (стрежневая) Зависимая Характеристическая Ассоциативная Зависимые сущности иногда изображают со скругленными углами. Автор Книга Сотрудник Отдел Предприятие

  23. Соотношение основных понятий БД Концептуальное Реляционное Физическое • Распространенные ошибки! • На концептуальном уровне • не бывает бессмысленных атрибутов, не имеющих значения вне БД (код, ID). • не бывает сущностей без атрибутов (бывают связи без атрибутов) • не бывает связей без кратности

  24. Обозначения в разных нотациях По Чену Ключ 1 Атрибут 4 Ключ 2 Атрибут 1 Атрибут 2 1 Связь n Сущность 1 Сущность 2 Атрибут 3 Упрощенный вариант Сущность 1 • Ключ • Атрибут 2 • Атрибут 3 Сущность 1 • Ключ • Атрибут 2 • Атрибут 3 n n связана с 1 1 Сущность 2 • Ключ • Атрибут 2 • Атрибут 3 Ассоциация Сущность 2 • Ключ • Атрибут 2 • Атрибут 3 • Атрибут 5

  25. Последовательность концептуального проектирования Выделить сущности. Определить связи между сущностями. Определить тип связей. Перечислить атрибуты каждой сущности. Найти потенциальные ключи среди атрибутов. Выбрать первичные ключи из потенциальных.

  26. Лекция 2. Логическое проектирование реляционных БД

  27. Основные понятияреляционной модели данных Концепция реляционной модели предложена в 1970г. Коддом с целью обеспечения независимости представления и описания данных от прикладных программ. Реляционная БД – это совокупность взаимосвязанных отношений. Отношение описывает взаимосвязи между N атрибутами этого отношения. Количество атрибутов N – степень или «-арность» отношения (унарное, бинарное, тернарное, N-арное). Более точное определение будет дано в следующей лекции. Схема отношения - список имен атрибутов отношения. Отношение1 (атрибут1.1, атрибут1.2, атрибут1.3,... атрибут1.N) Отношение2 (атрибут2.1, атрибут2.2,... атрибут2.M) …

  28. Правила перехода от ER-модели к предварительной схеме отношений Правила для сущностей и атрибутов 1. Каждая сущность преобразуется в отношение (таблицу). Исключение – см. правило 1 преобразования связей. 2. Каждый атрибутсущности преобразуется в атрибут отношения (поле, столбец таблицы). Примечание. Имена атрибутов и отношений могут отличаться от концептуальных, но должны иметь тот же смысл. Например, в БД могут быть запрещены русские буквы. 3. Первичный ключ становится ключом отношения.

  29. Правила для связей 1:1 1. Если степень бинарной связи равна 1:1 и класс принадлежности обеих сущностей является обязательным, то требуется только одно отношение. Первичным ключом этого отношения может быть ключ любой из двух сущностей. 2. Если степень бинарной связи равна 1:1 и класс принадлежности одной сущности является обязательным, а другой – необязательным, то необходимо построение двух отношений. Под каждую сущность необходимо выделение одного отношения, при этом ключи сущностей должны служить первичными ключами для данных отношений. Ключ сущности с необязательным классом принадлежности добавляется в качестве атрибута в отношение, выделенное для сущности с обязательным классом принадлежности. 3. Если степень бинарной связи равна 1:1 и класс принадлежности ни одной сущности не является обязательным, то необходимо использовать три отношения: по одному для каждой сущности, ключи которых служат в качестве первичных в соответствующих отношениях, и одно для связи. Среди своих атрибутов отношение, выделяемое на связь, будет иметь по одному ключу от каждой сущности.

  30. Примеры для связей 1:1 1 1 Студент Зачетка выдается • ФИО • Дата рождения • Группа • № зачетки • Дата выдачи • Продлена до Студент (ФИО, Дата рождения, Группа, № зачетки, Дата выдачи, Продлена до) 1 1 Гражданин Паспорт имеет • ФИО • Дата рождения • Место рождения • № паспорта • Дата выдачи • Кем выдан Гражданин (ФИО, Дата рождения, Место рождения, № паспорта) Паспорт (№ паспорта, Дата выдачи, Кем выдан) 1 1 Мужчина Женщина состоит в браке • ФИО • Дата рождения • № паспорта • ФИО • Дата рождения • № паспорта Мужчина (ФИО, Дата рождения, Место рождения, № паспорта) Женщина (ФИО, Дата рождения, Место рождения, № паспорта) Брак (№ паспорта мужа, № паспорта жены, № свидетельства о браке)

  31. Правила для связей 1:n 4. Если степень бинарной связи равна 1:n и класс принадлежности n-связной сущности является обязательным, то достаточным является использование двух отношений, по одному на каждую сущность. Ключ каждой сущности используется в качестве первичного ключа для соответствующего отношения. Ключ 1-связной сущности должен быть добавлен как атрибут в отношение для n-связной сущности. 5. Если степ. бин. связи 1:n и класс принад-тиn-связной сущн-ти – необ-ный => три отнош-я: 1 для кажд. сущн-ти и 1 отнош. для связи. Ключ каждой сущн-ти=> первичный ключ соотв-щегоотнош-я. Отнош-е для связи должно иметь среди своих атр-тов ключи от кажд. сущн-ти. ПримечаниеДля связей 1:n нужны только 2 правила (4 и 5). Определяющим фактором является класс принадлежности n-связной сущности; класс принадлежности 1-связной сущности не влияет на конечный результат.

  32. Примеры для связей 1:n n 1 Студент Группа Учится в • № зачетки • ФИО • Дата рождения • № группы • Курс Студент (№ зачетки, ФИО, Дата рождения, Группа) Группа (№ группы, Курс) n 1 Депутат Партия Состоит в • ФИО • Дата рождения • Название Депутат (ФИО, Дата рождения) Партия (Название) Партбилет (№ билета, Партия, Депутат)

  33. Правила для связей m:n 6. Если степень связи m:n, то для хранения данных необходимо три отношения: по одному для каждой сущности и одно отношение для связи. Ключ каждой сущности используется в качестве первичного ключа соответствующего отношения. Отношение для связи должно иметь в числе своих атрибутов ключ каждой сущности. n m Книга Читатель выдана • Название • Автор • Год • Издательство • № читательского • ФИО Книга (Название, Автор, Год, Издательство) Читатель(№ читательского, ФИО) Выдача (Название, Автор, № читательского, Дата выдачи)

  34. Правила для множественных связей 7. В случае p-сторонней связи необходимо использовать (p+1) предварительных отношений, по одному для каждой сущности и одно для связи. Ключ каждой сущности должен служить в качестве первичного ключа для соответствующего отношения. Отношение, порождаемое связью, будет иметь среди своих атрибутов ключи от каждой сущности. Диагноз m n Врач Пациент • № паспорта • ФИО • Должность • № страх. свид. • ФИО • Дата рождения s Болезнь • Название Врач(№ паспорта, ФИО, Должность) Пациент(№ страх. свид., ФИО, Дата рождения) Болезнь(Название) Диагноз (Врач, Пациент, Болезнь)

  35. Лекция 3. Реляционная алгебра

  36. Соотношение основных понятий БД Концептуальное Реляционное Физическое

  37. Домен Домен D – множество однотипных данных, имеющих общую семантику. Домен ≠ Тип данных Домен - более конкретное понятие. Два разных домена могут иметь одинаковый тип данных. Пример С точки зрения логики некорректно сравнивать данные из разных доменов. Атрибут – именованное подмножество домена.

  38. Декартово произведение множеств Декартово произведение nмножеств D1, D2, … Dn – это множество D1D2…Dn(D1*D2*…*Dn), состоящее из элементов вида (d1, d2, … dn), где d1D1, d2D2,... dnDn. Иными словами – множество, состоящее из всех сочетаний элементов исходных множеств. Пример A = {1, 2, 3} B = {x, y} A  B = {(1, x), (2, x), (3, x), (1, y), (2, y), (3, y)}

  39. Отношение Отношение R – множество упорядоченных наборов данных (кортежей), являющихся подмножеством декартова произведения заданных доменов D1D2…Dn (домены могут повторяться). Кортеж(d1, d2, … dn) – элемент декартова произведения доменов, на котором строится отношение. Схема (заголовок) отношения – перечень имен атрибутов отношения (возможно, с указанием доменов). R1 (A1, A2, A3, … An) Атрибуты отношения указываются через точку: R1.A1, R2.A10, Студент.№зачетки • Отношение имеет: • фиксированное число и порядок атрибутов; • конечное множество неупорядоченных кортежей; • только различные кортежи (никогда не повторяются). Мощность отношения M– число кортежей. Степень отношения N– число атрибутов.

  40. Ключ •  R – отношение с атрибутами A1, A2, ..., An. • Подмножество атрибутов K=(Ai,Aj,...,Ak) отношения R является потенциальным ключомт.т.т.к. удовлетворяются два независимых от времени условия: • Уникальность: никакие два различных кортежа R не имеют одного и того же значения для атрибутов Ai, Aj, ..., Ak. • Минимальность: ни один из атрибутов Ai, Aj, ..., Ak не может быть исключен из K без нарушения уникальности. Каждое отношение имеет хотя бы 1 возможный ключ – все атрибуты. Один любой потенциальный ключ выбирается в качестве первичного. Внешний ключ – атрибут или множество атрибутов, значения которого соответствуют первичному ключу некоторого отношения (другого или этого же).

  41. Лекция 4. Реляционная алгебра(продолжение)

  42. Операции над отношениями • Существует 4 группы операций над отношениями: • Операции обновления (все языки). • Реляционная алгебра(ISBL). • Реляционное исчисление • с переменными-кортежами (QUEL). • с переменными-доменами (QBE). SQL

  43. Операции обновления • Наиболее простые операции, не изменяющие схему отношения, но изменяющие его кортежи: • Добавление кортежа • ADD (R; A1 = a1, A2 = a2,… An = an) • ADD (R; a1, a2, a3,…an) • ADD (Автор; “Пушкин”, “Александр”, “Сергеевич”, 06.06.1799, “bio_PushkinAS.doc”) • Удаление кортежа DEL(R; ai, aj, …ak), где (ai, aj, …ak)K • DEL(Читатель; №билета = 0010012) • Изменение кортежа • CH (R; ai, aj,… ak; Ar = er, As = es, … Aq = eq) • CH (R; ai, aj,… ak; e1, e2, … en) • где (ai, aj, …ak)K, • e1, e2, … en – новые значения атрибутов • CH (Издательство; Полиграфия; Телефон = 4991111234)

  44. Ошибки операций обновления • Ошибки при добавлении и изменении: • Добавляемый кортеж не соответствует схеме отношения. • Значения кортежа не принадлежат соответствующим доменам. • Добавляемый кортеж совпадает по ключу с кортежем, уже находящимся в отношении. • При удалении кортежей ошибок не возникает. • Если в операции удаления указано несуществующее значение, отношение не будет изменено.

  45. Операции реляционной алгебры Предложена Э. Коддом в 1972г. Выполняются над отношениями: из 1-го или нескольких исходных отношений получается новое отношение (свойство замкнутости). Отношение – это множество => для него возможны все операции, выполняемые над множествами. Кроме того, -ют специф. операции для отношений. Реляционная алгебра и реляционное исчисление эквивалентны по своей выразительной силе. Существуют правила преобразования запросов между ними. Но не все возможные действия с таблицами можно выразить через реляционную алгебру.

  46. Объединение (UNION) Возможно только для отношений с одинаковой схемой (совместимымиотношениями). Объединение отношений R1R2 – отношение, которое содержит кортежи из R1 и R2. Пример R1 Отечественная литература R1R2 R2 Литература 19в.

  47. Пересечение (INTERSECTION) Только над совместимымиотношениями! Пересечение отношений R1  R2 – отношение, которое содержит кортежи, которые присутствуют и в R1,и в R2. Пример R1 Отечественная литература R1  R2 R2 Литература 19в.

  48. Разность (SET DIFFERENCE) Только над совместимымиотношениями! Разность отношений R1\R2 – отношение, которое содержит кортежи, которые присутствуют в R1,но отсутствуют в R2. Пример R1 Отечественная литература R1\R2 R2 Литература 19в.

  49. Декартово произведение Выполняется над любымиотношениями по определению декартова произведения. Пример R2 Читатель R1 Отечественная литература R1R2

  50. Выборка (SELECTION) Унарная операция. Из отношения R1 выбираются кортежи, для которых выполняется заданное условие F. R = R1 WHERE F Пример R1 Выданные книги за май 2014 R = R1 WHERE (Автор = Пушкин)AND (Дата выдачи > 15.05.14)

More Related