
- •Лекции по курсу «Базы данных» для студентов факультета вычислительной математики и кибернетики кгу
- •Системы управления базами данных, их состав и назначение. Файловые и клиент-серверные субд.
- •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 массивы и уровни их организации.
2. Типы базы данных. Реляционные, иерархические, сетевые, объектно-ориентированные базы данных.
Базы данных содержат структурированную информацию об объектах предметной области. Структурированность данных позволяет выбирать информацию из базы данных по разным критериям, используя различные методы поиска, адекватные данной модели представления данных.
Основной единицей представления данных является объект, имеющий свойства (атрибуты), и связи между объектами. Примерами объектов служат люди (служащие фирмы, студенты учебного заведения, потребители товаров и т.д.), предметы (товары, накладные, компьютеры), данные (результаты сдач экзаменов, данные научного исследования) и т.д.
Атрибуты выражают свойства объектов, относящиеся к предметной области, в которой разрабатывается база данных. Проектировщик базы данных выбирает объекты, включаемые в предметную область и их атрибуты, относящиеся к предмету представления. Между объектами предметной области существуют естественные связи, которые разработчик должен отразить в структуре базы данных. Форма представления данных, атрибутов и связей между ними производится в соответствии с выбранной моделью базы данных.
Современные СУБД могут работать с несколькими различными моделями данных: иерархической и сетевой (с 60-х годов), реляционной (с 70-х) и объектно-ориентированной (с 90-х годов). Основное различие моделей – в представлении взаимосвязей между объектами.
Иерархическая модель данных строится по принципу иерархии объектов, то есть один тип объекта является главным, все нижележащие – подчиненными. Устанавливается связь «один ко многим», то есть для некоторого главного типа существует несколько подчиненных типов объектов. Иначе, главный тип именуется исходным типом, а подчиненные – порожденными. У подчиненных типов могут быть в свою очередь подчиненные типы. Наивысший в иерархии узел (совокупность атрибутов) называют корневым.
Сетевая модель данных строится по принципу «главный и подчиненный тип одновременно», то есть любой тип данных одновременно может одновременно порождать несколько подчиненных типов (быть владельцем набора) и быть подчиненным для нескольких главных (быть членом набора).
Реляционная модель данных объекты и связи между ними представляются в виде таблиц, при этом связи тоже рассматриваются как объекты. Все строки, составляющие таблицу в реляционной базе данных должны иметь первичный ключ. Все современные средства СУБД поддерживают реляционную модель данных.
Наиболее сложную структуру имеют объектно- ориентированные базы данных. Между объектами предметной области возникает иерархия типа «родитель- потомок». Все свойства родительского объекта наследуются потомками с возможности расширения и переопределения свойств и методов родителей. Здесь, как и в объектно-ориентированном программировании, используются принципы наследования, инкапсуляции и полиморфизма.
Наиболее простыми и распространенными являются реляционные модели данных. Рассмотрим примеры:
Пример 1. БД "Студенты КГУ" Объект - студент. Его атрибуты :Ф.И.О., домашний адрес, номер зачетной .книжки т.д.
Пример 2 : БД "Расписание рейсов" содержит атрибуты : номер рейса, пункт отправления, время отправления и т.д.
Каждая БД может реализоваться в виде одного или нескольких файлов. Hапример , БД "Студенты" может содержать таблицы "Студенты", содержащую данные о студентах, "Группа", содержащую сведения о группе, к которой приписан студент, "Экзамены"-сведения о текущих экзаменах и зачетах, которые нужно сдавать студенту данного курса и т.д. В реляционной модели данных каждый такой файл называется таблицей или отношением. В данном курсе лекций мы ограничимся рассмотрением только реляционных моделей, однако, такое ограничение не сужает круг рассматриваемых понятий, т.к. поскольку, и сетевую, и иерархическую модель можно реализовывать в реляционной модели.
Пример 3: Дана сетевая модель, предметная область которой имеет следующую диаграмму. Путем введения дублирования отдельных полей приведем ее структуру к древовидному, а затем к реляционному виду.
Сетевая структура Иерархическая структура Реляционная структура
Здесь мы разорвали некоторые связи, но добавили дублирующие элементы в полученную структуру.
Каждая цепочка реализуется как двумерная таблица, строками которой являются кортежи. Значит, база данных, соответствующая последнему рисунку, состоит из 4-х таблиц, имеющих по три столбца. Таблица реализуется в памяти компьютера в виде линейного файла:
Иванов С.П. |
10/04/70 |
Гончарова,33 |
* |
Петров И.И |
12/07/82 |
Нариманова,5 |
Из сказанного вытекает, что реляционная БД - это набор двумерных таблиц, реализованных в постоянной памяти компьютера в виде отдельных линейных файлов. Банк данных - это совокупность БД, связанных между собой. Например, банк данных "Учебное заведение" может содержать БД "Студенты", "Сотрудники", Библиотека" и т.д.