Лекция № 5. Системы баз данных.
Цель:дать самое общее представление о понятиях систем баз данных: понятие, характеристика, архитектура; модели данных, нормализация, распределенные, параллельные и гетерогенные базы данных.
План:
1.Основы систем баз данных: понятие, характеристика, архитектура. Модели данных. Нормализация. Ограничение целостности данных. Оптимизация запросов и их обработка.
2.ОсновыSQL. Параллельная обработка данных и их восстановление. 3.Проектирование и разработка баз данных. Технология программирования ORM. Распределенные, параллельные и гетерогенные базы данных.
1.Основы систем баз данных: понятие, характеристика, архитектура. Модели данных. Нормализация. Ограничение целостности данных. Оптимизация запросов и их обработка.
База данных представляет собой структурированный набор записей или данных. Компьютерная база данных представляет собой своего рода программное обеспечение для организации хранения данных. База данных поможет вам организовать эту соответствующую информацию в логической форме для легкого доступа и поиска. Создание базы данных, существует несколько моделей используются такие, как иерархическая модель, сетевая модель, реляционная модель, объектно-ориентированной модели и т.д.
Иерархическая модель. В иерархической модели, данные организованы в перевернутом древовидную структуру. Эта структура организует различные элементы данных в иерархии и помогает установить логические связи между элементами данных из нескольких файлов. Каждый блок в модели представляет собой запись, которая также известна как узел. Каждая запись имеет один из родителей.
Рисунок 1- Иерархическая модель
Сетевая модель. Сетевая модель, как правило, для хранения записей со ссылками на другие записи. Каждая запись в базе данных может иметь несколько родителей, то есть отношения между элементами данных может иметь со многими отношения. Таким образом, эта модель является расширением иерархической структуры, что позволяет много-ко-многим в виде древовидной структуры, что позволяет иметь несколько родителей.Сетевая модель обеспечивает большее преимущество, чем иерархической модели в том, что она способствует большей гибкости и доступности данных.
Рисунок 2- Сетевая модель
Реляционная модель. Реляционная модель для управления базами данных представляет собой модель базы данных на основе отношений. Основная структура данных реляционной модели является таблица, в которой информация о конкретной организации (например, студент) представлена в столбцах и строках. Столбцы перечисляются различные атрибуты (т.е. характеристик) объекта (например, имя студента, адрес регистрации _number). Строки (также называемые записи) представляют собой экземпляры объекта (например, конкретного учащегося).
Объектно -ориентированная модель. В этой модели мы должны обсудить функциональность объектно-ориентированного программирования. Это займет больше, чем хранение объектов языка программирования. Она обеспечивает полнофункциональные возможности программирования баз данных, в то время как содержащие совместимости родной язык. Он добавляет функциональность базы данных объекта языков программирования. Такой подход является аналоговым приложения и разработки баз данных в постоянной модели данных и языковой среды. Приложения требуют меньшего количества кода, использовать моделирование данных более естественный, и код базы проще в обслуживании. Разработчики объектов могут писать полные приложения баз данных с приличным количеством дополнительных усилий. Но объектно-ориентированные базы данных являются более дорогостоющими для разработки.
Система управления базой данных. Система управления базами данных (СУБД) компьютерное программное обеспечение, предназначенное для целей управления базами данных на основе различных моделей данных. СУБД представляет собой сложный комплекс программ, который контролирует организацию, хранение, управление и поиск данных в базе данных. СУБД классифицируются в соответствии с их структурами данных или типов, где-то СУБД также известен как менеджер баз данных. Задачи управления данными попадают в одну из четырех основных категорий, как указано ниже:
Ввод данных в базу данныхслужебные задачи, такие как обновление данных, удаление устаревших записей, а также резервное копирование базы данных.Сортировка данных: организация или перестановке в базу данных записей. Получение подмножества данных. Есть несколько преимуществ в СУБД, такие как снижение избыточности данных и несоответствия, повышение целостности данных, повышение уровня безопасности и т.д.
Нормализация — приведение чего-либо в нормальное состояние;
Нормализация баз данных — процесс преобразования базы данных к виду, отвечающему нормальным формам.
Классификация ограничений целостности
В теории реляционных баз данных принято выделять четыре типа ограничений целостности:
· Ограничением базы данных называется ограничение на значения, которые разрешено принимать указанной базе данных.
· Ограничением переменной отношения называется ограничение на значения, которые разрешено принимать указанной переменной отношения.
· Ограничением атрибута называется ограничение на значения, которые разрешено принимать указанному атрибуту.
· Ограничение типа представляет собой не что иное, как определение множества значений, из которых состоит данный тип.
Примером распространённого ограничения уровня переменной отношения является потенциальный ключ; примером распространённого ограничения уровня базы данных является внешний ключ.
Целостность и истинность данных в БД
Целостность БД не гарантирует достоверности (истинности) содержащейся в ней информации, но обеспечивает по крайней мере правдоподобность этой информации, отвергая заведомо невероятные, невозможные значения. Таким образом, не следует путать целостность (непротиворечивость) БД с истинностью БД. Истинность и непротиворечивость — не одно и то же
Достоверность (или истинность) есть соответствие фактов, хранящихся в базе данных, реальному миру. Очевидно, что для определения достоверности БД требуется обладание полными знаниями как о содержимом БД, так и о реальном мире. Для определения целостности БД требуется лишь обладание знаниями о содержимом БД и о заданных для неё правилах. Поэтому СУБД не может гарантировать наличие в базе данных только истинных высказываний; все, что она может сделать, — это гарантировать отсутствие каких-либо данных, вызывающих нарушение ограничений целостности (то есть гарантировать то, что она не содержит каких-либо данных, не совместимых с этими ограничениями)
Оптимизация запросов
Компонента SQL СУБД, которая определяет, как осуществлять навигацию по физическим структурам данных для доступа к требуемым данным, называется оптимизатором запросов (query optimizer).
Навигационная логика (вариант алгоритма) для доступа к требуемым данным называется путем или методом доступа (access path).
Последовательность выполняемых оптимизатором действий, которые обеспечивают выбранные пути доступа, называется планом выполнения(execution plan).
Процесс, используемый оптимизатор запросов для определения пути доступа, называется оптимизацией запросов (query optimization).
Во время процесса оптимизации запросов определяются пути доступа для всех типов команд SQL DML. Однако команда SQL SELECT представляет наибольшую сложность в решении задачи выбора пути доступа.
2.Основы SQL. Параллельная обработка данных и их восстановление.
Структурированный язык запросов (Structured Query Language) – стандарт коммуникации с базой данных, который поддержан ANSI. Большинство баз данных твердо придерживается стандарта ANSI-92. Почти каждая отдельная база данных использует некоторый уникальный набор синтаксиса, хоть и очень сильно подобного стандарту ANSI. В большинстве случаев, этот синтаксис является расширением базового стандарта, хотя бывают случаи, когда такой синтаксис приводит к различным результатам для разных баз данных.
В общих терминах, «SQL база данных» является общим названием для реляционной системы управления базами данных (РСУБД). Для некоторых систем, «база данных» также относится к группе таблиц, данных, конфигурационной информации, которые являются неотъемлемо отдельной частью от других, подобных конструкций. В этом случае, каждая инсталляция SQL базы данных может состоять из нескольких баз данных. В других системах, они упомянуты как таблицы.
Таблица – конструкция базы данных, которая состоит из столбцов, содержащих строки данных. Обычно таблицы созданы для того, чтобы содержать связанную информацию. В пределах той же самой базы данных могут быть созданы несколько таблиц.
Каждый столбец представляет собой атрибут или совокупность атрибутов объектов, например идентификационные номера служащих, рост, цвет машин и т.п. Часто в отношении столбца используется термин поле с указанием имени, например «в поле Name». Поле строки является минимальным элементом таблицы. Каждый столбец в таблице имеет определенное имя, тип данных и размер. Имена столбцов должны быть уникальны в пределах таблицы.
Каждая строка (или запись) представляет собой совокупность атрибутов конкретного объекта, например, в строке может содержаться идентификационный номер служащего, размер его зарплаты, год его рождения и т.д. Строки таблиц не имеют названий. Чтобы обратиться к конкретной строке, пользователю необходимо указать какой-то атрибут (или набор атрибутов), уникально ее идентифицирующий.
Одной из важнейших операций, которые выполняются при работе с данными, является выборка хранящейся в базе данных информации. Для этого пользователь должен выполнить запрос (query).
Типы запросов данных
Есть четыре основных типа запросов данных в SQL, которые относятся к так называемому языку манипулирования данными (DataManipulationLanguage или DML):
· SELECT – выбрать строки из таблиц;
· INSERT – добавить строки в таблицу;
· UPDATE – изменить строки в таблице;
· DELETE – удалить строки в таблице;
Каждый из этих запросов имеет различные операторы и функции, которые используются для того, чтобы произвести какие-то действия с данными. Запрос SELECT имеет самое большое количество опций. Существуют также дополнительные типы запросов, используемых вместе с SELECT, типа JOIN и UNION. Но пока, мы сосредоточимся только на основных запросах.