
- •Введение
- •Часть 1
- •Глава 1 модели данных
- •Уровни моделей данных
- •1 Инфологические модели данных
- •1.1 Диаграмма Бахмана
- •1.2 Модель «сущность-связь»(er)
- •Нотация Мартина
- •Нотация idef1x
- •Нотация Баркера
- •2. Даталогические модели
- •2.1. Документальные модели
- •2.1.1. Ориентированные на формат документа
- •2.1.2. Дескрипторные модели
- •2.1.3. Тезаурусные модели
- •2.2. Фактографические модели
- •2.2.1. Теоретико-графовая модель
- •2.2.1.1. Иерархическая модель
- •2.2.1.2. Сетевая модель
- •2.2.2. Теоретико-множественные модели
- •2.2.2.1. Реляционная модель
- •Правила Теда Кодда
- •2.2.2.2. Бинарных ассоциаций
- •2.2.3. Объектно-ориентированные модели
- •3. Физические модели
- •3.1. Модели, основанные на файловых структурах
- •3.2. Модели, основанные на странично-сегментной организации
- •Известные сетевые субд:
- •Глава 2. Проектирование баз данных
- •1.1. Избыточность данных и аномалии обновления
- •1.2. Функциональные зависимости
- •1.3. Нормальные формы и схемы выполнения нормализации
- •1) 1Нф.
- •2) 2Нф.
- •3) 3Нф.
- •4) Нфбк (нормальная форма Бойса-Кодда).
- •5) 4Нф.
- •6) 5Нф.
- •1.4 Синтез реляционных баз данных
- •1.5 Пример синтеза
- •1.6 Пример декомпозиции
- •Часть 2
- •Реляционная алгебра
- •Введение
- •Стандартные реляционные операции
- •Свойства стандартных операций
- •Специальные операции
- •Язык sql как стандартный язык баз данных
- •Введение в sql
- •2.1.1 Функциональные возможности sql
- •2.2 Создание баз данных
- •2.2.1 Оператор create database
- •2.3 Удаление баз данных
- •2.4.3 Размер поля
- •2.4.4 Тип поля
- •2.5 Удаление таблиц
- •2.5.1 Оператор drop table
- •2.6. Данные и записи данных
- •2.6.1 Оператор select
- •2.6.2 Оператор distinct
- •2.6.3 Оператор from { таблица [ псевдоним ] } [,...]
- •2.6.4 Оператор where (условие)
- •2.6.5 Оператор group by { поле | Integer } [,...]
- •2.6.6 Оператор having( условие)
- •2.6.7 Оператор order by { поле | Integer [ asc|desc ] } [,...]
- •2.6.8 Оператор union [all] select-команда
- •2.6.9 Оператор intersect [all] select-команда
- •2.6.10 Оператор except [all] select-команда
- •2.6.11 Into { temp | scratch } таблица
- •2.6.12 Insert - добавлять данные
- •2.6.13 Values ( константа [,...] )
- •2.6.18 Unload - выгрузить данные в текстовый файл
- •2.7 Операторы
- •2.7.3 Арифметические операторы
- •2.7.4 Приоритеты операторов
- •2.8 Функции
- •2.8.3 Текстовые функции
- •2.8.4 Функции работы с временем и датами
- •2.8.5 Вспомогательные функции
- •2.9 Виды на таблицы данных (Просмотры)
- •2.9.1Create view - создать новый вид на таблицу данных
- •2.9.2 Drop view - удалить вид на таблицу данных
- •2.10 Пользовательские процедуры
- •2.10.1 Create procedure - создать пользовательскую процедуру
- •2.10.2 Dba
- •2.10.3 References { byte | text }
- •2.10.4 Default { Wert | null }
- •2.10.5 Returning { Feldtyp | references { byte | text } }
- •2.10.6 Drop procedure - удалить процедуру
- •2.12.2 Нормальный текст
- •1999 - Sql-99, sql-3 (iso/iec 9075:1999(e) Information technology - Database languages - sql)
- •2003 - Sql-2003
- •4. Виды систем баз данных
- •4.1.Oracle
- •4.1.1 Типы данных
- •4.1.1.1.Символьные типы
- •4.1.1.2.Числовые типы
- •Даты, временные метки и интервалы
- •4.1.1.3.Логические типы
- •Двоичные данные
- •4.1.1.4.Типы данных для сети Интернет
- •4.1.1.5.Типы данных «Any»
- •4.2. Mysql
- •4.2.1 Типы данных.
- •4.2.1.1.Character String (строковый)
- •4.2.1.2.National Character String (национальный строковый)
- •4.2.1.3.Binary Large Object String (двоичный)
- •4.2.1.4.Numeric (числовой)
- •4.2.1.5.Datetime (дата/время)
- •4.2.1.6.Interval (интервальный)
- •4.2.1.7.Типы enum и set
- •4.2.2Использование типов столбцов их других систем управления базами данных
- •4.3. Postgresql
- •4.3.1 Типы данных
- •4.3.1.1Числовые типы
- •4.3.1.1.Целочисленные типы
- •4.3.1.2.Числа с заданной точностью
- •4.3.1.3.Типы с плавающей точкой
- •4.3.1.4.Серийные типы
- •4.3.1.5.Денежные типы
- •4.3.1.6.Символьные типы
- •4.3.1.7.Двоичные типы данных
- •4.3.1.8.Типы дата/времени
- •4.3.1.9.Логический тип
- •4.3.1.10.Перечисления
- •5. Использованные в пример таблицы данных
- •Символьные
- •Числовые типы данных
- •Двоичные типы данных
- •Типы данных времени, даты, интервалы
- •Логические типы данных
- •Список литературы
- •Оглавление
- •Часть 1………………………………………………………….…………………………….………… 4
- •Глава 1 модели данных………………………….………………….……………….…........…. 4
- •Глава 2 проектирование баз данных…………..……………………………………...… 40
- •1.4 Синтез реляционных баз …...………………………………………………………… 44
- •Часть 2……...…...………………………………………………………………………………….… 52
Свойства стандартных операций
Операции объединения, пересечения и декартова произведения обладают свойствами:
ассоциативность:
(A union B) union C ~ A union (B union C) => A union B union C;
коммутативность:
A union B ~ B union A;
A intersect B ~ B intersect A;
A times B ~ B times A.
Указанные свойства не выполняются для операции вычитания.
Специальные операции
Делениемотношений А на В называется отношение с заголовком (Х1, Х2, …, Хn) и телом, содержащим множество кортежей (x1,x2, …,xn), таких, что для всех кортежей (y1,y2, …,yn) ЄBв отношенииAнайдется кортеж (x1,x2, …,xn,y1,y2, …,yn).
Синтаксис операции деления
Отношение Aвыступает в роли делимого, отношениеBвыступает в роли делителя. Деление отношений аналогично делению чисел с остатком.
A divide by B
Замечание:Типичные запросы, реализуемые с помощью операции деления, обычно в своей формулировке имеют слово "все" - "какие поставщики поставляют все детали?".
Пример.Пусть есть отношение исходноеAPи делителиBiдляi=1, 2, 3.
АР
К |
Р |
К |
Р |
К1 |
Р1 |
К2 |
Р1 |
К1 |
Р2 |
К2 |
Р2 |
К1 |
Р3 |
К3 |
Р2 |
К1 |
Р4 |
К4 |
Р3 |
К1 |
Р5 |
К4 |
Р4 |
К1 |
Р6 |
К4 |
Р5 |
В1
Р |
Р1 |
В2
К |
К1 |
К2 |
APdivideby B1
Р |
Р3 |
Р4 |
AP divide by B2
К |
К1 |
К4 |
Выборкой (ограничением, селекцией)на отношенииAс условиемCназывается отношение с тем же заголовком, что и у отношенияA, и телом, состоящем из кортежей, значения атрибутов которых при подстановке в условиеCдают значение ИСТИНА.Cпредставляет собой логическое выражение, в которое могут входить атрибуты отношенияAи (или) скалярные выражения.
Синтаксис операции выборки
A where C илиA where X Θ Y
В простейшем случае условие Cимеет видXΘY, гдеΘ- один из операторов сравнения, аXиY- атрибуты отношенияAили скалярные значения. Такие выборки называютсяΘ-выборки (тэта-выборки) илиΘ-ограничения,Θ-селекции.
Пример.Для отношения А сформируем выборку
Отношение А
Номер детали |
Материал |
Вес |
1 |
Сталь |
0,8 |
2 |
Сталь |
1,0 |
3 |
Сталь |
0,5 |
AwhereВес >= 1,0
Номер детали |
Материал |
Вес |
2 |
Сталь |
1,0 |
ПроекциейотношенияAпо атрибутамX,Y, …,Z, где каждый из атрибутов принадлежит отношениюA, называется отношение с заголовком (X,Y, …,Z) и телом, содержащим множество кортежей вида (x,y, …,z), таких, для которых в отношенииAнайдутся кортежи со значением атрибутаXравнымx, значением атрибутаYравнымy, …, значением атрибутаZравнымz.
Синтаксис операции проекции
A [X,Y,…,Z]
Замечание.Операция проекции дает "вертикальный срез" отношения, в котором удалены все возникшие при таком срезе дубликаты кортежей.
Пример. Пусть дано отношение с информацией о поставщиках, включающих наименование и месторасположение:
Отношение А (Поставщики)
Номер поставщика |
Наименование поставщика |
Город поставщика |
1 |
Иванов |
Уфа |
2 |
Петров |
Москва |
3 |
Сидоров |
Москва |
4 |
Сидоров |
Челябинск |
Проекция А (Город поставщика)
Город поставщика |
Уфа |
Москва |
Челябинск |
Соединение. Операция соединения имеет несколько вариантов: это наиболее важноеестественноесоединение иΘ – соединение.
Естественное соединение. Пусть даны отношенияA(A1,A2,…,An,X1,X2,…,Xp) иB(B1,B2,…,Bn,X1,X2,…,Xm), имеющие одинаковые атрибутыX1,X2,…,Xp(т.е. атрибуты с одинаковыми именами и определенные на одинаковых доменах).
Тогда естественным соединениемотношенийAиBназывается отношение с заголовкомA(A1,A2,…,An,X1,X2,…,Xp,B1,B2,…,Bm) и телом, содержащим множество кортежей (a1,a2,…,an,x1,x2,…,xp,b1,b2,…,bm), таких, что (a1,a2,…,an,x1,x2,…,xp) ЄAи (x1,x2,…,xp,b1,b2,…,bm) ЄB.
Синтаксис операции естественного соединения
A JOIN B
В синтаксисе естественного соединения не указываются, по каким атрибутам производится соединение. Естественное соединение производится по всемодинаковым атрибутам.
Можно выполнять последовательное естественное соединение нескольких отношений.
Пример.Пусть имеем таблицу деталей С и таблицу поставщиков Р:
Отношение С
Название детали |
Материал |
Вес |
Город |
D1 |
Сталь |
0,8 |
Москва |
D2 |
Сталь |
1,0 |
Москва |
D3 |
Сталь |
0,5 |
Пенза |
D3 |
Алюминий |
0,7 |
Липецк |
Отношение Р
N_пост |
Название завода |
Город |
Улица |
Дом |
Р1 |
… |
Москва |
… |
… |
Р2 |
… |
Омск |
… |
… |
Р3 |
… |
Саратов |
… |
… |
Р4 |
… |
Москва |
… |
… |
Р5 |
… |
Тамбов |
… |
… |
С JOINР
Название детали |
Материал |
Вес |
Город |
N_пост |
Название завода |
Улица |
дом |
D1 |
Сталь |
0,8 |
Москва |
Р1 |
… |
… |
… |
D1 |
Сталь |
0,8 |
Москва |
Р4 |
… |
… |
… |
D2 |
Сталь |
1,0 |
Москва |
Р1 |
… |
… |
… |
D2 |
Сталь |
1,0 |
Москва |
Р4 |
… |
… |
… |
Θ – соединение.Пусть отношение А содержит атрибут Х, отношение В содержит атрибутY, аΘ- один из операторов сравнения (=, <, > и т.д.). ТогдаΘ - соединениемотношенияAпо атрибутуXс отношениемBпо атрибутуYназывают отношение:
(A TIMES B) WHERE X Θ Y