- •Раздел 2.7 Использование uml-нотации для разработки баз данных
- •Тема 2.7.1 Основные понятия баз данных. Ключи, триггеры и хранимые процедуры Самостоятельная работа № 32 (2 часа)
- •Теоретические сведенья
- •Тема 2.7.2 Организация реляционной бд. Разновидности баз данных Самостоятельная работа № 33 (2 часа)
- •“Реляционные, древовидные и объектно-ориентированные базы данных” Артур б. Смит m. Computing May/June 1996, V.4 n.2
- •“Проектирование реляционных баз данных. Просто и доступно” Джен л.Харрингтон – издательство “Лори”, 2000.-230 с. Теоретические сведенья
- •Тема 2.7.3 Расширение uml для моделирования базы данных Самостоятельная работа № 34 (2 часа)
- •“Реляционные, древовидные и объектно-ориентированные базы данных” Артур б. Смит m. Computing May/June 1996, V.4 n.2
- •“Проектирование реляционных баз данных. Просто и доступно” Джен л.Харрингтон – издательство “Лори”, 2000.-230 с. Теоретические сведенья
- •Самостоятельная работа № 35 (2 часа)
- •“Реляционные, древовидные и объектно-ориентированные базы данных” Артур б. Смит m. Computing May/June 1996, V.4 n.2
- •“Проектирование реляционных баз данных. Просто и доступно” Джен л.Харрингтон – издательство “Лори”, 2000.-230 с. Теоретические сведенья
- •Тема 2.7.4. Особенности отображения свойств объектов и классов при моделировании баз данных. Моделирование бд. Самостоятельная работа № 36 (2 часа)
- •Теоретические сведенья
- •Раздел 2.8 Унифицированный процесс разработки объектно-ориентированных пс
- •Тема 2.8.1 Управление риском Самостоятельная работа № 37 (2 часа)
- •Теоретические сведенья
- •Идентификация риска
- •Анализ риска
- •Ранжирование риска
- •Планирование управления риском
- •Разрешение и наблюдение риска
- •Тема 2.8.2 Этапы унифицированного процесса разработки Самостоятельная работа № 38 (2 часа) Тема: Основные этапы унифицированного процесса разработки
- •Теоретические сведенья Этап начало (Inception)
- •Этап развитие (Elaboration)
- •Этап конструирование (Construction)
- •Этап переход (Transition)
- •Самостоятельная работа № 39 (4 часа) Тема: Пример объектно-ориентированной разработки
- •Теоретические сведенья
- •Этап начало
- •Этап развитие
- •Этап конструирование
- •Тема 2.8.3 Разработка в стиле экстремального программирования. Самостоятельная работа № 40 (2 часа) Тема: хр-реализация.
- •Теоретические сведенья
- •Элемент хр-разработки
- •Самостоятельная работа № 41 (2 часа)
- •Теоретические сведенья
- •Взаимодействие с заказчиком
- •Стоимость изменения и проектирование
Тема 2.7.2 Организация реляционной бд. Разновидности баз данных Самостоятельная работа № 33 (2 часа)
Тема: Реляционная алгебра. Элементы языка SQL.
Цель: Ознакомится с базовыми понятиями и синтаксическими конструкциями языка SQL.
Литература:
“Реляционные, древовидные и объектно-ориентированные базы данных” Артур б. Смит m. Computing May/June 1996, V.4 n.2
“Проектирование реляционных баз данных. Просто и доступно” Джен л.Харрингтон – издательство “Лори”, 2000.-230 с. Теоретические сведенья
Манипуляционная часть реляционной модели утверждает, что доступ к реляционным данным осуществляется при помощи реляционной алгебры или эквивалентного ей реляционного исчисления.
Утверждается, что поскольку реляционная алгебра является замкнутой, то в реляционных выражениях можно использовать вложенные выражения сколь угодно сложной структуры.
Каждое отношение должно иметь уникальное имя в пределах базы данных. Имя отношения, полученного в результате выполнения реляционной операции, определяется в левой части равенства. Но можно не требовать наличия имен от отношений, полученных в результате выполнения реляционных операторов, если эти отношения подставляются в качестве аргументов в другие реляционные выражения. Такие отношения называются неименованными отношениями. Они реально не существуют, а только вычисляется во время выполнения действий, заданных реляционным выражением.
Определяют восемь реляционных операторов, разделяемых на две группы:
теоретико-множественные операторы: объединение, пересечение, вычитание и декартово произведение;
специальные реляционные операторы: выборка, проекция, соединение и деление.
Некоторые реляционные операторы требуют, чтобы отношения были совместимыми по типу. Совместимыми по типу называются отношения, имеющие идентичные заголовки, а именно:
отношения имеют одно и то же множество имен атрибутов, то есть для любого атрибута в одном отношении обязательно найдется атрибут с таким же именем в другом отношении;
атрибуты с одинаковыми именами определены на одних и тех же доменах.
Объединением двух совместимых по типу отношений А и В называется отношение с тем же заголовком и телом, состоящим из кортежей, принадлежащих или А, или В, или обоим отношениям.
Операция объединения записывается:
А UNION В
Объединение отношений, также как любое отношение, не может содержать одинаковых кортежей. Поэтому, если некоторый кортеж входит и в отношение А, и в отношение В, то в объединение он входит один раз.
Пересечением двух совместимых по типу отношений А и В называется отношение с тем же заголовком и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям.
Операция пересечения записывается:
А INTERSECT В
Вычитанием двух совместимых по типу отношений А и В называется отношение с тем же заголовком и телом, состоящим из кортежей, принадлежащих отношению А и не принадлежащих отношению В.
Операция вычитания записывается:
А MINUS В
Декартовым произведением отношений A(A1,A2,…,An) и B(B1,B2,…,Bm) называется отношение, заголовок которого является сцеплением заголовков отношений:
(A1,A2,…,An,B1,B2,…,Bm),
а тело является сцеплением кортежей отношений:
(a1,a2,…,an,b1,b2,…,bm),
таких, что (a1,a2,…,an) A и (b1,b2,…,bm) B.
Операция записывается:
A TIMES B
Выборкой (ограничением, селекцией) на отношении А с условием с называется отношение с тем же заголовком, что и у отношения А, и телом, состоящим из кортежей, значения атрибутов которых при подстановке в условие с дают значение ИСТИНА. Условие с представляет собой логическое выражение, в которое могут входить атрибуты отношения А и скалярные выражения.
Операция выборки записывается:
SELECT A WHERE С
Операция выборки дает горизонтальный срез отношения по заданному условию.
Проекцией отношения А по атрибутам X,Y,…,Z, где каждый из атрибутов принадлежит отношению А, называется отношение с заголовком (X,Y,…,Z) и телом, содержащим множество кортежей вида (x,y,…,z), для которых в отношении А найдутся кортежи со значением атрибута X равным x, значением атрибута Y равным y, … , значением атрибута Z равным z.
Эта операция записывается:
A[X,Y,…,Z]
Операция проекция дает вертикальный срез отношения, в котором удалены все возникшие при таком срезе дубликаты кортежей.
Соединением отношений А и В по условию с называется отношение
(A TIMES B) WHERE С,
где с является логическим выражением, в которое могут входить атрибуты отношений А и В и скалярные выражения.
Делением отношений A(X1,X2,…,Xn,Y1,Y2,…,Ym) и B(Y1,Y2,…,Ym), имеющих общие атрибуты, называется отношение с заголовком (X1,X2,…,Xn) и телом, содержащим множество кортежей (x1,x2,…,xn), таких, что для всех кортежей (y1,y2,…,ym) B в отношении А найдется кортеж (x1,x2,…,xn,y1,y2,…,ym).
Операция записывается:
A DEVIDEBY B
Введение в язык SQL
Язык структурированных запросов SQL является средством работы с реляционными базами данных. Несмотря на то, что язык утвержден как стандарт Американским Национальным Институтом Стандартов (ANSI), ведущие производители баз данных, беря стандарт за основу, расширяют его и создают свой диалект языка. Так фирмы «Microsoft» и «Oracle» создали свои версии языка, которые не являются переносимыми и работают только с «родными» базами данных.
SQL может использоваться как интерактивный язык, непосредственно работающий в базе данных и немедленно выводящий результаты выполнения команд, и как вложенный язык, команды которого могут быть вставлены в программы, написанные на языке разработки прикладных программ, например, Паскаль.
Основу языка SQL составляют операторы, которые можно условно разбить на несколько групп по функциональному назначению. Основными группами операторов, наиболее часто использующимися пользователями реляционных баз данных, являются:
операторы определения объектов базы данных – операторы DDL (Data Definition Language). Примерами таких операторов будут:
CREATE SCHEMA – создать схему базы данных;
DROP SCHEMA – удалить схему базы данных;
CREATE TABLE – создать таблицу;
ALTER TABLE – изменить таблицу;
DROP TABLE – удалить таблицу;
CREATE VIEW – создать представление;
DROP VIEW – удалить представление.
операторы манипулирования данными – операторы DML (Data Manipulation Language), например,
SELECT – выбрать строки из таблицы;
INSERT – добавить строки в таблицу;
UPDATE – изменить строки в таблице;
DELETE – удалить строки из таблицы;
COMMIT – зафиксировать изменения;
ROLLBACK – отменить внесенные изменения.
операторы защиты и управления доступом, такие как:
CREATE ASSERTION – создать ограничение;
DROP ASSERTION – отменить ограничение;
GRANT – предоставить привилегии;
REVOKE – отменить привилегии.
Язык SQL оперирует иными терминами, чем это принято в реляционной теории. Так вместо «отношений» используется термин «таблицы», вместо «кортежей» - «строки», вместо «атрибутов» - «колонки» или «столбцы». SQL также имеет специальные термины, среди которых используются такие слова как «запрос», «предложение», «предикат».
Команды языка SQL являются инструкциями, с помощью которых пользователь обращается к базе данных. Команды состоят из одной или нескольких логических частей, называемых предложениями. Предложения начинаются ключевым словом, то есть словом, которое имеет специальное значение в SQL, и состоят из ключевых слов, определяющих имя предложения, и аргументов. Примерами предложений являются следующие выражения:
FROM Salespeople;
WHERE city = «London».
«FROM» является ключевым словом предложения FROM, а «Salespeople» аргументом предложения. Аналогично «city = «London» - аргумент предложения WHERE. Таким образом, приведенные выше операторы являются ключевыми словами и могут использоваться для построения предложений.
Реализация в SQL концепции операций, ориентированных на табличное представление данных, позволило создать компактный язык с небольшим набором предложений. В нем существуют:
предложения определения данных: определение баз данных, а также определение и уничтожение таблиц и индексов;
запросы на выбор данных: предложение SELECT;
предложения модификации данных: добавление, удаление и изменение;
предложения управления данными: предоставление и отмена привилегий на доступ к данным, управление транзакциями и другие.
Кроме того, он предоставляет возможность выполнять в этих предложениях:
арифметические вычисления (включая разнообразные функциональные преобразования), обработку текстовых строк и выполнение операций сравнения значений арифметических выражений и текстов;
упорядочение строк и (или) столбцов при выводе содержимого таблиц на печать или экран дисплея;
создание представлений (виртуальных таблиц), позволяющих пользователям иметь свой взгляд на данные без увеличения их объема в базе данных;
запоминание выводимого по запросу содержимого таблицы, нескольких таблиц или представления в другой таблице (реляционная операция присваивания);
агрегирование данных: группирование данных и применение к этим группам таких операций, как среднее, сумма, максимум, минимум, число элементов и других.
В SQL используются следующие основные типы данных, форматы которых могут несколько различаться для СУБД разных производителей:
INTEGER - целое число (обычно до 10 значащих цифр и знак);
SMALLINT - «короткое целое» (обычно до 5 значащих цифр и знак);
DECIMAL(p,q) - десятичное число, имеющее p цифр (0 < p < 16) и знак. С помощью q задается число цифр справа от десятичной точки: q < p, если q = 0, оно может быть опущено;
FLOAT - вещественное число с 15 значащими цифрами и целочисленным порядком, определяемым типом СУБД;
CHAR(n) - символьная строка фиксированной длины из n символов (0 < n < 256);
VARCHAR(n) - символьная строка переменной длины, не превышающей n символов (n > 0 и различное в разных СУБД, но не меньше 4096);
DATE - дата в формате, определяемом специальной командой (по умолчанию mm/dd/yy). Поля даты могут содержать только реальные даты, начинающиеся за несколько тысячелетий до н.э. и ограниченные пятым-десятым тысячелетием н.э.;
TIME - время в формате, определяемом специальной командой (по умолчанию hh.mm.ss);
DATETIME - комбинация даты и времени;
MONEY - деньги в формате, определяющем символ денежной единицы ($, руб, и т.п.) и его расположение (суффикс или префикс), точность дробной части и условие для показа денежного значения.
Синтаксические конструкции SQL.
В синтаксических конструкциях используются следующие обозначения:
знак звездочка «*» для обозначения «все» - употребляется в обычном для программирования смысле, то есть «все случаи, удовлетворяющие определению»;
квадратные скобки «[]» означают, что заключенные в эти скобки конструкции, являются необязательными, то есть могут быть опущены;
фигурные скобки «{}» означают, что конструкции, заключенные в эти скобки, должны рассматриваться как целые синтаксические единицы, то есть они позволяют уточнить порядок разбора синтаксических конструкций, заменяя обычные скобки, используемые в синтаксисе SQL;
многоточие «...» – указывает на то, что непосредственно предшествующая ему синтаксическая единица может встречаться один или более раз;
прямая черта «|» – означает наличие выбора из двух или более возможностей;
точка с запятой «;» – завершающий элемент предложений SQL;
запятая «,» – используется для разделения элементов списков;
пробелы – могут вводиться для повышения наглядности между любыми синтаксическими конструкциями предложений SQL;
прописные латинские буквы и символы – используются для написания конструкций языка SQL;
строчные буквы – используются для написания конструкций, которые должны заменяться конкретными значениями, выбранными пользователем, причем для определенности отдельные слова этих конструкций связываются между собой символом подчеркивания «_»;
Операторы SQL для работы с данными.
SELECT – выбирает данные из указанных столбцов
FROM - перечисляем таблицы, в которых расположены эти столбцы;
WHERE - условия отбора строк;
GROUP BY – группирует данные по указанному перечню столбцов
HAVING - предоставляет в результате лишь те группы, которые удовлетворяют указанному перечню условий отбора групп.
SQL-функции SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение) или AVG (среднее значение);
Критерий отбора строк формируется из одного или нескольких условий, соединенных логическими операторами:
AND - когда должны удовлетворяться оба условия;
OR - когда должно удовлетворяться одно из условий;
AND NOT - когда должно удовлетворяться первое условие и не должно удовлетворяться второе;
OR NOT - когда или должно удовлетворяться первое условие или не должно удовлетворяться второе.
Существует приоритет AND над OR - сначала выполняются все операции AND и только после этого операции OR. Для получения желаемого результата WHERE условия должны быть введены в правильном порядке, который можно организовать введением скобок.
При обработке условия числа сравниваются алгебраически - отрицательные числа считаются меньшими, чем положительные, независимо от их абсолютной величины. Строки символов сравниваются в соответствии с их представлением в коде, используемом в конкретной СУБД, например, в коде ASCII. Если сравниваются две строки символов, имеющих разные длины, более короткая строка дополняется справа пробелами для того, чтобы они имели одинаковую длину перед осуществлением сравнения.
С помощью BETWEEN ... AND ... - находится в интервале от ... до ..., можно отобрать строки, в которых значения столбцов находятся в заданном диапазоне, а с помощью NOT BETWEEN отобрать строки, значения столбцов в которых не принадлежат указанному диапазону.
Задание
Студентам необходимо:
ознакомится с теоретическими понятиями;
сделать краткий конспект изложенного материала;
ответить устно на контрольные вопросы.
Контрольные вопросы
За что отвечает манипуляционная часть реляционной модели?
Теоретико-множественные операторы.
Специальные реляционные операторы.
Синтаксические конструкции SQL.
Операторы SQL для работы с данными.
Основные типы данных языка SQL.
