Базы данных Преподаватель: Свяжин Сергей Олегович
Система баз данных Система баз данных – это компьютеризированная система хранения записей, основное назначение которой хранить информацию, предоставляя пользователям средства её извлечения и модификации. Основные компоненты системы баз данных: данные; аппаратное обеспечение; программное обеспечение; пользователи.
Схема системы баз данных
Свойства данных интегрированность; разделяемость. Аппаратное обеспечение Состав аппаратного обеспечения: тома вторичной памяти; аппаратный процессор.
Программное обеспечение Виды программного обеспечения: СУБД; утилиты; средства разработки приложений; средства проектирования; генераторы отчетов; менеджер транзакций; и т.д.
Пользователи Группы пользователей: прикладные программисты; конечные пользователи; администраторы базы данных.
База данных – это некоторый набор постоянных данных, используемых прикладными системами какого-либо предприятия
Сущности и связи (логическая структура базы данных)
Свойства – данные, которые требуется хранить о сущности
Преимущества использования систем баз данных компактность; скорость; низкие трудозатраты; актуальность.
Модель данных – это абстрактное, самодостаточное, логическое определение объектов, операторов и прочих элементов, в совокупности составляющих абстрактную машину, с которой взаимодействует пользователь.
Модели данных иерархическая; инвертированных списков; сетевая; реляционная; объектная; многомерная; логическая.
Реляционная модель – это система, основанная на следующих принципах: данные представляются пользователю в виде таблиц; таблицы удовлетворяют определенным условиям целостности; пользователю предоставляются операторы (например, для выборки данных), позволяющие генерировать новые таблицы на основании уже существующих. В основе реляционной модели лежит формальная математическая теория – реляционная алгебра.
Пример базы данных деталей
SQL – структурированный язык запросов операторы определения данных (Data Definition Language, DDL) – CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т. д.) – ALTER изменяет объект – DROP удаляет объект операторы манипуляции данными (Data Manipulation Language, DML) – SELECT считывает данные, удовлетворяющие заданным условиям – INSERT добавляет новые данные – UPDATE изменяет существующие данные – DELETE удаляет данные операторы определения доступа к данным (Data Control Language, DCL) – GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом – REVOKE отзывает ранее выданные разрешения – DENY задает запрет, имеющий приоритет над разрешением операторы управления транзакциями (Transaction Control Language, TCL) – COMMIT применяет транзакцию. – ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции. – SAVEPOINT делит транзакцию на более мелкие участки.
Оператор SELECT SELECT [ALL | DISTINCT] FROM WHERE GROUP BY HAVING ORDER BY
Обобщающие функции языка SQL: SUM - сумма COUNT - количество AVG - среднее MAX - максимум MIN - минимум Логические операторы OR - или AND - и NOT - не
Домашнее задание 1.Опередить номер, название и общий объем поставки деталей, для которых объем поставки превышает Определить количество деталей синего (blue) цвета.
Ответ 1. SELECT P.P#, P.PNAME, SUM(SP.QTY) FROM P JOIN SP GROUP BY P.P#, P.PNAME HAVING SUM(SP.QTY) > SELECT COUNT(*) FROM P WHERE PCOLOR = Blue
Целостность данных – это степень точности и корректности хранящейся в базе информации.
Классификация ограничений в реляционной модели Ограничения целостности состояния: ограничение целостности типа; ограничение целостности атрибута; ограничение целостности отношения; ограничение целостности базы данных. Ограничения целостности перехода.
Ключи потенциальные ключи; первичные и альтернативные ключи; внешние ключи.
Потенциальный ключ Пусть K – подмножество множества атрибутов отношения R. K будет потенциальным ключом отношения R тогда и только тогда, когда оно обладает следующими свойствами: Уникальность. Никакие допустимые значения отношения R не содержат двух различных кортежей (записей) с одинаковыми значениями атрибутов множества K. Неизбыточность. Никакое из собственных подможеств множества K не обладает свойствами уникальности.
Первичный и альтернативные ключи Один из потенциальных ключей назначается первичным, остальные называются альтернативными.
Внешние ключи Пусть R2 – некоторое отношение. Тогда внешний ключ (FK) в отношении R2 представляет собой множество атрибутов этого отношения, такое, что: существует отношение R1 с потенциальным ключом CK; каждое значение внешнего ключа FK в текущем состоянии отношения R2 обязательно совпадает со значением ключа CK некоторого кортежа (записи) в текущем состоянии R1.
Ссылочные операции ON DELETE CASCADE; ON DELETE RESTRICT; ON DELETE NO ACTION.
Средства языка SQL для обеспечения целостности ограничения домена; ограничения базовой таблицы; общие ограничения (утверждения).
Ограничения домена CREATE DOMAIN COLOR CHAR(6) DEFAULT ??? CONSTRAINT VALID_COLORS CHECK (VALUE IN (Yellow, Blue, ???))
Ограничения базовой таблицы определение потенциального ключа – UNIQUE ( ) – PRIMARY KEY ( ) определение внешнего ключа – FOREIGN KEY ( ) REFERENCES [( )] [ON DELETE ] [ON UPDATE ], где это либо NO ACTION, CASCADE, SET DEFAULT, SET NULL определение «проверочного условия» – CHECK ( )
Утверждения CREATE ASSERTION CHECK (условное выражение)
Понятие функциональной зависимости Пусть R является отношением, а X и Y – произвольные подмножества множества атрибутов отношения R. Тогда Y (зависимая часть) функционально зависит от X (детерминант), что в символическом виде записывается X -> Y тогда и только тогда, когда для любого допустимого значения отношения R каждое значение множества X связано с точностью с одним значением Y
Понятие нормализации Нормальная форма свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, потенциально приводящей к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение. Нормализация – процесс преобразования отношений базы данных к виду, отвечающему нормальным формам. Цель нормализации – уменьшение потенциальной противоречивости хранимой в базе данных информации.
Нормальные формы
Нормальная форма Бойса-Кодда (НФБК) Отношение находится в НФБК тогда и только тогда, когда каждая ее нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта некоторый потенциальный ключ. Нахождение отношения в НБФК позволяет устранить большинство противоречий хранимой в отношении информации.
Методы проектирования баз данных метод декомпозиции; семантическое моделирование.
Основные понятия семантической концепции
Пример ER-диаграммы Работник Подразделение относится N 1 Проект руководит 1 N участвует N N
Характеристики связей степень связи: – один-к-одному; – один-ко-многим; – многие-ко-многим класс принадлежности – обязательное; – необязательно
Правила генерации таблиц для различных видов связей один-к-одному – на основе двух связанных сущностей генерируется одна таблица; один-ко-многим и класс принадлежности n-связной сущности является обязательным - на основе двух связанных сущностей генерируется 2 таблицы по одной на каждую сущность; один-ко-многим и класс принадлежности n-связной сущности является необязательным - на основе двух связанных сущностей генерируется 3 таблицы по одной на каждую сущность и одна для связи; многие-ко-многим - на основе двух связанных сущностей генерируется 3 таблицы по одной на каждую сущность и одна для связи;
Этапы проектирования базы данных с использованием метода «сущность-связь» («entity-relashionship») 1.Выделение сущностей и определение их свойств 2.Определение связей и их характеристик 3.Построение ER-диаграммы 4.Генерация предварительного набора отношений 5.Проверка отношений на НФБК 6.Проведение нормализации (при необходимости) и генерация окончательного набора отношений
CASE-средства для проектирования баз данных Существуют специальные программы, которые позволяют проводить проектирование баз данных методом «сущность-связь» и на основе созданной модели автоматически генерировать SQL- скрипт для создания базы данных в выбранной СУБД.
Домашнее задание Построить ER-диаграмму для следующей предметной области: Существуют спектакли, для спектаклей заданы роли, при этом каждая роль может относиться только к одному спектаклю. Существуют актеры, которые играют роли. Каждый актер может играть несколько ролей, каждая роль может играться несколькими актерами.