Реляционные базы данных N-арное отношение – подмножество декартова произведения N множеств возможных значений (доменов, типов данных, атрибутов) Изображение отношения – таблица Строка таблицы(отношения) – кортеж данных
Свойства таблицы Нет двух одинаковых строк Столбцы соответствуют атрибутам отношения Каждый атрибут имеет уникальное имя Порядок строк – произвольный Первичный ключ – набор атрибутов, однозначно определяющий кортеж
Пример отношения ФИОНомер группы ОпытICQGMAILП Петров Сергеев Б. Власов Козлов Платонов Беляев
ER-модель базы данных ER => Entity – Relationship По-русски: «сущность-связь» Визуальная модель Отображает атрибуты таблиц и связи между ними Нотация IDEF 1x
Термины: Cущность – отношение, характеризующее класс информационных объектов предметной области Связь – отношение между сущностями, показывающее как значения атрибутов одной сущности зависят от значений атрибутов другой Атрибут – характеристика сущности, описывающая ту или иную особенность экземпляра сущности
Пример
Первичные и внешние ключи (primary key, foreign key)
Нормализация БД минимализация данных максимальная гибкость модели не влияет на объем и скорость выборки снижает возможность противоречий в данных Способ – декомпозиция до соответствия нормальным формам
Нормальные формы 1я НФ - любой кортеж содержит только одно значение для каждого из атрибутов 2я НФ – нет неключевых атрибутов, зависящих от части составного ключа 3я НФ - нет атрибутов зависящих от неключевых атрибутов
Если курс может преподавать несколько человек, то это не 1 НФ Связь М:М 1 М 1 М Разрешение М:М 1 НФ - пример
2НФ - пример Не 2НФ, потому как список курсов зависит от группы, а не от личности студента Нормализация
3НФ - пример Не 3НФ – заведующий определяется по номеру кафедры, а не по номеру группы Нормализация
Язык SQL SQL = DDL + DML DDL – Data Definition Language DML – Data Manipulation Language DCL – Data Control Language
DDL CREATE TABLE CREATE TABLE employees ( id INTEGER PRIMARY KEY, first_name CHAR(50) NULL, last_name CHAR(75) NOT NULL, dateofbirth DATE NULL ); ALTER TABLE ALTER TABLE sink ADD bubbles INTEGER; ALTER TABLE sink DROP COLUMN bubbles; DROP TABLE DROP TABLE employees;
DML SELECT FROM WHERE INSERT INTO VALUES UPDATE SET WHERE DELETE FROM WHERE
Способы объединения таблиц
Декартово произведение: SELECT * FROM T1, T2