- •1. Понятие баз данных и систем управления базами данных.
- •Логическая организация баз данных, концептуальные модели баз данных.
- •Основные функции и типовая организация субд.
- •Основные черты и примеры современных настольных субд.
- •Структура локальных информационных систем.
- •Этапы проектирования баз данных.
- •Последовательность создания информационной модели.
- •Базовые понятия реляционных баз данных.
- •Проектирование реляционных бд. Проектирование реляционных баз данных с использованием нормализации.
- •Внутренняя организация реляционных субд. Журнализация изменений бд. Индивидуальный откат транзакции.
- •Проектирование баз данных. Общая характеристика.
- •Проектирование базы данных. Определение сущностей.
- •Проектирование баз данных. Определение взаимосвязи между сущностями.
- •Проектирование баз данных. Словарь данных.
- •Проектирование баз данных. Администрирование базы данных. Защита информации.
- •Физическая организация баз данных.
Проектирование баз данных. Словарь данных.
Словарь данных призван помогать пользователю в выполнении следующих функций:
• совместное использование данных с другими пользователями;
• осуществление простого и эффективного управления элементами данных при вводе в систему новых элементов или изменении описания существующих;
• уменьшение избыточности и противоречивости данных;
• определение степени влияния изменений в элементах данных на всю базу данных;
• централизация управления элементами данных с целью упрощения проектирования базы данных и ее расширения.
Идеальный СД содержит также сведения и о других категориях данных, таких, как группы элементов данных, корреспондирующиеся базы данных и перекрестные ссылки между группами элементов данных и базами данных. Кроме того, в нем фиксируются сведения о тех прикладных программах, которые используют базу данных, и имеются сведения о кодах защиты информации и разграничении доступа.
Прежде всего остановимся на вопросах использования СД при проектировании системы обработки данных.
На первом этапе проектирования базы данных необходимо собрать сведения о предметной области, в том числе о назначении, способах использования и о структуре данных, а по мере развития проекта осуществлять централизованное накопление информации о концептуальной, логической, внутренней и внешних моделях данных. Словарь данных является как раз тем средством, которое позволяет при проектировании, эксплуатации и развитии базы данных поддерживать и контролировать информацию о данных.
При сборе информации о данных следует установить правила присвоения имен элементам, добиться однозначного толкования различными подразделениями назначения источников и соглашений по присвоению имен, сформулировать приемлемые для всех пользователей описания элементов данных и выявить синонимы. Этот процесс включает несколько итераций и связан с необходимостью разрешения конфликтных ситуаций. Отдельные подразделения подчас переоценивают свою роль на предприятии, что приводит при разработке информационной системы к конфликтам. Разработчику в таких случаях придется выступать в роли арбитра. Если вам не по душе слушать крики: «Судью на мыло!», то для обеспечения эффективного сбора и накопления информации о данных желательно, чтобы все, кто имеет отношение к базе данных, пользовались автоматизированным словарем данных.
Словарь данных содержит информацию об источниках, форматах и взаимосвязях между данными, их описания, сведения о характере использования и распределении ответственности. Словарь данных можно рассматривать как «метабазу данных», в которой хранится информация о базе данных.
Одно из главных назначений словаря данных состоит в документировании данных. Так как база данных обслуживает множество пользователей, крайне необходимо, чтобы они правильно понимали, что представляют собой данные.
Проектирование баз данных. Администрирование базы данных. Защита информации.
;Для успешного функционирования информационной системы, использующей БД, недостаточно выбора СУБД и сервера БД. На начальной стадии запуска информационной системы и в процессе ее эксплуатации необходимо выполнять настройку и различные функции администрирования. Важнейшими задачами администрирования являются защита информации и разграничение доступа пользователей. К числу других немаловажных задач настройки и администрирования также относятся следующие:
• выбор способа размещения файлов на диске;
• определение требуемого объема дисковой памяти;
•распределение информации на диске;
• резервное копирование.
Информация требует защиты на автономном компьютере и на машине, соединенной с другими отдельными компьютерами или подключенной к локальной или глобальной сети. Поскольку сетевой режим является более общим случаем использования компьютеров, при обсуждении вопросов защиты информации предположим наличие сетевых связей между компьютерами.
Под информацией (информационным обеспечением) в ВС понимается любой вид накапливаемых, хранимых и обрабатываемых данных. Частным случаем информации является совокупность программ (системных и прикладных), обеспечивающих различную обработку данных.
Движение информации в ЭВМ неразрывно связано с функционированием программ ее обработки и обслуживания, поэтому при рассмотрении защиты информации в ВС говорят об информационно-программном обеспечении (ИПО).
Целью защиты ИПО является обеспечение безопасности хранимой и обрабатываемой информации, а также используемых программных средств.
Для обеспечения качественной защиты ВС недостаточно организовать охрану помещений и установить программные средства защиты. Здесь требуется комплексный (системный) подход, предполагающий организацию защиты вычислительной системы в соответствии со структурой ВС, задачами, решаемыми в ней, а также целями и возможностями защиты.
Систему защиты нужно закладывать с начала разработки ВС и ее ИПО и выполнять на всех этапах жизненного цикла. На практике, в силу ряда причин, создание системы защиты часто начинается когда ВС и ее ИПО уже разработаны. Создаваемая система защиты должна быть многоуровневой, адаптируемой к новым условиям функционирования, включать в себя рационально организованную совокупность имеющихся средств, методов и мероприятий. Защита должна быть от злоумышленников и от некомпетентных действий пользователей и обслуживающего персонала. Для эффективного построения системы защиты необходимо:
• выделить уязвимые элементы вычислительной системы;
• выявить угрозы для выделенных элементов;
• сформировать требования к системе защиты;
•выбрать методы и средства удовлетворения предъявленным требованиям.
Безопасность ВС нарушается вследствие реализации одной или нескольких потенциальных угроз. Под угрозой ИПО понимается возможность преднамеренного или случайного действия, которое может привести к нарушению безопасности хранимой и обрабатываемой в ВС информации, в том числе и программ.
Языковые средства СУБД.Язык SQL.
SQL (Stmctured Query Language) — Структурированный Язык Запросов — стандартный язык запросов по работе с реляционными БД. Язык SQL появился после реляционной алгебры, и его прототип был разработан в конце 70-х годов в компании IBM Research. Он был реализован в первом прототипе реляционной СУБД фирмы IBM System R. В дальнейшем этот язык применялся во многих коммерческих СУБД и в силу своего широкого распространения постепенно стал стандартом «де-факто» для языков манипулирования данными в реляционных СУБД.
Первый международный стандарт языка SQL был принят в 1989 г. (далее мы будем называть его SQL/89 или SQL1). Иногда стандарт SQL1 также называют стандартом ANSI/ISO, и подавляющее большинство доступных на рынке СУБД поддерживают этот стандарт полностью. Однако развитие информационных технологий, связанных с базами данных, и необходимость реализации переносимых приложений потребовали в скором времени доработки и расширения первого стандарта SQL.
В конце 1992 г. был принят новый международный стандарт языка SQL, который в дальнейшим будем называть SQL/92 или SQL2. И он не лишен недостатков, но в то же время является существенно более точным и полным, чем SQL/89. В настоящий момент большинство производителей СУБД внесли изменения в свои продукты так, чтобы они в большей степени удовлетворяли стандарту SQL2.
В 1999 году появился новый стандарт, названный SQL3. Если отличия между стандартами SQL1 и SQL2 во многом были количественными, то стандарт SQL3 соответствует качественным серьезным преобразованиям.
Язык запросов (Data Query Language) в SQL состоит из единственного оператора SELECT. Этот единственный оператор поиска реализует все операции реляционной алгебры. Как просто, всего один оператор. Однако писать запросы на языке SQL (грамотные запросы) сначала совсем не просто. Надо учиться, так же как надо учиться решать математические задачки или составлять алгоритмы для решения непростых комбинаторных задач. Один и тот же запрос может быть реализован несколькими способами, и, будучи все правильными, они, тем не менее, могут существенно отличаться по времени исполнения, и это особенно важно для больших баз данных.
Синтаксис оператора SELECT имеет следующий вид:
SELECT [ALL | DISTINCT] «писок полей> [*)
FROM <Список таблиц>
[WHERE Предикат-условие выборки или соединения>]
[GROUP BY <Список полей результата;-]
[HAVING Предикат-условие для группы>]
[ORDER BY <Список полей, по которым упорядочить вывод>]
Здесь ключевое слово ALL означает, что в результирующий набор строк включаются все строки, удовлетворяющие условиям запроса. Значит, в результирующий набор могут попасть одинаковые строки. И это нарушение принципов теории отношений (в отличие от реляционной алгебры, где по умолчанию предполагается отсутствие дубликатов в каждом результирующем отношении). Ключевое слово DISTINCT означает, что в результирующий набор включаются только различные строки, то есть дубликаты строк результата не включаются в набор.
Символ *. (звездочка) означает, что в результирующий набор включаются все столбцы из исходных таблиц запроса.
В разделе FROM задается перечень исходных отношений (таблиц) запроса.
В разделе WHERE задаются условия отбора строк результата или условия соединения кортежей исходных таблиц, подобно операции условного соединения в реляционной алгебре.
В разделе GROUP BY задается список полей группировки. В разделе HAVING задаются предикаты-условия, накладываемые на каждую группу.
В части ORDER BY задается список полей упорядочения результата, то есть список полей, который определяет порядок сортировки в результирующем отношении. Например, если первым полем списка будет указана Фамилия, а вторым Номер группы, то в результирующем отношении сначала будут собраны в алфавтном порядке студенты, и если найдутся однофамильцы, то они будут расположены в порядке возрастания номеров групп.
В выражении условий раздела WHERE могут быть использованы следующие предикаты:
Предикаты сравнения { =, о, >,<, >=,<= }, которые имеют традиционный смысл.
Предикат Between A and В — принимает значения между А и В. Предикат истинен, когда сравниваемое значение попадает в заданный диапазон, включая границы диапазона. Одновременно в стандарте задан и противоположный предикат Not Between A and В, который истинен тогда, когда сравниваемое значение не попадает в заданный интервал, включая его границы.
Предикат вхождения в множество IN (множество) истинен тогда, когда сравниваемое значение входит в множество заданных значений. При этом множество значений может быть задано простым перечислением или встроенным подзапросом. Одновременно существует противоположный предикат NOT IN (множество), который истинен тогда, когда сравниваемое значение не входит в заданное множество.
Предикаты сравнения с образцом LIKE и NOT LIKE. Предикат LIKE требует задания шаблона, с которым сравнивается заданное значение, предикат истинен, если сравниваемое значение соответствует шаблону, и ложен в противном случае. Предикат NOT LIKE имеет противоположный смысл.
По стандарту в шаблон могут быть включены специальные символы:
символ подчеркивания (__) — для обозначения любого одиночного символа;
символ процента (%) — для обозначения любой произвольной последовательности символов;
остальные символы, заданные в шаблоне, обозначают самих себя.
Предикат сравнения с неопределенным значением IS NULL. Понятие неопределенного значения было внесено в концепции баз данных позднее. Неопределенное значение интерпретируется в реляционной модели как значение, неизвестное на данный момент времени. Это значение при появлении дополнительной информации в любой момент времени может быть заменено на некоторое конкретное значение.
