
- •Лекции по курсу «Базы данных» для студентов факультета вычислительной математики и кибернетики кгу
- •Системы управления базами данных, их состав и назначение. Файловые и клиент-серверные субд.
- •2. Типы базы данных. Реляционные, иерархические, сетевые, объектно-ориентированные базы данных.
- •Основные понятия теории баз данных. Поиск данных и пользовательские запросы.
- •4. Проектирование предметной области. Объекты и атрибуты предметной области. Связи между объектами типа 1:1, 1:m, m:n.
- •Первичные ключи и индексы
- •Реляционные отношения между таблицами Отношение один-ко-многим
- •Отношение один-к-одному
- •Отношение многие-ко-многим
- •Оператор переименования атрибутов.
- •Теоретико-множественные операторы:
- •Объединение
- •Пересечение
- •3. Вычитание
- •4. Декартово произведение
- •Специальные реляционные операторы
- •5. Выборка (ограничение, селекция)
- •Проекция
- •6. Соединение
- •7. Деление
- •Примеры использования реляционных операторов
- •Кросс-таблицы.
- •Ключи отношений. Их роль и использование в базах данных.
- •Связи между отношениями. Внешние ключи. Проблема целостности внешних ключей.
- •Функциональные зависимости. Аксиоматическая система функциональных зависимостей. Теорема полноты.
- •1. Аксиоматика функциональных зависимостей Армстронга.
- •Покрытия функциональных зависимостей. Структура неизбыточных покрытий.
- •Нормальные формы баз данных. Первая, вторая и третья нормальные формы. Нормальная форма Бойса- Кодда.
- •Вторая Нормальная Форма.
- •Отношение сотрудники_отделы
- •Отношение проекты
- •Отношение задания
- •3 Нормальная форма.
- •Отношение сотрудники
- •Отношение отделы
- •Нормализация баз данных. Алгоритм приведения к 3-й нормальной форме с помощью кольцевых зависимостей.
- •Метод «Entity-Relationship». Проектирование структуры баз данных с помощью er-диаграмм. Пример.
- •Физическая организация баз данных.
- •2. Блочный поиск.
- •3. Двоичный поиск.
- •4. Поиск в индексно-последовательном файле.
- •6. Поиск в сбалансированном дереве.
- •7. Перемешивание.
- •8. Комбинация вышеперечисленных способов.
- •Организация баз данных с помощью хеширования. Влияние на эффективность хеширования размеров блока, плотности заполнения и выбора алгоритма хеширования.
- •2. Деление.
- •3. Сдвиг разрядов.
- •4. Преобразование системы исчисления.
- •Язык sql. Команды create, select, insert, alter, update, drop.
- •Простая выборка
- •Использование операторов сравнения
- •Использование in
- •Использование like
- •Выборка с упорядочением
- •Применение агрегатных функций sum, max, min, average в предложении select.
- •Функции без использования фразы group by
- •Фраза group by
- •Использование фразы having
- •19. Организация сложных запросов с помощью команды select.
- •Декартово произведение таблиц
- •Соединение таблицы со своей копией
- •Простые вложенные подзапросы
- •Объединение (union)
- •Организация клиент–серверных бд. Модели технологий «клиент–сервер».
- •Технологии доступа к данным. Система драйверов odbc. Источники данных. Создание dsn-файла.
- •Модели безопасность данных. Мандатный и дискреционный подход к обеспечению безопасности данных. Передача и отзыв привилегий пользователей с помощью предложения grant.
- •26.Безопасность баз данных. Средства защиты бд access.
- •31. Использование внешних данных в Access. Создание страниц доступа к данным и загрузка внешних баз данных. Выполнение sql-запросов к серверу ms sql Server.
- •I. Создание html-страницы доступа к данным
- •II. Загрузка в Access базы данных c сервера и работа с ней.
- •III. Выполнение в Access запросов к внешним таблицам, хранящимся на ms sql Server.
- •Совместная работа Access и ms sql Server, работа с удаленными данными на сервере. Использование утилиты Query Analyzer.
- •Работа с внешними данными с помощью технологии odbc
- •Команды Transact-sql
- •Создание представлений
- •Создание триггеров
- •37. Raid массивы и уровни их организации.
Первичные ключи и индексы
В каждой таблице БД может существовать первичный ключ поле или набор полей, однозначно идентифицирующий запись. Значение первичного ключа в таблице БД должно быть уникальным, то есть в таблице не должно существовать двух или более записей с одинаковым значением первичного ключа.
Первичные ключи облегчают установление связи между таблицами. В таблице «Покупатель» таким ключом является одноименное поле. Установив связь по первичному ключу, мы можем выяснить, что, например, 10.02.1999 года со склада было отпущено 100 единиц товара «Сахар» покупателю «Геракл, ТОО», офис которого расположен по адресу: 107005, Москва, 2-я Бауманская ул., 12 (телефон для связи 273-00-14).
Поскольку первичный ключ должен быть уникальным, для него могут использоваться не все поля таблицы. В приведенном примере название покупателя вряд ли может быть уникальным, поэтому поле «Покупатель» не может использоваться в качестве первичного ключа. Значительно более редким является совпадение телефонов у двух разных покупателей, поэтому поле «Телефон» в большей степени подходит на роль первичного ключа. Если в таблице нет полей, значения в которых уникальны, для создания первичного ключа в нее обычно вводят дополнительное числовое поле, значениями которого СУБД может распоряжаться по своему усмотрению. Если, например, в таблицу «Покупатель» добавить поле «№№», то связанные таблицы будет выглядеть так:
Дата
|
Товар
|
Покупатель
|
Отпущено (ед.)
|
10.12.99 |
Сахар |
1 |
100 |
10.12.99 |
Сахар |
1 |
100 |
12.12.99 |
Сахар |
2 |
2 000 |
12.12.99 |
Макароны |
2 |
300 |
14.12.99 |
Сахар |
1 |
200 |
15.12.99 |
Дрожжи |
3 |
100 |
И таблица:
№№ |
Покупатель |
Адрес |
Телефон |
1
|
Геракл, ТОО
|
107005, Москва, 2-я Бауманская ул., 12 |
273-00-14
|
2
|
Пищеторг, ЗАО |
105066, Москва, Измайловский б-р, |
165-18-99
|
3
|
База № 28
|
274088, Хотьково МО, ул. Лесная, 1
|
17-54
|
Теперь в таблице «Отпуск товаров» в поле «Покупатель» указывается значение первичного ключа, построенного по полю «№№» таблицы «Покупатель», что позволяет установить однозначную связь между таблицами.
Вторичные ключи устанавливаются по полям, которые часто используются при поиске и сортировке данных: вторичные ключи (см. п. 2.5) помогут системе значительно быстрее найти нужные данные. В отличие от первичных ключей, поля для индексов могут содержать неуникальные значения - в этом, собственно, и заключается главная разница между первичными и вторичными ключами.