Файл: Тема концепция управления данными в современных информационных системах Цель лекции.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.11.2023

Просмотров: 243

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


1.Поддержка создания логических моделей, не зависящих от СУБД, и генерации физических моделей на их основе.

2.Поддержка нескольких типов СУБД, включая не только серверные, но и настольные.

3.Поддержка специфических особенностей тех или иных СУБД ведущих производителей (генерация триггеров, управление физическим хранением данных).

4.Способность осуществлять обратное проектирование на основе либо имеющейся базы данных, либо имеющегося DDL-скрипта.

5.Возможность генерации отчетов и проектной документации на основе созданной модели.

6.Возможность сохранения модели в репозитарии, который во многих случаях может быть разделяемым.

7.Поддержка генерации кода для одного или нескольких средств разработки или языков программирования.


ТЕМА 6. Язык SQL: команды языка определения данных
Цель лекции: изучить команды языка определения данных.

Ключевые слова: команда, язык SQL, БД, элементы языка, имена, константы, типы данных, функции, создание, изменение, удаление, управление данными, транзакция, манипулирование данными, таблица, столбец, ключ, индекс.
План лекции

1.Основные функции и возможности языка SQL.

2.Базовые элементы языка SQL. Типы команд.

3.Создание базы данных и таблиц в БД.

4.Управление таблицами
1.SQL (Structured Query Language) – это стандартизованная форма составления запросов для обработки реляционных баз данных. При выполнении QBE-запросов они транслируются в соответствующие SQL-запросы.

Непроцедурный язык SQL ориентирован на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц. Особенность языка состоит в том, что предложения ориентированы на конечный результат обработки данных, а не на процедуру обработки. SQL сам определяет, где находятся данные, какие индексы или эффективные последовательности операций следует использовать для их получения. Не надо указывать эти детали в запросе БД.

относится к так называемым декларативным (непроцедурным) языкам программирования. В отличие от процедурных языков (С, Паскаль, Фортран и т.д.) на нем формулируются предложения (инструкции) о том, «что сделать», но не «как сделать, как получить».Язык SQL позволяет задать только то, «что нужно делать», а само исполнение отдельных операций («как делать») возлагается непосредственно на СУБД.

Основные достоинства языка SQL заключаются в следующем:

- стандартность языка SQL - как уже было сказано, его ис­пользование в программах стандартизировано международ­ными организациями;

- независимость от конкретных СУБД - все распространенные СУБД используют SQL, т.к. реляционную БД и программы, которые с ней работают, можно перенести с одной СУБД на другую с минимальными доработками;

- возможность переноса с одной вычислительной системы на другую - СУБД может быть ориентирована на различные вычислительные системы, однако приложения, созданные с помощью SQL, допускают использование как для локаль­ных БД. так и для крупных многопользовательских систем;

- реляционная основа языка - SQL является языком реляци­онных БД поэтому он стал популярным тогда, когда попу­лярной стала реляционная модель представления данных. Табличная структура реляционной БД хорошо понятна, по­этому язык SQL является простым и легким для изучения;



- возможность создания интерактивных запросов - SQL обес­печивает пользователям немедленный доступ к данным, при этом в интерактивном режиме можно получить результат запроса за очень короткое время без написания сложной программы;

- возможность программного доступа к БД - язык SQL может быть легко использован в приложениях, кото­рым необходимо обращаться к БД. Одни и те же опера­торы SQL используются как для интерактивного, так и для программного доступа, поэтому части программ, содержащие обращения к БД, можно вначале прове­рить в интерактивном режиме, а затем встраивать в программу;

- обеспечение различного представления данных - с помо­щью SQL можно предусмотреть такую структуру данных, что тот или иной пользователь будет видеть различные представления данных. Кроме того, данные из разных частей БД могут быть скомбинированы и представлены пользователю в виде одной простой таблицы, а значит, представления можно использовать для усиления защиты БД и ее настройки под конкретные требования отдельных пользователей;

- возможность динамического изменения и расширения структуры БД - язык SQL даже во время обращения к со­держимому позволяет манипулировать структурой БД. Это большое преимущество перед языками статического определения данных, которые запрещают доступ к БД во время изменения ее структуры. Таким образом, SQL обеспечивает гибкость с точки зрения приспособленности БД к изменяющимся требованиям предметной области, не прерывая при этом работу приложения, выполняющую в реальном масштабе времени;

- поддержка архитектуры клиент/сервер - SQL одно из лучших средств для реализации приложений на платфор­ме клиент/сервер. При этом SQL служит связующим зве­ном между клиентской системой, взаимодействующей с пользователем, и серверной системой, управляющей БД, позволяя каждой из них сосредоточиться на выполнении своих прямых функций.
2.Элементами языка SQL являются:

- ключевые слова;

- имена;

- константы;

- типы данных;

- встроенные функции;

- выражения.

Ключевые слова - это фиксированный набор английских слов, которые определяют тип запроса и необходимую информацию для выполнения этого запроса. Каждый запрос представляет собой команду (оператор), с помощью которой пользователь в СУБД выполняет определенные дейс­твия над базами данных. Команда состоит из одного или нескольких пред­ложений, каждый из которых начинается с ключевого слова. В "SQL1" имеется до 100 ключевых слов, а в языке "SQL2" - до 300 ключевых слов.


Имена используются для обозначения (присвоение имени) таблиц, столбцов в таблице, а также владельцев таблиц (базы данных). Имена являются идентификаторами и состоят из последовательности букв и цифр, начинающейся с буквы. В командах при обращении к таблицам и столбцам указываются их имена. Обращение к таблице может быть либо в полной форме следующим образом

имя владельца таблицы, имя таблицы, либо сокращенно имя таблицы

Полная форма позволяет обращаться, прежде всего, к таблицам, созданным другими пользователями, сокращенная форма предпола­гает обращение только к собственным таблицам.

Точно также обращение к столбцам может быть полным или со­кращенным. Полная форма обращения к столбцам имеет вид

имя владельца таблицы, имя таблицы, имя столбца, а сокращенная форма следующая

имя таблицы, имя столбца или

имя. столбца

Константы служат для явного указания величин - чисел, строк, дату и время - в командах SQL.

Числовые константы могут быть представлены либо в виде обыч­ных десятичных чисел

21, -375, 2000.00, +4975000.8778 либо в виде чисел с плавающей запятой 1.5ЕЗ, -3/14159Е1, 2.5Е-7

Строковые константы представляют собой последовательность символов, заключенных в простые кавычки, например

'John', 'NewYork', 'Western'

Календарные даты и время в SQL указываются в виде строковых констант и в различных СУБД могут иметь различные форматы. На­иболее распространенными форматами даты и времени являются





Date

Time

американский

mm/dd/yyyy

hh:mm am/pm

европейский

dd.mm.yyyy

hh.mm.ss

японский

yyyy-mm-dd

hh:mm:ss

ISO

yyyy-mm-dd

hh.mm.ss


Символьные константы позволяют обращаться к системным константам и константам, хранящимся в СУБД. Некоторые их этих констант:

current_date - текущая дата:

current_time — текущее время;

user - имя пользователя базы данных;

sysdate - текущие системные время и дата;


system_user - имя пользователя в учетной записи.

Следует избегать использования ключевых слов и символьных констант в качестве имен объектов.

Типы данных служат для представления информации в базах дан­ных. В SQL определен набор типов данных таких как:

СНАR(длина) - строка символов постоянной длины;

VARCHAR(njraHa) - строка символов переменной длины;

INTEGER, SMALLINT - целые числа;

NUMERIC(TOЧHOCTb, степень), DECIMAL(точность, степень) -масштабируемые целые числа;

FLOAT(точность), REAL - числа с плавающей запятой.

Большинство СУБД кроме типов, определенных в SQL, имеют свои дополнительные типы, такие как

MONEY, CURRENCY - денежные величины;

LOGICAL-логические (булевы) значения.

Кроме того, в SQL предусмотрено NULL-значения для обозначе­ния тех данных, которые либо еще не определены, либо не могут быть определены. NULL - это признак того, что значение данных или не известно или отсутствует.

Из-за различия типов данных, определенных в различных СУБД, возникает проблема совместимости данных этих СУБД между собой.

Встроенные функции определены в стандартах "SQL2" и "SQL3" и в основном предназначены для преобразования типов данных и для обработки строк. Некоторые встроенные функции:

CURRENT_DATE() - возвращает текущую дату;

CLJRRENT_TIME(TOЧHOCTb) - возвращает текущее время;

CHAR_LENGTH(cTpoKa) - возвращает длину строки;

EXTRACT(ЧacTb FROM значение) - возвращает значение части DAY, HOUR и т.д. даты;

SUBSTRING(cTpoKa FROM n FOR длина) - возвращает часть стро­ки указанной длины и начинающаяся с указанной позиции;

LOWER(cTpoKa) - возвращает строку, преобразованную к нижне­му регистру;

UPPER(cTpoKa) - возвращает строку, преобразованную к верхнему регистру;

TRIM(LEADING/TRAILING/BOTH символ FROM строка) - воз­вращает строку, в которой удалены либо первые символы (LEADING), либо последние символы (TRAILING), либо первые и последние сим­волы (BOTH);

MONTH(дата) - возвращает значение месяца из указанной даты в виде целого числа;

YEAR(дата) - возвращает значение года из указанной даты в виде целого числа.

В общем случае различные СУБД имеют различные встроенные функции, что также создает проблему совместимости.

Выражения в SQL представляют собой имена, константы, встроен­ные функции, связанные между собой знаками арифметических опе­раций. В сложных выражениях для изменения порядка вычислений применяются круглые скобки.

Язык SQL оперирует терминами, несколько отличающимися от терминов реляционной теории, например, вместо "отношений" используются "таблицы", вместо "кортежей" - "строки", вместо "атрибутов" - "колонки" или "столбцы".