Файл: Тема концепция управления данными в современных информационных системах Цель лекции.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 оперирует терминами, несколько отличающимися от терминов реляционной теории, например, вместо "отношений" используются "таблицы", вместо "кортежей" - "строки", вместо "атрибутов" - "колонки" или "столбцы".