- •Основы баз данных. Введение.
- •БзХранятся не только данные, но и знания о применении этих данных. Реализуются они в виде процедур и алгоритмов. Выборки обрабатывают данные.
- •История БнД.
- •Проблемы бд:
- •Состав БнД.
- •Процесс проектирования базы данных.
- •Er-модель (модель Чена).
- •Основные понятия:
- •Виды связи
- •Рекурсивные связи
- •Представление связей более высокого порядка (не бинарных).
- •Избыточное дублирование.
- •Реляционная модель данных.
- •12 Правил Кодда, которым должна удовлетворять реляционная база данных.
- •Операции над данными.
- •Реляционная алгебра.
- •Свойства реляционных операций.
- •Понятие функциональной зависимости (ф.З).
- •Запись запросов на языке реляционной алгебры.
- •Проектирование реляционной базы данных.
- •Методы проектирования.
- •7 Правил Джексона.
- •Язык доступа к данным, основанный на исчислении с переменными кортежами.
- •Атрибуты, используемые для описания таблиц.
- •Обработка ссылочной целостности.
- •Операторы манипулирования данными.
- •Как задается условие?
- •Запросы, которые реализуются на основе соединения.
- •Подзапрос.
- •Использование квантора exists для поиска пересечения и разности.
- •Квантор общности моделирующий операцию деления.
- •Соответствия между операциями реляционной алгебры и sql.
- •Технологии клиент-сервер.
- •1 Вариант - файловый сервер.
- •2 Вариант – удаленный доступ.
- •3 Вариант – сервер Базы Данных.
- •4 Вариант – сервер приложений.
- •Внутренняя модель данных.
- •B-дерево.
- •Язык query by example (qbe)
- •Операции выборки в отношениях, имеющих древовидную структуру
- •Операции запоминания
- •Библиотечные функции
7 Правил Джексона.
Из модели Чена, используя эти правила, сразу можно получить нормальную форму.
Если отношения 1о:1о (индекс о означает обязательный класс принадлежности), то достаточно 1 таблицы, чтобы представить данное отношение.
Пример.
Растут деревья на участках леса:
-
Дерево
Участок
Площадь
Сосна
Бор
1
Береза
Роща
2
Осина
Лиственный лес
3
Если 1о:1н, то для представления информации необходимо 2 таблицы, отдельная таблица для необязательного класса принадлежности.
Например, если в предыдущий пример добавить еще один участок паленину, на которой ничего не растет ,но которая занимает некоторую площадь 4.
Участки |
Площадь |
Бор |
1 |
Роща |
2 |
Лиственный лис |
3 |
Паленина |
4 |
Дерево |
Участок |
Сосна |
Бор |
Береза |
Роща |
Осина |
Лиственный лес |
Если 1н:1н, то потребуется 3 таблицы.
Например, есть деревья, которые нигде не растут и есть участки, на которых ничего не растет.
Тогда 1 таблица описывает участки, 2 таблица описывает породы деревьев, 3 таблица является связующей, она содержит информацию о том, на каком участке какое дерево растет.
Если 1о или н:Мн, то потребуется 2 таблицы.
В 1 таблицу записываем те объекты, которые относятся к типу связи М. Во вторую таблицу записываем собственно связь.
Если 1н:Мн, то потребуется три таблицы.
Первая таблица описывает первый объект, вторая таблица описывает второй объект, а третья таблица описывает связь.
Если М:М, то всегда потребуется три таблицы.
Если n-объектных таблиц, и их надо связать, то всегда потребуется n+1 таблица, n таблиц отдельно описывают объекты, а n+1 таблица описывает связь между ними.
Язык доступа к данным, основанный на исчислении с переменными кортежами.
Таких языков достаточно много. Наиболее распространенный это SQL – структурированный язык запросов. ANSII разработала несколько стандартов, но ядро остается общим.
Основные операторы.
Так как под базой данных понимается совокупность реляционных таблиц, то основные операторы связаны с оперированием таблицами.
create database имя – создание базы данных;
close database – закрыть текущую базу данных;
open database имя – начать работу с существующей базой данных;
drop database имя – удаление БД;
create table имя (поле тип атрибуты,
поле1 тип атрибуты...)
атрибуты таблицы
Типы данных в SQL.
Integer – целое,занимает 4 байта;
Smallint - короткое целое, занимает 2 байта;
Serial- 4 байта, последовательность целых, испорльзуется в качестве ключа, генерируется автоматически, может быть последовательная генерация или случайная.
Float – число с плавающей точкой, занимает 8 байт;
Smallfloat – короткое число с плавающей точкой, занимает 4 байта;
decimal(P[,n]) – упакованное число, Р – общее количество цифр в числе, n- обозначает сколько чисел после запятой, C положительное число, D – отрицательное;
money(P,n) – для представления денежных едениц;
date – для хранения дат;
datetime a to b – временный интервал от а до b, значения а и b могут быть следующие:
year
day
month
hour
minute
second
fraction(1,2,3),
например, datetime year to hour 2000-04-10-13
char – строки постоянной длины;
char(n) – строки постоянной длины до n;
varchar – строки до 255;
varchar(n) – строки до n;
text – произвольные тексты до 2ГБ;
byte произвольная последовательность байтов до 2ГБ;
null – пустое значение, причем 2 пустых значения не равны между собой.