шпаргалки по ОБД. зачет ОБД. 1 разделы команды select sql для извлечения записей из таблиц в sql определен оператор select
Скачать 72.03 Kb.
|
1 РАЗДЕЛЫ КОМАНДЫ SELECT SQL Для извлечения записей из таблиц в SQL определен оператор SELECT. С помощью этой команды осуществляется не только операция реляционной алгебры "выборка" (горизонтальное подмножество), но и предварительное соединение двух и более таблиц. Это наиболее сложное и мощное средство SQL, полный синтаксис оператора SELECT имеет вид:
Порядок предложений в операторе SELECT должен строго соблюдаться (например, GROUP BY должно всегда предшествовать ORDER BY), иначе это приведет к появлению ошибок. Этот оператор всегда начинается с ключевого слова SELECT. В конструкции <список_выбора> определяется столбец или столбцы, включаемые в результат. Он может состоять из имен одного или нескольких столбцов, или из одного символа * (звездочка), определяющего все столбцы. Элементы списка разделяются запятыми. В том случае, когда нас интересуют не все записи, а только те, которые удовлетворяют некому условию, это условие можно указать после ключевого слова WHERE. В заключение заметим, что при выполнении оператора SELECT результирующее отношение может иметь несколько записей с одинаковыми значениями всех полей. Чтобы исключить повторяющиеся записи из выборки используется ключевое слово DISTINCT. Ключевое слово ALL указывает, что в результат необходимо включать все строки. Оператор SELECT состоит из нескольких разделов: SELECT определяет список возвращаемых столбцов (как существующих, так и вычисляемых), их имена, ограничения на уникальность строк в возвращаемом наборе, ограничения на количество строк в возвращаемом наборе; FROM задаёт табличное выражение, которое определяет базовый набор данных для применения операций, определяемых в других предложениях оператора; WHERE задает ограничение на строки табличного выражения из предложения FROM; GROUP BY объединяет ряды, имеющие одинаковое свойство с применением агрегатных функций HAVING выбирает среди групп, определённых параметром GROUP BY ORDER BY задает критерии сортировки строк; отсортированные строки передаются в точку вызова. 2. СУБД ФУНКЦИИ СУБД система управления базой данных (СУБД) - важнейший компонент информационной системы. Для создания и управления информационной системой СУБД необходима в той же степени, как для разработки программы на алгоритмическом языке необходим транслятор. Основные функции СУБД: управление данными во внешней памяти (на дисках); управление данными в оперативной памяти; журнализация изменений и восстановление базы данных после сбоев; поддержание языков БД (язык определения данных, язык манипулирования данными). 3. СОЗДАНИЕ СТРУКТУРЫ ДАННЫХ ПРИ ПОМОЩИ ЯЗЫКА ЗАПРОСОВ SQL. Структура и организация данных: ● Реляционные. Данные представлены в виде таблиц, связанных между собой сквозными параметрами. У каждой строки есть уникальный идентификатор, или ключ. Это позволяет легко находить нужные данные и связывать их между собой. Примеры: MySQL, PostgreSQL. ● Ключ-значение. Те, где для хранения данных используют уникальный идентификатор из двух частей — ключ и значение, — который присваивается каждой единице данных. Примеры: Redis, Memcached. ● Документные. СУБД для баз данных, где хранятся документы со структурированным текстом и особым синтаксисом. Это могут быть архивы, каталоги или журналы действий, логи для сайтов и приложений. Примеры: Amazon DocumentDB, CouchDB, MongoDB. ● Графовые. СУБД, которые работают с базами данных, где в качестве единицы информации выступают взаимосвязи, аналогичные тем, что есть между родственниками или людьми со схожими интересами. Такие базы часто используют в соцсетях или рекомендательных сервисах. Примеры: Amazon Neptune, Neo4j, InfoGrid. ● Колоночные. Эти СУБД похожи на реляционные, только данные здесь представлены в виде колонок, каждая из которых аналогична отдельной таблице. Примеры: SAP IQ, Google Bigtable, Vertica. 4. ПРЕДМЕТНАЯ ОБЛАСТЬ, ОБЪЕКТ, АТРИБУТ. Предметная область - часть реального мира, подлежащая изучению с целью организации управления и, в конечном счете, автоматизации. Отличительной чертой баз данных следует считать то, что данные хранятся совместно с их описанием, а в прикладных программах описание данных не содержится. Независимые от программ пользователя данные обычно называются метаданными. В ряде современных систем метаданные, содержащие также информацию о пользователях, форматы отображения, статистику обращения к данным и др. сведения, хранятся в словаре базы данных. Таким образом, система управления базой данных (СУБД) - важнейший компонент информационной системы. Для создания и управления информационной системой СУБД необходима в той же степени, как для разработки программы на алгоритмическом языке необходим транслятор. Основные функции СУБД: управление данными во внешней памяти (на дисках); управление данными в оперативной памяти; журнализация изменений и восстановление базы данных после сбоев; поддержание языков БД (язык определения данных, язык манипулирования данными). Элемент данных. Наименьшая семантически значимая поименованная единица данных, принимающая значение (фамилия, должность, цвет, зарплата). Объект. То, о чем хранятся данные (служащий, станок, материал). Атрибут. - Характеристика (свойство) объекта. Заметим, что смысл объекта (данного) определяется только совокупностью его атрибутов, представленных соответствующими элементами данных. В этом смысле можно сказать, что значение элемента данных является значением атрибута объекта. Самым простым способом отображения связи элементов данных с атрибутами и соответствующими значениями является их фиксация в виде последовательности. На рисунке форма представления указывает на тип значений соответствующего элемента (N – целое число, S – строка символов, B – коды логических констант True и False, D – дата). Предметная область. Совокупность объектов реального мира, рассматриваемого в рамках определенного контекста (теории, сферы деятельности, модели и т.п.). 5. ПРЕДЛОЖЕНИЕ ЯЗЫКА SQL CREATE TABLE. Создание таблицы CREATE TABLE <имя_таблицы> (<имя_столбца> <тип_столбца> [NOT NULL] [UNIQUE | PRIMARY KEY] [REFERENCES <имя_ таблицы> (<имя_столбца>)] , ...) Пользователь обязан указать имя таблицы и список столбцов. Для каждого столбца обязательно указываются его имя и тип, а также опционально могут быть указаны параметры: NOT NULL - в этом случае элементы столбца всегда должны иметь определенное значение (не NULL) один из взаимоисключающих параметров UNIQUE - значение каждого элемента столбца должно быть уникальным или PRIMARY KEY - столбец является первичным ключом. REFERNCES <имя_мастер_таблицы> [<имя_столбца>] - эта конструкция определяет, что данный столбец является внешним ключом и указывает на ключ какой мастер_таблицы он ссылается. Контроль за выполнением указанных условий осуществляет СУБД 6. ПРЕДЛОЖЕНИЕ INSERT ЯЗЫКА SQL. Добавление новой записи в таблицу
Список столбцов в данной команде не является обязательным параметром. В этом случае должны быть указаны значения для всех полей таблицы в том порядке, как эти столбцы были перечислены в команде CREATE TABLE. 7. ТЕХНОЛОГИИ РАБОТЫ С БД. Понятие базы данных изначально предполагало возможность решения многих задач несколькими пользователями. В связи с этим, важнейшей характеристикой современных СУБДявляется наличие многопользовательской технологии работы. Разная реализация таких технологий в разное время была связана как с основными свойствами вычислительной техники, так и с развитием программного обеспечения. Централизованная архитектура При использовании этой технологии база данных, СУБД и прикладная программа (приложение) располагаются на одном компьютере (рисунок 1). Для такого способа организации не требуется поддержки сети и все сводится к автономной работе. Рисунок 1 - Централизованная архитектура Многопользовательская технология работы обеспечивалась либо режимом мультипрограммирования, либо режимом разделения времени. Архитектура "файл-сервер" Увеличение сложности задач, появление персональных компьютеров и локальных вычислительных сетей явились предпосылками появления новой архитектуры файл-сервер. Эта архитектура баз данных с сетевым доступом предполагает назначение одного из компьютеров сети в качестве выделенного сервера, на котором будут храниться файлы базы данных. В соответствии с запросами пользователей файлы с файл-сервера передаются на рабочие станции пользователей, где и осуществляется основная часть обработки данных. Центральный сервер выполняет в основном только роль хранилища файлов, не участвуя в обработке самих данных (рисунок 2). Рисунок 2 - Архитектура "файл-сервер" Технология "клиент – сервер" Использование технологии " клиент – сервер " предполагает наличие некоторого количества компьютеров, объединенных в сеть, один из которых выполняет особые управляющие функции (является сервером сети). Так, архитектура " клиент – сервер " разделяет функции приложения пользователя (называемого клиентом) и сервера. Приложение-клиент формирует запрос к серверу, на котором расположена БД, на структурном языке запросов SQL (Structured Query Language), являющемся промышленным стандартом в мире реляционных БД. Удаленный сервер принимает запрос и переадресует его SQL-серверу БД. SQL-сервер – специальная программа, управляющая удаленной базой данных. SQL-сервер обеспечивает интерпретацию запроса, его выполнение в базе данных, формирование результата выполнения запроса и выдачу его приложению-клиенту. При этом ресурсы клиентского компьютера не участвуют в физическом выполнении запроса; клиентский компьютер лишь отсылает запрос к серверной БД и получает результат, после чего интерпретирует его необходимым образом и представляет пользователю. Так как клиентскому приложению посылается результат выполнения запроса, по сети "путешествуют" только те данные, которые необходимы клиенту. В итоге снижается нагрузка на сеть. Поскольку выполнение запроса происходит там же, где хранятся данные (на сервере), нет необходимости в пересылке больших пакетов данных. Кроме того, SQL-сервер, если это возможно, оптимизирует полученный запрос таким образом, чтобы он был выполнен в минимальное время с наименьшими накладными расходами. Архитектура системы представлена на рисунке 3. Рисунок 3 - Архитектура "клиент – сервер" Трехзвенная (многозвенная) архитектура "клиент – сервер" Трехзвенная (в некоторых случаях многозвенная ) архитектура (N-tier или multi-tier). представляет собой дальнейшее совершенствование технологии " клиент – сервер ". Рассмотрев архитектуру " клиент – сервер ", можно заключить, что она является 2-звенной: первое звено – клиентское приложение, второе звено – сервер БД + сама БД. В трехзвенной архитектуре вся бизнес-логика (деловая логика), ранее входившая в клиентские приложения, выделяется в отдельное звено, называемое сервером приложений. При этом клиентским приложениям остается лишь пользовательский интерфейс. Схематически такую архитектуру можно представить, как показано на рисунке 4. Рисунок 4 - Представление многоуровневой архитектуры "клиент-сервер" 8. ПРЕДЛОЖЕНИЕ UPDATE ЯЗЫКА SQL. UPDATE – обновление данных Данный оператор в MS SQL имеет 2 формы: UPDATE таблица SET … WHERE условие_выборки – обновлении строк таблицы, для которых выполняется условие_выборки. Если предложение WHERE не указано, то будут обновлены все строки. Это можно сказать классическая форма оператора UPDATE. UPDATE псевдоним SET … FROM … – обновление данных таблицы участвующей в предложении FROM, которая задана указанным псевдонимом. Конечно, здесь можно и не использовать псевдонимов, используя вместо них имена таблиц, но с псевдонимом на мой взгляд удобнее. 9. ЛОГИЧЕСКАЯ НЕЗАВИСИМОСТЬ ДАННЫХ. Логическая независимость от данных –означает полную защищенность внешних схем от изменений, вносимых в концептуальную схему, то есть возможность изменения одного приложения без корректировки других приложений, работающих с этой же базой данных. 10 ПРЕДЛОЖЕНИЕ DELETE ЯЗЫКА SQL. Оператор DELETE удаляет строки из временных или постоянных базовых таблиц, представлений или курсоров, причем в двух последних случаях действие оператора распространяется на те базовые таблицы, из которых извлекались данные в эти представления или курсоры. Оператор удаления имеет простой синтаксис: DELETE FROM <имя таблицы > [WHERE <предикат>]; Если предложение WHERE отсутствует, удаляются все строки из таблицы или представления (представление должно быть обновляемым). Более быстро эту операцию (удаление всех строк из таблицы) можно в Transact-SQL также выполнить с помощью команды
Невозможно удалить таблицу, если на нее ссылается другая таблица. 11 ФИЗИЧЕСКАЯ НЕЗАВИСИМОСТЬ ДАННЫХ. Физическая независимость от данных – означает защищенность концептуальной схемы от изменений, вносимых во внутреннюю схему. Иными словами, физическая независимость предполагает возможность переноса хранимой информации с одних носителей на другие при сохранении работоспособности всех приложений, работающих с базой данных. 12 ВЫБОРКА С ИСПОЛЬЗОВАНИЕМ IN, ВЛОЖЕННЫЙ ОПЕРАТОР SELECT Если задано ключевое слово WHERE и условие, то команда UPDATE применяется только к тем записям, для которых оно выполняется. Если условие не задано, UPDATE применяется ко всем записям. В качестве условия используются логические выражения над константами и полями. В условиях допускаются: операции проверки на вхождение в список: IN и NOT IN Для извлечения записей из таблиц в SQL определен оператор SELECT. С помощью этой команды осуществляется не только операция реляционной алгебры "выборка" (горизонтальное подмножество), но и предварительное соединение двух и более таблиц. Это наиболее сложное и мощное средство SQL, полный синтаксис оператора SELECT имеет вид:
Порядок предложений в операторе SELECT должен строго соблюдаться (например, GROUP BY должно всегда предшествовать ORDER BY), иначе это приведет к появлению ошибок. Этот оператор всегда начинается с ключевого слова SELECT. В конструкции <список_выбора> определяется столбец или столбцы, включаемые в результат. Он может состоять из имен одного или нескольких столбцов, или из одного символа * (звездочка), определяющего все столбцы. Элементы списка разделяются запятыми. В том случае, когда нас интересуют не все записи, а только те, которые удовлетворяют некому условию, это условие можно указать после ключевого слова WHERE. В заключение заметим, что при выполнении оператора SELECT результирующее отношение может иметь несколько записей с одинаковыми значениями всех полей. Чтобы исключить повторяющиеся записи из выборки используется ключевое слово DISTINCT. Ключевое слово ALL указывает, что в результат необходимо включать все строки. 13 ИЕРАРХИЧЕСКАЯ МОДЕЛЬ БД. Иерархические базы данных - самая ранняя модель представления сложной структуры данных. Информация в иерархической базе организована по принципу древовидной структуры, в виде отношений "предок-потомок". Каждая запись может иметь не более одной родительской записи и несколько подчиненных. Связи записей реализуются в виде физических указателей с одной записи на другую. Основной недостаток иерархической структуры базы данных - невозможность реализовать отношения "многие-ко-многим", а также ситуации, когда запись имеет несколько предков. Иерархические базы данных графически могут быть представлены как перевернутое дерево, состоящее из объектов различных уровней. Верхний уровень (корень дерева) занимает один объект, второй - объекты второго уровня и так далее. Организация данных в СУБД иерархического типа определяется в терминах: элемент, агрегат, запись (группа), групповое отношение, база данных. Атрибут (элемент данных) - наименьшая единица структуры данных. Обычно каждому элементу при описании базы данных присваивается уникальное имя. По этому имени к нему обращаются при обработке. Элемент данных также часто называют полем. Запись - именованная совокупность атрибутов. Использование записей позволяет за одно обращение к базе получить некоторую логически связанную совокупность данных. Именно записи изменяются, добавляются и удаляются. Тип записи определяется составом ее атрибутов. Экземпляр записи - конкретная запись с конкретным значением элементов. Групповое отношение - иерархическое отношение между записями двух типов. Родительская запись (владелец группового отношения) называется исходной записью, а дочерние записи (члены группового отношения) - подчиненными. Иерархическая база данных может хранить только такие древовидные структуры. Корневая запись каждого дерева обязательно должна содержать ключ с уникальным значением. Ключи некорневых записей должны иметь уникальное значение только в рамках группового отношения. Каждая запись идентифицируется полным сцепленным ключом, под которым понимается совокупность ключей всех записей от корневой, по иерархическому пути. Для групповых отношений в иерархической модели обеспечивается автоматический режим включения и фиксированное членство. Это означает, что для запоминания любой некорневой записи в БД должна существовать ее родительская запись. Операции над данными, определенные в иерархической модели: Добавить в базу данных новую запись. Для корневой записи обязательно формирование значения ключа. Изменить значение данных предварительно извлеченной записи. Ключевые данные не должны подвергаться изменениям. Удалить некоторую запись и все подчиненные ей записи. Извлечь корневую запись по ключевому значению, допускается также последовательный просмотр корневых записей. Извлечь следующую запись (следующая запись извлекается в порядке левостороннего обхода дерева). В операции ИЗВЛЕЧЬ допускается задание условий выборки. Все операции изменения применяются только к одной "текущей" записи (которая предварительно извлечена из базы данных). Такой подход к манипулированию данных получил название "навигационного". В иерархической БД поддерживается только целостность связей между владельцами и членами группового отношения (никакой потомок не может существовать без предка). 14 СОРТИРОВКА ДАННЫХ В SQL. Для сортировки данных, получаемых при помощи оператора SELECT служит ключевое слово ORDER BY. С его помощью можно сортировать результаты по любому столбцу или выражению, указанному в <списке_выбора>. Данные могут быть упорядочены как по возрастанию, так и по убыванию. Ключевое слово DESC задает обратный порядок сортировки, ключевое слов ASC (его можно опускать) - прямой порядок сортировки. 15 СЕТЕВАЯ МОДЕЛЬ БД. Сетевая модель данных определяется в тех же терминах, что и иерархическая. Она состоит из множества записей, которые могут быть владельцами или членами групповых отношений. Связь между записью-владельцем и записью-членом также имеет вид 1:N. Основное различие этих моделей состоит в том, что в сетевой модели запись может быть членом более чем одного группового отношения. Операции над данными в сетевой модели БД Добавить - внести запись в БД и, в зависимости от режима включения, либо включить ее в групповое отношение, где она объявлена подчиненной, либо не включать ни в какое групповое отношение. Включить в групповое отношение - связать существующую подчиненную запись с записью-владельцем. Переключить - связать существующую подчиненную запись с другой записью-владельцем в том же групповом отношении. Обновить - изменить значение элементов предварительно извлеченной записи. Извлечь - извлечь записи последовательно по значению ключа, а также используя групповые отношения - от владельца можно перейти к записям - членам, а от подчиненной записи к владельцу набора. Удалить - убрать из БД запись. Если эта запись является владельцем группового отношения, то анализируется класс членства подчиненных записей. Обязательные члены должны быть предварительно исключены из группового отношения, фиксированные удалены вместе с владельцем, необязательные останутся в БД. Исключить из группового отношения - разорвать связь между записью-владельцем и записью-членом. В сетевой модели обеспечивается только поддержание целостности по ссылкам (владелец отношения - член отношения). 16. ГРУППИРОВКА ДАННЫХ В SQL. Группировка данных в операторе SELECT осуществляется с помощью ключевого слова GROUP BY и ключевого слова HAVING, с помощью которого задаются условия разбиения записей на группы. GROUP BY неразрывно связано с агрегирующими функциями, без них оно практически не используется. GROUP BY разделяет таблицу на группы, а агрегирующая функция вычисляет для каждой из них итоговое значение. Kлючевое слово HAVING работает следующим образом: сначала GROUP BY разбивает строки на группы, затем на полученные наборы накладываются условия HAVING. 17. РЕЛЯЦИОННАЯ МОДЕЛЬ БД. Реляционная модель была предложена в 1969 году сотрудником фирмы IBM Е. Ф. Коддом (Or. Е. Р. Соdd), известным исследователем в области баз данных. Впервые основные концепции этой модели были опубликованы в 1970 году. Набор средств для управления реляционными базами данных называется реляционной системой управления базами данных (РСУБД). Реляционная система управления базами данных может содержать утилиты, приложения, сервисы, библиотеки, средства создания приложений и другие компоненты. Реляционная база данных представляет собой совокупность двумерных таблиц. Любая таблица реляционной базы данных состоит из строк, называемых записями, и столбцов, называемых полями. Строки таблицы содержат сведения об объектах. Каждый столбец в таблице должен содержать только определенный тип информации. Каждая строка таблицы содержит разнообразную (разного типа) информацию. Все данные, помещенные в одной строке, называют записью, каждый элемент записи - это поле. Таким образом, каждое поле содержит часть информации, находящейся на пересечении соответствующей строки и столбца. В таблице всевозможные значения одного типа в одном столбце называют доменом. Поле является элементом записи и представляет собой ячейку таблицы. У каждого столбца есть свое неповторимое имя, описывающее тот вид информации, который содержится в нем. Это имя называют «именем поля базы данных» Каждое поле имеет фиксированную длину, следовательно, и любая запись в таблице имеет фиксированную длину. Каждая запись характеризуется своим уникальным порядковым номером. Данные в реляционной таблице должны удовлетворять следующим принципам: 1. Каждое значение поля должно быть атомарным, т.е. не расчленяемым на несколько значений; 2. Значения данных домена (в одном и том же столбце) должны принадлежать к одному и тому же типу данных, доступному для использования в данной СУБД; 3. Каждая запись в таблице уникальна, т.е. в таблице не существует двух записей с полностью совпадающим набором значений ее полей; 4. Каждое поле имеет уникальное имя; 5. Последовательность полей в таблице несущественна; 6. Последовательность записей в таблице несущественна. Существенное отличие реляционной модели от обыкновенного последовательного файла заключается в том, что все столбцы в таблице с точки зрения входа предполагаются эквивалентными. Именно это свойство делает эту модель весьма мощной и делает невозможным отображение ее на память в виде последовательного массива данных. Поскольку записи в таблице неупорядочены, то необходимо указать поле (или набор нескольких полей) для уникальной идентификации каждой записи. Первичный ключ - это поле или набор полей, которые однозначно идентифицируют (определяют) запись таблицы Обычно ключом является поле или совокупность полей фиксированной длины. Каждому значению первичного ключа соответствует одна и только одна запись. Первичный ключ любой таблицы обязан содержать уникальные непустые значения для каждой записи. Если первичный ключ состоит из нескольких полей, он называется составным первичным ключом (рrimагу кеу). Поле, указывающее на запись в другой таблице, связанную с данной записью, называется внешним ключом (foreign кеу). Подобное взаимоотношение между таблицами называется связью (ге1ationship). Связь между двумя таблицами устанавливается путем присвоения значений внешнего ключа одной таблицы значениям первичного ключа другой. Таблица, содержащая внешний ключ, называется второстепенной, а таблица, содержащая первичный ключ, определяющий возможные значения внешнего ключа второстепенной таблицы, называется главной. Типичная реляционная база данных состоит из нескольких связанных таблиц. 18. АГРЕГАТНЫЕ ФУНКЦИИ В ЗАПРОСАХ SQL. В SQL также определены так называемые агрегатные функции, которые совершают действия над совокупностью одинаковых полей в группе записей. Среди них: AVG(<имя поля>) - среднее по всем значениям данного поля COUNT(<имя поля>) или COUNT (*) - число записей MAX(<имя поля>) - максимальное из всех значений данного поля MIN(<имя поля>) - минимальное из всех значений данного поля SUM(<имя поля>) - сумма всех значений данного поля Следует учитывать, что каждая агрегирующая функция возвращает единственноезначение. Область действия данных функции можно ограничить с помощью логического условия. 19. ФУНКЦИИ ДЛЯ РАБОТЫ СО СТРОКАМИ В ЗАПРОСАХ SQL. MID( Иногда приходится в качестве аргументов функции MID использовать выражения с функцией LEN: LEN(column_name)- возвращает длину значения в поле записи. Функция LEN( ) исключает из подсчета конечные пробелы. 20. ЖИЗНЕННЫЙ ЦИКЛ БД. Как и любой программный продукт, база данных обладает собственным жизненным циклом (ЖЦБД). Главной составляющей в жизненном цикле БД является создание единой базы данных и программ, необходимых для ее работы. ЖЦБД включает в себя следующие основные этапы (рисунок 7): Рисунок 7 - Жизненный цикл БД 21. ПРОЦЕСС ПРОХОЖДЕНИЯ ПОЛЬЗОВАТЕЛЬСКОГО ЗАПРОСА К БД. Рисунок 6 иллюстрирует взаимодействие пользователя, СУБД и ОС при обработке запроса на получение данных. Цифрами помечена последовательность взаимодействий: Рисунок 6 - Схема прохождения запроса к БД Разумеется, механизм прохождения запроса в реальных СУБД гораздо сложнее, но и эта упрощенная схема показывает, насколько серьезными и сложными должны быть механизмы обработки запросов, поддерживаемые реальными СУБД. 22. КЛАСС ПРИНАДЛЕЖНОСТИ СУЩНОСТИ. Рассмотрим понятие класс принадлежности сущности. Если каждый экземпляр сущности А связан с экземпляром сущности В, то класс принадлежности сущности А является обязательным. Это отмечается на ER-диаграмме черным кружком, помещённым в прямоугольник, смежный с прямоугольником сущности А. Если не каждый экземпляр сущности А связан с экземпляром сущности В, то класс принадлежности сущности является необязательным. Это отмечается на ER-диаграмме черным кружком, помещённым на линии связи возле прямоугольника сущности А. 23. НОРМАЛИЗАЦИЯ. ПЕРВАЯ НОРМАЛЬНАЯ ФОРМА. ПРИМЕРЫ. Нормализация - это разбиение таблицы на две или более, обладающие лучшими свойствами при включении, изменении и удалении данных. Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных. Нормализация – это процесс разделения информации на структурные единицы, т.е. таблицы. Нормализация БД должна быть выполнена с учётом следующего правила: таблицы, которые содержат повторяющуюся информацию, для устранения дублирования значений должны быть разделены на отдельные таблицы, что приводит к сокращению размеров БД. В теории реляционных баз данных вводятся понятия так называемых “нормальных форм” — требований к организации данных в таблицах. Нормальные формы нумеруются последовательно, по мере ужесточения требований. В правильно спроектированной БД таблицы находятся как минимум в третьей нормальной форме. Так же можно сказать, что процесс нормализации представляет собой приведение таблиц к требуемому уровню нормальности: первый, второй и третий. Каждый уровень нормальности соответствует определённой нормальной форме. Теория нормализации основана на концепции нормальных форм. Говорят, что таблица находится в данной нормальной форме, если она удовлетворяет определенному набору требований. Теоретически существует пять нормальных форм, но на практике обычно используются только первые три. Первые две нормальные формы являются промежуточными шагами для приведения базы данных к третьей нормальной форме. Первая нормальная форма предписывает, что все данные, содержащиеся в таблице, должны быть атомарными (неделимыми). Перечень соответствующих атомарных типов данных определяется СУБД. Требование 1НФ совершенно естественное. Оно означает, что в каждом поле каждой записи должна находиться только одна величина, но не массив и не какая-либо другая структура данных. 24. ТИПЫ СВЯЗЕЙ МЕЖДУ ТАБЛИЦАМИ. Все информационные объекты предметной области связаны между собой. Соответствия, отношения, возникающие между объектами предметной области, называются связями. Связанные отношениями таблицы взаимодействуют по принципу главная, подчиненная. Возможны следующие отношения между таблицами: 1. Отношение «один – ко – многим» (обозначают 1:М): одной записи из главной таблицы может соответствовать ноль, одна или несколько записей подчинённой таблицы. 2. Отношение «один – к - одному» (обозначают 1:1): одной записи из главной таблицы соответствует только одна запись из подчинённой таблицы. 3. Отношение «многие – ко – многим» (обозначают 1:1):одной записи из главной таблицы может соответствовать ноль, одна или несколько записей подчинённой таблицы и наоборот. Одним из правил ссылочной целостности (referential integrity) является то, что первичный ключ любой таблицы должен содержать уникальные непустые значения для данной таблицы. Некоторые СУБД могут контролировать уникальность первичных ключей. Если СУБД контролирует уникальность первичных ключей, то при попытке присвоить первичному ключу значение, уже имеющееся в другой записи, СУБД сгенерирует диагностическое сообщение, обычно содержащее словосочетания primary key violation. Это сообщение в дальнейшем может быть передано в приложение, с помощью которого конечный пользователь манипулирует данными. Если две таблицы связаны соотношением главная-подчиненная, внешний ключ подчинённой таблицы должен содержать только те значения, которые имеются среди значений первичного ключа главной таблицы. Если корректность значений внешних ключей не контролируется СУБД, можно говорить о нарушении ссылочной целостности. Если же СУБД контролирует корректность значений внешних ключей, то при попытке присвоить внешнему ключу значение, отсутствующее среди значений первичных ключей главной таблицы, либо при удалении или модификации записей главной таблицы, приводящих к нарушению ссылочной целостности, СУБД сгенерирует сообщение, о котором говорилось выше. 25. НОРМАЛИЗАЦИЯ. ВТОРАЯ НОРМАЛЬНАЯ ФОРМА. ПРИМЕРЫ. Говорят, что таблица находится во второй нормальной форме, если она находится в 1НФ и каждый не ключевой столбец полностью зависит от первичного ключа. Другими словами, значение каждого поля должно полностью определяться значением первичного ключа. Важно отметить, что зависимость от первичного ключа понимается именно как зависимость от ключа целиком, а не от отдельной его составляющей (в случае составного ключа). Чтобы перейти от первой нормальной формы ко второй, нужно выполнить следующую последовательность действий: Определить, на какие части можно разбить первичный ключ, так чтобы некоторые из неключевых полей зависели от одной из этих частей (эти части не обязаны состоять из одной колонки). Создать новую таблицу для каждой такой части ключа и группы, зависящих от нее полей и переместить их в эту таблицу. Часть бывшего первичного ключа станет при этом первичным ключом новой таблицы. Удалить из исходной таблицы поля, перемещенные в другие таблицы, кроме тех, которые станут внешними ключами. 26. КОНЦЕПТУАЛЬНОЕ И ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ БД. Полный цикл разработки базы данных включает концептуальное, логическое и физическое ее проектирование. Концептуальное проектирование базы данных Первая фаза процесса проектирования базы данных заключается в создании для анализируемой части предприятия концептуальной модели данных. В построении общей концептуальной модели данных выделяют ряд этапов. Выделение локальных представлений, соответствующих обычно относительно независимым данным. Каждое такое представление проектируется как подзадача. Формулирование сущностей, описывающих локальную предметную область проектируемой БД, и описание атрибутов, составляющих структуру каждой сущности. Выделение ключевых атрибутов. Спецификация связей между сущностями. Удаление избыточных связей. Анализ и добавление неключевых атрибутов. Объединение локальных представлений. Созданная концептуальная модель данных предприятия является источником информации для фазы логического проектирования базы данных. Логическое проектирование базы данных Цель второй фазы проектирования базы данных состоит в создании логической модели данных для исследуемой части предприятия. Логическая модель, отражающая особенности представления о функционировании предприятия одновременно многих типов пользователей, называется глобальной логической моделью данных. Процесс проектирования БД должен опираться на определенную модель данных (реляционная, сетевая, иерархическая), которая определяется типом предполагаемой для реализации информационной системы СУБД. Концептуальное и логическое проектирование — это итеративные процессы, которые включают в себя ряд уточнений, продолжающиеся до тех пор, пока не будет получен наиболее соответствующий структуре предприятия продукт. 27. НОРМАЛИЗАЦИЯ. ТРЕТЬЯ НОРМАЛЬНАЯ ФОРМА. ПРИМЕРЫ. Говорят, что таблица находится в 3НФ, если она соответствует 2НФ и все не ключевые столбцы взаимно независимы. Взаимную зависимость столбцов удобно понимать следующим образом: столбцы являются взаимно зависимыми, если нельзя изменить один из них, не изменяя другой. Чтобы перейти от второй нормальной формы к третьей, нужно выполнить следующую последовательность действий: Определить все поля, от которых зависят другие поля. Создать новую таблицу для каждого такого поля или группы полей и группы зависящих от него полей и переместить их в эту таблицу. Поле или группа полей, от которого зависят перемещенные поля, станет при этом первичным ключом новой таблицы. Удалить из исходной таблицы поля, перемещенные в другие таблицы, кроме тех, которые станут внешними ключами. 28. ПРЕДЛОЖЕНИЕ ALTER TABLE. Специальная команда ALTER TABLE предназначена для модификации структуры таблицы. С ее помощью можно изменять свойства существующих столбцов, удалять или добавлять в таблицу столбцы, а также управлять ограничением целостности, как на уровне столбца, так и на уровне таблицы, т.е. выполнять следующие функции: добавить в таблицу определение нового столбца; удалить столбец из таблицы; изменить значение по умолчанию для какого-либо столбца; добавить или удалить первичный ключ таблицы; добавить или удалить внешний ключ таблицы; добавить или удалить условие уникальности; добавить или удалить условие на значение. Команда ALTER TABLE берет на себя все действия по копированию данных во временную таблицу, удалению старой таблицы и созданию вместо нее новой таблицы с нужной структурой и последующим переписыванием в нее данных. Назначение многих параметров и ключевых слов команды ALTER TABLE аналогично назначению соответствующих параметров и ключевых слов команды CREATE TABLE. Рассмотрим основные режимы использования команды ALTER TABLE: добавление столбца; удаление столбца; модификация столбца; Добавление столбца
Модификация столбца
Изменение столбца невозможно, если: столбец участвует в ограничениях PRIMARY KEY или FOREIGN KEY; на столбец наложены ограничения целостности, например UNIQUE (исключение – столбцы, имеющие тип данных переменной длины; со столбцом связано значение по умолчанию. Определяя для столбца новый тип данных, следует помнить о том, что старый тип данных должен конвертироваться в новый. Удаление столбца
30. ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКА SQL. ТИПЫ ДАННЫХ. ПРЕИМУЩЕСТВА ЯЗЫКА. Рост количества данных, необходимость их хранения и обработки привели к тому, что возникла потребность в создании стандартного языка баз данных, который мог бы функционировать в многочисленных компьютерных системах различных видов. Действительно, с его помощью пользователи могут манипулировать данными независимо от того, работают ли они на персональном компьютере, сетевой рабочей станции или универсальной ЭВМ. Одним из языков, появившихся в результате разработки реляционной модели данных, является язык SQL (Structured Query Language), который в настоящее время получил очень широкое распространение и фактически превратился в стандартный язык реляционных баз данных. Стандарт на язык SQL был выпущен Американским национальным институтом стандартов (ANSI) в 1986 г., а в 1987 г. Международная организация стандартов (ISO) приняла его в качестве международного. Типы команд SQL Реализация в SQL концепции операций, ориентированных на табличное представление данных, позволила создать компактный язык с небольшим набором предложений. Язык SQL может использоваться как для выполнения запросов к данным, так и для построения прикладных программ. Основные категории команд языка SQL предназначены для выполнения различных функций, включая построение объектов базы данных и манипулирование ими, начальную загрузку данных в таблицы, обновление и удаление существующей информации, выполнение запросов к базе данных, управление доступом к ней и ее общее администрирование. Основные категории команд языка SQL: DDL – язык определения данных; DML – язык манипулирования данными; DQL – язык запросов; DCL – язык управления данными; команды администрирования данных; команды управления транзакциями Определение структур базы данных (DDL) Язык определения данных (Data Definition Language, DDL) позволяет создавать и изменять структуру объектов базы данных, например, создавать и удалять таблицы. Основными командами языка DDL являются следующие: CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, ALTER INDEX, DROP INDEX. Манипулирование данными (DML) Язык манипулирования данными (Data Manipulation Language, DML) используется для манипулирования информацией внутри объектов реляционной базы данных посредством трех основных команд: INSERT,UPDATE, DELETE. Выборка данных (DQL) Язык запросов DQL наиболее известен пользователям реляционной базы данных, несмотря на то, что он включает всего одну команду SELECT. Эта команда вместе со своими многочисленными опциями и предложениями используется для формирования запросов к реляционной базе данных. Язык управления данными (DCL - Data Control Language) Команды управления данными позволяют управлять доступом к информации, находящейся внутри базы данных. Как правило, они используются для создания объектов, связанных с доступом к данным, а также служат для контроля над распределением привилегий между пользователями. Команды управления данными следующие: GRANT, REVOKE. Команды администрирования данных С помощью команд администрирования данных пользователь осуществляет контроль над выполняемыми действиями и анализирует операции базы данных; они также могут оказаться полезными при анализе производительности системы. Не следует путать администрирование данных с администрированием базы данных, которое представляет собой общее управление базой данных и подразумевает использование команд всех уровней. Команды управления транзакциями Существуют следующие команды, позволяющие управлять транзакциями базы данных: COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION. Язык SQL является основой многих СУБД, т.к. отвечает за физическое структурирование и запись данных на диск, а также за чтение данных с диска, позволяет принимать SQL- запросы от других компонентов СУБД и пользовательских приложений. Таким образом, SQL – мощный инструмент, который обеспечивает пользователям, программам и вычислительным системам доступ к информации, содержащейся в реляционных базах данных. Основные достоинства языка SQL заключаются в следующем: стандартность; независимость от конкретных СУБД; возможность переноса с одной вычислительной системы на другую; реляционная основа языка; возможность создания интерактивных запросов; возможность программного доступа к БД; обеспечение различного представления данных; возможность динамического изменения и расширения структуры БД; поддержка архитектуры клиент-сервер. Любой язык работы с базами данных должен предоставлять пользователю следующие возможности: создавать базы данных и таблицы с полным описанием их структуры; выполнять основные операции манипулирования данными, в частности, вставку, модификацию и удаление данных из таблиц; выполнять простые и сложные запросы, осуществляющие преобразование данных. Кроме того, язык работы с базами данных должен решать все указанные выше задачи при минимальных усилиях со стороны пользователя, а структура и синтаксис его команд – достаточно просты и доступны для изучения. И наконец, он должен быть универсальным, т.е. отвечать некоторому признанному стандарту, что позволит использовать один и тот же синтаксис и структуру команд при переходе от одной СУБД к другой. Язык SQL удовлетворяет практически всем этим требованиям. 31. ОПЕРАЦИИ РЕЛЯЦИОННОЙ АЛГЕБРЫ: ОБЪЕДИНЕНИЕ, ПЕРЕСЕЧЕНИЕ, РАЗНОСТЬ, ПРОИЗВЕДЕНИЕ. С точки зрения внешнего представления объектов реального мира модель данных — это основные понятия и способы, используемые при анализе и описании предметной области. Среди многих попыток представить обработку данных на формальном абстрактном уровне реляционная модель, предложенная Э. Ф. Коддом, стала по существу первой работоспособной моделью данных, поскольку помимо средств описания объектов имела эффективный инструментарий преобразований этих описаний — операции реляционной алгебры. Реляционная алгебра в том виде, в котором она была определена Э. Ф. Коддом, состоит из двух групп по четыре оператора. 1. Традиционные операции: объединение, пересечение, разность и декартово произведение. 2. Специальные реляционные операции: выборка, проекция, соединение, деление. Объединение возвращает таблицу, содержащую все записи, которые принадлежат либо одной из двух заданных таблиц, либо им обоим. Пересечение возвращает таблицу, содержащую все записи, которые принадлежат одновременно двум заданным таблицам. Разность возвращает таблицу, содержащую все записи, которые принадлежат первому из двух заданных таблиц и не принадлежат второй. Произведение возвращает таблицу, содержащую все возможные записи, которые являются сочетанием двух записей, принадлежащих соответственно двум заданным таблицам. Результат выполнения любой операции над таблицами также является таблицей, поэтому результат одной операции может использоваться в качестве исходных данных для другой. Другими словами, можно записывать вложенные реляционные выражения, т. е. выражения, в которых операторы сами представлены реляционными выражениями, причем произвольной сложности. Эта особенность называется свойством реляционной замкнутости. 32. ПРЕДЛОЖЕНИЕ DROP TABLE. Определение структур базы данных (DDL) Язык определения данных (Data Definition Language, DDL) позволяет создавать и изменять структуру объектов базы данных, например, создавать и удалять таблицы. Основными командами языка DDL являются следующие: DROP TABLE. Удаление таблиц
Невозможно удалить таблицу, если на нее ссылается другая таблица 33. ОПЕРАЦИИ РЕЛЯЦИОННОЙ АЛГЕБРЫ: СОЕДИНЕНИЕ, ВЫБОРКА, ПРОЕКЦИЯ, ДЕЛЕНИЕ. С точки зрения внешнего представления объектов реального мира модель данных — это основные понятия и способы, используемые при анализе и описании предметной области. Среди многих попыток представить обработку данных на формальном абстрактном уровне реляционная модель, предложенная Э. Ф. Коддом, стала по существу первой работоспособной моделью данных, поскольку помимо средств описания объектов имела эффективный инструментарий преобразований этих описаний — операции реляционной алгебры. Реляционная алгебра в том виде, в котором она была определена Э. Ф. Коддом, состоит из двух групп по четыре оператора. 1. Традиционные операции: объединение, пересечение, разность и декартово произведение. 2. Специальные реляционные операции: выборка, проекция, соединение, деление. Выборка возвращает таблицу, содержащую все записи из заданной таблицы, которые удовлетворяют указанным условиям. Проекция возвращает таблицу, содержащую все записи заданной таблицы, которые остались в этой таблицы после исключения из неё некоторых атрибутов Соединение возвращает таблицу, содержащую все возможные записи, которые представляют собой комбинацию атрибутов двух записей, принадлежащих двум заданным таблицам, при условии, что в этих двух комбинированных записях присутствуют одинаковые значения в одном или нескольких общих для исходных таблиц атрибутах (причем эти общие значения в результирующем записи появляются один раз, а не дважды). Деление для заданных двух унарных таблиц и одной бинарной возвращает таблицу, содержащую все записи из первой унарной таблицы, которые содержатся также в бинарной таблице и соответствуют всем записям во второй унарной таблице. Результат выполнения любой операции над таблицами также является таблицей, поэтому результат одной операции может использоваться в качестве исходных данных для другой. Другими словами, можно записывать вложенные реляционные выражения, т. е. выражения, в которых операторы сами представлены реляционными выражениями, причем произвольной сложности. Эта особенность называется свойством реляционной замкнутости. 34. МЕТОДЫ ИСПОЛЬЗОВАНИЯ ОПЕРАТОРА LIKE. Оператор LIKE используется в предложении WHERE для поиска указанного шаблона в столбце. Есть два подстановочных знака, часто используемых в сочетании с оператором LIKE: % - Знак процента представляет собой ноль, один или несколько символов _ - Подчеркивание представляет собой один символ Синтаксис LIKESELECT column1, column2, ... FROM table_name WHERE columnN LIKE pattern; 35. ОСНОВНЫЕ ПОНЯТИЯ РЕЛЯЦИОННОЙ БД. ТАБЛИЦЫ. ПОЛЕ. ЗАПИСЬ. КЛЮЧИ. Реляционная модель данных использует организацию данных в виде двумерных таблиц. Каждая такая таблица, называемая реляционной таблицей или отношением, представляет собой двумерный массив и обладает следующими свойствами: все столбцы в таблице однородные, т.е. все элементы в одном столбце имеют одинаковый тип и максимально допустимый размер; каждый столбец имеет уникальное имя; одинаковые строки в таблице отсутствуют; порядок следования строк и столбцов в таблице не имеет значения. Основными структурными элементами реляционной таблицы являются поле и запись (рис. 5). Поле (столбец реляционной таблицы) – элементарная единица логической организации данных, которая соответствует конкретному атрибуту информационного объекта. Запись (строка реляционной таблицы) – совокупность логически связанных полей, соответствующая конкретному экземпляру информационного объекта. Рис. 5. Основные структурные элементы реляционной таблицы Основными объектами любой базы данных являются таблицы. Таблицы базы данных создаются таким образом, чтобы каждая из них содержала информацию об одном информационном объекте. Между таблицами должны быть установлены реляционные связи. Установка таких связей делает возможным выполнение одновременной обработки данных из нескольких таблиц. Первичный ключ реляционной таблицы – это поле или группа полей, которые позволяют однозначно определить каждую запись (строку) в таблице. Первичный ключ должен обладать двумя свойствами: однозначная идентификация записи – запись должна однозначно определяться значением ключа; отсутствие избыточности – никакое поле нельзя удалить из ключа, не нарушая при этом свойства однозначной идентификации записи. Если первичный ключ состоит из одного поля, то он называется простым ключом или ключевым полем. Если первичный ключ состоит из нескольких полей, то говорят, что таблица имеет составной ключ. Для установки связей между таблицами используются ключевые поля. Можно связать две реляционные таблицы, если ключ одной связываемой таблицы ввести в состав ключа другой таблицы (возможно совпадение ключей). Можно ключевое поле одной связываемой таблицы ввести в структуру другой таблицы так, что оно в этой таблице не будет ключевым. В этом случае это поле называется внешним ключом. 36. ИСПОЛЬЗОВАНИЕ ОПЕРАТОРОВ TOP, PERSENT. TOP Инструкция SELECT TOP используется для указания количества возвращаемых записей. Инструкция SELECT TOP полезно для больших таблиц с тысячами записей. Возврат большого количества записей может повлиять на производительность. Синтаксис MySQL: SELECT column_name(s) FROM table_name WHERE condition LIMIT number; Пример SQL TOP PERCENTСледующая инструкция SQL выбирает первые 50% записей из таблицы "Customers": ПримерSELECT TOP 50 PERCENT * FROM Customers; . |