- •1. Файловая организация данных в автоматизированных информационных системах, ее недостатки.
- •2. Традиционные файловые системы. Подход, используемый в файловых системах. Достоинства и недостатки.
- •3. Понятие базы данных. Преимущества базы данных.
- •4. Понятие базы знаний. Структура и функции системы управления базой знаний. Язык запросов к базе знаний
- •5. Приложения базы данных. Компоненты базы данных.
- •6. Трехуровневая модель организации баз данных.
- •7. Понятие модели данных. Иерархическая модель, ее достоинства и недостатки.
- •8. Сетевая модель, ее достоинства и недостатки.
- •9. Реляционная модель. Ее базовые понятия (отношение, домен, кортеж, степень отношения), достоинства и недостатки.
- •10. Связь между таблицами в реляционной модели данных. Первичный и внешний ключи, их отличия.
- •11. Реляционная целостность: целостность отношений, ссылочная целостность.
- •12. Постреляционная модель, ее достоинства и недостатки.
- •13. Объектно-ориентированная модель данных. Ее базовые понятия (объекты, классы, методы, наследование, инкапсулирование, расширяемость, полиморфизм), достоинства и недостатки.
- •14. Объектно-реляционная модель данных, ее достоинства и недостатки.
- •15. Реляционная алгебра. Традиционные операции над множествами.
- •16. Реляционная алгебра. Специальные реляционные операции.
- •17. Реляционная алгебра. Соединения. Зависимость реляционных операторов.
- •18. Реализация реляционной алгебры средствами операторов Structured Query Language (sql)
- •19. Понятие проектирования базы данных. Требования, предъявляемые к базе данных.
- •20. Этапы жизненного цикла базы данных.
- •21. Жизненный цикл информационной системы. Проектирование баз данных. Цели и задачи проектирования. Проектирование реляционной бд. Формулирование и анализ требований.
- •22. Модель "сущность-связь", ее понятия: сущность, атрибут, экземпляр сущности, связь, мощность связи. Представление сущности и связи на er-диаграмме.
- •23. Типы связи, их представление на er-диаграмме.
- •24. Класс принадлежности сущности, его представление на er-диаграмме.
- •25. Правила преобразования er-диаграмм в реляционные таблицы в случае связи 1:1.
- •26. Правила преобразования er-диаграмм в реляционные таблицы в случае связи 1:м, м:n.
- •27. Проблемы er-моделирования (ловушка разветвления, ловушка разрыва, ловушка соединения)
- •28. Нормализация таблиц, ее цель. Первая нормальная форма. Вторая нормальная форма. Третья нормальная форма.
- •29. Нормализация таблиц, ее цель. Третья нормальная форма. Четвертая нормальная форма. Нормальная форма Бойса-Кодда.
- •30. Планирование и проектирование баз данных. Концептуальное проектирование. Логическое проектирование. Физическое проектирование. Критерии оценки качества модели.
- •31. Концептуальное проектирование, его цель и процедуры.
- •32. Логическое проектирование, его цель и процедуры.
- •33. Физическое проектирование, его цель и процедуры.
- •34. Основы проектирования баз данных. Словарь данных. Устранение дефектов модели.
- •35. Понятие субд. Архитектура субд.
- •36. Функциональные возможности и производительность субд.
- •37. Классификация субд. Режимы работы пользователя с субд.
- •38. Направления развития субд: расширение множества типов обрабатываемых данных, интеграция технологий баз данных и Web-технологий, превращение субд в системы управления базами знаний.
- •39. Назначение, стандарты, достоинства языка sql.
- •40. Понятие языка запросов к базе данных. Операторы Structured Query Language (sql). Порядок выполнения оператора select
- •41. Структура команды sql.
- •42. Типы данных и выражения в sql.
- •43. Возможности языка sql по: определению данных, внесению изменений в базу данных, извлечению данных из базы.
- •44. Условия целостности в субд. Понятие транзакции. Обработка транзакций в sql.
- •45. Понятие ограничения целостности базы данных. Классификация ограничений целостности. Реализация ограничений целостности средствами sql
- •46. Управление доступом к данным: привилегии, их назначение и отмена.
- •47. Встраивание sql в прикладные программы.
- •48. Диалекты языка sql в субд.
- •49. Эволюция концепций обработки данных.
- •50. Индексирование в базах данных. Управление индексами. Сортировка данных.
- •51. Системы совместного использования файлов. Обработка запросов в них. Недостатки систем.
- •52. Настольные субд, их достоинства и недостатки.
- •53. Клиент/серверные системы: клиенты, серверы, клиентские приложения, серверы баз данных.
- •54. Функции клиентского приложения и сервера баз данных при обработке запросов. Преимущества клиент/серверной обработки.
- •55. Общие сведения о хранимых процедурах и триггерах.
- •56. Характеристики серверов баз данных.
- •57. Механизмы доступа к данным базы на сервере.
- •58. Понятие и архитектура распределенных баз данных (РаБд). Гомогенные и гетерогенные РаБд. Стратегии распределения данных в РаБд.
- •59. Распределенные субд (РаСубд). Двенадцать правил к. Дейта.
- •2.Отсутствие опоры на центральный узел.
- •3.Непрерывное функционирование.
- •4.Независимость от расположения.
- •5.Независимость от фрагментации.
- •6.Независимость от репликации.
- •7.Обработка распределенных запросов.
- •8. Обработка распределенных транзакций
- •60. Обработка распределенных запросов. Преимущества и недостатки РаСубд.
- •61. Хранилища данных. Olap-технология.
- •62. Многомерная модель данных. Olap.
- •63. Пользователи базы данных. Администратор базы данных, его функции.
- •64. Актуальность защиты базы данных. Причины, вызывающие ее разрушение.
- •65. Методы защиты баз данных: защита паролем, шифрование, разграничение прав доступа.
- •66. Восстановление базы данных с помощью резервного копирования базы данных, с помощью журнала транзакций.
- •67. Понятие транзакции. Проблемы параллельной работы транзакций
- •68. Конфликты между транзакциями. Способы разрешения конфликтов
- •69. Механизм блокировок. Типология блокировок. Примеры использования различных типов блокировок
- •70. Назначение блокировок. Проблемы, связанные с установкой блокировок. Преднамеренные блокировки
- •71. Альтернативные методы обеспечения сериализуемости транзакций: метод временных меток, метод выделения версий данных
- •72. Архитектура сетевого приложения, взаимодействующего с базой данных. Техника создания приложений и апплетов на языке Java, взаимодействующих с базами данных.
47. Встраивание sql в прикладные программы.
SQL-операторы можно встраивать в триггеры, хранимые процедуры и прикладные программы. Для того, чтобы встроить SQL-операторы в программный код, необходимо преодолеть два затруднения. Во-первых, нужен какой-то способ, позволяющий записывать результаты выполнения SQL- операторов в программные переменные. Это можно сделать по-разному. В одних случаях для этого используются объектно-ориентированные программы, в других применяются более простые методы. Например, в PL/SQL следующий оператор присваивает переменной rowcount значение, равное количеству строк в таблице CUSTOMER:
SELECT COUNT(*) INTO rowcount FROM CUSTOMER;
Вторая трудность заключается в несоответствии парадигм SQL парадигмам языков программирования. Язык SQL оперирует множествами: большинство операторов SQL возвращают таблицу или набор строк. В отличие от этого, программы оперируют отдельными элементами или строками. Из-за этого отличия оператор, подобный приведенному ниже, не имеет смысла:
SELECT Name INTO custName FROM CUSTOMER;
Если в таблице CUSTOMER имеется 100 строк, то запрос столбца Name возвратит 100 значений, в то время как переменная custName может принять только одно значение.
Чтобы преодолеть это затруднение, результаты выполнения SQL- операторов обрабатываются как псевдофайлы. SQL-оператор возвращает набор строк. На первую строку помещается курсор, и данная строка обрабатывается. Затем курсор перемещается на следующую строку, и так далее, пока не будут обработаны все строки.
Именно таким является принцип встраивания SQL- операторов в программный код.
48. Диалекты языка sql в субд.
Несмотря на наличие международного стандарта ANSI SQL, многие компании, занимающиеся разработкой СУБД, вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Каждая из реализаций языка SQL в конкретной СУБД называется диалектом. Функции, которые добавляются к стандарту языка разработчиками коммерческих реализаций, принято называть расширениями. Например, в стандарте языка SQL определены конкретные типы данных, которые могут храниться в базах данных. Во многих реализациях этот список расширяется за счет разнообразных дополнений.
Выделяют три уровня соответствия стандарту ANSI/ISO — начальный, промежуточный и полный. В настоящее время не существует ни одного диалекта, полностью соответствующего стандарту. Производители СУБД (например, Oracle, Microsoft, Borland, Informix, Sybase) применяют собственные реализации SQL, отвечающие как минимум начальному уровню соответствия стандарту и содержащие некоторые расширения, специфические для данной СУБД. Не существует двух совершенно идентичных диалектов. Более того, поскольку разработчики баз данных вводят в системы все новые функциональные средства, они постоянно расширяют свои диалекты языка SQL, в результате чего отдельные диалекты все больше и больше отличаются друг от друга. Это имеет свои достоинства и недостатки.
Конкретная реализация языка, может включать в себя более широкие возможности по сравнению со стандартом SQL, например, больше типов данных, большее количество команд, больше дополнительных возможностей у имеющихся команд. Такие возможности делают работу с конкретной СУБД более эффективной. Кроме того, такие нестандартные возможности языка проходят практическую апробацию и со временем могут быть включены в стандарт. Недостаток в том, что различия в синтаксисе реализаций SQL затрудняют перенос приложений из одной системы в другую. Например, если приложение было написано для базы данных MS SQL Server с использованием своего диалекта SQL – языка Transact-SQL, то при переносе системы в базу данных ORACLE, не все конструкции языка будут понятны соответствующему диалекту SQL – языку PL/SQL.
В широко распространенных в настоящее время СУБД используются следующие диалекты языка SQL:
-
PL/SQL – в СУБД Oracle;
-
Transact-SQL – в СУБД Microsoft SQL;
-
Informix-SQL – в СУБД Informix;
-
Jet SQL – Microsoft Access.
Язык Jet SQL почти соответствует стандарту ANSI SQL. Основные различия языков Jet SQL и ANSI SQL состоят в следующем:
-
они имеют разные наборы зарезервированных слов и типов данных;
-
разные правила применимы к оператору Between, используемому для определения условий выборки записей;
-
подстановочные знаки ANSI и Microsoft Jet, которые используются в операторе Like, различны;
-
язык Jet SQL обычно предоставляет пользователю большую свободу, например, разрешается группировка и сортировка по значению выражения;
-
язык Jet SQL позволяет использовать более сложные выражения.
