
- •Введение Архитектура вычислительных систем Фон-неймановская архитектура эвм
- •Многоуровневое построение ос
- •Тема1 Функции ос: Можно попробовать перечислить основные функции операционных систем.
- •2 Тема Компоненты баз данных: данные, по, оборудование, персонал.
- •Тема 5.
- •Проблема потери обновления. Две транзакции по очереди записывают некоторые данные в одну и ту же строку и фиксируют изменения.
2 Тема Компоненты баз данных: данные, по, оборудование, персонал.
Оборудование - это набор физических устройств, на которых существует база данных. Оно состоит из одного или нескольких компьютеров, дисководов, мониторов, принтеров, магнитофонов, соединительных кабелей и других вспомогательных и соединительных устройств.
Для обработки данных в базах данных могут использоваться универсальные вычислительные машины, миникомпьютеры или персональные компьютеры.
А) Универсальные ЭВМ и миникомпьютеры используются в качестве основы для поддержания доступа многих пользователей к общей базе данных.
Б) Персональные компьютеры часто используются для баз данных, с которыми работает пользователь.
В) Компьютеры могут быть соединены в сеть по принципу клиент /сервер, обеспечивая доступ нескольких пользователей к общей базе данных, хранимой на дисках и управляемой сервером. Сервером может служить более мощный настольный компьютер, миникомпьютер или универсальная ЭВМ.
Основным способом хранение баз данных является хранение на дисках, что существенно, поскольку только к ним возможен произвольный доступ, без которого с базой данных работать невозможно.
Программное обеспечение
Информационная система использующая базу данных, включает в себя 2 вида программного обеспечения.
1. Программное обеспечение общего назначения для поддержания базы данных, обычно называемое системой управления базой данных (СУБД).
2. Прикладное программное обеспечение, которое использует средства СУБД для выполнения конкретных деловых задач, таких управление заработной платой, выставление счетов, анализ продаж и т.д.
Прикладное программное обеспечение обычно создается сотрудниками фирмы для решения конкретных задач. Оно может быть написано на стандартном языке программирования или же на языке входящим в комплект СУБД. Прикладные программы используют средства СУБД для обращения к данным и их обработки, создавая отчеты, документы и т.д.
СУБД выполняет следующие функции:
1) Централизованное определение и контроль данных, известное под названием словарь / каталог данных.
2) Защита данных и обеспечение их целостности.
3) Одновременный доступ к данным для нескольких пользователей.
4) Ориентированные на пользователя возможности запросов по обработке и извлечения данных.
5) Ориентированные на программиста возможности создания прикладных систем.
Подсистема словаря / каталога данных следит за определениями всех элементов базы данных, включая элементарные группы данных (поля), структуры данных на уровне групп записей, файлы и реляционные таблицы. Эту информацию поддерживает не только словарь данных, но именно он отслеживает отношения, существующих между различными группами данных. Он также отслеживает установки формата вывода данных, которые могут использоваться различными прикладными программами.
Информация в словаре данных называется метаданными, то есть данные о данных.
Метаданные - данные в словаре данных описывающие базу данных.
Средства СУБД обеспечивают взаимодействие с телекоммуникационными системами, адекватно обрабатывая запросы и выдавая результаты.
Данные Данные в самой базе данных должны быть тщательно и логично организованы. Необходимо проанализировать бизнес- функции, установить и точно организованы определить элементы данных и отношения между ними, а определения аккуратности внести в словарь данных. После этого вносить данные в базу данных.
Персонал
1. Пользователи - люди, которым информация базы данных требуется для выполнения их прямых служебных обязанностей, которые лежат в несколько иной области.
2. Обслуживающий персонал - люди, чьими прямыми обязанностями является создание и поддержание информационной системы и соответствующего прикладного программного обеспечения, необходимого пользователям.
Цикл жизни базы данных.
Жизненный цикл базы данных — это совокупность этапов, которые проходит база данных на своём пути от создания до окончания использования.
Планирование разработки базы данных Планирование наиболее эффективного способа реализации этапов жизненного цикла системы
Определение требований к системе Определение диапазона действий и границ приложения базыданных, состава его пользователей и областей применения
Сбор и анализ требований пользователей Сбор и анализ требований пользователей из всех возможных областей применения
Проектирование базы данных Полный цикл разработки включает концептуальное, логическое и физическое проектирование базы данных
Выбор целевой СУБД (необязательный этап) Выбор наиболее подходящей СУБД для приложения базы данных
Разработка приложений Определение пользовательского интерфейса и прикладных программ, которые используют и обрабатывают данные в базе данных
Создание прототипов (необязательный этап) Создание рабочей модели приложения базы данных, которая позволяет разработчикам или пользователям представить и оценить окончательный вид и способы функционирования системы
Реализация Создание внешнего, концептуального и внутреннего определений базы данных и прикладных программ
Преобразование и загрузка данных Преобразование и загрузка данных (и прикладных программ) из старой системы в новую
Тестирование Приложение базы данных тестируется с целью обнаружения ошибок, а также его проверки на соответствие всем требованиям, выдвинутым пользователями
Эксплуатация и сопровождение На этом этапе приложение базы данных считается полностью разработанным и реализованным. Впредь вся система будет находиться под постоянным наблюдением и соответствующим образом поддерживаться.
Концепции и архитектура БД.
Основные черты концепции БД:
Данные отделяются от Прикладных Программ, появляется специальная программная надстройка для управления данными, называемая системой управления базами данных (СУБД); СУБД управляет данными и служит посредником между ними и ПП; ПП упрощаются, освобождаются от функций структуризации, хранения и поиска данных;
Появляются стандартизированные данные о фактографических данных – метаданные, управляемые СУБД;
Метаданные описывают информационные параметры и взаимосвязи фактографических данных о ПО;
СУБД совместно с метаданными представляет собой стандартизированное инструментальное средство для моделирования ПО различной природы;
Происходит централизация данных, их многоаспектное использование для различных приложений, что сокращает избыточность данных
Языки ЯОД и ЯМД: назначение и функции.
Первая из этих функций обеспечивается языком описания данных (ЯОД). Описание базы данных средствами ЯОД называется схемой базы данных. Оно включает описание структуры базы данных и налагаемых на нее ограничений целостности данных. Помимо указанных функций, ЯОД некоторых СУБД обеспечивают также возможности задания в схеме ограничений доступа к данным или полномочий пользователей. Язык описания данных (ЯОД) - это язык высокого уровня декларативного (непроцедурного) типа, предназначенный для формализованного описания типов данных, их структур и взаимосвязей.
Язык манипулирования данными (ЯМД) позволяет выполнять операции манипулирования данными в базе данных. В таких языках предусматриваются операции вставки новых данных в базу данных, удаление или обновление имеющихся данных. Язык манипулирования данными (или язык запросов) представляет собой систему команд, например, следующего типа:
1. произвести выборку данного, значение которого удовлетворяет заданным условиям;
2. произвести выборку всех данных определенного типа, значения которых удовлетворяют заданным условиям;
3. найти в базе позицию данного и поместить туда новое значение (или удалить данное) и т.д.
Словарь данных.
Словарь данных - это набор таблиц, используемых как справочник только для чтения, который предоставляет информацию об ассоциированной с ним базе данных. Например, словарь данных может предоставлять следующую информацию:
1. имена пользователей
2. привилегии и роли, которые были предоставлены каждому пользователю
3. имена объектов схем (таблиц, представлений , снимков, индексов, кластеров, синонимов, последовательностей, процедур, функций, пакетов, триггеров и т.д.)
4. информацию об ограничениях целостности
5. умалчиваемые значения для столбцов
6. сколько пространства было распределено и в настоящее время используется объектами в базе данных
7. информацию аудита, например, кто обращался к различным объектам и обновлял их
8. другую общую информацию о базе данных
Словарь данных структурирован через таблицы и представления , как и любые другие данные в базе данных. Для обращения к словарю данных вы используете SQL. Так как словарь данных можно только читать, пользователи могут выдавать лишь запросы (предложения SELECT) по таблицам и представления м словаря данных.
Категории персонала.
Пользователей СУБД можно разбить на три категории:
• администратор сервера баз данных. Он ведает установкой, конфигурированием сервера, регистрацией пользователей, групп, ролей и т.п. рямо или косвенно он обладает всеми привилегиями, которые имеют или могут иметь другие пользователи.
• администраторы базы данных. К этой категории относится любой пользователь, создавший базу данных, и, следовательно, являющийся ее владельцем. Он может предоставлять другим пользователям доступ к базе и к содержащимся в ней объектам. Администратор базы отвечает за ее сохранение и восстановление. В принципе в организации может быть много администраторов баз данных
• прочие (конечные) пользователи. Они оперируют данными, хранящимися в базах, в рамках выделенных им привилегий.
Администратор данных (АД) – это специалист, который несет ответственность за хранимые в базах данных данные. В его обязанности входит принимать решение, какие данные вносить в базу данных, организация обслуживания и использования данных.
Администратор базы данных (АБД) – должен быть профессионалом в области информационных технологий; он должен организовать эксплуатацию баз данных в соответствии с решениями АД. В его обязанности входит развитие базы данных, обеспечение ее повседневной эксплуатации, в том числе и защиту данных.
Логический уровень представления данных.(в конце подробней)
Используется три вида моделей: иерархические, сетевые и реляционные.
Сетевая модель является моделью объектов-связей, допускающей только бинарные связи “многие к одному” и использует для описания модель ориентированных графов.
Иерархическая модель является разновидностью сетевой, являющейся совокупностью деревьев (лесом).
Реляционная модель использует представление данных в виде таблиц (реляций), в основе лежит математическое понятие теоретико-множественного отношения, базируется на реляционной алгебре и теории отношений.
логический уровень представления данных- структурa данных
ЛОГИЧЕСКИЙ УРОВЕНЬ: записи, элементы данных, связи между записями
Реляционная модель данных.
Реляционная база данных является организованной на машинном носителе совокупностью взаимосвязанных данных и содержит сведения о различных сущностях одной предметной области — реальных объектах, процессах, событиях или явлениях. Реляционная база данных представляет собой множество взаимосвязанных двумерных таблиц, в каждой из которых содержатся сведения об одной сущности.
Структура реляционной таблицы определяется составом и последовательностью полей, соответствующих ее столбцам, с указанием типа элементарного данного, размещаемого в поле. Каждое поле отражает определенную характеристику сущности, а соответствующий столбец содержит данные одного типа.
Содержание реляционной таблицы заключено в ее строках. Каждая строка таблицы содержит данные о конкретном экземпляре сущности и называется записью. для однозначного определения каждой записи таблица должна иметь уникальный ключ (первичньгй ключ). Этот ключ может состоять из одного или нескольких полей. По значению ключа отыскивается единственная запись.
Связи между таблицами базы данных дают возможность совместно использовать данные из разных таблиц. В нормализованной реляционной базе данных связи характеризуются отношениями типа один-к-одному (1:1) или один-ко-многим (1 :М). Связь каждой пары таблиц обеспечивается одинаковыми полями в них - ключом связи. Ключом связи всегда является уникальный ключ главной таблицы в связи. В подчиненной таблице он называется внешним ключом.
Реляционная модель использует представление данных в виде таблиц (реляций, связей). В ее основе лежит математическое понятие теоретико-множественного отношения: она базируется на реляционной алгебре и теории отношений.
3-х уровневая архитектура модели данных.
Уровень внешних моделей -- самый верхний уровень, где каждая модель имеет свое "видение" данных. Этот уровень определяет точку зрения на БД отдельных приложений. Каждое приложение видит и обрабатывает только те данные, которые необходимы именно этому приложению.
Концептуальный уровень -- центральное управляющее звено, здесь база данных представлена в наиболее общем виде, который объединяет данные, используемые всеми приложениями, работающими с данной базой данных. Физический уровень -- собственно данные, расположенные в файлах или в страничных структурах, расположенных на внешних носителях информации.
Концептуальный логический и физический уровни представления данных.
Концептуальное проектирование - сбор, анализ и редактирование требований к данным
Логическое проектирование - преобразование требований к данным в структуры данных
Физическое проектирование - определение особенностей хранения данных, методов доступа и т.д.
1-й уровень - концептуальный, связан с частным представлением данных группы пользователей в виде внешней схемы, объединяемых общностью используемой информации. Каждый конкретный пользователь работает с частью БД и представляет ее в виде внешней модели.
2-й уровень - логический, является обобщенным представлением данных всех пользователей в абстрактной форме.
3-й уровень - физический (внутренний), связан со способом фактического хранения данных в физической памяти.
КОНЦЕПТУАЛЬНЫЙ УРОВЕНЬ: сущности, атрибуты, связи
ЛОГИЧЕСКИЙ УРОВЕНЬ: записи, элементы данных, связи между записями
ФИЗИЧЕСКИЙ УРОВЕНЬ: группирование данных, индексы, методы доступа
3 тема Информационно-логическое моделирование.
Процесс проектирования данных можно условно разделить на два этапа: логическое моделирование и физическое проектирование. Результатом первого из них является так называемая логическая (или концептуальная) модель данных, выражаемая обычно диаграммой «сущность-связь» или ER (Entity-Relationship) диаграммой, которая представлена в одной из стандартных нотаций, принятых для отображения подобных диаграмм. Результатом второго этапа является готовая база данных либо DDL-скрипт для ее создания. Логическая модель данных описывает факты и объекты, подлежащие регистрации в будущей базе данных. Основными компонентами такой модели являются сущности, их атрибуты и связи между ними. Как правило, физическим аналогом сущности в будущей базе данных является таблица, а физическим аналогом атрибута — поле этой таблицы. С логической точки зрения сущность представляет собой совокупность однотипных объектов или фактов, называемых экземплярами этой сущности. Физическим аналогом экземпляра обычно является запись в таблице базы данных. Как и записи в таблице реляционной СУБД, экземпляры сущности должны быть уникальными, то есть полный набор значений их атрибутов не должен дублироваться. И так же, как и поля в таблице, атрибуты могут быть ключевыми и неключевыми. На этапе логического проектирования для каждого атрибута обычно определяется примерный тип данных (строковый, числовой, BLOB и др.). Конкретизация происходит на этапе физического проектирования, так как различные СУБД поддерживают разные типы данных и ограничения на их длину или точность.
Моделирование данных
Одной из основных частей информационного обеспечения является информационная база, которая представляет собой совокупность данных, с помощью которых удовлетворяются информационные потребности управленческих процессов и решаемых задач. Разработка БД выполняется с помощью моделирования данных. Цель моделирования данных состоит в обеспечении разработчика ИС концептуальной схемой базы данных в форме одной модели или нескольких локальных моделей, которые относительно легко могут быть отображены в любую систему баз данных. Наиболее распространенным средством моделирования данных являются диаграммы "сущность-связь" (ERD). С помощью ERD осуществляется детализация накопителей данных DFD – диаграммы, а также документируются информационные аспекты бизнес-системы, включая идентификацию объектов, важных для предметной области (сущностей), свойств этих объектов (атрибутов) и их связей с другими объектами (отношений). Информацию следует разбивать на логические единицы, которые будут подлежать обработке или значимы для идентификации отдельных экземпляров строк и полей таблицы (Например, следует определять поля «Имя» и «Фамилия», а не общее поле «ФИО», если в работе будет требоваться вводить или выводить значение имени). Условия выборки могут представлять собой сложные логические выражения.(да\нет).
Модель предметной области.
Модель предметной области - это наши знания о предметной области. Это текстовые описания предметной области, наборы должностных инструкций, правила ведения дел в компании и т.п. Информативными и полезными при разработке баз данных являются описания предметной области, выполненные при помощи специализированных графических нотаций. Связи между таблицами следует определять в рамках схемы данных с учетом бизнес-правил предметной области, которыми в данном случае являются: По курсу проводится несколько занятий. Имеется несколько учебных групп. Каждый студент учится в одной группе.
Сущность-связь. ER диаграмма
Модель сущность-связь (ER-модель) (англ. entity-relationship model, ERM) — модель данных, позволяющая описывать концептуальные схемы предметной области. С её помощью можно выделить ключевые сущности и обозначить связи, которые могут устанавливаться между этими сущностями.
Во время проектирования баз данных происходит преобразование ER-модели в конкретную схему базы данных на основе выбранной модели данных (реляционной, объектной, сетевой или др.).
В качестве стандартной графической нотации, с помощью которой можно визуализировать ER-модель, была предложена диаграмма сущность-связь (ER-диаграмма) (англ. entity-relationship diagram, ERD).
Представление сущностей.
Сущность – любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а экземпляром – Москва, Киев и т.д.
Ключевые и неключевые атрибуты.
Атрибут – поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей. Атрибуты используются для определения того, какая информация должна быть собрана о сущности.
Атрибут является таковым только в связи с типом сущности. В другом контексте атрибут может выступать как самостоятельная сущность. Например, для автомобильного завода цвет – это только атрибут продукта производства, а для лакокрасочной фабрики цвет – тип сущности.
Ключ – минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности.
Ключи- кандидаты.
Ключом-кандидатом называется минимальный набор полей, однозначно идентифицирующих кортеж, или запись, в БД. Минимальность набора понимается в том смысле, что при исключении из набора какого-либо поля он теряет свойства ключа-кандидата.
Поля, входящие в ключи-кандитаты, называются первичными атрибутами. Остальные поля, т.е. не входящие в ключи-кандитаты, называются непервичными атрибутами.
Вторичным ключом, называется идентификатор, выбираемый в качестве ключа и неоднозначно идентифицирующий кортеж, или запись, в БД. Вторичный ключ применяется для выбора множества записей, имеющих одинаковые значения полей, определенных в качестве вторичного ключа.
NULL-значения
NULL означает отсутствие, неизвестность информации. При сравнении NULL с любым значением будет получен результат NULL. Более того, NULL не равно NULL!
Связь –
ассоциирование двух или более сущностей. Однако одно из основных требований к организации базы данных – это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи.
Атрибуты связей.
Если некоторое свойство характеризует не объект сам по себе, а его связь с другим объектом (объектами), то это атрибут связи, а не атрибут объекта.
Тип связи «один-ко-многим» В такой связи каждой записи в таблице A могут соответствовать несколько записей в таблице B, а запись в таблице B не может иметь более одной соответствующей ей записи в таблице A.
Тип связи «многие-ко-многим» При связи «многие-ко-многим» одной записи в таблице A могут соответствовать несколько записей в таблице B, а одной записи в таблице B несколько записей в таблице A. Такая схема реализуется только с помощью третьей (связующей) таблицы, в которой имеются два индексированных поля, которые являются первичным ключом в таблицах A и B.
Тип связи «один-к-одному» При отношении «один-к-одному» запись в таблице A может иметь не более одной связанной записи в таблице B и наоборот.
Зависимые и независимые сущности.
Дочерняя сущность, уникальность которой зависит от атрибута внешнего ключа, называется зависимой сущностью.
Зависимые сущности далее классифицируются на сущности, которые не могут существовать без родительской сущности и сущности, которые не могут быть идентифицированы без использования ключа родителя (сущности, зависящие от идентификации).
Внешние ключи
Столбец одной таблицы, значения в котором совпадают со значениями столбца, являющегося первичным ключом другой таблицы, называется внешним ключом. Обычно в качестве первичного и внешнего ключей используются столбцы с одинаковыми именами из двух различных таблиц.
Внешний ключ, как и первичный ключ, тоже может представлять собой комбинацию столбцов. Очевидно, что количество столбцов и их типы данных в первичном и внешнем ключах совпадают.
Если таблица связана с несколькими другими таблицами, она может иметь несколько внешних ключей.
Ограничения целостности.
Целостность базы данных (DATABASE INTEGRITY) — соответствие имеющейся в базе данных информации её внутренней логике, структуре и всем явно заданным правилам. Каждое правило, налагающее некоторое ограничение на возможное состояние базы данных, называется ограничением целостности (integrity constraint).
Примеры ограничений: вес детали должен быть положительным; возраст родителей не может быть меньше возраста их ребёнка и т.д.
Поддержка целостности.
Выделяют три группы правил целостности:
1) Целостность по сущностям.
2) Целостность по ссылкам.
3) Целостность, определяемая пользователем.
Ограничения целостности обладают следующими свойствами:
Ограничения целостности навязывают правила на уровне таблицы.
Ограничения целостности предотвращают удаления строк в случаях, если на эти строки в таблицы наложены ограничения.
Существует следующие типы ограничений:
- NOT NULL Ограничения not null – оно не позволяет указанному столбцу обладать нулевым значение. При попытке задать этому столбцу нулевое значение будет выходить ошибка ограничения целостности.
- UNIQUE Ограничения UNIQUE проверяет столбец или столбцы (зависимости от того как его задали) на уникальность строк. Таким образом два одинаковых значения не могут быть даны в одной таблице на указанном столбце или столбцах.
- CHECK Ограничения CHECK позволяет ставить ограничение на значение столбцов.
- PRIMARY KEY В реальной жизни существют множество уникальных чисел: номер нашей автомашины, уникален номер нашего паспорта и.т.д Также необходимо давать подобную уникальность каждой строки в одной таблице. Для этих целей используется ограничения PRIMARY KEY и подобные столбцы обычно называются ID, ну конечно название столбцев может быть любое. Cам по себе PRIMARY KEY представляет из себя:
PRIMARY KEY = UNIQUE + NOT NULL
Ограничение PRIMARY KEY обладает следующеми свойствами:
В одной таблице может быть только одно ограничение типа PRIMARY KEY
Ограничение проверяет строки на уникальность и на то чтобы они не были null
Оно может быть определенно, как на уровне столбца так и на уровне таблицы
Для столбца автоматически создается индекс (*)
Поиск по столбцу с ограничением PRIMARY KEY является быстрым поиском (так как по ним автоматически создается индекс)
- FOREIGN KEY В свою очередь, каждое ограничение можно определить двумя способами. Первый способ – определение на уровне столбцов, второй способ – на уровне таблицы. Каждый из них имеет свой синтаксис задание ограничения
Способ определение на уровне столбцов:
column [CONSTRAINT constraintname] constraint_type,
Способ определения на уровне таблицы:
column, ...
[CONSTRAINT constraint_name] constraint_type
(column, ...),
Поддержка целостности при выполнении insert.
Триггер - это сохраняемая процедура специального вида, которая запускается в момент модификации данных в таблице. Триггеры помогают сохранить ссылочную целостность данных пользователя, проверяя их согласованность в логически связанных таблицах. Ссылочная целостность означает, что значения главного ключа (primary key) и значение соответствующего внешнего ключа (foreign key) должны в точности совпадать.
Основным достоинством триггеров является то, что они вызываются автоматически. Они будут работать независимо от причины, которая вызвала модификацию данных, как, например, после ввода данных клерком, так и при выполнении некоторой прикладной процедуры. Триггер может быть связан с одним или несколькими операторами модификации, такими как update, insert или delete. Триггер исполняется один раз в одном SQL операторе.
Ссылочная целостность на внешних ключах
При описании таблиц БД программист явно описывает, какие поля таблиц являются внешними ключами и на какие таблицы они ссылаются. Любая операция, изменяющая данные в таблице, вызывает автоматическую проверку ссылочной целостности. При этом:
При операции добавления или редактирования записи автоматически проверяется, ссылаются ли внешние ключи в этой записи на существующие записи в заявленных при описании связанных таблицах. Если выясняется, что операция приведёт к появлению некорректных ссылок, она не выполняется — система возвращает ошибку.
При операции редактирования записи проверяется, не изменяется ли её первичный ключ и нет ли на неё ссылок. Если первичный ключ изменяется, и при этом на данную запись имеются ссылки, то операция редактирования завершается с ошибкой.
При операции удаления записи проверяется, нет ли на неё ссылок. Если ссылки имеются, то возможно три варианта дальнейших действий (фактически выполняемый зависит от СУБД и от выбора программиста, который он должен сделать при описании связи):
Запрет — удаление блокируется и возвращается ошибка.
Каскадное удаление — в одной транзакции производится удаление данной записи и всех записей, ссылающихся на данную. Если на удаляемые записи также есть ссылки и настройки также требуют удаления, то каскадное удаление продолжается дальше. Таким образом, после удаления данной записи в базе не остаётся ни одной записи, прямо или косвенно ссылающейся на неё.