Логическое проектирование реляционной БД 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Логическое проектирование реляционной БД



Концептуальная модель данных состоит из ряда компонентов: объектов (простых или составных), связей, атрибутов, специализаций или генерализаций. При переходе к реляционной схеме базы данных каждый из этих компонентов должен быть проанализирован и, если это окажется необходимым, то даже и преобразован. Изменения, вносимые в процессе преобразования, должны быть такими, чтобы их результат полностью отвечал требованиям, выдвигаемым реляционной моделью данных. Созданная логическая модель базы данных далее должна пройти проверку с использованием процедуры последовательной нормализации, а также должна пройти контроль на возможность выполнения всех необходимых пользователю транзакций. Таким образом, данная фаза логического проектирования предполагает следующие действия:  преобразование концептуальной модели данных в логическую модель, в результате которого будет определена схема реляционной модели данных;  проверка модели с помощью концепций последовательной нормализации;  проверка модели в отношении транзакций пользователей;  проверка поддержки целостности данных.

Методика преобразования концептуальных структур данных в реляционные структуры. Созданием упрощенной концептуальной модели предметной области закладывается основа для получения реляционной схемы базы данных. Поскольку в такой модели присутствует очень узкий круг разрешенных структур, преобразование каждой из которых имеет свои особенности, то методика получения реляционной схемы базы данных представляет собой совокупность правил их преобразования в набор отношений.

Напомним, что в упрощенной концептуальной модели после исключения нежелательных структур могут присутствовать следующие структуры данных:  объекты и атрибуты;  бинарные связи типа 1:1 и типа 1:N;  связи типа суперкласс–подкласс.

26. Язык SQL. Общая характеристика.

SQL принципиально отличается от традиционных алгоритмических языков программирования прежде всего тем, что он относится к непроцедурным языкам. На языке типа Кобол или Си можно записать шаг за шагом все инструкции, необходимые для исполнения программы. Язык SQL позволяет задать только то, “что нужно делать”, а само исполнение отдельных операций (“как делать”) возлагается непосредственно на СУБД. Другой особенностью SQL является так называемая трехзначная логика. В большинстве языков булево выражение может принимать только два значения: истина и ложь. Язык SQL позволяет записывать в базу данных значение NULL (пустое значение). NULL – это специальный код, который помещается в столбец таблицы, если по какой-нибудь причине в нем отсутствуют данные. Когда значение NULL участвует в операциях сравнения, булев результат будет ни истина и ни ложь, а неизвестно. Строго говоря, SQL не является языком программирования согласно определению этого термина. SQL представляет собой субъязык данных, предназначенный для использования только в качестве интерфейса с БД. Сам по себе SQL не содержит тех средств, которые необходимы для разработки законченных программ. И может применяться в форме одной из трех прикладных реализаций: 1. Интерактивный (или автономный) SQL дает возможность пользователям непосредственно извлекать информацию из базы или записывать в нее данные. Информация, получаемая по запросу SQL, может быть выдана на экран, переадресована в файл или на принтер.

2. Статический SQL позволяет записать фиксированный исполняемый код SQL, он обычно используется в приложениях. Есть две разновидности статического SQL: встроенный и модульный. Встроенный SQL определен как код SQL, который включен в исходный текст программы, написанной на другом языке программирования. В реальной жизни большинство приложений разрабатываются на алгоритмических языка (например, Си или Кобол), однако для обращения к БД используется встроенный SQL. В модульном варианте операторы SQL записаны в отдельных модулях, которые компонуются с модулями основного языка. 3. Динамический SQL дает возможность генерировать код SQL во время исполнения приложения и используется вместо статического SQL в тех случаях, когда при разработке приложения необходимый код SQL еще не может быть определен или зависит от того, какой выбор сделает пользователь. Операторы динамического SQL обычно применяются в диалоговых средах для построения запросов и в графических средствах разработки приложений БД.

 

27. Общая структура команды Select языка SQL.

Язык SQL предназначен для манипулирования данными в реляционных базах данных, определения структуры баз данных и для управления правами доступа к данным в многопользовательской среде. Поэтому, в язык SQL в качестве составных частей входят: язык манипулирования данными (Data Manipulation Language, DML), язык определения данных (Data Definition Language, DDL). язык управления данными (Data Control Language, DCL). Подчеркнем, что это не отдельные языки, а различные команды одного языка. Такое деление проведено только лишь с точки зрения различного функционального назначения этих команд. Язык манипулирования данными используется, как это следует из его названия, для манипулирования данными в таблицах баз данных. Он состоит из 4 основных команд:

SELECT (выбрать), INSERT (вставить), UPDATE (обновить), DELETE (удалить). Язык определения данных используется для создания и изменения структуры базы данных и ее составных частей - таблиц, индексов, представлений (виртуальных таблиц), а также триггеров и сохраненных процедур. Основными его командами являются: CREATE DATABASE (создать базу данных), CREATE TABLE (создать таблицу), CREATE VIEW (создать виртуальную таблицу), CREATE INDEX (создать индекс), CREATE PROCEDURE (создать сохраненную процедуру), ALTER DATABASE (модифицировать базу данных), ALTER TABLE (модифицировать таблицу), ALTER VIEW (модифицировать виртуальную таблицу), ALTER INDEX (модифицировать индекс), ALTER PROCEDURE (модифицировать сохраненную процедуру), DROP DATABASE (удалить базу данных), DROP TABLE (удалить таблицу), DROP INDEX (удалить индекс, DROP PROCEDURE (удалить сохраненную процедуру).

Язык управления данными используется для управления правами доступа к данным и выполнением процедур в многопользовательской среде. Более точно его можно назвать "язык управления доступом". Он состоит из двух основных команд: GRANT (дать права), REVOKE (забрать права). С точки зрения прикладного интерфейса существуют две разновидности команд SQL: интерактивный SQL и встроенный SQL. Интерактивный SQL используется в специальных утилитах, позволяющих в интерактивном режиме вводить запросы с использованием команд SQL, посылать их для выполнения на сервер и получать результаты в предназначенном для этого окне. Встроенный SQL используется в прикладных программах, позволяя им посылать запросы к серверу и обрабатывать полученные результаты, в том числе комбинируя set-ориентированный и record-ориентированный подходы.

28. SQL. Формирование запросов к базе данных.

CREATE - используется для создания новых таблиц, столбцов и индексов. DROP - используется для удаления столбцов и индексов. ALTER - используется для добавления в таблицы новых столбцов и изменения определенных столбцов. Команды DML SELECT - наиболее часто используемая команда, применяется для получения набора данных из таблицы базы данных. Команда SELECT имеет следующий синтаксис: SELECT список_полей1 FROM имя_таблицы [WHERE критерий ORDER BY список_полей2 [ASC | DESC]] Операторы, находящие внутри квадратных скобок не обязательны, а вертикальная черта означает, что должна присутствовать одна из указанных фраз, но не обе. Для примера создадим простейший запрос на получение данных из полей "name" и "phone" таблицы "friends":SELECT name, phone FROM friends. Если необходимо получить все поля таблицы, то не обязательно их перечислять, достаточно поставить звездочку (*): SELECT * FROM friends. Для исключения из выводимого списка повторяющихся записей, используется ключевое слово DISTINCT: SELECT DISTINCT name FROM friends

Если необходимо получить отдельную запись, то используется оператор WHERE. Например, нам надо получить из таблицы "friends" номер телефона "Сергей Иванов": SELECT * FROM friends WHERE name = ' Сергей Иванов'

или наоборот, нам надо узнать кому принадлежит телефон 293-89-13:

SELECT * FROM friends WHERE phone = 293-89-13' Помимо этого можно использовать подстановочные символы, таким образом, создавая шаблоны поиска. Для этого используется оператор LIKE. Оператор LIKE имеет следующие операторы подстановки: * - соответствует строке состоящей из одного или более символов; _ - соответствует одному любому символу; [] - соответствует одному символу из определенного набора;

Например, для получения записей из поля "name" содержащих слово "Сергей", запрос будит выглядеть следующим образом: SELECT * FROM friends WHERE name LIKE '*Сергей*'. Для определения порядка, в котором возвращаются данные, используется оператор ORDER BY. Без этого оператора порядок возвращаемых данных невозможно предсказать. Ключевые слова ASC и DESC позволяют определить направление сортировки. ASC - упорядочивает по возрастанию, а DESC - по убыванию. Например, запрос на получение списка записей из поля "name" в алфавитном порядке будет выглядеть следующим образом: SELECT * FROM friends ORDER BY name. Обратим внимание на то, что ключевое слово ASC указывать не обязательно, поскольку оно используется по умолчанию. INSERT - данная команда служит для добавления новой записи в таблицу. Записывается она следующим образом: INSERT INTO имя_таблицы VALUES (список_значений). Обратим внимание на то, что типы значений в списке значений должны соответствовать типам значений полей таблицы, например: INSERT INTO friends VALUES ('Анна Осипова', '495-09-81') В данном примере в таблицу friends добавляется новая запись с указанными значениями. UPDATE - эта команда применяется для обновления данных в таблице и чаще всего используется совместно с оператором WHERE. Команда UPDATE имеет следующий синтаксис: UPDATE имя_таблицы SET имя_поля = значение [WHERE критерий]

Если опустить оператор WHERE, то будут обновлены данные во всех определенных полях таблицы. Для примера, поменяем номер телефона Сергея Иванова: UPDATE friends SET phone = '255-55-55' WHERE name = 'Сергей Иванов'

DELETE - как вы уже наверное поняли, эта команда служит для удаления записей из таблицы. Как и UPDATE, команда DELETE обычно используется с оператором WHERE, если этот оператор пропустить, то будут удалены все данные из указанной таблицы. Синтаксис команды DELETE выглядит следующим образом: DELETE FROM имя_таблицы [WHERE критерий] Для примера, давайте удалим Сергея Иванова из нашей таблицы:):

DELETE FROM friends WHERE name = 'Сергей Иванов'

29. SQL. Агрегатные функции языка и их использование в запросах.

* COUNT – определение кол-во знаний в указанном столбце. * SUM – сумма возвращает сумму значений в указанном столбце. * AVG – возвращает среднее значение в указанном столбце. * MAX - возвращает максимальное значение в указанном столбце.* MIN - возвращает минимальное значение в указанном столбце. В качестве оператора данной функции может использоваться только 1-го столбца и все они возвращают единственное значение. С функциями SUM b AVG могут использоваться только числовые поля. С функциями COUNT? MAX и MIN могут использоваться как числовые так и символьные поля. При вызове всех функций, кроме ф-ии COUNT() осуществляется исключение всех пустых полей, значений только после этого функция применяется ко всем оставшимся записям. Функция COUNT(*) оcуществляет подсчёт всех строк таблиц. Пример: определить кол-во районов в городе. Select Couny(*)AS [кол-во районов.] From district. Агрегатные функции используются подобно именам полей в предложении SELECT запроса, но с одним исключением, они берут имена пол как аргументы. Только числовые пол могут использоваться с SUM и AVG. С COUNT, MAX, и MIN, могут использоваться и числовые или символьные пол. Когда они используются с символьными полями, MAX и MIN будут транслировать их в эквивалент ASCII, который должен сообщать, что MIN будет означать первое, а MAX последнее значение в алфавитном порядке. Чтобы найти SUM всех наших покупок в таблицы Порядков, мы можем ввести следующий запрос: SELECT SUM ((amt)) FROM Orders.

30. SQL. Группировка данных.

Часто при работе с БД встречаются ситуации, когда в отчёт необходимо включить промежуточные результаты, оперяющиеся на вычисление, обобщенных групповых значений. Для применения агрегатных функций в подобных случаях предполагается предварительная операция группировки. Суть операции группировки состоит в том, что все множества строк таблицы разбивается на группы. В каждой из которых собираются строки имеющие одинаковые значения атрибутов, которые заданы в списке группировки. Обработки такой информации реализуется путём применения агрегатных функций, уже к каждой отдельной группе и выдачи полученных итогов. В языке CKL для осуществления операции групп ировки в оператор SELEKT включается фраза group By. Запрос включающий в себя фразу group By называется группирующим запросом, (или итоговым запросом), а столбцы перечисление в этой фразе называются группирующими столбцами. Пример: Определить кол-во жильцов по каждому статусу. Select status As Статус, Count(*)As [кол-во проживающих] From owners. group By Status. Order By Status.

31. Вложенные запросы в SQL.

Стандарт языка позволяет в тело одного оператора SELEKT внедрять другой оператор SELEKT, если внутренний оператор запроса помещён в предложения where или Having внесено оператор SELEKT то создаётся ситуация вложенных запросов (под запросов). Вложенные или подчиненные запросы всегда заключаются в круглые скобки. Между под запросом и конструкции SELEKT имеются отличия:1) Таблица результатов подчиненного запроса всегда состоит из 1-го столбца т.е. в предложении SELEKT под запроса всегда указывается только один возвращаемый столбец. 2) В подчиненный запрос не может входить предложение Order By. 3) Имена столбцов в под запросе могут являться силками на столбцы главного запроса. 4) Подчиненный запрос не может быть запросом на объединении. Чаще всего под запросом располагаются в предложении where в простейшем случи подзапрос является частью условия отбора и возвращает значение. Позволяющие проверить истинность или ложность условия. В подчинённом запросе могут использоваться следующие условия отбора: 1. Сравнение с результатом подчинённого запроса >, <, >=, <=, =, < >. 2ю Проверка на принадлежность результатом подчинённого запроса In. 3. Проверка наличия строк в таблице результатов подчиненного запроса Exists / Not Exists. 4. Многократное сравнение ANY, ALL. Многократное сравнение – это значение выражение сравнивается с каждым из множества значения, которые возвращаются подчиненным запросом.

32. Многотабличные запросы в SQL.

33. SQL. Возможности задания состава колонок, выводимых в ответ.

34. SQL. Возможности задания условий отбора.

35. SQL. Оператор ввода данных INSERT.

36. SQL. Оператор удаления данных DELETE.

37. SQL. Операция обновления данных UPDATE.

38. SQL. Оператор создания таблицы Create Table.

39. SQL. Оператор обновления таблиц Alter Table.

40. SQL. Оператор удаления таблиц Drop Table.

41. Возможности организации ввода информации в реляционных СУБД.

42. Создание таблиц в конкретной СУБД.

43. Схема данных и создание связей в конкретной СУБД.

44. Генераторы экранных форм. Назначение экранных форм. Классификация.

45. Характеристика генератора экранных форм конкретной СУБД.

46. Создание формы в режиме конструктора в конкретной СУБД.

47. Генераторы отчетов. Классификация отчетов.

48. Характеристика генератора отчетов конкретной СУБД.

49. Создание отчета в режиме конструктора в конкретной СУБД.

50. Создание запросов к базе данных в конкретной СУБД.



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 135; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.193.232 (0.019 с.)