- •История развития вычислительной техники
- •Файлы и файловые системы
- •Базы данных на больших эвм
- •Базы данных на персональных компьютеров
- •Распределенные базы данных
- •Основные понятия и определения
- •Классификация моделей данных
- •Теоретико-графовые модели данных
- •Иерархическая модель данных
- •Язык манипулирования данными в иерархических базах данных
- •Сетевая модель данных
- •Реляционная модель данных Основные определения
- •Операции над отношениями. Реляционная алгебра
- •Специальные операции реляционной алгебры
- •Языковые средства современных субд Некоторые термины и определения, используемые при работе с базами данных
- •История развития sql
- •Структура sql
- •Типы данных
- •Оператор выбора select
- •Применение агрегатных функций и вложенных запросов в операторе выбора select
- •Вложенные запросы
- •Внешние объединения
- •Операторы манипулирования данными
- •Insert into books values (‘3-77777-444-2’, ‘Сказки Пушкина’, ‘Пушкин а.С.’, ‘’, 2010, 316)
- •Insert into books (isbn, title, autor, yearizd, pages) values (‘3-77777-444-2’, ‘Сказки Пушкина’, ‘Пушкин а.С.’, 2010, 316)
- •Общая идея языка запросов (xPath)
- •Проектирование реляционных бд на основе принципов нормализации
- •Системный анализ предметной области
- •Пример системного анализа предметной области
- •Даталогическое проектирование для реляционной модели данных
- •Инфологическое проектирование
- •Модель "сущность-связь"
- •Переход к реляционной модели данных
- •Принципы поддержки целостности в реляционной модели данных
- •Операторы ddl в языке sql с заданием ограничений целостности
- •Средства определения схемы базы данных
- •Средства изменения описания таблиц и средства удаления таблиц
- •Понятие представления операции создания представлений
- •Горизонтальное представление
- •Вертикальное представление
- •Сгруппированные представления
- •Объединенные представления
- •Физические модели баз данных Файловые структуры, используемые для хранения информации в бд
- •Индексные файлы
- •Файлы с плотным индексом, или индексно-прямые файлы
- •Файлы с неплотным индексом, или индексно-последовательные
- •Организация индексов в виде b-tree (в-деревьев)
- •Инвертированные списки
- •Модели безфайловой физической организации данных
- •Архитектура разделяемой памяти
- •Распределенная обработка данных Архитектура и принципы распределенного подхода. Требования и критерии построения информационных систем на базе распределенных бд (рбд)
- •Многомерное представление данных. Хранилище данных и olap. Назначение. Основные характеристики
- •Основные элементы и операции olap
- •Типы olap. Преимущества и недостатки
- •Моделирование многомерных кубов в реляционной модели данных
- •Логическая модель рбд. Бизнес-логика файл-серверной, клиент-серверной и n-уровневой архитектуры Логическая модель рбд
- •Понятие транзакции. Неявные и явные транзакции. Уровни изолированности транзакций. Понятие блокировок. Основные типы блокировок Понятие транзакции. Неявные и явные транзакции
- •Уровни изолированности транзакций
- •Особенности реализации транзакций в Oracle и ms Sql Server Общие операторы управления транзакциями
- •Особенности субд Oracle
- •Особенности субд ms sql Server
- •Понятие блокировок. Основные типы блокировок
- •Взаимоблокировки
- •Репликация данных. Виды репликации
- •Синхронная репликация
- •Асинхронная репликация
- •Процедурные расширения языка sql
- •Основные характеристики pl/sql и t-sql
- •Хранимые процедуры и функции
- •Триггеры
- •Защита информации в базах данных
- •Проверка полномочий
- •Обобщенная архитектура субд
- •Оптимизация sql-запросов
- •Методы синтаксической оптимизации запросов
- •Методы семантической оптимизации запросов
- •Электронная библиотека
- •Учет успеваемости студентов
- •Склад товаров
- •Интернет-магазин
- •Медицинский центр
Общая идея языка запросов (xPath)
Структура БД XNikaSQL описывается с помощью, так называемой, поисковой XSD схемы. Поисковая схема представляет взгляд на БД, хранящую коллекции XML документов разных типов (форм), как на один большой XML псевдо-документ.
Корневой элемент этого XML псевдо-документа называется "Colls". В корневом элементе расположено по одному элементу на каждую коллекцию (форму) в БД. Элементы названы по имени коллекции (коду формы), например, "ФИЗ_ЛИЦА". В каждом таком элементе условно расположены дочерние элементы, соответствующие хранящимся в коллекции объектам учета. Дочерние элементы названы по коду экземпляра формы, например, "ФИЗ_ЛИЦО". В каждом дочернем элементе расположены XML данные соответствующего объекта учета. Схема каждого такого элемента соответствует XSD схеме типа объектов учета соответствующей коллекции.
Язык запросов XNikaSQL имеет форму стандартного языка XPath2.0 (http://www.w3.org/TR/xpath20/), предназначенного для поиска элементов XML документа, в данном случае объектов учета, условно находящихся в XML псевдо-документе, описанном поисковой схемой БД. Например, "/Colls/ФИЗ_ЛИЦА/ФИЗ_ЛИЦО[Фамилия='Иванов']".
Таблица 5. Примеры запросов на языке запросов XNikaSQL.
№ |
Запрос на языке запросов XNikaSQL |
Комментарий |
Соответствующий SQL запрос |
1 |
/Colls/ФИЗ_ЛИЦА/ ФИЗ_ЛИЦО[main_props/ fio/lst_name='Иванов'] |
Простое условие: ищем ФИЗ_ЛИЦО с фамилией Иванов |
SELECT * FROM [ФИЗ_ЛИЦА] Y1 WHERE Y1.[main_props_fio_lst_name] = 'Иванов' |
4 |
/Colls/ФИЗ_ЛИЦА/ ФИЗ_ЛИЦО[starts-with(main_props/fio/ lst_name, 'Иванов') and main_props/inn <= 123456789] |
Простые сравнения и сравнения строк: ищем ФИЗ_ЛИЦО с фамилией, начинающейся на Иванов, и ИНН меньше или равно 123456789 |
SELECT * FROM [ФИЗ_ЛИЦА] Y1 WHERE ((Y1.[main_props_fio_lst_name] LIKE 'Иванов%') AND (Y1.[main_props_inn] <= 123456789)) |
8 |
/Colls/ФИЗ_ЛИЦА/ ФИЗ_ЛИЦО[status/ aLanguage/language[name='английский' and level='свободно'] and status/aLanguage/ language[name= 'немецкий' and level='читает со словарем']] |
Сочетание связанных условий на многозначные атрибуты: ищем ФИЗ_ЛИЦО, владеющее свободно английским, и, умеющее читать со словарем по-немецки. |
SELECT * FROM [ФИЗ_ЛИЦА] Y1 WHERE ((EXISTS (SELECT * FROM [ФИЗ_ЛИЦА_status_aLanguage] Y2 WHERE Y1.[ID_1] = Y2.[ID_1] AND ((Y2.[name] = 'английский') AND (Y2.[level] = 'свободно')))) AND (EXISTS (SELECT * FROM [ФИЗ_ЛИЦА_status_aLanguage] Y3 WHERE Y1.[ID_1] = Y3.[ID_1] AND ((Y3.[name] = 'немецкий') AND (Y3.[level] = 'читает со словарем'))))) |
Проектирование реляционных бд на основе принципов нормализации
Процесс проектирования БД представляет собой последовательность переходов от неформального словесного описания информационной структуры предметной области к формализованному описанию объектов предметной области в терминах некоторой модели. В общем случае можно выделить следующие этапы проектирования:
Системный анализ и описание информационных объектов предметной области (например, UseCase – диаграммы (диаграммы прецедентов)).
Проектирование инфологической модели предметной области — частично формализованное описание объектов предметной области в терминах некоторой семантической модели, например, в терминах ER-модели.
Даталогичеcкое или логическое проектирование БД, то есть описание БД в терминах принятой даталогической модели данных.
Физическое проектирование БД, то есть выбор эффективного размещения БД на внешних носителях для обеспечения наиболее эффективной работы приложения.
Между 2-м и 3-м этапами необходимо принять решение, с использованием какой СУБД будет реализовываться проект, т.к. этапы проектирования 3 и 4 необходимо вести в терминах конкретной платформы СУБД (типы данных, ключи, соглашения о названиях полей и таблиц и т.д.).
