План
1. Базы данных: определение
2. Основные модели данных
3. Связывание таблиц
4. Нормализация отношений
5. Языки запросов SQL и QBE
Основной проблемой, обусловившей развитие теории и практики баз данных, является обеспечение надежного контролируемого хранения необходимых данных между сеансами работы, их передачи между рабочими местами и эффективного их извлечения по мере необходимости.
По мере роста требований к объему хранимой, искомой и передаваемой информации, к скорости и точности выполнения соответствующих операций, работа с данными стала узким звеном в деятельности практически всех организаций, независимо от рода деятельности. В соответствии с этим, начали создаваться и использоваться аппаратные и программные средства автоматизированной обработки информации.
В процессе развития средств обработки данных были выявлены следующие характерные черты "идеальных" информационных систем обработки информации.
Обработка постоянных (перманентных) данных.
Централизованная обработка данных на основе стандартов.
Интеграция данных.
Независимость (самодостаточность) данных от программ обработки.
Целостность хранимых данных (при хранении данных необходимо обеспечить контроль их непротиворечивости (особенно в случае дублирования части данных) и корректности связей между элементами данных).
Эффективность обработки данных.
Язык управления данными.
Наиболее полно удовлетворяют представлению о "идеальной" информационной системе обработки данных именно системы с базами данных.
База данных (БД) - поименованная совокупность структурированных данных, хранимых в памяти вычислительной системы стандартным способом и отображающих состояние объектов и их взаимосвязей в рассматриваемой предметной области.
Рассмотрим подробно данное определение и его элементы:
а) предметная область - фрагмент реального мира, подлежащий автоматизации.
Предметная область содержит только те сущности, их взаимосвязи и процессы изменения сущностей и взаимосвязей, которые необходимы для корректной работы рассматриваемой (разрабатываемой) автоматизированной системы.
Сущностью или информационным объектом предметной области называется некоторое понятие, общее для ряда объектов реального мира. Сущность характеризуется набором признаков, важных для рассматриваемой предметной области, состав которых позволяет отделить объекты (экземпляры) одной сущности от объектов (экземпляров) другой сущности предметной области, а значения которых позволяют отличить различные экземпляры одной сущности. Так, автоматизированная система контроля успеваемости студентов университета содержит списки студентов и академических групп университета (студент и группа - сущности предметной области), информацию о разбиении студентов по группам (связи сущностей группа и студент), правила определения текущего и итогового рейтинга студентов (процессы).
Сущность "студент" характеризуется следующим набором признаков (атрибутов), важных для предметной области "Контроль успеваемости студентов университета": Фамилия, имя, отчество, номер зачетной книжки, номер академической группы, текущий рейтинг по каждому из предметов. Номер зачетной книжки (а также имя, фамилия, отчество) позволяет различить студентов как экземпляров сущности "студент". Академическая группа включает набор признаков: наименование группы, наименование факультета. Состав наборов признаков отличают сущности "группа" и "студент".
б) состояние объектов и их взаимосвязей - под состоянием объекта (как экземпляра сущности) подразумевается набор значений признаков, определяющих объект. Значения признаков могут меняться со временем (т.е. меняется состояние объектов). Так у студента может измениться академическая группа (при переходе на следующий курс) и текущий рейтинг. При переходе на следующий курс также меняется и взаимосвязь объектов - академических групп и студента (был связан с одной группой, стал связан с другой).
в) структурированные данные - данные, элементы которых упорядочены в соответствии с некоторыми соглашениями. К каждому элементу структурированных данных можно обратиться непосредованно, используя информацию о структуре. Например, если данные хранятся в таблице, то имя пятого ученика мы можем получить из ячейки, находящейся на пересечении столбца "Имя" и пятой строки таблицы, если данные структурированы с помощью таблицы. Кроме определения правила расположения элементов данных в общем хранилище данных структурирование часто подразумевает определение типа данных - то есть способа их представления и объема требуемой для их хранения памяти.
г) хранимых в памяти вычислительной машины - подразумевается использование вычислительной техники для хранения данных, в отличие от данных, хранимых не автоматизировано, например библиотечных каталогов.
д) стандартным способом - должно существовать описание правил структурирования данных для того формата, в котором представлена рассматриваемая база данных. В соответствии с этими правилами любое приложение может получить к этим данным доступ независимо от приложения, с помощью которого рассматриваемая база данных была создана.
е) поименованная - совокупность данных должна быть явно определена и фиксирована заданием структуры хранимых данных и имени этой структуры. Каждое приложение работает с определенной базой данных, используя ее имя для доступа к ней.
Хранимые в базе данные имеют определенную логическую структуру, иными словами, описываются некоторой моделью представления данных (моделью данных), поддерживаемой СУБД. К числу классических относятся следующие модели данных:
иерархическая,
сетевая,
реляционная.
Кроме того, в последние годы появились и стали более активно внедряться на практике следующие модели данных:
постреляционная,
многомерная,
объектно-ориентированная.
Разрабатываются также всевозможные системы, основанные на других
моделях данных, расширяющих известные модели. В их числе можно назвать
объектно-реляционные, дедуктивно-объектно-ориентированные, семантические, концептуальные модели. Некоторые из этих моделей служат для интеграции баз данных, баз знаний и языков программирования.
В некоторых СУБД поддерживается одновременно несколько моделей
данных.
Рассмотрим реляционную и объектно-ориентированную модель данных.
Потребность в создании простой, универсальной, эффективно реализуемой модели данных привели к созданию реляционной модели. В 1970 году американский математик Кодд предложил схему представления данных на основе реляционных таблиц (отношений, реляций) и набор формальных операций, обеспечивающих решение большинства стандартных задач обработки данных за счет преобразования таблиц.
Реляционная модель данных некоторой предметной области представляет собой набор отношений, изменяющихся во времени.
В свою очередь отношение представляет собой двумерную таблицу с данными, удовлетворяющую требованиям реляционной модели и соответствующую некоторой сущности предметной области.
Атрибуты представляют собой свойства, характеризующие сущность.
В структуре таблицы каждому атрибуту соответствует заголовок некоторого столбца таблицы.
Каждому экземпляру сущности соответствует строка таблицы - кортеж.
Домен представляет собой множество всех возможных значений определенного атрибута отношения.
Схема отношения (заголовок отношения) представляет собой список имен атрибутов. Множество кортежей отношения часто называют содержимым (телом) отношения.
Первичным ключом (ключом отношения, ключевым атрибутом) называется атрибут отношения, однозначно идентифицирующий каждый из его кортежей. Ключ может быть составным (сложным), т.е. состоять из нескольких атрибутов.
Если отношение имеет несколько комбинаций атрибутов, каждая из которых однозначно определяет все кортежи отношения, то все эти комбинации атрибутов являются возможными (потенциальными) ключами отношения. Любой из возможных ключей может быть выбран как первичный.
Если выбранный первичный ключ состоит из минимально необходимого набора атрибутов, говорят, что он является компактным или не избыточным.
Ключи используют для достижения следующих целей:
1) исключения дублирования значений в ключевых атрибутах;
2) упорядочения кортежей. Возможно упорядочение по возрастанию или по убыванию значений всех ключевых атрибутов, а также смешанное упорядочивание - по одним - возрастание, по другим - убывание;
3) ускорения работы с кортежами отношения;
4) организации связывания таблиц.
Пусть в отношении R1 имеется не ключевой атрибут А, значения которого являются значениями ключевого атрибута В другого отношения R2. Тогда говорят, что атрибут А отношения R1 есть внешний ключ.
Реляционная модель накладывает на внешние ключи ограничение для обеспечения целостности данных, называемое ссылочной целостностью. Это означает, что каждому значению внешнего ключа должны соответствовать строки в связываемых отношениях.
Поскольку не всякой таблице можно поставить в соответствие отношение, приведем условия, выполнение которых позволяет таблицу считать отношением.
1. Все строки таблицы должны быть уникальны, т.е. не может быть строк с одинаковыми первичными ключами.
2. Имена столбцов таблицы должны быть различны, а значения их простыми, т.е. недопустима группа значений в одном столбце одной строки.
З. Все строки одной таблицы должны иметь одну структуру, соответствующую именам и типам столбцов.
4. Порядок размещения строк в таблице может быть произвольным.
При проектировании реальных БД информацию обычно размещают в нескольких таблицах. При этом обычно данные в таблицах логически связаны.