- •Определение базы данных.
- •2) Таблица, как основной объект бд.
- •3) Представление.
- •4) Хранимые процедуры.
- •5) Типы данных.
- •Лекция №4. 24.02.12
- •Оператор create table
- •Использование индексов
- •Оператор alter
- •Оператор drop
- •Ограничение столбца
- •Ограничение домена
- •Лекция №5 02.03.12
- •Ограничение сущностей
- •Ограничение ссылочной целостности
- •Представление
- •Хранимые процедуры
- •Создание и изменени хранимой процедуры
- •Виды хранимых процедур
- •Лекция №6 11.03.12
- •Триггеры
- •Лекция №7 16.03.12
- •Инструменты
- •Компоненты
- •Компонент ibDatabase
- •Механизм транзакций
- •Лекция №6 23.03.12
- •Компонент DataSource
- •Компоненты визуализации
- •Лекция 7 30.03.12 Сортировка набора данных в компоненте ibTable
- •Сортировка набора данных ibQuery
- •Фильтрация наборов данных
- •Фильтрация запиcей одной таблицы
- •Фильтрация записей, связанных по внешнему ключу таблицы
- •Механизмы поиска в наборах данных
- •Лекция 8 06.04.12
- •Создание отчета при помощи мастера
- •Создание отчета в режиме конструктора
- •Лекция 9 13.04.12 Базовые классы для работы с данными.
- •Пространство имен ado .Net
- •Типы пространства имен System.Data
- •Использование классов DataColumn, DataTable, DataRow Класс DataColumn
- •Лекция 9 20.04.12
- •Класс DataTable
- •Класс DataRow
- •Лекция 27 апреля Работа со свойством ItemArray
- •Использование классов DataSet и DataRelation
3) Представление.
Представление – это виртуальная таблица, которая используется полностью аналогично таблицам, хотя не содержит никаких данных.
4) Хранимые процедуры.
Хранимая процедура – это объект БД, представляющий собой набор SQL-инструкций, который компилируется один раз и хранится на сервере. У них могут быть входные-выходные параметры, локальные переменные и т.д.
5) Типы данных.
Типы данных – это базовый элементы любого языка программирование или любого сервера СУБД. (IB console). В inter base существует 12 типов данных, которые подразделяются на 6-сть следующих групп:
Для хранения целых чисел:
Integer
Small integer
Вещественные
Фиксированная точность
Numeric
Decimal
Для хранения даты, времени и даты-времени
Date
Time
Timestamp
Для хранения динамически расширяемых данных
Blob
Лекция 2. 10.02.12
Тема: Проектирование БД.
Концептуальная модель – это отражение предметной области для которой разрабатывается БД. Все объекты, обозначающие вещи, обозначаются в виде прямоугольника, атрибуты, характеризующие объект в виде овала, а связи между объектами в виде ромба. Мощность связи обозначается стрелками, в направлении, где мощность равна многим двойная стрелка, а со стороны, где равна единицы – одинарная.
Преобразование концептуальной модели в реляционную состоит в следующем:
Построить набор предварительных таблиц и указать первичные ключи;
Провести процесс нормализации;
Нормализация.
Существуют следующие нормальные формы: первая, фторая, третья формы, форма Бойса-Кодда, четвертая нормальная форма, пятая.
Отношение находится в первой нормальной форме, если все его атрибуты являются простыми (его нельзя разить на части).
Отношение имеет вторую нормальную форму если оно имеет первую нормальную форму и каждый атрибут отношения , не входящий ни в один ключ, полностью зависит от любого возможного ключа целиком первичного ключа целиком, а не как его подмножество.
Приведение отношения ко второй нормальной форме позволяет убрать зависимость не ключевых атрибутов от части ключа.
Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме если ни дин столбец в таблице не зависел от каких-либо других столбцов, кроме столбцов первичного ключа. Третья нормальная форма исключает транзитивную зависимость атрибутов.
Основные операторы языка SQL.
Оператор SELECT и конструкция FROM:
Основной всего оператора, который сообщает СУБД какое действие она должна выполнить является глагол SELECT, применение в операторе ключевого SELECT указывает на то, что должно быть выполнено только чтение информации, а нее ее модификация. Информация, подлежащая выборки, обозначается с помощью выражения или списка столбцов, которые непосредственно следуют за ключевым словом SELECT. Для указания имени таблицы, являющейся источником получения данных, служит конструкция FROM.
SELECT [DISTINCT | DISTINCTROW | ALL] select_expression,... [FROM table_references] [WHERE where_definition] [GROUP BY {unsigned_integer | col_name | formula} [HAVING where_definition] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC], ...]
Конструкция WHERE:
Позволяет налагать условие, определяющие, какую именно информацию должен возвратить запрос. Выражение, описывающие условие отбора, должно быть логическим. Его элементами могут быть: имена полей, операции сравнения, арифметические и логические операции, скобки, специальные функции LIKE, NULL, IN.
Критерий отбора представляет собой логическое выражение, в котором можно использовать следующие операции: =, <, >, <=, >=, !=.
LIKE – сравнение по шаблону.
IS NULL – проверка на нулевое значение.
IN – проверка на вхождение.
BETWEEN – проверка на вхождение на диапазон.
WHERE <выражение 1><оператор>< выражение 2>.
Выражение состоит из имен полей, функций ,констант, значений, знаков операций, круглых скобок.
Для сравнения строк вместо операций =, != можно использовать операцию LIKE, выполняющую сравнение по частичному совпадению.
match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]
Символ-шаблон |
Описание |
Пример |
% |
Любая строка длиной от нуля и более символов. |
Инструкция WHERE Название LIKE '%компьютер%' выполняет поиск и выдает все названия книг, содержащие слово «компьютер». |
_ (подчеркивание) |
Любой одиночный символ. |
Инструкция WHERE фамилия_автора LIKE '_етров' выполняет поиск и выдает все имена, состоящие из шести букв и заканчивающиеся сочетанием «етров» (Петров, Ветров и т.п.). |
[ ] |
Любой одиночный символ, содержащийся в диапазоне ([a-f]) или наборе ([abcdef]). |
Инструкция WHERE Фамилия_автора LIKE '[Л-С]омов' выполняет поиск и выдает все фамилии авторов, заканчивающиеся на «омов» и начинающиеся на любую букву в промежутке от «Л» до «С», например Ломов, Ромов, Сомов и т.п. При выполнении операции поиска в диапазоне символы, включенные в диапазон, могут изменяться в зависимости от правил сортировки параметров сортировки. |
[^] |
Любой символ, содержащийся в диапазоне ([^a-f]) или наборе ([^abcdef]). |
Инструкция WHERE Фамилия_автора LIKE 'ив[^а]%' выполняет поиск и выдает все фамилии, начинающиеся на «ив», в которых третья буква отличается от «а». |
Для проверки нулевого значения служит операция IS NULL:
expression IS [ NOT ] NULL
BETWEEN выполняет проверку вхождения значения в диапазон и имеет формат:
test_expression [ NOT ] BETWEEN begin_expression AND end_expression
При отборе можно использовать несколько операция, задавая тем самым сложные критерии отбора записей. Сложный критерий состоит из простых условий и логических операций (OR, AND, NOT).
Лекция 3. 17.02.12
Тема: Продолжение.
Конструкция ORDER BY
Сортировка представляет собой упорядочивание записей по возрастанию или убыванию значений полей. Список полей, по которому выполняется сортировка, указывается в операнде ORDER BY. Порядок полей в этом операнде определяет порядок сортировки: сначало записи упорядочиваются по значению поля, указанного в этом списке первым, затем записи, имеющие одинаковое значение первого поля упорядочиваются по второму полю и т.д. Поля в списке обозначаются именами или номерами, которые соответствуют номерам в списке полей после слова SELECT. По умолчанию сортировка происходит в порядке возрастания значений полей (ASC), для указания обратного порядка сортировки по какому-либо полю нужно указать после имени или имени этого поля описатель DESC.
ORDER BY { поле | Integer [ ASC|DESC ] } [,...]
Агрегироввание данных с использованием конструкции GROUP BY.
Записи набора данных могут быть сгруппированиы по некоторому признаку. Группу образуют записи с одинаковыми значениями (типом) в полях, перечисленных в списке операнда GROUP BY. При группировании записей их проще анализировать и обрабатывать с помощью статических функций. Группирование записей автоматически исключает повтор значений в полях, заданных для группирования, т.к. записи с совпадающими значениями этих полей объединяются в одну группу.
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
Функция COUNT для вычисления количества строк результатов запроса. Функции MIN и MAX определяют минимальное и максимальное значение для каждой группировки в выбранном столбце. Функция SUM вычисляет арифмитическую сумму для всех выбранных значений данного поля. AVG вычисляет среднего значения.
Оператор INSERT.
Вставка записи осуществляется с помощью оператора INSERT, который позволяет добавлять к таблицам одну или несколько записей.
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
В результате этого оператора к таблице, имя которой указано после слова INTO, добавляется одна запись. Для добавленной записи заполняются поля, перечисленные в списке. Значения полей берутся из списка расположенного после слова VALUES. Список полей и список значений должны соответствовать друг другу по числу элементов и по типу.
Оператор INSERT INTO … SELECT.
При добавлении к таблице сразу нескольких записей оператор INSERT имеет формат:
INSERT INTO table_name SELECT …
В данном случае значение полей новых записей определяется через значения полей записей, отобранных с помощью оператора SELECT. Число добавленных записей равно числу отобранных записей. Список значенйи полей возвращаемых инструкцией SELECT должен соответствовать списку оператора INSERT по числу и типу полей.
Модификация данных с помощью оператора UPDATE.
Редактирование записей представляет собой изменение значений полей в группе записей.
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
После применения оператора UPDATE для всех записей, удовлетворяющих условию отбора, изменяются значения выбранных полей. column указывает модифицируемое поле всей совокупности записей, а value определяет значение, которое будет присвоено этому полю.
В одном операторе UPDATE можно изменить несколько значений полей, в этом случае для каждого из них указывается соответствующее значение.
Оператор DELETE.
Для удаления группы записей используется оператор DELETE.
DELETE FROM table_name
WHERE some_column=some_value
Соединения
Конструкция JOIN.
Конструкция JOIN часто встречается при программировании базы даннх и применяется в SELECT выражениях. С помощью инструкции JOIN можно объединить колонки из нескольких таблиц в одну, при этомм целостность таблиц не нарушается.
INNER JOIN
OUTER JOIN – LEFT, RIGHT
CROSS JOIN
Таблица 1.
Groupe |
id_gr |
name_gr |
id_fac |
Таблица 2.
Facultet |
id_fac |
name_fac |
Group |
||
id_gr |
name_gr |
id_fac |
1 |
1410901 |
1 |
2 |
140902 |
1 |
3 |
140903 |
1 |
4 |
040901 |
3 |
5 |
040902 |
3 |
6 |
020901 |
2 |
7 |
030901 |
4 |
8 |
020903 |
2 |
9 |
080901 |
null |
10 |
080902 |
null |
Facultet |
|
id_fac |
name_fac |
1 |
КНиТ |
2 |
ФУП |
3 |
БХФ |
4 |
СТФ |
5 |
Юридический |
6 |
Экономический |
INNER JOIN:
Это внутренние соединения. Объединяет две таблицы, где каждая строка обоих таблиц в точности соответствует условию. Если для строки одной таблицы не найдено соответствие в другой таблице, то она не включается в набор. Формат:
SELECT column FROM table1 INNER JOIN table2 ON condition(условие)
Пример для наших таблиц:
SELECT Groupe.name_gr, Facultet.name_fac FROM Groupe INNER JOIN Facultet ON Groupe.id_fac=Facultet.id_fac;
OUTER JOIN
Это внешнее объединение. Делится на LEFT JOIN и на RIGHT JOIN.
LEFT – это левое внешнее объединение. Выбираются вне записи первой таблицы, даже если они не соответствуют записям во второй таблице.
SELECT Groupe.name_gr, Facultet.name_fac FROM Groupe LEFT JOIN Facultet ON Groupe.id_fac=Facultet.id_fac;
- LEFT
-RIGHT
Конструкция FULL JOIN:
Это комбинация правого и левого объединения. Показывает строки из обеих таблиц: при наличии соответствия – это бъединенные данные, в противном случае – это null значения.
Конструкция CROSS JOIN:
Перекрестное объединение, выводятся все комбинации строк (декартово произведение множеств). Каждой строке первой таблице соответствует каждая строка второй таблице.